import { PanelPlugin } from '@grafana/data'; import { t } from '@grafana/i18n'; import { config } from '@grafana/runtime'; import { commonOptionsBuilder } from '@grafana/ui'; import { optsWithHideZeros } from '@grafana/ui/internal'; import { TimeSeriesPanel } from './TimeSeriesPanel'; import { TimezonesEditor } from './TimezonesEditor'; import { defaultGraphConfig, getGraphFieldConfig } from './config'; import { graphPanelChangedHandler } from './migrations'; import { FieldConfig, Options } from './panelcfg.gen'; import { TimeSeriesSuggestionsSupplier } from './suggestions'; export const plugin = new PanelPlugin(TimeSeriesPanel) .setPanelChangeHandler(graphPanelChangedHandler) .useFieldConfig(getGraphFieldConfig(defaultGraphConfig)) .setPanelOptions((builder) => { commonOptionsBuilder.addTooltipOptions(builder, false, true, optsWithHideZeros); commonOptionsBuilder.addLegendOptions(builder); if (config.featureToggles.timeComparison) { commonOptionsBuilder.addTimeCompareOption(builder); } builder.addCustomEditor({ id: 'timezone', name: t('timeseries.name-time-zone', 'Time zone'), path: 'timezone', category: [t('timeseries.category-axis', 'Axis')], editor: TimezonesEditor, defaultValue: undefined, }); }) .setSuggestionsSupplier(new TimeSeriesSuggestionsSupplier()) .setDataSupport({ annotations: true, alertStates: true });