1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import { VisualizationSuggestionsBuilder } from '@grafana/data';
- import { BigValueColorMode, BigValueGraphMode } from '@grafana/ui';
- import { SuggestionName } from 'app/types/suggestions';
- import { StatPanelOptions } from './types';
- export class StatSuggestionsSupplier {
- getSuggestionsForData(builder: VisualizationSuggestionsBuilder) {
- const { dataSummary: ds } = builder;
- if (!ds.hasData) {
- return;
- }
- const list = builder.getListAppender<StatPanelOptions, {}>({
- name: SuggestionName.Stat,
- pluginId: 'stat',
- options: {},
- fieldConfig: {
- defaults: {
- unit: 'short',
- custom: {},
- },
- overrides: [],
- },
- cardOptions: {
- previewModifier: (s) => {
- if (s.options!.reduceOptions.values) {
- s.options!.reduceOptions.limit = 1;
- }
- },
- },
- });
- // String and number field with low row count show individual rows
- if (ds.hasStringField && ds.hasNumberField && ds.frameCount === 1 && ds.rowCountTotal < 10) {
- list.append({
- name: SuggestionName.Stat,
- options: {
- reduceOptions: {
- values: true,
- calcs: [],
- fields: '/.*/',
- },
- },
- });
- list.append({
- name: SuggestionName.StatColoredBackground,
- options: {
- reduceOptions: {
- values: true,
- calcs: [],
- fields: '/.*/',
- },
- colorMode: BigValueColorMode.Background,
- },
- });
- }
- // Just a single string field
- if (ds.stringFieldCount === 1 && ds.frameCount === 1 && ds.rowCountTotal < 10 && ds.fieldCount === 1) {
- list.append({
- name: SuggestionName.Stat,
- options: {
- reduceOptions: {
- values: true,
- calcs: [],
- fields: '/.*/',
- },
- colorMode: BigValueColorMode.None,
- },
- });
- }
- if (ds.hasNumberField && ds.hasTimeField) {
- list.append({
- options: {
- reduceOptions: {
- values: false,
- calcs: ['lastNotNull'],
- },
- },
- });
- list.append({
- name: SuggestionName.StatColoredBackground,
- options: {
- reduceOptions: {
- values: false,
- calcs: ['lastNotNull'],
- },
- graphMode: BigValueGraphMode.None,
- colorMode: BigValueColorMode.Background,
- },
- });
- }
- }
- }
|