2021-01-11 00:57:48 -06:00
|
|
|
import { PanelPlugin } from '@grafana/data';
|
2021-08-24 10:22:34 -05:00
|
|
|
import { commonOptionsBuilder } from '@grafana/ui';
|
2021-09-29 12:14:15 -05:00
|
|
|
import { defaultScatterConfig, XYChartOptions, ScatterFieldConfig } from './models.gen';
|
|
|
|
import { getScatterFieldConfig } from './config';
|
2021-01-11 00:57:48 -06:00
|
|
|
import { XYDimsEditor } from './XYDimsEditor';
|
2021-09-29 12:14:15 -05:00
|
|
|
import { XYChartPanel2 } from './XYChartPanel2';
|
|
|
|
import { ColorDimensionEditor, ScaleDimensionEditor } from 'app/features/dimensions/editors';
|
2021-01-11 00:57:48 -06:00
|
|
|
|
2021-09-29 12:14:15 -05:00
|
|
|
export const plugin = new PanelPlugin<XYChartOptions, ScatterFieldConfig>(XYChartPanel2)
|
|
|
|
.useFieldConfig(getScatterFieldConfig(defaultScatterConfig))
|
2021-01-20 00:59:48 -06:00
|
|
|
.setPanelOptions((builder) => {
|
2021-09-29 12:14:15 -05:00
|
|
|
builder
|
|
|
|
.addRadio({
|
|
|
|
path: 'mode',
|
|
|
|
name: 'Mode',
|
|
|
|
defaultValue: 'single',
|
|
|
|
settings: {
|
|
|
|
options: [
|
|
|
|
{ value: 'xy', label: 'XY', description: 'No changes to saved model since 8.0' },
|
|
|
|
{ value: 'explicit', label: 'Explicit' },
|
|
|
|
],
|
|
|
|
},
|
|
|
|
})
|
|
|
|
.addCustomEditor({
|
|
|
|
id: 'xyPlotConfig',
|
|
|
|
path: 'dims',
|
|
|
|
name: 'Data',
|
|
|
|
editor: XYDimsEditor,
|
|
|
|
showIf: (cfg) => cfg.mode === 'xy',
|
|
|
|
})
|
|
|
|
.addFieldNamePicker({
|
|
|
|
path: 'series[0].x',
|
|
|
|
name: 'X Field',
|
|
|
|
showIf: (cfg) => cfg.mode === 'explicit',
|
|
|
|
})
|
|
|
|
.addFieldNamePicker({
|
|
|
|
path: 'series[0].y',
|
|
|
|
name: 'Y Field',
|
|
|
|
showIf: (cfg) => cfg.mode === 'explicit',
|
|
|
|
})
|
|
|
|
.addCustomEditor({
|
|
|
|
id: 'seriesZerox.pointColor',
|
|
|
|
path: 'series[0].pointColor',
|
|
|
|
name: 'Point color',
|
|
|
|
editor: ColorDimensionEditor,
|
|
|
|
settings: {},
|
|
|
|
defaultValue: {},
|
|
|
|
showIf: (cfg) => cfg.mode === 'explicit',
|
|
|
|
})
|
|
|
|
.addCustomEditor({
|
|
|
|
id: 'seriesZerox.pointSize',
|
|
|
|
path: 'series[0].pointSize',
|
|
|
|
name: 'Point size',
|
|
|
|
editor: ScaleDimensionEditor,
|
|
|
|
settings: {
|
|
|
|
min: 1,
|
|
|
|
max: 50,
|
|
|
|
},
|
|
|
|
defaultValue: {
|
|
|
|
fixed: 5,
|
|
|
|
min: 1,
|
|
|
|
max: 50,
|
|
|
|
},
|
|
|
|
showIf: (cfg) => cfg.mode === 'explicit',
|
|
|
|
});
|
|
|
|
|
2021-05-11 08:46:12 -05:00
|
|
|
commonOptionsBuilder.addTooltipOptions(builder);
|
2021-05-10 15:25:14 -05:00
|
|
|
commonOptionsBuilder.addLegendOptions(builder);
|
2021-01-11 00:57:48 -06:00
|
|
|
});
|