@grafana/scenes 6.5.1--canary.1078.13965220580.0 → 6.5.1--canary.1077.13965250047.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/behaviors/ActWhenVariableChanged.js.map +1 -1
- package/dist/esm/behaviors/CursorSync.js +3 -21
- package/dist/esm/behaviors/CursorSync.js.map +1 -1
- package/dist/esm/behaviors/LiveNowTimer.js +3 -2
- package/dist/esm/behaviors/LiveNowTimer.js.map +1 -1
- package/dist/esm/behaviors/SceneQueryController.js +7 -37
- package/dist/esm/behaviors/SceneQueryController.js.map +1 -1
- package/dist/esm/behaviors/SceneRenderProfiler.js +10 -17
- package/dist/esm/behaviors/SceneRenderProfiler.js.map +1 -1
- package/dist/esm/components/EmbeddedScene.js +1 -12
- package/dist/esm/components/EmbeddedScene.js.map +1 -1
- package/dist/esm/components/NestedScene.js +23 -30
- package/dist/esm/components/NestedScene.js.map +1 -1
- package/dist/esm/components/SceneApp/SceneApp.js +1 -11
- package/dist/esm/components/SceneApp/SceneApp.js.map +1 -1
- package/dist/esm/components/SceneApp/SceneAppPage.js +28 -47
- package/dist/esm/components/SceneApp/SceneAppPage.js.map +1 -1
- package/dist/esm/components/SceneApp/SceneAppPageView.js +14 -20
- package/dist/esm/components/SceneApp/SceneAppPageView.js.map +1 -1
- package/dist/esm/components/SceneApp/utils.js +2 -18
- package/dist/esm/components/SceneApp/utils.js.map +1 -1
- package/dist/esm/components/SceneByFrameRepeater.js +1 -3
- package/dist/esm/components/SceneByFrameRepeater.js.map +1 -1
- package/dist/esm/components/SceneByVariableRepeater.js +1 -3
- package/dist/esm/components/SceneByVariableRepeater.js.map +1 -1
- package/dist/esm/components/SceneCanvasText.js +1 -4
- package/dist/esm/components/SceneCanvasText.js.map +1 -1
- package/dist/esm/components/SceneControlsSpacer.js +1 -3
- package/dist/esm/components/SceneControlsSpacer.js.map +1 -1
- package/dist/esm/components/SceneDebugger/DebugDetails.js +11 -24
- package/dist/esm/components/SceneDebugger/DebugDetails.js.map +1 -1
- package/dist/esm/components/SceneDebugger/DebugTreeNode.js +2 -14
- package/dist/esm/components/SceneDebugger/DebugTreeNode.js.map +1 -1
- package/dist/esm/components/SceneDebugger/SceneDebugger.js +1 -29
- package/dist/esm/components/SceneDebugger/SceneDebugger.js.map +1 -1
- package/dist/esm/components/SceneReactObject.js +1 -17
- package/dist/esm/components/SceneReactObject.js.map +1 -1
- package/dist/esm/components/SceneRefreshPicker.js +23 -38
- package/dist/esm/components/SceneRefreshPicker.js.map +1 -1
- package/dist/esm/components/SceneTimePicker.js +27 -29
- package/dist/esm/components/SceneTimePicker.js.map +1 -1
- package/dist/esm/components/SceneTimeRangeCompare.js +36 -50
- package/dist/esm/components/SceneTimeRangeCompare.js.map +1 -1
- package/dist/esm/components/SceneToolbarButton.js +10 -14
- package/dist/esm/components/SceneToolbarButton.js.map +1 -1
- package/dist/esm/components/VizPanel/VizPanel.js +20 -29
- package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
- package/dist/esm/components/VizPanel/VizPanelExploreButton.js +17 -13
- package/dist/esm/components/VizPanel/VizPanelExploreButton.js.map +1 -1
- package/dist/esm/components/VizPanel/VizPanelMenu.js +18 -20
- package/dist/esm/components/VizPanel/VizPanelMenu.js.map +1 -1
- package/dist/esm/components/VizPanel/VizPanelRenderer.js +92 -122
- package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
- package/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +7 -15
- package/dist/esm/components/VizPanel/VizPanelSeriesLimit.js.map +1 -1
- package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +15 -29
- package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js.map +1 -1
- package/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +3 -21
- package/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js.map +1 -1
- package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +22 -34
- package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js.map +1 -1
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +8 -40
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js.map +1 -1
- package/dist/esm/components/layout/LazyLoader.js +2 -35
- package/dist/esm/components/layout/LazyLoader.js.map +1 -1
- package/dist/esm/components/layout/SceneFlexLayout.js +3 -13
- package/dist/esm/components/layout/SceneFlexLayout.js.map +1 -1
- package/dist/esm/components/layout/grid/SceneGridItem.js +1 -3
- package/dist/esm/components/layout/grid/SceneGridItem.js.map +1 -1
- package/dist/esm/components/layout/grid/SceneGridLayout.js +26 -26
- package/dist/esm/components/layout/grid/SceneGridLayout.js.map +1 -1
- package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +88 -104
- package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js.map +1 -1
- package/dist/esm/components/layout/grid/SceneGridRow.js +15 -48
- package/dist/esm/components/layout/grid/SceneGridRow.js.map +1 -1
- package/dist/esm/components/layout/grid/constants.js.map +1 -1
- package/dist/esm/components/layout/grid/types.js.map +1 -1
- package/dist/esm/components/layout/grid/utils.js +3 -21
- package/dist/esm/components/layout/grid/utils.js.map +1 -1
- package/dist/esm/components/layout/split/SplitLayout.js.map +1 -1
- package/dist/esm/components/layout/split/SplitLayoutRenderer.js +11 -14
- package/dist/esm/components/layout/split/SplitLayoutRenderer.js.map +1 -1
- package/dist/esm/components/layout/split/Splitter.js +60 -58
- package/dist/esm/components/layout/split/Splitter.js.map +1 -1
- package/dist/esm/core/PanelBuilders/FieldConfigBuilder.js +46 -23
- package/dist/esm/core/PanelBuilders/FieldConfigBuilder.js.map +1 -1
- package/dist/esm/core/PanelBuilders/FieldConfigBuilders.js +8 -8
- package/dist/esm/core/PanelBuilders/FieldConfigBuilders.js.map +1 -1
- package/dist/esm/core/PanelBuilders/FieldConfigOverridesBuilder.js.map +1 -1
- package/dist/esm/core/PanelBuilders/PanelOptionsBuilder.js +3 -0
- package/dist/esm/core/PanelBuilders/PanelOptionsBuilder.js.map +1 -1
- package/dist/esm/core/PanelBuilders/PanelOptionsBuilders.js +28 -28
- package/dist/esm/core/PanelBuilders/PanelOptionsBuilders.js.map +1 -1
- package/dist/esm/core/PanelBuilders/StandardFieldConfigBuilders.js.map +1 -1
- package/dist/esm/core/PanelBuilders/VizConfigBuilder.js +39 -0
- package/dist/esm/core/PanelBuilders/VizConfigBuilder.js.map +1 -1
- package/dist/esm/core/PanelBuilders/VizConfigBuilders.js +32 -32
- package/dist/esm/core/PanelBuilders/VizConfigBuilders.js.map +1 -1
- package/dist/esm/core/PanelBuilders/VizPanelBuilder.js +82 -21
- package/dist/esm/core/PanelBuilders/VizPanelBuilder.js.map +1 -1
- package/dist/esm/core/PanelBuilders/index.js +32 -32
- package/dist/esm/core/PanelBuilders/index.js.map +1 -1
- package/dist/esm/core/SceneComponentWrapper.js +4 -38
- package/dist/esm/core/SceneComponentWrapper.js.map +1 -1
- package/dist/esm/core/SceneDataNode.js +4 -19
- package/dist/esm/core/SceneDataNode.js.map +1 -1
- package/dist/esm/core/SceneObjectBase.js +55 -17
- package/dist/esm/core/SceneObjectBase.js.map +1 -1
- package/dist/esm/core/SceneObjectRef.js +7 -18
- package/dist/esm/core/SceneObjectRef.js.map +1 -1
- package/dist/esm/core/SceneScopesBridge.js +15 -0
- package/dist/esm/core/SceneScopesBridge.js.map +1 -1
- package/dist/esm/core/SceneTimeRange.js +9 -17
- package/dist/esm/core/SceneTimeRange.js.map +1 -1
- package/dist/esm/core/SceneTimeRangeTransformerBase.js.map +1 -1
- package/dist/esm/core/SceneTimeZoneOverride.js +7 -23
- package/dist/esm/core/SceneTimeZoneOverride.js.map +1 -1
- package/dist/esm/core/events.js.map +1 -1
- package/dist/esm/core/sceneGraph/getQueryController.js.map +1 -1
- package/dist/esm/core/sceneGraph/getTimeRange.js.map +1 -1
- package/dist/esm/core/sceneGraph/index.js +1 -1
- package/dist/esm/core/sceneGraph/index.js.map +1 -1
- package/dist/esm/core/sceneGraph/sceneGraph.js.map +1 -1
- package/dist/esm/core/sceneGraph/utils.js +1 -17
- package/dist/esm/core/sceneGraph/utils.js.map +1 -1
- package/dist/esm/core/types.js.map +1 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/querying/DataLayersMerger.js.map +1 -1
- package/dist/esm/querying/DataProviderProxy.js.map +1 -1
- package/dist/esm/querying/ExtraQueryProvider.js.map +1 -1
- package/dist/esm/querying/RuntimeDataSource.js.map +1 -1
- package/dist/esm/querying/SceneDataLayerSet.js +9 -24
- package/dist/esm/querying/SceneDataLayerSet.js.map +1 -1
- package/dist/esm/querying/SceneDataTransformer.js +11 -24
- package/dist/esm/querying/SceneDataTransformer.js.map +1 -1
- package/dist/esm/querying/SceneQueryRunner.js +44 -33
- package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
- package/dist/esm/querying/extraQueryProcessingOperator.js +3 -21
- package/dist/esm/querying/extraQueryProcessingOperator.js.map +1 -1
- package/dist/esm/querying/getEnrichedDataRequest.js.map +1 -1
- package/dist/esm/querying/layers/SceneDataLayerBase.js +16 -19
- package/dist/esm/querying/layers/SceneDataLayerBase.js.map +1 -1
- package/dist/esm/querying/layers/SceneDataLayerControls.js +15 -21
- package/dist/esm/querying/layers/SceneDataLayerControls.js.map +1 -1
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +12 -30
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js.map +1 -1
- package/dist/esm/querying/layers/annotations/filterAnnotations.js +6 -23
- package/dist/esm/querying/layers/annotations/filterAnnotations.js.map +1 -1
- package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +19 -29
- package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js.map +1 -1
- package/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +14 -34
- package/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js.map +1 -1
- package/dist/esm/querying/layers/annotations/utils.js +1 -17
- package/dist/esm/querying/layers/annotations/utils.js.map +1 -1
- package/dist/esm/querying/registerQueryWithController.js.map +1 -1
- package/dist/esm/services/SceneObjectUrlSyncConfig.js.map +1 -1
- package/dist/esm/services/UniqueUrlKeyMapper.js.map +1 -1
- package/dist/esm/services/UrlSyncContextProvider.js.map +1 -1
- package/dist/esm/services/UrlSyncManager.js +11 -19
- package/dist/esm/services/UrlSyncManager.js.map +1 -1
- package/dist/esm/services/useUrlSync.js.map +1 -1
- package/dist/esm/services/utils.js.map +1 -1
- package/dist/esm/utils/ControlsLabel.js +23 -47
- package/dist/esm/utils/ControlsLabel.js.map +1 -1
- package/dist/esm/utils/LoadingIndicator.js +11 -10
- package/dist/esm/utils/LoadingIndicator.js.map +1 -1
- package/dist/esm/utils/SafeSerializableSceneObject.js +7 -18
- package/dist/esm/utils/SafeSerializableSceneObject.js.map +1 -1
- package/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js.map +1 -1
- package/dist/esm/utils/date.js.map +1 -1
- package/dist/esm/utils/evaluateTimeRange.js.map +1 -1
- package/dist/esm/utils/explore.js.map +1 -1
- package/dist/esm/utils/getCompareSeriesRefId.js.map +1 -1
- package/dist/esm/utils/getDataSource.js.map +1 -1
- package/dist/esm/utils/getMessageFromError.js.map +1 -1
- package/dist/esm/utils/metricTree.js.map +1 -1
- package/dist/esm/utils/parseUrlParam.js.map +1 -1
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/esm/utils/wrapInSafeSerializableSceneObject.js.map +1 -1
- package/dist/esm/utils/writeSceneLog.js.map +1 -1
- package/dist/esm/variables/VariableDependencyConfig.js +9 -0
- package/dist/esm/variables/VariableDependencyConfig.js.map +1 -1
- package/dist/esm/variables/VariableValueRecorder.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFilterBuilder.js +13 -12
- package/dist/esm/variables/adhoc/AdHocFilterBuilder.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFilterRenderer.js +129 -142
- package/dist/esm/variables/adhoc/AdHocFilterRenderer.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +84 -91
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +1 -6
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +195 -194
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +34 -28
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +28 -65
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +29 -43
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +2 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +45 -63
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js +1 -0
- package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js.map +1 -1
- package/dist/esm/variables/adhoc/getAdhocOptionSearcher.js.map +1 -1
- package/dist/esm/variables/adhoc/patchGetAdhocFilters.js.map +1 -1
- package/dist/esm/variables/components/VariableValueControl.js +9 -6
- package/dist/esm/variables/components/VariableValueControl.js.map +1 -1
- package/dist/esm/variables/components/VariableValueInput.js +13 -10
- package/dist/esm/variables/components/VariableValueInput.js.map +1 -1
- package/dist/esm/variables/components/VariableValueSelect.js +90 -115
- package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
- package/dist/esm/variables/components/VariableValueSelectors.js +20 -37
- package/dist/esm/variables/components/VariableValueSelectors.js.map +1 -1
- package/dist/esm/variables/components/getOptionSearcher.js +1 -1
- package/dist/esm/variables/components/getOptionSearcher.js.map +1 -1
- package/dist/esm/variables/constants.js.map +1 -1
- package/dist/esm/variables/filter.js +6 -1
- package/dist/esm/variables/filter.js.map +1 -1
- package/dist/esm/variables/getEnrichedFiltersRequest.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariable.js +106 -112
- package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js.map +1 -1
- package/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js.map +1 -1
- package/dist/esm/variables/interpolation/ScopedVarsVariable.js.map +1 -1
- package/dist/esm/variables/interpolation/defaults.js.map +1 -1
- package/dist/esm/variables/interpolation/fieldAccessorCache.js.map +1 -1
- package/dist/esm/variables/interpolation/formatRegistry.js.map +1 -1
- package/dist/esm/variables/interpolation/sceneInterpolator.js.map +1 -1
- package/dist/esm/variables/lookupVariable.js.map +1 -1
- package/dist/esm/variables/macros/AllVariablesMacro.js.map +1 -1
- package/dist/esm/variables/macros/contextMacros.js.map +1 -1
- package/dist/esm/variables/macros/dataMacros.js.map +1 -1
- package/dist/esm/variables/macros/index.js.map +1 -1
- package/dist/esm/variables/macros/templateProxies.js +4 -21
- package/dist/esm/variables/macros/templateProxies.js.map +1 -1
- package/dist/esm/variables/macros/timeMacros.js.map +1 -1
- package/dist/esm/variables/macros/types.js.map +1 -1
- package/dist/esm/variables/macros/urlMacros.js.map +1 -1
- package/dist/esm/variables/sets/SceneVariableSet.js +44 -0
- package/dist/esm/variables/sets/SceneVariableSet.js.map +1 -1
- package/dist/esm/variables/types.js.map +1 -1
- package/dist/esm/variables/utils.js.map +1 -1
- package/dist/esm/variables/variants/ConstantVariable.js +4 -23
- package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
- package/dist/esm/variables/variants/CustomVariable.js +4 -19
- package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
- package/dist/esm/variables/variants/DataSourceVariable.js +4 -19
- package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
- package/dist/esm/variables/variants/IntervalVariable.js +17 -29
- package/dist/esm/variables/variants/IntervalVariable.js.map +1 -1
- package/dist/esm/variables/variants/LocalValueVariable.js +8 -23
- package/dist/esm/variables/variants/LocalValueVariable.js.map +1 -1
- package/dist/esm/variables/variants/MultiValueVariable.js +16 -0
- package/dist/esm/variables/variants/MultiValueVariable.js.map +1 -1
- package/dist/esm/variables/variants/TestVariable.js +5 -19
- package/dist/esm/variables/variants/TestVariable.js.map +1 -1
- package/dist/esm/variables/variants/TextBoxVariable.js +5 -22
- package/dist/esm/variables/variants/TextBoxVariable.js.map +1 -1
- package/dist/esm/variables/variants/guards.js.map +1 -1
- package/dist/esm/variables/variants/query/QueryVariable.js +8 -20
- package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
- package/dist/esm/variables/variants/query/createQueryVariableRunner.js +6 -23
- package/dist/esm/variables/variants/query/createQueryVariableRunner.js.map +1 -1
- package/dist/esm/variables/variants/query/guards.js.map +1 -1
- package/dist/esm/variables/variants/query/toMetricFindValues.js.map +1 -1
- package/dist/esm/variables/variants/query/utils.js.map +1 -1
- package/dist/index.d.ts +36 -6
- package/dist/index.js +2037 -2799
- package/dist/index.js.map +1 -1
- package/package.json +8 -9
|
@@ -1,33 +1,14 @@
|
|
|
1
1
|
import { SceneObjectBase } from '../../core/SceneObjectBase.js';
|
|
2
2
|
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __defProps = Object.defineProperties;
|
|
5
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
3
|
class ConstantVariable extends SceneObjectBase {
|
|
23
4
|
constructor(initialState) {
|
|
24
|
-
super(
|
|
5
|
+
super({
|
|
25
6
|
type: "constant",
|
|
26
7
|
value: "",
|
|
27
|
-
name: ""
|
|
28
|
-
|
|
8
|
+
name: "",
|
|
9
|
+
...initialState,
|
|
29
10
|
skipUrlSync: true
|
|
30
|
-
})
|
|
11
|
+
});
|
|
31
12
|
}
|
|
32
13
|
getValue() {
|
|
33
14
|
return this.state.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConstantVariable.js","sources":["../../../../src/variables/variants/ConstantVariable.ts"],"sourcesContent":["import { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneVariable, SceneVariableState, VariableValue } from '../types';\n\nexport interface ConstantVariableState extends SceneVariableState {\n value: VariableValue;\n}\n\nexport class ConstantVariable\n extends SceneObjectBase<ConstantVariableState>\n implements SceneVariable<ConstantVariableState>\n{\n public constructor(initialState: Partial<ConstantVariableState>) {\n super({\n type: 'constant',\n value: '',\n name: '',\n ...initialState,\n skipUrlSync: true,\n });\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConstantVariable.js","sources":["../../../../src/variables/variants/ConstantVariable.ts"],"sourcesContent":["import { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneVariable, SceneVariableState, VariableValue } from '../types';\n\nexport interface ConstantVariableState extends SceneVariableState {\n value: VariableValue;\n}\n\nexport class ConstantVariable\n extends SceneObjectBase<ConstantVariableState>\n implements SceneVariable<ConstantVariableState>\n{\n public constructor(initialState: Partial<ConstantVariableState>) {\n super({\n type: 'constant',\n value: '',\n name: '',\n ...initialState,\n skipUrlSync: true,\n });\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,yBACH,eAEV,CAAA;AAAA,EACS,YAAY,YAA8C,EAAA;AAC/D,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,UAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,MACN,GAAG,YAAA;AAAA,MACH,WAAa,EAAA;AAAA,KACd,CAAA;AAAA;AACH,EAEO,QAA0B,GAAA;AAC/B,IAAA,OAAO,KAAK,KAAM,CAAA,KAAA;AAAA;AAEtB;;;;"}
|
|
@@ -4,32 +4,17 @@ import { renderSelectForVariable } from '../components/VariableValueSelect.js';
|
|
|
4
4
|
import { MultiValueVariable } from './MultiValueVariable.js';
|
|
5
5
|
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
6
6
|
|
|
7
|
-
var __defProp = Object.defineProperty;
|
|
8
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
7
|
class CustomVariable extends MultiValueVariable {
|
|
24
8
|
constructor(initialState) {
|
|
25
|
-
super(
|
|
9
|
+
super({
|
|
26
10
|
type: "custom",
|
|
27
11
|
query: "",
|
|
28
12
|
value: "",
|
|
29
13
|
text: "",
|
|
30
14
|
options: [],
|
|
31
|
-
name: ""
|
|
32
|
-
|
|
15
|
+
name: "",
|
|
16
|
+
...initialState
|
|
17
|
+
});
|
|
33
18
|
this._variableDependency = new VariableDependencyConfig(this, {
|
|
34
19
|
statePaths: ["query"]
|
|
35
20
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomVariable.js","sources":["../../../../src/variables/variants/CustomVariable.tsx"],"sourcesContent":["import { Observable, of } from 'rxjs';\n\nimport { SceneComponentProps } from '../../core/types';\nimport { VariableDependencyConfig } from '../VariableDependencyConfig';\nimport { renderSelectForVariable } from '../components/VariableValueSelect';\nimport { VariableValueOption } from '../types';\n\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from './MultiValueVariable';\nimport { sceneGraph } from '../../core/sceneGraph';\n\nexport interface CustomVariableState extends MultiValueVariableState {\n query: string;\n}\n\nexport class CustomVariable extends MultiValueVariable<CustomVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['query'],\n });\n\n public constructor(initialState: Partial<CustomVariableState>) {\n super({\n type: 'custom',\n query: '',\n value: '',\n text: '',\n options: [],\n name: '',\n ...initialState,\n });\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n const interpolated = sceneGraph.interpolate(this, this.state.query);\n const match = interpolated.match(/(?:\\\\,|[^,])+/g) ?? [];\n\n const options = match.map((text) => {\n text = text.replace(/\\\\,/g, ',');\n const textMatch = /^(.+)\\s:\\s(.+)$/g.exec(text) ?? [];\n if (textMatch.length === 3) {\n const [, key, value] = textMatch;\n return { label: key.trim(), value: value.trim() };\n } else {\n return { label: text.trim(), value: text.trim() };\n }\n });\n\n if (!options.length) {\n this.skipNextValidation = true;\n }\n\n return of(options);\n }\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return renderSelectForVariable(model);\n };\n}\n"],"names":["_a"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomVariable.js","sources":["../../../../src/variables/variants/CustomVariable.tsx"],"sourcesContent":["import { Observable, of } from 'rxjs';\n\nimport { SceneComponentProps } from '../../core/types';\nimport { VariableDependencyConfig } from '../VariableDependencyConfig';\nimport { renderSelectForVariable } from '../components/VariableValueSelect';\nimport { VariableValueOption } from '../types';\n\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from './MultiValueVariable';\nimport { sceneGraph } from '../../core/sceneGraph';\n\nexport interface CustomVariableState extends MultiValueVariableState {\n query: string;\n}\n\nexport class CustomVariable extends MultiValueVariable<CustomVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['query'],\n });\n\n public constructor(initialState: Partial<CustomVariableState>) {\n super({\n type: 'custom',\n query: '',\n value: '',\n text: '',\n options: [],\n name: '',\n ...initialState,\n });\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n const interpolated = sceneGraph.interpolate(this, this.state.query);\n const match = interpolated.match(/(?:\\\\,|[^,])+/g) ?? [];\n\n const options = match.map((text) => {\n text = text.replace(/\\\\,/g, ',');\n const textMatch = /^(.+)\\s:\\s(.+)$/g.exec(text) ?? [];\n if (textMatch.length === 3) {\n const [, key, value] = textMatch;\n return { label: key.trim(), value: value.trim() };\n } else {\n return { label: text.trim(), value: text.trim() };\n }\n });\n\n if (!options.length) {\n this.skipNextValidation = true;\n }\n\n return of(options);\n }\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return renderSelectForVariable(model);\n };\n}\n"],"names":["_a"],"mappings":";;;;;;AAcO,MAAM,uBAAuB,kBAAwC,CAAA;AAAA,EAKnE,YAAY,YAA4C,EAAA;AAC7D,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,QAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,MACN,SAAS,EAAC;AAAA,MACV,IAAM,EAAA,EAAA;AAAA,MACN,GAAG;AAAA,KACJ,CAAA;AAbH,IAAU,IAAA,CAAA,mBAAA,GAAsB,IAAI,wBAAA,CAAyB,IAAM,EAAA;AAAA,MACjE,UAAA,EAAY,CAAC,OAAO;AAAA,KACrB,CAAA;AAAA;AAYD,EAEO,gBAAgB,IAAiE,EAAA;AA/B1F,IAAA,IAAA,EAAA;AAgCI,IAAA,MAAM,eAAe,UAAW,CAAA,WAAA,CAAY,IAAM,EAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAClE,IAAA,MAAM,SAAQ,EAAa,GAAA,YAAA,CAAA,KAAA,CAAM,gBAAgB,CAAA,KAAnC,YAAwC,EAAC;AAEvD,IAAA,MAAM,OAAU,GAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AAnCxC,MAAAA,IAAAA,GAAAA;AAoCM,MAAO,IAAA,GAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,EAAQ,GAAG,CAAA;AAC/B,MAAM,MAAA,SAAA,GAAA,CAAYA,MAAA,kBAAmB,CAAA,IAAA,CAAK,IAAI,CAA5B,KAAA,IAAA,GAAAA,MAAiC,EAAC;AACpD,MAAI,IAAA,SAAA,CAAU,WAAW,CAAG,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAK,EAAA,KAAK,CAAI,GAAA,SAAA;AACvB,QAAO,OAAA,EAAE,OAAO,GAAI,CAAA,IAAA,IAAQ,KAAO,EAAA,KAAA,CAAM,MAAO,EAAA;AAAA,OAC3C,MAAA;AACL,QAAO,OAAA,EAAE,OAAO,IAAK,CAAA,IAAA,IAAQ,KAAO,EAAA,IAAA,CAAK,MAAO,EAAA;AAAA;AAClD,KACD,CAAA;AAED,IAAI,IAAA,CAAC,QAAQ,MAAQ,EAAA;AACnB,MAAA,IAAA,CAAK,kBAAqB,GAAA,IAAA;AAAA;AAG5B,IAAA,OAAO,GAAG,OAAO,CAAA;AAAA;AAMrB;AA1Ca,cAAA,CAuCG,SAAY,GAAA,CAAC,EAAE,KAAA,EAAqD,KAAA;AAChF,EAAA,OAAO,wBAAwB,KAAK,CAAA;AACtC,CAAA;;;;"}
|
|
@@ -6,33 +6,18 @@ import { VariableDependencyConfig } from '../VariableDependencyConfig.js';
|
|
|
6
6
|
import { renderSelectForVariable } from '../components/VariableValueSelect.js';
|
|
7
7
|
import { MultiValueVariable } from './MultiValueVariable.js';
|
|
8
8
|
|
|
9
|
-
var __defProp = Object.defineProperty;
|
|
10
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
11
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
13
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
14
|
-
var __spreadValues = (a, b) => {
|
|
15
|
-
for (var prop in b || (b = {}))
|
|
16
|
-
if (__hasOwnProp.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
if (__getOwnPropSymbols)
|
|
19
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
20
|
-
if (__propIsEnum.call(b, prop))
|
|
21
|
-
__defNormalProp(a, prop, b[prop]);
|
|
22
|
-
}
|
|
23
|
-
return a;
|
|
24
|
-
};
|
|
25
9
|
class DataSourceVariable extends MultiValueVariable {
|
|
26
10
|
constructor(initialState) {
|
|
27
|
-
super(
|
|
11
|
+
super({
|
|
28
12
|
type: "datasource",
|
|
29
13
|
value: "",
|
|
30
14
|
text: "",
|
|
31
15
|
options: [],
|
|
32
16
|
name: "",
|
|
33
17
|
regex: "",
|
|
34
|
-
pluginId: ""
|
|
35
|
-
|
|
18
|
+
pluginId: "",
|
|
19
|
+
...initialState
|
|
20
|
+
});
|
|
36
21
|
this._variableDependency = new VariableDependencyConfig(this, {
|
|
37
22
|
statePaths: ["regex"]
|
|
38
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSourceVariable.js","sources":["../../../../src/variables/variants/DataSourceVariable.tsx"],"sourcesContent":["import { Observable, of } from 'rxjs';\n\nimport { stringToJsRegex, DataSourceInstanceSettings } from '@grafana/data';\nimport { getDataSourceSrv } from '@grafana/runtime';\n\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneComponentProps } from '../../core/types';\nimport { VariableDependencyConfig } from '../VariableDependencyConfig';\nimport { renderSelectForVariable } from '../components/VariableValueSelect';\nimport { VariableValueOption } from '../types';\n\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from './MultiValueVariable';\n\nexport interface DataSourceVariableState extends MultiValueVariableState {\n /**\n * Include all data source instances with this plugin id\n */\n pluginId: string;\n /**\n * Filter data source instances based on name\n */\n regex: string;\n /**\n * For backwards compatability with old dashboards, will likely be removed\n */\n defaultOptionEnabled?: boolean;\n}\n\nexport class DataSourceVariable extends MultiValueVariable<DataSourceVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['regex'],\n });\n\n public constructor(initialState: Partial<DataSourceVariableState>) {\n super({\n type: 'datasource',\n value: '',\n text: '',\n options: [],\n name: '',\n regex: '',\n pluginId: '',\n ...initialState,\n });\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n if (!this.state.pluginId) {\n return of([]);\n }\n\n const dataSources = getDataSourceSrv().getList({ metrics: true, variables: false, pluginId: this.state.pluginId });\n\n let regex;\n if (this.state.regex) {\n const interpolated = sceneGraph.interpolate(this, this.state.regex, undefined, 'regex');\n regex = stringToJsRegex(interpolated);\n }\n\n const options: VariableValueOption[] = [];\n\n for (let i = 0; i < dataSources.length; i++) {\n const source = dataSources[i];\n\n if (isValid(source, regex)) {\n options.push({ label: source.name, value: source.uid });\n }\n\n if (this.state.defaultOptionEnabled && isDefault(source, regex)) {\n options.push({ label: 'default', value: 'default' });\n }\n }\n\n if (options.length === 0) {\n this.setState({ error: 'No data sources found' });\n } else if (this.state.error) {\n this.setState({ error: null });\n }\n\n return of(options);\n }\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return renderSelectForVariable(model);\n };\n}\n\nfunction isValid(source: DataSourceInstanceSettings, regex?: RegExp) {\n if (!regex) {\n return true;\n }\n\n return regex.exec(source.name);\n}\n\nfunction isDefault(source: DataSourceInstanceSettings, regex?: RegExp) {\n if (!source.isDefault) {\n return false;\n }\n\n if (!regex) {\n return true;\n }\n\n return regex.exec('default');\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataSourceVariable.js","sources":["../../../../src/variables/variants/DataSourceVariable.tsx"],"sourcesContent":["import { Observable, of } from 'rxjs';\n\nimport { stringToJsRegex, DataSourceInstanceSettings } from '@grafana/data';\nimport { getDataSourceSrv } from '@grafana/runtime';\n\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneComponentProps } from '../../core/types';\nimport { VariableDependencyConfig } from '../VariableDependencyConfig';\nimport { renderSelectForVariable } from '../components/VariableValueSelect';\nimport { VariableValueOption } from '../types';\n\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from './MultiValueVariable';\n\nexport interface DataSourceVariableState extends MultiValueVariableState {\n /**\n * Include all data source instances with this plugin id\n */\n pluginId: string;\n /**\n * Filter data source instances based on name\n */\n regex: string;\n /**\n * For backwards compatability with old dashboards, will likely be removed\n */\n defaultOptionEnabled?: boolean;\n}\n\nexport class DataSourceVariable extends MultiValueVariable<DataSourceVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['regex'],\n });\n\n public constructor(initialState: Partial<DataSourceVariableState>) {\n super({\n type: 'datasource',\n value: '',\n text: '',\n options: [],\n name: '',\n regex: '',\n pluginId: '',\n ...initialState,\n });\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n if (!this.state.pluginId) {\n return of([]);\n }\n\n const dataSources = getDataSourceSrv().getList({ metrics: true, variables: false, pluginId: this.state.pluginId });\n\n let regex;\n if (this.state.regex) {\n const interpolated = sceneGraph.interpolate(this, this.state.regex, undefined, 'regex');\n regex = stringToJsRegex(interpolated);\n }\n\n const options: VariableValueOption[] = [];\n\n for (let i = 0; i < dataSources.length; i++) {\n const source = dataSources[i];\n\n if (isValid(source, regex)) {\n options.push({ label: source.name, value: source.uid });\n }\n\n if (this.state.defaultOptionEnabled && isDefault(source, regex)) {\n options.push({ label: 'default', value: 'default' });\n }\n }\n\n if (options.length === 0) {\n this.setState({ error: 'No data sources found' });\n } else if (this.state.error) {\n this.setState({ error: null });\n }\n\n return of(options);\n }\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return renderSelectForVariable(model);\n };\n}\n\nfunction isValid(source: DataSourceInstanceSettings, regex?: RegExp) {\n if (!regex) {\n return true;\n }\n\n return regex.exec(source.name);\n}\n\nfunction isDefault(source: DataSourceInstanceSettings, regex?: RegExp) {\n if (!source.isDefault) {\n return false;\n }\n\n if (!regex) {\n return true;\n }\n\n return regex.exec('default');\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -6,28 +6,12 @@ import { of } from 'rxjs';
|
|
|
6
6
|
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
7
7
|
import { SceneObjectBase } from '../../core/SceneObjectBase.js';
|
|
8
8
|
import { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig.js';
|
|
9
|
-
import {
|
|
9
|
+
import { AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE } from '../constants.js';
|
|
10
10
|
import { SceneVariableValueChangedEvent } from '../types.js';
|
|
11
11
|
|
|
12
|
-
var __defProp = Object.defineProperty;
|
|
13
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
14
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
15
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
16
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
17
|
-
var __spreadValues = (a, b) => {
|
|
18
|
-
for (var prop in b || (b = {}))
|
|
19
|
-
if (__hasOwnProp.call(b, prop))
|
|
20
|
-
__defNormalProp(a, prop, b[prop]);
|
|
21
|
-
if (__getOwnPropSymbols)
|
|
22
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
23
|
-
if (__propIsEnum.call(b, prop))
|
|
24
|
-
__defNormalProp(a, prop, b[prop]);
|
|
25
|
-
}
|
|
26
|
-
return a;
|
|
27
|
-
};
|
|
28
12
|
class IntervalVariable extends SceneObjectBase {
|
|
29
13
|
constructor(initialState) {
|
|
30
|
-
super(
|
|
14
|
+
super({
|
|
31
15
|
type: "interval",
|
|
32
16
|
value: "",
|
|
33
17
|
intervals: ["1m", "10m", "30m", "1h", "6h", "12h", "1d", "7d", "14d", "30d"],
|
|
@@ -35,8 +19,9 @@ class IntervalVariable extends SceneObjectBase {
|
|
|
35
19
|
autoStepCount: 30,
|
|
36
20
|
autoMinInterval: "10s",
|
|
37
21
|
autoEnabled: false,
|
|
38
|
-
refresh: VariableRefresh.onTimeRangeChanged
|
|
39
|
-
|
|
22
|
+
refresh: VariableRefresh.onTimeRangeChanged,
|
|
23
|
+
...initialState
|
|
24
|
+
});
|
|
40
25
|
this._onChange = (value) => {
|
|
41
26
|
this.setState({ value: value.value });
|
|
42
27
|
this.publishEvent(new SceneVariableValueChangedEvent(this), true);
|
|
@@ -102,15 +87,18 @@ class IntervalVariable extends SceneObjectBase {
|
|
|
102
87
|
}
|
|
103
88
|
IntervalVariable.Component = ({ model }) => {
|
|
104
89
|
const { key, value } = model.useState();
|
|
105
|
-
return /* @__PURE__ */ React.createElement(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
90
|
+
return /* @__PURE__ */ React.createElement(
|
|
91
|
+
Select,
|
|
92
|
+
{
|
|
93
|
+
id: key,
|
|
94
|
+
placeholder: "Select value",
|
|
95
|
+
width: "auto",
|
|
96
|
+
value,
|
|
97
|
+
tabSelectsValue: false,
|
|
98
|
+
options: model.getOptionsForSelect(),
|
|
99
|
+
onChange: model._onChange
|
|
100
|
+
}
|
|
101
|
+
);
|
|
114
102
|
};
|
|
115
103
|
|
|
116
104
|
export { IntervalVariable };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntervalVariable.js","sources":["../../../../src/variables/variants/IntervalVariable.tsx"],"sourcesContent":["import { rangeUtil, SelectableValue } from '@grafana/data';\nimport { VariableRefresh } from '@grafana/schema';\nimport { Select } from '@grafana/ui';\nimport React from 'react';\nimport { Observable, of } from 'rxjs';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE } from '../constants';\nimport {\n SceneVariable,\n SceneVariableState,\n SceneVariableValueChangedEvent,\n ValidateAndUpdateResult,\n VariableValue,\n} from '../types';\n\nexport interface IntervalVariableState extends SceneVariableState {\n intervals: string[];\n value: string;\n autoEnabled: boolean;\n autoMinInterval: string;\n autoStepCount: number;\n refresh: VariableRefresh;\n}\n\nexport class IntervalVariable\n extends SceneObjectBase<IntervalVariableState>\n implements SceneVariable<IntervalVariableState>\n{\n public constructor(initialState: Partial<IntervalVariableState>) {\n super({\n type: 'interval',\n value: '',\n intervals: ['1m', '10m', '30m', '1h', '6h', '12h', '1d', '7d', '14d', '30d'],\n name: '',\n autoStepCount: 30,\n autoMinInterval: '10s',\n autoEnabled: false,\n refresh: VariableRefresh.onTimeRangeChanged,\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });\n }\n\n private getKey(): string {\n return `var-${this.state.name}`;\n }\n\n public getUrlState() {\n return { [this.getKey()]: this.state.value };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const update: Partial<IntervalVariableState> = {};\n const val = values[this.getKey()];\n if (typeof val === 'string') {\n // support old auto interval url value\n if (val.startsWith('$__auto_interval_')) {\n update.value = AUTO_VARIABLE_VALUE;\n } else {\n update.value = val;\n }\n }\n this.setState(update);\n }\n\n public getOptionsForSelect(): Array<SelectableValue<string>> {\n const { value: currentValue, intervals, autoEnabled } = this.state;\n\n let options = intervals.map((interval) => ({ value: interval, label: interval }));\n\n if (autoEnabled) {\n options = [{ value: AUTO_VARIABLE_VALUE, label: AUTO_VARIABLE_TEXT }, ...options];\n }\n\n // If the current value is not in the list of intervals, add it to the list\n if (currentValue && !options.some((option) => option.value === currentValue)) {\n options.push({ value: currentValue, label: currentValue });\n }\n\n return options;\n }\n\n public getValue(): VariableValue {\n const { value, autoStepCount, autoMinInterval } = this.state;\n if (value === AUTO_VARIABLE_VALUE) {\n return this.getAutoRefreshInteval(autoStepCount, autoMinInterval);\n }\n\n return value;\n }\n\n private getAutoRefreshInteval(autoStepCount: number, minRefreshInterval: string) {\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const intervalObject = rangeUtil.calculateInterval(timeRange, autoStepCount, minRefreshInterval);\n return intervalObject.interval;\n }\n\n public _onChange = (value: SelectableValue<string>) => {\n this.setState({ value: value.value! });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n };\n\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n const { value, intervals } = this.state;\n let shouldPublish = false;\n\n if (value === AUTO_VARIABLE_VALUE) {\n shouldPublish = true;\n } else if (!value && intervals.length > 0) {\n const firstOption = intervals[0];\n this.setState({ value: firstOption });\n shouldPublish = true;\n }\n\n if (shouldPublish) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n return of({});\n }\n\n public static Component = ({ model }: SceneComponentProps<IntervalVariable>) => {\n const { key, value } = model.useState();\n return (\n <Select\n id={key}\n placeholder=\"Select value\"\n width=\"auto\"\n value={value}\n tabSelectsValue={false}\n options={model.getOptionsForSelect()}\n onChange={model._onChange}\n />\n );\n };\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IntervalVariable.js","sources":["../../../../src/variables/variants/IntervalVariable.tsx"],"sourcesContent":["import { rangeUtil, SelectableValue } from '@grafana/data';\nimport { VariableRefresh } from '@grafana/schema';\nimport { Select } from '@grafana/ui';\nimport React from 'react';\nimport { Observable, of } from 'rxjs';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE } from '../constants';\nimport {\n SceneVariable,\n SceneVariableState,\n SceneVariableValueChangedEvent,\n ValidateAndUpdateResult,\n VariableValue,\n} from '../types';\n\nexport interface IntervalVariableState extends SceneVariableState {\n intervals: string[];\n value: string;\n autoEnabled: boolean;\n autoMinInterval: string;\n autoStepCount: number;\n refresh: VariableRefresh;\n}\n\nexport class IntervalVariable\n extends SceneObjectBase<IntervalVariableState>\n implements SceneVariable<IntervalVariableState>\n{\n public constructor(initialState: Partial<IntervalVariableState>) {\n super({\n type: 'interval',\n value: '',\n intervals: ['1m', '10m', '30m', '1h', '6h', '12h', '1d', '7d', '14d', '30d'],\n name: '',\n autoStepCount: 30,\n autoMinInterval: '10s',\n autoEnabled: false,\n refresh: VariableRefresh.onTimeRangeChanged,\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });\n }\n\n private getKey(): string {\n return `var-${this.state.name}`;\n }\n\n public getUrlState() {\n return { [this.getKey()]: this.state.value };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const update: Partial<IntervalVariableState> = {};\n const val = values[this.getKey()];\n if (typeof val === 'string') {\n // support old auto interval url value\n if (val.startsWith('$__auto_interval_')) {\n update.value = AUTO_VARIABLE_VALUE;\n } else {\n update.value = val;\n }\n }\n this.setState(update);\n }\n\n public getOptionsForSelect(): Array<SelectableValue<string>> {\n const { value: currentValue, intervals, autoEnabled } = this.state;\n\n let options = intervals.map((interval) => ({ value: interval, label: interval }));\n\n if (autoEnabled) {\n options = [{ value: AUTO_VARIABLE_VALUE, label: AUTO_VARIABLE_TEXT }, ...options];\n }\n\n // If the current value is not in the list of intervals, add it to the list\n if (currentValue && !options.some((option) => option.value === currentValue)) {\n options.push({ value: currentValue, label: currentValue });\n }\n\n return options;\n }\n\n public getValue(): VariableValue {\n const { value, autoStepCount, autoMinInterval } = this.state;\n if (value === AUTO_VARIABLE_VALUE) {\n return this.getAutoRefreshInteval(autoStepCount, autoMinInterval);\n }\n\n return value;\n }\n\n private getAutoRefreshInteval(autoStepCount: number, minRefreshInterval: string) {\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const intervalObject = rangeUtil.calculateInterval(timeRange, autoStepCount, minRefreshInterval);\n return intervalObject.interval;\n }\n\n public _onChange = (value: SelectableValue<string>) => {\n this.setState({ value: value.value! });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n };\n\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n const { value, intervals } = this.state;\n let shouldPublish = false;\n\n if (value === AUTO_VARIABLE_VALUE) {\n shouldPublish = true;\n } else if (!value && intervals.length > 0) {\n const firstOption = intervals[0];\n this.setState({ value: firstOption });\n shouldPublish = true;\n }\n\n if (shouldPublish) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n return of({});\n }\n\n public static Component = ({ model }: SceneComponentProps<IntervalVariable>) => {\n const { key, value } = model.useState();\n return (\n <Select\n id={key}\n placeholder=\"Select value\"\n width=\"auto\"\n value={value}\n tabSelectsValue={false}\n options={model.getOptionsForSelect()}\n onChange={model._onChange}\n />\n );\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,16 @@
|
|
|
1
1
|
import { SceneObjectBase } from '../../core/SceneObjectBase.js';
|
|
2
2
|
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
3
3
|
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __defProps = Object.defineProperties;
|
|
6
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
-
var __spreadValues = (a, b) => {
|
|
12
|
-
for (var prop in b || (b = {}))
|
|
13
|
-
if (__hasOwnProp.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
if (__getOwnPropSymbols)
|
|
16
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
-
if (__propIsEnum.call(b, prop))
|
|
18
|
-
__defNormalProp(a, prop, b[prop]);
|
|
19
|
-
}
|
|
20
|
-
return a;
|
|
21
|
-
};
|
|
22
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
23
4
|
class LocalValueVariable extends SceneObjectBase {
|
|
24
5
|
constructor(initialState) {
|
|
25
|
-
super(
|
|
6
|
+
super({
|
|
26
7
|
type: "system",
|
|
27
8
|
value: "",
|
|
28
9
|
text: "",
|
|
29
|
-
name: ""
|
|
30
|
-
|
|
10
|
+
name: "",
|
|
11
|
+
...initialState,
|
|
31
12
|
skipUrlSync: true
|
|
32
|
-
})
|
|
13
|
+
});
|
|
33
14
|
}
|
|
34
15
|
getValue() {
|
|
35
16
|
return this.state.value;
|
|
@@ -37,6 +18,10 @@ class LocalValueVariable extends SceneObjectBase {
|
|
|
37
18
|
getValueText() {
|
|
38
19
|
return this.state.text.toString();
|
|
39
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Checks the ancestor of our parent SceneVariableSet for loading state of a variable with the same name
|
|
23
|
+
* This function is unit tested from SceneVariableSet tests.
|
|
24
|
+
*/
|
|
40
25
|
isAncestorLoading() {
|
|
41
26
|
var _a, _b;
|
|
42
27
|
const ancestorScope = (_b = (_a = this.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalValueVariable.js","sources":["../../../../src/variables/variants/LocalValueVariable.ts"],"sourcesContent":["import { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneVariable, SceneVariableState, VariableValue } from '../types';\n\nexport interface LocalValueVariableState extends SceneVariableState {\n value: VariableValue;\n text: VariableValue;\n\n // Indicate whether or not this variable is sourced from a multi-value variable.\n // Introduces for a backwards compatibility with the old variable system, to properly support interpolation in SQL data sources.\n isMulti?: boolean;\n includeAll?: boolean;\n}\n\n/**\n * This is a special type of variable that is used for repeating panels and layouts to create a local scoped value for a variable\n * that exists in a ancestor SceneVariableSet.\n */\nexport class LocalValueVariable\n extends SceneObjectBase<LocalValueVariableState>\n implements SceneVariable<LocalValueVariableState>\n{\n public constructor(initialState: Partial<LocalValueVariableState>) {\n super({\n type: 'system',\n value: '',\n text: '',\n name: '',\n ...initialState,\n skipUrlSync: true,\n });\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n\n public getValueText(): string {\n return this.state.text.toString();\n }\n\n /**\n * Checks the ancestor of our parent SceneVariableSet for loading state of a variable with the same name\n * This function is unit tested from SceneVariableSet tests.\n */\n public isAncestorLoading(): boolean {\n // Parent (SceneVariableSet) -> Parent (The object that has our parent set) -> Parent (scope we need to access our sets ancestor)\n const ancestorScope = this.parent?.parent?.parent;\n if (!ancestorScope) {\n throw new Error('LocalValueVariable requires a parent SceneVariableSet that has an ancestor SceneVariableSet');\n }\n\n const set = sceneGraph.getVariables(ancestorScope);\n const parentVar = sceneGraph.lookupVariable(this.state.name, ancestorScope);\n if (set && parentVar) {\n return set.isVariableLoadingOrWaitingToUpdate(parentVar);\n }\n\n return false;\n }\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LocalValueVariable.js","sources":["../../../../src/variables/variants/LocalValueVariable.ts"],"sourcesContent":["import { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneVariable, SceneVariableState, VariableValue } from '../types';\n\nexport interface LocalValueVariableState extends SceneVariableState {\n value: VariableValue;\n text: VariableValue;\n\n // Indicate whether or not this variable is sourced from a multi-value variable.\n // Introduces for a backwards compatibility with the old variable system, to properly support interpolation in SQL data sources.\n isMulti?: boolean;\n includeAll?: boolean;\n}\n\n/**\n * This is a special type of variable that is used for repeating panels and layouts to create a local scoped value for a variable\n * that exists in a ancestor SceneVariableSet.\n */\nexport class LocalValueVariable\n extends SceneObjectBase<LocalValueVariableState>\n implements SceneVariable<LocalValueVariableState>\n{\n public constructor(initialState: Partial<LocalValueVariableState>) {\n super({\n type: 'system',\n value: '',\n text: '',\n name: '',\n ...initialState,\n skipUrlSync: true,\n });\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n\n public getValueText(): string {\n return this.state.text.toString();\n }\n\n /**\n * Checks the ancestor of our parent SceneVariableSet for loading state of a variable with the same name\n * This function is unit tested from SceneVariableSet tests.\n */\n public isAncestorLoading(): boolean {\n // Parent (SceneVariableSet) -> Parent (The object that has our parent set) -> Parent (scope we need to access our sets ancestor)\n const ancestorScope = this.parent?.parent?.parent;\n if (!ancestorScope) {\n throw new Error('LocalValueVariable requires a parent SceneVariableSet that has an ancestor SceneVariableSet');\n }\n\n const set = sceneGraph.getVariables(ancestorScope);\n const parentVar = sceneGraph.lookupVariable(this.state.name, ancestorScope);\n if (set && parentVar) {\n return set.isVariableLoadingOrWaitingToUpdate(parentVar);\n }\n\n return false;\n }\n}\n"],"names":[],"mappings":";;;AAkBO,MAAM,2BACH,eAEV,CAAA;AAAA,EACS,YAAY,YAAgD,EAAA;AACjE,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,QAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,MACN,IAAM,EAAA,EAAA;AAAA,MACN,GAAG,YAAA;AAAA,MACH,WAAa,EAAA;AAAA,KACd,CAAA;AAAA;AACH,EAEO,QAA0B,GAAA;AAC/B,IAAA,OAAO,KAAK,KAAM,CAAA,KAAA;AAAA;AACpB,EAEO,YAAuB,GAAA;AAC5B,IAAO,OAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,QAAS,EAAA;AAAA;AAClC;AAAA;AAAA;AAAA;AAAA,EAMO,iBAA6B,GAAA;AA7CtC,IAAA,IAAA,EAAA,EAAA,EAAA;AA+CI,IAAA,MAAM,aAAgB,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,MAAL,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAa,WAAb,IAAqB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA;AAC3C,IAAA,IAAI,CAAC,aAAe,EAAA;AAClB,MAAM,MAAA,IAAI,MAAM,6FAA6F,CAAA;AAAA;AAG/G,IAAM,MAAA,GAAA,GAAM,UAAW,CAAA,YAAA,CAAa,aAAa,CAAA;AACjD,IAAA,MAAM,YAAY,UAAW,CAAA,cAAA,CAAe,IAAK,CAAA,KAAA,CAAM,MAAM,aAAa,CAAA;AAC1E,IAAA,IAAI,OAAO,SAAW,EAAA;AACpB,MAAO,OAAA,GAAA,CAAI,mCAAmC,SAAS,CAAA;AAAA;AAGzD,IAAO,OAAA,KAAA;AAAA;AAEX;;;;"}
|
|
@@ -12,6 +12,9 @@ class MultiValueVariable extends SceneObjectBase {
|
|
|
12
12
|
super(...arguments);
|
|
13
13
|
this._urlSync = new MultiValueUrlSyncHandler(this);
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* This function is called on when SceneVariableSet is activated or when a dependency changes.
|
|
17
|
+
*/
|
|
15
18
|
validateAndUpdate() {
|
|
16
19
|
return this.getValueOptions({}).pipe(
|
|
17
20
|
map((options) => {
|
|
@@ -25,6 +28,9 @@ class MultiValueVariable extends SceneObjectBase {
|
|
|
25
28
|
const sceneVarSet = this.parent;
|
|
26
29
|
sceneVarSet == null ? void 0 : sceneVarSet.cancel(this);
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if current value is valid given new options. If not update the value.
|
|
33
|
+
*/
|
|
28
34
|
updateValueGivenNewOptions(options) {
|
|
29
35
|
const { value: currentValue, text: currentText, options: oldOptions } = this.state;
|
|
30
36
|
const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);
|
|
@@ -96,6 +102,10 @@ class MultiValueVariable extends SceneObjectBase {
|
|
|
96
102
|
}
|
|
97
103
|
return stateUpdate;
|
|
98
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Values set by initial URL sync needs to survive the next validation and update.
|
|
107
|
+
* This function can intercept and make sure those values are preserved.
|
|
108
|
+
*/
|
|
99
109
|
interceptStateUpdateAfterValidation(stateUpdate) {
|
|
100
110
|
const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;
|
|
101
111
|
if (this.skipNextValidation && stateUpdate.value !== this.state.value && stateUpdate.text !== this.state.text && !isAllValueFix) {
|
|
@@ -144,6 +154,9 @@ class MultiValueVariable extends SceneObjectBase {
|
|
|
144
154
|
return { value: "", text: "" };
|
|
145
155
|
}
|
|
146
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Change the value and publish SceneVariableValueChangedEvent event.
|
|
159
|
+
*/
|
|
147
160
|
changeValueTo(value, text, isUserAction = false) {
|
|
148
161
|
var _a, _b;
|
|
149
162
|
if (value === this.state.value && text === this.state.text) {
|
|
@@ -197,6 +210,9 @@ class MultiValueVariable extends SceneObjectBase {
|
|
|
197
210
|
}
|
|
198
211
|
return value;
|
|
199
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* This helper function is to counter the contravariance of setState
|
|
215
|
+
*/
|
|
200
216
|
setStateHelper(state) {
|
|
201
217
|
setBaseClassState(this, state);
|
|
202
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiValueVariable.js","sources":["../../../../src/variables/variants/MultiValueVariable.ts"],"sourcesContent":["import { isArray, isEqual } from 'lodash';\nimport { map, Observable } from 'rxjs';\n\nimport { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE } from '../constants';\n\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneObjectUrlSyncHandler, SceneObjectUrlValues } from '../../core/types';\nimport {\n SceneVariable,\n SceneVariableValueChangedEvent,\n SceneVariableState,\n ValidateAndUpdateResult,\n VariableValue,\n VariableValueOption,\n VariableValueSingle,\n CustomVariableValue,\n VariableCustomFormatterFn,\n} from '../types';\nimport { formatRegistry } from '../interpolation/formatRegistry';\nimport { VariableFormatID } from '@grafana/schema';\nimport { SceneVariableSet } from '../sets/SceneVariableSet';\nimport { setBaseClassState } from '../../utils/utils';\n\nexport interface MultiValueVariableState extends SceneVariableState {\n value: VariableValue; // old current.text\n text: VariableValue; // old current.value\n options: VariableValueOption[];\n allowCustomValue?: boolean;\n isMulti?: boolean;\n includeAll?: boolean;\n defaultToAll?: boolean;\n allValue?: string;\n placeholder?: string;\n /**\n * For multi value variables, this option controls how many values to show before they are collapsed into +N.\n * Defaults to 5\n */\n maxVisibleValues?: number;\n noValueOnClear?: boolean;\n isReadOnly?: boolean;\n}\n\nexport interface VariableGetOptionsArgs {\n searchFilter?: string;\n}\n\nexport abstract class MultiValueVariable<TState extends MultiValueVariableState = MultiValueVariableState>\n extends SceneObjectBase<TState>\n implements SceneVariable<TState>\n{\n protected _urlSync: SceneObjectUrlSyncHandler = new MultiValueUrlSyncHandler(this);\n\n /**\n * Set to true to skip next value validation to maintain the current value even it it's not among the options (ie valid values)\n */\n public skipNextValidation?: boolean;\n\n /**\n * The source of value options.\n */\n public abstract getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;\n\n /**\n * This function is called on when SceneVariableSet is activated or when a dependency changes.\n */\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this.updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n\n public onCancel(): void {\n this.setStateHelper({ loading: false });\n const sceneVarSet = this.parent as SceneVariableSet;\n sceneVarSet?.cancel(this);\n }\n\n /**\n * Check if current value is valid given new options. If not update the value.\n */\n private updateValueGivenNewOptions(options: VariableValueOption[]) {\n // Remember current value and text\n const { value: currentValue, text: currentText, options: oldOptions } = this.state;\n\n const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);\n\n this.interceptStateUpdateAfterValidation(stateUpdate);\n\n // Perform state change\n this.setStateHelper(stateUpdate);\n\n // Publish value changed event only if value changed\n if (\n stateUpdate.value !== currentValue ||\n stateUpdate.text !== currentText ||\n (this.hasAllValue() && !isEqual(options, oldOptions))\n ) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n }\n\n private getStateUpdateGivenNewOptions(\n options: VariableValueOption[],\n currentValue: VariableValue,\n currentText: VariableValue\n ): Partial<MultiValueVariableState> {\n const stateUpdate: Partial<MultiValueVariableState> = {\n options,\n loading: false,\n value: currentValue,\n text: currentText,\n };\n\n if (options.length === 0) {\n if (this.state.defaultToAll || this.state.includeAll) {\n stateUpdate.value = ALL_VARIABLE_VALUE;\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else if (this.state.isMulti) {\n stateUpdate.value = [];\n stateUpdate.text = [];\n } else {\n stateUpdate.value = '';\n stateUpdate.text = '';\n }\n\n return stateUpdate;\n }\n\n if (this.hasAllValue()) {\n if (this.state.includeAll) {\n // Sometimes the text representation is also set the ALL_VARIABLE_VALUE, this fixes that\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else {\n stateUpdate.value = options[0].value;\n stateUpdate.text = options[0].label;\n // If multi switch to arrays\n if (this.state.isMulti) {\n stateUpdate.value = [stateUpdate.value];\n stateUpdate.text = [stateUpdate.text];\n }\n }\n return stateUpdate;\n }\n\n if (this.state.isMulti) {\n // If we are a multi valued variable validate the current values are among the options\n const currentValues = Array.isArray(currentValue) ? currentValue : [currentValue];\n const validValues = currentValues.filter((v) => options.find((o) => o.value === v));\n const validTexts = validValues.map((v) => options.find((o) => o.value === v)!.label);\n\n // If no valid values pick the first option\n if (validValues.length === 0) {\n const defaultState = this.getDefaultMultiState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n } else {\n // We have valid values, if it's different from current valid values update current values\n if (!isEqual(validValues, currentValue)) {\n stateUpdate.value = validValues;\n }\n if (!isEqual(validTexts, currentText)) {\n stateUpdate.text = validTexts;\n }\n }\n return stateUpdate;\n }\n\n // Single value variable validation\n\n // Try find by value then text\n let matchingOption = findOptionMatchingCurrent(currentValue, currentText, options);\n if (matchingOption) {\n // When updating the initial state from URL the text property is set the same as value\n // Here we can correct the text value state\n stateUpdate.text = matchingOption.label;\n stateUpdate.value = matchingOption.value;\n } else {\n // Current value is found in options\n const defaultState = this.getDefaultSingleState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n }\n\n return stateUpdate;\n }\n\n /**\n * Values set by initial URL sync needs to survive the next validation and update.\n * This function can intercept and make sure those values are preserved.\n */\n protected interceptStateUpdateAfterValidation(stateUpdate: Partial<MultiValueVariableState>): void {\n // If the validation wants to fix the all value (All ==> $__all) then we should let that pass\n const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;\n\n if (\n this.skipNextValidation &&\n stateUpdate.value !== this.state.value &&\n stateUpdate.text !== this.state.text &&\n !isAllValueFix\n ) {\n stateUpdate.value = this.state.value;\n stateUpdate.text = this.state.text;\n }\n\n this.skipNextValidation = false;\n }\n\n public getValue(): VariableValue {\n if (this.hasAllValue()) {\n if (this.state.allValue) {\n return new CustomAllValue(this.state.allValue, this);\n }\n\n return this.state.options.map((x) => x.value);\n }\n\n return this.state.value;\n }\n\n public getValueText(): string {\n if (this.hasAllValue()) {\n return ALL_VARIABLE_TEXT;\n }\n\n if (Array.isArray(this.state.text)) {\n return this.state.text.join(' + ');\n }\n\n return String(this.state.text);\n }\n\n public hasAllValue() {\n const value = this.state.value;\n return value === ALL_VARIABLE_VALUE || (Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE);\n }\n\n public getDefaultMultiState(options: VariableValueOption[]) {\n if (this.state.defaultToAll) {\n return { value: [ALL_VARIABLE_VALUE], text: [ALL_VARIABLE_TEXT] };\n } else if (options.length > 0) {\n return { value: [options[0].value], text: [options[0].label] };\n } else {\n return { value: [], text: [] };\n }\n }\n\n protected getDefaultSingleState(options: VariableValueOption[]) {\n if (this.state.defaultToAll) {\n return { value: ALL_VARIABLE_VALUE, text: ALL_VARIABLE_TEXT };\n } else if (options.length > 0) {\n return { value: options[0].value, text: options[0].label };\n } else {\n return { value: '', text: '' };\n }\n }\n\n /**\n * Change the value and publish SceneVariableValueChangedEvent event.\n */\n public changeValueTo(value: VariableValue, text?: VariableValue, isUserAction = false) {\n // Ignore if there is no change\n if (value === this.state.value && text === this.state.text) {\n return;\n }\n\n if (!text) {\n if (Array.isArray(value)) {\n text = value.map((v) => this.findLabelTextForValue(v));\n } else {\n text = this.findLabelTextForValue(value);\n }\n }\n\n if (Array.isArray(value)) {\n // If we are a multi valued variable is cleared (empty array) we need to set the default empty state\n if (value.length === 0) {\n const state = this.getDefaultMultiState(this.state.options);\n value = state.value;\n text = state.text;\n }\n\n // If last value is the All value then replace all with it\n if (value[value.length - 1] === ALL_VARIABLE_VALUE) {\n value = [ALL_VARIABLE_VALUE];\n text = [ALL_VARIABLE_TEXT];\n }\n // If the first value is the ALL value and we have other values, then remove the All value\n else if (value[0] === ALL_VARIABLE_VALUE && value.length > 1) {\n value.shift();\n if (Array.isArray(text)) {\n text.shift();\n }\n }\n }\n\n // Do nothing if value and text are the same\n if (isEqual(value, this.state.value) && isEqual(text, this.state.text)) {\n return;\n }\n\n const stateChangeAction = () => this.setStateHelper({ value, text, loading: false });\n\n /**\n * Because variable state changes can cause a whole chain of downstream state changes in other variables (that also cause URL update)\n * Only some variable changes should add new history items to make sure the browser history contains valid URL states to go back to.\n */\n if (isUserAction) {\n this._urlSync.performBrowserHistoryAction?.(stateChangeAction);\n } else {\n stateChangeAction();\n }\n\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n private findLabelTextForValue(value: VariableValueSingle): VariableValueSingle {\n if (value === ALL_VARIABLE_VALUE) {\n return ALL_VARIABLE_TEXT;\n }\n\n const option = this.state.options.find((x) => x.value === value);\n if (option) {\n return option.label;\n }\n\n const optionByLabel = this.state.options.find((x) => x.label === value);\n if (optionByLabel) {\n return optionByLabel.label;\n }\n\n return value;\n }\n\n /**\n * This helper function is to counter the contravariance of setState\n */\n private setStateHelper(state: Partial<MultiValueVariableState>) {\n setBaseClassState<MultiValueVariableState>(this, state);\n }\n\n public getOptionsForSelect(includeCurrentValue = true): VariableValueOption[] {\n let options = this.state.options;\n\n if (this.state.includeAll) {\n options = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...options];\n }\n\n if (includeCurrentValue && !Array.isArray(this.state.value)) {\n const current = options.find((x) => x.value === this.state.value);\n if (!current) {\n options = [{ value: this.state.value, label: String(this.state.text) }, ...options];\n }\n }\n\n return options;\n }\n\n public refreshOptions() {\n this.getValueOptions({}).subscribe((options) => {\n this.updateValueGivenNewOptions(options);\n });\n }\n\n /**\n * Can be used by subclasses to do custom handling of option search based on search input\n */\n public onSearchChange?(searchFilter: string): void;\n}\n\n/**\n * Looks for matching option, first by value but as a fallback by text (label).\n */\nfunction findOptionMatchingCurrent(\n currentValue: VariableValue,\n currentText: VariableValue,\n options: VariableValueOption[]\n) {\n let textMatch: VariableValueOption | undefined;\n\n for (const item of options) {\n if (item.value === currentValue) {\n return item;\n }\n\n // No early return here as want to continue to look a value match\n if (item.label === currentText) {\n textMatch = item;\n }\n }\n\n return textMatch;\n}\n\nexport class MultiValueUrlSyncHandler<TState extends MultiValueVariableState = MultiValueVariableState>\n implements SceneObjectUrlSyncHandler\n{\n protected _nextChangeShouldAddHistoryStep = false;\n\n public constructor(protected _sceneObject: MultiValueVariable<TState>) {}\n\n protected getKey(): string {\n return `var-${this._sceneObject.state.name}`;\n }\n\n public getKeys(): string[] {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n\n let urlValue: string | string[] | null = null;\n let value = this._sceneObject.state.value;\n\n if (Array.isArray(value)) {\n urlValue = value.map(String);\n } else if ((this, this._sceneObject.state.isMulti)) {\n // If we are inMulti mode we must return an array here as otherwise UrlSyncManager will not pass all values (in an array) in updateFromUrl\n urlValue = [String(value)];\n } else {\n urlValue = String(value);\n }\n\n return { [this.getKey()]: urlValue };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n let urlValue = values[this.getKey()];\n\n if (urlValue != null) {\n // This is to be backwards compatible with old url all value\n if (this._sceneObject.state.includeAll) {\n urlValue = handleLegacyUrlAllValue(urlValue);\n }\n\n // For edge cases where data links include variables with custom all value.\n // We want the variable to maintain the \"All\" meta value not the actual custom vall value. (Fixes https://github.com/grafana/grafana/issues/28635)\n if (this._sceneObject.state.allValue && this._sceneObject.state.allValue === urlValue) {\n urlValue = ALL_VARIABLE_VALUE;\n }\n\n /**\n * Initial URL Sync happens before scene objects are activated.\n * We need to skip validation in this case to make sure values set via URL are maintained.\n */\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n\n this._sceneObject.changeValueTo(urlValue);\n }\n }\n\n public performBrowserHistoryAction(callback: () => void) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n\n public shouldCreateHistoryStep(values: SceneObjectUrlValues): boolean {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\n\nfunction handleLegacyUrlAllValue(value: string | string[]) {\n if (isArray(value) && value[0] === ALL_VARIABLE_TEXT) {\n return [ALL_VARIABLE_VALUE];\n } else if (value === ALL_VARIABLE_TEXT) {\n return ALL_VARIABLE_VALUE;\n }\n\n return value;\n}\n\n/**\n * Variable getValue can return this to skip any subsequent formatting.\n * This is useful for custom all values that should not be escaped/formatted.\n */\nexport class CustomAllValue implements CustomVariableValue {\n public constructor(private _value: string, private _variable: SceneVariable) {}\n\n public formatter(formatNameOrFn?: string | VariableCustomFormatterFn): string {\n if (formatNameOrFn === VariableFormatID.Text) {\n return ALL_VARIABLE_TEXT;\n }\n\n if (formatNameOrFn === VariableFormatID.PercentEncode) {\n return formatRegistry.get(VariableFormatID.PercentEncode).formatter(this._value, [], this._variable);\n }\n\n if (formatNameOrFn === VariableFormatID.QueryParam) {\n return formatRegistry.get(VariableFormatID.QueryParam).formatter(ALL_VARIABLE_TEXT, [], this._variable);\n }\n\n return this._value;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiValueVariable.js","sources":["../../../../src/variables/variants/MultiValueVariable.ts"],"sourcesContent":["import { isArray, isEqual } from 'lodash';\nimport { map, Observable } from 'rxjs';\n\nimport { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE } from '../constants';\n\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneObjectUrlSyncHandler, SceneObjectUrlValues } from '../../core/types';\nimport {\n SceneVariable,\n SceneVariableValueChangedEvent,\n SceneVariableState,\n ValidateAndUpdateResult,\n VariableValue,\n VariableValueOption,\n VariableValueSingle,\n CustomVariableValue,\n VariableCustomFormatterFn,\n} from '../types';\nimport { formatRegistry } from '../interpolation/formatRegistry';\nimport { VariableFormatID } from '@grafana/schema';\nimport { SceneVariableSet } from '../sets/SceneVariableSet';\nimport { setBaseClassState } from '../../utils/utils';\n\nexport interface MultiValueVariableState extends SceneVariableState {\n value: VariableValue; // old current.text\n text: VariableValue; // old current.value\n options: VariableValueOption[];\n allowCustomValue?: boolean;\n isMulti?: boolean;\n includeAll?: boolean;\n defaultToAll?: boolean;\n allValue?: string;\n placeholder?: string;\n /**\n * For multi value variables, this option controls how many values to show before they are collapsed into +N.\n * Defaults to 5\n */\n maxVisibleValues?: number;\n noValueOnClear?: boolean;\n isReadOnly?: boolean;\n}\n\nexport interface VariableGetOptionsArgs {\n searchFilter?: string;\n}\n\nexport abstract class MultiValueVariable<TState extends MultiValueVariableState = MultiValueVariableState>\n extends SceneObjectBase<TState>\n implements SceneVariable<TState>\n{\n protected _urlSync: SceneObjectUrlSyncHandler = new MultiValueUrlSyncHandler(this);\n\n /**\n * Set to true to skip next value validation to maintain the current value even it it's not among the options (ie valid values)\n */\n public skipNextValidation?: boolean;\n\n /**\n * The source of value options.\n */\n public abstract getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;\n\n /**\n * This function is called on when SceneVariableSet is activated or when a dependency changes.\n */\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this.updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n\n public onCancel(): void {\n this.setStateHelper({ loading: false });\n const sceneVarSet = this.parent as SceneVariableSet;\n sceneVarSet?.cancel(this);\n }\n\n /**\n * Check if current value is valid given new options. If not update the value.\n */\n private updateValueGivenNewOptions(options: VariableValueOption[]) {\n // Remember current value and text\n const { value: currentValue, text: currentText, options: oldOptions } = this.state;\n\n const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);\n\n this.interceptStateUpdateAfterValidation(stateUpdate);\n\n // Perform state change\n this.setStateHelper(stateUpdate);\n\n // Publish value changed event only if value changed\n if (\n stateUpdate.value !== currentValue ||\n stateUpdate.text !== currentText ||\n (this.hasAllValue() && !isEqual(options, oldOptions))\n ) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n }\n\n private getStateUpdateGivenNewOptions(\n options: VariableValueOption[],\n currentValue: VariableValue,\n currentText: VariableValue\n ): Partial<MultiValueVariableState> {\n const stateUpdate: Partial<MultiValueVariableState> = {\n options,\n loading: false,\n value: currentValue,\n text: currentText,\n };\n\n if (options.length === 0) {\n if (this.state.defaultToAll || this.state.includeAll) {\n stateUpdate.value = ALL_VARIABLE_VALUE;\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else if (this.state.isMulti) {\n stateUpdate.value = [];\n stateUpdate.text = [];\n } else {\n stateUpdate.value = '';\n stateUpdate.text = '';\n }\n\n return stateUpdate;\n }\n\n if (this.hasAllValue()) {\n if (this.state.includeAll) {\n // Sometimes the text representation is also set the ALL_VARIABLE_VALUE, this fixes that\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else {\n stateUpdate.value = options[0].value;\n stateUpdate.text = options[0].label;\n // If multi switch to arrays\n if (this.state.isMulti) {\n stateUpdate.value = [stateUpdate.value];\n stateUpdate.text = [stateUpdate.text];\n }\n }\n return stateUpdate;\n }\n\n if (this.state.isMulti) {\n // If we are a multi valued variable validate the current values are among the options\n const currentValues = Array.isArray(currentValue) ? currentValue : [currentValue];\n const validValues = currentValues.filter((v) => options.find((o) => o.value === v));\n const validTexts = validValues.map((v) => options.find((o) => o.value === v)!.label);\n\n // If no valid values pick the first option\n if (validValues.length === 0) {\n const defaultState = this.getDefaultMultiState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n } else {\n // We have valid values, if it's different from current valid values update current values\n if (!isEqual(validValues, currentValue)) {\n stateUpdate.value = validValues;\n }\n if (!isEqual(validTexts, currentText)) {\n stateUpdate.text = validTexts;\n }\n }\n return stateUpdate;\n }\n\n // Single value variable validation\n\n // Try find by value then text\n let matchingOption = findOptionMatchingCurrent(currentValue, currentText, options);\n if (matchingOption) {\n // When updating the initial state from URL the text property is set the same as value\n // Here we can correct the text value state\n stateUpdate.text = matchingOption.label;\n stateUpdate.value = matchingOption.value;\n } else {\n // Current value is found in options\n const defaultState = this.getDefaultSingleState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n }\n\n return stateUpdate;\n }\n\n /**\n * Values set by initial URL sync needs to survive the next validation and update.\n * This function can intercept and make sure those values are preserved.\n */\n protected interceptStateUpdateAfterValidation(stateUpdate: Partial<MultiValueVariableState>): void {\n // If the validation wants to fix the all value (All ==> $__all) then we should let that pass\n const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;\n\n if (\n this.skipNextValidation &&\n stateUpdate.value !== this.state.value &&\n stateUpdate.text !== this.state.text &&\n !isAllValueFix\n ) {\n stateUpdate.value = this.state.value;\n stateUpdate.text = this.state.text;\n }\n\n this.skipNextValidation = false;\n }\n\n public getValue(): VariableValue {\n if (this.hasAllValue()) {\n if (this.state.allValue) {\n return new CustomAllValue(this.state.allValue, this);\n }\n\n return this.state.options.map((x) => x.value);\n }\n\n return this.state.value;\n }\n\n public getValueText(): string {\n if (this.hasAllValue()) {\n return ALL_VARIABLE_TEXT;\n }\n\n if (Array.isArray(this.state.text)) {\n return this.state.text.join(' + ');\n }\n\n return String(this.state.text);\n }\n\n public hasAllValue() {\n const value = this.state.value;\n return value === ALL_VARIABLE_VALUE || (Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE);\n }\n\n public getDefaultMultiState(options: VariableValueOption[]) {\n if (this.state.defaultToAll) {\n return { value: [ALL_VARIABLE_VALUE], text: [ALL_VARIABLE_TEXT] };\n } else if (options.length > 0) {\n return { value: [options[0].value], text: [options[0].label] };\n } else {\n return { value: [], text: [] };\n }\n }\n\n protected getDefaultSingleState(options: VariableValueOption[]) {\n if (this.state.defaultToAll) {\n return { value: ALL_VARIABLE_VALUE, text: ALL_VARIABLE_TEXT };\n } else if (options.length > 0) {\n return { value: options[0].value, text: options[0].label };\n } else {\n return { value: '', text: '' };\n }\n }\n\n /**\n * Change the value and publish SceneVariableValueChangedEvent event.\n */\n public changeValueTo(value: VariableValue, text?: VariableValue, isUserAction = false) {\n // Ignore if there is no change\n if (value === this.state.value && text === this.state.text) {\n return;\n }\n\n if (!text) {\n if (Array.isArray(value)) {\n text = value.map((v) => this.findLabelTextForValue(v));\n } else {\n text = this.findLabelTextForValue(value);\n }\n }\n\n if (Array.isArray(value)) {\n // If we are a multi valued variable is cleared (empty array) we need to set the default empty state\n if (value.length === 0) {\n const state = this.getDefaultMultiState(this.state.options);\n value = state.value;\n text = state.text;\n }\n\n // If last value is the All value then replace all with it\n if (value[value.length - 1] === ALL_VARIABLE_VALUE) {\n value = [ALL_VARIABLE_VALUE];\n text = [ALL_VARIABLE_TEXT];\n }\n // If the first value is the ALL value and we have other values, then remove the All value\n else if (value[0] === ALL_VARIABLE_VALUE && value.length > 1) {\n value.shift();\n if (Array.isArray(text)) {\n text.shift();\n }\n }\n }\n\n // Do nothing if value and text are the same\n if (isEqual(value, this.state.value) && isEqual(text, this.state.text)) {\n return;\n }\n\n const stateChangeAction = () => this.setStateHelper({ value, text, loading: false });\n\n /**\n * Because variable state changes can cause a whole chain of downstream state changes in other variables (that also cause URL update)\n * Only some variable changes should add new history items to make sure the browser history contains valid URL states to go back to.\n */\n if (isUserAction) {\n this._urlSync.performBrowserHistoryAction?.(stateChangeAction);\n } else {\n stateChangeAction();\n }\n\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n private findLabelTextForValue(value: VariableValueSingle): VariableValueSingle {\n if (value === ALL_VARIABLE_VALUE) {\n return ALL_VARIABLE_TEXT;\n }\n\n const option = this.state.options.find((x) => x.value === value);\n if (option) {\n return option.label;\n }\n\n const optionByLabel = this.state.options.find((x) => x.label === value);\n if (optionByLabel) {\n return optionByLabel.label;\n }\n\n return value;\n }\n\n /**\n * This helper function is to counter the contravariance of setState\n */\n private setStateHelper(state: Partial<MultiValueVariableState>) {\n setBaseClassState<MultiValueVariableState>(this, state);\n }\n\n public getOptionsForSelect(includeCurrentValue = true): VariableValueOption[] {\n let options = this.state.options;\n\n if (this.state.includeAll) {\n options = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...options];\n }\n\n if (includeCurrentValue && !Array.isArray(this.state.value)) {\n const current = options.find((x) => x.value === this.state.value);\n if (!current) {\n options = [{ value: this.state.value, label: String(this.state.text) }, ...options];\n }\n }\n\n return options;\n }\n\n public refreshOptions() {\n this.getValueOptions({}).subscribe((options) => {\n this.updateValueGivenNewOptions(options);\n });\n }\n\n /**\n * Can be used by subclasses to do custom handling of option search based on search input\n */\n public onSearchChange?(searchFilter: string): void;\n}\n\n/**\n * Looks for matching option, first by value but as a fallback by text (label).\n */\nfunction findOptionMatchingCurrent(\n currentValue: VariableValue,\n currentText: VariableValue,\n options: VariableValueOption[]\n) {\n let textMatch: VariableValueOption | undefined;\n\n for (const item of options) {\n if (item.value === currentValue) {\n return item;\n }\n\n // No early return here as want to continue to look a value match\n if (item.label === currentText) {\n textMatch = item;\n }\n }\n\n return textMatch;\n}\n\nexport class MultiValueUrlSyncHandler<TState extends MultiValueVariableState = MultiValueVariableState>\n implements SceneObjectUrlSyncHandler\n{\n protected _nextChangeShouldAddHistoryStep = false;\n\n public constructor(protected _sceneObject: MultiValueVariable<TState>) {}\n\n protected getKey(): string {\n return `var-${this._sceneObject.state.name}`;\n }\n\n public getKeys(): string[] {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n\n let urlValue: string | string[] | null = null;\n let value = this._sceneObject.state.value;\n\n if (Array.isArray(value)) {\n urlValue = value.map(String);\n } else if ((this, this._sceneObject.state.isMulti)) {\n // If we are inMulti mode we must return an array here as otherwise UrlSyncManager will not pass all values (in an array) in updateFromUrl\n urlValue = [String(value)];\n } else {\n urlValue = String(value);\n }\n\n return { [this.getKey()]: urlValue };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n let urlValue = values[this.getKey()];\n\n if (urlValue != null) {\n // This is to be backwards compatible with old url all value\n if (this._sceneObject.state.includeAll) {\n urlValue = handleLegacyUrlAllValue(urlValue);\n }\n\n // For edge cases where data links include variables with custom all value.\n // We want the variable to maintain the \"All\" meta value not the actual custom vall value. (Fixes https://github.com/grafana/grafana/issues/28635)\n if (this._sceneObject.state.allValue && this._sceneObject.state.allValue === urlValue) {\n urlValue = ALL_VARIABLE_VALUE;\n }\n\n /**\n * Initial URL Sync happens before scene objects are activated.\n * We need to skip validation in this case to make sure values set via URL are maintained.\n */\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n\n this._sceneObject.changeValueTo(urlValue);\n }\n }\n\n public performBrowserHistoryAction(callback: () => void) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n\n public shouldCreateHistoryStep(values: SceneObjectUrlValues): boolean {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\n\nfunction handleLegacyUrlAllValue(value: string | string[]) {\n if (isArray(value) && value[0] === ALL_VARIABLE_TEXT) {\n return [ALL_VARIABLE_VALUE];\n } else if (value === ALL_VARIABLE_TEXT) {\n return ALL_VARIABLE_VALUE;\n }\n\n return value;\n}\n\n/**\n * Variable getValue can return this to skip any subsequent formatting.\n * This is useful for custom all values that should not be escaped/formatted.\n */\nexport class CustomAllValue implements CustomVariableValue {\n public constructor(private _value: string, private _variable: SceneVariable) {}\n\n public formatter(formatNameOrFn?: string | VariableCustomFormatterFn): string {\n if (formatNameOrFn === VariableFormatID.Text) {\n return ALL_VARIABLE_TEXT;\n }\n\n if (formatNameOrFn === VariableFormatID.PercentEncode) {\n return formatRegistry.get(VariableFormatID.PercentEncode).formatter(this._value, [], this._variable);\n }\n\n if (formatNameOrFn === VariableFormatID.QueryParam) {\n return formatRegistry.get(VariableFormatID.QueryParam).formatter(ALL_VARIABLE_TEXT, [], this._variable);\n }\n\n return this._value;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -8,25 +8,9 @@ import { VariableRefresh } from '@grafana/data';
|
|
|
8
8
|
import { getClosest } from '../../core/sceneGraph/utils.js';
|
|
9
9
|
import { SceneVariableSet } from '../sets/SceneVariableSet.js';
|
|
10
10
|
|
|
11
|
-
var __defProp = Object.defineProperty;
|
|
12
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
15
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
|
-
var __spreadValues = (a, b) => {
|
|
17
|
-
for (var prop in b || (b = {}))
|
|
18
|
-
if (__hasOwnProp.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
if (__getOwnPropSymbols)
|
|
21
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
22
|
-
if (__propIsEnum.call(b, prop))
|
|
23
|
-
__defNormalProp(a, prop, b[prop]);
|
|
24
|
-
}
|
|
25
|
-
return a;
|
|
26
|
-
};
|
|
27
11
|
class TestVariable extends MultiValueVariable {
|
|
28
12
|
constructor(initialState, isLazy = false) {
|
|
29
|
-
super(
|
|
13
|
+
super({
|
|
30
14
|
type: "custom",
|
|
31
15
|
name: "Test",
|
|
32
16
|
value: "Value",
|
|
@@ -34,8 +18,9 @@ class TestVariable extends MultiValueVariable {
|
|
|
34
18
|
query: "Query",
|
|
35
19
|
options: [],
|
|
36
20
|
refresh: VariableRefresh.onDashboardLoad,
|
|
37
|
-
updateOptions: true
|
|
38
|
-
|
|
21
|
+
updateOptions: true,
|
|
22
|
+
...initialState
|
|
23
|
+
});
|
|
39
24
|
this.completeUpdate = new Subject();
|
|
40
25
|
this.isGettingValues = true;
|
|
41
26
|
this.getValueOptionsCount = 0;
|
|
@@ -105,6 +90,7 @@ class TestVariable extends MultiValueVariable {
|
|
|
105
90
|
}
|
|
106
91
|
return queryMetricTree(interpolatedQuery).map((x) => ({ label: x.name, value: x.name }));
|
|
107
92
|
}
|
|
93
|
+
/** Useful from tests */
|
|
108
94
|
signalUpdateCompleted() {
|
|
109
95
|
this.completeUpdate.next(1);
|
|
110
96
|
}
|