@grafana/scenes 6.1.2--canary.967.13520771706.0 → 6.1.2--canary.990.13540617999.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.
- package/dist/esm/components/SceneApp/SceneApp.js +9 -3
- package/dist/esm/components/SceneApp/SceneApp.js.map +1 -1
- package/dist/esm/components/SceneApp/SceneAppPage.js +16 -0
- package/dist/esm/components/SceneApp/SceneAppPage.js.map +1 -1
- package/dist/esm/core/SceneScopesBridge.js +111 -0
- package/dist/esm/core/SceneScopesBridge.js.map +1 -0
- package/dist/esm/core/sceneGraph/index.js +3 -2
- package/dist/esm/core/sceneGraph/index.js.map +1 -1
- package/dist/esm/core/sceneGraph/sceneGraph.js +6 -1
- package/dist/esm/core/sceneGraph/sceneGraph.js.map +1 -1
- package/dist/esm/core/sceneGraph/utils.js +4 -10
- package/dist/esm/core/sceneGraph/utils.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/querying/SceneQueryRunner.js +33 -8
- package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +10 -4
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariable.js +3 -2
- package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
- package/dist/index.d.ts +56 -20
- package/dist/index.js +183 -27
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
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, 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, 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';
|
|
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 { LocationService, VariableInterpolation } from '@grafana/runtime';
|
|
10
|
+
import { ScopesContextValue, 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,6 +645,41 @@ 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
|
+
updateContext(newContext: ScopesContextValue | undefined): void;
|
|
678
|
+
private get context();
|
|
679
|
+
private get contextObservable();
|
|
680
|
+
}
|
|
681
|
+
declare function SceneScopesBridgeRenderer({ model }: SceneComponentProps<SceneScopesBridge>): null;
|
|
682
|
+
|
|
648
683
|
interface SceneRouteMatch<Params extends {
|
|
649
684
|
[K in keyof Params]?: string;
|
|
650
685
|
} = {}> {
|
|
@@ -657,6 +692,7 @@ interface SceneAppState extends SceneObjectState {
|
|
|
657
692
|
pages: SceneAppPageLike[];
|
|
658
693
|
name?: string;
|
|
659
694
|
urlSyncOptions?: SceneUrlSyncOptions;
|
|
695
|
+
scopesBridge?: SceneScopesBridge;
|
|
660
696
|
}
|
|
661
697
|
interface SceneAppRoute {
|
|
662
698
|
path: string;
|
|
@@ -701,6 +737,7 @@ interface SceneAppPageState extends SceneObjectState {
|
|
|
701
737
|
*/
|
|
702
738
|
getFallbackPage?: () => SceneAppPageLike;
|
|
703
739
|
layout?: PageLayoutType;
|
|
740
|
+
useScopes?: boolean;
|
|
704
741
|
}
|
|
705
742
|
interface SceneAppPageLike extends SceneObject<SceneAppPageState>, DataRequestEnricher {
|
|
706
743
|
initializeScene(scene: SceneObject): void;
|
|
@@ -923,8 +960,10 @@ declare class AdHocFiltersVariable extends SceneObjectBase<AdHocFiltersVariableS
|
|
|
923
960
|
static Component: typeof AdHocFiltersVariableRenderer;
|
|
924
961
|
private _scopedVars;
|
|
925
962
|
private _dataSourceSrv;
|
|
963
|
+
private _scopesBridge;
|
|
926
964
|
protected _urlSync: AdHocFiltersVariableUrlSyncHandler;
|
|
927
965
|
constructor(state: Partial<AdHocFiltersVariableState>);
|
|
966
|
+
private _activationHandler;
|
|
928
967
|
setState(update: Partial<AdHocFiltersVariableState>): void;
|
|
929
968
|
/**
|
|
930
969
|
* Updates the variable's `filters` and `filterExpression` state.
|
|
@@ -1165,6 +1204,7 @@ declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
|
|
|
1165
1204
|
static Component: typeof GroupByVariableRenderer;
|
|
1166
1205
|
isLazy: boolean;
|
|
1167
1206
|
protected _urlSync: SceneObjectUrlSyncHandler;
|
|
1207
|
+
private _scopesBridge;
|
|
1168
1208
|
validateAndUpdate(): Observable<ValidateAndUpdateResult>;
|
|
1169
1209
|
private _updateValueGivenNewOptions;
|
|
1170
1210
|
getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;
|
|
@@ -1181,7 +1221,7 @@ declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
|
|
|
1181
1221
|
text: string[];
|
|
1182
1222
|
};
|
|
1183
1223
|
}
|
|
1184
|
-
declare function GroupByVariableRenderer({ model }: SceneComponentProps<
|
|
1224
|
+
declare function GroupByVariableRenderer({ model }: SceneComponentProps<GroupByVariable>): React__default.JSX.Element;
|
|
1185
1225
|
|
|
1186
1226
|
declare function isAdHocVariable(variable: SceneVariable): variable is AdHocFiltersVariable;
|
|
1187
1227
|
declare function isConstantVariable(variable: SceneVariable): variable is ConstantVariable;
|
|
@@ -1360,6 +1400,10 @@ declare function getAncestor<ParentType>(sceneObject: SceneObject, ancestorType:
|
|
|
1360
1400
|
* This will search down the full scene graph, looking for objects that match the provided descendentType type.
|
|
1361
1401
|
*/
|
|
1362
1402
|
declare function findDescendents<T extends SceneObject>(scene: SceneObject, descendentType: SceneType<T>): T[];
|
|
1403
|
+
/**
|
|
1404
|
+
* Will walk up the scene object graph to the closest $scopesBridge scene object
|
|
1405
|
+
*/
|
|
1406
|
+
declare function getScopesBridge(sceneObject: SceneObject): SceneScopesBridge | undefined;
|
|
1363
1407
|
|
|
1364
1408
|
declare const sceneGraph: {
|
|
1365
1409
|
getVariables: typeof getVariables;
|
|
@@ -1377,6 +1421,7 @@ declare const sceneGraph: {
|
|
|
1377
1421
|
getAncestor: typeof getAncestor;
|
|
1378
1422
|
getQueryController: typeof getQueryController;
|
|
1379
1423
|
findDescendents: typeof findDescendents;
|
|
1424
|
+
getScopesBridge: typeof getScopesBridge;
|
|
1380
1425
|
};
|
|
1381
1426
|
|
|
1382
1427
|
interface ActWhenVariableChangedState extends SceneObjectState {
|
|
@@ -1554,21 +1599,6 @@ declare class SceneDataNode extends SceneObjectBase<SceneDataNodeState> implemen
|
|
|
1554
1599
|
getResultsStream(): rxjs.Observable<SceneDataProviderResult>;
|
|
1555
1600
|
}
|
|
1556
1601
|
|
|
1557
|
-
interface SceneObjectUrlSyncConfigOptions {
|
|
1558
|
-
keys: string[] | (() => string[]);
|
|
1559
|
-
}
|
|
1560
|
-
declare class SceneObjectUrlSyncConfig implements SceneObjectUrlSyncHandler {
|
|
1561
|
-
private _sceneObject;
|
|
1562
|
-
private _keys;
|
|
1563
|
-
private _nextChangeShouldAddHistoryStep;
|
|
1564
|
-
constructor(_sceneObject: SceneObjectWithUrlSync, _options: SceneObjectUrlSyncConfigOptions);
|
|
1565
|
-
getKeys(): string[];
|
|
1566
|
-
getUrlState(): SceneObjectUrlValues;
|
|
1567
|
-
updateFromUrl(values: SceneObjectUrlValues): void;
|
|
1568
|
-
shouldCreateHistoryStep(values: SceneObjectUrlValues): boolean;
|
|
1569
|
-
performBrowserHistoryAction(callback: () => void): void;
|
|
1570
|
-
}
|
|
1571
|
-
|
|
1572
1602
|
declare class SceneTimeRange extends SceneObjectBase<SceneTimeRangeState> implements SceneTimeRangeLike {
|
|
1573
1603
|
protected _urlSync: SceneObjectUrlSyncConfig;
|
|
1574
1604
|
constructor(state?: Partial<SceneTimeRangeState>);
|
|
@@ -1643,6 +1673,8 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
|
|
|
1643
1673
|
private _dataLayersMerger;
|
|
1644
1674
|
private _timeSub?;
|
|
1645
1675
|
private _timeSubRange?;
|
|
1676
|
+
private _scopesSub?;
|
|
1677
|
+
private _scopesSubBridge?;
|
|
1646
1678
|
private _containerWidth?;
|
|
1647
1679
|
private _variableValueRecorder;
|
|
1648
1680
|
private _results;
|
|
@@ -1681,11 +1713,12 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
|
|
|
1681
1713
|
private _onDeactivate;
|
|
1682
1714
|
setContainerWidth(width: number): void;
|
|
1683
1715
|
isDataReadyToDisplay(): boolean;
|
|
1716
|
+
private subscribeToScopesChanges;
|
|
1684
1717
|
private subscribeToTimeRangeChanges;
|
|
1685
1718
|
runQueries(): void;
|
|
1686
1719
|
private getMaxDataPoints;
|
|
1687
1720
|
cancelQuery(): void;
|
|
1688
|
-
private
|
|
1721
|
+
private runWithTimeRangeAndScopes;
|
|
1689
1722
|
clone(withState?: Partial<QueryRunnerState>): this;
|
|
1690
1723
|
private prepareRequests;
|
|
1691
1724
|
private onDataReceived;
|
|
@@ -2409,6 +2442,7 @@ declare const LazyLoader: LazyLoaderType;
|
|
|
2409
2442
|
* Responsible for top level pages routing
|
|
2410
2443
|
*/
|
|
2411
2444
|
declare class SceneApp extends SceneObjectBase<SceneAppState> implements DataRequestEnricher {
|
|
2445
|
+
protected _renderBeforeActivation: boolean;
|
|
2412
2446
|
enrichDataRequest(): {
|
|
2413
2447
|
app: string;
|
|
2414
2448
|
};
|
|
@@ -2426,7 +2460,9 @@ declare class SceneAppPage extends SceneObjectBase<SceneAppPageState> implements
|
|
|
2426
2460
|
static Component: typeof SceneAppPageRenderer;
|
|
2427
2461
|
private _sceneCache;
|
|
2428
2462
|
private _drilldownCache;
|
|
2463
|
+
private _scopesBridge;
|
|
2429
2464
|
constructor(state: SceneAppPageState);
|
|
2465
|
+
private _activationHandler;
|
|
2430
2466
|
initializeScene(scene: EmbeddedScene): void;
|
|
2431
2467
|
getScene(routeMatch: SceneRouteMatch): EmbeddedScene;
|
|
2432
2468
|
getDrilldownPage(drilldown: SceneAppDrilldownView, routeMatch: SceneRouteMatch<{}>): SceneAppPageLike;
|
|
@@ -2927,4 +2963,4 @@ declare const sceneUtils: {
|
|
|
2927
2963
|
isGroupByVariable: typeof isGroupByVariable;
|
|
2928
2964
|
};
|
|
2929
2965
|
|
|
2930
|
-
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, 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 };
|
|
2966
|
+
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, 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 };
|
package/dist/index.js
CHANGED
|
@@ -537,28 +537,23 @@ function cloneSceneObjectState(sceneState, withState) {
|
|
|
537
537
|
continue;
|
|
538
538
|
}
|
|
539
539
|
const propValue = clonedState[key];
|
|
540
|
+
if (propValue instanceof SceneObjectBase) {
|
|
541
|
+
clonedState[key] = propValue.clone();
|
|
542
|
+
}
|
|
540
543
|
if (propValue instanceof SceneObjectRef) {
|
|
541
544
|
console.warn("Cloning object with SceneObjectRef");
|
|
542
545
|
continue;
|
|
543
546
|
}
|
|
544
|
-
if (propValue
|
|
545
|
-
clonedState[key] = propValue.clone();
|
|
546
|
-
} else if (Array.isArray(propValue)) {
|
|
547
|
+
if (Array.isArray(propValue)) {
|
|
547
548
|
const newArray = [];
|
|
548
549
|
for (const child of propValue) {
|
|
549
550
|
if (child instanceof SceneObjectBase) {
|
|
550
551
|
newArray.push(child.clone());
|
|
551
|
-
} else if (typeof child === "object") {
|
|
552
|
-
newArray.push(lodash.cloneDeep(child));
|
|
553
552
|
} else {
|
|
554
553
|
newArray.push(child);
|
|
555
554
|
}
|
|
556
555
|
}
|
|
557
556
|
clonedState[key] = newArray;
|
|
558
|
-
} else if (typeof propValue === "object") {
|
|
559
|
-
clonedState[key] = lodash.cloneDeep(propValue);
|
|
560
|
-
} else {
|
|
561
|
-
clonedState[key] = propValue;
|
|
562
557
|
}
|
|
563
558
|
}
|
|
564
559
|
return clonedState;
|
|
@@ -3233,7 +3228,7 @@ class GroupByVariable extends MultiValueVariable {
|
|
|
3233
3228
|
this.isLazy = true;
|
|
3234
3229
|
this._urlSync = new GroupByVariableUrlSyncHandler(this);
|
|
3235
3230
|
this._getKeys = async (ds) => {
|
|
3236
|
-
var _a, _b, _c;
|
|
3231
|
+
var _a, _b, _c, _d;
|
|
3237
3232
|
const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, null));
|
|
3238
3233
|
if (override && override.replace) {
|
|
3239
3234
|
return override.values;
|
|
@@ -3250,7 +3245,8 @@ class GroupByVariable extends MultiValueVariable {
|
|
|
3250
3245
|
const response = await ds.getTagKeys(__spreadValues$F({
|
|
3251
3246
|
filters: otherFilters,
|
|
3252
3247
|
queries,
|
|
3253
|
-
timeRange
|
|
3248
|
+
timeRange,
|
|
3249
|
+
scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
|
|
3254
3250
|
}, getEnrichedFiltersRequest(this)));
|
|
3255
3251
|
if (responseHasError(response)) {
|
|
3256
3252
|
this.setState({ error: response.error.message });
|
|
@@ -5388,9 +5384,13 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5388
5384
|
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
|
5389
5385
|
this._dataSourceSrv = runtime.getDataSourceSrv();
|
|
5390
5386
|
this._urlSync = new AdHocFiltersVariableUrlSyncHandler(this);
|
|
5387
|
+
this._activationHandler = () => {
|
|
5388
|
+
this._scopesBridge = sceneGraph.getScopesBridge(this);
|
|
5389
|
+
};
|
|
5391
5390
|
if (this.state.applyMode === "auto") {
|
|
5392
5391
|
patchGetAdhocFilters(this);
|
|
5393
5392
|
}
|
|
5393
|
+
this.addActivationHandler(this._activationHandler);
|
|
5394
5394
|
}
|
|
5395
5395
|
setState(update) {
|
|
5396
5396
|
let filterExpressionChanged = false;
|
|
@@ -5474,7 +5474,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5474
5474
|
}
|
|
5475
5475
|
}
|
|
5476
5476
|
async _getKeys(currentKey) {
|
|
5477
|
-
var _a, _b, _c;
|
|
5477
|
+
var _a, _b, _c, _d;
|
|
5478
5478
|
const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, currentKey));
|
|
5479
5479
|
if (override && override.replace) {
|
|
5480
5480
|
return dataFromResponse(override.values).map(toSelectableValue);
|
|
@@ -5492,7 +5492,8 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5492
5492
|
const response = await ds.getTagKeys(__spreadValues$z({
|
|
5493
5493
|
filters: otherFilters,
|
|
5494
5494
|
queries,
|
|
5495
|
-
timeRange
|
|
5495
|
+
timeRange,
|
|
5496
|
+
scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
|
|
5496
5497
|
}, getEnrichedFiltersRequest(this)));
|
|
5497
5498
|
if (responseHasError(response)) {
|
|
5498
5499
|
this.setState({ error: response.error.message });
|
|
@@ -5508,7 +5509,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5508
5509
|
return keys.map(toSelectableValue);
|
|
5509
5510
|
}
|
|
5510
5511
|
async _getValuesFor(filter) {
|
|
5511
|
-
var _a, _b, _c;
|
|
5512
|
+
var _a, _b, _c, _d;
|
|
5512
5513
|
const override = await ((_b = (_a = this.state).getTagValuesProvider) == null ? void 0 : _b.call(_a, this, filter));
|
|
5513
5514
|
if (override && override.replace) {
|
|
5514
5515
|
return dataFromResponse(override.values).map(toSelectableValue);
|
|
@@ -5524,7 +5525,8 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5524
5525
|
key: filter.key,
|
|
5525
5526
|
filters: otherFilters,
|
|
5526
5527
|
timeRange,
|
|
5527
|
-
queries
|
|
5528
|
+
queries,
|
|
5529
|
+
scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
|
|
5528
5530
|
}, getEnrichedFiltersRequest(this)));
|
|
5529
5531
|
if (responseHasError(response)) {
|
|
5530
5532
|
this.setState({ error: response.error.message });
|
|
@@ -5712,6 +5714,7 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5712
5714
|
_onActivate() {
|
|
5713
5715
|
if (this.isQueryModeAuto()) {
|
|
5714
5716
|
const timeRange = sceneGraph.getTimeRange(this);
|
|
5717
|
+
const scopesBridge = sceneGraph.getScopesBridge(this);
|
|
5715
5718
|
const providers = this.getClosestExtraQueryProviders();
|
|
5716
5719
|
for (const provider of providers) {
|
|
5717
5720
|
this._subs.add(
|
|
@@ -5722,6 +5725,7 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5722
5725
|
})
|
|
5723
5726
|
);
|
|
5724
5727
|
}
|
|
5728
|
+
this.subscribeToScopesChanges(scopesBridge);
|
|
5725
5729
|
this.subscribeToTimeRangeChanges(timeRange);
|
|
5726
5730
|
if (this.shouldRunQueriesOnActivate()) {
|
|
5727
5731
|
this.runQueries();
|
|
@@ -5867,6 +5871,21 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5867
5871
|
isDataReadyToDisplay() {
|
|
5868
5872
|
return Boolean(this.state._hasFetchedData);
|
|
5869
5873
|
}
|
|
5874
|
+
subscribeToScopesChanges(scopesBridge) {
|
|
5875
|
+
if (!scopesBridge) {
|
|
5876
|
+
return;
|
|
5877
|
+
}
|
|
5878
|
+
if (this._scopesSubBridge === scopesBridge) {
|
|
5879
|
+
return;
|
|
5880
|
+
}
|
|
5881
|
+
if (this._scopesSub) {
|
|
5882
|
+
this._scopesSub.unsubscribe();
|
|
5883
|
+
}
|
|
5884
|
+
this._scopesSubBridge = scopesBridge;
|
|
5885
|
+
this._scopesSub = scopesBridge.subscribeToValue(() => {
|
|
5886
|
+
this.runWithTimeRangeAndScopes(sceneGraph.getTimeRange(this), scopesBridge);
|
|
5887
|
+
});
|
|
5888
|
+
}
|
|
5870
5889
|
subscribeToTimeRangeChanges(timeRange) {
|
|
5871
5890
|
if (this._timeSubRange === timeRange) {
|
|
5872
5891
|
return;
|
|
@@ -5876,15 +5895,17 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5876
5895
|
}
|
|
5877
5896
|
this._timeSubRange = timeRange;
|
|
5878
5897
|
this._timeSub = timeRange.subscribeToState(() => {
|
|
5879
|
-
this.
|
|
5898
|
+
this.runWithTimeRangeAndScopes(timeRange, sceneGraph.getScopesBridge(this));
|
|
5880
5899
|
});
|
|
5881
5900
|
}
|
|
5882
5901
|
runQueries() {
|
|
5883
5902
|
const timeRange = sceneGraph.getTimeRange(this);
|
|
5903
|
+
const scopesBridge = sceneGraph.getScopesBridge(this);
|
|
5884
5904
|
if (this.isQueryModeAuto()) {
|
|
5885
5905
|
this.subscribeToTimeRangeChanges(timeRange);
|
|
5906
|
+
this.subscribeToScopesChanges(scopesBridge);
|
|
5886
5907
|
}
|
|
5887
|
-
this.
|
|
5908
|
+
this.runWithTimeRangeAndScopes(timeRange, scopesBridge);
|
|
5888
5909
|
}
|
|
5889
5910
|
getMaxDataPoints() {
|
|
5890
5911
|
var _a;
|
|
@@ -5904,8 +5925,8 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5904
5925
|
data: __spreadProps$m(__spreadValues$y({}, this.state.data), { state: schema.LoadingState.Done })
|
|
5905
5926
|
});
|
|
5906
5927
|
}
|
|
5907
|
-
async
|
|
5908
|
-
var _a, _b, _c;
|
|
5928
|
+
async runWithTimeRangeAndScopes(timeRange, scopesBridge) {
|
|
5929
|
+
var _a, _b, _c, _d;
|
|
5909
5930
|
if (!this.state.maxDataPoints && this.state.maxDataPointsFromWidth && !this._containerWidth) {
|
|
5910
5931
|
return;
|
|
5911
5932
|
}
|
|
@@ -5918,17 +5939,22 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5918
5939
|
this.setState({ data: __spreadProps$m(__spreadValues$y({}, (_b = this.state.data) != null ? _b : emptyPanelData), { state: schema.LoadingState.Loading }) });
|
|
5919
5940
|
return;
|
|
5920
5941
|
}
|
|
5942
|
+
if (scopesBridge == null ? void 0 : scopesBridge.isLoading()) {
|
|
5943
|
+
writeSceneLog("SceneQueryRunner", "Scopes are in loading state, skipping query execution");
|
|
5944
|
+
this.setState({ data: __spreadProps$m(__spreadValues$y({}, (_c = this.state.data) != null ? _c : emptyPanelData), { state: schema.LoadingState.Loading }) });
|
|
5945
|
+
return;
|
|
5946
|
+
}
|
|
5921
5947
|
const { queries } = this.state;
|
|
5922
5948
|
if (!(queries == null ? void 0 : queries.length)) {
|
|
5923
5949
|
this._setNoDataState();
|
|
5924
5950
|
return;
|
|
5925
5951
|
}
|
|
5926
5952
|
try {
|
|
5927
|
-
const datasource = (
|
|
5953
|
+
const datasource = (_d = this.state.datasource) != null ? _d : findFirstDatasource(queries);
|
|
5928
5954
|
const ds = await getDataSource(datasource, this._scopedVars);
|
|
5929
5955
|
this.findAndSubscribeToAdHocFilters(ds.uid);
|
|
5930
5956
|
const runRequest = runtime.getRunRequest();
|
|
5931
|
-
const { primary, secondaries, processors } = this.prepareRequests(timeRange, ds);
|
|
5957
|
+
const { primary, secondaries, processors } = this.prepareRequests(timeRange, ds, scopesBridge);
|
|
5932
5958
|
writeSceneLog("SceneQueryRunner", "Starting runRequest", this.state.key);
|
|
5933
5959
|
let stream = runRequest(ds, primary);
|
|
5934
5960
|
if (secondaries.length > 0) {
|
|
@@ -5967,7 +5993,7 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5967
5993
|
clone["_results"].next({ origin: this, data: (_a = this.state.data) != null ? _a : emptyPanelData });
|
|
5968
5994
|
return clone;
|
|
5969
5995
|
}
|
|
5970
|
-
prepareRequests(timeRange, ds) {
|
|
5996
|
+
prepareRequests(timeRange, ds, scopesBridge) {
|
|
5971
5997
|
var _a;
|
|
5972
5998
|
const { minInterval, queries } = this.state;
|
|
5973
5999
|
let request = __spreadValues$y({
|
|
@@ -5987,7 +6013,8 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5987
6013
|
to: timeRange.state.to
|
|
5988
6014
|
},
|
|
5989
6015
|
cacheTimeout: this.state.cacheTimeout,
|
|
5990
|
-
queryCachingTTL: this.state.queryCachingTTL
|
|
6016
|
+
queryCachingTTL: this.state.queryCachingTTL,
|
|
6017
|
+
scopes: scopesBridge == null ? void 0 : scopesBridge.getValue()
|
|
5991
6018
|
}, getEnrichedDataRequest(this));
|
|
5992
6019
|
if (this._adhocFiltersVar) {
|
|
5993
6020
|
request.filters = this._adhocFiltersVar.state.filters.filter(isFilterComplete);
|
|
@@ -6955,6 +6982,108 @@ function containsSearchFilter(query) {
|
|
|
6955
6982
|
return str.indexOf(SEARCH_FILTER_VARIABLE) > -1;
|
|
6956
6983
|
}
|
|
6957
6984
|
|
|
6985
|
+
class SceneScopesBridge extends SceneObjectBase {
|
|
6986
|
+
constructor() {
|
|
6987
|
+
super(...arguments);
|
|
6988
|
+
this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: ["scopes"] });
|
|
6989
|
+
this._renderBeforeActivation = true;
|
|
6990
|
+
this._contextSubject = new rxjs.BehaviorSubject(void 0);
|
|
6991
|
+
this._pendingScopes = null;
|
|
6992
|
+
}
|
|
6993
|
+
getUrlState() {
|
|
6994
|
+
var _a, _b, _c;
|
|
6995
|
+
return {
|
|
6996
|
+
scopes: (_c = this._pendingScopes) != null ? _c : ((_b = (_a = this.context) == null ? void 0 : _a.state.value) != null ? _b : []).map((scope) => scope.metadata.name)
|
|
6997
|
+
};
|
|
6998
|
+
}
|
|
6999
|
+
updateFromUrl(values) {
|
|
7000
|
+
var _a, _b;
|
|
7001
|
+
let scopes = (_a = values["scopes"]) != null ? _a : [];
|
|
7002
|
+
scopes = (Array.isArray(scopes) ? scopes : [scopes]).map(String);
|
|
7003
|
+
if (!this.context) {
|
|
7004
|
+
this._pendingScopes = scopes;
|
|
7005
|
+
return;
|
|
7006
|
+
}
|
|
7007
|
+
(_b = this.context) == null ? void 0 : _b.changeScopes(scopes);
|
|
7008
|
+
}
|
|
7009
|
+
getValue() {
|
|
7010
|
+
var _a, _b;
|
|
7011
|
+
return (_b = (_a = this.context) == null ? void 0 : _a.state.value) != null ? _b : [];
|
|
7012
|
+
}
|
|
7013
|
+
subscribeToValue(cb) {
|
|
7014
|
+
return this.contextObservable.pipe(
|
|
7015
|
+
rxjs.filter((context) => !!context && !context.state.loading),
|
|
7016
|
+
rxjs.pairwise(),
|
|
7017
|
+
rxjs.map(
|
|
7018
|
+
([prevContext, newContext]) => {
|
|
7019
|
+
var _a, _b;
|
|
7020
|
+
return [(_a = prevContext == null ? void 0 : prevContext.state.value) != null ? _a : [], (_b = newContext == null ? void 0 : newContext.state.value) != null ? _b : []];
|
|
7021
|
+
}
|
|
7022
|
+
),
|
|
7023
|
+
rxjs.filter(([prevScopes, newScopes]) => !lodash.isEqual(prevScopes, newScopes))
|
|
7024
|
+
).subscribe(([prevScopes, newScopes]) => {
|
|
7025
|
+
cb(newScopes, prevScopes);
|
|
7026
|
+
});
|
|
7027
|
+
}
|
|
7028
|
+
isLoading() {
|
|
7029
|
+
var _a, _b;
|
|
7030
|
+
return (_b = (_a = this.context) == null ? void 0 : _a.state.loading) != null ? _b : false;
|
|
7031
|
+
}
|
|
7032
|
+
subscribeToLoading(cb) {
|
|
7033
|
+
return this.contextObservable.pipe(
|
|
7034
|
+
rxjs.filter((context) => !!context),
|
|
7035
|
+
rxjs.pairwise(),
|
|
7036
|
+
rxjs.map(
|
|
7037
|
+
([prevContext, newContext]) => {
|
|
7038
|
+
var _a, _b;
|
|
7039
|
+
return [(_a = prevContext == null ? void 0 : prevContext.state.loading) != null ? _a : false, (_b = newContext == null ? void 0 : newContext.state.loading) != null ? _b : false];
|
|
7040
|
+
}
|
|
7041
|
+
),
|
|
7042
|
+
rxjs.filter(([prevLoading, newLoading]) => prevLoading !== newLoading)
|
|
7043
|
+
).subscribe(([_prevLoading, newLoading]) => {
|
|
7044
|
+
cb(newLoading);
|
|
7045
|
+
});
|
|
7046
|
+
}
|
|
7047
|
+
setEnabled(enabled) {
|
|
7048
|
+
var _a;
|
|
7049
|
+
(_a = this.context) == null ? void 0 : _a.setEnabled(enabled);
|
|
7050
|
+
}
|
|
7051
|
+
setReadOnly(readOnly) {
|
|
7052
|
+
var _a;
|
|
7053
|
+
(_a = this.context) == null ? void 0 : _a.setReadOnly(readOnly);
|
|
7054
|
+
}
|
|
7055
|
+
updateContext(newContext) {
|
|
7056
|
+
var _a, _b;
|
|
7057
|
+
if (this._pendingScopes && newContext) {
|
|
7058
|
+
setTimeout(() => {
|
|
7059
|
+
newContext == null ? void 0 : newContext.changeScopes(this._pendingScopes);
|
|
7060
|
+
this._pendingScopes = null;
|
|
7061
|
+
});
|
|
7062
|
+
}
|
|
7063
|
+
if (this.context !== newContext || ((_a = this.context) == null ? void 0 : _a.state) !== (newContext == null ? void 0 : newContext.state)) {
|
|
7064
|
+
const shouldUpdate = ((_b = this.context) == null ? void 0 : _b.state.value) !== (newContext == null ? void 0 : newContext.state.value);
|
|
7065
|
+
this._contextSubject.next(newContext);
|
|
7066
|
+
if (shouldUpdate) {
|
|
7067
|
+
this.forceRender();
|
|
7068
|
+
}
|
|
7069
|
+
}
|
|
7070
|
+
}
|
|
7071
|
+
get context() {
|
|
7072
|
+
return this._contextSubject.getValue();
|
|
7073
|
+
}
|
|
7074
|
+
get contextObservable() {
|
|
7075
|
+
return this._contextSubject.asObservable();
|
|
7076
|
+
}
|
|
7077
|
+
}
|
|
7078
|
+
SceneScopesBridge.Component = SceneScopesBridgeRenderer;
|
|
7079
|
+
function SceneScopesBridgeRenderer({ model }) {
|
|
7080
|
+
const context = runtime.useScopes();
|
|
7081
|
+
React.useEffect(() => {
|
|
7082
|
+
model.updateContext(context);
|
|
7083
|
+
}, [context, model]);
|
|
7084
|
+
return null;
|
|
7085
|
+
}
|
|
7086
|
+
|
|
6958
7087
|
function getVariables(sceneObject) {
|
|
6959
7088
|
var _a;
|
|
6960
7089
|
return (_a = getClosest(sceneObject, (s) => s.state.$variables)) != null ? _a : EmptyVariableSet;
|
|
@@ -7098,6 +7227,10 @@ function findDescendents(scene, descendentType) {
|
|
|
7098
7227
|
const targetScenes = findAllObjects(scene, isDescendentType);
|
|
7099
7228
|
return targetScenes.filter(isDescendentType);
|
|
7100
7229
|
}
|
|
7230
|
+
function getScopesBridge(sceneObject) {
|
|
7231
|
+
var _a;
|
|
7232
|
+
return (_a = findObject(sceneObject, (s) => s instanceof SceneScopesBridge)) != null ? _a : void 0;
|
|
7233
|
+
}
|
|
7101
7234
|
|
|
7102
7235
|
const sceneGraph = {
|
|
7103
7236
|
getVariables,
|
|
@@ -7114,7 +7247,8 @@ const sceneGraph = {
|
|
|
7114
7247
|
findAllObjects,
|
|
7115
7248
|
getAncestor,
|
|
7116
7249
|
getQueryController,
|
|
7117
|
-
findDescendents
|
|
7250
|
+
findDescendents,
|
|
7251
|
+
getScopesBridge
|
|
7118
7252
|
};
|
|
7119
7253
|
|
|
7120
7254
|
class UniqueUrlKeyMapper {
|
|
@@ -12868,6 +13002,10 @@ class SplitLayout extends SceneObjectBase {
|
|
|
12868
13002
|
SplitLayout.Component = SplitLayoutRenderer;
|
|
12869
13003
|
|
|
12870
13004
|
class SceneApp extends SceneObjectBase {
|
|
13005
|
+
constructor() {
|
|
13006
|
+
super(...arguments);
|
|
13007
|
+
this._renderBeforeActivation = true;
|
|
13008
|
+
}
|
|
12871
13009
|
enrichDataRequest() {
|
|
12872
13010
|
return {
|
|
12873
13011
|
app: this.state.name || "app"
|
|
@@ -12875,8 +13013,10 @@ class SceneApp extends SceneObjectBase {
|
|
|
12875
13013
|
}
|
|
12876
13014
|
}
|
|
12877
13015
|
SceneApp.Component = ({ model }) => {
|
|
12878
|
-
const { pages } = model.useState();
|
|
12879
|
-
return /* @__PURE__ */ React__default["default"].createElement(
|
|
13016
|
+
const { pages, scopesBridge } = model.useState();
|
|
13017
|
+
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, scopesBridge && /* @__PURE__ */ React__default["default"].createElement(scopesBridge.Component, {
|
|
13018
|
+
model: scopesBridge
|
|
13019
|
+
}), /* @__PURE__ */ React__default["default"].createElement(SceneAppContext.Provider, {
|
|
12880
13020
|
value: model
|
|
12881
13021
|
}, /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Routes, null, pages.map((page) => /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
|
|
12882
13022
|
key: page.state.url,
|
|
@@ -12884,7 +13024,7 @@ SceneApp.Component = ({ model }) => {
|
|
|
12884
13024
|
element: /* @__PURE__ */ React__default["default"].createElement(page.Component, {
|
|
12885
13025
|
model: page
|
|
12886
13026
|
})
|
|
12887
|
-
}))));
|
|
13027
|
+
})))));
|
|
12888
13028
|
};
|
|
12889
13029
|
const SceneAppContext = React.createContext(null);
|
|
12890
13030
|
const sceneAppCache = /* @__PURE__ */ new Map();
|
|
@@ -13239,6 +13379,21 @@ class SceneAppPage extends SceneObjectBase {
|
|
|
13239
13379
|
super(state);
|
|
13240
13380
|
this._sceneCache = /* @__PURE__ */ new Map();
|
|
13241
13381
|
this._drilldownCache = /* @__PURE__ */ new Map();
|
|
13382
|
+
this._activationHandler = () => {
|
|
13383
|
+
if (!this.state.useScopes) {
|
|
13384
|
+
return;
|
|
13385
|
+
}
|
|
13386
|
+
this._scopesBridge = sceneGraph.getScopesBridge(this);
|
|
13387
|
+
if (!this._scopesBridge) {
|
|
13388
|
+
throw new Error("Use of scopes is enabled but no scopes bridge found");
|
|
13389
|
+
}
|
|
13390
|
+
this._scopesBridge.setEnabled(true);
|
|
13391
|
+
return () => {
|
|
13392
|
+
var _a;
|
|
13393
|
+
(_a = this._scopesBridge) == null ? void 0 : _a.setEnabled(false);
|
|
13394
|
+
};
|
|
13395
|
+
};
|
|
13396
|
+
this.addActivationHandler(this._activationHandler);
|
|
13242
13397
|
}
|
|
13243
13398
|
initializeScene(scene) {
|
|
13244
13399
|
this.setState({ initializedScene: scene });
|
|
@@ -14237,6 +14392,7 @@ exports.SceneObjectUrlSyncConfig = SceneObjectUrlSyncConfig;
|
|
|
14237
14392
|
exports.SceneQueryRunner = SceneQueryRunner;
|
|
14238
14393
|
exports.SceneReactObject = SceneReactObject;
|
|
14239
14394
|
exports.SceneRefreshPicker = SceneRefreshPicker;
|
|
14395
|
+
exports.SceneScopesBridge = SceneScopesBridge;
|
|
14240
14396
|
exports.SceneTimePicker = SceneTimePicker;
|
|
14241
14397
|
exports.SceneTimeRange = SceneTimeRange;
|
|
14242
14398
|
exports.SceneTimeRangeCompare = SceneTimeRangeCompare;
|