@grafana/scenes 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/esm/components/EmbeddedScene.js.map +1 -1
  3. package/dist/esm/components/NestedScene.js +1 -28
  4. package/dist/esm/components/NestedScene.js.map +1 -1
  5. package/dist/esm/components/SceneByFrameRepeater.js.map +1 -1
  6. package/dist/esm/components/SceneCanvasText.js +0 -12
  7. package/dist/esm/components/SceneCanvasText.js.map +1 -1
  8. package/dist/esm/components/SceneReactObject.js.map +1 -1
  9. package/dist/esm/components/SceneRefreshPicker.js.map +1 -1
  10. package/dist/esm/components/SceneTimePicker.js.map +1 -1
  11. package/dist/esm/components/SceneToolbarButton.js.map +1 -1
  12. package/dist/esm/components/VizPanel/VizPanel.js +95 -9
  13. package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
  14. package/dist/esm/components/VizPanel/VizPanelMenu.js.map +1 -1
  15. package/dist/esm/components/VizPanel/VizPanelRenderer.js +20 -13
  16. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
  17. package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  18. package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js.map +1 -0
  19. package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  20. package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js.map +1 -0
  21. package/dist/esm/components/layout/SceneFlexLayout.js.map +1 -1
  22. package/dist/esm/components/layout/grid/SceneGridLayout.js.map +1 -1
  23. package/dist/esm/core/SceneComponentWrapper.js +1 -10
  24. package/dist/esm/core/SceneComponentWrapper.js.map +1 -1
  25. package/dist/esm/core/SceneDataNode.js +29 -1
  26. package/dist/esm/core/SceneDataNode.js.map +1 -1
  27. package/dist/esm/core/SceneObjectBase.js +44 -20
  28. package/dist/esm/core/SceneObjectBase.js.map +1 -1
  29. package/dist/esm/core/events.js.map +1 -1
  30. package/dist/esm/core/types.js.map +1 -1
  31. package/dist/esm/core/utils.js +1 -15
  32. package/dist/esm/core/utils.js.map +1 -1
  33. package/dist/esm/querying/SceneDataTransformer.js.map +1 -1
  34. package/dist/esm/querying/SceneQueryRunner.js +14 -14
  35. package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
  36. package/dist/esm/services/UrlSyncManager.js +9 -10
  37. package/dist/esm/services/UrlSyncManager.js.map +1 -1
  38. package/dist/esm/variables/components/VariableValueSelectors.js.map +1 -1
  39. package/dist/esm/variables/interpolation/defaults.js +1 -8
  40. package/dist/esm/variables/interpolation/defaults.js.map +1 -1
  41. package/dist/esm/variables/interpolation/sceneInterpolator.js +12 -8
  42. package/dist/esm/variables/interpolation/sceneInterpolator.js.map +1 -1
  43. package/dist/esm/variables/macros/DataValueMacro.js +60 -0
  44. package/dist/esm/variables/macros/DataValueMacro.js.map +1 -0
  45. package/dist/esm/variables/macros/index.js +3 -1
  46. package/dist/esm/variables/macros/index.js.map +1 -1
  47. package/dist/esm/variables/macros/types.js.map +1 -1
  48. package/dist/esm/variables/sets/SceneVariableSet.js +28 -29
  49. package/dist/esm/variables/sets/SceneVariableSet.js.map +1 -1
  50. package/dist/esm/variables/types.js.map +1 -1
  51. package/dist/esm/variables/variants/query/QueryVariable.js +14 -15
  52. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  53. package/dist/index.d.ts +112 -95
  54. package/dist/index.js +723 -363
  55. package/dist/index.js.map +1 -1
  56. package/package.json +3 -3
package/dist/index.d.ts CHANGED
@@ -2,10 +2,10 @@ import React, { CSSProperties } from 'react';
2
2
  import { Observable, Unsubscribable, MonoTypeOperatorFunction, Subscription } from 'rxjs';
3
3
  import { BusEventWithPayload, PanelData, BusEvent, BusEventType, BusEventHandler, TimeZone, TimeRange, DataTransformContext, DataFrame, ScopedVars, DataTransformerConfig, Registry, RegistryItem, DataSourceRef as DataSourceRef$1, VariableRefresh, VariableSort, PanelMenuItem, FieldConfigSource, PanelPlugin, AbsoluteTimeRange, InterpolateFunction, IconName as IconName$1 } from '@grafana/data';
4
4
  import { VariableType, VariableHide, DataSourceRef, DataQuery } from '@grafana/schema';
5
- import { IconName } from '@grafana/ui';
5
+ import { PanelContext, IconName } from '@grafana/ui';
6
6
  import ReactGridLayout from 'react-grid-layout';
7
7
 
8
- interface SceneVariableState extends SceneObjectStatePlain {
8
+ interface SceneVariableState extends SceneObjectState {
9
9
  type: VariableType;
10
10
  name: string;
11
11
  label?: string;
@@ -49,7 +49,7 @@ interface VariableValueOption {
49
49
  label: string;
50
50
  value: VariableValueSingle;
51
51
  }
52
- interface SceneVariableSetState extends SceneObjectStatePlain {
52
+ interface SceneVariableSetState extends SceneObjectState {
53
53
  variables: SceneVariable[];
54
54
  }
55
55
  interface SceneVariables extends SceneObject<SceneVariableSetState> {
@@ -85,21 +85,18 @@ interface CustomFormatterVariable {
85
85
  includeAll?: boolean;
86
86
  }
87
87
  type VariableCustomFormatterFn = (value: unknown, legacyVariableModel: Partial<CustomFormatterVariable>, legacyDefaultFormatter?: VariableCustomFormatterFn) => string;
88
+ type InterpolationFormatParameter = string | VariableCustomFormatterFn | undefined;
88
89
  declare function isCustomVariableValue(value: VariableValue): value is CustomVariableValue;
89
90
 
90
- interface SceneObjectStatePlain {
91
+ interface SceneObjectState {
91
92
  key?: string;
92
93
  $timeRange?: SceneTimeRangeLike;
93
94
  $data?: SceneDataProvider;
94
95
  $variables?: SceneVariables;
95
96
  }
96
- interface SceneLayoutChildState extends SceneObjectStatePlain {
97
- placement?: SceneLayoutChildOptions;
98
- }
99
- interface SceneLayoutItemState extends SceneObjectStatePlain {
97
+ interface SceneLayoutItemState extends SceneObjectState {
100
98
  body: SceneObject | undefined;
101
99
  }
102
- type SceneObjectState = SceneObjectStatePlain | SceneLayoutState | SceneLayoutChildState;
103
100
  interface SceneLayoutChildOptions {
104
101
  width?: number | string;
105
102
  height?: number | string;
@@ -115,13 +112,8 @@ interface SceneLayoutChildOptions {
115
112
  interface SceneComponentProps<T> {
116
113
  model: T;
117
114
  }
118
- interface SceneComponentWrapperProps {
119
- model: SceneObject;
120
- children: React.ReactNode;
121
- }
122
115
  type SceneComponent<TModel> = (props: SceneComponentProps<TModel>) => React.ReactElement | null;
123
- type SceneComponentCustomWrapper = (props: SceneComponentWrapperProps) => React.ReactElement | null;
124
- interface SceneDataState extends SceneObjectStatePlain {
116
+ interface SceneDataState extends SceneObjectState {
125
117
  data?: PanelData;
126
118
  }
127
119
  interface SceneObject<TState extends SceneObjectState = SceneObjectState> {
@@ -147,13 +139,9 @@ interface SceneObject<TState extends SceneObjectState = SceneObjectState> {
147
139
  setState(state: Partial<TState>): void;
148
140
  /**
149
141
  * Called when the Component is mounted. This will also activate any $data, $variables or $timeRange scene object on this level.
150
- * Don't override this in your custom SceneObjects, instead use addActivationHandler from the constructor. The activation handler can return a deactivation handler.
142
+ * Don't override this in your custom SceneObjects, instead use addActivationHandler from the constructor.
151
143
  **/
152
- activate(): void;
153
- /** Called when component unmounts. This will also deactivate any $data, $variables or $timeRange scene object on this level.
154
- * Don't override this in your custom SceneObjects, instead use addActivationHandler from the constructor. The activation handler can return a deactivation handler.
155
- */
156
- deactivate(): void;
144
+ activate(): CancelActivationHandler;
157
145
  /** Get the scene root */
158
146
  getRoot(): SceneObject;
159
147
  /** Returns a deep clone this object and all its children */
@@ -167,11 +155,19 @@ interface SceneObject<TState extends SceneObjectState = SceneObjectState> {
167
155
  * to wire up scene objects that need to respond to state changes in other objects from the outside.
168
156
  **/
169
157
  addActivationHandler(handler: SceneActivationHandler): void;
158
+ /**
159
+ * Loop through state and call callback for each direct child scene object.
160
+ * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.
161
+ */
162
+ forEachChild(callback: (child: SceneObject) => void): void;
170
163
  }
171
164
  type SceneActivationHandler = () => SceneDeactivationHandler | void;
172
165
  type SceneDeactivationHandler = () => void;
173
- type SceneLayoutChild = SceneObject<SceneLayoutChildState | SceneLayoutState>;
174
- interface SceneLayoutState extends SceneLayoutChildState {
166
+ /**
167
+ * Function returned by activate() that when called will deactivate the object if it's the last activator
168
+ **/
169
+ type CancelActivationHandler = () => void;
170
+ interface SceneLayoutState extends SceneObjectState {
175
171
  children: SceneObject[];
176
172
  }
177
173
  interface SceneLayout<T extends SceneLayoutState = SceneLayoutState> extends SceneObject<T> {
@@ -179,7 +175,7 @@ interface SceneLayout<T extends SceneLayoutState = SceneLayoutState> extends Sce
179
175
  getDragClass?(): string;
180
176
  getDragClassCancel?(): string;
181
177
  }
182
- interface SceneTimeRangeState extends SceneObjectStatePlain {
178
+ interface SceneTimeRangeState extends SceneObjectState {
183
179
  from: string;
184
180
  to: string;
185
181
  timeZone: TimeZone;
@@ -214,11 +210,11 @@ interface SceneDataProvider extends SceneObject<SceneDataState> {
214
210
  setContainerWidth?: (width: number) => void;
215
211
  }
216
212
 
217
- interface SceneObjectStateChangedPayload {
218
- prevState: SceneObjectState;
219
- newState: SceneObjectState;
220
- partialUpdate: Partial<SceneObjectState>;
221
- changedObject: SceneObject;
213
+ interface SceneObjectStateChangedPayload<TState extends SceneObjectState = SceneObjectState> {
214
+ prevState: TState;
215
+ newState: TState;
216
+ partialUpdate: Partial<TState>;
217
+ changedObject: SceneObject<TState>;
222
218
  }
223
219
  declare class SceneObjectStateChangedEvent extends BusEventWithPayload<SceneObjectStateChangedPayload> {
224
220
  static readonly type = "scene-object-state-change";
@@ -271,6 +267,7 @@ declare abstract class SceneObjectBase<TState extends SceneObjectState = SceneOb
271
267
  private _deactivationHandlers;
272
268
  protected _parent?: SceneObject;
273
269
  protected _subs: Subscription;
270
+ protected _refCount: number;
274
271
  protected _variableDependency: SceneVariableDependencyConfigLike | undefined;
275
272
  protected _urlSync: SceneObjectUrlSyncHandler | undefined;
276
273
  constructor(state: TState);
@@ -289,7 +286,7 @@ declare abstract class SceneObjectBase<TState extends SceneObjectState = SceneOb
289
286
  * Wraps the component in an EditWrapper that handles edit mode
290
287
  */
291
288
  get Component(): SceneComponent<this>;
292
- private setParent;
289
+ private _setParent;
293
290
  /**
294
291
  * Subscribe to the scene state subject
295
292
  **/
@@ -301,16 +298,18 @@ declare abstract class SceneObjectBase<TState extends SceneObjectState = SceneOb
301
298
  setState(update: Partial<TState>): void;
302
299
  publishEvent(event: BusEvent, bubble?: boolean): void;
303
300
  getRoot(): SceneObject;
301
+ private _internalActivate;
304
302
  /**
305
- * Called by the SceneComponentWrapper when the react component is mounted.
306
- * Don't override this, instead use addActivationHandler
303
+ * This is primarily called from SceneComponentWrapper when the SceneObject's Component is mounted.
304
+ * But in some scenarios this can also be called directly from another scene object. When called manually from another scene object
305
+ * make sure to call the returned function when the source scene object is deactivated.
307
306
  */
308
- activate(): void;
307
+ activate(): CancelActivationHandler;
309
308
  /**
310
309
  * Called by the SceneComponentWrapper when the react component is unmounted.
311
310
  * Don't override this, instead use addActivationHandler. The activation handler can return a deactivation handler.
312
311
  */
313
- deactivate(): void;
312
+ private _internalDeactivate;
314
313
  /**
315
314
  * Utility hook to get and subscribe to state
316
315
  */
@@ -326,12 +325,18 @@ declare abstract class SceneObjectBase<TState extends SceneObjectState = SceneOb
326
325
  * to wire up scene objects that need to respond to state changes in other objects from the outside.
327
326
  **/
328
327
  addActivationHandler(handler: SceneActivationHandler): void;
328
+ /**
329
+ * Loop through state and call callback for each direct child scene object.
330
+ * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.
331
+ */
332
+ forEachChild(callback: (child: SceneObjectBase) => void): void;
329
333
  }
330
334
 
331
- interface SceneDataNodeState extends SceneObjectStatePlain {
332
- data?: PanelData;
335
+ interface SceneDataNodeState extends SceneDataState {
336
+ data: PanelData;
333
337
  }
334
338
  declare class SceneDataNode extends SceneObjectBase<SceneDataNodeState> implements SceneDataProvider {
339
+ constructor(state?: Partial<SceneDataNodeState>);
335
340
  }
336
341
 
337
342
  interface SceneObjectUrlSyncConfigOptions {
@@ -398,7 +403,7 @@ declare class VariableDependencyConfig<TState extends SceneObjectState> implemen
398
403
  private extractVariablesFrom;
399
404
  }
400
405
 
401
- interface QueryRunnerState extends SceneObjectStatePlain {
406
+ interface QueryRunnerState extends SceneObjectState {
402
407
  data?: PanelData;
403
408
  dataPreTransforms?: PanelData;
404
409
  queries: DataQueryExtended[];
@@ -424,7 +429,7 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
424
429
  */
425
430
  private onVariableUpdatesCompleted;
426
431
  private shouldRunQueriesOnActivate;
427
- deactivate(): void;
432
+ private _onDeactivate;
428
433
  setContainerWidth(width: number): void;
429
434
  runQueries(): void;
430
435
  private getMaxDataPoints;
@@ -432,7 +437,7 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
432
437
  private onDataReceived;
433
438
  }
434
439
 
435
- interface SceneDataTransformerState extends SceneDataNodeState {
440
+ interface SceneDataTransformerState extends SceneDataState {
436
441
  /**
437
442
  * Array of standard transformation configs and custom transform operators
438
443
  */
@@ -480,7 +485,7 @@ interface FormatVariable {
480
485
  }
481
486
  declare const formatRegistry: Registry<FormatRegistryItem>;
482
487
 
483
- declare class VariableValueSelectors extends SceneObjectBase<SceneObjectStatePlain> {
488
+ declare class VariableValueSelectors extends SceneObjectBase<SceneObjectState> {
484
489
  static Component: typeof VariableValueSelectorsRenderer;
485
490
  }
486
491
  declare function VariableValueSelectorsRenderer({ model }: SceneComponentProps<VariableValueSelectors>): JSX.Element;
@@ -506,40 +511,40 @@ declare class SceneVariableSet extends SceneObjectBase<SceneVariableSetState> im
506
511
  /**
507
512
  * Look for new variables that need to be initialized
508
513
  */
509
- private handleStateChanged;
514
+ private _onStateChanged;
510
515
  /**
511
516
  * If variables changed while in in-active state we don't get any change events, so we need to check for that here.
512
517
  */
513
- private checkForVariablesThatChangedWhileInactive;
514
- private variableNeedsUpdate;
518
+ private _checkForVariablesThatChangedWhileInactive;
519
+ private _variableNeedsUpdate;
515
520
  /**
516
521
  * This loops through variablesToUpdate and update all that that can.
517
522
  * If one has a dependency that is currently in variablesToUpdate it will be skipped for now.
518
523
  */
519
- private updateNextBatch;
524
+ private _updateNextBatch;
520
525
  /**
521
526
  * A variable has completed it's update process. This could mean that variables that depend on it can now be updated in turn.
522
527
  */
523
- private validateAndUpdateCompleted;
528
+ private _validateAndUpdateCompleted;
524
529
  /**
525
530
  * TODO handle this properly (and show error in UI).
526
531
  * Not sure if this should be handled here on in MultiValueVariable
527
532
  */
528
- private handleVariableError;
533
+ private _handleVariableError;
529
534
  /**
530
535
  * Checks if the variable has any dependencies that is currently in variablesToUpdate
531
536
  */
532
- private hasDependendencyInUpdateQueue;
533
- private handleVariableValueChanged;
534
- private addDependentVariablesToUpdateQueue;
537
+ private _hasDependendencyInUpdateQueue;
538
+ private _handleVariableValueChanged;
539
+ private _addDependentVariablesToUpdateQueue;
535
540
  /**
536
541
  * Walk scene object graph and update all objects that depend on variables that have changed
537
542
  */
538
- private notifyDependentSceneObjects;
543
+ private _notifyDependentSceneObjects;
539
544
  /**
540
545
  * Recursivly walk the full scene object graph and notify all objects with dependencies that include any of changed variables
541
546
  */
542
- private traverseSceneAndNotify;
547
+ private _traverseSceneAndNotify;
543
548
  /**
544
549
  * Return true if variable is waiting to update or currently updating
545
550
  */
@@ -638,7 +643,6 @@ declare class QueryVariable extends MultiValueVariable<QueryVariableState> {
638
643
  protected _variableDependency: VariableDependencyConfig<QueryVariableState>;
639
644
  constructor(initialState: Partial<QueryVariableState>);
640
645
  private _onActivate;
641
- deactivate(): void;
642
646
  getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;
643
647
  private getRequest;
644
648
  static Component: ({ model }: SceneComponentProps<MultiValueVariable>) => JSX.Element;
@@ -689,12 +693,12 @@ declare class UrlSyncManager {
689
693
  * Updates the current scene state to match URL state.
690
694
  */
691
695
  initSync(): void;
692
- private onLocationUpdate;
693
- private onStateChanged;
694
- private syncSceneStateFromUrl;
696
+ private _onLocationUpdate;
697
+ private _onStateChanged;
698
+ private _syncSceneStateFromUrl;
695
699
  }
696
700
 
697
- interface EmbeddedSceneState extends SceneObjectStatePlain {
701
+ interface EmbeddedSceneState extends SceneObjectState {
698
702
  /**
699
703
  * The main content of the scene (usually a SceneFlexLayout)
700
704
  */
@@ -717,11 +721,8 @@ declare class EmbeddedScene extends SceneObjectBase<EmbeddedSceneState> {
717
721
  declare function EmbeddedSceneRenderer({ model }: SceneComponentProps<EmbeddedScene>): JSX.Element;
718
722
 
719
723
  declare function VizPanelRenderer({ model }: SceneComponentProps<VizPanel>): JSX.Element;
720
- declare namespace VizPanelRenderer {
721
- var displayName: string;
722
- }
723
724
 
724
- interface VizPanelMenuState extends SceneObjectStatePlain {
725
+ interface VizPanelMenuState extends SceneObjectState {
725
726
  items?: PanelMenuItem[];
726
727
  }
727
728
  declare class VizPanelMenu extends SceneObjectBase<VizPanelMenuState> {
@@ -731,7 +732,7 @@ declare class VizPanelMenu extends SceneObjectBase<VizPanelMenuState> {
731
732
  }
732
733
  declare function VizPanelMenuRenderer({ model }: SceneComponentProps<VizPanelMenu>): JSX.Element | null;
733
734
 
734
- interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectStatePlain {
735
+ interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectState {
735
736
  title: string;
736
737
  description?: string;
737
738
  pluginId: string;
@@ -741,26 +742,44 @@ interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectSta
741
742
  displayMode?: 'default' | 'transparent';
742
743
  hoverHeader?: boolean;
743
744
  menu?: VizPanelMenu;
744
- pluginLoadError?: string;
745
745
  isDraggable?: boolean;
746
746
  isResizable?: boolean;
747
+ pluginLoadError?: string;
748
+ pluginInstanceState?: any;
747
749
  }
748
750
  declare class VizPanel<TOptions = {}, TFieldConfig = {}> extends SceneObjectBase<VizPanelState<TOptions, TFieldConfig>> {
749
751
  static Component: typeof VizPanelRenderer;
750
752
  protected _variableDependency: VariableDependencyConfig<VizPanelState<TOptions, TFieldConfig>>;
751
753
  private _plugin?;
754
+ private _panelContext;
755
+ private _prevData?;
756
+ private _dataWithFieldConfig?;
757
+ private _structureRev;
752
758
  constructor(state: Partial<VizPanelState<TOptions, TFieldConfig>>);
753
- activate(): void;
754
- private pluginLoaded;
755
- private getPluginVersion;
759
+ private _onActivate;
760
+ private _loadPlugin;
761
+ private _pluginLoaded;
762
+ private _getPluginVersion;
756
763
  getPlugin(): PanelPlugin | undefined;
764
+ getPanelContext(): PanelContext;
757
765
  onChangeTimeRange: (timeRange: AbsoluteTimeRange) => void;
758
766
  onOptionsChange: (options: TOptions) => void;
759
767
  onFieldConfigChange: (fieldConfig: FieldConfigSource<TFieldConfig>) => void;
760
768
  interpolate: InterpolateFunction;
769
+ /**
770
+ * Called from the react render path to apply the field config to the data provided by the data provider
771
+ */
772
+ applyFieldConfig(rawData?: PanelData): PanelData;
773
+ /**
774
+ * Panel context functions
775
+ */
776
+ private _onSeriesColorChange;
777
+ private _onSeriesVisibilityChange;
778
+ private _onInstanceStateChange;
779
+ private _onToggleLegendSort;
761
780
  }
762
781
 
763
- interface NestedSceneState extends SceneLayoutChildState {
782
+ interface NestedSceneState extends SceneObjectState {
764
783
  title: string;
765
784
  isCollapsed?: boolean;
766
785
  canCollapse?: boolean;
@@ -780,7 +799,7 @@ declare class NestedScene extends SceneObjectBase<NestedSceneState> {
780
799
  }
781
800
  declare function NestedSceneRenderer({ model }: SceneComponentProps<NestedScene>): JSX.Element;
782
801
 
783
- interface SceneCanvasTextState extends SceneLayoutChildState {
802
+ interface SceneCanvasTextState extends SceneObjectState {
784
803
  text: string;
785
804
  fontSize?: number;
786
805
  align?: 'left' | 'center' | 'right';
@@ -790,20 +809,18 @@ interface SceneCanvasTextState extends SceneLayoutChildState {
790
809
  * @internal
791
810
  */
792
811
  declare class SceneCanvasText extends SceneObjectBase<SceneCanvasTextState> {
793
- static Editor: typeof Editor;
794
812
  protected _variableDependency: VariableDependencyConfig<SceneCanvasTextState>;
795
813
  static Component: ({ model }: SceneComponentProps<SceneCanvasText>) => JSX.Element;
796
814
  }
797
- declare function Editor({ model }: SceneComponentProps<SceneCanvasText>): JSX.Element;
798
815
 
799
- interface ToolbarButtonState extends SceneObjectStatePlain {
816
+ interface ToolbarButtonState extends SceneObjectState {
800
817
  icon: IconName;
801
818
  onClick: () => void;
802
819
  }
803
820
  declare class SceneToolbarButton extends SceneObjectBase<ToolbarButtonState> {
804
821
  static Component: ({ model }: SceneComponentProps<SceneToolbarButton>) => JSX.Element;
805
822
  }
806
- interface SceneToolbarInputState extends SceneObjectStatePlain {
823
+ interface SceneToolbarInputState extends SceneObjectState {
807
824
  value?: string;
808
825
  onChange: (value: number) => void;
809
826
  }
@@ -811,7 +828,7 @@ declare class SceneToolbarInput extends SceneObjectBase<SceneToolbarInputState>
811
828
  static Component: ({ model }: SceneComponentProps<SceneToolbarInput>) => JSX.Element;
812
829
  }
813
830
 
814
- interface SceneTimePickerState extends SceneObjectStatePlain {
831
+ interface SceneTimePickerState extends SceneObjectState {
815
832
  hidePicker?: boolean;
816
833
  isOnCanvas?: boolean;
817
834
  }
@@ -820,7 +837,7 @@ declare class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {
820
837
  }
821
838
  declare function SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>): JSX.Element | null;
822
839
 
823
- interface SceneRefreshPickerState extends SceneObjectStatePlain {
840
+ interface SceneRefreshPickerState extends SceneObjectState {
824
841
  refresh: string;
825
842
  intervals?: string[];
826
843
  isOnCanvas?: boolean;
@@ -840,24 +857,9 @@ declare class SceneRefreshPicker extends SceneObjectBase<SceneRefreshPickerState
840
857
  }
841
858
  declare function SceneRefreshPickerRenderer({ model }: SceneComponentProps<SceneRefreshPicker>): JSX.Element;
842
859
 
843
- interface SceneByFrameRepeaterState extends SceneObjectStatePlain {
844
- body: SceneObject<SceneLayoutState>;
845
- getLayoutChild(data: PanelData, frame: DataFrame, frameIndex: number): SceneLayoutChild;
846
- }
847
- declare class SceneByFrameRepeater extends SceneObjectBase<SceneByFrameRepeaterState> {
848
- constructor(state: SceneByFrameRepeaterState);
849
- private performRepeat;
850
- static Component: ({ model }: SceneComponentProps<SceneByFrameRepeater>) => JSX.Element;
851
- }
852
-
853
- declare class SceneControlsSpacer extends SceneObjectBase<{}> {
854
- constructor();
855
- static Component: (_props: SceneComponentProps<SceneControlsSpacer>) => JSX.Element;
856
- }
857
-
858
860
  interface SceneFlexItemLike extends SceneObject<SceneFlexItemState> {
859
861
  }
860
- interface SceneFlexLayoutState extends SceneObjectStatePlain {
862
+ interface SceneFlexLayoutState extends SceneObjectState {
861
863
  direction?: CSSProperties['flexDirection'];
862
864
  wrap?: CSSProperties['flexWrap'];
863
865
  children: SceneFlexItemLike[];
@@ -885,13 +887,28 @@ declare class SceneFlexItem extends SceneObjectBase<SceneFlexItemState> {
885
887
  }
886
888
  declare function SceneFlexItemRenderer({ model }: SceneComponentProps<SceneFlexItem>): JSX.Element | null;
887
889
 
890
+ interface SceneByFrameRepeaterState extends SceneObjectState {
891
+ body: SceneFlexLayout;
892
+ getLayoutChild(data: PanelData, frame: DataFrame, frameIndex: number): SceneFlexItem;
893
+ }
894
+ declare class SceneByFrameRepeater extends SceneObjectBase<SceneByFrameRepeaterState> {
895
+ constructor(state: SceneByFrameRepeaterState);
896
+ private performRepeat;
897
+ static Component: ({ model }: SceneComponentProps<SceneByFrameRepeater>) => JSX.Element;
898
+ }
899
+
900
+ declare class SceneControlsSpacer extends SceneObjectBase<{}> {
901
+ constructor();
902
+ static Component: (_props: SceneComponentProps<SceneControlsSpacer>) => JSX.Element;
903
+ }
904
+
888
905
  interface SceneGridItemPlacement {
889
906
  x?: number;
890
907
  y?: number;
891
908
  width?: number;
892
909
  height?: number;
893
910
  }
894
- interface SceneGridItemStateLike extends SceneGridItemPlacement, SceneObjectStatePlain {
911
+ interface SceneGridItemStateLike extends SceneGridItemPlacement, SceneObjectState {
895
912
  isResizable: boolean;
896
913
  isDraggable: boolean;
897
914
  }
@@ -916,7 +933,7 @@ declare class SceneGridRow extends SceneObjectBase<SceneGridRowState> {
916
933
  }
917
934
  declare function SceneGridRowRenderer({ model }: SceneComponentProps<SceneGridRow>): JSX.Element;
918
935
 
919
- interface SceneGridLayoutState extends SceneObjectStatePlain {
936
+ interface SceneGridLayoutState extends SceneObjectState {
920
937
  /**
921
938
  * Turn on or off dragging for all items. Indiviadual items can still disabled via isDraggable property
922
939
  **/
@@ -970,7 +987,7 @@ interface SceneRouteMatch<Params extends {
970
987
  path: string;
971
988
  url: string;
972
989
  }
973
- interface SceneAppState extends SceneObjectStatePlain {
990
+ interface SceneAppState extends SceneObjectState {
974
991
  pages: SceneAppPageLike[];
975
992
  }
976
993
  interface SceneAppRoute {
@@ -978,7 +995,7 @@ interface SceneAppRoute {
978
995
  page?: SceneAppPageLike;
979
996
  drilldown?: SceneAppDrilldownView;
980
997
  }
981
- interface SceneAppPageState extends SceneObjectStatePlain {
998
+ interface SceneAppPageState extends SceneObjectState {
982
999
  /** Page title */
983
1000
  title: string;
984
1001
  /** Page subTitle */
@@ -1017,7 +1034,7 @@ declare class SceneAppPage extends SceneObjectBase<SceneAppPageState> {
1017
1034
  }
1018
1035
  declare function SceneAppPageRenderer({ model }: SceneComponentProps<SceneAppPage>): JSX.Element;
1019
1036
 
1020
- interface SceneReactObjectState<TProps = {}> extends SceneLayoutChildState {
1037
+ interface SceneReactObjectState<TProps = {}> extends SceneObjectState {
1021
1038
  /**
1022
1039
  * React component to render
1023
1040
  */
@@ -1038,4 +1055,4 @@ declare class SceneReactObject extends SceneObjectBase<SceneReactObjectState> {
1038
1055
  static Component: ({ model }: SceneComponentProps<SceneReactObject>) => {} | null;
1039
1056
  }
1040
1057
 
1041
- export { ConstantVariable, CustomFormatterVariable, CustomTransformOperator, CustomVariable, CustomVariableValue, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, FormatVariable, NestedScene, QueryRunnerState, QueryVariable, SceneActivationHandler, SceneApp, SceneAppDrilldownView, SceneAppPage, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneByFrameRepeater, SceneCanvasText, SceneComponent, SceneComponentCustomWrapper, SceneComponentProps, SceneComponentWrapperProps, SceneControlsSpacer, SceneDataNode, SceneDataProvider, SceneDataState, SceneDataTransformer, SceneDeactivationHandler, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridRow, SceneLayout, SceneLayoutChild, SceneLayoutChildOptions, SceneLayoutChildState, SceneLayoutItemState, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectStatePlain, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRouteMatch, SceneStateChangedHandler, SceneTimePicker, SceneTimeRange, SceneTimeRangeLike, SceneTimeRangeState, SceneToolbarButton, SceneToolbarInput, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, TestVariable, TextBoxVariable, UrlSyncManager, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableDependencyConfig, VariableValue, VariableValueOption, VariableValueSelectors, VariableValueSingle, VizPanel, VizPanelMenu, VizPanelState, formatRegistry, isCustomVariableValue, isSceneObject, sceneGraph };
1058
+ export { CancelActivationHandler, ConstantVariable, CustomFormatterVariable, CustomTransformOperator, CustomVariable, CustomVariableValue, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, FormatVariable, InterpolationFormatParameter, NestedScene, QueryRunnerState, QueryVariable, SceneActivationHandler, SceneApp, SceneAppDrilldownView, SceneAppPage, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneByFrameRepeater, SceneCanvasText, SceneComponent, SceneComponentProps, SceneControlsSpacer, SceneDataNode, SceneDataProvider, SceneDataState, SceneDataTransformer, SceneDeactivationHandler, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridRow, SceneLayout, SceneLayoutChildOptions, SceneLayoutItemState, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRouteMatch, SceneStateChangedHandler, SceneTimePicker, SceneTimeRange, SceneTimeRangeLike, SceneTimeRangeState, SceneToolbarButton, SceneToolbarInput, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, TestVariable, TextBoxVariable, UrlSyncManager, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableDependencyConfig, VariableValue, VariableValueOption, VariableValueSelectors, VariableValueSingle, VizPanel, VizPanelMenu, VizPanelState, formatRegistry, isCustomVariableValue, isSceneObject, sceneGraph };