grafana/public/app/plugins/panel/heatmap-new/suggestions.ts
Ryan McKinley bb86ba99ee
Heatmap: new panel based based on uPlot (#44080)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2022-02-16 14:49:17 -08:00

38 lines
973 B
TypeScript

import { VisualizationSuggestionsBuilder } from '@grafana/data';
import { config } from '@grafana/runtime';
import { prepareHeatmapData } from './fields';
import { PanelOptions, defaultPanelOptions } from './models.gen';
export class HeatmapSuggestionsSupplier {
getSuggestionsForData(builder: VisualizationSuggestionsBuilder) {
const { dataSummary } = builder;
if (
!builder.data?.series ||
!dataSummary.hasData ||
dataSummary.timeFieldCount < 1 ||
dataSummary.numberFieldCount < 2 ||
dataSummary.numberFieldCount > 10
) {
return;
}
const info = prepareHeatmapData(builder.data.series, defaultPanelOptions, config.theme2);
if (!info || info.warning) {
return;
}
builder.getListAppender<PanelOptions, {}>({
name: '',
pluginId: 'heatmap-new',
options: {},
fieldConfig: {
defaults: {
custom: {},
},
overrides: [],
},
});
}
}