UNPKG

@grafana/runtime

Version:
1 lines 1.88 kB
{"version":3,"file":"PanelRenderer.mjs","sources":["../../../src/components/PanelRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { AbsoluteTimeRange, FieldConfigSource, PanelData } from '@grafana/data';\n\n/**\n * Describes the properties that can be passed to the PanelRenderer.\n *\n * @typeParam P - Panel options type for the panel being rendered.\n * @typeParam F - Field options type for the panel being rendered.\n *\n * @internal\n */\nexport interface PanelRendererProps<P extends object = {}, F extends object = {}> {\n data?: PanelData;\n pluginId: string;\n title: string;\n options?: Partial<P>;\n onOptionsChange?: (options: P) => void;\n onFieldConfigChange?: (config: FieldConfigSource<F>) => void;\n onChangeTimeRange?: (timeRange: AbsoluteTimeRange) => void;\n fieldConfig?: FieldConfigSource<Partial<F>>;\n timeZone?: string;\n width: number;\n height: number;\n}\n\n/**\n * Simplified type with defaults that describes the PanelRenderer.\n *\n * @internal\n */\nexport type PanelRendererType<P extends object = {}, F extends object = {}> = React.ComponentType<\n PanelRendererProps<P, F>\n>;\n\n/**\n * PanelRenderer component that will be set via the {@link setPanelRenderer} function\n * when Grafana starts. The implementation being used during runtime lives in Grafana\n * core.\n *\n * @internal\n */\nexport let PanelRenderer: PanelRendererType = () => {\n return <div>PanelRenderer can only be used after Grafana instance has been started.</div>;\n};\n\n/**\n * Used to bootstrap the PanelRenderer during application start so the PanelRenderer\n * is exposed via runtime.\n *\n * @internal\n */\nexport function setPanelRenderer(renderer: PanelRendererType) {\n PanelRenderer = renderer;\n}\n"],"names":[],"mappings":";;AA0CO,IAAI,gBAAmC,MAAM;AAClD,EAAO,uBAAA,GAAA,CAAC,SAAI,QAAuE,EAAA,yEAAA,EAAA,CAAA;AACrF;;;;"}