浏览代码

Refactor: move more files to @grafana/data (#17972)

Ryan McKinley 6 年之前
父节点
当前提交
bdaf0aa81a
共有 34 个文件被更改,包括 84 次插入88 次删除
  1. 5 0
      packages/grafana-data/src/types/dataLink.ts
  2. 3 0
      packages/grafana-data/src/types/index.ts
  3. 0 0
      packages/grafana-data/src/types/threshold.ts
  4. 22 0
      packages/grafana-data/src/types/valueMapping.ts
  5. 3 0
      packages/grafana-data/src/utils/index.ts
  6. 0 0
      packages/grafana-data/src/utils/thresholds.ts
  7. 1 1
      packages/grafana-data/src/utils/valueMappings.test.ts
  8. 1 1
      packages/grafana-data/src/utils/valueMappings.ts
  9. 3 3
      packages/grafana-ui/src/components/BarGauge/BarGauge.tsx
  10. 1 1
      packages/grafana-ui/src/components/DataLinks/DataLinkEditor.tsx
  11. 2 1
      packages/grafana-ui/src/components/DataLinks/DataLinksEditor.tsx
  12. 2 1
      packages/grafana-ui/src/components/Gauge/Gauge.tsx
  13. 1 1
      packages/grafana-ui/src/components/ThresholdsEditor/ThresholdsEditor.tsx
  14. 1 1
      packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx
  15. 1 1
      packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.test.tsx
  16. 1 1
      packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.tsx
  17. 0 1
      packages/grafana-ui/src/types/index.ts
  18. 0 29
      packages/grafana-ui/src/types/panel.ts
  19. 2 1
      packages/grafana-ui/src/utils/displayValue.test.ts
  20. 2 11
      packages/grafana-ui/src/utils/displayValue.ts
  21. 10 9
      packages/grafana-ui/src/utils/fieldDisplay.ts
  22. 0 2
      packages/grafana-ui/src/utils/index.ts
  23. 2 1
      public/app/features/dashboard/dashgrid/PanelHeader/PanelHeader.tsx
  24. 2 1
      public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.tsx
  25. 2 1
      public/app/features/dashboard/panel_editor/GeneralTab.tsx
  26. 1 1
      public/app/features/dashboard/state/DashboardMigrator.ts
  27. 3 1
      public/app/features/dashboard/state/PanelModel.ts
  28. 2 3
      public/app/features/panel/panellinks/link_srv.ts
  29. 4 3
      public/app/plugins/panel/bargauge/BarGaugePanelEditor.tsx
  30. 1 3
      public/app/plugins/panel/gauge/GaugePanelEditor.tsx
  31. 2 2
      public/app/plugins/panel/graph/graph.ts
  32. 2 2
      public/app/plugins/panel/graph/module.ts
  33. 1 2
      public/app/plugins/panel/piechart/PieChartPanelEditor.tsx
  34. 1 3
      public/app/plugins/panel/singlestat2/SingleStatEditor.tsx

+ 5 - 0
packages/grafana-data/src/types/dataLink.ts

@@ -0,0 +1,5 @@
+export interface DataLink {
+  url: string;
+  title: string;
+  targetBlank?: boolean;
+}

+ 3 - 0
packages/grafana-data/src/types/index.ts

@@ -1,5 +1,8 @@
 export * from './data';
+export * from './dataLink';
 export * from './logs';
 export * from './navModel';
 export * from './time';
+export * from './threshold';
 export * from './utils';
+export * from './valueMapping';

+ 0 - 0
packages/grafana-ui/src/types/threshold.ts → packages/grafana-data/src/types/threshold.ts


+ 22 - 0
packages/grafana-data/src/types/valueMapping.ts

@@ -0,0 +1,22 @@
+export enum MappingType {
+  ValueToText = 1,
+  RangeToText = 2,
+}
+
+interface BaseMap {
+  id: number;
+  operator: string;
+  text: string;
+  type: MappingType;
+}
+
+export type ValueMapping = ValueMap | RangeMap;
+
+export interface ValueMap extends BaseMap {
+  value: string;
+}
+
+export interface RangeMap extends BaseMap {
+  from: string;
+  to: string;
+}

+ 3 - 0
packages/grafana-data/src/utils/index.ts

@@ -9,6 +9,9 @@ export * from './labels';
 export * from './object';
 export * from './fieldCache';
 export * from './moment_wrapper';
+export * from './thresholds';
+
+export { getMappedValue } from './valueMappings';
 
 // Names are too general to export globally
 import * as dateMath from './datemath';

+ 0 - 0
packages/grafana-ui/src/utils/thresholds.ts → packages/grafana-data/src/utils/thresholds.ts


+ 1 - 1
packages/grafana-ui/src/utils/valueMappings.test.ts → packages/grafana-data/src/utils/valueMappings.test.ts

@@ -1,5 +1,5 @@
 import { getMappedValue } from './valueMappings';
-import { ValueMapping, MappingType } from '../types/panel';
+import { ValueMapping, MappingType } from '../types';
 
 describe('Format value with value mappings', () => {
   it('should return undefined with no valuemappings', () => {

+ 1 - 1
packages/grafana-ui/src/utils/valueMappings.ts → packages/grafana-data/src/utils/valueMappings.ts

@@ -1,6 +1,6 @@
 import { ValueMapping, MappingType, ValueMap, RangeMap } from '../types';
 
-export type TimeSeriesValue = string | number | null;
+type TimeSeriesValue = string | number | null;
 
 const addValueToTextMappingText = (
   allValueMappings: ValueMapping[],

+ 3 - 3
packages/grafana-ui/src/components/BarGauge/BarGauge.tsx

@@ -3,11 +3,11 @@ import React, { PureComponent, CSSProperties, ReactNode } from 'react';
 import tinycolor from 'tinycolor2';
 
 // Utils
-import { getColorFromHexRgbOrName, getThresholdForValue } from '../../utils';
+import { getColorFromHexRgbOrName } from '../../utils';
 
 // Types
-import { DisplayValue, Themeable, Threshold, VizOrientation } from '../../types';
-import { TimeSeriesValue } from '@grafana/data';
+import { DisplayValue, Themeable, VizOrientation } from '../../types';
+import { Threshold, TimeSeriesValue, getThresholdForValue } from '@grafana/data';
 
 const MIN_VALUE_HEIGHT = 18;
 const MAX_VALUE_HEIGHT = 50;

+ 1 - 1
packages/grafana-ui/src/components/DataLinks/DataLinkEditor.tsx

@@ -1,5 +1,5 @@
 import React, { useState, ChangeEvent, useContext } from 'react';
-import { DataLink } from '../../index';
+import { DataLink } from '@grafana/data';
 import { FormField, Switch } from '../index';
 import { VariableSuggestion } from './DataLinkSuggestions';
 import { css, cx } from 'emotion';

+ 2 - 1
packages/grafana-ui/src/components/DataLinks/DataLinksEditor.tsx

@@ -4,7 +4,8 @@ import React, { FC, useContext } from 'react';
 import Prism from 'prismjs';
 // Components
 import { css } from 'emotion';
-import { DataLink, ThemeContext } from '../../index';
+import { DataLink } from '@grafana/data';
+import { ThemeContext } from '../../index';
 import { Button } from '../index';
 import { DataLinkEditor } from './DataLinkEditor';
 import { VariableSuggestion } from './DataLinkSuggestions';

+ 2 - 1
packages/grafana-ui/src/components/Gauge/Gauge.tsx

@@ -1,8 +1,9 @@
 import React, { PureComponent } from 'react';
 import $ from 'jquery';
 import { getColorFromHexRgbOrName } from '../../utils';
-import { DisplayValue, Threshold, Themeable } from '../../types';
+import { DisplayValue, Themeable } from '../../types';
 import { selectThemeVariant } from '../../themes';
+import { Threshold } from '@grafana/data';
 
 export interface Props extends Themeable {
   height: number;

+ 1 - 1
packages/grafana-ui/src/components/ThresholdsEditor/ThresholdsEditor.tsx

@@ -1,5 +1,5 @@
 import React, { PureComponent, ChangeEvent } from 'react';
-import { Threshold } from '../../types';
+import { Threshold } from '@grafana/data';
 import { colors } from '../../utils';
 import { ThemeContext } from '../../themes';
 import { getColorFromHexRgbOrName } from '../../utils';

+ 1 - 1
packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx

@@ -2,7 +2,7 @@ import React, { ChangeEvent, PureComponent } from 'react';
 
 import { FormField, FormLabel, Input, Select } from '..';
 
-import { MappingType, ValueMapping } from '../../types';
+import { MappingType, ValueMapping } from '@grafana/data';
 
 export interface Props {
   valueMapping: ValueMapping;

+ 1 - 1
packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.test.tsx

@@ -2,7 +2,7 @@ import React from 'react';
 import { shallow } from 'enzyme';
 
 import { ValueMappingsEditor, Props } from './ValueMappingsEditor';
-import { MappingType } from '../../types';
+import { MappingType } from '@grafana/data';
 
 const setup = (propOverrides?: object) => {
   const props: Props = {

+ 1 - 1
packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.tsx

@@ -1,7 +1,7 @@
 import React, { PureComponent } from 'react';
 
 import MappingRow from './MappingRow';
-import { MappingType, ValueMapping } from '../../types';
+import { MappingType, ValueMapping } from '@grafana/data';
 import { PanelOptionsGroup } from '../PanelOptionsGroup/PanelOptionsGroup';
 
 export interface Props {

+ 0 - 1
packages/grafana-ui/src/types/index.ts

@@ -4,6 +4,5 @@ export * from './app';
 export * from './datasource';
 export * from './theme';
 export * from './graph';
-export * from './threshold';
 export * from './input';
 export * from './displayValue';

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

@@ -123,35 +123,6 @@ export interface PanelMenuItem {
   subMenu?: PanelMenuItem[];
 }
 
-export enum MappingType {
-  ValueToText = 1,
-  RangeToText = 2,
-}
-
-interface BaseMap {
-  id: number;
-  operator: string;
-  text: string;
-  type: MappingType;
-}
-
-export type ValueMapping = ValueMap | RangeMap;
-
-export interface ValueMap extends BaseMap {
-  value: string;
-}
-
-export interface RangeMap extends BaseMap {
-  from: string;
-  to: string;
-}
-
-export interface DataLink {
-  url: string;
-  title: string;
-  targetBlank?: boolean;
-}
-
 export enum VizOrientation {
   Auto = 'auto',
   Vertical = 'vertical',

+ 2 - 1
packages/grafana-ui/src/utils/displayValue.test.ts

@@ -1,5 +1,6 @@
 import { getDisplayProcessor, getColorFromThreshold, DisplayProcessor, getDecimalsForValue } from './displayValue';
-import { DisplayValue, MappingType, ValueMapping } from '../types';
+import { DisplayValue } from '../types';
+import { MappingType, ValueMapping } from '@grafana/data';
 
 function assertSame(input: any, processors: DisplayProcessor[], match: DisplayValue) {
   processors.forEach(processor => {

+ 2 - 11
packages/grafana-ui/src/utils/displayValue.ts

@@ -3,20 +3,11 @@ import _ from 'lodash';
 
 // Utils
 import { getValueFormat } from './valueFormats/valueFormats';
-import { getMappedValue } from './valueMappings';
 import { getColorFromHexRgbOrName } from './namedColorsPalette';
 
 // Types
-import {
-  Threshold,
-  ValueMapping,
-  DecimalInfo,
-  DisplayValue,
-  GrafanaTheme,
-  GrafanaThemeType,
-  DecimalCount,
-} from '../types';
-import { DateTime, dateTime, Field } from '@grafana/data';
+import { DecimalInfo, DisplayValue, GrafanaTheme, GrafanaThemeType, DecimalCount } from '../types';
+import { DateTime, dateTime, Threshold, ValueMapping, getMappedValue, Field } from '@grafana/data';
 
 export type DisplayProcessor = (value: any) => DisplayValue;
 

+ 10 - 9
packages/grafana-ui/src/utils/fieldDisplay.ts

@@ -1,18 +1,19 @@
 import toNumber from 'lodash/toNumber';
 import toString from 'lodash/toString';
 
+import { DisplayValue, GrafanaTheme, InterpolateFunction, ScopedVars, GraphSeriesValue } from '../types/index';
+import { getDisplayProcessor } from './displayValue';
+import { getFlotPairs } from './flotPairs';
 import {
   ValueMapping,
   Threshold,
-  DisplayValue,
-  GrafanaTheme,
-  InterpolateFunction,
-  ScopedVars,
-  GraphSeriesValue,
-} from '../types/index';
-import { getDisplayProcessor } from './displayValue';
-import { getFlotPairs } from './flotPairs';
-import { ReducerID, reduceField, FieldType, NullValueMode, DataFrame, Field } from '@grafana/data';
+  ReducerID,
+  reduceField,
+  FieldType,
+  NullValueMode,
+  DataFrame,
+  Field,
+} from '@grafana/data';
 
 export interface FieldDisplayOptions {
   values?: boolean; // If true show each row value

+ 0 - 2
packages/grafana-ui/src/utils/index.ts

@@ -1,11 +1,9 @@
 export * from './valueFormats/valueFormats';
 export * from './colors';
 export * from './namedColorsPalette';
-export * from './thresholds';
 export * from './displayValue';
 export * from './fieldDisplay';
 export * from './deprecationWarning';
-export { getMappedValue } from './valueMappings';
 export * from './validate';
 export { getFlotPairs } from './flotPairs';
 export * from './slate';

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

@@ -9,7 +9,8 @@ import templateSrv from 'app/features/templating/template_srv';
 
 import { DashboardModel } from 'app/features/dashboard/state/DashboardModel';
 import { PanelModel } from 'app/features/dashboard/state/PanelModel';
-import { ClickOutsideWrapper, DataLink } from '@grafana/ui';
+import { ClickOutsideWrapper } from '@grafana/ui';
+import { DataLink } from '@grafana/data';
 
 export interface Props {
   panel: PanelModel;

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

@@ -1,7 +1,8 @@
 import React, { Component } from 'react';
 
 import { renderMarkdown } from '@grafana/data';
-import { Tooltip, ScopedVars, DataLink } from '@grafana/ui';
+import { Tooltip, ScopedVars } from '@grafana/ui';
+import { DataLink } from '@grafana/data';
 
 import { PanelModel } from 'app/features/dashboard/state/PanelModel';
 import templateSrv from 'app/features/templating/template_srv';

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

@@ -8,7 +8,8 @@ import './../../panel/GeneralTabCtrl';
 
 // Types
 import { PanelModel } from '../state/PanelModel';
-import { DataLink, PanelOptionsGroup, DataLinksEditor } from '@grafana/ui';
+import { DataLink } from '@grafana/data';
+import { PanelOptionsGroup, DataLinksEditor } from '@grafana/ui';
 import { getPanelLinksVariableSuggestions } from 'app/features/panel/panellinks/link_srv';
 
 interface Props {

+ 1 - 1
public/app/features/dashboard/state/DashboardMigrator.ts

@@ -9,7 +9,7 @@ import kbn from 'app/core/utils/kbn';
 // Types
 import { PanelModel } from './PanelModel';
 import { DashboardModel } from './DashboardModel';
-import { DataLink } from '@grafana/ui/src/types/panel';
+import { DataLink } from '@grafana/data';
 
 // Constants
 import {

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

@@ -6,7 +6,9 @@ import { Emitter } from 'app/core/utils/emitter';
 import { getNextRefIdChar } from 'app/core/utils/query';
 
 // Types
-import { DataQuery, ScopedVars, DataQueryResponseData, PanelPlugin, DataLink } from '@grafana/ui';
+import { DataQuery, ScopedVars, DataQueryResponseData, PanelPlugin } from '@grafana/ui';
+import { DataLink } from '@grafana/data';
+
 import config from 'app/core/config';
 
 import { PanelQueryRunner } from './PanelQueryRunner';

+ 2 - 3
public/app/features/panel/panellinks/link_srv.ts

@@ -3,9 +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 { DataLink, VariableSuggestion, KeyValue, ScopedVars } from '@grafana/ui';
-import { TimeSeriesValue, DateTime, dateTime } from '@grafana/data';
-import { deprecationWarning, VariableOrigin } from '@grafana/ui';
+import { VariableSuggestion, KeyValue, ScopedVars, deprecationWarning, VariableOrigin } from '@grafana/ui';
+import { TimeSeriesValue, DateTime, dateTime, DataLink } from '@grafana/data';
 
 export const DataLinkBuiltInVars = {
   keepTime: '__url_time_range',

+ 4 - 3
public/app/plugins/panel/bargauge/BarGaugePanelEditor.tsx

@@ -1,7 +1,6 @@
 // Libraries
 import React, { PureComponent } from 'react';
 
-// Components
 import {
   ThresholdsEditor,
   ValueMappingsEditor,
@@ -10,11 +9,13 @@ import {
   FieldDisplayOptions,
   FieldPropertiesEditor,
   PanelOptionsGroup,
+  FormLabel,
+  PanelEditorProps,
+  Select,
 } from '@grafana/ui';
 import { Field } from '@grafana/data';
 
-// Types
-import { FormLabel, PanelEditorProps, Threshold, Select, ValueMapping } from '@grafana/ui';
+import { Threshold, ValueMapping } from '@grafana/data';
 import { BarGaugeOptions, orientationOptions, displayModes } from './types';
 
 export class BarGaugePanelEditor extends PureComponent<PanelEditorProps<BarGaugeOptions>> {

+ 1 - 3
public/app/plugins/panel/gauge/GaugePanelEditor.tsx

@@ -3,17 +3,15 @@ import React, { PureComponent } from 'react';
 import {
   PanelEditorProps,
   ThresholdsEditor,
-  Threshold,
   PanelOptionsGrid,
   ValueMappingsEditor,
-  ValueMapping,
   FieldDisplayOptions,
   FieldDisplayEditor,
   FieldPropertiesEditor,
   Switch,
   PanelOptionsGroup,
 } from '@grafana/ui';
-import { Field } from '@grafana/data';
+import { Field, Threshold, ValueMapping } from '@grafana/data';
 
 import { GaugeOptions } from './types';
 

+ 2 - 2
public/app/plugins/panel/graph/graph.ts

@@ -25,9 +25,9 @@ import ReactDOM from 'react-dom';
 import { GraphLegendProps, Legend } from './Legend/Legend';
 
 import { GraphCtrl } from './module';
-import { getValueFormat, ContextMenuItem, ContextMenuGroup, DataLink } from '@grafana/ui';
+import { getValueFormat, ContextMenuItem, ContextMenuGroup } from '@grafana/ui';
 import { provideTheme } from 'app/core/utils/ConfigProvider';
-import { toUtc } from '@grafana/data';
+import { DataLink, toUtc } from '@grafana/data';
 import { GraphContextMenuCtrl, FlotDataPoint } from './GraphContextMenuCtrl';
 import { TimeSrv } from 'app/features/dashboard/services/TimeSrv';
 import { ContextSrv } from 'app/core/services/context_srv';

+ 2 - 2
public/app/plugins/panel/graph/module.ts

@@ -11,8 +11,8 @@ import { DataProcessor } from './data_processor';
 import { axesEditorComponent } from './axes_editor';
 import config from 'app/core/config';
 import TimeSeries from 'app/core/time_series2';
-import { DataFrame } from '@grafana/data';
-import { getColorFromHexRgbOrName, LegacyResponseData, DataLink, VariableSuggestion } from '@grafana/ui';
+import { DataFrame, DataLink } from '@grafana/data';
+import { getColorFromHexRgbOrName, LegacyResponseData, VariableSuggestion } from '@grafana/ui';
 import { getProcessedDataFrame } from 'app/features/dashboard/state/PanelQueryState';
 import { PanelQueryRunnerFormat } from 'app/features/dashboard/state/PanelQueryRunner';
 import { GraphContextMenuCtrl } from './GraphContextMenuCtrl';

+ 1 - 2
public/app/plugins/panel/piechart/PieChartPanelEditor.tsx

@@ -3,13 +3,12 @@ import {
   PanelEditorProps,
   PanelOptionsGrid,
   ValueMappingsEditor,
-  ValueMapping,
   FieldDisplayEditor,
   FieldDisplayOptions,
   FieldPropertiesEditor,
   PanelOptionsGroup,
 } from '@grafana/ui';
-import { Field } from '@grafana/data';
+import { ValueMapping, Field } from '@grafana/data';
 
 import { PieChartOptionsBox } from './PieChartOptionsBox';
 import { PieChartOptions } from './types';

+ 1 - 3
public/app/plugins/panel/singlestat2/SingleStatEditor.tsx

@@ -3,16 +3,14 @@ import React, { PureComponent } from 'react';
 import {
   PanelEditorProps,
   ThresholdsEditor,
-  Threshold,
   PanelOptionsGrid,
   ValueMappingsEditor,
-  ValueMapping,
   FieldDisplayOptions,
   FieldDisplayEditor,
   FieldPropertiesEditor,
   PanelOptionsGroup,
 } from '@grafana/ui';
-import { Field } from '@grafana/data';
+import { Threshold, ValueMapping, Field } from '@grafana/data';
 
 import { SingleStatOptions, SparklineOptions } from './types';
 import { ColoringEditor } from './ColoringEditor';