{"version":3,"file":"PanelRenderer.cjs","sources":["../../../src/components/PanelRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { type AbsoluteTimeRange, type FieldConfigSource, type 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":["PanelRenderer","jsx"],"mappings":";;;;;;;AA0CWA,wBAAmC,MAAM;AAClD,EAAA,uBAAOC,cAAA,CAAC,SAAI,QAAA,EAAA,yEAAA,EAAuE,CAAA;AACrF;AAQO,SAAS,iBAAiB,QAAA,EAA6B;AAC5D,EAAAD,qBAAA,GAAgB,QAAA;AAClB;;;;"}