@grafana/scenes 6.49.0 → 6.50.0--canary.1315.20127970450.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/node_modules/@babel/runtime/helpers/esm/defineProperty.js +13 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +26 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +10 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +15 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +10 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +12 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/esm/node_modules/react-select/dist/index-641ee5b8.esm.js +86 -0
- package/dist/esm/node_modules/react-select/dist/index-641ee5b8.esm.js.map +1 -0
- package/dist/esm/packages/scenes/src/behaviors/ActWhenVariableChanged.js.map +1 -0
- package/dist/esm/packages/scenes/src/behaviors/CursorSync.js.map +1 -0
- package/dist/esm/packages/scenes/src/behaviors/LiveNowTimer.js.map +1 -0
- package/dist/esm/packages/scenes/src/behaviors/SceneInteractionTracker.js.map +1 -0
- package/dist/esm/packages/scenes/src/behaviors/SceneQueryController.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/EmbeddedScene.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/NestedScene.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneApp/SceneApp.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneApp/SceneAppPage.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneApp/SceneAppPageView.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneApp/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneByFrameRepeater.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneByVariableRepeater.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneCanvasText.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneControlsSpacer.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneDebugger/DebugDetails.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneDebugger/DebugTreeNode.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneDebugger/SceneDebugger.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneReactObject.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneRefreshPicker.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneTimePicker.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneTimeRangeCompare.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/SceneToolbarButton.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/VizPanel.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelExploreButton.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelMenu.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelRenderer.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/VizPanelSeriesLimit.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/colorSeriesConfigFactory.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/registerRuntimePanelPlugin.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/VizPanel/seriesVisibilityConfigFactory.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/CSSGrid/SceneCSSGridLayout.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/LazyLoader.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/SceneFlexLayout.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridItem.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridLayout.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridLayoutRenderer.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/grid/SceneGridRow.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/grid/constants.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/grid/types.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/grid/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/split/SplitLayout.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/split/SplitLayoutRenderer.js.map +1 -0
- package/dist/esm/packages/scenes/src/components/layout/split/Splitter.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/FieldConfigBuilder.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/FieldConfigBuilders.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/FieldConfigOverridesBuilder.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/PanelOptionsBuilder.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/PanelOptionsBuilders.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/StandardFieldConfigBuilders.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/VizConfigBuilder.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/VizConfigBuilders.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/VizPanelBuilder.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/PanelBuilders/index.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/SceneComponentWrapper.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/SceneDataNode.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/SceneObjectBase.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/SceneObjectRef.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/SceneTimeRange.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/SceneTimeRangeTransformerBase.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/SceneTimeZoneOverride.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/events.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/sceneGraph/cloneSceneObject.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/sceneGraph/getInteractionTracker.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/sceneGraph/getQueryController.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/sceneGraph/getTimeRange.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/sceneGraph/index.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/sceneGraph/sceneGraph.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/sceneGraph/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/core/types.js.map +1 -0
- package/dist/esm/packages/scenes/src/index.js.map +1 -0
- package/dist/esm/packages/scenes/src/performance/LongFrameDetector.js.map +1 -0
- package/dist/esm/packages/scenes/src/performance/PanelProfilingManager.js.map +1 -0
- package/dist/esm/packages/scenes/src/performance/ScenePerformanceTracker.js.map +1 -0
- package/dist/esm/packages/scenes/src/performance/SceneRenderProfiler.js.map +1 -0
- package/dist/esm/packages/scenes/src/performance/VizPanelRenderProfiler.js.map +1 -0
- package/dist/esm/packages/scenes/src/performance/interactionConstants.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/DataLayersMerger.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/DataProviderProxy.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/ExtraQueryProvider.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/RuntimeDataSource.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/SceneDataLayerSet.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/SceneDataTransformer.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/SceneQueryRunner.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/extraQueryProcessingOperator.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/getEnrichedDataRequest.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/layers/SceneDataLayerBase.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/layers/SceneDataLayerControls.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/layers/annotations/AnnotationsDataLayer.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/layers/annotations/filterAnnotations.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/layers/annotations/standardAnnotationQuery.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/layers/annotations/standardAnnotationsSupport.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/layers/annotations/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/querying/registerQueryWithController.js.map +1 -0
- package/dist/esm/packages/scenes/src/services/SceneObjectUrlSyncConfig.js.map +1 -0
- package/dist/esm/packages/scenes/src/services/UniqueUrlKeyMapper.js.map +1 -0
- package/dist/esm/packages/scenes/src/services/UrlSyncContextProvider.js.map +1 -0
- package/dist/esm/packages/scenes/src/services/UrlSyncManager.js.map +1 -0
- package/dist/esm/packages/scenes/src/services/useUrlSync.js.map +1 -0
- package/dist/esm/packages/scenes/src/services/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/ControlsLabel.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/LoadingIndicator.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/SafeSerializableSceneObject.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/compatibility/setWindowGrafanaSceneContext.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/date.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/evaluateTimeRange.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/explore.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/findPanelProfiler.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/getCompareSeriesRefId.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/getDataSource.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/getMessageFromError.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/loadResources.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/metricTree.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/parseUrlParam.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/pathId.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/wrapInSafeSerializableSceneObject.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/writePerformanceLog.js.map +1 -0
- package/dist/esm/packages/scenes/src/utils/writeSceneLog.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/DrilldownDependenciesManager.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/VariableDependencyConfig.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/VariableValueRecorder.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFilterBuilder.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFilterRenderer.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/controller/AdHocFiltersVariableController.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/getAdHocFiltersFromScopes.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/getAdhocOptionSearcher.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/adhoc/patchGetAdhocFilters.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/components/VariableValueControl.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/components/VariableValueInput.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/components/VariableValueSelect.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/components/VariableValueSelectors.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/components/getOptionSearcher.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/constants.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/filter.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/getEnrichedFiltersRequest.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/groupby/DefaultGroupByCustomIndicatorContainer.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/groupby/GroupByValueContainer.js.map +1 -0
- package/dist/esm/{variables → packages/scenes/src/variables}/groupby/GroupByVariable.js +7 -0
- package/dist/esm/packages/scenes/src/variables/groupby/GroupByVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/groupby/GroupByVariableUrlSyncHandler.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/groupby/findActiveGroupByVariablesByUid.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/interpolation/ScopedVarsVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/interpolation/defaults.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/interpolation/fieldAccessorCache.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/interpolation/formatRegistry.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/interpolation/sceneInterpolator.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/lookupVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/AllVariablesMacro.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/contextMacros.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/dataMacros.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/index.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/templateProxies.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/timeMacros.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/types.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/macros/urlMacros.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/sets/SceneVariableSet.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/types.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/utils.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/ConstantVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/CustomVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/DataSourceVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/IntervalVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/LocalValueVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/MultiValueVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/ScopesVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/SwitchVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/TestVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/TextBoxVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/guards.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/query/QueryVariable.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/query/createQueryVariableRunner.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/query/guards.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/query/toMetricFindValues.js.map +1 -0
- package/dist/esm/packages/scenes/src/variables/variants/query/utils.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +171 -11
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/behaviors/ActWhenVariableChanged.js.map +0 -1
- package/dist/esm/behaviors/CursorSync.js.map +0 -1
- package/dist/esm/behaviors/LiveNowTimer.js.map +0 -1
- package/dist/esm/behaviors/SceneInteractionTracker.js.map +0 -1
- package/dist/esm/behaviors/SceneQueryController.js.map +0 -1
- package/dist/esm/components/EmbeddedScene.js.map +0 -1
- package/dist/esm/components/NestedScene.js.map +0 -1
- package/dist/esm/components/SceneApp/SceneApp.js.map +0 -1
- package/dist/esm/components/SceneApp/SceneAppPage.js.map +0 -1
- package/dist/esm/components/SceneApp/SceneAppPageView.js.map +0 -1
- package/dist/esm/components/SceneApp/utils.js.map +0 -1
- package/dist/esm/components/SceneByFrameRepeater.js.map +0 -1
- package/dist/esm/components/SceneByVariableRepeater.js.map +0 -1
- package/dist/esm/components/SceneCanvasText.js.map +0 -1
- package/dist/esm/components/SceneControlsSpacer.js.map +0 -1
- package/dist/esm/components/SceneDebugger/DebugDetails.js.map +0 -1
- package/dist/esm/components/SceneDebugger/DebugTreeNode.js.map +0 -1
- package/dist/esm/components/SceneDebugger/SceneDebugger.js.map +0 -1
- package/dist/esm/components/SceneReactObject.js.map +0 -1
- package/dist/esm/components/SceneRefreshPicker.js.map +0 -1
- package/dist/esm/components/SceneTimePicker.js.map +0 -1
- package/dist/esm/components/SceneTimeRangeCompare.js.map +0 -1
- package/dist/esm/components/SceneToolbarButton.js.map +0 -1
- package/dist/esm/components/VizPanel/VizPanel.js.map +0 -1
- package/dist/esm/components/VizPanel/VizPanelExploreButton.js.map +0 -1
- package/dist/esm/components/VizPanel/VizPanelMenu.js.map +0 -1
- package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +0 -1
- package/dist/esm/components/VizPanel/VizPanelSeriesLimit.js.map +0 -1
- package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js.map +0 -1
- package/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js.map +0 -1
- package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js.map +0 -1
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js.map +0 -1
- package/dist/esm/components/layout/LazyLoader.js.map +0 -1
- package/dist/esm/components/layout/SceneFlexLayout.js.map +0 -1
- package/dist/esm/components/layout/grid/SceneGridItem.js.map +0 -1
- package/dist/esm/components/layout/grid/SceneGridLayout.js.map +0 -1
- package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js.map +0 -1
- package/dist/esm/components/layout/grid/SceneGridRow.js.map +0 -1
- package/dist/esm/components/layout/grid/constants.js.map +0 -1
- package/dist/esm/components/layout/grid/types.js.map +0 -1
- package/dist/esm/components/layout/grid/utils.js.map +0 -1
- package/dist/esm/components/layout/split/SplitLayout.js.map +0 -1
- package/dist/esm/components/layout/split/SplitLayoutRenderer.js.map +0 -1
- package/dist/esm/components/layout/split/Splitter.js.map +0 -1
- package/dist/esm/core/PanelBuilders/FieldConfigBuilder.js.map +0 -1
- package/dist/esm/core/PanelBuilders/FieldConfigBuilders.js.map +0 -1
- package/dist/esm/core/PanelBuilders/FieldConfigOverridesBuilder.js.map +0 -1
- package/dist/esm/core/PanelBuilders/PanelOptionsBuilder.js.map +0 -1
- package/dist/esm/core/PanelBuilders/PanelOptionsBuilders.js.map +0 -1
- package/dist/esm/core/PanelBuilders/StandardFieldConfigBuilders.js.map +0 -1
- package/dist/esm/core/PanelBuilders/VizConfigBuilder.js.map +0 -1
- package/dist/esm/core/PanelBuilders/VizConfigBuilders.js.map +0 -1
- package/dist/esm/core/PanelBuilders/VizPanelBuilder.js.map +0 -1
- package/dist/esm/core/PanelBuilders/index.js.map +0 -1
- package/dist/esm/core/SceneComponentWrapper.js.map +0 -1
- package/dist/esm/core/SceneDataNode.js.map +0 -1
- package/dist/esm/core/SceneObjectBase.js.map +0 -1
- package/dist/esm/core/SceneObjectRef.js.map +0 -1
- package/dist/esm/core/SceneTimeRange.js.map +0 -1
- package/dist/esm/core/SceneTimeRangeTransformerBase.js.map +0 -1
- package/dist/esm/core/SceneTimeZoneOverride.js.map +0 -1
- package/dist/esm/core/events.js.map +0 -1
- package/dist/esm/core/sceneGraph/cloneSceneObject.js.map +0 -1
- package/dist/esm/core/sceneGraph/getInteractionTracker.js.map +0 -1
- package/dist/esm/core/sceneGraph/getQueryController.js.map +0 -1
- package/dist/esm/core/sceneGraph/getTimeRange.js.map +0 -1
- package/dist/esm/core/sceneGraph/index.js.map +0 -1
- package/dist/esm/core/sceneGraph/sceneGraph.js.map +0 -1
- package/dist/esm/core/sceneGraph/utils.js.map +0 -1
- package/dist/esm/core/types.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/performance/LongFrameDetector.js.map +0 -1
- package/dist/esm/performance/PanelProfilingManager.js.map +0 -1
- package/dist/esm/performance/ScenePerformanceTracker.js.map +0 -1
- package/dist/esm/performance/SceneRenderProfiler.js.map +0 -1
- package/dist/esm/performance/VizPanelRenderProfiler.js.map +0 -1
- package/dist/esm/performance/interactionConstants.js.map +0 -1
- package/dist/esm/querying/DataLayersMerger.js.map +0 -1
- package/dist/esm/querying/DataProviderProxy.js.map +0 -1
- package/dist/esm/querying/ExtraQueryProvider.js.map +0 -1
- package/dist/esm/querying/RuntimeDataSource.js.map +0 -1
- package/dist/esm/querying/SceneDataLayerSet.js.map +0 -1
- package/dist/esm/querying/SceneDataTransformer.js.map +0 -1
- package/dist/esm/querying/SceneQueryRunner.js.map +0 -1
- package/dist/esm/querying/extraQueryProcessingOperator.js.map +0 -1
- package/dist/esm/querying/getEnrichedDataRequest.js.map +0 -1
- package/dist/esm/querying/layers/SceneDataLayerBase.js.map +0 -1
- package/dist/esm/querying/layers/SceneDataLayerControls.js.map +0 -1
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js.map +0 -1
- package/dist/esm/querying/layers/annotations/filterAnnotations.js.map +0 -1
- package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js.map +0 -1
- package/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js.map +0 -1
- package/dist/esm/querying/layers/annotations/utils.js.map +0 -1
- package/dist/esm/querying/registerQueryWithController.js.map +0 -1
- package/dist/esm/services/SceneObjectUrlSyncConfig.js.map +0 -1
- package/dist/esm/services/UniqueUrlKeyMapper.js.map +0 -1
- package/dist/esm/services/UrlSyncContextProvider.js.map +0 -1
- package/dist/esm/services/UrlSyncManager.js.map +0 -1
- package/dist/esm/services/useUrlSync.js.map +0 -1
- package/dist/esm/services/utils.js.map +0 -1
- package/dist/esm/utils/ControlsLabel.js.map +0 -1
- package/dist/esm/utils/LoadingIndicator.js.map +0 -1
- package/dist/esm/utils/SafeSerializableSceneObject.js.map +0 -1
- package/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js.map +0 -1
- package/dist/esm/utils/date.js.map +0 -1
- package/dist/esm/utils/evaluateTimeRange.js.map +0 -1
- package/dist/esm/utils/explore.js.map +0 -1
- package/dist/esm/utils/findPanelProfiler.js.map +0 -1
- package/dist/esm/utils/getCompareSeriesRefId.js.map +0 -1
- package/dist/esm/utils/getDataSource.js.map +0 -1
- package/dist/esm/utils/getMessageFromError.js.map +0 -1
- package/dist/esm/utils/loadResources.js.map +0 -1
- package/dist/esm/utils/metricTree.js.map +0 -1
- package/dist/esm/utils/parseUrlParam.js.map +0 -1
- package/dist/esm/utils/pathId.js.map +0 -1
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/utils/wrapInSafeSerializableSceneObject.js.map +0 -1
- package/dist/esm/utils/writePerformanceLog.js.map +0 -1
- package/dist/esm/utils/writeSceneLog.js.map +0 -1
- package/dist/esm/variables/DrilldownDependenciesManager.js.map +0 -1
- package/dist/esm/variables/VariableDependencyConfig.js.map +0 -1
- package/dist/esm/variables/VariableValueRecorder.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFilterBuilder.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFilterRenderer.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +0 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +0 -1
- package/dist/esm/variables/adhoc/controller/AdHocFiltersVariableController.js.map +0 -1
- package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js.map +0 -1
- package/dist/esm/variables/adhoc/getAdhocOptionSearcher.js.map +0 -1
- package/dist/esm/variables/adhoc/patchGetAdhocFilters.js.map +0 -1
- package/dist/esm/variables/components/VariableValueControl.js.map +0 -1
- package/dist/esm/variables/components/VariableValueInput.js.map +0 -1
- package/dist/esm/variables/components/VariableValueSelect.js.map +0 -1
- package/dist/esm/variables/components/VariableValueSelectors.js.map +0 -1
- package/dist/esm/variables/components/getOptionSearcher.js.map +0 -1
- package/dist/esm/variables/constants.js.map +0 -1
- package/dist/esm/variables/filter.js.map +0 -1
- package/dist/esm/variables/getEnrichedFiltersRequest.js.map +0 -1
- package/dist/esm/variables/groupby/DefaultGroupByCustomIndicatorContainer.js.map +0 -1
- package/dist/esm/variables/groupby/GroupByValueContainer.js.map +0 -1
- package/dist/esm/variables/groupby/GroupByVariable.js.map +0 -1
- package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js.map +0 -1
- package/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js.map +0 -1
- package/dist/esm/variables/interpolation/ScopedVarsVariable.js.map +0 -1
- package/dist/esm/variables/interpolation/defaults.js.map +0 -1
- package/dist/esm/variables/interpolation/fieldAccessorCache.js.map +0 -1
- package/dist/esm/variables/interpolation/formatRegistry.js.map +0 -1
- package/dist/esm/variables/interpolation/sceneInterpolator.js.map +0 -1
- package/dist/esm/variables/lookupVariable.js.map +0 -1
- package/dist/esm/variables/macros/AllVariablesMacro.js.map +0 -1
- package/dist/esm/variables/macros/contextMacros.js.map +0 -1
- package/dist/esm/variables/macros/dataMacros.js.map +0 -1
- package/dist/esm/variables/macros/index.js.map +0 -1
- package/dist/esm/variables/macros/templateProxies.js.map +0 -1
- package/dist/esm/variables/macros/timeMacros.js.map +0 -1
- package/dist/esm/variables/macros/types.js.map +0 -1
- package/dist/esm/variables/macros/urlMacros.js.map +0 -1
- package/dist/esm/variables/sets/SceneVariableSet.js.map +0 -1
- package/dist/esm/variables/types.js.map +0 -1
- package/dist/esm/variables/utils.js.map +0 -1
- package/dist/esm/variables/variants/ConstantVariable.js.map +0 -1
- package/dist/esm/variables/variants/CustomVariable.js.map +0 -1
- package/dist/esm/variables/variants/DataSourceVariable.js.map +0 -1
- package/dist/esm/variables/variants/IntervalVariable.js.map +0 -1
- package/dist/esm/variables/variants/LocalValueVariable.js.map +0 -1
- package/dist/esm/variables/variants/MultiValueVariable.js.map +0 -1
- package/dist/esm/variables/variants/ScopesVariable.js.map +0 -1
- package/dist/esm/variables/variants/SwitchVariable.js.map +0 -1
- package/dist/esm/variables/variants/TestVariable.js.map +0 -1
- package/dist/esm/variables/variants/TextBoxVariable.js.map +0 -1
- package/dist/esm/variables/variants/guards.js.map +0 -1
- package/dist/esm/variables/variants/query/QueryVariable.js.map +0 -1
- package/dist/esm/variables/variants/query/createQueryVariableRunner.js.map +0 -1
- package/dist/esm/variables/variants/query/guards.js.map +0 -1
- package/dist/esm/variables/variants/query/toMetricFindValues.js.map +0 -1
- package/dist/esm/variables/variants/query/utils.js.map +0 -1
- /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/ActWhenVariableChanged.js +0 -0
- /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/CursorSync.js +0 -0
- /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/LiveNowTimer.js +0 -0
- /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/SceneInteractionTracker.js +0 -0
- /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/SceneQueryController.js +0 -0
- /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/index.js +0 -0
- /package/dist/esm/{behaviors → packages/scenes/src/behaviors}/index.js.map +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/EmbeddedScene.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/NestedScene.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/SceneApp.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/SceneAppPage.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/SceneAppPageView.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneApp/utils.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneByFrameRepeater.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneByVariableRepeater.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneCanvasText.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneControlsSpacer.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneDebugger/DebugDetails.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneDebugger/DebugTreeNode.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneDebugger/SceneDebugger.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneReactObject.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneRefreshPicker.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneTimePicker.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneTimeRangeCompare.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/SceneToolbarButton.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanel.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelExploreButton.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelMenu.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelRenderer.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/VizPanelSeriesLimit.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/colorSeriesConfigFactory.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/registerRuntimePanelPlugin.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/VizPanel/seriesVisibilityConfigFactory.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/CSSGrid/SceneCSSGridLayout.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/LazyLoader.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/SceneFlexLayout.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridItem.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridLayout.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridLayoutRenderer.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/SceneGridRow.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/constants.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/types.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/grid/utils.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/split/SplitLayout.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/split/SplitLayoutRenderer.js +0 -0
- /package/dist/esm/{components → packages/scenes/src/components}/layout/split/Splitter.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/FieldConfigBuilder.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/FieldConfigBuilders.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/FieldConfigOverridesBuilder.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/PanelOptionsBuilder.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/PanelOptionsBuilders.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/StandardFieldConfigBuilders.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/VizConfigBuilder.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/VizConfigBuilders.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/VizPanelBuilder.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/PanelBuilders/index.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/SceneComponentWrapper.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/SceneDataNode.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/SceneObjectBase.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/SceneObjectRef.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/SceneTimeRange.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/SceneTimeRangeTransformerBase.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/SceneTimeZoneOverride.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/events.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/cloneSceneObject.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/getInteractionTracker.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/getQueryController.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/getTimeRange.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/index.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/sceneGraph.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/sceneGraph/utils.js +0 -0
- /package/dist/esm/{core → packages/scenes/src/core}/types.js +0 -0
- /package/dist/esm/{index.js → packages/scenes/src/index.js} +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/cs-CZ/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/cs-CZ/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/de-DE/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/de-DE/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/en-US/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/en-US/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/es-ES/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/es-ES/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/fr-FR/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/fr-FR/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/hu-HU/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/hu-HU/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/id-ID/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/id-ID/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/it-IT/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/it-IT/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/ja-JP/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/ja-JP/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/ko-KR/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/ko-KR/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/nl-NL/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/nl-NL/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/pl-PL/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/pl-PL/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/pt-BR/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/pt-BR/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/pt-PT/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/pt-PT/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/ru-RU/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/ru-RU/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/sv-SE/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/sv-SE/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/tr-TR/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/tr-TR/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/zh-Hans/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/zh-Hans/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/zh-Hant/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales → packages/scenes/src/locales}/zh-Hant/grafana-scenes.json.js.map +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/LongFrameDetector.js +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/PanelProfilingManager.js +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/ScenePerformanceTracker.js +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/SceneRenderProfiler.js +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/VizPanelRenderProfiler.js +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/index.js +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/index.js.map +0 -0
- /package/dist/esm/{performance → packages/scenes/src/performance}/interactionConstants.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/DataLayersMerger.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/DataProviderProxy.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/ExtraQueryProvider.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/RuntimeDataSource.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/SceneDataLayerSet.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/SceneDataTransformer.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/SceneQueryRunner.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/extraQueryProcessingOperator.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/getEnrichedDataRequest.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/SceneDataLayerBase.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/SceneDataLayerControls.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/AnnotationsDataLayer.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/filterAnnotations.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/standardAnnotationQuery.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/standardAnnotationsSupport.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/annotations/utils.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/index.js +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/layers/index.js.map +0 -0
- /package/dist/esm/{querying → packages/scenes/src/querying}/registerQueryWithController.js +0 -0
- /package/dist/esm/{services → packages/scenes/src/services}/SceneObjectUrlSyncConfig.js +0 -0
- /package/dist/esm/{services → packages/scenes/src/services}/UniqueUrlKeyMapper.js +0 -0
- /package/dist/esm/{services → packages/scenes/src/services}/UrlSyncContextProvider.js +0 -0
- /package/dist/esm/{services → packages/scenes/src/services}/UrlSyncManager.js +0 -0
- /package/dist/esm/{services → packages/scenes/src/services}/useUrlSync.js +0 -0
- /package/dist/esm/{services → packages/scenes/src/services}/utils.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/ControlsLabel.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/LoadingIndicator.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/SafeSerializableSceneObject.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/compatibility/setWindowGrafanaSceneContext.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/date.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/evaluateTimeRange.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/explore.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/findPanelProfiler.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/getCompareSeriesRefId.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/getDataSource.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/getMessageFromError.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/loadResources.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/metricTree.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/parseUrlParam.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/pathId.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/utils.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/wrapInSafeSerializableSceneObject.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/writePerformanceLog.js +0 -0
- /package/dist/esm/{utils → packages/scenes/src/utils}/writeSceneLog.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/DrilldownDependenciesManager.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/VariableDependencyConfig.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/VariableValueRecorder.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFilterBuilder.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFilterRenderer.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/utils.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/controller/AdHocFiltersVariableController.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/getAdHocFiltersFromScopes.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/getAdhocOptionSearcher.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/patchGetAdhocFilters.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueControl.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueInput.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueSelect.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/components/VariableValueSelectors.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/components/getOptionSearcher.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/constants.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/filter.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/getEnrichedFiltersRequest.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/DefaultGroupByCustomIndicatorContainer.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/GroupByValueContainer.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/GroupByVariableUrlSyncHandler.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/groupby/findActiveGroupByVariablesByUid.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/ScopedVarsVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/defaults.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/fieldAccessorCache.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/formatRegistry.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/interpolation/sceneInterpolator.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/lookupVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/AllVariablesMacro.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/contextMacros.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/dataMacros.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/index.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/templateProxies.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/timeMacros.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/types.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/macros/urlMacros.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/sets/SceneVariableSet.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/types.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/utils.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/ConstantVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/CustomVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/DataSourceVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/IntervalVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/LocalValueVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/MultiValueVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/ScopesVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/SwitchVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/TestVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/TextBoxVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/guards.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/QueryVariable.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/createQueryVariableRunner.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/guards.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/toMetricFindValues.js +0 -0
- /package/dist/esm/{variables → packages/scenes/src/variables}/variants/query/utils.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdHocFiltersVariableUrlSyncHandler.js","sources":["../../../../src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues } from '../../core/types';\nimport {\n AdHocFiltersVariable,\n AdHocFilterWithLabels,\n FilterOrigin,\n isFilterComplete,\n isMatchAllFilter,\n isMultiValueOperator,\n} from './AdHocFiltersVariable';\nimport { escapeOriginFilterUrlDelimiters, toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils';\n\nexport class AdHocFiltersVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {\n public constructor(private _variable: AdHocFiltersVariable) {}\n\n private getKey(): string {\n return `var-${this._variable.state.name}`;\n }\n\n public getKeys(): string[] {\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n const filters = this._variable.state.filters;\n const originFilters = this._variable.state.originFilters;\n\n let value = [];\n\n if (filters.length === 0 && originFilters?.length === 0) {\n return { [this.getKey()]: [''] };\n }\n\n if (filters.length) {\n value.push(\n ...filters\n .filter(isFilterComplete)\n .filter((filter) => !filter.hidden)\n .map((filter) => toArray(filter).map(escapeOriginFilterUrlDelimiters).join('|'))\n );\n }\n\n if (originFilters?.length) {\n // injected filters stored in the following format: normal|adhoc|values#filterOrigin#restorable\n value.push(\n ...originFilters\n ?.filter(isFilterComplete)\n .filter((filter) => !filter.hidden && filter.origin && filter.restorable)\n .map((filter) =>\n toArray(filter).map(escapeOriginFilterUrlDelimiters).join('|').concat(`#${filter.origin}#restorable`)\n )\n );\n }\n\n return {\n [this.getKey()]: value.length ? value : [''],\n };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n const urlValue = values[this.getKey()];\n\n if (urlValue == null) {\n return;\n }\n\n const filters = deserializeUrlToFilters(urlValue);\n const originFilters = updateOriginFilters([...(this._variable.state.originFilters || [])], filters);\n\n this._variable.setState({\n filters: filters.filter((f) => !f.origin),\n originFilters,\n });\n }\n}\n\nfunction updateOriginFilters(prevOriginFilters: AdHocFilterWithLabels[], filters: AdHocFilterWithLabels[]) {\n const updatedOriginFilters: AdHocFilterWithLabels[] = [...prevOriginFilters];\n\n for (let i = 0; i < filters.length; i++) {\n const foundOriginFilterIndex = prevOriginFilters.findIndex((f) => f.key === filters[i].key);\n\n // if we find a match we update originFilters with what's in the URL.\n if (foundOriginFilterIndex > -1 && filters[i].origin === prevOriginFilters[foundOriginFilterIndex].origin) {\n if (isMatchAllFilter(filters[i])) {\n filters[i].matchAllFilter = true;\n }\n\n updatedOriginFilters[foundOriginFilterIndex] = filters[i];\n } else if (filters[i].origin === 'dashboard') {\n // if it was originating from a dashoard but has no match in the new dashboard\n // remove it's origin, turn it into a normal filter to be set below\n delete filters[i].origin;\n delete filters[i].restorable;\n } else if (foundOriginFilterIndex === -1 && filters[i].origin === 'scope' && filters[i].restorable) {\n // scopes are being set urlSync so we maintain all modified scopes in the adhoc\n // and leave the scopes update to reconciliate on what filters will actually show up\n updatedOriginFilters.push(filters[i]);\n }\n }\n\n return updatedOriginFilters;\n}\n\nfunction deserializeUrlToFilters(value: SceneObjectUrlValue): AdHocFilterWithLabels[] {\n if (Array.isArray(value)) {\n const values = value;\n return values.map(toFilter).filter(isFilter);\n }\n\n const filter = toFilter(value);\n return filter === null ? [] : [filter];\n}\n\nexport function toArray(filter: AdHocFilterWithLabels): string[] {\n const result = [toUrlCommaDelimitedString(filter.key, filter.keyLabel), filter.operator];\n if (isMultiValueOperator(filter.operator)) {\n // TODO remove expect-error when we're on the latest version of @grafana/data\n // @ts-expect-error\n filter.values.forEach((value, index) => {\n result.push(toUrlCommaDelimitedString(value, filter.valueLabels?.[index]));\n });\n } else {\n result.push(toUrlCommaDelimitedString(filter.value, filter.valueLabels?.[0]));\n }\n return result;\n}\n\nfunction toFilter(urlValue: string | number | boolean | undefined | null): AdHocFilterWithLabels | null {\n if (typeof urlValue !== 'string' || urlValue.length === 0) {\n return null;\n }\n\n const [filter, origin, restorable] = urlValue.split('#');\n const [key, keyLabel, operator, _operatorLabel, ...values] = filter\n .split('|')\n .reduce<string[]>((acc, v) => {\n const [key, label] = v.split(',');\n\n acc.push(key, label ?? key);\n\n return acc;\n }, [])\n .map(unescapeUrlDelimiters);\n\n return {\n key,\n keyLabel,\n operator,\n value: values[0],\n values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : undefined,\n valueLabels: values.filter((_, index) => index % 2 === 1),\n condition: '',\n ...(isFilterOrigin(origin) && { origin }),\n ...(!!restorable && { restorable: true }),\n };\n}\n\nfunction isFilterOrigin(value: string): value is FilterOrigin {\n return value === 'scope' || value === 'dashboard';\n}\n\nfunction isFilter(filter: AdHocFilterWithLabels | null): filter is AdHocFilterWithLabels {\n return filter !== null && typeof filter.key === 'string' && typeof filter.value === 'string';\n}\n"],"names":["_a","key"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdHocFiltersVariableController.js","sources":["../../../../../src/variables/adhoc/controller/AdHocFiltersVariableController.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\nimport { AdHocFilterWithLabels, AdHocFiltersVariable } from '../AdHocFiltersVariable';\nimport { AdHocFiltersController, AdHocFiltersControllerState } from './AdHocFiltersController';\nimport { getQueryController } from '../../../core/sceneGraph/getQueryController';\nimport { getInteractionTracker } from '../../../core/sceneGraph/getInteractionTracker';\n\n/**\n * Adapter that wraps AdHocFiltersVariable to implement the AdHocFiltersController interface.\n * This allows the combobox UI to work with the variable while keeping the UI decoupled.\n */\nexport class AdHocFiltersVariableController implements AdHocFiltersController {\n public constructor(private model: AdHocFiltersVariable) {}\n\n public useState(): AdHocFiltersControllerState {\n const state = this.model.useState();\n return {\n filters: state.filters,\n originFilters: state.originFilters,\n readOnly: state.readOnly,\n allowCustomValue: state.allowCustomValue,\n supportsMultiValueOperators: state.supportsMultiValueOperators,\n onAddCustomValue: state.onAddCustomValue,\n wip: state._wip,\n };\n }\n\n public async getKeys(currentKey: string | null): Promise<Array<SelectableValue<string>>> {\n return this.model._getKeys(currentKey);\n }\n\n public async getValuesFor(filter: AdHocFilterWithLabels): Promise<Array<SelectableValue<string>>> {\n return this.model._getValuesFor(filter);\n }\n\n public getOperators(): Array<SelectableValue<string>> {\n return this.model._getOperators();\n }\n\n public updateFilter(filter: AdHocFilterWithLabels, update: Partial<AdHocFilterWithLabels>): void {\n this.model._updateFilter(filter, update);\n }\n\n public updateToMatchAll(filter: AdHocFilterWithLabels): void {\n this.model.updateToMatchAll(filter);\n }\n\n public removeFilter(filter: AdHocFilterWithLabels): void {\n this.model._removeFilter(filter);\n }\n\n public removeLastFilter(): void {\n this.model._removeLastFilter();\n }\n\n public handleComboboxBackspace(filter: AdHocFilterWithLabels): void {\n this.model._handleComboboxBackspace(filter);\n }\n\n public addWip(): void {\n this.model._addWip();\n }\n\n public restoreOriginalFilter(filter: AdHocFilterWithLabels): void {\n this.model.restoreOriginalFilter(filter);\n }\n\n public startProfile(name: string): void {\n const queryController = getQueryController(this.model);\n queryController?.startProfile(name);\n }\n\n public startInteraction(name: string): void {\n const interactionTracker = getInteractionTracker(this.model);\n interactionTracker?.startInteraction(name);\n }\n\n public stopInteraction(): void {\n const interactionTracker = getInteractionTracker(this.model);\n interactionTracker?.stopInteraction();\n }\n}\n"],"names":[],"mappings":";;;AAUO,MAAM,8BAAiE,CAAA;AAAA,EACrE,YAAoB,KAA6B,EAAA;AAA7B,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA;AAA8B,EAElD,QAAwC,GAAA;AAC7C,IAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,KAAA,CAAM,QAAS,EAAA;AAClC,IAAO,OAAA;AAAA,MACL,SAAS,KAAM,CAAA,OAAA;AAAA,MACf,eAAe,KAAM,CAAA,aAAA;AAAA,MACrB,UAAU,KAAM,CAAA,QAAA;AAAA,MAChB,kBAAkB,KAAM,CAAA,gBAAA;AAAA,MACxB,6BAA6B,KAAM,CAAA,2BAAA;AAAA,MACnC,kBAAkB,KAAM,CAAA,gBAAA;AAAA,MACxB,KAAK,KAAM,CAAA;AAAA,KACb;AAAA;AACF,EAEA,MAAa,QAAQ,UAAoE,EAAA;AACvF,IAAO,OAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAS,UAAU,CAAA;AAAA;AACvC,EAEA,MAAa,aAAa,MAAwE,EAAA;AAChG,IAAO,OAAA,IAAA,CAAK,KAAM,CAAA,aAAA,CAAc,MAAM,CAAA;AAAA;AACxC,EAEO,YAA+C,GAAA;AACpD,IAAO,OAAA,IAAA,CAAK,MAAM,aAAc,EAAA;AAAA;AAClC,EAEO,YAAA,CAAa,QAA+B,MAA8C,EAAA;AAC/F,IAAK,IAAA,CAAA,KAAA,CAAM,aAAc,CAAA,MAAA,EAAQ,MAAM,CAAA;AAAA;AACzC,EAEO,iBAAiB,MAAqC,EAAA;AAC3D,IAAK,IAAA,CAAA,KAAA,CAAM,iBAAiB,MAAM,CAAA;AAAA;AACpC,EAEO,aAAa,MAAqC,EAAA;AACvD,IAAK,IAAA,CAAA,KAAA,CAAM,cAAc,MAAM,CAAA;AAAA;AACjC,EAEO,gBAAyB,GAAA;AAC9B,IAAA,IAAA,CAAK,MAAM,iBAAkB,EAAA;AAAA;AAC/B,EAEO,wBAAwB,MAAqC,EAAA;AAClE,IAAK,IAAA,CAAA,KAAA,CAAM,yBAAyB,MAAM,CAAA;AAAA;AAC5C,EAEO,MAAe,GAAA;AACpB,IAAA,IAAA,CAAK,MAAM,OAAQ,EAAA;AAAA;AACrB,EAEO,sBAAsB,MAAqC,EAAA;AAChE,IAAK,IAAA,CAAA,KAAA,CAAM,sBAAsB,MAAM,CAAA;AAAA;AACzC,EAEO,aAAa,IAAoB,EAAA;AACtC,IAAM,MAAA,eAAA,GAAkB,kBAAmB,CAAA,IAAA,CAAK,KAAK,CAAA;AACrD,IAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,YAAa,CAAA,IAAA,CAAA;AAAA;AAChC,EAEO,iBAAiB,IAAoB,EAAA;AAC1C,IAAM,MAAA,kBAAA,GAAqB,qBAAsB,CAAA,IAAA,CAAK,KAAK,CAAA;AAC3D,IAAA,kBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,kBAAA,CAAoB,gBAAiB,CAAA,IAAA,CAAA;AAAA;AACvC,EAEO,eAAwB,GAAA;AAC7B,IAAM,MAAA,kBAAA,GAAqB,qBAAsB,CAAA,IAAA,CAAK,KAAK,CAAA;AAC3D,IAAoB,kBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,kBAAA,CAAA,eAAA,EAAA;AAAA;AAExB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAdHocFiltersFromScopes.js","sources":["../../../../src/variables/adhoc/getAdHocFiltersFromScopes.ts"],"sourcesContent":["import { Scope, ScopeFilterOperator, ScopeSpecFilter, scopeFilterOperatorMap } from '@grafana/data';\nimport { AdHocFilterWithLabels } from './AdHocFiltersVariable';\n\nexport type EqualityOrMultiOperator = Extract<ScopeFilterOperator, 'equals' | 'not-equals' | 'one-of' | 'not-one-of'>;\nexport type RegexOperator = Extract<ScopeFilterOperator, 'regex-match' | 'regex-not-match'>;\n\nexport const reverseScopeFilterOperatorMap: Record<ScopeFilterOperator, string> = Object.fromEntries(\n Object.entries(scopeFilterOperatorMap).map(([symbol, operator]) => [operator, symbol])\n) as Record<ScopeFilterOperator, string>;\n\nexport function isEqualityOrMultiOperator(value: string): value is EqualityOrMultiOperator {\n const operators = new Set(['equals', 'not-equals', 'one-of', 'not-one-of']);\n return operators.has(value);\n}\n\nexport function isRegexOperator(value: string): value is RegexOperator {\n const operators = new Set(['regex-match', 'regex-not-match']);\n return operators.has(value);\n}\n\n// this function returns processed adhoc filters after parsing and processing\n// all scope filters from a scope list. The reason we need to process these filters is\n// because scopes can have multiple filter values with the same key. For example:\n// we have selected ScopeA which has a filter with a key1, operator one-of, a value1,\n// and a ScopeB which has a filter with key1, operator one-of, and value2. After processing,\n// the result will be just one adhoc filter with both values. This is held in formattedFilters.\n// DuplicatedFilters will containg unprocessable filters: if scopeA has instead of the one-of op\n// an equal op, then the result will be 2 adhoc filters with the same key, but diferent operator\n// and value. We return them this way and let the adhoc interface deal with this.\nexport function getAdHocFiltersFromScopes(scopes: Scope[]): AdHocFilterWithLabels[] {\n const formattedFilters: Map<string, AdHocFilterWithLabels> = new Map();\n // duplicated filters that could not be processed in any way are just appended to the list\n const duplicatedFilters: AdHocFilterWithLabels[] = [];\n const allFilters = scopes.flatMap((scope) => scope.spec.filters);\n\n for (const filter of allFilters) {\n processFilter(formattedFilters, duplicatedFilters, filter);\n }\n\n return [...formattedFilters.values(), ...duplicatedFilters];\n}\n\nfunction processFilter(\n formattedFilters: Map<string, AdHocFilterWithLabels>,\n duplicatedFilters: AdHocFilterWithLabels[],\n filter: ScopeSpecFilter\n) {\n if (!filter) {\n return;\n }\n\n const existingFilter = formattedFilters.get(filter.key);\n\n if (existingFilter && isEqualityValue(existingFilter.operator, filter.operator)) {\n mergeFilterValues(existingFilter, filter);\n } else if (existingFilter && isRegexValue(existingFilter.operator, filter.operator)) {\n existingFilter.value += `|${filter.value}`;\n existingFilter.values = [existingFilter.value];\n } else if (!existingFilter) {\n // Add filter to map either only if it is new.\n // Otherwise it is an existing filter that cannot be converted to multi-value\n // and thus will be moved to the duplicatedFilters list\n formattedFilters.set(filter.key, {\n key: filter.key,\n operator: reverseScopeFilterOperatorMap[filter.operator],\n value: filter.value,\n values: filter.values ?? [filter.value],\n origin: 'scope',\n });\n } else {\n duplicatedFilters.push({\n key: filter.key,\n operator: reverseScopeFilterOperatorMap[filter.operator],\n value: filter.value,\n values: filter.values ?? [filter.value],\n origin: 'scope',\n });\n }\n}\n\nfunction mergeFilterValues(adHocFilter: AdHocFilterWithLabels, filter: ScopeSpecFilter) {\n const values = filter.values ?? [filter.value];\n\n for (const value of values) {\n if (!adHocFilter.values?.includes(value)) {\n adHocFilter.values?.push(value);\n }\n }\n\n // If there's only one value, there's no need to update the\n // operator to its multi-value equivalent\n if (adHocFilter.values?.length === 1) {\n return;\n }\n\n // Otherwise update it to the equivalent multi-value operator\n if (filter.operator === 'equals' && adHocFilter.operator === reverseScopeFilterOperatorMap['equals']) {\n adHocFilter.operator = reverseScopeFilterOperatorMap['one-of'];\n } else if (filter.operator === 'not-equals' && adHocFilter.operator === reverseScopeFilterOperatorMap['not-equals']) {\n adHocFilter.operator = reverseScopeFilterOperatorMap['not-one-of'];\n }\n}\n\nfunction isRegexValue(adHocFilterOperator: string, filterOperator: string) {\n const scopeConvertedOperator = scopeFilterOperatorMap[adHocFilterOperator];\n\n if (!isRegexOperator(scopeConvertedOperator) || !isRegexOperator(filterOperator)) {\n return false;\n }\n\n return hasSameOperators(scopeConvertedOperator, filterOperator);\n}\n\nfunction isEqualityValue(adHocFilterOperator: string, filterOperator: string) {\n const scopeConvertedOperator = scopeFilterOperatorMap[adHocFilterOperator];\n\n if (!isEqualityOrMultiOperator(scopeConvertedOperator) || !isEqualityOrMultiOperator(filterOperator)) {\n return false;\n }\n\n return hasSameOperators(scopeConvertedOperator, filterOperator);\n}\n\nfunction hasSameOperators(scopeConvertedOperator: string, filterOperator: string) {\n if (\n (scopeConvertedOperator.includes('not') && !filterOperator.includes('not')) ||\n (!scopeConvertedOperator.includes('not') && filterOperator.includes('not'))\n ) {\n return false;\n }\n\n return true;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAdhocOptionSearcher.js","sources":["../../../../src/variables/adhoc/getAdhocOptionSearcher.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\nimport { fuzzyFind } from '../filter';\n\nexport function getAdhocOptionSearcher(options: SelectableValue[]) {\n const haystack = options.map((o) => o.label ?? String(o.value));\n\n return (search: string) => fuzzyFind<SelectableValue>(options, haystack, search);\n}\n"],"names":[],"mappings":";;AAGO,SAAS,uBAAuB,OAA4B,EAAA;AACjE,EAAA,MAAM,QAAW,GAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,CAAG,KAAA;AAJnC,IAAA,IAAA,EAAA;AAIsC,IAAA,OAAA,CAAA,EAAA,GAAA,CAAA,CAAE,KAAF,KAAA,IAAA,GAAA,EAAA,GAAW,MAAO,CAAA,CAAA,CAAE,KAAK,CAAA;AAAA,GAAC,CAAA;AAE9D,EAAA,OAAO,CAAC,MAAA,KAAmB,SAA2B,CAAA,OAAA,EAAS,UAAU,MAAM,CAAA;AACjF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"patchGetAdhocFilters.js","sources":["../../../../src/variables/adhoc/patchGetAdhocFilters.ts"],"sourcesContent":["import { getDataSourceSrv, getTemplateSrv } from '@grafana/runtime';\nimport { AdHocVariableFilter } from '@grafana/data';\nimport { AdHocFiltersVariable } from './AdHocFiltersVariable';\nimport { interpolate } from '../../core/sceneGraph/sceneGraph';\n\nlet originalGetAdhocFilters: any = undefined;\nexport const allActiveFilterSets = new Set<AdHocFiltersVariable>();\n\nexport function patchGetAdhocFilters(filterVar: AdHocFiltersVariable) {\n filterVar.addActivationHandler(() => {\n allActiveFilterSets.add(filterVar);\n return () => allActiveFilterSets.delete(filterVar);\n });\n\n if (originalGetAdhocFilters) {\n return;\n }\n\n const templateSrv: any = getTemplateSrv();\n if (!templateSrv?.getAdhocFilters) {\n console.log('Failed to patch getAdhocFilters');\n return;\n }\n\n originalGetAdhocFilters = templateSrv.getAdhocFilters;\n\n templateSrv.getAdhocFilters = function getAdhocFiltersScenePatch(dsName: string): AdHocVariableFilter[] {\n if (allActiveFilterSets.size === 0) {\n return originalGetAdhocFilters.call(templateSrv, dsName);\n }\n\n const ds = getDataSourceSrv().getInstanceSettings(dsName);\n if (!ds) {\n return [];\n }\n\n for (const filter of allActiveFilterSets.values()) {\n if (filter.state.datasource?.uid === ds.uid) {\n return filter.state.filters;\n }\n }\n\n return [];\n }.bind(templateSrv);\n}\n\nexport function findActiveAdHocFilterVariableByUid(dsUid: string | undefined): AdHocFiltersVariable | undefined {\n for (const filter of allActiveFilterSets.values()) {\n if (interpolate(filter, filter.state.datasource?.uid) === dsUid) {\n return filter;\n }\n }\n\n return undefined;\n}\n"],"names":[],"mappings":";;;AAKA,IAAI,uBAA+B,GAAA,MAAA;AACtB,MAAA,mBAAA,uBAA0B,GAA0B;AAE1D,SAAS,qBAAqB,SAAiC,EAAA;AACpE,EAAA,SAAA,CAAU,qBAAqB,MAAM;AACnC,IAAA,mBAAA,CAAoB,IAAI,SAAS,CAAA;AACjC,IAAO,OAAA,MAAM,mBAAoB,CAAA,MAAA,CAAO,SAAS,CAAA;AAAA,GAClD,CAAA;AAED,EAAA,IAAI,uBAAyB,EAAA;AAC3B,IAAA;AAAA;AAGF,EAAA,MAAM,cAAmB,cAAe,EAAA;AACxC,EAAI,IAAA,EAAC,2CAAa,eAAiB,CAAA,EAAA;AACjC,IAAA,OAAA,CAAQ,IAAI,iCAAiC,CAAA;AAC7C,IAAA;AAAA;AAGF,EAAA,uBAAA,GAA0B,WAAY,CAAA,eAAA;AAEtC,EAAY,WAAA,CAAA,eAAA,GAAkB,SAAS,yBAAA,CAA0B,MAAuC,EAAA;AA1B1G,IAAA,IAAA,EAAA;AA2BI,IAAI,IAAA,mBAAA,CAAoB,SAAS,CAAG,EAAA;AAClC,MAAO,OAAA,uBAAA,CAAwB,IAAK,CAAA,WAAA,EAAa,MAAM,CAAA;AAAA;AAGzD,IAAA,MAAM,EAAK,GAAA,gBAAA,EAAmB,CAAA,mBAAA,CAAoB,MAAM,CAAA;AACxD,IAAA,IAAI,CAAC,EAAI,EAAA;AACP,MAAA,OAAO,EAAC;AAAA;AAGV,IAAW,KAAA,MAAA,MAAA,IAAU,mBAAoB,CAAA,MAAA,EAAU,EAAA;AACjD,MAAA,IAAA,CAAA,CAAI,YAAO,KAAM,CAAA,UAAA,KAAb,IAAyB,GAAA,MAAA,GAAA,EAAA,CAAA,GAAA,MAAQ,GAAG,GAAK,EAAA;AAC3C,QAAA,OAAO,OAAO,KAAM,CAAA,OAAA;AAAA;AACtB;AAGF,IAAA,OAAO,EAAC;AAAA,GACV,CAAE,KAAK,WAAW,CAAA;AACpB;AAEO,SAAS,mCAAmC,KAA6D,EAAA;AA9ChH,EAAA,IAAA,EAAA;AA+CE,EAAW,KAAA,MAAA,MAAA,IAAU,mBAAoB,CAAA,MAAA,EAAU,EAAA;AACjD,IAAI,IAAA,WAAA,CAAY,SAAQ,EAAO,GAAA,MAAA,CAAA,KAAA,CAAM,eAAb,IAAyB,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,MAAM,KAAO,EAAA;AAC/D,MAAO,OAAA,MAAA;AAAA;AACT;AAGF,EAAO,OAAA,MAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VariableValueControl.js","sources":["../../../../src/variables/components/VariableValueControl.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { ControlsLayout, SceneComponentProps, SceneObjectState } from '../../core/types';\nimport { VariableValueSelectWrapper } from './VariableValueSelectors';\n\nexport interface VariableValueControlState extends SceneObjectState {\n layout?: ControlsLayout;\n /** Render the specific select control for a variable */\n variableName: string;\n /** Hide the label in the variable value controller */\n hideLabel?: boolean;\n}\n\nexport class VariableValueControl extends SceneObjectBase<VariableValueControlState> {\n public static Component = VariableValueControlRenderer;\n}\n\nfunction VariableValueControlRenderer({ model }: SceneComponentProps<VariableValueControl>) {\n const variable = sceneGraph.lookupVariable(model.state.variableName, model);\n if (!variable) {\n return null;\n }\n\n return (\n <VariableValueSelectWrapper\n key={variable.state.key}\n variable={variable}\n layout={model.state.layout}\n showAlways={true}\n />\n );\n}\n"],"names":[],"mappings":";;;;;AAeO,MAAM,6BAA6B,eAA2C,CAAA;AAErF;AAFa,oBAAA,CACG,SAAY,GAAA,4BAAA;AAG5B,SAAS,4BAAA,CAA6B,EAAE,KAAA,EAAoD,EAAA;AAC1F,EAAA,MAAM,WAAW,UAAW,CAAA,cAAA,CAAe,KAAM,CAAA,KAAA,CAAM,cAAc,KAAK,CAAA;AAC1E,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,0BAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,SAAS,KAAM,CAAA,GAAA;AAAA,MACpB,QAAA;AAAA,MACA,MAAA,EAAQ,MAAM,KAAM,CAAA,MAAA;AAAA,MACpB,UAAY,EAAA;AAAA;AAAA,GACd;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VariableValueInput.js","sources":["../../../../src/variables/components/VariableValueInput.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport React, { useCallback } from 'react';\n\nimport { AutoSizeInput } from '@grafana/ui';\n\nimport { SceneComponentProps } from '../../core/types';\nimport { TextBoxVariable } from '../variants/TextBoxVariable';\n\nexport function VariableValueInput({ model }: SceneComponentProps<TextBoxVariable>) {\n const { value, key, loading } = model.useState();\n\n const onBlur = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n model.setValue(e.currentTarget.value);\n },\n [model]\n );\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n model.setValue(e.currentTarget.value);\n }\n },\n [model]\n );\n\n return (\n <AutoSizeInput\n id={key}\n placeholder={t('grafana-scenes.variables.variable-value-input.placeholder-enter-value', 'Enter value')}\n minWidth={15}\n maxWidth={30}\n value={value}\n loading={loading}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n />\n );\n}\n"],"names":[],"mappings":";;;;AAQgB,SAAA,kBAAA,CAAmB,EAAE,KAAA,EAA+C,EAAA;AAClF,EAAA,MAAM,EAAE,KAAO,EAAA,GAAA,EAAK,OAAQ,EAAA,GAAI,MAAM,QAAS,EAAA;AAE/C,EAAA,MAAM,MAAS,GAAA,WAAA;AAAA,IACb,CAAC,CAA2C,KAAA;AAC1C,MAAM,KAAA,CAAA,QAAA,CAAS,CAAE,CAAA,aAAA,CAAc,KAAK,CAAA;AAAA,KACtC;AAAA,IACA,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,MAAM,SAAY,GAAA,WAAA;AAAA,IAChB,CAAC,CAA6C,KAAA;AAC5C,MAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,QAAM,KAAA,CAAA,QAAA,CAAS,CAAE,CAAA,aAAA,CAAc,KAAK,CAAA;AAAA;AACtC,KACF;AAAA,IACA,CAAC,KAAK;AAAA,GACR;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA,GAAA;AAAA,MACJ,WAAA,EAAa,CAAE,CAAA,uEAAA,EAAyE,aAAa,CAAA;AAAA,MACrG,QAAU,EAAA,EAAA;AAAA,MACV,QAAU,EAAA,EAAA;AAAA,MACV,KAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VariableValueSelect.js","sources":["../../../../src/variables/components/VariableValueSelect.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport { isArray } from 'lodash';\nimport React, { RefCallback, useEffect, useMemo, useState } from 'react';\nimport {\n Checkbox,\n InputActionMeta,\n MultiSelect,\n Select,\n ToggleAllState,\n getSelectStyles,\n useStyles2,\n useTheme2,\n} from '@grafana/ui';\n\nimport { MultiValueVariable, MultiValueVariableState } from '../variants/MultiValueVariable';\nimport { VariableValue, VariableValueSingle } from '../types';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { css, cx } from '@emotion/css';\nimport { getOptionSearcher } from './getOptionSearcher';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { VARIABLE_VALUE_CHANGED_INTERACTION } from '../../performance/interactionConstants';\n\nconst filterNoOp = () => true;\n\nconst filterAll = (v: SelectableValue<VariableValueSingle>) => v.value !== '$__all';\n\nconst determineToggleAllState = (\n selectedValues: Array<SelectableValue<VariableValueSingle>>,\n options: Array<SelectableValue<VariableValueSingle>>\n) => {\n if (selectedValues.length === options.filter(filterAll).length) {\n return ToggleAllState.allSelected;\n } else if (\n selectedValues.length === 0 ||\n (selectedValues.length === 1 && selectedValues[0] && selectedValues[0].value === '$__all')\n ) {\n return ToggleAllState.noneSelected;\n } else {\n return ToggleAllState.indeterminate;\n }\n};\n\nexport function toSelectableValue<T>(value: T, label?: string): SelectableValue<T> {\n return {\n value,\n label: label ?? String(value),\n };\n}\n\nexport function VariableValueSelect({ model, state }: { model: MultiValueVariable; state: MultiValueVariableState }) {\n const { value, text, key, options, includeAll, isReadOnly, allowCustomValue = true } = state;\n const [inputValue, setInputValue] = useState('');\n const [hasCustomValue, setHasCustomValue] = useState(false);\n const selectValue = toSelectableValue(value, String(text));\n const queryController = sceneGraph.getQueryController(model);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n\n const onInputChange = (value: string, { action }: InputActionMeta) => {\n if (action === 'input-change') {\n setInputValue(value);\n if (model.onSearchChange) {\n model.onSearchChange!(value);\n }\n return value;\n }\n\n return value;\n };\n\n const filteredOptions = optionSearcher(inputValue);\n\n const onOpenMenu = () => {\n if (hasCustomValue) {\n setInputValue(String(text));\n }\n };\n\n const onCloseMenu = () => {\n setInputValue('');\n };\n\n return (\n <Select<VariableValue>\n id={key}\n isValidNewOption={(inputValue) => inputValue.trim().length > 0}\n placeholder={t('grafana-scenes.variables.variable-value-select.placeholder-select-value', 'Select value')}\n width=\"auto\"\n disabled={isReadOnly}\n value={selectValue}\n inputValue={inputValue}\n allowCustomValue={allowCustomValue}\n virtualized\n filterOption={filterNoOp}\n tabSelectsValue={false}\n onInputChange={onInputChange}\n onOpenMenu={onOpenMenu}\n onCloseMenu={onCloseMenu}\n options={filteredOptions}\n data-testid={selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${value}`)}\n onChange={(newValue) => {\n model.changeValueTo(newValue.value!, newValue.label!, true);\n queryController?.startProfile(VARIABLE_VALUE_CHANGED_INTERACTION);\n\n if (hasCustomValue !== newValue.__isNew__) {\n setHasCustomValue(newValue.__isNew__);\n }\n }}\n />\n );\n}\n\nexport function VariableValueSelectMulti({\n model,\n state,\n}: {\n model: MultiValueVariable;\n state: MultiValueVariableState;\n}) {\n const {\n value,\n options,\n key,\n maxVisibleValues,\n noValueOnClear,\n includeAll,\n isReadOnly,\n allowCustomValue = true,\n } = state;\n const arrayValue = useMemo(() => (isArray(value) ? value : [value]), [value]);\n // To not trigger queries on every selection we store this state locally here and only update the variable onBlur\n const [uncommittedValue, setUncommittedValue] = useState(arrayValue);\n const [inputValue, setInputValue] = useState('');\n\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n\n // Detect value changes outside\n useEffect(() => {\n setUncommittedValue(arrayValue);\n }, [arrayValue]);\n\n const onInputChange = (value: string, { action }: InputActionMeta) => {\n if (action === 'input-change') {\n setInputValue(value);\n if (model.onSearchChange) {\n model.onSearchChange!(value);\n }\n return value;\n }\n\n if (action === 'input-blur') {\n setInputValue('');\n return '';\n }\n\n return inputValue;\n };\n\n const placeholder = options.length > 0 ? 'Select value' : '';\n const filteredOptions = optionSearcher(inputValue);\n\n return (\n <MultiSelect<VariableValueSingle>\n id={key}\n placeholder={placeholder}\n width=\"auto\"\n inputValue={inputValue}\n disabled={isReadOnly}\n value={uncommittedValue}\n noMultiValueWrap={true}\n maxVisibleValues={maxVisibleValues ?? 5}\n tabSelectsValue={false}\n virtualized\n allowCustomValue={allowCustomValue}\n //@ts-ignore\n toggleAllOptions={{\n enabled: true,\n optionsFilter: filterAll,\n determineToggleAllState: determineToggleAllState,\n }}\n options={filteredOptions}\n closeMenuOnSelect={false}\n components={{ Option: OptionWithCheckbox }}\n isClearable={true}\n hideSelectedOptions={false}\n onInputChange={onInputChange}\n onBlur={() => {\n model.changeValueTo(uncommittedValue, undefined, true);\n }}\n filterOption={filterNoOp}\n data-testid={selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${uncommittedValue}`)}\n onChange={(newValue, action) => {\n if (action.action === 'clear' && noValueOnClear) {\n model.changeValueTo([], undefined, true);\n }\n setUncommittedValue(newValue.map((x) => x.value!));\n }}\n />\n );\n}\n\ninterface SelectMenuOptionProps<T> {\n isDisabled: boolean;\n isFocused: boolean;\n isSelected: boolean;\n innerProps: JSX.IntrinsicElements['div'];\n innerRef: RefCallback<HTMLDivElement>;\n renderOptionLabel?: (value: SelectableValue<T>) => JSX.Element;\n data: SelectableValue<T>;\n indeterminate: boolean;\n}\n\nexport const OptionWithCheckbox = ({\n children,\n data,\n innerProps,\n innerRef,\n isFocused,\n isSelected,\n indeterminate,\n renderOptionLabel,\n}: React.PropsWithChildren<SelectMenuOptionProps<unknown>>) => {\n // We are removing onMouseMove and onMouseOver from innerProps because they cause the whole\n // list to re-render everytime the user hovers over an option. This is a performance issue.\n // See https://github.com/JedWatson/react-select/issues/3128#issuecomment-451936743\n const { onMouseMove, onMouseOver, ...rest } = innerProps;\n const theme = useTheme2();\n const selectStyles = getSelectStyles(theme);\n const optionStyles = useStyles2(getOptionStyles);\n\n return (\n <div\n ref={innerRef}\n className={cx(selectStyles.option, isFocused && selectStyles.optionFocused)}\n {...rest}\n // TODO: use below selector once we update grafana dependencies to ^11.1.0\n // data-testid={selectors.components.Select.option}\n data-testid=\"data-testid Select option\"\n title={data.title}\n >\n <div className={optionStyles.checkbox}>\n <Checkbox indeterminate={indeterminate} value={isSelected} />\n </div>\n <div\n className={selectStyles.optionBody}\n data-testid={selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts(\n data.label ?? String(data.value)\n )}\n >\n <span>{children}</span>\n </div>\n </div>\n );\n};\n\nOptionWithCheckbox.displayName = 'SelectMenuOptions';\n\nconst getOptionStyles = (theme: GrafanaTheme2) => ({\n checkbox: css({\n marginRight: theme.spacing(2),\n }),\n});\n\nexport function MultiOrSingleValueSelect({ model }: { model: MultiValueVariable }) {\n const state = model.useState();\n\n if (state.isMulti) {\n return <VariableValueSelectMulti model={model} state={state} />;\n } else {\n return <VariableValueSelect model={model} state={state} />;\n }\n}\n"],"names":["value","inputValue"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VariableValueSelectors.js","sources":["../../../../src/variables/components/VariableValueSelectors.tsx"],"sourcesContent":["import React from 'react';\n\nimport { VariableHide } from '@grafana/data';\n\nimport { SceneObjectBase, useSceneObjectState } from '../../core/SceneObjectBase';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { ControlsLayout, SceneComponentProps, SceneObjectState } from '../../core/types';\nimport { SceneVariable, SceneVariableState } from '../types';\nimport { ControlsLabel } from '../../utils/ControlsLabel';\nimport { css } from '@emotion/css';\nimport { selectors } from '@grafana/e2e-selectors';\n\nexport interface VariableValueSelectorsState extends SceneObjectState {\n layout?: ControlsLayout;\n}\n\nexport class VariableValueSelectors extends SceneObjectBase<VariableValueSelectorsState> {\n public static Component = VariableValueSelectorsRenderer;\n}\n\nfunction VariableValueSelectorsRenderer({ model }: SceneComponentProps<VariableValueSelectors>) {\n const variables = sceneGraph.getVariables(model)!.useState();\n\n return (\n <>\n {variables.variables.map((variable) => (\n <VariableValueSelectWrapper key={variable.state.key} variable={variable} layout={model.state.layout} />\n ))}\n </>\n );\n}\n\ninterface VariableSelectProps {\n layout?: ControlsLayout;\n variable: SceneVariable;\n /** To override hide from VariableValueSelectByName */\n showAlways?: boolean;\n /** To provide an option to hide the label in the variable value selector */\n hideLabel?: boolean;\n}\n\nexport function VariableValueSelectWrapper({ variable, layout, showAlways, hideLabel }: VariableSelectProps) {\n const state = useSceneObjectState<SceneVariableState>(variable, { shouldActivateOrKeepAlive: true });\n\n if (state.hide === VariableHide.hideVariable && !showAlways) {\n if (variable.UNSAFE_renderAsHidden) {\n return <variable.Component model={variable} />;\n }\n\n return null;\n }\n\n if (layout === 'vertical') {\n return (\n <div className={verticalContainer} data-testid={selectors.pages.Dashboard.SubMenu.submenuItem}>\n <VariableLabel variable={variable} layout={layout} hideLabel={hideLabel} />\n <variable.Component model={variable} />\n </div>\n );\n }\n\n return (\n <div className={containerStyle} data-testid={selectors.pages.Dashboard.SubMenu.submenuItem}>\n <VariableLabel variable={variable} hideLabel={hideLabel} />\n <variable.Component model={variable} />\n </div>\n );\n}\n\nfunction VariableLabel({ variable, layout, hideLabel }: VariableSelectProps) {\n const { state } = variable;\n\n if (variable.state.hide === VariableHide.hideLabel || hideLabel) {\n return null;\n }\n\n const elementId = `var-${state.key}`;\n const labelOrName = state.label || state.name;\n\n return (\n <ControlsLabel\n htmlFor={elementId}\n isLoading={state.loading}\n onCancel={() => variable.onCancel?.()}\n label={labelOrName}\n error={state.error}\n layout={layout}\n description={state.description ?? undefined}\n />\n );\n}\n\nconst containerStyle = css({\n display: 'flex',\n // No border for second element (inputs) as label and input border is shared\n '> :nth-child(2)': css({\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n }),\n});\n\nconst verticalContainer = css({ display: 'flex', flexDirection: 'column' });\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getOptionSearcher.js","sources":["../../../../src/variables/components/getOptionSearcher.ts"],"sourcesContent":["import { VariableValueOption } from '../types';\nimport { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE } from '../constants';\nimport { fuzzyFind } from '../filter';\n\nexport function getOptionSearcher(options: VariableValueOption[], includeAll = false) {\n let allOptions = options;\n\n if (includeAll) {\n allOptions = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...allOptions];\n }\n\n const haystack = allOptions.map((o) => o.label);\n\n return (search: string) => fuzzyFind<VariableValueOption>(allOptions, haystack, search);\n}\n"],"names":[],"mappings":";;;AAIgB,SAAA,iBAAA,CAAkB,OAAgC,EAAA,UAAA,GAAa,KAAO,EAAA;AACpF,EAAA,IAAI,UAAa,GAAA,OAAA;AAEjB,EAAA,IAAI,UAAY,EAAA;AACd,IAAa,UAAA,GAAA,CAAC,EAAE,KAAO,EAAA,kBAAA,EAAoB,OAAO,iBAAkB,EAAA,EAAG,GAAG,UAAU,CAAA;AAAA;AAGtF,EAAA,MAAM,WAAW,UAAW,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAE9C,EAAA,OAAO,CAAC,MAAA,KAAmB,SAA+B,CAAA,UAAA,EAAY,UAAU,MAAM,CAAA;AACxF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../src/variables/constants.ts"],"sourcesContent":["export const ALL_VARIABLE_TEXT = 'All';\nexport const ALL_VARIABLE_VALUE = '$__all';\nexport const NONE_VARIABLE_TEXT = 'None';\nexport const NONE_VARIABLE_VALUE = '';\nexport const AUTO_VARIABLE_TEXT = 'Auto';\nexport const AUTO_VARIABLE_VALUE = '$__auto';\n\n// Grafana core source: https://github.com/grafana/grafana/blob/main/public/app/features/variables/utils.ts#L23\n/*\n * This regex matches 3 types of variable reference with an optional format specifier\n * \\$(\\w+) $var1\n * \\[\\[(\\w+?)(?::(\\w+))?\\]\\] [[var2]] or [[var2:fmt2]]\n * \\${(\\w+)(?::(\\w+))?} ${var3} or ${var3:fmt3}\n */\nexport const VARIABLE_REGEX = /\\$(\\w+)|\\[\\[(\\w+?)(?::(\\w+))?\\]\\]|\\${(\\w+)(?:\\.([^:^\\}]+))?(?::([^\\}]+))?}/g;\nexport const SEARCH_FILTER_VARIABLE = '__searchFilter';\nexport const SCOPES_VARIABLE_NAME = '__scopes';\n"],"names":[],"mappings":"AAAO,MAAM,iBAAoB,GAAA;AAC1B,MAAM,kBAAqB,GAAA;AAG3B,MAAM,kBAAqB,GAAA;AAC3B,MAAM,mBAAsB,GAAA;AAS5B,MAAM,cAAiB,GAAA;AACvB,MAAM,sBAAyB,GAAA;AAC/B,MAAM,oBAAuB,GAAA;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sources":["../../../src/variables/filter.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\nimport uFuzzy from '@leeoniya/ufuzzy';\nimport { VariableValueOption } from './types';\n\n// https://catonmat.net/my-favorite-regex :)\nconst REGEXP_NON_ASCII = /[^ -~]/m;\n// https://www.asciitable.com/\n// matches only these: `~!@#$%^&*()_+-=[]\\{}|;':\",./<>?\nconst REGEXP_ONLY_SYMBOLS = /^[\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]+$/m;\n// limit max terms in needle that qualify for re-ordering\nconst outOfOrderLimit = 5;\n// beyond 25 chars fall back to substring search\nconst maxNeedleLength = 25;\n// beyond 5 terms fall back to substring match\nconst maxFuzzyTerms = 5;\n// when number of matches <= 1e4, do ranking + sorting by quality\nconst rankThreshold = 1e4;\n\n// typo tolerance mode\nconst uf = new uFuzzy({ intraMode: 1 });\n\nexport function fuzzyFind<T extends SelectableValue | VariableValueOption>(\n options: T[],\n haystack: string[],\n needle: string\n) {\n let matches: T[] = [];\n\n if (needle === '') {\n matches = options;\n }\n // fallback to substring matches to avoid badness\n else if (\n // contains non-ascii\n REGEXP_NON_ASCII.test(needle) ||\n // is only ascii symbols (operators)\n REGEXP_ONLY_SYMBOLS.test(needle) ||\n // too long (often copy-paste from somewhere)\n needle.length > maxNeedleLength ||\n uf.split(needle).length > maxFuzzyTerms\n ) {\n for (let i = 0; i < haystack.length; i++) {\n let item = haystack[i];\n\n if (item.includes(needle)) {\n matches.push(options[i]);\n }\n }\n }\n // fuzzy search\n else {\n const [idxs, info, order] = uf.search(haystack, needle, outOfOrderLimit, rankThreshold);\n\n if (idxs?.length) {\n if (info && order) {\n matches = order.map((idx) => options[info.idx[idx]]);\n } else {\n matches = idxs.map((idx) => options[idx]);\n }\n }\n }\n\n return matches;\n}\n"],"names":[],"mappings":";;AAKA,MAAM,gBAAmB,GAAA,SAAA;AAGzB,MAAM,mBAAsB,GAAA,4CAAA;AAE5B,MAAM,eAAkB,GAAA,CAAA;AAExB,MAAM,eAAkB,GAAA,EAAA;AAExB,MAAM,aAAgB,GAAA,CAAA;AAEtB,MAAM,aAAgB,GAAA,GAAA;AAGtB,MAAM,KAAK,IAAI,MAAA,CAAO,EAAE,SAAA,EAAW,GAAG,CAAA;AAEtB,SAAA,SAAA,CACd,OACA,EAAA,QAAA,EACA,MACA,EAAA;AACA,EAAA,IAAI,UAAe,EAAC;AAEpB,EAAA,IAAI,WAAW,EAAI,EAAA;AACjB,IAAU,OAAA,GAAA,OAAA;AAAA,GACZ,MAAA;AAAA;AAAA,IAIE,gBAAA,CAAiB,KAAK,MAAM,CAAA;AAAA,IAE5B,mBAAA,CAAoB,KAAK,MAAM,CAAA;AAAA,IAE/B,OAAO,MAAS,GAAA,eAAA,IAChB,GAAG,KAAM,CAAA,MAAM,EAAE,MAAS,GAAA;AAAA,IAC1B;AACA,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CAAK,EAAA,EAAA;AACxC,MAAI,IAAA,IAAA,GAAO,SAAS,CAAC,CAAA;AAErB,MAAI,IAAA,IAAA,CAAK,QAAS,CAAA,MAAM,CAAG,EAAA;AACzB,QAAQ,OAAA,CAAA,IAAA,CAAK,OAAQ,CAAA,CAAC,CAAC,CAAA;AAAA;AACzB;AACF,GAGG,MAAA;AACH,IAAM,MAAA,CAAC,IAAM,EAAA,IAAA,EAAM,KAAK,CAAA,GAAI,GAAG,MAAO,CAAA,QAAA,EAAU,MAAQ,EAAA,eAAA,EAAiB,aAAa,CAAA;AAEtF,IAAA,IAAI,6BAAM,MAAQ,EAAA;AAChB,MAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,QAAU,OAAA,GAAA,KAAA,CAAM,IAAI,CAAC,GAAA,KAAQ,QAAQ,IAAK,CAAA,GAAA,CAAI,GAAG,CAAC,CAAC,CAAA;AAAA,OAC9C,MAAA;AACL,QAAA,OAAA,GAAU,KAAK,GAAI,CAAA,CAAC,GAAQ,KAAA,OAAA,CAAQ,GAAG,CAAC,CAAA;AAAA;AAC1C;AACF;AAGF,EAAO,OAAA,OAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getEnrichedFiltersRequest.js","sources":["../../../src/variables/getEnrichedFiltersRequest.ts"],"sourcesContent":["import { DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions } from '@grafana/data';\nimport { isFiltersRequestEnricher, SceneObject } from '../core/types';\n\nexport function getEnrichedFiltersRequest(\n sourceRunner: SceneObject\n): Partial<DataSourceGetTagKeysOptions | DataSourceGetTagValuesOptions> | null {\n const root = sourceRunner.getRoot();\n\n if (isFiltersRequestEnricher(root)) {\n return root.enrichFiltersRequest(sourceRunner);\n }\n\n return null;\n}\n"],"names":[],"mappings":";;AAGO,SAAS,0BACd,YAC6E,EAAA;AAC7E,EAAM,MAAA,IAAA,GAAO,aAAa,OAAQ,EAAA;AAElC,EAAI,IAAA,wBAAA,CAAyB,IAAI,CAAG,EAAA;AAClC,IAAO,OAAA,IAAA,CAAK,qBAAqB,YAAY,CAAA;AAAA;AAG/C,EAAO,OAAA,IAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultGroupByCustomIndicatorContainer.js","sources":["../../../../src/variables/groupby/DefaultGroupByCustomIndicatorContainer.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport React from 'react';\nimport { Icon, IconButton, Tooltip, getInputStyles, useTheme2 } from '@grafana/ui';\nimport { GroupByVariable } from './GroupByVariable';\nimport { isArray } from 'lodash';\nimport { css, cx } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\n\ntype DefaultGroupByCustomIndicatorProps = {\n model: GroupByVariable;\n};\n\nexport function DefaultGroupByCustomIndicatorContainer(props: DefaultGroupByCustomIndicatorProps) {\n const { model } = props;\n const theme = useTheme2();\n const styles = getStyles(theme);\n const inputStyles = getInputStyles({ theme, invalid: false });\n const value = isArray(model.state.value) ? model.state.value : model.state.value ? [model.state.value] : [];\n\n let buttons: React.ReactNode[] = [];\n\n if (value && value.length) {\n buttons.push(\n <IconButton\n aria-label={t('grafana-scenes.variables.default-group-by-custom-indicator-container.aria-label-clear', 'clear')}\n key=\"clear\"\n name=\"times\"\n size=\"md\"\n className={styles.clearIcon}\n onClick={(e) => {\n model.changeValueTo([], undefined, true);\n if (model.checkIfRestorable([])) {\n model.setState({ restorable: true });\n }\n }}\n />\n );\n }\n\n if (model.state.restorable) {\n buttons.push(\n <IconButton\n onClick={(e) => {\n props.model.restoreDefaultValues();\n }}\n onKeyDownCapture={(e) => {\n if (e.key === 'Enter') {\n props.model.restoreDefaultValues();\n }\n }}\n key=\"restore\"\n name=\"history\"\n size=\"md\"\n className={styles.clearIcon}\n tooltip={t(\n 'grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip-restore-groupby-set-by-this-dashboard',\n 'Restore groupby set by this dashboard.'\n )}\n />\n );\n }\n\n if (!model.state.restorable) {\n buttons.push(\n <Tooltip\n key=\"tooltip\"\n content={t(\n 'grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip',\n 'Applied by default in this dashboard. If edited, it carries over to other dashboards.'\n )}\n placement=\"bottom\"\n >\n <Icon name=\"info-circle\" size=\"md\" />\n </Tooltip>\n );\n }\n\n return (\n <div\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n className={cx(\n inputStyles.suffix,\n css({\n position: 'relative',\n })\n )}\n >\n {buttons}\n </div>\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n clearIcon: css({\n color: theme.colors.action.disabledText,\n cursor: 'pointer',\n '&:hover:before': {\n backgroundColor: 'transparent',\n },\n '&:hover': {\n color: theme.colors.text.primary,\n },\n }),\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GroupByValueContainer.js","sources":["../../../../src/variables/groupby/GroupByValueContainer.tsx"],"sourcesContent":["import React from 'react';\nimport { getSelectStyles, useTheme2 } from '@grafana/ui';\n// @ts-expect-error (temporary till we update grafana/data)\nimport { DrilldownsApplicability, GrafanaTheme2 } from '@grafana/data';\nimport { cx } from '@emotion/css';\nimport { getNonApplicablePillStyles } from '../utils';\n\nexport interface GroupByContainerProps {\n innerProps: JSX.IntrinsicElements['div'];\n keysApplicability?: DrilldownsApplicability[];\n}\n\nexport const GroupByValueContainer = ({\n keysApplicability,\n children,\n}: React.PropsWithChildren<GroupByContainerProps>) => {\n const theme = useTheme2();\n const styles = getSelectStyles(theme);\n const { disabledPill, strikethrough } = getNonApplicablePillStyles(theme);\n\n // Get the value from the first child (the label div)\n const firstChild = React.Children.toArray(children)[0];\n let isApplicable = true;\n\n if (React.isValidElement(firstChild) && firstChild.props?.data?.value) {\n const value = firstChild.props.data.value;\n const applicability = keysApplicability?.find((item) => item.key === value);\n\n if (applicability && !applicability.applicable) {\n isApplicable = false;\n }\n }\n\n return (\n <div className={cx(styles.multiValueContainer, !isApplicable && cx(disabledPill, strikethrough))}>{children}</div>\n );\n};\n"],"names":[],"mappings":";;;;;AAYO,MAAM,wBAAwB,CAAC;AAAA,EACpC,iBAAA;AAAA,EACA;AACF,CAAsD,KAAA;AAftD,EAAA,IAAA,EAAA,EAAA,EAAA;AAgBE,EAAA,MAAM,QAAQ,SAAU,EAAA;AACxB,EAAM,MAAA,MAAA,GAAS,gBAAgB,KAAK,CAAA;AACpC,EAAA,MAAM,EAAE,YAAA,EAAc,aAAc,EAAA,GAAI,2BAA2B,KAAK,CAAA;AAGxE,EAAA,MAAM,aAAa,KAAM,CAAA,QAAA,CAAS,OAAQ,CAAA,QAAQ,EAAE,CAAC,CAAA;AACrD,EAAA,IAAI,YAAe,GAAA,IAAA;AAEnB,EAAI,IAAA,KAAA,CAAM,eAAe,UAAU,CAAA,KAAA,CAAK,sBAAW,KAAX,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,IAAlB,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAwB,KAAO,CAAA,EAAA;AACrE,IAAM,MAAA,KAAA,GAAQ,UAAW,CAAA,KAAA,CAAM,IAAK,CAAA,KAAA;AACpC,IAAA,MAAM,gBAAgB,iBAAmB,IAAA,IAAA,GAAA,MAAA,GAAA,iBAAA,CAAA,IAAA,CAAK,CAAC,IAAA,KAAS,KAAK,GAAQ,KAAA,KAAA,CAAA;AAErE,IAAI,IAAA,aAAA,IAAiB,CAAC,aAAA,CAAc,UAAY,EAAA;AAC9C,MAAe,YAAA,GAAA,KAAA;AAAA;AACjB;AAGF,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,EAAA,CAAG,MAAO,CAAA,mBAAA,EAAqB,CAAC,YAAA,IAAgB,EAAG,CAAA,YAAA,EAAc,aAAa,CAAC,KAAI,QAAS,CAAA;AAEhH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GroupByVariable.js","sources":["../../../../src/variables/groupby/GroupByVariable.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport {\n AdHocVariableFilter,\n DataSourceApi,\n // @ts-expect-error (temporary till we update grafana/data)\n DrilldownsApplicability,\n GetTagResponse,\n MetricFindValue,\n SelectableValue,\n} from '@grafana/data';\nimport { allActiveGroupByVariables } from './findActiveGroupByVariablesByUid';\nimport { DataSourceRef, VariableType } from '@grafana/schema';\nimport { SceneComponentProps, ControlsLayout, SceneObjectUrlSyncHandler, SceneDataQuery } from '../../core/types';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport {\n SceneVariableValueChangedEvent,\n ValidateAndUpdateResult,\n VariableValue,\n VariableValueOption,\n VariableValueSingle,\n} from '../types';\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from '../variants/MultiValueVariable';\nimport { from, lastValueFrom, map, mergeMap, Observable, of, take, tap } from 'rxjs';\nimport { getDataSource } from '../../utils/getDataSource';\nimport { InputActionMeta, MultiSelect, Select } from '@grafana/ui';\nimport { isArray, isEqual } from 'lodash';\nimport { dataFromResponse, getQueriesForVariables, handleOptionGroups, responseHasError } from '../utils';\nimport { OptionWithCheckbox } from '../components/VariableValueSelect';\nimport { GroupByVariableUrlSyncHandler } from './GroupByVariableUrlSyncHandler';\nimport { getOptionSearcher } from '../components/getOptionSearcher';\nimport { getEnrichedFiltersRequest } from '../getEnrichedFiltersRequest';\nimport { wrapInSafeSerializableSceneObject } from '../../utils/wrapInSafeSerializableSceneObject';\nimport { DefaultGroupByCustomIndicatorContainer } from './DefaultGroupByCustomIndicatorContainer';\nimport { GroupByValueContainer, GroupByContainerProps } from './GroupByValueContainer';\nimport { getInteractionTracker } from '../../core/sceneGraph/getInteractionTracker';\nimport { GROUPBY_DIMENSIONS_INTERACTION } from '../../performance/interactionConstants';\n\nexport interface GroupByVariableState extends MultiValueVariableState {\n /** Defaults to \"Group\" */\n name: string;\n /** The visible keys to group on */\n // TODO review this type and name (naming is hard)\n defaultOptions?: MetricFindValue[];\n /** Base filters to always apply when looking up keys */\n baseFilters?: AdHocVariableFilter[];\n /** Datasource to use for getTagKeys and also controls which scene queries the group by should apply to */\n datasource: DataSourceRef | null;\n /** Default value set for this groupBy. When this field is set, changing value will allow the user to restore back to this default value */\n defaultValue?: { text: VariableValue; value: VariableValue };\n /** Needed for url sync when passing flag to another dashboard */\n restorable?: boolean;\n /** Controls if the group by can be changed */\n readOnly?: boolean;\n /**\n * @experimental\n * Controls the layout and design of the label.\n * Vertical layout does not yet support operator selector.\n */\n layout?: ControlsLayout;\n /**\n * Defaults to same-datasource which means group by will automatically be applied to all queries with the same data source as this GroupBySet.\n * In manual mode no queries are re-run on changes, and you have to manually apply the filter to whatever queries you want.\n */\n applyMode?: 'auto' | 'manual';\n /**\n * Filter out the keys that do not match the regex.\n */\n tagKeyRegexFilter?: RegExp;\n /**\n * Extension hook for customizing the key lookup.\n * Return replace: true if you want to override the default lookup\n * Return replace: false if you want to combine the results with the default lookup\n */\n getTagKeysProvider?: getTagKeysProvider;\n /**\n * Holds the applicability for each of the selected keys\n */\n keysApplicability?: DrilldownsApplicability[];\n /**\n * state for checking whether drilldown applicability is enabled\n */\n applicabilityEnabled?: boolean;\n}\n\nexport type getTagKeysProvider = (\n set: GroupByVariable,\n currentKey: string | null\n) => Promise<{ replace?: boolean; values: MetricFindValue[] | GetTagResponse }>;\n\nexport class GroupByVariable extends MultiValueVariable<GroupByVariableState> {\n static Component = GroupByVariableRenderer;\n isLazy = true;\n\n protected _urlSync: SceneObjectUrlSyncHandler = new GroupByVariableUrlSyncHandler(this);\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 private _updateValueGivenNewOptions(options: VariableValueOption[]) {\n const { value: currentValue, text: currentText } = this.state;\n\n const stateUpdate: Partial<MultiValueVariableState> = {\n options,\n loading: false,\n value: currentValue ?? [],\n text: currentText ?? [],\n };\n\n this.setState(stateUpdate);\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n // When default dimensions are provided, return the static list\n if (this.state.defaultOptions) {\n return of(\n this.state.defaultOptions.map((o) => ({\n label: o.text,\n value: String(o.value),\n group: o.group,\n }))\n );\n }\n\n this.setState({ loading: true, error: null });\n\n return from(\n getDataSource(this.state.datasource, {\n __sceneObject: wrapInSafeSerializableSceneObject(this),\n })\n ).pipe(\n mergeMap((ds) => {\n return from(this._getKeys(ds)).pipe(\n tap((response) => {\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n }),\n map((response) => dataFromResponse(response)),\n take(1),\n mergeMap((data) => {\n const a: VariableValueOption[] = data.map((i) => {\n return {\n label: i.text,\n value: i.value ? String(i.value) : i.text,\n group: i.group,\n };\n });\n return of(a);\n })\n );\n })\n );\n }\n\n public constructor(initialState: Partial<GroupByVariableState>) {\n super({\n isMulti: true,\n name: '',\n value: [],\n text: [],\n options: [],\n datasource: null,\n baseFilters: [],\n applyMode: 'auto',\n layout: 'horizontal',\n type: 'groupby' as VariableType,\n ...initialState,\n noValueOnClear: true,\n });\n\n if (this.state.defaultValue) {\n this.changeValueTo(this.state.defaultValue.value, this.state.defaultValue.text, false);\n }\n\n if (this.state.applyMode === 'auto') {\n this.addActivationHandler(() => {\n allActiveGroupByVariables.add(this);\n\n return () => allActiveGroupByVariables.delete(this);\n });\n }\n\n this.addActivationHandler(this._activationHandler);\n }\n\n private _activationHandler = () => {\n this._verifyApplicability();\n\n if (this.state.defaultValue) {\n if (this.checkIfRestorable(this.state.value)) {\n this.setState({ restorable: true });\n }\n }\n\n return () => {\n if (this.state.defaultValue) {\n this.restoreDefaultValues();\n }\n\n this.setState({ applicabilityEnabled: false });\n };\n };\n\n public getApplicableKeys(): VariableValue {\n const { value, keysApplicability } = this.state;\n\n const valueArray = isArray(value) ? value : value ? [value] : [];\n\n if (!keysApplicability || keysApplicability.length === 0) {\n return valueArray;\n }\n\n const applicableValues = valueArray.filter((val) => {\n const applicability = keysApplicability.find((item) => item.key === val);\n return !applicability || applicability.applicable !== false;\n });\n\n return applicableValues;\n }\n\n public async getGroupByApplicabilityForQueries(\n value: VariableValue,\n queries: SceneDataQuery[]\n ): Promise<DrilldownsApplicability[] | undefined> {\n const ds = await getDataSource(this.state.datasource, {\n __sceneObject: wrapInSafeSerializableSceneObject(this),\n });\n\n // @ts-expect-error (temporary till we update grafana/data)\n if (!ds.getDrilldownsApplicability) {\n return;\n }\n\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n\n // @ts-expect-error (temporary till we update grafana/data)\n return await ds.getDrilldownsApplicability({\n groupByKeys: Array.isArray(value) ? value.map((v) => String(v)) : value ? [String(value)] : [],\n queries,\n timeRange,\n scopes: sceneGraph.getScopes(this),\n ...getEnrichedFiltersRequest(this),\n });\n }\n\n public async _verifyApplicability() {\n const queries = getQueriesForVariables(this);\n const value = this.state.value;\n\n const response = await this.getGroupByApplicabilityForQueries(value, queries);\n\n if (!response) {\n return;\n }\n\n if (!isEqual(response, this.state.keysApplicability)) {\n this.setState({ keysApplicability: response ?? undefined, applicabilityEnabled: true });\n\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n } else {\n this.setState({ applicabilityEnabled: true });\n }\n }\n\n // This method is related to the defaultValue property. We check if the current value\n // is different from the default value. If it is, the groupBy will show a button\n // allowing the user to restore the default values.\n public checkIfRestorable(values: VariableValue) {\n const originalValues = isArray(this.state.defaultValue?.value)\n ? this.state.defaultValue?.value\n : this.state.defaultValue?.value\n ? [this.state.defaultValue?.value]\n : [];\n const vals = isArray(values) ? values : [values];\n\n if (vals.length !== originalValues.length) {\n return true;\n }\n\n return !isEqual(vals, originalValues);\n }\n\n public restoreDefaultValues() {\n this.setState({ restorable: false });\n\n if (!this.state.defaultValue) {\n return;\n }\n\n this.changeValueTo(this.state.defaultValue.value, this.state.defaultValue.text, true);\n }\n\n /**\n * Get possible keys given current filters. Do not call from plugins directly\n */\n public _getKeys = async (ds: DataSourceApi) => {\n // TODO: provide current dimensions?\n const override = await this.state.getTagKeysProvider?.(this, null);\n\n if (override && override.replace) {\n return override.values;\n }\n\n if (this.state.defaultOptions) {\n return this.state.defaultOptions.concat(dataFromResponse(override?.values ?? []));\n }\n\n if (!ds.getTagKeys) {\n return [];\n }\n\n const queries = getQueriesForVariables(this);\n\n const otherFilters = this.state.baseFilters || [];\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const response = await ds.getTagKeys({\n filters: otherFilters,\n queries,\n timeRange,\n scopes: sceneGraph.getScopes(this),\n ...getEnrichedFiltersRequest(this),\n });\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n\n let keys = dataFromResponse(response);\n if (override) {\n keys = keys.concat(dataFromResponse(override.values));\n }\n\n const tagKeyRegexFilter = this.state.tagKeyRegexFilter;\n if (tagKeyRegexFilter) {\n keys = keys.filter((f) => f.text.match(tagKeyRegexFilter));\n }\n\n return keys;\n };\n\n /**\n * Allows clearing the value of the variable to an empty value. Overrides default behavior of a MultiValueVariable\n */\n public getDefaultMultiState(options: VariableValueOption[]) {\n return { value: [], text: [] };\n }\n}\n\nexport function GroupByVariableRenderer({ model }: SceneComponentProps<GroupByVariable>) {\n const {\n value,\n text,\n key,\n isMulti = true,\n maxVisibleValues,\n noValueOnClear,\n options,\n includeAll,\n allowCustomValue = true,\n defaultValue,\n keysApplicability,\n } = model.useState();\n\n const values = useMemo<Array<SelectableValue<VariableValueSingle>>>(() => {\n const arrayValue = isArray(value) ? value : [value];\n const arrayText = isArray(text) ? text : [text];\n\n return arrayValue.map((value, idx) => ({\n value,\n label: String(arrayText[idx] ?? value),\n }));\n }, [value, text]);\n\n const [isFetchingOptions, setIsFetchingOptions] = useState(false);\n const [isOptionsOpen, setIsOptionsOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n\n // To not trigger queries on every selection we store this state locally here and only update the variable onBlur\n const [uncommittedValue, setUncommittedValue] = useState(values);\n\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n\n const hasDefaultValue = defaultValue !== undefined;\n\n // Detect value changes outside\n useEffect(() => {\n setUncommittedValue(values);\n }, [values]);\n\n const onInputChange = (value: string, { action }: InputActionMeta) => {\n if (action === 'input-change') {\n setInputValue(value);\n if (model.onSearchChange) {\n model.onSearchChange!(value);\n }\n return value;\n }\n\n if (action === 'input-blur') {\n setInputValue('');\n return '';\n }\n\n return inputValue;\n };\n\n const filteredOptions = useMemo(\n () => handleOptionGroups(optionSearcher(inputValue).map(toSelectableValue)),\n [optionSearcher, inputValue]\n );\n\n return isMulti ? (\n <MultiSelect<VariableValueSingle>\n aria-label={t(\n 'grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector',\n 'Group by selector'\n )}\n data-testid={`GroupBySelect-${key}`}\n id={key}\n placeholder={t(\n 'grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label',\n 'Group by label'\n )}\n width=\"auto\"\n allowCustomValue={allowCustomValue}\n inputValue={inputValue}\n value={uncommittedValue}\n noMultiValueWrap={true}\n maxVisibleValues={maxVisibleValues ?? 5}\n tabSelectsValue={false}\n virtualized\n options={filteredOptions}\n filterOption={filterNoOp}\n closeMenuOnSelect={false}\n isOpen={isOptionsOpen}\n isClearable={true}\n hideSelectedOptions={false}\n isLoading={isFetchingOptions}\n components={{\n Option: OptionWithCheckbox,\n ...(hasDefaultValue\n ? {\n IndicatorsContainer: () => <DefaultGroupByCustomIndicatorContainer model={model} />,\n }\n : {}),\n MultiValueContainer: ({ innerProps, children }: React.PropsWithChildren<GroupByContainerProps>) => (\n <GroupByValueContainer innerProps={innerProps} keysApplicability={keysApplicability}>\n {children}\n </GroupByValueContainer>\n ),\n }}\n onInputChange={onInputChange}\n onBlur={() => {\n model.changeValueTo(\n uncommittedValue.map((x) => x.value!),\n uncommittedValue.map((x) => x.label!),\n true\n );\n\n const restorable = model.checkIfRestorable(uncommittedValue.map((v) => v.value!));\n\n if (restorable !== model.state.restorable) {\n model.setState({ restorable: restorable });\n }\n\n model._verifyApplicability();\n }}\n onChange={(newValue, action) => {\n if (action.action === 'clear' && noValueOnClear) {\n model.changeValueTo([], undefined, true);\n }\n\n setUncommittedValue(newValue);\n }}\n onOpenMenu={async () => {\n const profiler = getInteractionTracker(model);\n profiler?.startInteraction(GROUPBY_DIMENSIONS_INTERACTION);\n\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n\n profiler?.stopInteraction();\n }}\n onCloseMenu={() => {\n setIsOptionsOpen(false);\n }}\n />\n ) : (\n <Select\n aria-label={t(\n 'grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector',\n 'Group by selector'\n )}\n data-testid={`GroupBySelect-${key}`}\n id={key}\n placeholder={t(\n 'grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label',\n 'Group by label'\n )}\n width=\"auto\"\n inputValue={inputValue}\n value={uncommittedValue && uncommittedValue.length > 0 ? uncommittedValue : null}\n allowCustomValue={allowCustomValue}\n noMultiValueWrap={true}\n maxVisibleValues={maxVisibleValues ?? 5}\n tabSelectsValue={false}\n virtualized\n options={filteredOptions}\n filterOption={filterNoOp}\n closeMenuOnSelect={true}\n isOpen={isOptionsOpen}\n isClearable={true}\n hideSelectedOptions={false}\n noValueOnClear={true}\n isLoading={isFetchingOptions}\n onInputChange={onInputChange}\n onChange={(newValue, action) => {\n if (action.action === 'clear') {\n setUncommittedValue([]);\n if (noValueOnClear) {\n model.changeValueTo([]);\n }\n return;\n }\n if (newValue?.value) {\n setUncommittedValue([newValue]);\n model.changeValueTo([newValue.value], newValue.label ? [newValue.label] : undefined);\n }\n }}\n onOpenMenu={async () => {\n const profiler = getInteractionTracker(model);\n profiler?.startInteraction(GROUPBY_DIMENSIONS_INTERACTION);\n\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n\n profiler?.stopInteraction();\n }}\n onCloseMenu={() => {\n setIsOptionsOpen(false);\n }}\n />\n );\n}\n\nconst filterNoOp = () => true;\n\nfunction toSelectableValue(input: VariableValueOption): SelectableValue<VariableValueSingle> {\n const { label, value, group } = input;\n const result: SelectableValue<VariableValueSingle> = {\n label,\n value,\n };\n\n if (group) {\n result.group = group;\n }\n\n return result;\n}\n"],"names":["value"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GroupByVariableUrlSyncHandler.js","sources":["../../../../src/variables/groupby/GroupByVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValues } from '../../core/types';\nimport { GroupByVariable } from './GroupByVariable';\nimport { toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils';\nimport { VariableValue } from '../types';\n\nexport class GroupByVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {\n public constructor(private _sceneObject: GroupByVariable) {}\n\n protected _nextChangeShouldAddHistoryStep = false;\n\n private getRestorableKey(): string {\n return `restorable-var-${this._sceneObject.state.name}`;\n }\n\n private 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(), this.getRestorableKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n\n return {\n [this.getKey()]:\n this._sceneObject.state.defaultValue && !this._sceneObject.state.restorable\n ? ['']\n : toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text),\n [this.getRestorableKey()]: this._sceneObject.state.defaultValue\n ? this._sceneObject.state.restorable\n ? 'true'\n : 'false'\n : null,\n };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n let urlValue = values[this.getKey()];\n let restorableValue = values[this.getRestorableKey()];\n\n if (urlValue != null) {\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 const { values, texts } = fromUrlValues(urlValue);\n\n if (this._sceneObject.state.defaultValue && (restorableValue === 'false' || restorableValue === undefined)) {\n return;\n }\n\n if (restorableValue === 'false') {\n this._sceneObject.changeValueTo([], [], false);\n return;\n }\n\n this._sceneObject.changeValueTo(values, texts);\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 toUrlValues(values: VariableValue, texts: VariableValue): string[] {\n values = Array.isArray(values) ? values : [values];\n texts = Array.isArray(texts) ? texts : [texts];\n\n return values.map((value, idx) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n value = String(value);\n\n let text = texts[idx];\n text = text === undefined || text === null ? value : String(text);\n\n return toUrlCommaDelimitedString(value, text);\n });\n}\n\nfunction fromUrlValues(urlValues: string | string[]): { values: string[]; texts: string[] } {\n urlValues = Array.isArray(urlValues) ? urlValues : [urlValues];\n\n return urlValues.reduce<{ values: string[]; texts: string[] }>(\n (acc, urlValue) => {\n const [value, label] = (urlValue ?? '').split(',');\n\n acc.values.push(unescapeUrlDelimiters(value));\n acc.texts.push(unescapeUrlDelimiters(label ?? value));\n\n return acc;\n },\n {\n values: [],\n texts: [],\n }\n );\n}\n"],"names":["values"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"findActiveGroupByVariablesByUid.js","sources":["../../../../src/variables/groupby/findActiveGroupByVariablesByUid.ts"],"sourcesContent":["import { interpolate } from '../../core/sceneGraph/sceneGraph';\nimport { GroupByVariable } from './GroupByVariable';\n\nexport const allActiveGroupByVariables = new Set<GroupByVariable>();\n\nexport function findActiveGroupByVariablesByUid(dsUid: string | undefined): GroupByVariable | undefined {\n for (const groupByVariable of allActiveGroupByVariables.values()) {\n if (interpolate(groupByVariable, groupByVariable.state.datasource?.uid) === dsUid) {\n return groupByVariable;\n }\n }\n\n return undefined;\n}\n"],"names":[],"mappings":";;AAGa,MAAA,yBAAA,uBAAgC,GAAqB;AAE3D,SAAS,gCAAgC,KAAwD,EAAA;AALxG,EAAA,IAAA,EAAA;AAME,EAAW,KAAA,MAAA,eAAA,IAAmB,yBAA0B,CAAA,MAAA,EAAU,EAAA;AAChE,IAAI,IAAA,WAAA,CAAY,kBAAiB,EAAgB,GAAA,eAAA,CAAA,KAAA,CAAM,eAAtB,IAAkC,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,MAAM,KAAO,EAAA;AACjF,MAAO,OAAA,eAAA;AAAA;AACT;AAGF,EAAO,OAAA,MAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScopedVarsVariable.js","sources":["../../../../src/variables/interpolation/ScopedVarsVariable.ts"],"sourcesContent":["import { ScopedVar } from '@grafana/data';\n\nimport { VariableValue } from '../types';\n\nimport { FormatVariable } from './formatRegistry';\nimport { getFieldAccessor } from './fieldAccessorCache';\n\nexport class ScopedVarsVariable implements FormatVariable {\n public state: { name: string; value: ScopedVar; type: string };\n\n public constructor(name: string, value: ScopedVar) {\n this.state = { name, value, type: 'scopedvar' };\n }\n\n public getValue(fieldPath: string): VariableValue {\n let { value } = this.state;\n let realValue = value.value;\n\n if (fieldPath) {\n realValue = getFieldAccessor(fieldPath)(value.value);\n } else {\n realValue = value.value;\n }\n\n if (realValue === 'string' || realValue === 'number' || realValue === 'boolean') {\n return realValue;\n }\n\n return String(realValue);\n }\n\n public getValueText(): string {\n const { value } = this.state;\n\n if (value.text != null) {\n return String(value.text);\n }\n\n return String(value);\n }\n}\n\nlet scopedVarsVariable: ScopedVarsVariable | undefined;\n\n/**\n * Reuses a single instance to avoid unnecessary memory allocations\n */\nexport function getSceneVariableForScopedVar(name: string, value: ScopedVar): FormatVariable {\n if (!scopedVarsVariable) {\n scopedVarsVariable = new ScopedVarsVariable(name, value);\n } else {\n scopedVarsVariable.state.name = name;\n scopedVarsVariable.state.value = value;\n }\n\n return scopedVarsVariable;\n}\n"],"names":[],"mappings":";;AAOO,MAAM,kBAA6C,CAAA;AAAA,EAGjD,WAAA,CAAY,MAAc,KAAkB,EAAA;AACjD,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,IAAM,EAAA,KAAA,EAAO,MAAM,WAAY,EAAA;AAAA;AAChD,EAEO,SAAS,SAAkC,EAAA;AAChD,IAAI,IAAA,EAAE,KAAM,EAAA,GAAI,IAAK,CAAA,KAAA;AACrB,IAAA,IAAI,YAAY,KAAM,CAAA,KAAA;AAEtB,IAAA,IAAI,SAAW,EAAA;AACb,MAAA,SAAA,GAAY,gBAAiB,CAAA,SAAS,CAAE,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,KAC9C,MAAA;AACL,MAAA,SAAA,GAAY,KAAM,CAAA,KAAA;AAAA;AAGpB,IAAA,IAAI,SAAc,KAAA,QAAA,IAAY,SAAc,KAAA,QAAA,IAAY,cAAc,SAAW,EAAA;AAC/E,MAAO,OAAA,SAAA;AAAA;AAGT,IAAA,OAAO,OAAO,SAAS,CAAA;AAAA;AACzB,EAEO,YAAuB,GAAA;AAC5B,IAAM,MAAA,EAAE,KAAM,EAAA,GAAI,IAAK,CAAA,KAAA;AAEvB,IAAI,IAAA,KAAA,CAAM,QAAQ,IAAM,EAAA;AACtB,MAAO,OAAA,MAAA,CAAO,MAAM,IAAI,CAAA;AAAA;AAG1B,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA;AAEvB;AAEA,IAAI,kBAAA;AAKY,SAAA,4BAAA,CAA6B,MAAc,KAAkC,EAAA;AAC3F,EAAA,IAAI,CAAC,kBAAoB,EAAA;AACvB,IAAqB,kBAAA,GAAA,IAAI,kBAAmB,CAAA,IAAA,EAAM,KAAK,CAAA;AAAA,GAClD,MAAA;AACL,IAAA,kBAAA,CAAmB,MAAM,IAAO,GAAA,IAAA;AAChC,IAAA,kBAAA,CAAmB,MAAM,KAAQ,GAAA,KAAA;AAAA;AAGnC,EAAO,OAAA,kBAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sources":["../../../../src/variables/interpolation/defaults.ts"],"sourcesContent":["import { SceneDataNode } from '../../core/SceneDataNode';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneTimeRange } from '../../core/SceneTimeRange';\nimport { SceneVariable, SceneVariables, SceneVariableSetState, SceneVariableState } from '../types';\n\nexport const EmptyDataNode = new SceneDataNode();\nexport const DefaultTimeRange = new SceneTimeRange();\n\n/**\n * Since this is used from sceneGraph.getVariables we cannot reference SceneVariableSet here as it would create a circular reference\n */\nexport class EmptyVariableSetImpl extends SceneObjectBase<SceneVariableSetState> implements SceneVariables {\n public constructor() {\n super({ variables: [] });\n }\n\n public getByName(name: string): SceneVariable<SceneVariableState> | undefined {\n return undefined;\n }\n\n public isVariableLoadingOrWaitingToUpdate(variable: SceneVariable<SceneVariableState>): boolean {\n return false;\n }\n}\n\nexport const EmptyVariableSet = new EmptyVariableSetImpl();\n"],"names":[],"mappings":";;;;AAKa,MAAA,aAAA,GAAgB,IAAI,aAAc;AAClC,MAAA,gBAAA,GAAmB,IAAI,cAAe;AAK5C,MAAM,6BAA6B,eAAiE,CAAA;AAAA,EAClG,WAAc,GAAA;AACnB,IAAA,KAAA,CAAM,EAAE,SAAA,EAAW,EAAC,EAAG,CAAA;AAAA;AACzB,EAEO,UAAU,IAA6D,EAAA;AAC5E,IAAO,OAAA,MAAA;AAAA;AACT,EAEO,mCAAmC,QAAsD,EAAA;AAC9F,IAAO,OAAA,KAAA;AAAA;AAEX;AAEa,MAAA,gBAAA,GAAmB,IAAI,oBAAqB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fieldAccessorCache.js","sources":["../../../../src/variables/interpolation/fieldAccessorCache.ts"],"sourcesContent":["import { property } from 'lodash';\n\ninterface FieldAccessorCache {\n [key: string]: (obj: object) => any;\n}\n\nlet fieldAccessorCache: FieldAccessorCache = {};\n\nexport function getFieldAccessor(fieldPath: string) {\n const accessor = fieldAccessorCache[fieldPath];\n if (accessor) {\n return accessor;\n }\n\n return (fieldAccessorCache[fieldPath] = property(fieldPath));\n}\n"],"names":[],"mappings":";;AAMA,IAAI,qBAAyC,EAAC;AAEvC,SAAS,iBAAiB,SAAmB,EAAA;AAClD,EAAM,MAAA,QAAA,GAAW,mBAAmB,SAAS,CAAA;AAC7C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAO,OAAA,QAAA;AAAA;AAGT,EAAA,OAAQ,kBAAmB,CAAA,SAAS,CAAI,GAAA,QAAA,CAAS,SAAS,CAAA;AAC5D;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formatRegistry.js","sources":["../../../../src/variables/interpolation/formatRegistry.ts"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport { isArray, map, replace } from 'lodash';\n\nimport { dateTime, Registry, RegistryItem, textUtil, escapeRegex, urlUtil } from '@grafana/data';\nimport { VariableType, VariableFormatID } from '@grafana/schema';\n\nimport { VariableValue, VariableValueSingle } from '../types';\nimport { ALL_VARIABLE_VALUE } from '../constants';\nimport { SceneObjectUrlSyncHandler } from '../../core/types';\n\nexport interface FormatRegistryItem extends RegistryItem {\n formatter(value: VariableValue, args: string[], variable: FormatVariable, fieldPath?: string): string;\n}\n\n/**\n * Slimmed down version of the SceneVariable interface so that it only contains what the formatters actually use.\n * This is useful as we have some implementations of this interface that does not need to be full scene objects.\n * For example ScopedVarsVariable and LegacyVariableWrapper.\n */\nexport interface FormatVariable {\n state: {\n name: string;\n type: VariableType | string;\n isMulti?: boolean;\n includeAll?: boolean;\n };\n\n getValue(fieldPath?: string): VariableValue | undefined | null;\n getValueText?(fieldPath?: string): string;\n urlSync?: SceneObjectUrlSyncHandler;\n}\n\nexport const formatRegistry = new Registry<FormatRegistryItem>(() => {\n const formats: FormatRegistryItem[] = [\n {\n id: VariableFormatID.Lucene,\n name: 'Lucene',\n description: 'Values are lucene escaped and multi-valued variables generate an OR expression',\n formatter: (value) => {\n if (typeof value === 'string') {\n return luceneEscape(value);\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '__empty__';\n }\n const quotedValues = map(value, (val: string) => {\n return '\"' + luceneEscape(val) + '\"';\n });\n return '(' + quotedValues.join(' OR ') + ')';\n } else {\n return luceneEscape(`${value}`);\n }\n },\n },\n {\n id: VariableFormatID.Raw,\n name: 'raw',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.keep-value-as-is',\n 'Keep value as is'\n ),\n formatter: (value) => String(value),\n },\n {\n id: VariableFormatID.Regex,\n name: 'Regex',\n description: 'Values are regex escaped and multi-valued variables generate a (<value>|<value>) expression',\n formatter: (value) => {\n if (typeof value === 'string') {\n return escapeRegex(value);\n }\n\n if (Array.isArray(value)) {\n const escapedValues = value.map((item) => {\n if (typeof item === 'string') {\n return escapeRegex(item);\n } else {\n return escapeRegex(String(item));\n }\n });\n\n if (escapedValues.length === 1) {\n return escapedValues[0];\n }\n\n return '(' + escapedValues.join('|') + ')';\n }\n\n return escapeRegex(`${value}`);\n },\n },\n {\n id: VariableFormatID.Pipe,\n name: 'Pipe',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.values-are-separated-by-character',\n 'Values are separated by | character'\n ),\n formatter: (value) => {\n if (typeof value === 'string') {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.join('|');\n }\n\n return `${value}`;\n },\n },\n {\n id: VariableFormatID.Distributed,\n name: 'Distributed',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.multiple-values-are-formatted-like-variablevalue',\n 'Multiple values are formatted like variable=value'\n ),\n formatter: (value, args, variable) => {\n if (typeof value === 'string') {\n return value;\n }\n\n if (Array.isArray(value)) {\n value = map(value, (val: string, index: number) => {\n if (index !== 0) {\n return variable.state.name + '=' + val;\n } else {\n return val;\n }\n });\n\n return value.join(',');\n }\n\n return `${value}`;\n },\n },\n {\n id: VariableFormatID.CSV,\n name: 'Csv',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.commaseparated-values',\n 'Comma-separated values'\n ),\n formatter: (value) => {\n if (typeof value === 'string') {\n return value;\n }\n\n if (isArray(value)) {\n return value.join(',');\n }\n\n return String(value);\n },\n },\n {\n id: VariableFormatID.HTML,\n name: 'HTML',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.html-escaping-of-values',\n 'HTML escaping of values'\n ),\n formatter: (value) => {\n if (typeof value === 'string') {\n return textUtil.escapeHtml(value);\n }\n\n if (isArray(value)) {\n return textUtil.escapeHtml(value.join(', '));\n }\n\n return textUtil.escapeHtml(String(value));\n },\n },\n {\n id: VariableFormatID.JSON,\n name: 'JSON',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.json-stringify-value',\n 'JSON stringify value'\n ),\n formatter: (value) => {\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n },\n },\n {\n id: VariableFormatID.PercentEncode,\n name: 'Percent encode',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.useful-for-url-escaping-values',\n 'Useful for URL escaping values'\n ),\n formatter: (value) => {\n // like glob, but url escaped\n if (isArray(value)) {\n return encodeURIComponentStrict('{' + value.join(',') + '}');\n }\n\n return encodeURIComponentStrict(value);\n },\n },\n {\n id: VariableFormatID.SingleQuote,\n name: 'Single quote',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.single-quoted-values',\n 'Single quoted values'\n ),\n formatter: (value) => {\n // escape single quotes with backslash\n const regExp = new RegExp(`'`, 'g');\n\n if (isArray(value)) {\n return map(value, (v: string) => `'${replace(v, regExp, `\\\\'`)}'`).join(',');\n }\n\n let strVal = typeof value === 'string' ? value : String(value);\n return `'${replace(strVal, regExp, `\\\\'`)}'`;\n },\n },\n {\n id: VariableFormatID.DoubleQuote,\n name: 'Double quote',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.double-quoted-values',\n 'Double quoted values'\n ),\n formatter: (value) => {\n // escape double quotes with backslash\n const regExp = new RegExp('\"', 'g');\n if (isArray(value)) {\n return map(value, (v: string) => `\"${replace(v, regExp, '\\\\\"')}\"`).join(',');\n }\n\n let strVal = typeof value === 'string' ? value : String(value);\n return `\"${replace(strVal, regExp, '\\\\\"')}\"`;\n },\n },\n {\n id: VariableFormatID.SQLString,\n name: 'SQL string',\n description: 'SQL string quoting and commas for use in IN statements and other scenarios',\n formatter: sqlStringFormatter,\n },\n {\n id: 'join', // join not yet available in depended @grafana/schema version\n name: 'Join',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.join-values-with-a-comma',\n 'Join values with a comma'\n ),\n formatter: (value, args) => {\n if (isArray(value)) {\n const separator = args[0] ?? ',';\n return value.join(separator);\n }\n return String(value);\n },\n },\n {\n id: VariableFormatID.Date,\n name: 'Date',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.format-date-in-different-ways',\n 'Format date in different ways'\n ),\n formatter: (value, args) => {\n let nrValue = NaN;\n\n if (typeof value === 'number') {\n nrValue = value;\n } else if (typeof value === 'string') {\n nrValue = parseInt(value, 10);\n }\n\n if (isNaN(nrValue)) {\n return 'NaN';\n }\n\n const arg = args[0] ?? 'iso';\n switch (arg) {\n case 'ms':\n return String(value);\n case 'seconds':\n return `${Math.round(nrValue! / 1000)}`;\n case 'iso':\n return dateTime(nrValue).toISOString();\n default:\n if ((args || []).length > 1) {\n return dateTime(nrValue).format(args.join(':'));\n }\n return dateTime(nrValue).format(arg);\n }\n },\n },\n {\n id: VariableFormatID.Glob,\n name: 'Glob',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.format-multivalued-variables-using-syntax-example',\n 'Format multi-valued variables using glob syntax, example {value1,value2}'\n ),\n formatter: (value) => {\n if (isArray(value) && value.length > 1) {\n return '{' + value.join(',') + '}';\n }\n return String(value);\n },\n },\n {\n id: VariableFormatID.Text,\n name: 'Text',\n description: 'Format variables in their text representation. Example in multi-variable scenario A + B + C.',\n formatter: (value, _args, variable) => {\n if (variable.getValueText) {\n return variable.getValueText();\n }\n\n return String(value);\n },\n },\n {\n id: VariableFormatID.QueryParam,\n name: 'Query parameter',\n description:\n 'Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.',\n formatter: (value, _args, variable, fieldPath) => {\n if (variable.urlSync && !fieldPath) {\n const urlParam = variable.urlSync.getUrlState();\n return urlUtil.toUrlParams(urlParam);\n }\n\n if (Array.isArray(value)) {\n return value.map((v) => formatQueryParameter(variable.state.name, v)).join('&');\n }\n\n return formatQueryParameter(variable.state.name, value);\n },\n },\n {\n id: 'customqueryparam',\n name: 'Custom query parameter',\n description:\n 'Format variables as URL parameters with custom name and value prefix. Example in multi-variable scenario A + B + C => p-foo=x-A&p-foo=x-B&p-foo=x-C.',\n formatter: (value, args, variable) => {\n const name = encodeURIComponentStrict(args[0] || variable.state.name);\n const valuePrefix = encodeURIComponentStrict(args[1] || '');\n\n if (Array.isArray(value)) {\n return value.map((v) => customFormatQueryParameter(name, v, valuePrefix)).join('&');\n }\n\n return customFormatQueryParameter(name, value, valuePrefix);\n },\n },\n {\n id: VariableFormatID.UriEncode,\n name: 'Percent encode as URI',\n description: t(\n 'grafana-scenes.variables.format-registry.formats.description.useful-escaping-values-taking-syntax-characters',\n 'Useful for URL escaping values, taking into URI syntax characters'\n ),\n formatter: (value: VariableValue) => {\n if (isArray(value)) {\n return encodeURIStrict('{' + value.join(',') + '}');\n }\n\n return encodeURIStrict(value);\n },\n },\n ];\n\n return formats;\n});\n\nfunction luceneEscape(value: string) {\n if (isNaN(+value) === false) {\n return value;\n }\n\n return value.replace(/([\\!\\*\\+\\-\\=<>\\s\\&\\|\\(\\)\\[\\]\\{\\}\\^\\~\\?\\:\\\\/\"])/g, '\\\\$1');\n}\n\n/**\n * encode string according to RFC 3986; in contrast to encodeURIComponent()\n * also the sub-delims \"!\", \"'\", \"(\", \")\" and \"*\" are encoded;\n * unicode handling uses UTF-8 as in ECMA-262.\n */\nfunction encodeURIComponentStrict(str: VariableValueSingle) {\n if (typeof str === 'object') {\n str = String(str);\n }\n\n return replaceSpecialCharactersToASCII(encodeURIComponent(str));\n}\n\nconst encodeURIStrict = (str: VariableValueSingle): string => replaceSpecialCharactersToASCII(encodeURI(String(str)));\n\nconst replaceSpecialCharactersToASCII = (value: string): string =>\n value.replace(/[!'()*]/g, (c) => {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n\nfunction formatQueryParameter(name: string, value: VariableValueSingle): string {\n return `var-${name}=${encodeURIComponentStrict(value)}`;\n}\n\nfunction customFormatQueryParameter(name: string, value: VariableValueSingle, valuePrefix = ''): string {\n return `${name}=${valuePrefix}${encodeURIComponentStrict(value)}`;\n}\n\nexport function isAllValue(value: VariableValueSingle) {\n return value === ALL_VARIABLE_VALUE || (Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE);\n}\n\nconst SQL_ESCAPE_MAP: Record<string, string> = {\n \"'\": \"''\",\n '\"': '\\\\\"',\n};\n\nfunction sqlStringFormatter(value: VariableValue) {\n // escape single quotes by pairing them\n const regExp = new RegExp(`'|\"`, 'g');\n\n if (isArray(value)) {\n return map(value, (v: string) => `'${replace(v, regExp, (match) => SQL_ESCAPE_MAP[match] ?? '')}'`).join(',');\n }\n\n let strVal = typeof value === 'string' ? value : String(value);\n return `'${replace(strVal, regExp, (match) => SQL_ESCAPE_MAP[match] ?? '')}'`;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sceneInterpolator.js","sources":["../../../../src/variables/interpolation/sceneInterpolator.ts"],"sourcesContent":["import { ScopedVars } from '@grafana/data';\nimport { VariableInterpolation } from '@grafana/runtime';\nimport { VariableType, VariableFormatID } from '@grafana/schema';\n\nimport { SceneObject } from '../../core/types';\nimport { InterpolationFormatParameter, isCustomVariableValue, VariableValue } from '../types';\n\nimport { getSceneVariableForScopedVar } from './ScopedVarsVariable';\nimport { formatRegistry, FormatVariable } from './formatRegistry';\nimport { VARIABLE_REGEX } from '../constants';\nimport { lookupVariable } from '../lookupVariable';\nimport { macrosIndex } from '../macros';\n\n/**\n * This function will try to parse and replace any variable expression found in the target string. The sceneObject will be used as the source of variables. It will\n * use the scene graph and walk up the parent tree until it finds the closest variable.\n *\n * ScopedVars should not really be needed much in the new scene architecture as they can be added to the local scene node instead of passed in interpolate function.\n * It is supported here for backward compatibility and some edge cases where adding scoped vars to local scene node is not practical.\n */\nexport function sceneInterpolator(\n sceneObject: SceneObject,\n target: string | undefined | null,\n scopedVars?: ScopedVars,\n format?: InterpolationFormatParameter,\n interpolations?: VariableInterpolation[]\n): string {\n if (!target || typeof target !== 'string') {\n return target ?? '';\n }\n\n VARIABLE_REGEX.lastIndex = 0;\n\n return target.replace(VARIABLE_REGEX, (match, var1, var2, fmt2, var3, fieldPath, fmt3) => {\n const variableName = var1 || var2 || var3;\n const fmt = fmt2 || fmt3 || format;\n const variable = lookupFormatVariable(variableName, match, scopedVars, sceneObject);\n\n if (!variable) {\n if (interpolations) {\n // Set `value` equal to `match` as documented in the `VariableInterpolation` interface.\n interpolations.push({ match, variableName, fieldPath, format: fmt, value: match, found: false });\n }\n return match;\n }\n\n const value = formatValue(sceneObject, variable, variable.getValue(fieldPath), fmt, fieldPath);\n\n if (interpolations) {\n interpolations.push({ match, variableName, fieldPath, format: fmt, value, found: value !== match });\n }\n\n return value;\n });\n}\n\nfunction lookupFormatVariable(\n name: string,\n match: string,\n scopedVars: ScopedVars | undefined,\n sceneObject: SceneObject\n): FormatVariable | null {\n if (scopedVars && scopedVars.hasOwnProperty(name)) {\n const scopedVar = scopedVars[name];\n\n if (scopedVar) {\n return getSceneVariableForScopedVar(name, scopedVar);\n }\n }\n\n const variable = lookupVariable(name, sceneObject);\n if (variable) {\n return variable;\n }\n\n const Macro = macrosIndex.get(name);\n if (Macro) {\n return new Macro(name, sceneObject, match, scopedVars);\n }\n\n return null;\n}\n\nfunction formatValue(\n context: SceneObject,\n variable: FormatVariable,\n value: VariableValue | undefined | null,\n formatNameOrFn?: InterpolationFormatParameter,\n fieldPath?: string\n): string {\n if (value === null || value === undefined) {\n return '';\n }\n\n // Variable can return a custom value that handles formatting\n // This is useful for customAllValue and macros that return values that are already formatted or need special formatting\n if (isCustomVariableValue(value)) {\n return sceneInterpolator(context, value.formatter(formatNameOrFn));\n }\n\n // if it's an object transform value to string\n if (!Array.isArray(value) && typeof value === 'object') {\n value = `${value}`;\n }\n\n if (typeof formatNameOrFn === 'function') {\n return formatNameOrFn(value, {\n name: variable.state.name,\n type: variable.state.type as VariableType,\n multi: variable.state.isMulti,\n includeAll: variable.state.includeAll,\n });\n }\n\n let args: string[] = [];\n\n if (!formatNameOrFn) {\n formatNameOrFn = VariableFormatID.Glob;\n } else {\n // some formats have arguments that come after ':' character\n args = formatNameOrFn.split(':');\n if (args.length > 1) {\n formatNameOrFn = args[0];\n args = args.slice(1);\n } else {\n args = [];\n }\n }\n\n let formatter = formatRegistry.getIfExists(formatNameOrFn);\n\n if (!formatter) {\n console.error(`Variable format ${formatNameOrFn} not found. Using glob format as fallback.`);\n formatter = formatRegistry.get(VariableFormatID.Glob);\n }\n\n return formatter.formatter(value, args, variable, fieldPath);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lookupVariable.js","sources":["../../../src/variables/lookupVariable.ts"],"sourcesContent":["import { SceneObject } from '../core/types';\nimport { SceneVariable } from './types';\n\n/**\n * Will walk the scene object graph up to the root looking for the first variable with the specified name\n */\nexport function lookupVariable(name: string, sceneObject: SceneObject): SceneVariable | null {\n const variables = sceneObject.state.$variables;\n if (!variables) {\n if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n } else {\n return null;\n }\n }\n\n const found = variables.getByName(name);\n if (found) {\n return found;\n } else if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n }\n\n return null;\n}\n"],"names":[],"mappings":"AAMgB,SAAA,cAAA,CAAe,MAAc,WAAgD,EAAA;AAC3F,EAAM,MAAA,SAAA,GAAY,YAAY,KAAM,CAAA,UAAA;AACpC,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAA,IAAI,YAAY,MAAQ,EAAA;AACtB,MAAO,OAAA,cAAA,CAAe,IAAM,EAAA,WAAA,CAAY,MAAM,CAAA;AAAA,KACzC,MAAA;AACL,MAAO,OAAA,IAAA;AAAA;AACT;AAGF,EAAM,MAAA,KAAA,GAAQ,SAAU,CAAA,SAAA,CAAU,IAAI,CAAA;AACtC,EAAA,IAAI,KAAO,EAAA;AACT,IAAO,OAAA,KAAA;AAAA,GACT,MAAA,IAAW,YAAY,MAAQ,EAAA;AAC7B,IAAO,OAAA,cAAA,CAAe,IAAM,EAAA,WAAA,CAAY,MAAM,CAAA;AAAA;AAGhD,EAAO,OAAA,IAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AllVariablesMacro.js","sources":["../../../../src/variables/macros/AllVariablesMacro.ts"],"sourcesContent":["import { SceneObject } from '../../core/types';\nimport { isCustomVariableValue, SceneVariable } from '../types';\nimport { formatRegistry, FormatVariable } from '../interpolation/formatRegistry';\nimport { SkipFormattingValue } from './types';\nimport { VariableFormatID } from '@grafana/schema';\nimport { MultiValueVariable } from '../variants/MultiValueVariable';\nimport { ALL_VARIABLE_VALUE } from '../constants';\n\nexport class AllVariablesMacro implements FormatVariable {\n public state: { name: string; type: string };\n private _sceneObject: SceneObject;\n\n public constructor(name: string, sceneObject: SceneObject) {\n this.state = { name, type: 'url_variable' };\n this._sceneObject = sceneObject;\n }\n\n public getValue(): SkipFormattingValue {\n const allVars = collectAllVariables(this._sceneObject);\n const format = formatRegistry.get(VariableFormatID.QueryParam);\n const params: string[] = [];\n\n for (const name of Object.keys(allVars)) {\n const variable = allVars[name];\n\n if (variable instanceof MultiValueVariable && variable.hasAllValue() && !variable.state.allValue) {\n params.push(format.formatter(ALL_VARIABLE_VALUE, [], variable));\n continue;\n }\n\n const value = variable.getValue();\n\n if (!value) {\n continue;\n }\n\n if (isCustomVariableValue(value)) {\n params.push(value.formatter(VariableFormatID.QueryParam));\n } else {\n params.push(format.formatter(value, [], variable));\n }\n }\n\n return new SkipFormattingValue(params.join('&'));\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n\nfunction collectAllVariables(\n sceneObject: SceneObject,\n record: Record<string, SceneVariable> = {}\n): Record<string, SceneVariable> {\n if (sceneObject.state.$variables) {\n for (const variable of sceneObject.state.$variables.state.variables) {\n if (variable.state.skipUrlSync) {\n continue;\n }\n\n if (!record[variable.state.name]) {\n record[variable.state.name] = variable;\n }\n }\n }\n\n if (sceneObject.parent) {\n collectAllVariables(sceneObject.parent, record);\n }\n\n return record;\n}\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,iBAA4C,CAAA;AAAA,EAIhD,WAAA,CAAY,MAAc,WAA0B,EAAA;AACzD,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,IAAM,EAAA,IAAA,EAAM,cAAe,EAAA;AAC1C,IAAA,IAAA,CAAK,YAAe,GAAA,WAAA;AAAA;AACtB,EAEO,QAAgC,GAAA;AACrC,IAAM,MAAA,OAAA,GAAU,mBAAoB,CAAA,IAAA,CAAK,YAAY,CAAA;AACrD,IAAA,MAAM,MAAS,GAAA,cAAA,CAAe,GAAI,CAAA,gBAAA,CAAiB,UAAU,CAAA;AAC7D,IAAA,MAAM,SAAmB,EAAC;AAE1B,IAAA,KAAA,MAAW,IAAQ,IAAA,MAAA,CAAO,IAAK,CAAA,OAAO,CAAG,EAAA;AACvC,MAAM,MAAA,QAAA,GAAW,QAAQ,IAAI,CAAA;AAE7B,MAAI,IAAA,QAAA,YAAoB,sBAAsB,QAAS,CAAA,WAAA,MAAiB,CAAC,QAAA,CAAS,MAAM,QAAU,EAAA;AAChG,QAAA,MAAA,CAAO,KAAK,MAAO,CAAA,SAAA,CAAU,oBAAoB,EAAC,EAAG,QAAQ,CAAC,CAAA;AAC9D,QAAA;AAAA;AAGF,MAAM,MAAA,KAAA,GAAQ,SAAS,QAAS,EAAA;AAEhC,MAAA,IAAI,CAAC,KAAO,EAAA;AACV,QAAA;AAAA;AAGF,MAAI,IAAA,qBAAA,CAAsB,KAAK,CAAG,EAAA;AAChC,QAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,SAAU,CAAA,gBAAA,CAAiB,UAAU,CAAC,CAAA;AAAA,OACnD,MAAA;AACL,QAAA,MAAA,CAAO,KAAK,MAAO,CAAA,SAAA,CAAU,OAAO,EAAC,EAAG,QAAQ,CAAC,CAAA;AAAA;AACnD;AAGF,IAAA,OAAO,IAAI,mBAAA,CAAoB,MAAO,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA;AACjD,EAEO,YAAwB,GAAA;AAC7B,IAAO,OAAA,EAAA;AAAA;AAEX;AAEA,SAAS,mBACP,CAAA,WAAA,EACA,MAAwC,GAAA,EACT,EAAA;AAC/B,EAAI,IAAA,WAAA,CAAY,MAAM,UAAY,EAAA;AAChC,IAAA,KAAA,MAAW,QAAY,IAAA,WAAA,CAAY,KAAM,CAAA,UAAA,CAAW,MAAM,SAAW,EAAA;AACnE,MAAI,IAAA,QAAA,CAAS,MAAM,WAAa,EAAA;AAC9B,QAAA;AAAA;AAGF,MAAA,IAAI,CAAC,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,IAAI,CAAG,EAAA;AAChC,QAAO,MAAA,CAAA,QAAA,CAAS,KAAM,CAAA,IAAI,CAAI,GAAA,QAAA;AAAA;AAChC;AACF;AAGF,EAAA,IAAI,YAAY,MAAQ,EAAA;AACtB,IAAoB,mBAAA,CAAA,WAAA,CAAY,QAAQ,MAAM,CAAA;AAAA;AAGhD,EAAO,OAAA,MAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contextMacros.js","sources":["../../../../src/variables/macros/contextMacros.ts"],"sourcesContent":["import { SceneObject } from '../../core/types';\nimport { FormatVariable } from '../interpolation/formatRegistry';\nimport { config } from '@grafana/runtime';\n\n/**\n * Handles expressions like ${__user.login}\n */\nexport class UserMacro implements FormatVariable {\n public state: { name: string; type: string };\n\n public constructor(name: string, _: SceneObject) {\n this.state = { name: name, type: 'user_macro' };\n }\n\n public getValue(fieldPath?: string): string {\n const user = config.bootData.user;\n\n switch (fieldPath) {\n case 'login':\n return user.login;\n case 'email':\n return user.email;\n case 'id':\n default:\n return String(user.id);\n }\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n\n/**\n * Handles expressions like ${__org.name}\n */\nexport class OrgMacro implements FormatVariable {\n public state: { name: string; type: string };\n\n public constructor(name: string, _: SceneObject) {\n this.state = { name: name, type: 'org_macro' };\n }\n\n public getValue(fieldPath?: string): string {\n const user = config.bootData.user;\n\n switch (fieldPath) {\n case 'name':\n return user.orgName;\n case 'id':\n default:\n return String(user.orgId);\n }\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,SAAoC,CAAA;AAAA,EAGxC,WAAA,CAAY,MAAc,CAAgB,EAAA;AAC/C,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,IAAY,EAAA,IAAA,EAAM,YAAa,EAAA;AAAA;AAChD,EAEO,SAAS,SAA4B,EAAA;AAC1C,IAAM,MAAA,IAAA,GAAO,OAAO,QAAS,CAAA,IAAA;AAE7B,IAAA,QAAQ,SAAW;AAAA,MACjB,KAAK,OAAA;AACH,QAAA,OAAO,IAAK,CAAA,KAAA;AAAA,MACd,KAAK,OAAA;AACH,QAAA,OAAO,IAAK,CAAA,KAAA;AAAA,MACd,KAAK,IAAA;AAAA,MACL;AACE,QAAO,OAAA,MAAA,CAAO,KAAK,EAAE,CAAA;AAAA;AACzB;AACF,EAEO,YAAwB,GAAA;AAC7B,IAAO,OAAA,EAAA;AAAA;AAEX;AAKO,MAAM,QAAmC,CAAA;AAAA,EAGvC,WAAA,CAAY,MAAc,CAAgB,EAAA;AAC/C,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,IAAY,EAAA,IAAA,EAAM,WAAY,EAAA;AAAA;AAC/C,EAEO,SAAS,SAA4B,EAAA;AAC1C,IAAM,MAAA,IAAA,GAAO,OAAO,QAAS,CAAA,IAAA;AAE7B,IAAA,QAAQ,SAAW;AAAA,MACjB,KAAK,MAAA;AACH,QAAA,OAAO,IAAK,CAAA,OAAA;AAAA,MACd,KAAK,IAAA;AAAA,MACL;AACE,QAAO,OAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA;AAC5B;AACF,EAEO,YAAwB,GAAA;AAC7B,IAAO,OAAA,EAAA;AAAA;AAEX;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataMacros.js","sources":["../../../../src/variables/macros/dataMacros.ts"],"sourcesContent":["import {\n FieldType,\n formattedValueToString,\n getDisplayProcessor,\n ScopedVars,\n DataContextScopedVar,\n getFieldDisplayValuesProxy,\n getFrameDisplayName,\n} from '@grafana/data';\nimport { SceneObject } from '../../core/types';\nimport { getFieldAccessor } from '../interpolation/fieldAccessorCache';\nimport { FormatVariable } from '../interpolation/formatRegistry';\nimport { VariableValue } from '../types';\nimport { getTemplateProxyForField } from './templateProxies';\n\n/**\n * This macro handles the ${__value.*} interpolation\n * match represents the regex match and is the full expression, example `${varname.fieldpath}`\n * Macros can return the match when they identify that there required data context is not provided.\n * This leaves the expression intact so that it can be interpolated later when the data context is available.\n */\nexport class ValueMacro implements FormatVariable {\n public state: { name: string; type: string };\n\n public constructor(name: string, sceneObject: SceneObject, private _match: string, private _scopedVars?: ScopedVars) {\n this.state = { name, type: '__value' };\n }\n\n public getValue(fieldPath?: string): VariableValue {\n const dataContext: DataContextScopedVar | undefined = this._scopedVars?.__dataContext;\n if (!dataContext) {\n return this._match;\n }\n\n const { frame, rowIndex, field, calculatedValue } = dataContext.value;\n\n if (calculatedValue) {\n switch (fieldPath) {\n case 'numeric':\n return calculatedValue.numeric;\n case 'raw':\n return calculatedValue.numeric;\n case 'time':\n return '';\n case 'text':\n default:\n return formattedValueToString(calculatedValue);\n }\n }\n\n if (rowIndex == null) {\n return this._match;\n }\n\n if (fieldPath === 'time') {\n const timeField = frame.fields.find((f) => f.type === FieldType.time);\n return timeField ? timeField.values.get(rowIndex) : undefined;\n }\n\n if (!field) {\n return this._match;\n }\n\n const value = field.values.get(rowIndex);\n if (fieldPath === 'raw') {\n return value;\n }\n\n const displayProcessor = field.display ?? fallbackDisplayProcessor;\n const result = displayProcessor(value);\n\n switch (fieldPath) {\n case 'numeric':\n return result.numeric;\n case 'text':\n default:\n return formattedValueToString(result);\n }\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n\nconst fallbackDisplayProcessor = getDisplayProcessor();\n\n/**\n * This macro handles the ${__data.*} interpolation. This is a bit poorly named as most of the\n * expressions that this macro evaluates are really \"row\" based values enabling you to access\n * values in other fields on the same row.\n */\nexport class DataMacro implements FormatVariable {\n public state: { name: string; type: string };\n\n public constructor(name: string, sceneObject: SceneObject, private _match: string, private _scopedVars?: ScopedVars) {\n this.state = { name, type: '__data' };\n }\n\n public getValue(fieldPath?: string): VariableValue {\n const dataContext = this._scopedVars?.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n\n const { frame, rowIndex } = dataContext.value;\n\n if (rowIndex === undefined || fieldPath === undefined) {\n return this._match;\n }\n\n const obj = {\n name: frame.name,\n refId: frame.refId,\n fields: getFieldDisplayValuesProxy({ frame, rowIndex }),\n };\n\n return getFieldAccessor(fieldPath)(obj) ?? '';\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n\n/**\n * This macro handles the ${__series.name} interpolation.\n */\nexport class SeriesMacro implements FormatVariable {\n public state: { name: string; type: string };\n\n public constructor(name: string, sceneObject: SceneObject, private _match: string, private _scopedVars?: ScopedVars) {\n this.state = { name, type: '__series' };\n }\n\n public getValue(fieldPath?: string): VariableValue {\n const dataContext = this._scopedVars?.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n\n if (fieldPath !== 'name') {\n return this._match;\n }\n\n const { frame, frameIndex } = dataContext.value;\n return getFrameDisplayName(frame, frameIndex);\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n\n/**\n * This macro handles the ${__field.*} interpolation. These do not require a data context.\n * And can be easily used in field config options like displayName.\n */\nexport class FieldMacro implements FormatVariable {\n public state: { name: string; type: string };\n\n public constructor(name: string, sceneObject: SceneObject, private _match: string, private _scopedVars?: ScopedVars) {\n this.state = { name, type: '__field' };\n }\n\n public getValue(fieldPath?: string): VariableValue {\n const dataContext = this._scopedVars?.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n\n if (fieldPath === undefined || fieldPath === '') {\n return this._match;\n }\n\n const { frame, field, data } = dataContext.value;\n const obj = getTemplateProxyForField(field, frame, data);\n\n return getFieldAccessor(fieldPath)(obj) ?? '';\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/variables/macros/index.ts"],"sourcesContent":["import { DataLinkBuiltInVars } from '@grafana/data';\nimport { MacroVariableConstructor } from './types';\nimport { IntervalMacro, TimeFromAndToMacro, TimezoneMacro, UrlTimeRangeMacro } from './timeMacros';\nimport { AllVariablesMacro } from './AllVariablesMacro';\nimport { DataMacro, FieldMacro, SeriesMacro, ValueMacro } from './dataMacros';\nimport { UrlMacro } from './urlMacros';\nimport { OrgMacro, UserMacro } from './contextMacros';\n\nexport const macrosIndex = new Map<string, MacroVariableConstructor>([\n [DataLinkBuiltInVars.includeVars, AllVariablesMacro],\n [DataLinkBuiltInVars.keepTime, UrlTimeRangeMacro],\n ['__value', ValueMacro],\n ['__data', DataMacro],\n ['__series', SeriesMacro],\n ['__field', FieldMacro],\n ['__url', UrlMacro],\n ['__from', TimeFromAndToMacro],\n ['__to', TimeFromAndToMacro],\n ['__timezone', TimezoneMacro],\n ['__user', UserMacro],\n ['__org', OrgMacro],\n ['__interval', IntervalMacro],\n ['__interval_ms', IntervalMacro],\n]);\n\n/**\n * Allows you to register a variable expression macro that can then be used in strings with syntax ${<macro_name>.<fieldPath>}\n * Call this on app activation and unregister the macro on deactivation.\n * @param replace WARNING! If true, this will replace the existing macro with the same name. This is global and will affect all apps. Unregistering the macro will restore the original macro.\n * @returns a function that unregisters the macro\n */\nexport function registerVariableMacro(name: string, macro: MacroVariableConstructor, replace = false): () => void {\n if (!replace && macrosIndex.get(name)) {\n throw new Error(`Macro already registered ${name}`);\n }\n\n macrosIndex.set(name, macro);\n\n return () => {\n if (replace) {\n throw new Error(`Replaced macros can not be unregistered. They need to be restored manually.`);\n } else {\n macrosIndex.delete(name);\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;AAQa,MAAA,WAAA,uBAAkB,GAAsC,CAAA;AAAA,EACnE,CAAC,mBAAoB,CAAA,WAAA,EAAa,iBAAiB,CAAA;AAAA,EACnD,CAAC,mBAAoB,CAAA,QAAA,EAAU,iBAAiB,CAAA;AAAA,EAChD,CAAC,WAAW,UAAU,CAAA;AAAA,EACtB,CAAC,UAAU,SAAS,CAAA;AAAA,EACpB,CAAC,YAAY,WAAW,CAAA;AAAA,EACxB,CAAC,WAAW,UAAU,CAAA;AAAA,EACtB,CAAC,SAAS,QAAQ,CAAA;AAAA,EAClB,CAAC,UAAU,kBAAkB,CAAA;AAAA,EAC7B,CAAC,QAAQ,kBAAkB,CAAA;AAAA,EAC3B,CAAC,cAAc,aAAa,CAAA;AAAA,EAC5B,CAAC,UAAU,SAAS,CAAA;AAAA,EACpB,CAAC,SAAS,QAAQ,CAAA;AAAA,EAClB,CAAC,cAAc,aAAa,CAAA;AAAA,EAC5B,CAAC,iBAAiB,aAAa;AACjC,CAAC;AAQM,SAAS,qBAAsB,CAAA,IAAA,EAAc,KAAiC,EAAA,OAAA,GAAU,KAAmB,EAAA;AAChH,EAAA,IAAI,CAAC,OAAA,IAAW,WAAY,CAAA,GAAA,CAAI,IAAI,CAAG,EAAA;AACrC,IAAA,MAAM,IAAI,KAAA,CAAM,CAA4B,yBAAA,EAAA,IAAI,CAAE,CAAA,CAAA;AAAA;AAGpD,EAAY,WAAA,CAAA,GAAA,CAAI,MAAM,KAAK,CAAA;AAE3B,EAAA,OAAO,MAAM;AACX,IAAA,IAAI,OAAS,EAAA;AACX,MAAM,MAAA,IAAI,MAAM,CAA6E,2EAAA,CAAA,CAAA;AAAA,KACxF,MAAA;AACL,MAAA,WAAA,CAAY,OAAO,IAAI,CAAA;AAAA;AACzB,GACF;AACF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templateProxies.js","sources":["../../../../src/variables/macros/templateProxies.ts"],"sourcesContent":["import { Field, DataFrame, getFieldDisplayName, formatLabels } from '@grafana/data';\n\n/**\n * This object is created often, and only used when tmplates exist. Using a proxy lets us delay\n * calculations of the more complex structures (label names) until they are actually used\n */\nexport function getTemplateProxyForField(field: Field, frame?: DataFrame, frames?: DataFrame[]): any {\n return new Proxy(\n {}, // This object shows up in test snapshots\n {\n get: (obj, key) => {\n if (key === 'name') {\n return field.name;\n }\n\n if (key === 'displayName') {\n return getFieldDisplayName(field, frame, frames);\n }\n\n if (key === 'labels' || key === 'formattedLabels') {\n // formattedLabels deprecated\n if (!field.labels) {\n return '';\n }\n return {\n ...field.labels,\n __values: Object.values(field.labels).sort().join(', '),\n toString: () => {\n return formatLabels(field.labels!, '', true);\n },\n };\n }\n return undefined;\n },\n }\n );\n}\n"],"names":[],"mappings":";;AAMgB,SAAA,wBAAA,CAAyB,KAAc,EAAA,KAAA,EAAmB,MAA2B,EAAA;AACnG,EAAA,OAAO,IAAI,KAAA;AAAA,IACT,EAAC;AAAA;AAAA,IACD;AAAA,MACE,GAAA,EAAK,CAAC,GAAA,EAAK,GAAQ,KAAA;AACjB,QAAA,IAAI,QAAQ,MAAQ,EAAA;AAClB,UAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AAGf,QAAA,IAAI,QAAQ,aAAe,EAAA;AACzB,UAAO,OAAA,mBAAA,CAAoB,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA;AAAA;AAGjD,QAAI,IAAA,GAAA,KAAQ,QAAY,IAAA,GAAA,KAAQ,iBAAmB,EAAA;AAEjD,UAAI,IAAA,CAAC,MAAM,MAAQ,EAAA;AACjB,YAAO,OAAA,EAAA;AAAA;AAET,UAAO,OAAA;AAAA,YACL,GAAG,KAAM,CAAA,MAAA;AAAA,YACT,QAAA,EAAU,OAAO,MAAO,CAAA,KAAA,CAAM,MAAM,CAAE,CAAA,IAAA,EAAO,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,YACtD,UAAU,MAAM;AACd,cAAA,OAAO,YAAa,CAAA,KAAA,CAAM,MAAS,EAAA,EAAA,EAAI,IAAI,CAAA;AAAA;AAC7C,WACF;AAAA;AAEF,QAAO,OAAA,MAAA;AAAA;AACT;AACF,GACF;AACF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeMacros.js","sources":["../../../../src/variables/macros/timeMacros.ts"],"sourcesContent":["import { dateTimeFormat, urlUtil } from '@grafana/data';\nimport { getTimeRange } from '../../core/sceneGraph/getTimeRange';\nimport { getData } from '../../core/sceneGraph/sceneGraph';\nimport { SceneObject } from '../../core/types';\nimport { FormatVariable } from '../interpolation/formatRegistry';\nimport { SkipFormattingValue } from './types';\n\n/**\n * Handles expressions like $__url_time_range.\n */\nexport class UrlTimeRangeMacro implements FormatVariable {\n public state: { name: string; type: string };\n private _sceneObject: SceneObject;\n\n public constructor(name: string, sceneObject: SceneObject) {\n this.state = { name: name, type: 'url_variable' };\n this._sceneObject = sceneObject;\n }\n\n public getValue(): SkipFormattingValue {\n const timeRange = getTimeRange(this._sceneObject);\n const urlState = timeRange.urlSync?.getUrlState();\n return new SkipFormattingValue(urlUtil.toUrlParams(urlState));\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n\n/**\n * Handles expressions like $__from and $__to.\n */\nexport class TimeFromAndToMacro implements FormatVariable {\n public state: { name: string; type: string };\n private _sceneObject: SceneObject;\n\n public constructor(name: string, sceneObject: SceneObject) {\n this.state = { name: name, type: 'time_macro' };\n this._sceneObject = sceneObject;\n }\n\n public getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === '__from') {\n return timeRange.state.value.from.valueOf();\n } else {\n return timeRange.state.value.to.valueOf();\n }\n }\n\n public getValueText?(): string {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === '__from') {\n return dateTimeFormat(timeRange.state.value.from, { timeZone: timeRange.getTimeZone() });\n } else {\n return dateTimeFormat(timeRange.state.value.to, { timeZone: timeRange.getTimeZone() });\n }\n }\n}\n\n/**\n * Handles $__timezone expression.\n */\nexport class TimezoneMacro implements FormatVariable {\n public state: { name: string; type: string };\n private _sceneObject: SceneObject;\n\n public constructor(name: string, sceneObject: SceneObject) {\n this.state = { name: name, type: 'time_macro' };\n this._sceneObject = sceneObject;\n }\n\n public getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n const timeZone = timeRange.getTimeZone();\n\n if (timeZone === 'browser') {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n return timeZone;\n }\n\n public getValueText?(): string {\n return this.getValue();\n }\n}\n\n/**\n * Handles $__interval and $__intervalMs expression.\n */\nexport class IntervalMacro implements FormatVariable {\n public state: { name: string; type: string; match: string };\n private _sceneObject: SceneObject;\n\n public constructor(name: string, sceneObject: SceneObject, match: string) {\n this.state = { name: name, type: 'time_macro', match: match };\n this._sceneObject = sceneObject;\n }\n\n public getValue() {\n const data = getData(this._sceneObject);\n\n if (data) {\n const request = data.state.data?.request;\n if (!request) {\n return this.state.match;\n }\n if (this.state.name === '__interval_ms') {\n return request.intervalMs;\n }\n return request.interval;\n }\n\n return this.state.match;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/variables/macros/types.ts"],"sourcesContent":["import { ScopedVars } from '@grafana/data';\nimport { SceneObject } from '../../core/types';\nimport { FormatVariable } from '../interpolation/formatRegistry';\nimport { CustomVariableValue } from '../types';\n\nexport interface MacroVariableConstructor {\n new (name: string, sceneObject: SceneObject, fullMatch: string, scopedVars?: ScopedVars): FormatVariable;\n}\n\n/**\n * The sceneInterpolator will detect if getValue returns VariableValueCustom and will skip the normal formatting\n * This is useful as otherwise we would url encode macros like $__all_variables twice.\n */\nexport class SkipFormattingValue implements CustomVariableValue {\n public constructor(private _value: string) {}\n\n public formatter(): string {\n return this._value;\n }\n}\n"],"names":[],"mappings":"AAaO,MAAM,mBAAmD,CAAA;AAAA,EACvD,YAAoB,MAAgB,EAAA;AAAhB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA;AAAiB,EAErC,SAAoB,GAAA;AACzB,IAAA,OAAO,IAAK,CAAA,MAAA;AAAA;AAEhB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urlMacros.js","sources":["../../../../src/variables/macros/urlMacros.ts"],"sourcesContent":["import { config, locationService } from '@grafana/runtime';\nimport { SceneObject } from '../../core/types';\nimport { FormatVariable } from '../interpolation/formatRegistry';\nimport { CustomVariableValue } from '../types';\n\nexport class UrlMacro implements FormatVariable {\n public state: { name: string; type: string };\n\n public constructor(name: string, _: SceneObject) {\n this.state = { name: name, type: 'url_macro' };\n }\n\n public getValue(fieldPath?: string) {\n const location = locationService.getLocation();\n const subUrl = config.appSubUrl ?? '';\n\n switch (fieldPath ?? '') {\n case 'params':\n return new UrlStateFormatter(location.search);\n case 'path':\n return subUrl + location.pathname;\n case '':\n default:\n return subUrl + location.pathname + location.search;\n }\n }\n\n public getValueText?(): string {\n return '';\n }\n}\n\nclass UrlStateFormatter implements CustomVariableValue {\n public constructor(private _urlQueryParams: string) {}\n\n public formatter(options: string): string {\n if (!options) {\n return this._urlQueryParams;\n }\n\n const params = options.split(':');\n if (params[0] === 'exclude' && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n for (const param of params[1].split(',')) {\n allParams.delete(param);\n }\n\n return `?${allParams}`;\n }\n\n if (params[0] === 'include' && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n const includeOnly = params[1].split(',');\n\n for (const param of allParams.keys()) {\n if (!includeOnly.includes(param)) {\n allParams.delete(param);\n }\n }\n\n return `?${allParams}`;\n }\n\n return this._urlQueryParams;\n }\n}\n"],"names":[],"mappings":";;AAKO,MAAM,QAAmC,CAAA;AAAA,EAGvC,WAAA,CAAY,MAAc,CAAgB,EAAA;AAC/C,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,IAAY,EAAA,IAAA,EAAM,WAAY,EAAA;AAAA;AAC/C,EAEO,SAAS,SAAoB,EAAA;AAZtC,IAAA,IAAA,EAAA;AAaI,IAAM,MAAA,QAAA,GAAW,gBAAgB,WAAY,EAAA;AAC7C,IAAM,MAAA,MAAA,GAAA,CAAS,EAAO,GAAA,MAAA,CAAA,SAAA,KAAP,IAAoB,GAAA,EAAA,GAAA,EAAA;AAEnC,IAAA,QAAQ,gCAAa,EAAI;AAAA,MACvB,KAAK,QAAA;AACH,QAAO,OAAA,IAAI,iBAAkB,CAAA,QAAA,CAAS,MAAM,CAAA;AAAA,MAC9C,KAAK,MAAA;AACH,QAAA,OAAO,SAAS,QAAS,CAAA,QAAA;AAAA,MAC3B,KAAK,EAAA;AAAA,MACL;AACE,QAAO,OAAA,MAAA,GAAS,QAAS,CAAA,QAAA,GAAW,QAAS,CAAA,MAAA;AAAA;AACjD;AACF,EAEO,YAAwB,GAAA;AAC7B,IAAO,OAAA,EAAA;AAAA;AAEX;AAEA,MAAM,iBAAiD,CAAA;AAAA,EAC9C,YAAoB,eAAyB,EAAA;AAAzB,IAAA,IAAA,CAAA,eAAA,GAAA,eAAA;AAAA;AAA0B,EAE9C,UAAU,OAAyB,EAAA;AACxC,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,OAAO,IAAK,CAAA,eAAA;AAAA;AAGd,IAAM,MAAA,MAAA,GAAS,OAAQ,CAAA,KAAA,CAAM,GAAG,CAAA;AAChC,IAAA,IAAI,OAAO,CAAC,CAAA,KAAM,SAAa,IAAA,MAAA,CAAO,SAAS,CAAG,EAAA;AAChD,MAAA,MAAM,SAAY,GAAA,IAAI,eAAgB,CAAA,IAAA,CAAK,eAAe,CAAA;AAC1D,MAAA,KAAA,MAAW,SAAS,MAAO,CAAA,CAAC,CAAE,CAAA,KAAA,CAAM,GAAG,CAAG,EAAA;AACxC,QAAA,SAAA,CAAU,OAAO,KAAK,CAAA;AAAA;AAGxB,MAAA,OAAO,IAAI,SAAS,CAAA,CAAA;AAAA;AAGtB,IAAA,IAAI,OAAO,CAAC,CAAA,KAAM,SAAa,IAAA,MAAA,CAAO,SAAS,CAAG,EAAA;AAChD,MAAA,MAAM,SAAY,GAAA,IAAI,eAAgB,CAAA,IAAA,CAAK,eAAe,CAAA;AAC1D,MAAA,MAAM,WAAc,GAAA,MAAA,CAAO,CAAC,CAAA,CAAE,MAAM,GAAG,CAAA;AAEvC,MAAW,KAAA,MAAA,KAAA,IAAS,SAAU,CAAA,IAAA,EAAQ,EAAA;AACpC,QAAA,IAAI,CAAC,WAAA,CAAY,QAAS,CAAA,KAAK,CAAG,EAAA;AAChC,UAAA,SAAA,CAAU,OAAO,KAAK,CAAA;AAAA;AACxB;AAGF,MAAA,OAAO,IAAI,SAAS,CAAA,CAAA;AAAA;AAGtB,IAAA,OAAO,IAAK,CAAA,eAAA;AAAA;AAEhB;;;;"}
|