From 73faf80ccbaa0e2564f08d0e2d6dc9f4c442969d Mon Sep 17 00:00:00 2001 From: vargburz Date: Tue, 3 May 2022 19:58:34 +0300 Subject: [PATCH] gauge config --- src/components/Panel.tsx | 4 ++-- src/module.ts | 30 +++++++++++++++--------------- src/types.ts | 24 +++++++++++++++--------- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/components/Panel.tsx b/src/components/Panel.tsx index ca1b6e5..101c7bf 100644 --- a/src/components/Panel.tsx +++ b/src/components/Panel.tsx @@ -31,8 +31,8 @@ export function Panel({ options, data, width, height, timeZone, timeRange, onCha // TODO: pass options // TODO: switch / case pod type const pod = new ChartwerkGaugePod((chartContainer as any).current, chwSeriesList, { - maxValue: options.gauge.max, - minValue: options.gauge.min, + maxValue: options.gauge.max.value || 0, + minValue: options.gauge.min.value || 0, valueFormatter: (val) => val.toFixed(2), defaultColor: 'green', stops: [ diff --git a/src/module.ts b/src/module.ts index c8fef42..84217f1 100644 --- a/src/module.ts +++ b/src/module.ts @@ -31,56 +31,56 @@ export const plugin = new PanelPlugin(Panel).setPanelOptions((buil }) .addNumberInput({ name: 'Value', - path: 'gauge.value', + path: 'gauge.value.value', category: ['Extremum'], - showIf: (config) => config.visualizationType === Pod.GAUGE && !config.gauge.useMetricForValue, + showIf: (config) => config.visualizationType === Pod.GAUGE && !config.gauge.value.useMetric, }) .addFieldNamePicker({ name: 'Value', - path: 'gauge.valueMetricName', + path: 'gauge.value.metricName', category: ['Extremum'], - showIf: (config) => config.visualizationType === Pod.GAUGE && config.gauge.useMetricForValue, + showIf: (config) => config.visualizationType === Pod.GAUGE && config.gauge.value.useMetric, }) .addBooleanSwitch({ - path: 'gauge.useMetricForValue', + path: 'gauge.value.useMetric', name: 'Use metric', defaultValue: false, category: ['Extremum'], showIf: (config) => config.visualizationType === Pod.GAUGE, }) .addNumberInput({ - path: 'gauge.min', + path: 'gauge.min.value', name: 'Min', category: ['Extremum'], - showIf: (config) => config.visualizationType === Pod.GAUGE && !config.gauge.useMetricForMin, + showIf: (config) => config.visualizationType === Pod.GAUGE && !config.gauge.min.useMetric, }) .addFieldNamePicker({ name: 'Min', - path: 'gauge.minMetricName', + path: 'gauge.min.metricName', category: ['Extremum'], - showIf: (config) => config.visualizationType === Pod.GAUGE && config.gauge.useMetricForMin, + showIf: (config) => config.visualizationType === Pod.GAUGE && config.gauge.min.useMetric, }) .addBooleanSwitch({ - path: 'gauge.useMetricForMin', + path: 'gauge.min.useMetric', name: 'Use metric', defaultValue: false, category: ['Extremum'], showIf: (config) => config.visualizationType === Pod.GAUGE, }) .addNumberInput({ - path: 'gauge.max', + path: 'gauge.max.value', name: 'Max', category: ['Extremum'], - showIf: (config) => config.visualizationType === Pod.GAUGE && !config.gauge.useMetricForMax, + showIf: (config) => config.visualizationType === Pod.GAUGE && !config.gauge.max.useMetric, }) .addFieldNamePicker({ name: 'Max', - path: 'gauge.maxMetricName', + path: 'gauge.max.metricName', category: ['Extremum'], - showIf: (config) => config.visualizationType === Pod.GAUGE && config.gauge.useMetricForMax, + showIf: (config) => config.visualizationType === Pod.GAUGE && config.gauge.max.useMetric, }) .addBooleanSwitch({ - path: 'gauge.useMetricForMax', + path: 'gauge.max.useMetric', name: 'Use metric', defaultValue: false, category: ['Extremum'], diff --git a/src/types.ts b/src/types.ts index b44a56e..46814a9 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,15 +1,21 @@ export interface PanelOptions { visualizationType: Pod; gauge: { - min?: number; - useMetricForMin: boolean; - minMetricName: string; - max?: number; - useMetricForMax: boolean; - maxMetricName: string; - value?: number; - useMetricForValue: boolean; - valueMetricName: string; + min: { + value?: number; + useMetric: false; + metricName: string; + }; + max: { + value?: number; + useMetric: false; + metricName: string; + }; + value: { + value?: number; + useMetric: false; + metricName: string; + }; }; }