Browse Source

Plugins: move PanelPluginMeta to grafana/ui (#16804)

Ryan McKinley 6 years ago
parent
commit
5c2d38126d

+ 19 - 0
packages/grafana-ui/src/types/panel.ts

@@ -2,9 +2,28 @@ import { ComponentClass, ComponentType } from 'react';
 import { LoadingState, SeriesData } from './data';
 import { LoadingState, SeriesData } from './data';
 import { TimeRange } from './time';
 import { TimeRange } from './time';
 import { ScopedVars, DataQueryRequest, DataQueryError, LegacyResponseData } from './datasource';
 import { ScopedVars, DataQueryRequest, DataQueryError, LegacyResponseData } from './datasource';
+import { PluginMeta } from './plugin';
 
 
 export type InterpolateFunction = (value: string, scopedVars?: ScopedVars, format?: string | Function) => string;
 export type InterpolateFunction = (value: string, scopedVars?: ScopedVars, format?: string | Function) => string;
 
 
+export interface PanelPluginMeta extends PluginMeta {
+  hideFromList?: boolean;
+  sort: number;
+  angularPlugin: AngularPanelPlugin | null;
+  vizPlugin: PanelPlugin | null;
+  hasBeenImported?: boolean;
+
+  // if length>0 the query tab will show up
+  // Before 6.2 this could be table and/or series, but 6.2+ supports both transparently
+  // so it will be deprecated soon
+  dataFormats?: PanelDataFormat[];
+}
+
+export enum PanelDataFormat {
+  Table = 'table',
+  TimeSeries = 'time_series',
+}
+
 export interface PanelData {
 export interface PanelData {
   state: LoadingState;
   state: LoadingState;
   series: SeriesData[];
   series: SeriesData[];

+ 1 - 2
public/app/core/config.ts

@@ -1,6 +1,5 @@
 import _ from 'lodash';
 import _ from 'lodash';
-import { PanelPluginMeta } from 'app/types/plugins';
-import { GrafanaTheme, getTheme, GrafanaThemeType, DataSourceInstanceSettings } from '@grafana/ui';
+import { GrafanaTheme, getTheme, GrafanaThemeType, PanelPluginMeta, DataSourceInstanceSettings } from '@grafana/ui';
 
 
 export interface BuildInfo {
 export interface BuildInfo {
   version: string;
   version: string;

+ 1 - 1
public/app/features/dashboard/components/DashExportModal/DashboardExporter.test.ts

@@ -9,7 +9,7 @@ import config from 'app/core/config';
 import { DashboardExporter } from './DashboardExporter';
 import { DashboardExporter } from './DashboardExporter';
 import { DashboardModel } from '../../state/DashboardModel';
 import { DashboardModel } from '../../state/DashboardModel';
 import { DatasourceSrv } from 'app/features/plugins/datasource_srv';
 import { DatasourceSrv } from 'app/features/plugins/datasource_srv';
-import { PanelPluginMeta } from 'app/types';
+import { PanelPluginMeta } from '@grafana/ui';
 
 
 describe('given dashboard with repeated panels', () => {
 describe('given dashboard with repeated panels', () => {
   let dash: any, exported: any;
   let dash: any, exported: any;

+ 1 - 1
public/app/features/dashboard/components/DashExportModal/DashboardExporter.ts

@@ -4,7 +4,7 @@ import config from 'app/core/config';
 import { DashboardModel } from '../../state/DashboardModel';
 import { DashboardModel } from '../../state/DashboardModel';
 import DatasourceSrv from 'app/features/plugins/datasource_srv';
 import DatasourceSrv from 'app/features/plugins/datasource_srv';
 import { PanelModel } from 'app/features/dashboard/state';
 import { PanelModel } from 'app/features/dashboard/state';
-import { PanelPluginMeta } from 'app/types/plugins';
+import { PanelPluginMeta } from '@grafana/ui';
 
 
 interface Input {
 interface Input {
   name: string;
   name: string;

+ 1 - 2
public/app/features/dashboard/dashgrid/DashboardPanel.tsx

@@ -17,8 +17,7 @@ import { PanelResizer } from './PanelResizer';
 
 
 // Types
 // Types
 import { PanelModel, DashboardModel } from '../state';
 import { PanelModel, DashboardModel } from '../state';
-import { PanelPluginMeta } from 'app/types';
-import { AngularPanelPlugin, PanelPlugin } from '@grafana/ui/src/types/panel';
+import { PanelPluginMeta, AngularPanelPlugin, PanelPlugin } from '@grafana/ui/src/types/panel';
 import { AutoSizer } from 'react-virtualized';
 import { AutoSizer } from 'react-virtualized';
 
 
 export interface Props {
 export interface Props {

+ 1 - 2
public/app/features/dashboard/dashgrid/PanelChrome.tsx

@@ -16,8 +16,7 @@ import config from 'app/core/config';
 
 
 // Types
 // Types
 import { DashboardModel, PanelModel } from '../state';
 import { DashboardModel, PanelModel } from '../state';
-import { PanelPluginMeta } from 'app/types';
-import { LoadingState, PanelData } from '@grafana/ui';
+import { PanelPluginMeta, LoadingState, PanelData } from '@grafana/ui';
 import { ScopedVars } from '@grafana/ui';
 import { ScopedVars } from '@grafana/ui';
 
 
 import templateSrv from 'app/features/templating/template_srv';
 import templateSrv from 'app/features/templating/template_srv';

+ 2 - 2
public/app/features/dashboard/dashgrid/PanelPluginNotFound.tsx

@@ -6,8 +6,8 @@ import React, { PureComponent } from 'react';
 import { AlertBox } from 'app/core/components/AlertBox/AlertBox';
 import { AlertBox } from 'app/core/components/AlertBox/AlertBox';
 
 
 // Types
 // Types
-import { PanelPluginMeta, AppNotificationSeverity } from 'app/types';
-import { PanelProps, PanelPlugin, PluginType } from '@grafana/ui';
+import { AppNotificationSeverity } from 'app/types';
+import { PanelPluginMeta, PanelProps, PanelPlugin, PluginType } from '@grafana/ui';
 
 
 interface Props {
 interface Props {
   pluginId: string;
   pluginId: string;

+ 1 - 3
public/app/features/dashboard/panel_editor/PanelEditor.tsx

@@ -13,9 +13,7 @@ import { AngularComponent } from 'app/core/services/AngularLoader';
 
 
 import { PanelModel } from '../state/PanelModel';
 import { PanelModel } from '../state/PanelModel';
 import { DashboardModel } from '../state/DashboardModel';
 import { DashboardModel } from '../state/DashboardModel';
-import { PanelPluginMeta } from 'app/types/plugins';
-
-import { Tooltip } from '@grafana/ui';
+import { PanelPluginMeta, Tooltip } from '@grafana/ui';
 
 
 interface PanelEditorProps {
 interface PanelEditorProps {
   panel: PanelModel;
   panel: PanelModel;

+ 1 - 1
public/app/features/dashboard/panel_editor/VisualizationTab.tsx

@@ -16,9 +16,9 @@ import { FadeIn } from 'app/core/components/Animations/FadeIn';
 // Types
 // Types
 import { PanelModel } from '../state';
 import { PanelModel } from '../state';
 import { DashboardModel } from '../state';
 import { DashboardModel } from '../state';
-import { PanelPluginMeta } from 'app/types/plugins';
 import { VizPickerSearch } from './VizPickerSearch';
 import { VizPickerSearch } from './VizPickerSearch';
 import PluginStateinfo from 'app/features/plugins/PluginStateInfo';
 import PluginStateinfo from 'app/features/plugins/PluginStateInfo';
+import { PanelPluginMeta } from '@grafana/ui';
 
 
 interface Props {
 interface Props {
   panel: PanelModel;
   panel: PanelModel;

+ 1 - 2
public/app/features/dashboard/panel_editor/VizPickerSearch.tsx

@@ -1,8 +1,7 @@
 import React, { PureComponent } from 'react';
 import React, { PureComponent } from 'react';
 
 
 import { FilterInput } from 'app/core/components/FilterInput/FilterInput';
 import { FilterInput } from 'app/core/components/FilterInput/FilterInput';
-
-import { PanelPluginMeta } from 'app/types';
+import { PanelPluginMeta } from '@grafana/ui';
 
 
 interface Props {
 interface Props {
   plugin: PanelPluginMeta;
   plugin: PanelPluginMeta;

+ 1 - 2
public/app/features/dashboard/panel_editor/VizTypePicker.tsx

@@ -1,9 +1,8 @@
 import React, { PureComponent } from 'react';
 import React, { PureComponent } from 'react';
 
 
 import config from 'app/core/config';
 import config from 'app/core/config';
-import { PanelPluginMeta } from 'app/types/plugins';
 import VizTypePickerPlugin from './VizTypePickerPlugin';
 import VizTypePickerPlugin from './VizTypePickerPlugin';
-import { EmptySearchResult } from '@grafana/ui';
+import { PanelPluginMeta, EmptySearchResult } from '@grafana/ui';
 
 
 export interface Props {
 export interface Props {
   current: PanelPluginMeta;
   current: PanelPluginMeta;

+ 1 - 1
public/app/features/dashboard/panel_editor/VizTypePickerPlugin.tsx

@@ -1,6 +1,6 @@
 import React from 'react';
 import React from 'react';
 import classNames from 'classnames';
 import classNames from 'classnames';
-import { PanelPluginMeta } from 'app/types/plugins';
+import { PanelPluginMeta } from '@grafana/ui';
 
 
 interface Props {
 interface Props {
   isCurrent: boolean;
   isCurrent: boolean;

+ 1 - 2
public/app/features/dashboard/state/PanelModel.ts

@@ -6,8 +6,7 @@ import { Emitter } from 'app/core/utils/emitter';
 import { getNextRefIdChar } from 'app/core/utils/query';
 import { getNextRefIdChar } from 'app/core/utils/query';
 
 
 // Types
 // Types
-import { DataQuery, Threshold, ScopedVars, DataQueryResponseData } from '@grafana/ui';
-import { PanelPluginMeta } from 'app/types';
+import { PanelPluginMeta, DataQuery, Threshold, ScopedVars, DataQueryResponseData } from '@grafana/ui';
 import config from 'app/core/config';
 import config from 'app/core/config';
 
 
 import { PanelQueryRunner } from './PanelQueryRunner';
 import { PanelQueryRunner } from './PanelQueryRunner';

+ 2 - 2
public/app/features/plugins/__mocks__/pluginMocks.ts

@@ -1,5 +1,5 @@
-import { Plugin, PanelPluginMeta, PanelDataFormat } from 'app/types';
-import { PluginType } from '@grafana/ui';
+import { Plugin } from 'app/types';
+import { PanelPluginMeta, PluginType, PanelDataFormat } from '@grafana/ui';
 
 
 export const getMockPlugins = (amount: number): Plugin[] => {
 export const getMockPlugins = (amount: number): Plugin[] => {
   const plugins = [];
   const plugins = [];

+ 1 - 15
public/app/types/plugins.ts

@@ -1,18 +1,4 @@
-import { AngularPanelPlugin, PanelPlugin, PluginMeta } from '@grafana/ui/src/types';
-
-export interface PanelPluginMeta extends PluginMeta {
-  hideFromList?: boolean;
-  sort: number;
-  angularPlugin: AngularPanelPlugin | null;
-  vizPlugin: PanelPlugin | null;
-  hasBeenImported?: boolean;
-  dataFormats: PanelDataFormat[];
-}
-
-export enum PanelDataFormat {
-  Table = 'table',
-  TimeSeries = 'time_series',
-}
+import { PluginMeta } from '@grafana/ui';
 
 
 /**
 /**
  * Values we don't want in the public API
  * Values we don't want in the public API

+ 1 - 2
public/test/specs/helpers.ts

@@ -3,8 +3,7 @@ import config from 'app/core/config';
 import * as dateMath from 'app/core/utils/datemath';
 import * as dateMath from 'app/core/utils/datemath';
 import { angularMocks, sinon } from '../lib/common';
 import { angularMocks, sinon } from '../lib/common';
 import { PanelModel } from 'app/features/dashboard/state/PanelModel';
 import { PanelModel } from 'app/features/dashboard/state/PanelModel';
-import { PanelPluginMeta } from 'app/types';
-import { RawTimeRange } from '@grafana/ui/src/types';
+import { PanelPluginMeta, RawTimeRange } from '@grafana/ui';
 
 
 export function ControllerTestContext(this: any) {
 export function ControllerTestContext(this: any) {
   const self = this;
   const self = this;