From 7520ebadacf2f5276a1f187f1bf4cfc4b953ab23 Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Tue, 10 Sep 2019 12:06:01 -0700 Subject: [PATCH] Refactor: move ScopedVars to grafana/data (#18992) --- packages/grafana-data/src/types/ScopedVars.ts | 9 +++++ packages/grafana-data/src/types/index.ts | 1 + .../src/utils/dataFrameHelper.test.ts | 7 +++- .../grafana-data/src/utils/dataFrameHelper.ts | 33 ++++++++++++------- .../src/services/dataSourceSrv.ts | 3 +- .../src/components/Table/Table.story.tsx | 4 +-- packages/grafana-ui/src/types/datasource.ts | 11 +------ packages/grafana-ui/src/types/panel.ts | 4 +-- packages/grafana-ui/src/utils/fieldDisplay.ts | 3 +- .../dashboard/dashgrid/PanelChrome.tsx | 4 +-- .../dashgrid/PanelHeader/PanelHeader.tsx | 2 +- .../PanelHeader/PanelHeaderCorner.tsx | 4 +-- .../features/dashboard/state/PanelModel.ts | 4 +-- .../dashboard/state/PanelQueryRunner.test.ts | 4 +-- .../dashboard/state/PanelQueryRunner.ts | 4 +-- .../panel/panellinks/linkSuppliers.ts | 4 +-- .../app/features/panel/panellinks/link_srv.ts | 4 +-- public/app/features/plugins/datasource_srv.ts | 3 +- .../app/features/templating/template_srv.ts | 3 +- .../datasource/cloudwatch/datasource.ts | 4 +-- .../plugins/datasource/graphite/datasource.ts | 3 +- .../datasource/graphite/graphite_query.ts | 2 +- .../datasource/influxdb/influx_query_model.ts | 2 +- .../plugins/datasource/mysql/mysql_query.ts | 2 +- .../datasource/postgres/postgres_query.ts | 2 +- .../datasource/stackdriver/datasource.ts | 3 +- public/app/plugins/panel/table/renderer.ts | 4 +-- .../panel/table/specs/renderer.test.ts | 3 +- 28 files changed, 77 insertions(+), 59 deletions(-) create mode 100644 packages/grafana-data/src/types/ScopedVars.ts diff --git a/packages/grafana-data/src/types/ScopedVars.ts b/packages/grafana-data/src/types/ScopedVars.ts new file mode 100644 index 00000000000..960aba1599d --- /dev/null +++ b/packages/grafana-data/src/types/ScopedVars.ts @@ -0,0 +1,9 @@ +export interface ScopedVar { + text: any; + value: T; + [key: string]: any; +} + +export interface ScopedVars { + [key: string]: ScopedVar; +} diff --git a/packages/grafana-data/src/types/index.ts b/packages/grafana-data/src/types/index.ts index e0048a06700..08340b2d010 100644 --- a/packages/grafana-data/src/types/index.ts +++ b/packages/grafana-data/src/types/index.ts @@ -10,3 +10,4 @@ export * from './utils'; export * from './valueMapping'; export * from './displayValue'; export * from './graph'; +export * from './ScopedVars'; diff --git a/packages/grafana-data/src/utils/dataFrameHelper.test.ts b/packages/grafana-data/src/utils/dataFrameHelper.test.ts index 0792d67ba42..5555c09cd40 100644 --- a/packages/grafana-data/src/utils/dataFrameHelper.test.ts +++ b/packages/grafana-data/src/utils/dataFrameHelper.test.ts @@ -13,11 +13,16 @@ describe('dataFrameHelper', () => { }); const ext = new FieldCache(frame); - it('Should get the first field with a duplicate name', () => { + it('should get the first field with a duplicate name', () => { const field = ext.getFieldByName('value'); expect(field!.name).toEqual('value'); expect(field!.values.toJSON()).toEqual([1, 2, 3]); }); + + it('should return index of the field', () => { + const field = ext.getFirstFieldOfType(FieldType.number); + expect(field!.index).toEqual(2); + }); }); describe('FieldCache', () => { diff --git a/packages/grafana-data/src/utils/dataFrameHelper.ts b/packages/grafana-data/src/utils/dataFrameHelper.ts index e569fd7b40c..d890608d5c4 100644 --- a/packages/grafana-data/src/utils/dataFrameHelper.ts +++ b/packages/grafana-data/src/utils/dataFrameHelper.ts @@ -5,16 +5,22 @@ import { ArrayVector, MutableVector, vectorToArray, CircularVector } from './vec import isArray from 'lodash/isArray'; import isString from 'lodash/isString'; +interface FieldWithIndex extends Field { + index: number; +} export class FieldCache { - fields: Field[] = []; + fields: FieldWithIndex[] = []; - private fieldByName: { [key: string]: Field } = {}; - private fieldByType: { [key: string]: Field[] } = {}; + private fieldByName: { [key: string]: FieldWithIndex } = {}; + private fieldByType: { [key: string]: FieldWithIndex[] } = {}; - constructor(private data: DataFrame) { - this.fields = data.fields; + constructor(data: DataFrame) { + this.fields = data.fields.map((field, idx) => ({ + ...field, + index: idx, + })); - for (const field of data.fields) { + for (const [index, field] of data.fields.entries()) { // Make sure it has a type if (field.type === FieldType.other) { const t = guessFieldTypeForField(field); @@ -25,19 +31,22 @@ export class FieldCache { if (!this.fieldByType[field.type]) { this.fieldByType[field.type] = []; } - this.fieldByType[field.type].push(field); + this.fieldByType[field.type].push({ + ...field, + index, + }); if (this.fieldByName[field.name]) { console.warn('Duplicate field names in DataFrame: ', field.name); } else { - this.fieldByName[field.name] = field; + this.fieldByName[field.name] = { ...field, index }; } } } - getFields(type?: FieldType): Field[] { + getFields(type?: FieldType): FieldWithIndex[] { if (!type) { - return [...this.data.fields]; // All fields + return [...this.fields]; // All fields } const fields = this.fieldByType[type]; if (fields) { @@ -51,7 +60,7 @@ export class FieldCache { return types && types.length > 0; } - getFirstFieldOfType(type: FieldType): Field | undefined { + getFirstFieldOfType(type: FieldType): FieldWithIndex | undefined { const arr = this.fieldByType[type]; if (arr && arr.length > 0) { return arr[0]; @@ -66,7 +75,7 @@ export class FieldCache { /** * Returns the first field with the given name. */ - getFieldByName(name: string): Field | undefined { + getFieldByName(name: string): FieldWithIndex | undefined { return this.fieldByName[name]; } } diff --git a/packages/grafana-runtime/src/services/dataSourceSrv.ts b/packages/grafana-runtime/src/services/dataSourceSrv.ts index 1f3bbbb8436..5e3b7fe13d6 100644 --- a/packages/grafana-runtime/src/services/dataSourceSrv.ts +++ b/packages/grafana-runtime/src/services/dataSourceSrv.ts @@ -1,4 +1,5 @@ -import { ScopedVars, DataSourceApi } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; +import { DataSourceApi } from '@grafana/ui'; export interface DataSourceSrv { get(name?: string, scopedVars?: ScopedVars): Promise; diff --git a/packages/grafana-ui/src/components/Table/Table.story.tsx b/packages/grafana-ui/src/components/Table/Table.story.tsx index ddf537575bb..2d2c3d2d51b 100644 --- a/packages/grafana-ui/src/components/Table/Table.story.tsx +++ b/packages/grafana-ui/src/components/Table/Table.story.tsx @@ -4,8 +4,8 @@ import { Table } from './Table'; import { getTheme } from '../../themes'; import { migratedTestTable, migratedTestStyles, simpleTable } from './examples'; -import { ScopedVars, GrafanaThemeType } from '../../types/index'; -import { DataFrame, FieldType, ArrayVector } from '@grafana/data'; +import { GrafanaThemeType } from '../../types/index'; +import { DataFrame, FieldType, ArrayVector, ScopedVars } from '@grafana/data'; import { withFullSizeStory } from '../../utils/storybook/withFullSizeStory'; import { number, boolean } from '@storybook/addon-knobs'; diff --git a/packages/grafana-ui/src/types/datasource.ts b/packages/grafana-ui/src/types/datasource.ts index a5941326512..5482ac3734c 100644 --- a/packages/grafana-ui/src/types/datasource.ts +++ b/packages/grafana-ui/src/types/datasource.ts @@ -9,6 +9,7 @@ import { LoadingState, DataFrameDTO, AnnotationEvent, + ScopedVars, } from '@grafana/data'; import { PluginMeta, GrafanaPlugin } from './plugin'; import { PanelData } from './panel'; @@ -435,16 +436,6 @@ export interface DataQueryError { cancelled?: boolean; } -export interface ScopedVar { - text: any; - value: any; - [key: string]: any; -} - -export interface ScopedVars { - [key: string]: ScopedVar; -} - export interface DataQueryRequest { requestId: string; // Used to identify results and optionally cancel the request in backendSrv timezone: string; diff --git a/packages/grafana-ui/src/types/panel.ts b/packages/grafana-ui/src/types/panel.ts index c6fbb019ba8..cb0e69d15ea 100644 --- a/packages/grafana-ui/src/types/panel.ts +++ b/packages/grafana-ui/src/types/panel.ts @@ -1,6 +1,6 @@ import { ComponentClass, ComponentType } from 'react'; -import { LoadingState, DataFrame, TimeRange, TimeZone } from '@grafana/data'; -import { ScopedVars, DataQueryRequest, DataQueryError, LegacyResponseData } from './datasource'; +import { LoadingState, DataFrame, TimeRange, TimeZone, ScopedVars } from '@grafana/data'; +import { DataQueryRequest, DataQueryError, LegacyResponseData } from './datasource'; import { PluginMeta, GrafanaPlugin } from './plugin'; export type InterpolateFunction = (value: string, scopedVars?: ScopedVars, format?: string | Function) => string; diff --git a/packages/grafana-ui/src/utils/fieldDisplay.ts b/packages/grafana-ui/src/utils/fieldDisplay.ts index e718396bf18..cdbb97d0184 100644 --- a/packages/grafana-ui/src/utils/fieldDisplay.ts +++ b/packages/grafana-ui/src/utils/fieldDisplay.ts @@ -8,12 +8,13 @@ import { GraphSeriesValue, DataFrameView, getTimeField, + ScopedVars, } from '@grafana/data'; import toNumber from 'lodash/toNumber'; import toString from 'lodash/toString'; -import { GrafanaTheme, InterpolateFunction, ScopedVars } from '../types/index'; +import { GrafanaTheme, InterpolateFunction } from '../types/index'; import { getDisplayProcessor } from './displayProcessor'; import { getFlotPairs } from './flotPairs'; import { DataLinkBuiltInVars } from '../utils/dataLinks'; diff --git a/public/app/features/dashboard/dashgrid/PanelChrome.tsx b/public/app/features/dashboard/dashgrid/PanelChrome.tsx index e6fda12b8a1..251cf2f19c8 100644 --- a/public/app/features/dashboard/dashgrid/PanelChrome.tsx +++ b/public/app/features/dashboard/dashgrid/PanelChrome.tsx @@ -17,8 +17,8 @@ import config from 'app/core/config'; // Types import { DashboardModel, PanelModel } from '../state'; -import { ScopedVars, PanelData, PanelPlugin } from '@grafana/ui'; -import { LoadingState } from '@grafana/data'; +import { PanelData, PanelPlugin } from '@grafana/ui'; +import { LoadingState, ScopedVars } from '@grafana/data'; const DEFAULT_PLUGIN_ERROR = 'Error in plugin'; diff --git a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeader.tsx b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeader.tsx index 852476c52de..b38c22408c5 100644 --- a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeader.tsx +++ b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeader.tsx @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import classNames from 'classnames'; import { isEqual } from 'lodash'; -import { ScopedVars } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; import PanelHeaderCorner from './PanelHeaderCorner'; import { PanelHeaderMenu } from './PanelHeaderMenu'; diff --git a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.tsx b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.tsx index ee79bc4f91c..507b603f267 100644 --- a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.tsx +++ b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.tsx @@ -1,7 +1,7 @@ import React, { Component } from 'react'; -import { renderMarkdown, LinkModelSupplier } from '@grafana/data'; -import { Tooltip, ScopedVars, PopoverContent } from '@grafana/ui'; +import { renderMarkdown, LinkModelSupplier, ScopedVars } from '@grafana/data'; +import { Tooltip, PopoverContent } from '@grafana/ui'; import { PanelModel } from 'app/features/dashboard/state/PanelModel'; import templateSrv from 'app/features/templating/template_srv'; diff --git a/public/app/features/dashboard/state/PanelModel.ts b/public/app/features/dashboard/state/PanelModel.ts index 56d293388cb..41df0c38153 100644 --- a/public/app/features/dashboard/state/PanelModel.ts +++ b/public/app/features/dashboard/state/PanelModel.ts @@ -6,8 +6,8 @@ import { Emitter } from 'app/core/utils/emitter'; import { getNextRefIdChar } from 'app/core/utils/query'; // Types -import { DataQuery, ScopedVars, DataQueryResponseData, PanelPlugin } from '@grafana/ui'; -import { DataLink, DataTransformerConfig } from '@grafana/data'; +import { DataQuery, DataQueryResponseData, PanelPlugin } from '@grafana/ui'; +import { DataLink, DataTransformerConfig, ScopedVars } from '@grafana/data'; import config from 'app/core/config'; diff --git a/public/app/features/dashboard/state/PanelQueryRunner.test.ts b/public/app/features/dashboard/state/PanelQueryRunner.test.ts index 44cb9515b77..75209f54a08 100644 --- a/public/app/features/dashboard/state/PanelQueryRunner.test.ts +++ b/public/app/features/dashboard/state/PanelQueryRunner.test.ts @@ -1,7 +1,7 @@ import { PanelQueryRunner, QueryRunnerOptions } from './PanelQueryRunner'; -import { PanelData, DataQueryRequest, DataStreamObserver, DataStreamState, ScopedVars } from '@grafana/ui'; +import { PanelData, DataQueryRequest, DataStreamObserver, DataStreamState } from '@grafana/ui'; -import { LoadingState, MutableDataFrame } from '@grafana/data'; +import { LoadingState, MutableDataFrame, ScopedVars } from '@grafana/data'; import { dateTime } from '@grafana/data'; import { SHARED_DASHBODARD_QUERY } from 'app/plugins/datasource/dashboard/SharedQueryRunner'; import { DashboardQuery } from 'app/plugins/datasource/dashboard/types'; diff --git a/public/app/features/dashboard/state/PanelQueryRunner.ts b/public/app/features/dashboard/state/PanelQueryRunner.ts index 3bbf85800db..c6b4e6bd617 100644 --- a/public/app/features/dashboard/state/PanelQueryRunner.ts +++ b/public/app/features/dashboard/state/PanelQueryRunner.ts @@ -11,9 +11,9 @@ import { PanelQueryState } from './PanelQueryState'; import { isSharedDashboardQuery, SharedQueryRunner } from 'app/plugins/datasource/dashboard/SharedQueryRunner'; // Types -import { PanelData, DataQuery, ScopedVars, DataQueryRequest, DataSourceApi, DataSourceJsonData } from '@grafana/ui'; +import { PanelData, DataQuery, DataQueryRequest, DataSourceApi, DataSourceJsonData } from '@grafana/ui'; -import { TimeRange, DataTransformerConfig, transformDataFrame, toLegacyResponseData } from '@grafana/data'; +import { TimeRange, DataTransformerConfig, transformDataFrame, toLegacyResponseData, ScopedVars } from '@grafana/data'; import config from 'app/core/config'; export interface QueryRunnerOptions< diff --git a/public/app/features/panel/panellinks/linkSuppliers.ts b/public/app/features/panel/panellinks/linkSuppliers.ts index 38eb8848b2a..bdd5d14d0a9 100644 --- a/public/app/features/panel/panellinks/linkSuppliers.ts +++ b/public/app/features/panel/panellinks/linkSuppliers.ts @@ -1,6 +1,6 @@ import { PanelModel } from 'app/features/dashboard/state/PanelModel'; -import { FieldDisplay, ScopedVars, DataLinkBuiltInVars } from '@grafana/ui'; -import { LinkModelSupplier, getTimeField } from '@grafana/data'; +import { FieldDisplay, DataLinkBuiltInVars } from '@grafana/ui'; +import { LinkModelSupplier, getTimeField, ScopedVars } from '@grafana/data'; import { getLinkSrv } from './link_srv'; /** diff --git a/public/app/features/panel/panellinks/link_srv.ts b/public/app/features/panel/panellinks/link_srv.ts index d34214efec5..8a94ba2dba7 100644 --- a/public/app/features/panel/panellinks/link_srv.ts +++ b/public/app/features/panel/panellinks/link_srv.ts @@ -3,8 +3,8 @@ import { TimeSrv } from 'app/features/dashboard/services/TimeSrv'; import templateSrv, { TemplateSrv } from 'app/features/templating/template_srv'; import coreModule from 'app/core/core_module'; import { appendQueryToUrl, toUrlParams } from 'app/core/utils/url'; -import { VariableSuggestion, ScopedVars, VariableOrigin, DataLinkBuiltInVars } from '@grafana/ui'; -import { DataLink, KeyValue, deprecationWarning, LinkModel } from '@grafana/data'; +import { VariableSuggestion, VariableOrigin, DataLinkBuiltInVars } from '@grafana/ui'; +import { DataLink, KeyValue, deprecationWarning, LinkModel, ScopedVars } from '@grafana/data'; export const getPanelLinksVariableSuggestions = (): VariableSuggestion[] => [ ...templateSrv.variables.map(variable => ({ diff --git a/public/app/features/plugins/datasource_srv.ts b/public/app/features/plugins/datasource_srv.ts index 70f59ad2ecc..133d2ee9ba7 100644 --- a/public/app/features/plugins/datasource_srv.ts +++ b/public/app/features/plugins/datasource_srv.ts @@ -8,7 +8,8 @@ import { importDataSourcePlugin } from './plugin_loader'; import { DataSourceSrv as DataSourceService, getDataSourceSrv as getDataSourceService } from '@grafana/runtime'; // Types -import { DataSourceApi, DataSourceSelectItem, ScopedVars } from '@grafana/ui'; +import { DataSourceApi, DataSourceSelectItem } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; import { auto } from 'angular'; import { TemplateSrv } from '../templating/template_srv'; diff --git a/public/app/features/templating/template_srv.ts b/public/app/features/templating/template_srv.ts index f43f6449717..ab358bf8fd4 100644 --- a/public/app/features/templating/template_srv.ts +++ b/public/app/features/templating/template_srv.ts @@ -1,8 +1,7 @@ import kbn from 'app/core/utils/kbn'; import _ from 'lodash'; import { variableRegex } from 'app/features/templating/variable'; -import { ScopedVars } from '@grafana/ui'; -import { TimeRange } from '@grafana/data'; +import { TimeRange, ScopedVars } from '@grafana/data'; function luceneEscape(value: string) { return value.replace(/([\!\*\+\-\=<>\s\&\|\(\)\[\]\{\}\^\~\?\:\\/"])/g, '\\$1'); diff --git a/public/app/plugins/datasource/cloudwatch/datasource.ts b/public/app/plugins/datasource/cloudwatch/datasource.ts index cc247f2f680..8cb33f6e5f5 100644 --- a/public/app/plugins/datasource/cloudwatch/datasource.ts +++ b/public/app/plugins/datasource/cloudwatch/datasource.ts @@ -1,9 +1,9 @@ import angular, { IQService } from 'angular'; import _ from 'lodash'; -import { dateMath } from '@grafana/data'; +import { dateMath, ScopedVars } from '@grafana/data'; import kbn from 'app/core/utils/kbn'; import { CloudWatchQuery } from './types'; -import { DataSourceApi, DataQueryRequest, DataSourceInstanceSettings, ScopedVars } from '@grafana/ui'; +import { DataSourceApi, DataQueryRequest, DataSourceInstanceSettings } from '@grafana/ui'; import { BackendSrv } from 'app/core/services/backend_srv'; import { TemplateSrv } from 'app/features/templating/template_srv'; import { TimeSrv } from 'app/features/dashboard/services/TimeSrv'; diff --git a/public/app/plugins/datasource/graphite/datasource.ts b/public/app/plugins/datasource/graphite/datasource.ts index c0aa9ede41b..301f96d44e0 100644 --- a/public/app/plugins/datasource/graphite/datasource.ts +++ b/public/app/plugins/datasource/graphite/datasource.ts @@ -1,11 +1,10 @@ import _ from 'lodash'; -import { dateMath } from '@grafana/data'; +import { dateMath, ScopedVars } from '@grafana/data'; import { isVersionGtOrEq, SemVersion } from 'app/core/utils/version'; import gfunc from './gfunc'; import { IQService } from 'angular'; import { BackendSrv } from 'app/core/services/backend_srv'; import { TemplateSrv } from 'app/features/templating/template_srv'; -import { ScopedVars } from '@grafana/ui'; export class GraphiteDatasource { basicAuth: string; diff --git a/public/app/plugins/datasource/graphite/graphite_query.ts b/public/app/plugins/datasource/graphite/graphite_query.ts index a149bbbd62a..759c0fdc67e 100644 --- a/public/app/plugins/datasource/graphite/graphite_query.ts +++ b/public/app/plugins/datasource/graphite/graphite_query.ts @@ -1,7 +1,7 @@ import _ from 'lodash'; import { Parser } from './parser'; import { TemplateSrv } from 'app/features/templating/template_srv'; -import { ScopedVars } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; export default class GraphiteQuery { datasource: any; diff --git a/public/app/plugins/datasource/influxdb/influx_query_model.ts b/public/app/plugins/datasource/influxdb/influx_query_model.ts index 5688db238c8..3b573299a58 100644 --- a/public/app/plugins/datasource/influxdb/influx_query_model.ts +++ b/public/app/plugins/datasource/influxdb/influx_query_model.ts @@ -2,7 +2,7 @@ import _ from 'lodash'; import queryPart from './query_part'; import kbn from 'app/core/utils/kbn'; import { InfluxQuery, InfluxQueryTag } from './types'; -import { ScopedVars } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; import { TemplateSrv } from 'app/features/templating/template_srv'; export default class InfluxQueryModel { diff --git a/public/app/plugins/datasource/mysql/mysql_query.ts b/public/app/plugins/datasource/mysql/mysql_query.ts index 9ba5b13ecf2..ebea02eb779 100644 --- a/public/app/plugins/datasource/mysql/mysql_query.ts +++ b/public/app/plugins/datasource/mysql/mysql_query.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { TemplateSrv } from 'app/features/templating/template_srv'; -import { ScopedVars } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; export default class MysqlQuery { target: any; diff --git a/public/app/plugins/datasource/postgres/postgres_query.ts b/public/app/plugins/datasource/postgres/postgres_query.ts index dc724eb0bc1..033b2ce4f4c 100644 --- a/public/app/plugins/datasource/postgres/postgres_query.ts +++ b/public/app/plugins/datasource/postgres/postgres_query.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { TemplateSrv } from 'app/features/templating/template_srv'; -import { ScopedVars } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; export default class PostgresQuery { target: any; diff --git a/public/app/plugins/datasource/stackdriver/datasource.ts b/public/app/plugins/datasource/stackdriver/datasource.ts index 02a69583059..a803d717d6a 100644 --- a/public/app/plugins/datasource/stackdriver/datasource.ts +++ b/public/app/plugins/datasource/stackdriver/datasource.ts @@ -3,7 +3,8 @@ import appEvents from 'app/core/app_events'; import _ from 'lodash'; import StackdriverMetricFindQuery from './StackdriverMetricFindQuery'; import { StackdriverQuery, MetricDescriptor, StackdriverOptions } from './types'; -import { DataSourceApi, DataQueryRequest, DataSourceInstanceSettings, ScopedVars } from '@grafana/ui'; +import { DataSourceApi, DataQueryRequest, DataSourceInstanceSettings } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; import { BackendSrv } from 'app/core/services/backend_srv'; import { TemplateSrv } from 'app/features/templating/template_srv'; import { TimeSrv } from 'app/features/dashboard/services/TimeSrv'; diff --git a/public/app/plugins/panel/table/renderer.ts b/public/app/plugins/panel/table/renderer.ts index 6f11edf152d..c98d45c5bce 100644 --- a/public/app/plugins/panel/table/renderer.ts +++ b/public/app/plugins/panel/table/renderer.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; -import { getValueFormat, getColorFromHexRgbOrName, GrafanaThemeType, ScopedVars } from '@grafana/ui'; -import { stringToJsRegex } from '@grafana/data'; +import { getValueFormat, getColorFromHexRgbOrName, GrafanaThemeType } from '@grafana/ui'; +import { stringToJsRegex, ScopedVars } from '@grafana/data'; import { ColumnStyle } from '@grafana/ui/src/components/Table/TableCellBuilder'; import { dateTime } from '@grafana/data'; import { TemplateSrv } from 'app/features/templating/template_srv'; diff --git a/public/app/plugins/panel/table/specs/renderer.test.ts b/public/app/plugins/panel/table/specs/renderer.test.ts index fa024c5f44c..4bfda6ccad1 100644 --- a/public/app/plugins/panel/table/specs/renderer.test.ts +++ b/public/app/plugins/panel/table/specs/renderer.test.ts @@ -1,7 +1,8 @@ import _ from 'lodash'; import TableModel from 'app/core/table_model'; import { TableRenderer } from '../renderer'; -import { getColorDefinitionByName, ScopedVars } from '@grafana/ui'; +import { getColorDefinitionByName } from '@grafana/ui'; +import { ScopedVars } from '@grafana/data'; describe('when rendering table', () => { const SemiDarkOrange = getColorDefinitionByName('semi-dark-orange');