mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Schema: Fix dimension schemas (#67935)
This commit is contained in:
parent
0ce7f7eaf4
commit
854d497f94
@ -2652,8 +2652,7 @@ exports[`better eslint`] = {
|
|||||||
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
|
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
|
||||||
],
|
],
|
||||||
"public/app/features/dimensions/types.ts:5381": [
|
"public/app/features/dimensions/types.ts:5381": [
|
||||||
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
|
[0, 0, 0, "Unexpected any. Specify a different type.", "0"]
|
||||||
[0, 0, 0, "Unexpected any. Specify a different type.", "1"]
|
|
||||||
],
|
],
|
||||||
"public/app/features/dimensions/utils.ts:5381": [
|
"public/app/features/dimensions/utils.ts:5381": [
|
||||||
[0, 0, 0, "Do not use any type assertions.", "0"],
|
[0, 0, 0, "Do not use any type assertions.", "0"],
|
||||||
|
@ -52,19 +52,39 @@ export interface DataQuery {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface BaseDimensionConfig {
|
export interface BaseDimensionConfig {
|
||||||
|
/**
|
||||||
|
* fixed: T -- will be added by each element
|
||||||
|
*/
|
||||||
field?: string;
|
field?: string;
|
||||||
fixed: (string | number);
|
}
|
||||||
|
|
||||||
|
export enum ScaleDimensionMode {
|
||||||
|
Linear = 'linear',
|
||||||
|
Quad = 'quad',
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ScaleDimensionConfig extends BaseDimensionConfig {
|
export interface ScaleDimensionConfig extends BaseDimensionConfig {
|
||||||
|
fixed?: number;
|
||||||
max: number;
|
max: number;
|
||||||
min: number;
|
min: number;
|
||||||
|
mode?: ScaleDimensionMode; // | *"linear"
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
export interface ColorDimensionConfig extends BaseDimensionConfig {
|
||||||
* This is actually an empty interface used mainly for naming?
|
fixed?: string; // color value
|
||||||
*/
|
}
|
||||||
export interface ColorDimensionConfig extends BaseDimensionConfig {}
|
|
||||||
|
export enum ScalarDimensionMode {
|
||||||
|
Clamped = 'clamped',
|
||||||
|
Mod = 'mod',
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ScalarDimensionConfig extends BaseDimensionConfig {
|
||||||
|
fixed?: number;
|
||||||
|
max: number;
|
||||||
|
min: number;
|
||||||
|
mode?: ScalarDimensionMode;
|
||||||
|
}
|
||||||
|
|
||||||
export enum TextDimensionMode {
|
export enum TextDimensionMode {
|
||||||
Field = 'field',
|
Field = 'field',
|
||||||
@ -72,6 +92,17 @@ export enum TextDimensionMode {
|
|||||||
Template = 'template',
|
Template = 'template',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface TextDimensionConfig extends BaseDimensionConfig {
|
||||||
|
fixed?: string;
|
||||||
|
mode: TextDimensionMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum ResourceDimensionMode {
|
||||||
|
Field = 'field',
|
||||||
|
Fixed = 'fixed',
|
||||||
|
Mapping = 'mapping',
|
||||||
|
}
|
||||||
|
|
||||||
export interface MapLayerOptions {
|
export interface MapLayerOptions {
|
||||||
/**
|
/**
|
||||||
* Custom options depending on the type
|
* Custom options depending on the type
|
||||||
@ -785,8 +816,12 @@ export interface DataSourceRef {
|
|||||||
uid?: string;
|
uid?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TextDimensionConfig extends BaseDimensionConfig {
|
/**
|
||||||
mode: TextDimensionMode;
|
* Links to a resource (image/svg path)
|
||||||
|
*/
|
||||||
|
export interface ResourceDimensionConfig extends BaseDimensionConfig {
|
||||||
|
fixed?: string;
|
||||||
|
mode: ResourceDimensionMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FrameGeometrySource {
|
export interface FrameGeometrySource {
|
||||||
|
@ -2,19 +2,32 @@ package common
|
|||||||
|
|
||||||
BaseDimensionConfig: {
|
BaseDimensionConfig: {
|
||||||
field?: string
|
field?: string
|
||||||
fixed: string | number
|
// fixed: T -- will be added by each element
|
||||||
}@cuetsy(kind="interface")
|
}@cuetsy(kind="interface")
|
||||||
|
|
||||||
|
ScaleDimensionMode: "linear" | "quad" @cuetsy(kind="enum")
|
||||||
|
|
||||||
ScaleDimensionConfig: {
|
ScaleDimensionConfig: {
|
||||||
BaseDimensionConfig
|
BaseDimensionConfig
|
||||||
min: int32
|
min: number
|
||||||
max: int32
|
max: number
|
||||||
|
fixed?: number
|
||||||
|
mode?: ScaleDimensionMode // | *"linear"
|
||||||
}@cuetsy(kind="interface")
|
}@cuetsy(kind="interface")
|
||||||
|
|
||||||
// This is actually an empty interface used mainly for naming?
|
|
||||||
ColorDimensionConfig: {
|
ColorDimensionConfig: {
|
||||||
BaseDimensionConfig
|
BaseDimensionConfig
|
||||||
_empty: _
|
fixed?: string // color value
|
||||||
|
}@cuetsy(kind="interface")
|
||||||
|
|
||||||
|
ScalarDimensionMode: "mod" | "clamped" @cuetsy(kind="enum")
|
||||||
|
|
||||||
|
ScalarDimensionConfig: {
|
||||||
|
BaseDimensionConfig
|
||||||
|
min: number
|
||||||
|
max: number
|
||||||
|
fixed?: number
|
||||||
|
mode?: ScalarDimensionMode
|
||||||
}@cuetsy(kind="interface")
|
}@cuetsy(kind="interface")
|
||||||
|
|
||||||
TextDimensionMode: "fixed" | "field" | "template" @cuetsy(kind="enum")
|
TextDimensionMode: "fixed" | "field" | "template" @cuetsy(kind="enum")
|
||||||
@ -22,4 +35,15 @@ TextDimensionMode: "fixed" | "field" | "template" @cuetsy(kind="enum")
|
|||||||
TextDimensionConfig: {
|
TextDimensionConfig: {
|
||||||
BaseDimensionConfig
|
BaseDimensionConfig
|
||||||
mode: TextDimensionMode
|
mode: TextDimensionMode
|
||||||
|
fixed?: string
|
||||||
}@cuetsy(kind="interface")
|
}@cuetsy(kind="interface")
|
||||||
|
|
||||||
|
ResourceDimensionMode: "fixed" | "field" | "mapping" @cuetsy(kind="enum")
|
||||||
|
|
||||||
|
// Links to a resource (image/svg path)
|
||||||
|
ResourceDimensionConfig: {
|
||||||
|
BaseDimensionConfig
|
||||||
|
mode: ResourceDimensionMode
|
||||||
|
fixed?: string
|
||||||
|
}@cuetsy(kind="interface")
|
||||||
|
|
||||||
|
@ -23,10 +23,18 @@ export interface BaseDimensionConfig<T = string | number> extends Omit<raw.BaseD
|
|||||||
|
|
||||||
export interface ScaleDimensionConfig extends BaseDimensionConfig<number>, Omit<raw.ScaleDimensionConfig, 'fixed'> {}
|
export interface ScaleDimensionConfig extends BaseDimensionConfig<number>, Omit<raw.ScaleDimensionConfig, 'fixed'> {}
|
||||||
|
|
||||||
|
export interface ScalarDimensionConfig extends BaseDimensionConfig<number>, Omit<raw.ScalarDimensionConfig, 'fixed'> {}
|
||||||
|
|
||||||
export interface TextDimensionConfig extends BaseDimensionConfig<string>, Omit<raw.TextDimensionConfig, 'fixed'> {}
|
export interface TextDimensionConfig extends BaseDimensionConfig<string>, Omit<raw.TextDimensionConfig, 'fixed'> {}
|
||||||
|
|
||||||
export interface ColorDimensionConfig extends BaseDimensionConfig<string>, Omit<raw.ColorDimensionConfig, 'fixed'> {}
|
export interface ColorDimensionConfig extends BaseDimensionConfig<string>, Omit<raw.ColorDimensionConfig, 'fixed'> {}
|
||||||
|
|
||||||
|
export interface ColorDimensionConfig extends BaseDimensionConfig<string>, Omit<raw.ColorDimensionConfig, 'fixed'> {}
|
||||||
|
|
||||||
|
export interface ResourceDimensionConfig
|
||||||
|
extends BaseDimensionConfig<string>,
|
||||||
|
Omit<raw.ResourceDimensionConfig, 'fixed'> {}
|
||||||
|
|
||||||
export * from '../common/common.gen';
|
export * from '../common/common.gen';
|
||||||
|
|
||||||
// TODO remove when https://github.com/grafana/cuetsy/issues/74 is fixed
|
// TODO remove when https://github.com/grafana/cuetsy/issues/74 is fixed
|
||||||
|
@ -2,9 +2,10 @@ import { ComponentType } from 'react';
|
|||||||
|
|
||||||
import { RegistryItem } from '@grafana/data';
|
import { RegistryItem } from '@grafana/data';
|
||||||
import { PanelOptionsSupplier } from '@grafana/data/src/panel/PanelPlugin';
|
import { PanelOptionsSupplier } from '@grafana/data/src/panel/PanelPlugin';
|
||||||
|
import { ColorDimensionConfig, ScaleDimensionConfig } from '@grafana/schema';
|
||||||
import { config } from 'app/core/config';
|
import { config } from 'app/core/config';
|
||||||
|
|
||||||
import { DimensionContext, ColorDimensionConfig, ScaleDimensionConfig } from '../dimensions';
|
import { DimensionContext } from '../dimensions';
|
||||||
|
|
||||||
import { BackgroundConfig, Constraint, LineConfig, Placement } from './types';
|
import { BackgroundConfig, Constraint, LineConfig, Placement } from './types';
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import React, { PureComponent } from 'react';
|
import React, { PureComponent } from 'react';
|
||||||
|
|
||||||
import { PluginState } from '@grafana/data/src';
|
import { PluginState } from '@grafana/data/src';
|
||||||
|
import { TextDimensionConfig } from '@grafana/schema';
|
||||||
import { Button } from '@grafana/ui';
|
import { Button } from '@grafana/ui';
|
||||||
import { DimensionContext } from 'app/features/dimensions/context';
|
import { DimensionContext } from 'app/features/dimensions/context';
|
||||||
import { TextDimensionEditor } from 'app/features/dimensions/editors/TextDimensionEditor';
|
import { TextDimensionEditor } from 'app/features/dimensions/editors/TextDimensionEditor';
|
||||||
import { TextDimensionConfig } from 'app/features/dimensions/types';
|
|
||||||
import { APIEditor, APIEditorConfig, callApi } from 'app/plugins/panel/canvas/editor/APIEditor';
|
import { APIEditor, APIEditorConfig, callApi } from 'app/plugins/panel/canvas/editor/APIEditor';
|
||||||
|
|
||||||
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
||||||
|
@ -2,8 +2,9 @@ import { css } from '@emotion/css';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2 } from '@grafana/data';
|
import { GrafanaTheme2 } from '@grafana/data';
|
||||||
|
import { ScalarDimensionConfig } from '@grafana/schema';
|
||||||
import { useStyles2 } from '@grafana/ui';
|
import { useStyles2 } from '@grafana/ui';
|
||||||
import { DimensionContext, ScalarDimensionConfig } from 'app/features/dimensions';
|
import { DimensionContext } from 'app/features/dimensions';
|
||||||
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
||||||
|
|
||||||
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
||||||
|
@ -2,8 +2,9 @@ import { css } from '@emotion/css';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2 } from '@grafana/data';
|
import { GrafanaTheme2 } from '@grafana/data';
|
||||||
|
import { ScalarDimensionConfig } from '@grafana/schema';
|
||||||
import { useStyles2 } from '@grafana/ui';
|
import { useStyles2 } from '@grafana/ui';
|
||||||
import { DimensionContext, ScalarDimensionConfig } from 'app/features/dimensions';
|
import { DimensionContext } from 'app/features/dimensions';
|
||||||
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
||||||
|
|
||||||
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
||||||
|
@ -2,8 +2,9 @@ import { css } from '@emotion/css';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2 } from '@grafana/data';
|
import { GrafanaTheme2 } from '@grafana/data';
|
||||||
|
import { ScalarDimensionConfig } from '@grafana/schema';
|
||||||
import { useStyles2 } from '@grafana/ui';
|
import { useStyles2 } from '@grafana/ui';
|
||||||
import { DimensionContext, ScalarDimensionConfig } from 'app/features/dimensions';
|
import { DimensionContext } from 'app/features/dimensions';
|
||||||
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
||||||
|
|
||||||
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
||||||
|
@ -2,13 +2,9 @@ import { css } from '@emotion/css';
|
|||||||
import { isString } from 'lodash';
|
import { isString } from 'lodash';
|
||||||
import React, { CSSProperties } from 'react';
|
import React, { CSSProperties } from 'react';
|
||||||
|
|
||||||
|
import { ColorDimensionConfig, ResourceDimensionConfig, ResourceDimensionMode } from '@grafana/schema';
|
||||||
import { SanitizedSVG } from 'app/core/components/SVG/SanitizedSVG';
|
import { SanitizedSVG } from 'app/core/components/SVG/SanitizedSVG';
|
||||||
import {
|
import { getPublicOrAbsoluteUrl } from 'app/features/dimensions';
|
||||||
ColorDimensionConfig,
|
|
||||||
ResourceDimensionConfig,
|
|
||||||
ResourceDimensionMode,
|
|
||||||
getPublicOrAbsoluteUrl,
|
|
||||||
} from 'app/features/dimensions';
|
|
||||||
import { DimensionContext } from 'app/features/dimensions/context';
|
import { DimensionContext } from 'app/features/dimensions/context';
|
||||||
import { ColorDimensionEditor, ResourceDimensionEditor } from 'app/features/dimensions/editors';
|
import { ColorDimensionEditor, ResourceDimensionEditor } from 'app/features/dimensions/editors';
|
||||||
import { APIEditorConfig, callApi } from 'app/plugins/panel/canvas/editor/APIEditor';
|
import { APIEditorConfig, callApi } from 'app/plugins/panel/canvas/editor/APIEditor';
|
||||||
|
@ -4,9 +4,9 @@ import { useObservable } from 'react-use';
|
|||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
|
|
||||||
import { DataFrame, FieldNamePickerConfigSettings, GrafanaTheme2, StandardEditorsRegistryItem } from '@grafana/data';
|
import { DataFrame, FieldNamePickerConfigSettings, GrafanaTheme2, StandardEditorsRegistryItem } from '@grafana/data';
|
||||||
|
import { TextDimensionMode } from '@grafana/schema';
|
||||||
import { usePanelContext, useStyles2 } from '@grafana/ui';
|
import { usePanelContext, useStyles2 } from '@grafana/ui';
|
||||||
import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker';
|
import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker';
|
||||||
import { TextDimensionMode } from 'app/features/dimensions';
|
|
||||||
import { DimensionContext } from 'app/features/dimensions/context';
|
import { DimensionContext } from 'app/features/dimensions/context';
|
||||||
import { ColorDimensionEditor } from 'app/features/dimensions/editors/ColorDimensionEditor';
|
import { ColorDimensionEditor } from 'app/features/dimensions/editors/ColorDimensionEditor';
|
||||||
import { TextDimensionEditor } from 'app/features/dimensions/editors/TextDimensionEditor';
|
import { TextDimensionEditor } from 'app/features/dimensions/editors/TextDimensionEditor';
|
||||||
|
@ -2,8 +2,9 @@ import { css } from '@emotion/css';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2 } from '@grafana/data';
|
import { GrafanaTheme2 } from '@grafana/data';
|
||||||
|
import { ColorDimensionConfig, ScalarDimensionConfig } from '@grafana/schema';
|
||||||
import config from 'app/core/config';
|
import config from 'app/core/config';
|
||||||
import { ColorDimensionConfig, DimensionContext, ScalarDimensionConfig } from 'app/features/dimensions';
|
import { DimensionContext } from 'app/features/dimensions';
|
||||||
import { ColorDimensionEditor, ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
import { ColorDimensionEditor, ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
||||||
|
|
||||||
import { CanvasElementItem, CanvasElementProps } from '../../element';
|
import { CanvasElementItem, CanvasElementProps } from '../../element';
|
||||||
|
@ -2,8 +2,9 @@ import { css } from '@emotion/css';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2 } from '@grafana/data';
|
import { GrafanaTheme2 } from '@grafana/data';
|
||||||
|
import { ScalarDimensionConfig } from '@grafana/schema';
|
||||||
import { useStyles2 } from '@grafana/ui';
|
import { useStyles2 } from '@grafana/ui';
|
||||||
import { DimensionContext, ScalarDimensionConfig } from 'app/features/dimensions';
|
import { DimensionContext } from 'app/features/dimensions';
|
||||||
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
import { ScalarDimensionEditor } from 'app/features/dimensions/editors';
|
||||||
|
|
||||||
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
import { CanvasElementItem, CanvasElementProps, defaultBgColor } from '../element';
|
||||||
|
@ -7,17 +7,17 @@ import Selecto from 'selecto';
|
|||||||
|
|
||||||
import { AppEvents, GrafanaTheme2, PanelData } from '@grafana/data';
|
import { AppEvents, GrafanaTheme2, PanelData } from '@grafana/data';
|
||||||
import { locationService } from '@grafana/runtime/src';
|
import { locationService } from '@grafana/runtime/src';
|
||||||
import { Portal, stylesFactory } from '@grafana/ui';
|
|
||||||
import { config } from 'app/core/config';
|
|
||||||
import { CanvasFrameOptions, DEFAULT_CANVAS_ELEMENT_CONFIG } from 'app/features/canvas';
|
|
||||||
import {
|
import {
|
||||||
ColorDimensionConfig,
|
ColorDimensionConfig,
|
||||||
DimensionContext,
|
|
||||||
ResourceDimensionConfig,
|
ResourceDimensionConfig,
|
||||||
ScalarDimensionConfig,
|
ScalarDimensionConfig,
|
||||||
ScaleDimensionConfig,
|
ScaleDimensionConfig,
|
||||||
TextDimensionConfig,
|
TextDimensionConfig,
|
||||||
} from 'app/features/dimensions';
|
} from '@grafana/schema';
|
||||||
|
import { Portal, stylesFactory } from '@grafana/ui';
|
||||||
|
import { config } from 'app/core/config';
|
||||||
|
import { CanvasFrameOptions, DEFAULT_CANVAS_ELEMENT_CONFIG } from 'app/features/canvas';
|
||||||
|
import { DimensionContext } from 'app/features/dimensions';
|
||||||
import {
|
import {
|
||||||
getColorDimensionFromData,
|
getColorDimensionFromData,
|
||||||
getResourceDimensionFromData,
|
getResourceDimensionFromData,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { LinkModel } from '@grafana/data/src';
|
import { LinkModel } from '@grafana/data/src';
|
||||||
import { ColorDimensionConfig, ResourceDimensionConfig, TextDimensionConfig } from 'app/features/dimensions/types';
|
import { ColorDimensionConfig, ResourceDimensionConfig, TextDimensionConfig } from '@grafana/schema';
|
||||||
|
|
||||||
export interface Placement {
|
export interface Placement {
|
||||||
top?: number;
|
top?: number;
|
||||||
|
@ -6,8 +6,9 @@ import {
|
|||||||
GrafanaTheme2,
|
GrafanaTheme2,
|
||||||
getFieldConfigWithMinMax,
|
getFieldConfigWithMinMax,
|
||||||
} from '@grafana/data';
|
} from '@grafana/data';
|
||||||
|
import { ColorDimensionConfig } from '@grafana/schema';
|
||||||
|
|
||||||
import { ColorDimensionConfig, DimensionSupplier } from './types';
|
import { DimensionSupplier } from './types';
|
||||||
import { findField, getLastNotNullFieldValue } from './utils';
|
import { findField, getLastNotNullFieldValue } from './utils';
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import { PanelData } from '@grafana/data/src';
|
import { PanelData } from '@grafana/data/src';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ColorDimensionConfig,
|
ColorDimensionConfig,
|
||||||
DimensionSupplier,
|
|
||||||
ResourceDimensionConfig,
|
ResourceDimensionConfig,
|
||||||
ScalarDimensionConfig,
|
ScalarDimensionConfig,
|
||||||
ScaleDimensionConfig,
|
ScaleDimensionConfig,
|
||||||
TextDimensionConfig,
|
TextDimensionConfig,
|
||||||
} from './types';
|
} from '@grafana/schema';
|
||||||
|
|
||||||
|
import { DimensionSupplier } from './types';
|
||||||
|
|
||||||
export interface DimensionContext {
|
export interface DimensionContext {
|
||||||
getColor(color: ColorDimensionConfig): DimensionSupplier<string>;
|
getColor(color: ColorDimensionConfig): DimensionSupplier<string>;
|
||||||
|
@ -2,11 +2,10 @@ import { css } from '@emotion/css';
|
|||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2, SelectableValue, StandardEditorProps } from '@grafana/data';
|
import { GrafanaTheme2, SelectableValue, StandardEditorProps } from '@grafana/data';
|
||||||
|
import { ColorDimensionConfig } from '@grafana/schema';
|
||||||
import { Select, ColorPicker, useStyles2 } from '@grafana/ui';
|
import { Select, ColorPicker, useStyles2 } from '@grafana/ui';
|
||||||
import { useFieldDisplayNames, useSelectOptions } from '@grafana/ui/src/components/MatchersUI/utils';
|
import { useFieldDisplayNames, useSelectOptions } from '@grafana/ui/src/components/MatchersUI/utils';
|
||||||
|
|
||||||
import { ColorDimensionConfig } from '../types';
|
|
||||||
|
|
||||||
const fixedColorOption: SelectableValue<string> = {
|
const fixedColorOption: SelectableValue<string> = {
|
||||||
label: 'Fixed color',
|
label: 'Fixed color',
|
||||||
value: '_____fixed_____',
|
value: '_____fixed_____',
|
||||||
|
@ -1,17 +1,12 @@
|
|||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
|
||||||
import { FieldNamePickerConfigSettings, StandardEditorProps, StandardEditorsRegistryItem } from '@grafana/data';
|
import { FieldNamePickerConfigSettings, StandardEditorProps, StandardEditorsRegistryItem } from '@grafana/data';
|
||||||
|
import { ResourceDimensionConfig, ResourceDimensionMode } from '@grafana/schema';
|
||||||
import { InlineField, InlineFieldRow, RadioButtonGroup } from '@grafana/ui';
|
import { InlineField, InlineFieldRow, RadioButtonGroup } from '@grafana/ui';
|
||||||
import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker';
|
import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker';
|
||||||
|
|
||||||
import { getPublicOrAbsoluteUrl, ResourceFolderName } from '..';
|
import { getPublicOrAbsoluteUrl, ResourceFolderName } from '..';
|
||||||
import {
|
import { MediaType, ResourceDimensionOptions, ResourcePickerSize } from '../types';
|
||||||
MediaType,
|
|
||||||
ResourceDimensionConfig,
|
|
||||||
ResourceDimensionMode,
|
|
||||||
ResourceDimensionOptions,
|
|
||||||
ResourcePickerSize,
|
|
||||||
} from '../types';
|
|
||||||
|
|
||||||
import { ResourcePicker } from './ResourcePicker';
|
import { ResourcePicker } from './ResourcePicker';
|
||||||
|
|
||||||
|
@ -2,11 +2,12 @@ import { css } from '@emotion/css';
|
|||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
|
||||||
import { FieldType, GrafanaTheme2, SelectableValue, StandardEditorProps } from '@grafana/data';
|
import { FieldType, GrafanaTheme2, SelectableValue, StandardEditorProps } from '@grafana/data';
|
||||||
|
import { ScalarDimensionMode, ScalarDimensionConfig } from '@grafana/schema';
|
||||||
import { InlineField, InlineFieldRow, RadioButtonGroup, Select, useStyles2 } from '@grafana/ui';
|
import { InlineField, InlineFieldRow, RadioButtonGroup, Select, useStyles2 } from '@grafana/ui';
|
||||||
import { useFieldDisplayNames, useSelectOptions } from '@grafana/ui/src/components/MatchersUI/utils';
|
import { useFieldDisplayNames, useSelectOptions } from '@grafana/ui/src/components/MatchersUI/utils';
|
||||||
import { NumberInput } from 'app/core/components/OptionsUI/NumberInput';
|
import { NumberInput } from 'app/core/components/OptionsUI/NumberInput';
|
||||||
|
|
||||||
import { ScalarDimensionConfig, ScalarDimensionMode, ScalarDimensionOptions } from '../types';
|
import { ScalarDimensionOptions } from '../types';
|
||||||
|
|
||||||
const fixedValueOption: SelectableValue<string> = {
|
const fixedValueOption: SelectableValue<string> = {
|
||||||
label: 'Fixed value',
|
label: 'Fixed value',
|
||||||
|
@ -2,12 +2,13 @@ import { css } from '@emotion/css';
|
|||||||
import React, { useCallback, useMemo } from 'react';
|
import React, { useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2, SelectableValue, StandardEditorProps } from '@grafana/data';
|
import { GrafanaTheme2, SelectableValue, StandardEditorProps } from '@grafana/data';
|
||||||
|
import { ScaleDimensionConfig } from '@grafana/schema';
|
||||||
import { InlineField, InlineFieldRow, Select, useStyles2 } from '@grafana/ui';
|
import { InlineField, InlineFieldRow, Select, useStyles2 } from '@grafana/ui';
|
||||||
import { useFieldDisplayNames, useSelectOptions } from '@grafana/ui/src/components/MatchersUI/utils';
|
import { useFieldDisplayNames, useSelectOptions } from '@grafana/ui/src/components/MatchersUI/utils';
|
||||||
import { NumberInput } from 'app/core/components/OptionsUI/NumberInput';
|
import { NumberInput } from 'app/core/components/OptionsUI/NumberInput';
|
||||||
|
|
||||||
import { validateScaleOptions, validateScaleConfig } from '../scale';
|
import { validateScaleOptions, validateScaleConfig } from '../scale';
|
||||||
import { ScaleDimensionConfig, ScaleDimensionOptions } from '../types';
|
import { ScaleDimensionOptions } from '../types';
|
||||||
|
|
||||||
const fixedValueOption: SelectableValue<string> = {
|
const fixedValueOption: SelectableValue<string> = {
|
||||||
label: 'Fixed value',
|
label: 'Fixed value',
|
||||||
|
@ -6,11 +6,12 @@ import {
|
|||||||
StandardEditorsRegistryItem,
|
StandardEditorsRegistryItem,
|
||||||
StringFieldConfigSettings,
|
StringFieldConfigSettings,
|
||||||
} from '@grafana/data';
|
} from '@grafana/data';
|
||||||
|
import { TextDimensionConfig, TextDimensionMode } from '@grafana/schema';
|
||||||
import { Button, InlineField, InlineFieldRow, RadioButtonGroup } from '@grafana/ui';
|
import { Button, InlineField, InlineFieldRow, RadioButtonGroup } from '@grafana/ui';
|
||||||
import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker';
|
import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker';
|
||||||
import { StringValueEditor } from 'app/core/components/OptionsUI/string';
|
import { StringValueEditor } from 'app/core/components/OptionsUI/string';
|
||||||
|
|
||||||
import { TextDimensionConfig, TextDimensionMode, TextDimensionOptions } from '../types';
|
import { TextDimensionOptions } from '../types';
|
||||||
|
|
||||||
const textOptions = [
|
const textOptions = [
|
||||||
{ label: 'Fixed', value: TextDimensionMode.Fixed, description: 'Fixed value' },
|
{ label: 'Fixed', value: TextDimensionMode.Fixed, description: 'Fixed value' },
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
import { ResourceDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { getResourceDimension } from './resource';
|
import { getResourceDimension } from './resource';
|
||||||
import { ResourceDimensionMode } from './types';
|
|
||||||
|
|
||||||
describe('getResourceDimension', () => {
|
describe('getResourceDimension', () => {
|
||||||
const publicPath = '/public/';
|
const publicPath = '/public/';
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { DataFrame } from '@grafana/data';
|
import { DataFrame } from '@grafana/data';
|
||||||
|
import { ResourceDimensionConfig, ResourceDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { DimensionSupplier, ResourceDimensionConfig, ResourceDimensionMode } from './types';
|
import { DimensionSupplier } from './types';
|
||||||
import { findField, getLastNotNullFieldValue } from './utils';
|
import { findField, getLastNotNullFieldValue } from './utils';
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
import { DataFrame, FieldType } from '@grafana/data';
|
import { DataFrame, FieldType } from '@grafana/data';
|
||||||
|
import { ScalarDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { getScalarDimension } from './scalar';
|
import { getScalarDimension } from './scalar';
|
||||||
|
|
||||||
import { ScalarDimensionMode } from '.';
|
|
||||||
|
|
||||||
describe('scalar dimensions', () => {
|
describe('scalar dimensions', () => {
|
||||||
it('handles string field', () => {
|
it('handles string field', () => {
|
||||||
const values = ['-720', '10', '540', '90', '-210'];
|
const values = ['-720', '10', '540', '90', '-210'];
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { DataFrame, Field } from '@grafana/data';
|
import { DataFrame, Field } from '@grafana/data';
|
||||||
|
import { ScalarDimensionConfig, ScalarDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { DimensionSupplier, ScalarDimensionConfig, ScalarDimensionMode } from './types';
|
import { DimensionSupplier } from './types';
|
||||||
import { findField, getLastNotNullFieldValue } from './utils';
|
import { findField, getLastNotNullFieldValue } from './utils';
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
import { DataFrame, Field } from '@grafana/data';
|
import { DataFrame, Field } from '@grafana/data';
|
||||||
import { getMinMaxAndDelta } from '@grafana/data/src/field/scale';
|
import { getMinMaxAndDelta } from '@grafana/data/src/field/scale';
|
||||||
|
import { ScaleDimensionConfig, ScaleDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { ScaleDimensionConfig, DimensionSupplier, ScaleDimensionOptions } from './types';
|
import { DimensionSupplier, ScaleDimensionOptions } from './types';
|
||||||
import { findField, getLastNotNullFieldValue } from './utils';
|
import { findField, getLastNotNullFieldValue } from './utils';
|
||||||
|
|
||||||
import { ScaleDimensionMode } from '.';
|
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
// Scale dimension
|
// Scale dimension
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
@ -43,7 +42,7 @@ export function getScaledDimensionForField(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let scaled = (percent: number) => config.min + percent * delta;
|
let scaled = (percent: number) => config.min + percent * delta;
|
||||||
if (mode === ScaleDimensionMode.Quadratic) {
|
if (mode === ScaleDimensionMode.Quad) {
|
||||||
const maxArea = Math.PI * (config.max / 2) ** 2;
|
const maxArea = Math.PI * (config.max / 2) ** 2;
|
||||||
const minArea = Math.PI * (config.min / 2) ** 2;
|
const minArea = Math.PI * (config.min / 2) ** 2;
|
||||||
const deltaArea = maxArea - minArea;
|
const deltaArea = maxArea - minArea;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { DataFrame, Field, FieldType, formattedValueToString } from '@grafana/data';
|
import { DataFrame, Field, FieldType, formattedValueToString } from '@grafana/data';
|
||||||
|
import { TextDimensionConfig, TextDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { DimensionSupplier, TextDimensionConfig, TextDimensionMode } from './types';
|
import { DimensionSupplier } from './types';
|
||||||
import { findField, getLastNotNullFieldValue } from './utils';
|
import { findField, getLastNotNullFieldValue } from './utils';
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
import { Field } from '@grafana/data';
|
import { Field } from '@grafana/data';
|
||||||
|
import { TextDimensionConfig, TextDimensionMode } from '@grafana/schema';
|
||||||
export interface BaseDimensionConfig<T = any> {
|
|
||||||
fixed: T;
|
|
||||||
field?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DimensionSupplier<T = any> {
|
export interface DimensionSupplier<T = any> {
|
||||||
/**
|
/**
|
||||||
@ -32,17 +28,6 @@ export interface DimensionSupplier<T = any> {
|
|||||||
get: (index: number) => T;
|
get: (index: number) => T;
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum ScaleDimensionMode {
|
|
||||||
Linear = 'linear',
|
|
||||||
Quadratic = 'quad',
|
|
||||||
}
|
|
||||||
|
|
||||||
/** This will map the field value% to a scaled value within the range */
|
|
||||||
export interface ScaleDimensionConfig extends BaseDimensionConfig<number> {
|
|
||||||
min: number;
|
|
||||||
max: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Places that use the value */
|
/** Places that use the value */
|
||||||
export interface ScaleDimensionOptions {
|
export interface ScaleDimensionOptions {
|
||||||
min: number;
|
min: number;
|
||||||
@ -51,16 +36,6 @@ export interface ScaleDimensionOptions {
|
|||||||
hideRange?: boolean; // false
|
hideRange?: boolean; // false
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum ScalarDimensionMode {
|
|
||||||
Mod = 'mod',
|
|
||||||
Clamped = 'clamped',
|
|
||||||
}
|
|
||||||
export interface ScalarDimensionConfig extends BaseDimensionConfig<number> {
|
|
||||||
mode: ScalarDimensionMode;
|
|
||||||
min: number;
|
|
||||||
max: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ScalarDimensionOptions {
|
export interface ScalarDimensionOptions {
|
||||||
min: number;
|
min: number;
|
||||||
max: number;
|
max: number;
|
||||||
@ -70,25 +45,12 @@ export interface TextDimensionOptions {
|
|||||||
// anything?
|
// anything?
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum TextDimensionMode {
|
|
||||||
Fixed = 'fixed',
|
|
||||||
Field = 'field',
|
|
||||||
Template = 'template',
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface TextDimensionConfig extends BaseDimensionConfig<string> {
|
|
||||||
mode: TextDimensionMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defaultTextConfig: TextDimensionConfig = Object.freeze({
|
export const defaultTextConfig: TextDimensionConfig = Object.freeze({
|
||||||
fixed: '',
|
fixed: '',
|
||||||
mode: TextDimensionMode.Field,
|
mode: TextDimensionMode.Field,
|
||||||
field: '',
|
field: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
/** Use the color value from field configs */
|
|
||||||
export interface ColorDimensionConfig extends BaseDimensionConfig<string> {}
|
|
||||||
|
|
||||||
/** Places that use the value */
|
/** Places that use the value */
|
||||||
export interface ResourceDimensionOptions {
|
export interface ResourceDimensionOptions {
|
||||||
resourceType: MediaType;
|
resourceType: MediaType;
|
||||||
@ -99,18 +61,6 @@ export interface ResourceDimensionOptions {
|
|||||||
showSourceRadio?: boolean;
|
showSourceRadio?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum ResourceDimensionMode {
|
|
||||||
Fixed = 'fixed',
|
|
||||||
Field = 'field',
|
|
||||||
Mapping = 'mapping',
|
|
||||||
// pattern? uses field in the pattern
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Get the path to a resource (URL) */
|
|
||||||
export interface ResourceDimensionConfig extends BaseDimensionConfig<string> {
|
|
||||||
mode: ResourceDimensionMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum ResourceFolderName {
|
export enum ResourceFolderName {
|
||||||
Icon = 'img/icons/unicons',
|
Icon = 'img/icons/unicons',
|
||||||
IOT = 'img/icons/iot',
|
IOT = 'img/icons/iot',
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
import { DataFrame, PanelData, Field, getFieldDisplayName, ReducerID } from '@grafana/data';
|
import { DataFrame, PanelData, Field, getFieldDisplayName, ReducerID } from '@grafana/data';
|
||||||
import { config } from '@grafana/runtime';
|
import { config } from '@grafana/runtime';
|
||||||
|
import {
|
||||||
|
ResourceDimensionConfig,
|
||||||
|
ScaleDimensionConfig,
|
||||||
|
TextDimensionConfig,
|
||||||
|
ColorDimensionConfig,
|
||||||
|
ScalarDimensionConfig,
|
||||||
|
} from '@grafana/schema';
|
||||||
import {
|
import {
|
||||||
getColorDimension,
|
getColorDimension,
|
||||||
getScaledDimension,
|
getScaledDimension,
|
||||||
getTextDimension,
|
getTextDimension,
|
||||||
getResourceDimension,
|
getResourceDimension,
|
||||||
ColorDimensionConfig,
|
|
||||||
DimensionSupplier,
|
DimensionSupplier,
|
||||||
ResourceDimensionConfig,
|
|
||||||
ScaleDimensionConfig,
|
|
||||||
TextDimensionConfig,
|
|
||||||
ScalarDimensionConfig,
|
|
||||||
} from 'app/features/dimensions';
|
} from 'app/features/dimensions';
|
||||||
|
|
||||||
import { getScalarDimension } from './scalar';
|
import { getScalarDimension } from './scalar';
|
||||||
|
@ -2,10 +2,11 @@ import { css } from '@emotion/css';
|
|||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
|
||||||
import { GrafanaTheme2 } from '@grafana/data';
|
import { GrafanaTheme2 } from '@grafana/data';
|
||||||
|
import { ResourceDimensionMode } from '@grafana/schema';
|
||||||
import { Portal, useTheme2 } from '@grafana/ui';
|
import { Portal, useTheme2 } from '@grafana/ui';
|
||||||
import { Scene } from 'app/features/canvas/runtime/scene';
|
import { Scene } from 'app/features/canvas/runtime/scene';
|
||||||
|
|
||||||
import { MediaType, ResourceDimensionMode, ResourceFolderName } from '../../../features/dimensions';
|
import { MediaType, ResourceFolderName } from '../../../features/dimensions';
|
||||||
import { ResourcePickerPopover } from '../../../features/dimensions/editors/ResourcePickerPopover';
|
import { ResourcePickerPopover } from '../../../features/dimensions/editors/ResourcePickerPopover';
|
||||||
|
|
||||||
import { AnchorPoint } from './types';
|
import { AnchorPoint } from './types';
|
||||||
|
@ -4,6 +4,13 @@ import { useObservable } from 'react-use';
|
|||||||
import { Observable, of } from 'rxjs';
|
import { Observable, of } from 'rxjs';
|
||||||
|
|
||||||
import { FieldConfigPropertyItem, StandardEditorProps, StandardEditorsRegistryItem } from '@grafana/data';
|
import { FieldConfigPropertyItem, StandardEditorProps, StandardEditorsRegistryItem } from '@grafana/data';
|
||||||
|
import {
|
||||||
|
ScaleDimensionConfig,
|
||||||
|
ResourceDimensionConfig,
|
||||||
|
ColorDimensionConfig,
|
||||||
|
TextDimensionConfig,
|
||||||
|
ScalarDimensionConfig,
|
||||||
|
} from '@grafana/schema';
|
||||||
import {
|
import {
|
||||||
ColorPicker,
|
ColorPicker,
|
||||||
Field,
|
Field,
|
||||||
@ -22,15 +29,7 @@ import {
|
|||||||
ScalarDimensionEditor,
|
ScalarDimensionEditor,
|
||||||
TextDimensionEditor,
|
TextDimensionEditor,
|
||||||
} from 'app/features/dimensions/editors';
|
} from 'app/features/dimensions/editors';
|
||||||
import {
|
import { ResourceFolderName, defaultTextConfig, MediaType } from 'app/features/dimensions/types';
|
||||||
ScaleDimensionConfig,
|
|
||||||
ResourceDimensionConfig,
|
|
||||||
ColorDimensionConfig,
|
|
||||||
ResourceFolderName,
|
|
||||||
TextDimensionConfig,
|
|
||||||
defaultTextConfig,
|
|
||||||
ScalarDimensionConfig,
|
|
||||||
} from 'app/features/dimensions/types';
|
|
||||||
|
|
||||||
import { defaultStyleConfig, GeometryTypeId, StyleConfig, TextAlignment, TextBaseline } from '../style/types';
|
import { defaultStyleConfig, GeometryTypeId, StyleConfig, TextAlignment, TextBaseline } from '../style/types';
|
||||||
import { styleUsesText } from '../style/utils';
|
import { styleUsesText } from '../style/utils';
|
||||||
@ -197,7 +196,7 @@ export const StyleEditor = ({ value, context, onChange, item }: Props) => {
|
|||||||
item={
|
item={
|
||||||
{
|
{
|
||||||
settings: {
|
settings: {
|
||||||
resourceType: 'icon',
|
resourceType: MediaType.Icon,
|
||||||
folderName: ResourceFolderName.Marker,
|
folderName: ResourceFolderName.Marker,
|
||||||
placeholderText: hasTextLabel ? 'Select a symbol' : 'Select a symbol or add a text label',
|
placeholderText: hasTextLabel ? 'Select a symbol' : 'Select a symbol or add a text label',
|
||||||
placeholderValue: defaultStyleConfig.symbol.fixed,
|
placeholderValue: defaultStyleConfig.symbol.fixed,
|
||||||
|
@ -10,10 +10,11 @@ import {
|
|||||||
import Map from 'ol/Map';
|
import Map from 'ol/Map';
|
||||||
import * as layer from 'ol/layer';
|
import * as layer from 'ol/layer';
|
||||||
import { getLocationMatchers } from 'app/features/geo/utils/location';
|
import { getLocationMatchers } from 'app/features/geo/utils/location';
|
||||||
import { ScaleDimensionConfig, getScaledDimension } from 'app/features/dimensions';
|
import { getScaledDimension } from 'app/features/dimensions';
|
||||||
import { ScaleDimensionEditor } from 'app/features/dimensions/editors';
|
import { ScaleDimensionEditor } from 'app/features/dimensions/editors';
|
||||||
import { FrameVectorSource } from 'app/features/geo/utils/frameVectorSource';
|
import { FrameVectorSource } from 'app/features/geo/utils/frameVectorSource';
|
||||||
import { Point } from 'ol/geom';
|
import { Point } from 'ol/geom';
|
||||||
|
import { ScaleDimensionConfig } from '@grafana/schema';
|
||||||
|
|
||||||
// Configuration options for Heatmap overlays
|
// Configuration options for Heatmap overlays
|
||||||
export interface HeatmapConfig {
|
export interface HeatmapConfig {
|
||||||
|
@ -11,7 +11,7 @@ import {
|
|||||||
DataTransformerConfig,
|
DataTransformerConfig,
|
||||||
DataTransformerID,
|
DataTransformerID,
|
||||||
} from '@grafana/data';
|
} from '@grafana/data';
|
||||||
import { ResourceDimensionMode } from 'app/features/dimensions';
|
import { ResourceDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { defaultMarkersConfig, MarkersConfig } from './layers/data/markersLayer';
|
import { defaultMarkersConfig, MarkersConfig } from './layers/data/markersLayer';
|
||||||
import { getMarkerAsPath } from './style/markers';
|
import { getMarkerAsPath } from './style/markers';
|
||||||
|
@ -2,14 +2,14 @@ import { Style } from 'ol/style';
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
ColorDimensionConfig,
|
ColorDimensionConfig,
|
||||||
DimensionSupplier,
|
|
||||||
ResourceDimensionConfig,
|
ResourceDimensionConfig,
|
||||||
ResourceDimensionMode,
|
ResourceDimensionMode,
|
||||||
ScaleDimensionConfig,
|
ScaleDimensionConfig,
|
||||||
ScalarDimensionConfig,
|
ScalarDimensionConfig,
|
||||||
ScalarDimensionMode,
|
ScalarDimensionMode,
|
||||||
TextDimensionConfig,
|
TextDimensionConfig,
|
||||||
} from 'app/features/dimensions';
|
} from '@grafana/schema';
|
||||||
|
import { DimensionSupplier } from 'app/features/dimensions';
|
||||||
|
|
||||||
export enum GeometryTypeId {
|
export enum GeometryTypeId {
|
||||||
Point = 'point',
|
Point = 'point',
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { ResourceDimensionMode } from 'app/features/dimensions';
|
import { ResourceDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { StyleConfig } from './types';
|
import { StyleConfig } from './types';
|
||||||
import { getStyleConfigState } from './utils';
|
import { getStyleConfigState } from './utils';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { config } from '@grafana/runtime';
|
import { config } from '@grafana/runtime';
|
||||||
import { TextDimensionMode } from 'app/features/dimensions';
|
import { TextDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
import { getMarkerMaker } from './markers';
|
import { getMarkerMaker } from './markers';
|
||||||
import { defaultStyleConfig, StyleConfig, StyleConfigFields, StyleConfigState } from './types';
|
import { defaultStyleConfig, StyleConfig, StyleConfigFields, StyleConfigState } from './types';
|
||||||
|
@ -1,21 +1,23 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
|
|
||||||
import { PanelProps } from '@grafana/data';
|
import { PanelProps } from '@grafana/data';
|
||||||
|
import {
|
||||||
|
ColorDimensionConfig,
|
||||||
|
ResourceDimensionConfig,
|
||||||
|
ScalarDimensionConfig,
|
||||||
|
ScaleDimensionConfig,
|
||||||
|
TextDimensionConfig,
|
||||||
|
} from '@grafana/schema';
|
||||||
import { HorizontalConstraint, VerticalConstraint } from 'app/features/canvas';
|
import { HorizontalConstraint, VerticalConstraint } from 'app/features/canvas';
|
||||||
import { iconItem } from 'app/features/canvas/elements/icon';
|
import { iconItem } from 'app/features/canvas/elements/icon';
|
||||||
import { ElementState } from 'app/features/canvas/runtime/element';
|
import { ElementState } from 'app/features/canvas/runtime/element';
|
||||||
import {
|
import {
|
||||||
ColorDimensionConfig,
|
|
||||||
DimensionContext,
|
DimensionContext,
|
||||||
getColorDimensionFromData,
|
getColorDimensionFromData,
|
||||||
getResourceDimensionFromData,
|
getResourceDimensionFromData,
|
||||||
getScalarDimensionFromData,
|
getScalarDimensionFromData,
|
||||||
getScaleDimensionFromData,
|
getScaleDimensionFromData,
|
||||||
getTextDimensionFromData,
|
getTextDimensionFromData,
|
||||||
ResourceDimensionConfig,
|
|
||||||
ScalarDimensionConfig,
|
|
||||||
ScaleDimensionConfig,
|
|
||||||
TextDimensionConfig,
|
|
||||||
} from 'app/features/dimensions';
|
} from 'app/features/dimensions';
|
||||||
|
|
||||||
import { PanelOptions } from './models.gen';
|
import { PanelOptions } from './models.gen';
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { CanvasElementOptions } from 'app/features/canvas';
|
import { CanvasElementOptions } from 'app/features/canvas';
|
||||||
import { IconConfig } from 'app/features/canvas/elements/icon';
|
import { IconConfig } from 'app/features/canvas/elements/icon';
|
||||||
import { ResourceDimensionMode } from 'app/features/dimensions';
|
import { ResourceDimensionMode } from '@grafana/schema';
|
||||||
|
|
||||||
export interface PanelOptions {
|
export interface PanelOptions {
|
||||||
root: Omit<CanvasElementOptions<IconConfig>, 'type' | 'name'>; // type is forced
|
root: Omit<CanvasElementOptions<IconConfig>, 'type' | 'name'>; // type is forced
|
||||||
|
@ -6,12 +6,12 @@ import {
|
|||||||
HideableFieldConfig,
|
HideableFieldConfig,
|
||||||
AxisConfig,
|
AxisConfig,
|
||||||
AxisPlacement,
|
AxisPlacement,
|
||||||
} from '@grafana/schema';
|
|
||||||
import {
|
|
||||||
ColorDimensionConfig,
|
ColorDimensionConfig,
|
||||||
DimensionSupplier,
|
|
||||||
ScaleDimensionConfig,
|
ScaleDimensionConfig,
|
||||||
TextDimensionConfig,
|
TextDimensionConfig,
|
||||||
|
} from '@grafana/schema';
|
||||||
|
import {
|
||||||
|
DimensionSupplier,
|
||||||
} from 'app/features/dimensions';
|
} from 'app/features/dimensions';
|
||||||
|
|
||||||
// export enum ScatterLineMode {
|
// export enum ScatterLineMode {
|
||||||
|
@ -13,15 +13,17 @@ import {
|
|||||||
} from '@grafana/data';
|
} from '@grafana/data';
|
||||||
import { alpha } from '@grafana/data/src/themes/colorManipulator';
|
import { alpha } from '@grafana/data/src/themes/colorManipulator';
|
||||||
import { config } from '@grafana/runtime';
|
import { config } from '@grafana/runtime';
|
||||||
import { AxisPlacement, ScaleDirection, ScaleOrientation, VisibilityMode } from '@grafana/schema';
|
|
||||||
import { UPlotConfigBuilder } from '@grafana/ui';
|
|
||||||
import { FacetedData, FacetSeries } from '@grafana/ui/src/components/uPlot/types';
|
|
||||||
import {
|
import {
|
||||||
findFieldIndex,
|
AxisPlacement,
|
||||||
getScaledDimensionForField,
|
ScaleDirection,
|
||||||
|
ScaleOrientation,
|
||||||
|
VisibilityMode,
|
||||||
ScaleDimensionConfig,
|
ScaleDimensionConfig,
|
||||||
ScaleDimensionMode,
|
ScaleDimensionMode,
|
||||||
} from 'app/features/dimensions';
|
} from '@grafana/schema';
|
||||||
|
import { UPlotConfigBuilder } from '@grafana/ui';
|
||||||
|
import { FacetedData, FacetSeries } from '@grafana/ui/src/components/uPlot/types';
|
||||||
|
import { findFieldIndex, getScaledDimensionForField } from 'app/features/dimensions';
|
||||||
|
|
||||||
import { pointWithin, Quadtree, Rect } from '../barchart/quadtree';
|
import { pointWithin, Quadtree, Rect } from '../barchart/quadtree';
|
||||||
|
|
||||||
@ -142,7 +144,7 @@ function getScatterSeries(
|
|||||||
const s = getScaledDimensionForField(
|
const s = getScaledDimensionForField(
|
||||||
frame.fields[dims.pointSizeIndex!],
|
frame.fields[dims.pointSizeIndex!],
|
||||||
dims.pointSizeConfig!,
|
dims.pointSizeConfig!,
|
||||||
ScaleDimensionMode.Quadratic
|
ScaleDimensionMode.Quad
|
||||||
);
|
);
|
||||||
const vals = Array(frame.length);
|
const vals = Array(frame.length);
|
||||||
for (let i = 0; i < frame.length; i++) {
|
for (let i = 0; i < frame.length; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user