grafana/public/app/plugins/panel/icon/module.tsx
Nathan Marrs 11aa6a3e8f
Value mapping/add icon support (#44503)
Co-authored-by: Ryan McKinley <ryantxu@users.noreply.github.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-03-15 08:51:12 -07:00

36 lines
1.1 KiB
TypeScript

import { FieldConfigProperty, PanelPlugin } from '@grafana/data';
import { IconPanel } from './IconPanel';
import { defaultPanelOptions, PanelOptions } from './models.gen';
import { IconConfig, iconItem } from 'app/features/canvas/elements/icon';
import { optionBuilder } from '../canvas/editor/options';
import { CanvasElementOptions } from 'app/features/canvas';
export const plugin = new PanelPlugin<PanelOptions>(IconPanel)
.setNoPadding() // extend to panel edges
.useFieldConfig({
standardOptions: {
[FieldConfigProperty.Mappings]: {
settings: {
icon: true,
},
},
},
})
.setPanelOptions((builder) => {
builder.addNestedOptions<CanvasElementOptions<IconConfig>>({
category: ['Icon'],
path: 'root',
// Dynamically fill the selected element
build: (builder, ctx) => {
iconItem.registerOptionsUI!(builder, ctx);
optionBuilder.addBackground(builder, ctx);
optionBuilder.addBorder(builder, ctx);
},
defaultValue: defaultPanelOptions.root as any,
});
});