grafana/public/app/plugins/panel/candlestick/suggestions.ts
Josh Hunt 3c6e0e8ef8
Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import

* Fix the lint:ts npm command

* Autofix + prettier all the files

* Manually fix remaining files

* Move jquery code in jest-setup to external file to safely reorder imports

* Resolve issue caused by circular dependencies within Prometheus

* Update .betterer.results

* Fix missing // @ts-ignore

* ignore iconBundle.ts

* Fix missing // @ts-ignore
2022-04-22 14:33:13 +01:00

55 lines
1.4 KiB
TypeScript

import { VisualizationSuggestionsBuilder, VisualizationSuggestionScore } from '@grafana/data';
import { config } from '@grafana/runtime';
import { SuggestionName } from 'app/types/suggestions';
import { prepareCandlestickFields } from './fields';
import { CandlestickOptions, defaultPanelOptions } from './models.gen';
export class CandlestickSuggestionsSupplier {
getSuggestionsForData(builder: VisualizationSuggestionsBuilder) {
const { dataSummary } = builder;
if (
!builder.data?.series ||
!dataSummary.hasData ||
dataSummary.timeFieldCount < 1 ||
dataSummary.numberFieldCount < 2 ||
dataSummary.numberFieldCount > 10
) {
return;
}
const info = prepareCandlestickFields(builder.data.series, defaultPanelOptions, config.theme2);
if (!info) {
return;
}
// Regular timeseries
if (info.open === info.high && info.open === info.low) {
return;
}
const list = builder.getListAppender<CandlestickOptions, {}>({
name: '',
pluginId: 'candlestick',
options: {},
fieldConfig: {
defaults: {
custom: {},
},
overrides: [],
},
});
list.append({
name: SuggestionName.Candlestick,
options: defaultPanelOptions,
fieldConfig: {
defaults: {},
overrides: [],
},
score: info.autoOpenClose ? VisualizationSuggestionScore.Good : VisualizationSuggestionScore.Best,
});
}
}