plugins.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. export interface PluginExports {
  2. PanelCtrl?;
  3. PanelComponent?: any;
  4. Datasource?: any;
  5. QueryCtrl?: any;
  6. ConfigCtrl?: any;
  7. AnnotationsQueryCtrl?: any;
  8. PanelOptions?: any;
  9. }
  10. export interface PanelPlugin {
  11. id: string;
  12. name: string;
  13. meta: any;
  14. hideFromList: boolean;
  15. module: string;
  16. baseUrl: string;
  17. info: any;
  18. sort: number;
  19. exports?: PluginExports;
  20. }
  21. export interface PluginMeta {
  22. id: string;
  23. name: string;
  24. info: PluginMetaInfo;
  25. includes: PluginInclude[];
  26. }
  27. export interface PluginInclude {
  28. type: string;
  29. name: string;
  30. path: string;
  31. }
  32. export interface PluginMetaInfo {
  33. author: {
  34. name: string;
  35. url: string;
  36. };
  37. description: string;
  38. links: string[];
  39. logos: {
  40. large: string;
  41. small: string;
  42. };
  43. screenshots: string;
  44. updated: string;
  45. version: string;
  46. }
  47. export interface Plugin {
  48. defaultNavUrl: string;
  49. enabled: boolean;
  50. hasUpdate: boolean;
  51. id: string;
  52. info: PluginMetaInfo;
  53. latestVersion: string;
  54. name: string;
  55. pinned: boolean;
  56. state: string;
  57. type: string;
  58. }
  59. export interface PluginDashboard {
  60. dashboardId: number;
  61. description: string;
  62. folderId: number;
  63. imported: boolean;
  64. importedRevision: number;
  65. importedUri: string;
  66. importedUrl: string;
  67. path: string;
  68. pluginId: string;
  69. removed: boolean;
  70. revision: number;
  71. slug: string;
  72. title: string;
  73. }
  74. export interface PluginsState {
  75. plugins: Plugin[];
  76. searchQuery: string;
  77. layoutMode: string;
  78. hasFetched: boolean;
  79. dashboards: PluginDashboard[];
  80. }