// Libraries import React, { PureComponent } from 'react'; import { PanelEditorProps, ThresholdsEditor, PanelOptionsGrid, ValueMappingsEditor, FieldDisplayOptions, FieldDisplayEditor, FieldPropertiesEditor, PanelOptionsGroup, DataLinksEditor, } from '@grafana/ui'; import { Threshold, ValueMapping, FieldConfig, DataLink } from '@grafana/data'; import { SingleStatOptions, SparklineOptions } from './types'; import { ColoringEditor } from './ColoringEditor'; import { FontSizeEditor } from './FontSizeEditor'; import { SparklineEditor } from './SparklineEditor'; import { getDataLinksVariableSuggestions, getCalculationValueDataLinksVariableSuggestions, } from 'app/features/panel/panellinks/link_srv'; export class SingleStatEditor extends PureComponent> { onThresholdsChanged = (thresholds: Threshold[]) => { const current = this.props.options.fieldOptions.defaults; this.onDefaultsChange({ ...current, thresholds, }); }; onValueMappingsChanged = (mappings: ValueMapping[]) => { const current = this.props.options.fieldOptions.defaults; this.onDefaultsChange({ ...current, mappings, }); }; onDisplayOptionsChanged = (fieldOptions: FieldDisplayOptions) => this.props.onOptionsChange({ ...this.props.options, fieldOptions, }); onSparklineChanged = (sparkline: SparklineOptions) => this.props.onOptionsChange({ ...this.props.options, sparkline, }); onDefaultsChange = (field: FieldConfig) => { this.onDisplayOptionsChanged({ ...this.props.options.fieldOptions, defaults: field, }); }; onDataLinksChanged = (links: DataLink[]) => { this.onDefaultsChange({ ...this.props.options.fieldOptions.defaults, links, }); }; render() { const { options } = this.props; const { fieldOptions } = options; const { defaults } = fieldOptions; const suggestions = fieldOptions.values ? getDataLinksVariableSuggestions(this.props.data.series) : getCalculationValueDataLinksVariableSuggestions(this.props.data.series); return ( <> ); } }