mirror of
https://github.com/grafana/grafana.git
synced 2025-07-31 22:52:45 +08:00

* TimeComparison: Add time comparison option * Display control conditionally based on option * Provide timeCompare option to panels that opt in * Only render time compare if panel supports it * Create a custom time range compare component * Move custom component * Remove button checked * Move time compare options out of field config * Fix types and remove from fieldConfigProperty enum * Remove from field config registry * Add headerActions to V2 schema * Remove dependency on timeCompare support registry * Add feature flag * Subscribe to options change in wrapper * Remove custom rendering to simplify wrapper * Bump scenes version * Hide checkbox * Remove unneeded query refresh during disable * Fix import order in timeseries module * Add util tests * Support time comparison toggle for new viz panels * Revert grafana-app-sdk and manifest changes * Revert yarn lock
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
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<Options, FieldConfig>(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 });
|