@grafana/scenes 6.1.5--canary.990.13570008543.0 → 6.1.5--canary.1071.13674684765.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 (34) hide show
  1. package/dist/esm/components/SceneApp/SceneApp.js +3 -9
  2. package/dist/esm/components/SceneApp/SceneApp.js.map +1 -1
  3. package/dist/esm/components/SceneApp/SceneAppPage.js +0 -16
  4. package/dist/esm/components/SceneApp/SceneAppPage.js.map +1 -1
  5. package/dist/esm/core/sceneGraph/index.js +2 -3
  6. package/dist/esm/core/sceneGraph/index.js.map +1 -1
  7. package/dist/esm/core/sceneGraph/sceneGraph.js +1 -6
  8. package/dist/esm/core/sceneGraph/sceneGraph.js.map +1 -1
  9. package/dist/esm/index.js +0 -1
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/esm/querying/SceneQueryRunner.js +8 -33
  12. package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
  13. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +4 -3
  14. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
  15. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +1 -22
  16. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js.map +1 -1
  17. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +4 -10
  18. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
  19. package/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +2 -3
  20. package/dist/esm/variables/adhoc/getAdhocOptionSearcher.js.map +1 -1
  21. package/dist/esm/variables/components/getOptionSearcher.js +2 -3
  22. package/dist/esm/variables/components/getOptionSearcher.js.map +1 -1
  23. package/dist/esm/variables/filter.js +35 -0
  24. package/dist/esm/variables/filter.js.map +1 -0
  25. package/dist/esm/variables/groupby/GroupByVariable.js +2 -3
  26. package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
  27. package/dist/esm/variables/utils.js +1 -23
  28. package/dist/esm/variables/utils.js.map +1 -1
  29. package/dist/index.d.ts +20 -66
  30. package/dist/index.js +54 -227
  31. package/dist/index.js.map +1 -1
  32. package/package.json +2 -2
  33. package/dist/esm/core/SceneScopesBridge.js +0 -111
  34. package/dist/esm/core/SceneScopesBridge.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _grafana_data from '@grafana/data';
2
- import { BusEventWithPayload, EventBus, BusEvent, BusEventType, BusEventHandler, PanelMenuItem, FieldConfigSource, PanelModel, PanelPlugin, AbsoluteTimeRange, PanelData, InterpolateFunction, TimeRange, DataQueryRequest, DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions, DataTransformContext, DataFrame, Scope, IconName, PageLayoutType, UrlQueryMap, DataQuery as DataQuery$1, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, SelectableValue, MetricFindValue, GetTagResponse, VariableRefresh as VariableRefresh$1, VariableSort, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, TimeOption, FieldConfig, FieldType, FieldValueMatcherConfig, ScopedVar, RawTimeRange } from '@grafana/data';
2
+ import { BusEventWithPayload, EventBus, BusEvent, BusEventType, BusEventHandler, PanelMenuItem, FieldConfigSource, PanelModel, PanelPlugin, AbsoluteTimeRange, PanelData, InterpolateFunction, TimeRange, DataQueryRequest, DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions, DataTransformContext, DataFrame, IconName, PageLayoutType, UrlQueryMap, DataQuery as DataQuery$1, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, SelectableValue, MetricFindValue, GetTagResponse, VariableRefresh as VariableRefresh$1, VariableSort, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, TimeOption, FieldConfig, FieldType, FieldValueMatcherConfig, ScopedVar, RawTimeRange } from '@grafana/data';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { ComponentType, CSSProperties, PointerEvent, ForwardRefExoticComponent } from 'react';
5
5
  import * as rxjs from 'rxjs';
@@ -7,7 +7,7 @@ import { Observable, Subscription, Unsubscribable, MonoTypeOperatorFunction, Rep
7
7
  import * as _grafana_schema from '@grafana/schema';
8
8
  import { VariableType, VariableHide, TimeZone, DataTopic, DataQuery, DataSourceRef, VariableRefresh, LoadingState, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
9
9
  import { PanelContext, WeekStart, IconName as IconName$1 } from '@grafana/ui';
10
- import { ScopesContextValue, LocationService, VariableInterpolation } from '@grafana/runtime';
10
+ import { LocationService, VariableInterpolation } from '@grafana/runtime';
11
11
  import { Location } from 'history';
12
12
  import ReactGridLayout from 'react-grid-layout';
13
13
  import { Options, FieldConfig as FieldConfig$1 } from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';
@@ -645,51 +645,6 @@ declare class EmbeddedScene extends SceneObjectBase<EmbeddedSceneState> {
645
645
  }
646
646
  declare function EmbeddedSceneRenderer({ model }: SceneComponentProps<EmbeddedScene>): React__default.JSX.Element;
647
647
 
648
- interface SceneObjectUrlSyncConfigOptions {
649
- keys: string[] | (() => string[]);
650
- }
651
- declare class SceneObjectUrlSyncConfig implements SceneObjectUrlSyncHandler {
652
- private _sceneObject;
653
- private _keys;
654
- private _nextChangeShouldAddHistoryStep;
655
- constructor(_sceneObject: SceneObjectWithUrlSync, _options: SceneObjectUrlSyncConfigOptions);
656
- getKeys(): string[];
657
- getUrlState(): SceneObjectUrlValues;
658
- updateFromUrl(values: SceneObjectUrlValues): void;
659
- shouldCreateHistoryStep(values: SceneObjectUrlValues): boolean;
660
- performBrowserHistoryAction(callback: () => void): void;
661
- }
662
-
663
- declare class SceneScopesBridge extends SceneObjectBase implements SceneObjectWithUrlSync {
664
- static Component: typeof SceneScopesBridgeRenderer;
665
- protected _urlSync: SceneObjectUrlSyncConfig;
666
- protected _renderBeforeActivation: boolean;
667
- private _contextSubject;
668
- private _pendingScopes;
669
- getUrlState(): SceneObjectUrlValues;
670
- updateFromUrl(values: SceneObjectUrlValues): void;
671
- getValue(): Scope[];
672
- subscribeToValue(cb: (newScopes: Scope[], prevScopes: Scope[]) => void): Unsubscribable;
673
- isLoading(): boolean;
674
- subscribeToLoading(cb: (loading: boolean) => void): Unsubscribable;
675
- setEnabled(enabled: boolean): void;
676
- setReadOnly(readOnly: boolean): void;
677
- /**
678
- * This method is used to keep the context up to date with the scopes context received from React
679
- *
680
- * Its rationale is:
681
- * - When a new context is available, check if we have pending scopes passed from the URL
682
- * - If we have pending scopes, ask the new context to load them
683
- * - The loading should happen in a setTimeout to allow the existing context to pass its values to the URL sync handler
684
- * - If a new context is received, propagate it as a new value in the behavior subject
685
- * - If a new value is received, force a re-render to trigger the URL sync handler
686
- */
687
- updateContext(newContext: ScopesContextValue | undefined): void;
688
- private get context();
689
- private get contextObservable();
690
- }
691
- declare function SceneScopesBridgeRenderer({ model }: SceneComponentProps<SceneScopesBridge>): null;
692
-
693
648
  interface SceneRouteMatch<Params extends {
694
649
  [K in keyof Params]?: string;
695
650
  } = {}> {
@@ -702,7 +657,6 @@ interface SceneAppState extends SceneObjectState {
702
657
  pages: SceneAppPageLike[];
703
658
  name?: string;
704
659
  urlSyncOptions?: SceneUrlSyncOptions;
705
- scopesBridge?: SceneScopesBridge;
706
660
  }
707
661
  interface SceneAppRoute {
708
662
  path: string;
@@ -747,7 +701,6 @@ interface SceneAppPageState extends SceneObjectState {
747
701
  */
748
702
  getFallbackPage?: () => SceneAppPageLike;
749
703
  layout?: PageLayoutType;
750
- useScopes?: boolean;
751
704
  }
752
705
  interface SceneAppPageLike extends SceneObject<SceneAppPageState>, DataRequestEnricher {
753
706
  initializeScene(scene: SceneObject): void;
@@ -975,10 +928,8 @@ declare class AdHocFiltersVariable extends SceneObjectBase<AdHocFiltersVariableS
975
928
  static Component: typeof AdHocFiltersVariableRenderer;
976
929
  private _scopedVars;
977
930
  private _dataSourceSrv;
978
- private _scopesBridge;
979
931
  protected _urlSync: AdHocFiltersVariableUrlSyncHandler;
980
932
  constructor(state: Partial<AdHocFiltersVariableState>);
981
- private _activationHandler;
982
933
  setState(update: Partial<AdHocFiltersVariableState>): void;
983
934
  /**
984
935
  * Updates the variable's `filters` and `filterExpression` state.
@@ -1219,7 +1170,6 @@ declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
1219
1170
  static Component: typeof GroupByVariableRenderer;
1220
1171
  isLazy: boolean;
1221
1172
  protected _urlSync: SceneObjectUrlSyncHandler;
1222
- private _scopesBridge;
1223
1173
  validateAndUpdate(): Observable<ValidateAndUpdateResult>;
1224
1174
  private _updateValueGivenNewOptions;
1225
1175
  getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;
@@ -1236,7 +1186,7 @@ declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
1236
1186
  text: string[];
1237
1187
  };
1238
1188
  }
1239
- declare function GroupByVariableRenderer({ model }: SceneComponentProps<GroupByVariable>): React__default.JSX.Element;
1189
+ declare function GroupByVariableRenderer({ model }: SceneComponentProps<MultiValueVariable>): React__default.JSX.Element;
1240
1190
 
1241
1191
  declare function isAdHocVariable(variable: SceneVariable): variable is AdHocFiltersVariable;
1242
1192
  declare function isConstantVariable(variable: SceneVariable): variable is ConstantVariable;
@@ -1415,10 +1365,6 @@ declare function getAncestor<ParentType>(sceneObject: SceneObject, ancestorType:
1415
1365
  * This will search down the full scene graph, looking for objects that match the provided descendentType type.
1416
1366
  */
1417
1367
  declare function findDescendents<T extends SceneObject>(scene: SceneObject, descendentType: SceneType<T>): T[];
1418
- /**
1419
- * Will walk up the scene object graph to the closest $scopesBridge scene object
1420
- */
1421
- declare function getScopesBridge(sceneObject: SceneObject): SceneScopesBridge | undefined;
1422
1368
 
1423
1369
  declare const sceneGraph: {
1424
1370
  getVariables: typeof getVariables;
@@ -1436,7 +1382,6 @@ declare const sceneGraph: {
1436
1382
  getAncestor: typeof getAncestor;
1437
1383
  getQueryController: typeof getQueryController;
1438
1384
  findDescendents: typeof findDescendents;
1439
- getScopesBridge: typeof getScopesBridge;
1440
1385
  };
1441
1386
 
1442
1387
  interface ActWhenVariableChangedState extends SceneObjectState {
@@ -1614,6 +1559,21 @@ declare class SceneDataNode extends SceneObjectBase<SceneDataNodeState> implemen
1614
1559
  getResultsStream(): rxjs.Observable<SceneDataProviderResult>;
1615
1560
  }
1616
1561
 
1562
+ interface SceneObjectUrlSyncConfigOptions {
1563
+ keys: string[] | (() => string[]);
1564
+ }
1565
+ declare class SceneObjectUrlSyncConfig implements SceneObjectUrlSyncHandler {
1566
+ private _sceneObject;
1567
+ private _keys;
1568
+ private _nextChangeShouldAddHistoryStep;
1569
+ constructor(_sceneObject: SceneObjectWithUrlSync, _options: SceneObjectUrlSyncConfigOptions);
1570
+ getKeys(): string[];
1571
+ getUrlState(): SceneObjectUrlValues;
1572
+ updateFromUrl(values: SceneObjectUrlValues): void;
1573
+ shouldCreateHistoryStep(values: SceneObjectUrlValues): boolean;
1574
+ performBrowserHistoryAction(callback: () => void): void;
1575
+ }
1576
+
1617
1577
  declare class SceneTimeRange extends SceneObjectBase<SceneTimeRangeState> implements SceneTimeRangeLike {
1618
1578
  protected _urlSync: SceneObjectUrlSyncConfig;
1619
1579
  constructor(state?: Partial<SceneTimeRangeState>);
@@ -1688,8 +1648,6 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
1688
1648
  private _dataLayersMerger;
1689
1649
  private _timeSub?;
1690
1650
  private _timeSubRange?;
1691
- private _scopesSub?;
1692
- private _scopesSubBridge?;
1693
1651
  private _containerWidth?;
1694
1652
  private _variableValueRecorder;
1695
1653
  private _results;
@@ -1728,12 +1686,11 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
1728
1686
  private _onDeactivate;
1729
1687
  setContainerWidth(width: number): void;
1730
1688
  isDataReadyToDisplay(): boolean;
1731
- private subscribeToScopesChanges;
1732
1689
  private subscribeToTimeRangeChanges;
1733
1690
  runQueries(): void;
1734
1691
  private getMaxDataPoints;
1735
1692
  cancelQuery(): void;
1736
- private runWithTimeRangeAndScopes;
1693
+ private runWithTimeRange;
1737
1694
  clone(withState?: Partial<QueryRunnerState>): this;
1738
1695
  private prepareRequests;
1739
1696
  private onDataReceived;
@@ -2457,7 +2414,6 @@ declare const LazyLoader: LazyLoaderType;
2457
2414
  * Responsible for top level pages routing
2458
2415
  */
2459
2416
  declare class SceneApp extends SceneObjectBase<SceneAppState> implements DataRequestEnricher {
2460
- protected _renderBeforeActivation: boolean;
2461
2417
  enrichDataRequest(): {
2462
2418
  app: string;
2463
2419
  };
@@ -2475,9 +2431,7 @@ declare class SceneAppPage extends SceneObjectBase<SceneAppPageState> implements
2475
2431
  static Component: typeof SceneAppPageRenderer;
2476
2432
  private _sceneCache;
2477
2433
  private _drilldownCache;
2478
- private _scopesBridge;
2479
2434
  constructor(state: SceneAppPageState);
2480
- private _activationHandler;
2481
2435
  initializeScene(scene: EmbeddedScene): void;
2482
2436
  getScene(routeMatch: SceneRouteMatch): EmbeddedScene;
2483
2437
  getDrilldownPage(drilldown: SceneAppDrilldownView, routeMatch: SceneRouteMatch<{}>): SceneAppPageLike;
@@ -2978,4 +2932,4 @@ declare const sceneUtils: {
2978
2932
  isGroupByVariable: typeof isGroupByVariable;
2979
2933
  };
2980
2934
 
2981
- export { AdHocFilterWithLabels, AdHocFiltersVariable, CancelActivationHandler, ConstantVariable, ControlsLabel, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariable, CustomVariableValue, DataLayerFilter, DataProviderProxy, DataRequestEnricher, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, ExtraQueryDataProcessor, ExtraQueryDescriptor, ExtraQueryProvider, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, FilterOrigin, FiltersRequestEnricher, FormatVariable, GroupByVariable, InterpolationFormatParameter, IntervalVariable, LazyLoader, LocalValueVariable, MacroVariableConstructor, MultiValueVariable, MultiValueVariableState, NestedScene, NewSceneObjectAddedEvent, PanelBuilders, PanelOptionsBuilders, QueryRunnerState, QueryVariable, RuntimeDataSource, SafeSerializableSceneObject, SceneActivationHandler, SceneApp, SceneAppDrilldownView, SceneAppPage, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneComponent, SceneComponentProps, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformer, SceneDataTransformerState, SceneDeactivationHandler, SceneDebugger, SceneFlexItem, SceneFlexItemLike, SceneFlexItemState, SceneFlexLayout, SceneGridItem, SceneGridItemLike, SceneGridItemStateLike, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneInteractionProfileEvent, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRefreshPickerState, SceneRouteMatch, SceneScopesBridge, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeLike, SceneTimeRangeState, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneUrlSyncOptions, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, SplitLayout, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UrlSyncManagerLike, UseStateHookOptions, UserActionEvent, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableDependencyConfig, VariableGetOptionsArgs, VariableValue, VariableValueControl, VariableValueOption, VariableValueSelectWrapper, VariableValueSelectors, VariableValueSingle, VizConfig, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, VizPanelState, index$1 as behaviors, index as dataLayers, formatRegistry, getExploreURL, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, registerQueryWithController, registerRuntimeDataSource, renderSelectForVariable, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync };
2935
+ export { AdHocFilterWithLabels, AdHocFiltersVariable, CancelActivationHandler, ConstantVariable, ControlsLabel, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariable, CustomVariableValue, DataLayerFilter, DataProviderProxy, DataRequestEnricher, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, ExtraQueryDataProcessor, ExtraQueryDescriptor, ExtraQueryProvider, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, FilterOrigin, FiltersRequestEnricher, FormatVariable, GroupByVariable, InterpolationFormatParameter, IntervalVariable, LazyLoader, LocalValueVariable, MacroVariableConstructor, MultiValueVariable, MultiValueVariableState, NestedScene, NewSceneObjectAddedEvent, PanelBuilders, PanelOptionsBuilders, QueryRunnerState, QueryVariable, RuntimeDataSource, SafeSerializableSceneObject, SceneActivationHandler, SceneApp, SceneAppDrilldownView, SceneAppPage, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneComponent, SceneComponentProps, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformer, SceneDataTransformerState, SceneDeactivationHandler, SceneDebugger, SceneFlexItem, SceneFlexItemLike, SceneFlexItemState, SceneFlexLayout, SceneGridItem, SceneGridItemLike, SceneGridItemStateLike, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneInteractionProfileEvent, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRefreshPickerState, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeLike, SceneTimeRangeState, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneUrlSyncOptions, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, SplitLayout, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UrlSyncManagerLike, UseStateHookOptions, UserActionEvent, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableDependencyConfig, VariableGetOptionsArgs, VariableValue, VariableValueControl, VariableValueOption, VariableValueSelectWrapper, VariableValueSelectors, VariableValueSingle, VizConfig, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, VizPanelState, index$1 as behaviors, index as dataLayers, formatRegistry, getExploreURL, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, registerQueryWithController, registerRuntimeDataSource, renderSelectForVariable, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync };