module.tsx 783 B

123456789101112131415161718192021222324
  1. import { ReactPanelPlugin } from '@grafana/ui';
  2. import { TextPanelEditor } from './TextPanelEditor';
  3. import { TextPanel } from './TextPanel';
  4. import { TextOptions, defaults } from './types';
  5. import { PanelModel } from 'app/features/dashboard/state';
  6. import get from 'lodash/get';
  7. import cloneDeep from 'lodash/cloneDeep';
  8. export const reactPanel = new ReactPanelPlugin<TextOptions>(TextPanel);
  9. const validator = (model: PanelModel): TextOptions => {
  10. const options = model.options as TextOptions;
  11. if (!options) {
  12. // Use the same settings from an existing 'text' panel
  13. return cloneDeep(get(model, 'cachedPluginOptions.text'));
  14. }
  15. return options;
  16. };
  17. reactPanel.setEditor(TextPanelEditor);
  18. reactPanel.setDefaults(defaults);
  19. reactPanel.setOptionsValidator(validator);