@grafana/scenes 6.1.4 → 6.1.5--canary.990.13570008543.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/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 +66 -20
- package/dist/index.js +179 -18
- 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,51 @@ 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
|
+
|
|
648
693
|
interface SceneRouteMatch<Params extends {
|
|
649
694
|
[K in keyof Params]?: string;
|
|
650
695
|
} = {}> {
|
|
@@ -657,6 +702,7 @@ interface SceneAppState extends SceneObjectState {
|
|
|
657
702
|
pages: SceneAppPageLike[];
|
|
658
703
|
name?: string;
|
|
659
704
|
urlSyncOptions?: SceneUrlSyncOptions;
|
|
705
|
+
scopesBridge?: SceneScopesBridge;
|
|
660
706
|
}
|
|
661
707
|
interface SceneAppRoute {
|
|
662
708
|
path: string;
|
|
@@ -701,6 +747,7 @@ interface SceneAppPageState extends SceneObjectState {
|
|
|
701
747
|
*/
|
|
702
748
|
getFallbackPage?: () => SceneAppPageLike;
|
|
703
749
|
layout?: PageLayoutType;
|
|
750
|
+
useScopes?: boolean;
|
|
704
751
|
}
|
|
705
752
|
interface SceneAppPageLike extends SceneObject<SceneAppPageState>, DataRequestEnricher {
|
|
706
753
|
initializeScene(scene: SceneObject): void;
|
|
@@ -928,8 +975,10 @@ declare class AdHocFiltersVariable extends SceneObjectBase<AdHocFiltersVariableS
|
|
|
928
975
|
static Component: typeof AdHocFiltersVariableRenderer;
|
|
929
976
|
private _scopedVars;
|
|
930
977
|
private _dataSourceSrv;
|
|
978
|
+
private _scopesBridge;
|
|
931
979
|
protected _urlSync: AdHocFiltersVariableUrlSyncHandler;
|
|
932
980
|
constructor(state: Partial<AdHocFiltersVariableState>);
|
|
981
|
+
private _activationHandler;
|
|
933
982
|
setState(update: Partial<AdHocFiltersVariableState>): void;
|
|
934
983
|
/**
|
|
935
984
|
* Updates the variable's `filters` and `filterExpression` state.
|
|
@@ -1170,6 +1219,7 @@ declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
|
|
|
1170
1219
|
static Component: typeof GroupByVariableRenderer;
|
|
1171
1220
|
isLazy: boolean;
|
|
1172
1221
|
protected _urlSync: SceneObjectUrlSyncHandler;
|
|
1222
|
+
private _scopesBridge;
|
|
1173
1223
|
validateAndUpdate(): Observable<ValidateAndUpdateResult>;
|
|
1174
1224
|
private _updateValueGivenNewOptions;
|
|
1175
1225
|
getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;
|
|
@@ -1186,7 +1236,7 @@ declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
|
|
|
1186
1236
|
text: string[];
|
|
1187
1237
|
};
|
|
1188
1238
|
}
|
|
1189
|
-
declare function GroupByVariableRenderer({ model }: SceneComponentProps<
|
|
1239
|
+
declare function GroupByVariableRenderer({ model }: SceneComponentProps<GroupByVariable>): React__default.JSX.Element;
|
|
1190
1240
|
|
|
1191
1241
|
declare function isAdHocVariable(variable: SceneVariable): variable is AdHocFiltersVariable;
|
|
1192
1242
|
declare function isConstantVariable(variable: SceneVariable): variable is ConstantVariable;
|
|
@@ -1365,6 +1415,10 @@ declare function getAncestor<ParentType>(sceneObject: SceneObject, ancestorType:
|
|
|
1365
1415
|
* This will search down the full scene graph, looking for objects that match the provided descendentType type.
|
|
1366
1416
|
*/
|
|
1367
1417
|
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;
|
|
1368
1422
|
|
|
1369
1423
|
declare const sceneGraph: {
|
|
1370
1424
|
getVariables: typeof getVariables;
|
|
@@ -1382,6 +1436,7 @@ declare const sceneGraph: {
|
|
|
1382
1436
|
getAncestor: typeof getAncestor;
|
|
1383
1437
|
getQueryController: typeof getQueryController;
|
|
1384
1438
|
findDescendents: typeof findDescendents;
|
|
1439
|
+
getScopesBridge: typeof getScopesBridge;
|
|
1385
1440
|
};
|
|
1386
1441
|
|
|
1387
1442
|
interface ActWhenVariableChangedState extends SceneObjectState {
|
|
@@ -1559,21 +1614,6 @@ declare class SceneDataNode extends SceneObjectBase<SceneDataNodeState> implemen
|
|
|
1559
1614
|
getResultsStream(): rxjs.Observable<SceneDataProviderResult>;
|
|
1560
1615
|
}
|
|
1561
1616
|
|
|
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
|
-
|
|
1577
1617
|
declare class SceneTimeRange extends SceneObjectBase<SceneTimeRangeState> implements SceneTimeRangeLike {
|
|
1578
1618
|
protected _urlSync: SceneObjectUrlSyncConfig;
|
|
1579
1619
|
constructor(state?: Partial<SceneTimeRangeState>);
|
|
@@ -1648,6 +1688,8 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
|
|
|
1648
1688
|
private _dataLayersMerger;
|
|
1649
1689
|
private _timeSub?;
|
|
1650
1690
|
private _timeSubRange?;
|
|
1691
|
+
private _scopesSub?;
|
|
1692
|
+
private _scopesSubBridge?;
|
|
1651
1693
|
private _containerWidth?;
|
|
1652
1694
|
private _variableValueRecorder;
|
|
1653
1695
|
private _results;
|
|
@@ -1686,11 +1728,12 @@ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> impleme
|
|
|
1686
1728
|
private _onDeactivate;
|
|
1687
1729
|
setContainerWidth(width: number): void;
|
|
1688
1730
|
isDataReadyToDisplay(): boolean;
|
|
1731
|
+
private subscribeToScopesChanges;
|
|
1689
1732
|
private subscribeToTimeRangeChanges;
|
|
1690
1733
|
runQueries(): void;
|
|
1691
1734
|
private getMaxDataPoints;
|
|
1692
1735
|
cancelQuery(): void;
|
|
1693
|
-
private
|
|
1736
|
+
private runWithTimeRangeAndScopes;
|
|
1694
1737
|
clone(withState?: Partial<QueryRunnerState>): this;
|
|
1695
1738
|
private prepareRequests;
|
|
1696
1739
|
private onDataReceived;
|
|
@@ -2414,6 +2457,7 @@ declare const LazyLoader: LazyLoaderType;
|
|
|
2414
2457
|
* Responsible for top level pages routing
|
|
2415
2458
|
*/
|
|
2416
2459
|
declare class SceneApp extends SceneObjectBase<SceneAppState> implements DataRequestEnricher {
|
|
2460
|
+
protected _renderBeforeActivation: boolean;
|
|
2417
2461
|
enrichDataRequest(): {
|
|
2418
2462
|
app: string;
|
|
2419
2463
|
};
|
|
@@ -2431,7 +2475,9 @@ declare class SceneAppPage extends SceneObjectBase<SceneAppPageState> implements
|
|
|
2431
2475
|
static Component: typeof SceneAppPageRenderer;
|
|
2432
2476
|
private _sceneCache;
|
|
2433
2477
|
private _drilldownCache;
|
|
2478
|
+
private _scopesBridge;
|
|
2434
2479
|
constructor(state: SceneAppPageState);
|
|
2480
|
+
private _activationHandler;
|
|
2435
2481
|
initializeScene(scene: EmbeddedScene): void;
|
|
2436
2482
|
getScene(routeMatch: SceneRouteMatch): EmbeddedScene;
|
|
2437
2483
|
getDrilldownPage(drilldown: SceneAppDrilldownView, routeMatch: SceneRouteMatch<{}>): SceneAppPageLike;
|
|
@@ -2932,4 +2978,4 @@ declare const sceneUtils: {
|
|
|
2932
2978
|
isGroupByVariable: typeof isGroupByVariable;
|
|
2933
2979
|
};
|
|
2934
2980
|
|
|
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 };
|
|
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 };
|
package/dist/index.js
CHANGED
|
@@ -3233,7 +3233,7 @@ class GroupByVariable extends MultiValueVariable {
|
|
|
3233
3233
|
this.isLazy = true;
|
|
3234
3234
|
this._urlSync = new GroupByVariableUrlSyncHandler(this);
|
|
3235
3235
|
this._getKeys = async (ds) => {
|
|
3236
|
-
var _a, _b, _c;
|
|
3236
|
+
var _a, _b, _c, _d;
|
|
3237
3237
|
const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, null));
|
|
3238
3238
|
if (override && override.replace) {
|
|
3239
3239
|
return override.values;
|
|
@@ -3250,7 +3250,8 @@ class GroupByVariable extends MultiValueVariable {
|
|
|
3250
3250
|
const response = await ds.getTagKeys(__spreadValues$F({
|
|
3251
3251
|
filters: otherFilters,
|
|
3252
3252
|
queries,
|
|
3253
|
-
timeRange
|
|
3253
|
+
timeRange,
|
|
3254
|
+
scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
|
|
3254
3255
|
}, getEnrichedFiltersRequest(this)));
|
|
3255
3256
|
if (responseHasError(response)) {
|
|
3256
3257
|
this.setState({ error: response.error.message });
|
|
@@ -5406,9 +5407,13 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5406
5407
|
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
|
5407
5408
|
this._dataSourceSrv = runtime.getDataSourceSrv();
|
|
5408
5409
|
this._urlSync = new AdHocFiltersVariableUrlSyncHandler(this);
|
|
5410
|
+
this._activationHandler = () => {
|
|
5411
|
+
this._scopesBridge = sceneGraph.getScopesBridge(this);
|
|
5412
|
+
};
|
|
5409
5413
|
if (this.state.applyMode === "auto") {
|
|
5410
5414
|
patchGetAdhocFilters(this);
|
|
5411
5415
|
}
|
|
5416
|
+
this.addActivationHandler(this._activationHandler);
|
|
5412
5417
|
}
|
|
5413
5418
|
setState(update) {
|
|
5414
5419
|
let filterExpressionChanged = false;
|
|
@@ -5492,7 +5497,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5492
5497
|
}
|
|
5493
5498
|
}
|
|
5494
5499
|
async _getKeys(currentKey) {
|
|
5495
|
-
var _a, _b, _c;
|
|
5500
|
+
var _a, _b, _c, _d;
|
|
5496
5501
|
const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, currentKey));
|
|
5497
5502
|
if (override && override.replace) {
|
|
5498
5503
|
return dataFromResponse(override.values).map(toSelectableValue);
|
|
@@ -5510,7 +5515,8 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5510
5515
|
const response = await ds.getTagKeys(__spreadValues$z({
|
|
5511
5516
|
filters: otherFilters,
|
|
5512
5517
|
queries,
|
|
5513
|
-
timeRange
|
|
5518
|
+
timeRange,
|
|
5519
|
+
scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
|
|
5514
5520
|
}, getEnrichedFiltersRequest(this)));
|
|
5515
5521
|
if (responseHasError(response)) {
|
|
5516
5522
|
this.setState({ error: response.error.message });
|
|
@@ -5526,7 +5532,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5526
5532
|
return keys.map(toSelectableValue);
|
|
5527
5533
|
}
|
|
5528
5534
|
async _getValuesFor(filter) {
|
|
5529
|
-
var _a, _b, _c;
|
|
5535
|
+
var _a, _b, _c, _d;
|
|
5530
5536
|
const override = await ((_b = (_a = this.state).getTagValuesProvider) == null ? void 0 : _b.call(_a, this, filter));
|
|
5531
5537
|
if (override && override.replace) {
|
|
5532
5538
|
return dataFromResponse(override.values).map(toSelectableValue);
|
|
@@ -5542,7 +5548,8 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5542
5548
|
key: filter.key,
|
|
5543
5549
|
filters: otherFilters,
|
|
5544
5550
|
timeRange,
|
|
5545
|
-
queries
|
|
5551
|
+
queries,
|
|
5552
|
+
scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
|
|
5546
5553
|
}, getEnrichedFiltersRequest(this)));
|
|
5547
5554
|
if (responseHasError(response)) {
|
|
5548
5555
|
this.setState({ error: response.error.message });
|
|
@@ -5730,6 +5737,7 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5730
5737
|
_onActivate() {
|
|
5731
5738
|
if (this.isQueryModeAuto()) {
|
|
5732
5739
|
const timeRange = sceneGraph.getTimeRange(this);
|
|
5740
|
+
const scopesBridge = sceneGraph.getScopesBridge(this);
|
|
5733
5741
|
const providers = this.getClosestExtraQueryProviders();
|
|
5734
5742
|
for (const provider of providers) {
|
|
5735
5743
|
this._subs.add(
|
|
@@ -5740,6 +5748,7 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5740
5748
|
})
|
|
5741
5749
|
);
|
|
5742
5750
|
}
|
|
5751
|
+
this.subscribeToScopesChanges(scopesBridge);
|
|
5743
5752
|
this.subscribeToTimeRangeChanges(timeRange);
|
|
5744
5753
|
if (this.shouldRunQueriesOnActivate()) {
|
|
5745
5754
|
this.runQueries();
|
|
@@ -5885,6 +5894,21 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5885
5894
|
isDataReadyToDisplay() {
|
|
5886
5895
|
return Boolean(this.state._hasFetchedData);
|
|
5887
5896
|
}
|
|
5897
|
+
subscribeToScopesChanges(scopesBridge) {
|
|
5898
|
+
if (!scopesBridge) {
|
|
5899
|
+
return;
|
|
5900
|
+
}
|
|
5901
|
+
if (this._scopesSubBridge === scopesBridge) {
|
|
5902
|
+
return;
|
|
5903
|
+
}
|
|
5904
|
+
if (this._scopesSub) {
|
|
5905
|
+
this._scopesSub.unsubscribe();
|
|
5906
|
+
}
|
|
5907
|
+
this._scopesSubBridge = scopesBridge;
|
|
5908
|
+
this._scopesSub = scopesBridge.subscribeToValue(() => {
|
|
5909
|
+
this.runWithTimeRangeAndScopes(sceneGraph.getTimeRange(this), scopesBridge);
|
|
5910
|
+
});
|
|
5911
|
+
}
|
|
5888
5912
|
subscribeToTimeRangeChanges(timeRange) {
|
|
5889
5913
|
if (this._timeSubRange === timeRange) {
|
|
5890
5914
|
return;
|
|
@@ -5894,15 +5918,17 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5894
5918
|
}
|
|
5895
5919
|
this._timeSubRange = timeRange;
|
|
5896
5920
|
this._timeSub = timeRange.subscribeToState(() => {
|
|
5897
|
-
this.
|
|
5921
|
+
this.runWithTimeRangeAndScopes(timeRange, sceneGraph.getScopesBridge(this));
|
|
5898
5922
|
});
|
|
5899
5923
|
}
|
|
5900
5924
|
runQueries() {
|
|
5901
5925
|
const timeRange = sceneGraph.getTimeRange(this);
|
|
5926
|
+
const scopesBridge = sceneGraph.getScopesBridge(this);
|
|
5902
5927
|
if (this.isQueryModeAuto()) {
|
|
5903
5928
|
this.subscribeToTimeRangeChanges(timeRange);
|
|
5929
|
+
this.subscribeToScopesChanges(scopesBridge);
|
|
5904
5930
|
}
|
|
5905
|
-
this.
|
|
5931
|
+
this.runWithTimeRangeAndScopes(timeRange, scopesBridge);
|
|
5906
5932
|
}
|
|
5907
5933
|
getMaxDataPoints() {
|
|
5908
5934
|
var _a;
|
|
@@ -5922,8 +5948,8 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5922
5948
|
data: __spreadProps$m(__spreadValues$y({}, this.state.data), { state: schema.LoadingState.Done })
|
|
5923
5949
|
});
|
|
5924
5950
|
}
|
|
5925
|
-
async
|
|
5926
|
-
var _a, _b, _c;
|
|
5951
|
+
async runWithTimeRangeAndScopes(timeRange, scopesBridge) {
|
|
5952
|
+
var _a, _b, _c, _d;
|
|
5927
5953
|
if (!this.state.maxDataPoints && this.state.maxDataPointsFromWidth && !this._containerWidth) {
|
|
5928
5954
|
return;
|
|
5929
5955
|
}
|
|
@@ -5936,17 +5962,22 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5936
5962
|
this.setState({ data: __spreadProps$m(__spreadValues$y({}, (_b = this.state.data) != null ? _b : emptyPanelData), { state: schema.LoadingState.Loading }) });
|
|
5937
5963
|
return;
|
|
5938
5964
|
}
|
|
5965
|
+
if (scopesBridge == null ? void 0 : scopesBridge.isLoading()) {
|
|
5966
|
+
writeSceneLog("SceneQueryRunner", "Scopes are in loading state, skipping query execution");
|
|
5967
|
+
this.setState({ data: __spreadProps$m(__spreadValues$y({}, (_c = this.state.data) != null ? _c : emptyPanelData), { state: schema.LoadingState.Loading }) });
|
|
5968
|
+
return;
|
|
5969
|
+
}
|
|
5939
5970
|
const { queries } = this.state;
|
|
5940
5971
|
if (!(queries == null ? void 0 : queries.length)) {
|
|
5941
5972
|
this._setNoDataState();
|
|
5942
5973
|
return;
|
|
5943
5974
|
}
|
|
5944
5975
|
try {
|
|
5945
|
-
const datasource = (
|
|
5976
|
+
const datasource = (_d = this.state.datasource) != null ? _d : findFirstDatasource(queries);
|
|
5946
5977
|
const ds = await getDataSource(datasource, this._scopedVars);
|
|
5947
5978
|
this.findAndSubscribeToAdHocFilters(ds.uid);
|
|
5948
5979
|
const runRequest = runtime.getRunRequest();
|
|
5949
|
-
const { primary, secondaries, processors } = this.prepareRequests(timeRange, ds);
|
|
5980
|
+
const { primary, secondaries, processors } = this.prepareRequests(timeRange, ds, scopesBridge);
|
|
5950
5981
|
writeSceneLog("SceneQueryRunner", "Starting runRequest", this.state.key);
|
|
5951
5982
|
let stream = runRequest(ds, primary);
|
|
5952
5983
|
if (secondaries.length > 0) {
|
|
@@ -5985,7 +6016,7 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
5985
6016
|
clone["_results"].next({ origin: this, data: (_a = this.state.data) != null ? _a : emptyPanelData });
|
|
5986
6017
|
return clone;
|
|
5987
6018
|
}
|
|
5988
|
-
prepareRequests(timeRange, ds) {
|
|
6019
|
+
prepareRequests(timeRange, ds, scopesBridge) {
|
|
5989
6020
|
var _a, _b;
|
|
5990
6021
|
const { minInterval, queries } = this.state;
|
|
5991
6022
|
let request = __spreadValues$y({
|
|
@@ -6005,7 +6036,8 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
6005
6036
|
to: timeRange.state.to
|
|
6006
6037
|
},
|
|
6007
6038
|
cacheTimeout: this.state.cacheTimeout,
|
|
6008
|
-
queryCachingTTL: this.state.queryCachingTTL
|
|
6039
|
+
queryCachingTTL: this.state.queryCachingTTL,
|
|
6040
|
+
scopes: scopesBridge == null ? void 0 : scopesBridge.getValue()
|
|
6009
6041
|
}, getEnrichedDataRequest(this));
|
|
6010
6042
|
if (this._adhocFiltersVar) {
|
|
6011
6043
|
request.filters = [];
|
|
@@ -6978,6 +7010,108 @@ function containsSearchFilter(query) {
|
|
|
6978
7010
|
return str.indexOf(SEARCH_FILTER_VARIABLE) > -1;
|
|
6979
7011
|
}
|
|
6980
7012
|
|
|
7013
|
+
class SceneScopesBridge extends SceneObjectBase {
|
|
7014
|
+
constructor() {
|
|
7015
|
+
super(...arguments);
|
|
7016
|
+
this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: ["scopes"] });
|
|
7017
|
+
this._renderBeforeActivation = true;
|
|
7018
|
+
this._contextSubject = new rxjs.BehaviorSubject(void 0);
|
|
7019
|
+
this._pendingScopes = null;
|
|
7020
|
+
}
|
|
7021
|
+
getUrlState() {
|
|
7022
|
+
var _a, _b, _c;
|
|
7023
|
+
return {
|
|
7024
|
+
scopes: (_c = this._pendingScopes) != null ? _c : ((_b = (_a = this.context) == null ? void 0 : _a.state.value) != null ? _b : []).map((scope) => scope.metadata.name)
|
|
7025
|
+
};
|
|
7026
|
+
}
|
|
7027
|
+
updateFromUrl(values) {
|
|
7028
|
+
var _a, _b;
|
|
7029
|
+
let scopes = (_a = values["scopes"]) != null ? _a : [];
|
|
7030
|
+
scopes = (Array.isArray(scopes) ? scopes : [scopes]).map(String);
|
|
7031
|
+
if (!this.context) {
|
|
7032
|
+
this._pendingScopes = scopes;
|
|
7033
|
+
return;
|
|
7034
|
+
}
|
|
7035
|
+
(_b = this.context) == null ? void 0 : _b.changeScopes(scopes);
|
|
7036
|
+
}
|
|
7037
|
+
getValue() {
|
|
7038
|
+
var _a, _b;
|
|
7039
|
+
return (_b = (_a = this.context) == null ? void 0 : _a.state.value) != null ? _b : [];
|
|
7040
|
+
}
|
|
7041
|
+
subscribeToValue(cb) {
|
|
7042
|
+
return this.contextObservable.pipe(
|
|
7043
|
+
rxjs.filter((context) => !!context && !context.state.loading),
|
|
7044
|
+
rxjs.pairwise(),
|
|
7045
|
+
rxjs.map(
|
|
7046
|
+
([prevContext, newContext]) => {
|
|
7047
|
+
var _a, _b;
|
|
7048
|
+
return [(_a = prevContext == null ? void 0 : prevContext.state.value) != null ? _a : [], (_b = newContext == null ? void 0 : newContext.state.value) != null ? _b : []];
|
|
7049
|
+
}
|
|
7050
|
+
),
|
|
7051
|
+
rxjs.filter(([prevScopes, newScopes]) => !lodash.isEqual(prevScopes, newScopes))
|
|
7052
|
+
).subscribe(([prevScopes, newScopes]) => {
|
|
7053
|
+
cb(newScopes, prevScopes);
|
|
7054
|
+
});
|
|
7055
|
+
}
|
|
7056
|
+
isLoading() {
|
|
7057
|
+
var _a, _b;
|
|
7058
|
+
return (_b = (_a = this.context) == null ? void 0 : _a.state.loading) != null ? _b : false;
|
|
7059
|
+
}
|
|
7060
|
+
subscribeToLoading(cb) {
|
|
7061
|
+
return this.contextObservable.pipe(
|
|
7062
|
+
rxjs.filter((context) => !!context),
|
|
7063
|
+
rxjs.pairwise(),
|
|
7064
|
+
rxjs.map(
|
|
7065
|
+
([prevContext, newContext]) => {
|
|
7066
|
+
var _a, _b;
|
|
7067
|
+
return [(_a = prevContext == null ? void 0 : prevContext.state.loading) != null ? _a : false, (_b = newContext == null ? void 0 : newContext.state.loading) != null ? _b : false];
|
|
7068
|
+
}
|
|
7069
|
+
),
|
|
7070
|
+
rxjs.filter(([prevLoading, newLoading]) => prevLoading !== newLoading)
|
|
7071
|
+
).subscribe(([_prevLoading, newLoading]) => {
|
|
7072
|
+
cb(newLoading);
|
|
7073
|
+
});
|
|
7074
|
+
}
|
|
7075
|
+
setEnabled(enabled) {
|
|
7076
|
+
var _a;
|
|
7077
|
+
(_a = this.context) == null ? void 0 : _a.setEnabled(enabled);
|
|
7078
|
+
}
|
|
7079
|
+
setReadOnly(readOnly) {
|
|
7080
|
+
var _a;
|
|
7081
|
+
(_a = this.context) == null ? void 0 : _a.setReadOnly(readOnly);
|
|
7082
|
+
}
|
|
7083
|
+
updateContext(newContext) {
|
|
7084
|
+
var _a, _b;
|
|
7085
|
+
if (this._pendingScopes && newContext) {
|
|
7086
|
+
setTimeout(() => {
|
|
7087
|
+
newContext == null ? void 0 : newContext.changeScopes(this._pendingScopes);
|
|
7088
|
+
this._pendingScopes = null;
|
|
7089
|
+
});
|
|
7090
|
+
}
|
|
7091
|
+
if (this.context !== newContext || ((_a = this.context) == null ? void 0 : _a.state) !== (newContext == null ? void 0 : newContext.state)) {
|
|
7092
|
+
const shouldUpdate = ((_b = this.context) == null ? void 0 : _b.state.value) !== (newContext == null ? void 0 : newContext.state.value);
|
|
7093
|
+
this._contextSubject.next(newContext);
|
|
7094
|
+
if (shouldUpdate) {
|
|
7095
|
+
this.forceRender();
|
|
7096
|
+
}
|
|
7097
|
+
}
|
|
7098
|
+
}
|
|
7099
|
+
get context() {
|
|
7100
|
+
return this._contextSubject.getValue();
|
|
7101
|
+
}
|
|
7102
|
+
get contextObservable() {
|
|
7103
|
+
return this._contextSubject.asObservable();
|
|
7104
|
+
}
|
|
7105
|
+
}
|
|
7106
|
+
SceneScopesBridge.Component = SceneScopesBridgeRenderer;
|
|
7107
|
+
function SceneScopesBridgeRenderer({ model }) {
|
|
7108
|
+
const context = runtime.useScopes();
|
|
7109
|
+
React.useEffect(() => {
|
|
7110
|
+
model.updateContext(context);
|
|
7111
|
+
}, [context, model]);
|
|
7112
|
+
return null;
|
|
7113
|
+
}
|
|
7114
|
+
|
|
6981
7115
|
function getVariables(sceneObject) {
|
|
6982
7116
|
var _a;
|
|
6983
7117
|
return (_a = getClosest(sceneObject, (s) => s.state.$variables)) != null ? _a : EmptyVariableSet;
|
|
@@ -7121,6 +7255,10 @@ function findDescendents(scene, descendentType) {
|
|
|
7121
7255
|
const targetScenes = findAllObjects(scene, isDescendentType);
|
|
7122
7256
|
return targetScenes.filter(isDescendentType);
|
|
7123
7257
|
}
|
|
7258
|
+
function getScopesBridge(sceneObject) {
|
|
7259
|
+
var _a;
|
|
7260
|
+
return (_a = findObject(sceneObject, (s) => s instanceof SceneScopesBridge)) != null ? _a : void 0;
|
|
7261
|
+
}
|
|
7124
7262
|
|
|
7125
7263
|
const sceneGraph = {
|
|
7126
7264
|
getVariables,
|
|
@@ -7137,7 +7275,8 @@ const sceneGraph = {
|
|
|
7137
7275
|
findAllObjects,
|
|
7138
7276
|
getAncestor,
|
|
7139
7277
|
getQueryController,
|
|
7140
|
-
findDescendents
|
|
7278
|
+
findDescendents,
|
|
7279
|
+
getScopesBridge
|
|
7141
7280
|
};
|
|
7142
7281
|
|
|
7143
7282
|
class UniqueUrlKeyMapper {
|
|
@@ -12891,6 +13030,10 @@ class SplitLayout extends SceneObjectBase {
|
|
|
12891
13030
|
SplitLayout.Component = SplitLayoutRenderer;
|
|
12892
13031
|
|
|
12893
13032
|
class SceneApp extends SceneObjectBase {
|
|
13033
|
+
constructor() {
|
|
13034
|
+
super(...arguments);
|
|
13035
|
+
this._renderBeforeActivation = true;
|
|
13036
|
+
}
|
|
12894
13037
|
enrichDataRequest() {
|
|
12895
13038
|
return {
|
|
12896
13039
|
app: this.state.name || "app"
|
|
@@ -12898,8 +13041,10 @@ class SceneApp extends SceneObjectBase {
|
|
|
12898
13041
|
}
|
|
12899
13042
|
}
|
|
12900
13043
|
SceneApp.Component = ({ model }) => {
|
|
12901
|
-
const { pages } = model.useState();
|
|
12902
|
-
return /* @__PURE__ */ React__default["default"].createElement(
|
|
13044
|
+
const { pages, scopesBridge } = model.useState();
|
|
13045
|
+
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, scopesBridge && /* @__PURE__ */ React__default["default"].createElement(scopesBridge.Component, {
|
|
13046
|
+
model: scopesBridge
|
|
13047
|
+
}), /* @__PURE__ */ React__default["default"].createElement(SceneAppContext.Provider, {
|
|
12903
13048
|
value: model
|
|
12904
13049
|
}, /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Routes, null, pages.map((page) => /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
|
|
12905
13050
|
key: page.state.url,
|
|
@@ -12907,7 +13052,7 @@ SceneApp.Component = ({ model }) => {
|
|
|
12907
13052
|
element: /* @__PURE__ */ React__default["default"].createElement(page.Component, {
|
|
12908
13053
|
model: page
|
|
12909
13054
|
})
|
|
12910
|
-
}))));
|
|
13055
|
+
})))));
|
|
12911
13056
|
};
|
|
12912
13057
|
const SceneAppContext = React.createContext(null);
|
|
12913
13058
|
const sceneAppCache = /* @__PURE__ */ new Map();
|
|
@@ -13262,6 +13407,21 @@ class SceneAppPage extends SceneObjectBase {
|
|
|
13262
13407
|
super(state);
|
|
13263
13408
|
this._sceneCache = /* @__PURE__ */ new Map();
|
|
13264
13409
|
this._drilldownCache = /* @__PURE__ */ new Map();
|
|
13410
|
+
this._activationHandler = () => {
|
|
13411
|
+
if (!this.state.useScopes) {
|
|
13412
|
+
return;
|
|
13413
|
+
}
|
|
13414
|
+
this._scopesBridge = sceneGraph.getScopesBridge(this);
|
|
13415
|
+
if (!this._scopesBridge) {
|
|
13416
|
+
throw new Error("Use of scopes is enabled but no scopes bridge found");
|
|
13417
|
+
}
|
|
13418
|
+
this._scopesBridge.setEnabled(true);
|
|
13419
|
+
return () => {
|
|
13420
|
+
var _a;
|
|
13421
|
+
(_a = this._scopesBridge) == null ? void 0 : _a.setEnabled(false);
|
|
13422
|
+
};
|
|
13423
|
+
};
|
|
13424
|
+
this.addActivationHandler(this._activationHandler);
|
|
13265
13425
|
}
|
|
13266
13426
|
initializeScene(scene) {
|
|
13267
13427
|
this.setState({ initializedScene: scene });
|
|
@@ -14261,6 +14421,7 @@ exports.SceneObjectUrlSyncConfig = SceneObjectUrlSyncConfig;
|
|
|
14261
14421
|
exports.SceneQueryRunner = SceneQueryRunner;
|
|
14262
14422
|
exports.SceneReactObject = SceneReactObject;
|
|
14263
14423
|
exports.SceneRefreshPicker = SceneRefreshPicker;
|
|
14424
|
+
exports.SceneScopesBridge = SceneScopesBridge;
|
|
14264
14425
|
exports.SceneTimePicker = SceneTimePicker;
|
|
14265
14426
|
exports.SceneTimeRange = SceneTimeRange;
|
|
14266
14427
|
exports.SceneTimeRangeCompare = SceneTimeRangeCompare;
|