grafana/public/app/plugins/panel/canvas/module.tsx
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

40 lines
1.2 KiB
TypeScript

import { PanelPlugin } from '@grafana/data';
import { GroupState } from 'app/features/canvas/runtime/group';
import { CanvasPanel, InstanceState } from './CanvasPanel';
import { getElementEditor } from './editor/elementEditor';
import { getLayerEditor } from './editor/layerEditor';
import { PanelOptions } from './models.gen';
export const plugin = new PanelPlugin<PanelOptions>(CanvasPanel)
.setNoPadding() // extend to panel edges
.useFieldConfig()
.setPanelOptions((builder, context) => {
const state: InstanceState = context.instanceState;
builder.addBooleanSwitch({
path: 'inlineEditing',
name: 'Inline editing',
description: 'Enable editing the panel directly',
defaultValue: true,
});
if (state) {
builder.addNestedOptions(getLayerEditor(state));
const selection = state.selected;
if (selection?.length === 1) {
const element = selection[0];
if (!(element instanceof GroupState)) {
builder.addNestedOptions(
getElementEditor({
category: [`Selected element (${element.options.name})`],
element,
scene: state.scene,
})
);
}
}
}
});