@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntervalVariable.js","sources":["../../../../../../../src/variables/variants/IntervalVariable.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport { rangeUtil, SelectableValue } from '@grafana/data';\nimport { VariableRefresh } from '@grafana/schema';\nimport { Select } from '@grafana/ui';\nimport React from 'react';\nimport { Observable, of } from 'rxjs';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE } from '../constants';\nimport {\n SceneVariable,\n SceneVariableState,\n SceneVariableValueChangedEvent,\n ValidateAndUpdateResult,\n VariableValue,\n} from '../types';\n\nexport interface IntervalVariableState extends SceneVariableState {\n intervals: string[];\n value: string;\n autoEnabled: boolean;\n autoMinInterval: string;\n autoStepCount: number;\n refresh: VariableRefresh;\n}\n\nexport class IntervalVariable\n extends SceneObjectBase<IntervalVariableState>\n implements SceneVariable<IntervalVariableState>\n{\n public constructor(initialState: Partial<IntervalVariableState>) {\n super({\n type: 'interval',\n value: '',\n intervals: ['1m', '10m', '30m', '1h', '6h', '12h', '1d', '7d', '14d', '30d'],\n name: '',\n autoStepCount: 30,\n autoMinInterval: '10s',\n autoEnabled: false,\n refresh: VariableRefresh.onTimeRangeChanged,\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });\n }\n\n private getKey(): string {\n return `var-${this.state.name}`;\n }\n\n public getUrlState() {\n return { [this.getKey()]: this.state.value };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const update: Partial<IntervalVariableState> = {};\n const val = values[this.getKey()];\n if (typeof val === 'string') {\n // support old auto interval url value\n if (val.startsWith('$__auto_interval_')) {\n update.value = AUTO_VARIABLE_VALUE;\n } else {\n update.value = val;\n }\n }\n this.setState(update);\n }\n\n public getOptionsForSelect(): Array<SelectableValue<string>> {\n const { value: currentValue, intervals, autoEnabled } = this.state;\n\n let options = intervals.map((interval) => ({ value: interval, label: interval }));\n\n if (autoEnabled) {\n options = [{ value: AUTO_VARIABLE_VALUE, label: AUTO_VARIABLE_TEXT }, ...options];\n }\n\n // If the current value is not in the list of intervals, add it to the list\n if (currentValue && !options.some((option) => option.value === currentValue)) {\n options.push({ value: currentValue, label: currentValue });\n }\n\n return options;\n }\n\n public getValue(): VariableValue {\n const { value, autoStepCount, autoMinInterval } = this.state;\n if (value === AUTO_VARIABLE_VALUE) {\n return this.getAutoRefreshInteval(autoStepCount, autoMinInterval);\n }\n\n return value;\n }\n\n private getAutoRefreshInteval(autoStepCount: number, minRefreshInterval: string) {\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const intervalObject = rangeUtil.calculateInterval(timeRange, autoStepCount, minRefreshInterval);\n return intervalObject.interval;\n }\n\n public _onChange = (value: SelectableValue<string>) => {\n this.setState({ value: value.value! });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n };\n\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n const { value, intervals } = this.state;\n let shouldPublish = false;\n\n if (value === AUTO_VARIABLE_VALUE) {\n shouldPublish = true;\n } else if (!value && intervals.length > 0) {\n const firstOption = intervals[0];\n this.setState({ value: firstOption });\n shouldPublish = true;\n }\n\n if (shouldPublish) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n return of({});\n }\n\n public static Component = ({ model }: SceneComponentProps<IntervalVariable>) => {\n const { key, value } = model.useState();\n return (\n <Select\n id={key}\n placeholder={t('grafana-scenes.variables.interval-variable.placeholder-select-value', 'Select value')}\n width=\"auto\"\n value={value}\n tabSelectsValue={false}\n options={model.getOptionsForSelect()}\n onChange={model._onChange}\n />\n );\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalValueVariable.js","sources":["../../../../../../../src/variables/variants/LocalValueVariable.ts"],"sourcesContent":["import { property } from 'lodash';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneVariable, SceneVariableState, VariableValue, VariableValueOptionProperties } from '../types';\nimport { FieldAccessorCache } from './MultiValueVariable';\n\nexport interface LocalValueVariableState extends SceneVariableState {\n value: VariableValue;\n text: VariableValue;\n properties?: VariableValueOptionProperties;\n\n // Indicate whether or not this variable is sourced from a multi-value variable.\n // Introduces for a backwards compatibility with the old variable system, to properly support interpolation in SQL data sources.\n isMulti?: boolean;\n includeAll?: boolean;\n}\n\n/**\n * This is a special type of variable that is used for repeating panels and layouts to create a local scoped value for a variable\n * that exists in a ancestor SceneVariableSet.\n */\nexport class LocalValueVariable\n extends SceneObjectBase<LocalValueVariableState>\n implements SceneVariable<LocalValueVariableState>\n{\n private static fieldAccessorCache: FieldAccessorCache = {};\n\n public constructor(initialState: Partial<LocalValueVariableState>) {\n super({\n type: 'system',\n value: '',\n text: '',\n name: '',\n ...initialState,\n skipUrlSync: true,\n });\n }\n\n public getValue(fieldPath?: string): VariableValue {\n if (fieldPath != null && this.state.properties) {\n return this.getFieldAccessor(fieldPath)(this.state.properties);\n }\n return this.state.value;\n }\n\n private getFieldAccessor(fieldPath: string) {\n const accessor = LocalValueVariable.fieldAccessorCache[fieldPath];\n if (accessor) {\n return accessor;\n }\n return (LocalValueVariable.fieldAccessorCache[fieldPath] = property(fieldPath));\n }\n\n public getValueText(): string {\n return this.state.text.toString();\n }\n\n /**\n * Checks the ancestor of our parent SceneVariableSet for loading state of a variable with the same name\n * This function is unit tested from SceneVariableSet tests.\n */\n public isAncestorLoading(): boolean {\n // Parent (SceneVariableSet) -> Parent (The object that has our parent set) -> Parent (scope we need to access our sets ancestor)\n const ancestorScope = this.parent?.parent?.parent;\n if (!ancestorScope) {\n throw new Error('LocalValueVariable requires a parent SceneVariableSet that has an ancestor SceneVariableSet');\n }\n\n const set = sceneGraph.getVariables(ancestorScope);\n const parentVar = sceneGraph.lookupVariable(this.state.name, ancestorScope);\n if (set && parentVar) {\n return set.isVariableLoadingOrWaitingToUpdate(parentVar);\n }\n\n return false;\n }\n}\n"],"names":[],"mappings":";;;;AAqBO,MAAM,mBAAA,GAAN,MAAM,mBAAA,SACH,eAEV,CAAA;AAAA,EAGS,YAAY,YAAgD,EAAA;AACjE,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,QAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,MACN,IAAM,EAAA,EAAA;AAAA,MACN,GAAG,YAAA;AAAA,MACH,WAAa,EAAA;AAAA,KACd,CAAA;AAAA;AACH,EAEO,SAAS,SAAmC,EAAA;AACjD,IAAA,IAAI,SAAa,IAAA,IAAA,IAAQ,IAAK,CAAA,KAAA,CAAM,UAAY,EAAA;AAC9C,MAAA,OAAO,KAAK,gBAAiB,CAAA,SAAS,CAAE,CAAA,IAAA,CAAK,MAAM,UAAU,CAAA;AAAA;AAE/D,IAAA,OAAO,KAAK,KAAM,CAAA,KAAA;AAAA;AACpB,EAEQ,iBAAiB,SAAmB,EAAA;AAC1C,IAAM,MAAA,QAAA,GAAW,mBAAmB,CAAA,kBAAA,CAAmB,SAAS,CAAA;AAChE,IAAA,IAAI,QAAU,EAAA;AACZ,MAAO,OAAA,QAAA;AAAA;AAET,IAAA,OAAQ,mBAAmB,CAAA,kBAAA,CAAmB,SAAS,CAAA,GAAI,SAAS,SAAS,CAAA;AAAA;AAC/E,EAEO,YAAuB,GAAA;AAC5B,IAAO,OAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,QAAS,EAAA;AAAA;AAClC;AAAA;AAAA;AAAA;AAAA,EAMO,iBAA6B,GAAA;AA7DtC,IAAA,IAAA,EAAA,EAAA,EAAA;AA+DI,IAAA,MAAM,aAAgB,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,MAAL,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAa,WAAb,IAAqB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA;AAC3C,IAAA,IAAI,CAAC,aAAe,EAAA;AAClB,MAAM,MAAA,IAAI,MAAM,6FAA6F,CAAA;AAAA;AAG/G,IAAM,MAAA,GAAA,GAAM,UAAW,CAAA,YAAA,CAAa,aAAa,CAAA;AACjD,IAAA,MAAM,YAAY,UAAW,CAAA,cAAA,CAAe,IAAK,CAAA,KAAA,CAAM,MAAM,aAAa,CAAA;AAC1E,IAAA,IAAI,OAAO,SAAW,EAAA;AACpB,MAAO,OAAA,GAAA,CAAI,mCAAmC,SAAS,CAAA;AAAA;AAGzD,IAAO,OAAA,KAAA;AAAA;AAEX,CAAA;AAvDa,mBAAA,CAII,qBAAyC,EAAC;AAJpD,IAAM,kBAAN,GAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiValueVariable.js","sources":["../../../../../../../src/variables/variants/MultiValueVariable.ts"],"sourcesContent":["import { isArray, isEqual, property } from 'lodash';\nimport { map, Observable } from 'rxjs';\n\nimport { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE } from '../constants';\n\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneObjectUrlSyncHandler, SceneObjectUrlValues } from '../../core/types';\nimport {\n SceneVariable,\n SceneVariableValueChangedEvent,\n SceneVariableState,\n ValidateAndUpdateResult,\n VariableValue,\n VariableValueOption,\n VariableValueSingle,\n CustomVariableValue,\n VariableCustomFormatterFn,\n} from '../types';\nimport { formatRegistry } from '../interpolation/formatRegistry';\nimport { VariableFormatID } from '@grafana/schema';\nimport { SceneVariableSet } from '../sets/SceneVariableSet';\nimport { setBaseClassState } from '../../utils/utils';\nimport { VARIABLE_VALUE_CHANGED_INTERACTION } from '../../performance/interactionConstants';\nimport { getQueryController } from '../../core/sceneGraph/getQueryController';\n\nexport interface MultiValueVariableState extends SceneVariableState {\n value: VariableValue; // old current.text\n text: VariableValue; // old current.value\n options: VariableValueOption[];\n allowCustomValue?: boolean;\n isMulti?: boolean;\n includeAll?: boolean;\n defaultToAll?: boolean;\n allValue?: string;\n placeholder?: string;\n /**\n * For multi value variables, this option controls how many values to show before they are collapsed into +N.\n * Defaults to 5\n */\n maxVisibleValues?: number;\n noValueOnClear?: boolean;\n isReadOnly?: boolean;\n}\n\nexport interface VariableGetOptionsArgs {\n searchFilter?: string;\n}\n\nexport abstract class MultiValueVariable<TState extends MultiValueVariableState = MultiValueVariableState>\n extends SceneObjectBase<TState>\n implements SceneVariable<TState>\n{\n private static fieldAccessorCache: FieldAccessorCache = {};\n\n protected _urlSync: SceneObjectUrlSyncHandler = new MultiValueUrlSyncHandler(this);\n\n /**\n * Set to true to skip next value validation to maintain the current value even it it's not among the options (ie valid values)\n */\n public skipNextValidation?: boolean;\n\n /**\n * The source of value options.\n */\n public abstract getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;\n\n /**\n * This function is called on when SceneVariableSet is activated or when a dependency changes.\n */\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this.updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n\n public onCancel(): void {\n this.setStateHelper({ loading: false });\n const sceneVarSet = this.parent as SceneVariableSet;\n sceneVarSet?.cancel(this);\n }\n\n /**\n * Check if current value is valid given new options. If not update the value.\n */\n private updateValueGivenNewOptions(options: VariableValueOption[]) {\n // Remember current value and text\n const { value: currentValue, text: currentText, options: oldOptions } = this.state;\n\n const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);\n\n this.interceptStateUpdateAfterValidation(stateUpdate);\n\n // Perform state change\n this.setStateHelper(stateUpdate);\n\n // Publish value changed event only if value changed\n if (\n stateUpdate.value !== currentValue ||\n stateUpdate.text !== currentText ||\n (this.hasAllValue() && !isEqual(options, oldOptions))\n ) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n }\n\n private getStateUpdateGivenNewOptions(\n options: VariableValueOption[],\n currentValue: VariableValue,\n currentText: VariableValue\n ): Partial<MultiValueVariableState> {\n const stateUpdate: Partial<MultiValueVariableState> = {\n options,\n loading: false,\n value: currentValue,\n text: currentText,\n };\n\n if (options.length === 0) {\n if (this.state.defaultToAll || this.state.includeAll) {\n stateUpdate.value = ALL_VARIABLE_VALUE;\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else if (this.state.isMulti) {\n stateUpdate.value = [];\n stateUpdate.text = [];\n } else {\n stateUpdate.value = '';\n stateUpdate.text = '';\n }\n\n return stateUpdate;\n }\n\n if (this.hasAllValue()) {\n if (this.state.includeAll) {\n // Sometimes the text representation is also set the ALL_VARIABLE_VALUE, this fixes that\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else {\n stateUpdate.value = options[0].value;\n stateUpdate.text = options[0].label;\n // If multi switch to arrays\n if (this.state.isMulti) {\n stateUpdate.value = [stateUpdate.value];\n stateUpdate.text = [stateUpdate.text];\n }\n }\n return stateUpdate;\n }\n\n if (this.state.isMulti) {\n // If we are a multi valued variable validate the current values are among the options\n const currentValues = Array.isArray(currentValue) ? currentValue : [currentValue];\n const validValues = currentValues.filter((v) => options.find((o) => o.value === v));\n const validTexts = validValues.map((v) => options.find((o) => o.value === v)!.label);\n\n // If no valid values pick the first option\n if (validValues.length === 0) {\n const defaultState = this.getDefaultMultiState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n } else {\n // We have valid values, if it's different from current valid values update current values\n if (!isEqual(validValues, currentValue)) {\n stateUpdate.value = validValues;\n }\n if (!isEqual(validTexts, currentText)) {\n stateUpdate.text = validTexts;\n }\n }\n\n return stateUpdate;\n }\n\n // Single value variable validation\n\n // Try find by value then text\n let matchingOption = findOptionMatchingCurrent(currentValue, currentText, options);\n if (matchingOption) {\n // When updating the initial state from URL the text property is set the same as value\n // Here we can correct the text value state\n stateUpdate.text = matchingOption.label;\n stateUpdate.value = matchingOption.value;\n } else {\n // Current value is found in options\n const defaultState = this.getDefaultSingleState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.label;\n }\n\n return stateUpdate;\n }\n\n /**\n * Values set by initial URL sync needs to survive the next validation and update.\n * This function can intercept and make sure those values are preserved.\n */\n protected interceptStateUpdateAfterValidation(stateUpdate: Partial<MultiValueVariableState>): void {\n // If the validation wants to fix the all value (All ==> $__all) then we should let that pass\n const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;\n\n if (\n this.skipNextValidation &&\n stateUpdate.value !== this.state.value &&\n stateUpdate.text !== this.state.text &&\n !isAllValueFix\n ) {\n stateUpdate.value = this.state.value;\n stateUpdate.text = this.state.text;\n }\n\n this.skipNextValidation = false;\n }\n\n public getValue(fieldPath?: string): VariableValue {\n let value = this.state.value;\n\n if (this.hasAllValue()) {\n if (this.state.allValue) {\n return new CustomAllValue(this.state.allValue, this);\n }\n value = this.state.options.map((o) => o.value);\n }\n\n if (fieldPath != null) {\n if (Array.isArray(value)) {\n const index = parseInt(fieldPath, 10);\n if (!isNaN(index) && index >= 0 && index < value.length) {\n return value[index];\n }\n\n const accesor = this.getFieldAccessor(fieldPath);\n return value.map((v) => {\n const o = this.state.options.find((o) => o.value === v);\n return o ? accesor(o.properties) : v;\n });\n }\n\n const accesor = this.getFieldAccessor(fieldPath);\n const o = this.state.options.find((o) => o.value === value);\n if (o) {\n return accesor(o.properties);\n }\n }\n\n return value;\n }\n\n private getFieldAccessor(fieldPath: string) {\n const accessor = MultiValueVariable.fieldAccessorCache[fieldPath];\n if (accessor) {\n return accessor;\n }\n\n return (MultiValueVariable.fieldAccessorCache[fieldPath] = property(fieldPath));\n }\n\n public getValueText(): string {\n if (this.hasAllValue()) {\n return ALL_VARIABLE_TEXT;\n }\n\n if (Array.isArray(this.state.text)) {\n return this.state.text.join(' + ');\n }\n\n return String(this.state.text);\n }\n\n public hasAllValue() {\n const value = this.state.value;\n return value === ALL_VARIABLE_VALUE || (Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE);\n }\n\n public getDefaultMultiState(options: VariableValueOption[]) {\n if (this.state.defaultToAll) {\n return { value: [ALL_VARIABLE_VALUE], text: [ALL_VARIABLE_TEXT] };\n } else if (options.length > 0) {\n return { value: [options[0].value], text: [options[0].label], properties: [options[0].properties] };\n } else {\n return { value: [], text: [] };\n }\n }\n\n protected getDefaultSingleState(options: VariableValueOption[]): VariableValueOption {\n if (this.state.defaultToAll) {\n return { value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT };\n } else if (options.length > 0) {\n return { value: options[0].value, label: options[0].label, properties: options[0].properties };\n } else {\n return { value: '', label: '' };\n }\n }\n\n /**\n * Change the value and publish SceneVariableValueChangedEvent event.\n */\n public changeValueTo(value: VariableValue, text?: VariableValue, isUserAction = false) {\n // Ignore if there is no change\n if (value === this.state.value && text === this.state.text) {\n return;\n }\n\n if (!text) {\n if (Array.isArray(value)) {\n text = value.map((v) => this.findLabelTextForValue(v));\n } else {\n text = this.findLabelTextForValue(value);\n }\n }\n\n if (Array.isArray(value)) {\n // If we are a multi valued variable is cleared (empty array) we need to set the default empty state\n if (value.length === 0) {\n const state = this.getDefaultMultiState(this.state.options);\n value = state.value;\n text = state.text;\n }\n\n // If last value is the All value then replace all with it\n if (value[value.length - 1] === ALL_VARIABLE_VALUE) {\n value = [ALL_VARIABLE_VALUE];\n text = [ALL_VARIABLE_TEXT];\n }\n // If the first value is the ALL value and we have other values, then remove the All value\n else if (value[0] === ALL_VARIABLE_VALUE && value.length > 1) {\n value.shift();\n if (Array.isArray(text)) {\n text.shift();\n }\n }\n }\n\n // Do nothing if value and text are the same\n if (isEqual(value, this.state.value) && isEqual(text, this.state.text)) {\n return;\n }\n\n const stateChangeAction = () => this.setStateHelper({ value, text, loading: false });\n /**\n * Because variable state changes can cause a whole chain of downstream state changes in other variables (that also cause URL update)\n * Only some variable changes should add new history items to make sure the browser history contains valid URL states to go back to.\n */\n if (isUserAction) {\n const queryController = getQueryController(this);\n queryController?.startProfile(VARIABLE_VALUE_CHANGED_INTERACTION);\n this._urlSync.performBrowserHistoryAction?.(stateChangeAction);\n } else {\n stateChangeAction();\n }\n\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n private findLabelTextForValue(value: VariableValueSingle): VariableValueSingle {\n if (value === ALL_VARIABLE_VALUE) {\n return ALL_VARIABLE_TEXT;\n }\n\n const option = this.state.options.find((x) => x.value === value);\n if (option) {\n return option.label;\n }\n\n const optionByLabel = this.state.options.find((x) => x.label === value);\n if (optionByLabel) {\n return optionByLabel.label;\n }\n\n return value;\n }\n\n /**\n * This helper function is to counter the contravariance of setState\n */\n private setStateHelper(state: Partial<MultiValueVariableState>) {\n setBaseClassState<MultiValueVariableState>(this, state);\n }\n\n public getOptionsForSelect(includeCurrentValue = true): VariableValueOption[] {\n let options = this.state.options;\n\n if (this.state.includeAll) {\n options = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...options];\n }\n\n if (includeCurrentValue && !Array.isArray(this.state.value)) {\n const current = options.find((x) => x.value === this.state.value);\n if (!current) {\n options = [{ value: this.state.value, label: String(this.state.text) }, ...options];\n }\n }\n\n return options;\n }\n\n public refreshOptions() {\n this.getValueOptions({}).subscribe((options) => {\n this.updateValueGivenNewOptions(options);\n });\n }\n\n /**\n * Can be used by subclasses to do custom handling of option search based on search input\n */\n public onSearchChange?(searchFilter: string): void;\n}\n\n/**\n * Looks for matching option, first by value but as a fallback by text (label).\n */\nfunction findOptionMatchingCurrent(\n currentValue: VariableValue,\n currentText: VariableValue,\n options: VariableValueOption[]\n) {\n let textMatch: VariableValueOption | undefined;\n\n for (const o of options) {\n if (o.value === currentValue) {\n return o;\n }\n\n // No early return here as want to continue to look a value match\n if (o.label === currentText) {\n textMatch = o;\n }\n }\n\n return textMatch;\n}\n\nexport class MultiValueUrlSyncHandler<TState extends MultiValueVariableState = MultiValueVariableState>\n implements SceneObjectUrlSyncHandler\n{\n protected _nextChangeShouldAddHistoryStep = false;\n\n public constructor(protected _sceneObject: MultiValueVariable<TState>) {}\n\n protected getKey(): string {\n return `var-${this._sceneObject.state.name}`;\n }\n\n public getKeys(): string[] {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n\n let urlValue: string | string[] | null = null;\n let value = this._sceneObject.state.value;\n\n if (Array.isArray(value) && value.length > 1) {\n urlValue = value.map(String);\n } else if ((this, this._sceneObject.state.isMulti)) {\n // If we are inMulti mode we must return an array here as otherwise UrlSyncManager will not pass all values (in an array) in updateFromUrl\n urlValue = [String(value)];\n } else {\n urlValue = String(value);\n }\n\n return { [this.getKey()]: urlValue };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n let urlValue = values[this.getKey()];\n\n if (urlValue != null) {\n // This is to be backwards compatible with old url all value\n if (this._sceneObject.state.includeAll) {\n urlValue = handleLegacyUrlAllValue(urlValue);\n }\n\n // For edge cases where data links include variables with custom all value.\n // We want the variable to maintain the \"All\" meta value not the actual custom vall value. (Fixes https://github.com/grafana/grafana/issues/28635)\n if (this._sceneObject.state.allValue && this._sceneObject.state.allValue === urlValue) {\n urlValue = ALL_VARIABLE_VALUE;\n }\n\n /**\n * Initial URL Sync happens before scene objects are activated.\n * We need to skip validation in this case to make sure values set via URL are maintained.\n */\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n\n this._sceneObject.changeValueTo(urlValue);\n }\n }\n\n public performBrowserHistoryAction(callback: () => void) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n\n public shouldCreateHistoryStep(values: SceneObjectUrlValues): boolean {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\n\nfunction handleLegacyUrlAllValue(value: string | string[]) {\n if (isArray(value) && value[0] === ALL_VARIABLE_TEXT) {\n return [ALL_VARIABLE_VALUE];\n } else if (value === ALL_VARIABLE_TEXT) {\n return ALL_VARIABLE_VALUE;\n }\n\n return value;\n}\n\n/**\n * Variable getValue can return this to skip any subsequent formatting.\n * This is useful for custom all values that should not be escaped/formatted.\n */\nexport class CustomAllValue implements CustomVariableValue {\n public constructor(private _value: string, private _variable: SceneVariable) {}\n\n public formatter(formatNameOrFn?: string | VariableCustomFormatterFn): string {\n if (formatNameOrFn === VariableFormatID.Text) {\n return ALL_VARIABLE_TEXT;\n }\n\n if (formatNameOrFn === VariableFormatID.PercentEncode) {\n return formatRegistry.get(VariableFormatID.PercentEncode).formatter(this._value, [], this._variable);\n }\n\n if (formatNameOrFn === VariableFormatID.QueryParam) {\n return formatRegistry.get(VariableFormatID.QueryParam).formatter(ALL_VARIABLE_TEXT, [], this._variable);\n }\n\n return this._value;\n }\n}\n\nexport interface FieldAccessorCache {\n [key: string]: (obj: any) => any;\n}\n"],"names":["accesor","o"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopesVariable.js","sources":["../../../../../../../src/variables/variants/ScopesVariable.tsx"],"sourcesContent":["import { SceneObjectBase } from '../../core/SceneObjectBase';\nimport {\n CustomVariableValue,\n SceneVariable,\n SceneVariableState,\n SceneVariableValueChangedEvent,\n VariableValue,\n} from '../types';\nimport { Scope } from '@grafana/data';\nimport { SceneComponentProps } from '../../core/types';\nimport { ScopesContext, ScopesContextValue } from '@grafana/runtime';\nimport { useContext, useEffect } from 'react';\nimport { VariableFormatID, VariableHide } from '@grafana/schema';\nimport { SCOPES_VARIABLE_NAME } from '../constants';\nimport { isEqual } from 'lodash';\nimport { getQueryController } from '../../core/sceneGraph/getQueryController';\nimport { SCOPES_CHANGED_INTERACTION } from '../../performance/interactionConstants';\n\nexport interface ScopesVariableState extends SceneVariableState {\n /**\n * Last captured state from ScopesContext\n */\n scopes: Scope[];\n /**\n * Set to true if you want to the variable to enable / disable scopes when activated / deactivated\n */\n enable?: boolean;\n}\n\nexport class ScopesVariable extends SceneObjectBase<ScopesVariableState> implements SceneVariable<ScopesVariableState> {\n protected _renderBeforeActivation = true;\n protected _context: ScopesContextValue | undefined;\n\n // Special options that enables variables to be hidden but still render to access react contexts\n public UNSAFE_renderAsHidden = true;\n public static Component = ScopesVariableRenderer;\n\n public constructor(state: Partial<ScopesVariableState>) {\n super({\n skipUrlSync: true,\n loading: true,\n scopes: [],\n ...state,\n type: 'system',\n name: SCOPES_VARIABLE_NAME,\n hide: VariableHide.hideVariable,\n });\n }\n\n /**\n * Temporary simple implementation to stringify the scopes.\n */\n public getValue(): VariableValue {\n const scopes = this.state.scopes ?? [];\n return new ScopesVariableFormatter(scopes.map((scope) => scope.metadata.name));\n }\n\n public getScopes(): Scope[] | undefined {\n return this.state.scopes;\n }\n\n /**\n * This method is used to keep the context up to date with the scopes context received from React\n * 1) Subscribes to ScopesContext state changes and synchronizes it with the variable state\n * 2) Handles enable / disabling of scopes based on variable enable option.\n */\n public setContext(context: ScopesContextValue | undefined) {\n if (!context) {\n return;\n }\n\n this._context = context;\n\n const oldState = context.state;\n\n // Update scopes enable state if state.enable is defined\n if (this.state.enable != null) {\n context.setEnabled(this.state.enable);\n }\n\n // Subscribe to context state changes\n const sub = context.stateObservable.subscribe((state) => {\n this.updateStateFromContext(state);\n });\n\n return () => {\n sub.unsubscribe();\n\n if (this.state.enable != null) {\n context.setEnabled(oldState.enabled);\n }\n };\n }\n\n public updateStateFromContext(state: { loading: boolean; value: Scope[] }) {\n // There was logic in SceneQueryRunner that said if there are no scopes then loading state should not block query execution\n const loading = state.value.length === 0 ? false : state.loading;\n const oldScopes = this.state.scopes.map((scope) => scope.metadata.name);\n const newScopes = state.value.map((scope) => scope.metadata.name);\n const scopesHaveChanged = !isEqual(oldScopes, newScopes);\n\n // Only update scopes value state when loading is false and the scopes have changed\n if (!loading && (scopesHaveChanged || newScopes.length === 0)) {\n const queryController = getQueryController(this);\n queryController?.startProfile(SCOPES_CHANGED_INTERACTION);\n this.setState({ scopes: state.value, loading });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n } else {\n this.setState({ loading });\n }\n }\n}\n\nfunction ScopesVariableRenderer({ model }: SceneComponentProps<ScopesVariable>) {\n const context = useContext(ScopesContext);\n\n useEffect(() => {\n return model.setContext(context);\n }, [context, model]);\n\n return null;\n}\n\nexport class ScopesVariableFormatter implements CustomVariableValue {\n public constructor(private _value: string[]) {}\n\n public formatter(formatNameOrFn?: string): string {\n if (formatNameOrFn === VariableFormatID.QueryParam) {\n return this._value.map((scope) => `scope=${encodeURIComponent(scope)}`).join('&');\n }\n\n return this._value.join(', ');\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;AA6BO,MAAM,uBAAuB,eAAmF,CAAA;AAAA,EAQ9G,YAAY,KAAqC,EAAA;AACtD,IAAM,KAAA,CAAA;AAAA,MACJ,WAAa,EAAA,IAAA;AAAA,MACb,OAAS,EAAA,IAAA;AAAA,MACT,QAAQ,EAAC;AAAA,MACT,GAAG,KAAA;AAAA,MACH,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA,oBAAA;AAAA,MACN,MAAM,YAAa,CAAA;AAAA,KACpB,CAAA;AAhBH,IAAA,IAAA,CAAU,uBAA0B,GAAA,IAAA;AAIpC;AAAA,IAAA,IAAA,CAAO,qBAAwB,GAAA,IAAA;AAAA;AAa/B;AAAA;AAAA;AAAA,EAKO,QAA0B,GAAA;AApDnC,IAAA,IAAA,EAAA;AAqDI,IAAA,MAAM,MAAS,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAM,CAAA,MAAA,KAAX,YAAqB,EAAC;AACrC,IAAO,OAAA,IAAI,wBAAwB,MAAO,CAAA,GAAA,CAAI,CAAC,KAAU,KAAA,KAAA,CAAM,QAAS,CAAA,IAAI,CAAC,CAAA;AAAA;AAC/E,EAEO,SAAiC,GAAA;AACtC,IAAA,OAAO,KAAK,KAAM,CAAA,MAAA;AAAA;AACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,WAAW,OAAyC,EAAA;AACzD,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA;AAAA;AAGF,IAAA,IAAA,CAAK,QAAW,GAAA,OAAA;AAEhB,IAAA,MAAM,WAAW,OAAQ,CAAA,KAAA;AAGzB,IAAI,IAAA,IAAA,CAAK,KAAM,CAAA,MAAA,IAAU,IAAM,EAAA;AAC7B,MAAQ,OAAA,CAAA,UAAA,CAAW,IAAK,CAAA,KAAA,CAAM,MAAM,CAAA;AAAA;AAItC,IAAA,MAAM,GAAM,GAAA,OAAA,CAAQ,eAAgB,CAAA,SAAA,CAAU,CAAC,KAAU,KAAA;AACvD,MAAA,IAAA,CAAK,uBAAuB,KAAK,CAAA;AAAA,KAClC,CAAA;AAED,IAAA,OAAO,MAAM;AACX,MAAA,GAAA,CAAI,WAAY,EAAA;AAEhB,MAAI,IAAA,IAAA,CAAK,KAAM,CAAA,MAAA,IAAU,IAAM,EAAA;AAC7B,QAAQ,OAAA,CAAA,UAAA,CAAW,SAAS,OAAO,CAAA;AAAA;AACrC,KACF;AAAA;AACF,EAEO,uBAAuB,KAA6C,EAAA;AAEzE,IAAA,MAAM,UAAU,KAAM,CAAA,KAAA,CAAM,MAAW,KAAA,CAAA,GAAI,QAAQ,KAAM,CAAA,OAAA;AACzD,IAAM,MAAA,SAAA,GAAY,KAAK,KAAM,CAAA,MAAA,CAAO,IAAI,CAAC,KAAA,KAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA;AACtE,IAAM,MAAA,SAAA,GAAY,MAAM,KAAM,CAAA,GAAA,CAAI,CAAC,KAAU,KAAA,KAAA,CAAM,SAAS,IAAI,CAAA;AAChE,IAAA,MAAM,iBAAoB,GAAA,CAAC,OAAQ,CAAA,SAAA,EAAW,SAAS,CAAA;AAGvD,IAAA,IAAI,CAAC,OAAA,KAAY,iBAAqB,IAAA,SAAA,CAAU,WAAW,CAAI,CAAA,EAAA;AAC7D,MAAM,MAAA,eAAA,GAAkB,mBAAmB,IAAI,CAAA;AAC/C,MAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,YAAa,CAAA,0BAAA,CAAA;AAC9B,MAAA,IAAA,CAAK,SAAS,EAAE,MAAA,EAAQ,KAAM,CAAA,KAAA,EAAO,SAAS,CAAA;AAC9C,MAAA,IAAA,CAAK,YAAa,CAAA,IAAI,8BAA+B,CAAA,IAAI,GAAG,IAAI,CAAA;AAAA,KAC3D,MAAA;AACL,MAAK,IAAA,CAAA,QAAA,CAAS,EAAE,OAAA,EAAS,CAAA;AAAA;AAC3B;AAEJ;AAlFa,cAAA,CAMG,SAAY,GAAA,sBAAA;AA8E5B,SAAS,sBAAA,CAAuB,EAAE,KAAA,EAA8C,EAAA;AAC9E,EAAM,MAAA,OAAA,GAAU,WAAW,aAAa,CAAA;AAExC,EAAA,SAAA,CAAU,MAAM;AACd,IAAO,OAAA,KAAA,CAAM,WAAW,OAAO,CAAA;AAAA,GAC9B,EAAA,CAAC,OAAS,EAAA,KAAK,CAAC,CAAA;AAEnB,EAAO,OAAA,IAAA;AACT;AAEO,MAAM,uBAAuD,CAAA;AAAA,EAC3D,YAAoB,MAAkB,EAAA;AAAlB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA;AAAmB,EAEvC,UAAU,cAAiC,EAAA;AAChD,IAAI,IAAA,cAAA,KAAmB,iBAAiB,UAAY,EAAA;AAClD,MAAA,OAAO,IAAK,CAAA,MAAA,CAAO,GAAI,CAAA,CAAC,KAAU,KAAA,CAAA,MAAA,EAAS,kBAAmB,CAAA,KAAK,CAAC,CAAA,CAAE,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA;AAGlF,IAAO,OAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAEhC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwitchVariable.js","sources":["../../../../../../../src/variables/variants/SwitchVariable.tsx"],"sourcesContent":["import React from 'react';\nimport { Observable, of } from 'rxjs';\nimport { Switch, useStyles2 } from '@grafana/ui';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { css } from '@emotion/css';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport {\n SceneVariable,\n SceneVariableState,\n SceneVariableValueChangedEvent,\n ValidateAndUpdateResult,\n VariableValue,\n} from '../types';\n\nexport interface SwitchVariableState extends SceneVariableState {\n value: string;\n enabledValue: string;\n disabledValue: string;\n}\n\nexport class SwitchVariable extends SceneObjectBase<SwitchVariableState> implements SceneVariable<SwitchVariableState> {\n public static Component = SwitchVariableRenderer;\n private _prevValue: VariableValue = '';\n\n public constructor(initialState: Partial<SwitchVariableState>) {\n super({\n // TODO: remove this once switch is in the schema @leventebalogh\n // @ts-expect-error - switch is a valid variable type, but not in the schema yet\n type: 'switch',\n value: 'false',\n enabledValue: 'true',\n disabledValue: 'false',\n name: '',\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => this.getKeys() });\n }\n\n /**\n * This function is called on when SceneVariableSet is activated or when a dependency changes.\n */\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n const newValue = this.getValue();\n\n if (this._prevValue !== newValue) {\n this._prevValue = newValue;\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n return of({});\n }\n\n public setValue(newValue: string): void {\n // Ignore if there's no change\n if (this.getValue() === newValue) {\n return;\n }\n\n if ([this.state.enabledValue, this.state.disabledValue].includes(newValue)) {\n this.setState({ value: newValue });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n } else {\n console.error(\n `Invalid value for switch variable: \"${newValue}\". Valid values are: \"${this.state.enabledValue}\" and \"${this.state.disabledValue}\".`\n );\n }\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n\n public isEnabled(): boolean {\n return this.state.value === this.state.enabledValue;\n }\n\n public isDisabled(): boolean {\n return this.state.value === this.state.disabledValue;\n }\n\n private getKey(): string {\n return `var-${this.state.name}`;\n }\n\n public getKeys(): string[] {\n if (this.state.skipUrlSync) {\n return [];\n }\n\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n if (this.state.skipUrlSync) {\n return {};\n }\n\n return { [this.getKey()]: this.state.value };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n const val = values[this.getKey()];\n\n if (typeof val === 'string') {\n this.setValue(val);\n }\n }\n}\n\nfunction SwitchVariableRenderer({ model }: SceneComponentProps<SwitchVariable>) {\n const state = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n <div className={styles.container}>\n <Switch\n id={`var-${state.key}`}\n value={state.value === state.enabledValue}\n onChange={(event) => {\n model.setValue(event!.currentTarget.checked ? state.enabledValue : state.disabledValue);\n }}\n />\n </div>\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n height: theme.spacing(theme.components.height.md),\n borderRadius: theme.shape.radius.default,\n border: `1px solid ${theme.components.input.borderColor}`,\n background: theme.colors.background.primary,\n }),\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestVariable.js","sources":["../../../../../../../src/variables/variants/TestVariable.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport { Observable, Subject } from 'rxjs';\n\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneComponentProps } from '../../core/types';\nimport { queryMetricTree } from '../../utils/metricTree';\nimport { VariableDependencyConfig } from '../VariableDependencyConfig';\nimport { MultiOrSingleValueSelect } from '../components/VariableValueSelect';\nimport { VariableValueOption } from '../types';\n\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from './MultiValueVariable';\nimport { VariableRefresh } from '@grafana/data';\nimport { getClosest } from '../../core/sceneGraph/utils';\nimport { SceneVariableSet } from '../sets/SceneVariableSet';\nimport { SceneQueryControllerEntry } from '../../behaviors/types';\nimport React from 'react';\n\nexport interface TestVariableState extends MultiValueVariableState {\n query: string;\n delayMs?: number;\n issuedQuery?: string;\n refresh?: VariableRefresh;\n throwError?: string;\n optionsToReturn?: VariableValueOption[];\n updateOptions?: boolean;\n}\n\n/**\n * This variable is only designed for unit tests and potentially e2e tests.\n */\nexport class TestVariable extends MultiValueVariable<TestVariableState> {\n private completeUpdate = new Subject<number>();\n public isGettingValues = true;\n public getValueOptionsCount = 0;\n isLazy = false;\n\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['query'],\n });\n\n public constructor(initialState: Partial<TestVariableState>, isLazy = false) {\n super({\n type: 'custom',\n name: 'Test',\n value: 'Value',\n text: t('grafana-scenes.variables.test-variable.text.text', 'Text'),\n query: 'Query',\n options: [],\n refresh: VariableRefresh.onDashboardLoad,\n updateOptions: true,\n ...initialState,\n });\n this.isLazy = isLazy;\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n const { delayMs } = this.state;\n\n this.getValueOptionsCount += 1;\n\n const queryController = sceneGraph.getQueryController(this);\n\n return new Observable<VariableValueOption[]>((observer) => {\n const queryEntry: SceneQueryControllerEntry = {\n type: 'variable',\n origin: this,\n cancel: () => observer.complete(),\n };\n\n if (queryController) {\n queryController.queryStarted(queryEntry);\n }\n\n this.setState({ loading: true });\n\n if (this.state.throwError) {\n throw new Error(this.state.throwError);\n }\n\n const interpolatedQuery = sceneGraph.interpolate(this, this.state.query);\n const options = this.getOptions(interpolatedQuery);\n\n const sub = this.completeUpdate.subscribe({\n next: () => {\n const newState: Partial<TestVariableState> = { issuedQuery: interpolatedQuery, loading: false };\n\n if (this.state.updateOptions) {\n newState.options = options;\n }\n\n this.setState(newState);\n observer.next(options);\n observer.complete();\n },\n });\n\n let timeout: number | undefined;\n if (delayMs) {\n timeout = window.setTimeout(() => this.signalUpdateCompleted(), delayMs);\n } else if (delayMs === 0) {\n this.signalUpdateCompleted();\n }\n\n this.isGettingValues = true;\n\n return () => {\n sub.unsubscribe();\n window.clearTimeout(timeout);\n this.isGettingValues = false;\n\n if (this.state.loading) {\n this.setState({ loading: false });\n }\n\n if (queryController) {\n queryController.queryCompleted(queryEntry);\n }\n };\n });\n }\n\n public cancel() {\n const sceneVarSet = getClosest(this, (s) => (s instanceof SceneVariableSet ? s : undefined));\n sceneVarSet?.cancel(this);\n }\n\n private getOptions(interpolatedQuery: string) {\n if (this.state.optionsToReturn) {\n return this.state.optionsToReturn;\n }\n\n return queryMetricTree(interpolatedQuery).map((x) => ({ label: x.name, value: x.name }));\n }\n\n /** Useful from tests */\n public signalUpdateCompleted() {\n this.completeUpdate.next(1);\n }\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return <MultiOrSingleValueSelect model={model} />;\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextBoxVariable.js","sources":["../../../../../../../src/variables/variants/TextBoxVariable.tsx"],"sourcesContent":["import React from 'react';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { VariableValueInput } from '../components/VariableValueInput';\nimport { SceneVariable, SceneVariableState, SceneVariableValueChangedEvent, VariableValue } from '../types';\n\nexport interface TextBoxVariableState extends SceneVariableState {\n value: string;\n}\n\nexport class TextBoxVariable\n extends SceneObjectBase<TextBoxVariableState>\n implements SceneVariable<TextBoxVariableState>\n{\n public constructor(initialState: Partial<TextBoxVariableState>) {\n super({\n type: 'textbox',\n value: '',\n name: '',\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => this.getKeys() });\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n\n public setValue(newValue: string) {\n if (newValue !== this.state.value) {\n this.setState({ value: newValue });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n }\n\n private getKey(): string {\n return `var-${this.state.name}`;\n }\n\n public getKeys(): string[] {\n if (this.state.skipUrlSync) {\n return [];\n }\n\n return [this.getKey()];\n }\n\n public getUrlState() {\n if (this.state.skipUrlSync) {\n return {};\n }\n\n return { [this.getKey()]: this.state.value };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const val = values[this.getKey()];\n\n if (typeof val === 'string') {\n this.setValue(val);\n }\n }\n\n public static Component = ({ model }: SceneComponentProps<TextBoxVariable>) => {\n return <VariableValueInput model={model} />;\n };\n}\n"],"names":[],"mappings":";;;;;;AAWO,MAAM,wBACH,eAEV,CAAA;AAAA,EACS,YAAY,YAA6C,EAAA;AAC9D,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,SAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,MACN,GAAG;AAAA,KACJ,CAAA;AAED,IAAK,IAAA,CAAA,QAAA,GAAW,IAAI,wBAAA,CAAyB,IAAM,EAAA,EAAE,MAAM,MAAM,IAAA,CAAK,OAAQ,EAAA,EAAG,CAAA;AAAA;AACnF,EAEO,QAA0B,GAAA;AAC/B,IAAA,OAAO,KAAK,KAAM,CAAA,KAAA;AAAA;AACpB,EAEO,SAAS,QAAkB,EAAA;AAChC,IAAI,IAAA,QAAA,KAAa,IAAK,CAAA,KAAA,CAAM,KAAO,EAAA;AACjC,MAAA,IAAA,CAAK,QAAS,CAAA,EAAE,KAAO,EAAA,QAAA,EAAU,CAAA;AACjC,MAAA,IAAA,CAAK,YAAa,CAAA,IAAI,8BAA+B,CAAA,IAAI,GAAG,IAAI,CAAA;AAAA;AAClE;AACF,EAEQ,MAAiB,GAAA;AACvB,IAAO,OAAA,CAAA,IAAA,EAAO,IAAK,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAAA;AAC/B,EAEO,OAAoB,GAAA;AACzB,IAAI,IAAA,IAAA,CAAK,MAAM,WAAa,EAAA;AAC1B,MAAA,OAAO,EAAC;AAAA;AAGV,IAAO,OAAA,CAAC,IAAK,CAAA,MAAA,EAAQ,CAAA;AAAA;AACvB,EAEO,WAAc,GAAA;AACnB,IAAI,IAAA,IAAA,CAAK,MAAM,WAAa,EAAA;AAC1B,MAAA,OAAO,EAAC;AAAA;AAGV,IAAO,OAAA,EAAE,CAAC,IAAK,CAAA,MAAA,EAAQ,GAAG,IAAA,CAAK,MAAM,KAAM,EAAA;AAAA;AAC7C,EAEO,cAAc,MAA8B,EAAA;AACjD,IAAA,MAAM,GAAM,GAAA,MAAA,CAAO,IAAK,CAAA,MAAA,EAAQ,CAAA;AAEhC,IAAI,IAAA,OAAO,QAAQ,QAAU,EAAA;AAC3B,MAAA,IAAA,CAAK,SAAS,GAAG,CAAA;AAAA;AACnB;AAMJ;AAzDa,eAAA,CAsDG,SAAY,GAAA,CAAC,EAAE,KAAA,EAAkD,KAAA;AAC7E,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,sBAAmB,KAAc,EAAA,CAAA;AAC3C,CAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sources":["../../../../../../../src/variables/variants/guards.ts"],"sourcesContent":["import { AdHocFiltersVariable } from '../adhoc/AdHocFiltersVariable';\nimport { SceneVariable } from '../types';\nimport { ConstantVariable } from './ConstantVariable';\nimport { CustomVariable } from './CustomVariable';\nimport { DataSourceVariable } from './DataSourceVariable';\nimport { IntervalVariable } from './IntervalVariable';\nimport { TextBoxVariable } from './TextBoxVariable';\nimport { QueryVariable } from './query/QueryVariable';\nimport { GroupByVariable } from '../groupby/GroupByVariable';\nimport { SwitchVariable } from './SwitchVariable';\n\nexport function isAdHocVariable(variable: SceneVariable): variable is AdHocFiltersVariable {\n return variable.state.type === 'adhoc';\n}\n\nexport function isConstantVariable(variable: SceneVariable): variable is ConstantVariable {\n return variable.state.type === 'constant';\n}\n\nexport function isCustomVariable(variable: SceneVariable): variable is CustomVariable {\n return variable.state.type === 'custom';\n}\n\nexport function isDataSourceVariable(variable: SceneVariable): variable is DataSourceVariable {\n return variable.state.type === 'datasource';\n}\n\nexport function isIntervalVariable(variable: SceneVariable): variable is IntervalVariable {\n return variable.state.type === 'interval';\n}\n\nexport function isQueryVariable(variable: SceneVariable): variable is QueryVariable {\n return variable.state.type === 'query';\n}\n\nexport function isTextBoxVariable(variable: SceneVariable): variable is TextBoxVariable {\n return variable.state.type === 'textbox';\n}\n\nexport function isGroupByVariable(variable: SceneVariable): variable is GroupByVariable {\n return variable.state.type === 'groupby';\n}\n\nexport function isSwitchVariable(variable: SceneVariable): variable is SwitchVariable {\n // TODO: remove this once switch is in the schema @leventebalogh\n // @ts-expect-error - switch is a valid variable type, but not in the schema yet\n return variable.state.type === 'switch';\n}\n"],"names":[],"mappings":"AAWO,SAAS,gBAAgB,QAA2D,EAAA;AACzF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,OAAA;AACjC;AAEO,SAAS,mBAAmB,QAAuD,EAAA;AACxF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,UAAA;AACjC;AAEO,SAAS,iBAAiB,QAAqD,EAAA;AACpF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,QAAA;AACjC;AAEO,SAAS,qBAAqB,QAAyD,EAAA;AAC5F,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,YAAA;AACjC;AAEO,SAAS,mBAAmB,QAAuD,EAAA;AACxF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,UAAA;AACjC;AAEO,SAAS,gBAAgB,QAAoD,EAAA;AAClF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,OAAA;AACjC;AAEO,SAAS,kBAAkB,QAAsD,EAAA;AACtF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,SAAA;AACjC;AAEO,SAAS,kBAAkB,QAAsD,EAAA;AACtF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,SAAA;AACjC;AAEO,SAAS,iBAAiB,QAAqD,EAAA;AAGpF,EAAO,OAAA,QAAA,CAAS,MAAM,IAAS,KAAA,QAAA;AACjC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryVariable.js","sources":["../../../../../../../../src/variables/variants/query/QueryVariable.tsx"],"sourcesContent":["import { Observable, of, filter, take, mergeMap, catchError, throwError, from, lastValueFrom } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n CoreApp,\n DataQueryRequest,\n LoadingState,\n PanelData,\n ScopedVars,\n VariableRefresh,\n VariableSort,\n // @ts-expect-error TODO: remove suppression after updating grafana/data\n VariableRegexApplyTo,\n} from '@grafana/data';\n\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport { SceneComponentProps, SceneDataQuery } from '../../../core/types';\nimport { VariableDependencyConfig } from '../../VariableDependencyConfig';\nimport { MultiOrSingleValueSelect } from '../../components/VariableValueSelect';\nimport { VariableValueOption } from '../../types';\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from '../MultiValueVariable';\n\nimport { createQueryVariableRunner } from './createQueryVariableRunner';\nimport { metricNamesToVariableValues, sortVariableValues } from './utils';\nimport { toMetricFindValues } from './toMetricFindValues';\nimport { getDataSource } from '../../../utils/getDataSource';\nimport { safeStringifyValue } from '../../utils';\nimport { DataQuery, DataSourceRef } from '@grafana/schema';\nimport { SEARCH_FILTER_VARIABLE } from '../../constants';\nimport { debounce } from 'lodash';\nimport { registerQueryWithController } from '../../../querying/registerQueryWithController';\nimport { wrapInSafeSerializableSceneObject } from '../../../utils/wrapInSafeSerializableSceneObject';\nimport React from 'react';\n\nexport interface QueryVariableState extends MultiValueVariableState {\n type: 'query';\n datasource: DataSourceRef | null;\n query: string | SceneDataQuery;\n regex: string;\n regexApplyTo: VariableRegexApplyTo;\n refresh: VariableRefresh;\n sort: VariableSort;\n\n // works the same as query for custom variable, adding additional static options to ones returned by data source query\n staticOptions?: VariableValueOption[];\n\n // how to order static options in relation to options returned by query\n staticOptionsOrder?: 'before' | 'after' | 'sorted';\n /** @internal Only for use inside core dashboards */\n definition?: string;\n}\n\nexport class QueryVariable extends MultiValueVariable<QueryVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['regex', 'regexApplyTo', 'query', 'datasource'],\n });\n\n public constructor(initialState: Partial<QueryVariableState>) {\n super({\n type: 'query',\n name: '',\n value: '',\n text: '',\n options: [],\n datasource: null,\n regex: '',\n query: '',\n regexApplyTo: 'value',\n refresh: VariableRefresh.onDashboardLoad,\n sort: VariableSort.disabled,\n ...initialState,\n });\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n if (!this.state.query) {\n return of([]);\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 const runner = createQueryVariableRunner(ds);\n const target = runner.getTarget(this);\n const request = this.getRequest(target, args.searchFilter);\n\n return runner.runRequest({ variable: this, searchFilter: args.searchFilter }, request).pipe(\n registerQueryWithController({\n type: 'QueryVariable/getValueOptions',\n request: request,\n origin: this,\n }),\n filter((data) => data.state === LoadingState.Done || data.state === LoadingState.Error), // we only care about done or error for now\n take(1), // take the first result, using first caused a bug where it in some situations throw an uncaught error because of no results had been received yet\n mergeMap((data: PanelData) => {\n if (data.state === LoadingState.Error) {\n return throwError(() => data.error);\n }\n return of(data);\n }),\n toMetricFindValues(),\n mergeMap((values) => {\n let regex = '';\n if (this.state.regex) {\n regex = sceneGraph.interpolate(this, this.state.regex, undefined, 'regex');\n }\n let options = metricNamesToVariableValues({\n variableRegEx: regex,\n variableRegexApplyTo: this.state.regexApplyTo,\n sort: this.state.sort,\n metricNames: values,\n });\n if (this.state.staticOptions) {\n const customOptions = this.state.staticOptions;\n options = options.filter((option) => !customOptions.find((custom) => custom.value === option.value));\n if (this.state.staticOptionsOrder === 'after') {\n options.push(...customOptions);\n } else if (this.state.staticOptionsOrder === 'sorted') {\n options = sortVariableValues(options.concat(customOptions), this.state.sort);\n } else {\n options.unshift(...customOptions);\n }\n }\n return of(options);\n }),\n catchError((error) => {\n if (error.cancelled) {\n return of([]);\n }\n return throwError(() => error);\n })\n );\n })\n );\n }\n\n private getRequest(target: DataQuery | string, searchFilter?: string) {\n const scopedVars: ScopedVars = {\n __sceneObject: wrapInSafeSerializableSceneObject(this),\n };\n\n if (searchFilter) {\n scopedVars.__searchFilter = { value: searchFilter, text: searchFilter };\n }\n\n const range = sceneGraph.getTimeRange(this).state.value;\n\n const request: DataQueryRequest = {\n app: CoreApp.Dashboard,\n requestId: uuidv4(),\n timezone: '',\n range,\n interval: '',\n intervalMs: 0,\n // @ts-ignore\n targets: [target],\n scopedVars,\n startTime: Date.now(),\n };\n\n return request;\n }\n\n onSearchChange = (searchFilter: string) => {\n if (!containsSearchFilter(this.state.query)) {\n return;\n }\n\n this._updateOptionsBasedOnSearchFilter(searchFilter);\n };\n\n private _updateOptionsBasedOnSearchFilter = debounce(async (searchFilter: string) => {\n const result = await lastValueFrom(this.getValueOptions({ searchFilter }));\n this.setState({ options: result, loading: false });\n }, 400);\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return <MultiOrSingleValueSelect model={model} />;\n };\n}\n\nfunction containsSearchFilter(query: string | DataQuery) {\n const str = safeStringifyValue(query);\n return str.indexOf(SEARCH_FILTER_VARIABLE) > -1;\n}\n"],"names":["uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;AAoDO,MAAM,sBAAsB,kBAAuC,CAAA;AAAA,EAKjE,YAAY,YAA2C,EAAA;AAC5D,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,OAAA;AAAA,MACN,IAAM,EAAA,EAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,MACN,SAAS,EAAC;AAAA,MACV,UAAY,EAAA,IAAA;AAAA,MACZ,KAAO,EAAA,EAAA;AAAA,MACP,KAAO,EAAA,EAAA;AAAA,MACP,YAAc,EAAA,OAAA;AAAA,MACd,SAAS,eAAgB,CAAA,eAAA;AAAA,MACzB,MAAM,YAAa,CAAA,QAAA;AAAA,MACnB,GAAG;AAAA,KACJ,CAAA;AAlBH,IAAU,IAAA,CAAA,mBAAA,GAAsB,IAAI,wBAAA,CAAyB,IAAM,EAAA;AAAA,MACjE,UAAY,EAAA,CAAC,OAAS,EAAA,cAAA,EAAgB,SAAS,YAAY;AAAA,KAC5D,CAAA;AAiHD,IAAA,IAAA,CAAA,cAAA,GAAiB,CAAC,YAAyB,KAAA;AACzC,MAAA,IAAI,CAAC,oBAAA,CAAqB,IAAK,CAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAC3C,QAAA;AAAA;AAGF,MAAA,IAAA,CAAK,kCAAkC,YAAY,CAAA;AAAA,KACrD;AAEA,IAAQ,IAAA,CAAA,iCAAA,GAAoC,QAAS,CAAA,OAAO,YAAyB,KAAA;AACnF,MAAM,MAAA,MAAA,GAAS,MAAM,aAAc,CAAA,IAAA,CAAK,gBAAgB,EAAE,YAAA,EAAc,CAAC,CAAA;AACzE,MAAA,IAAA,CAAK,SAAS,EAAE,OAAA,EAAS,MAAQ,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,OAChD,GAAG,CAAA;AAAA;AA3GN,EAEO,gBAAgB,IAAiE,EAAA;AACtF,IAAI,IAAA,CAAC,IAAK,CAAA,KAAA,CAAM,KAAO,EAAA;AACrB,MAAO,OAAA,EAAA,CAAG,EAAE,CAAA;AAAA;AAGd,IAAA,IAAA,CAAK,SAAS,EAAE,OAAA,EAAS,IAAM,EAAA,KAAA,EAAO,MAAM,CAAA;AAE5C,IAAO,OAAA,IAAA;AAAA,MACL,aAAA,CAAc,IAAK,CAAA,KAAA,CAAM,UAAY,EAAA;AAAA,QACnC,aAAA,EAAe,kCAAkC,IAAI;AAAA,OACtD;AAAA,KACD,CAAA,IAAA;AAAA,MACA,QAAA,CAAS,CAAC,EAAO,KAAA;AACf,QAAM,MAAA,MAAA,GAAS,0BAA0B,EAAE,CAAA;AAC3C,QAAM,MAAA,MAAA,GAAS,MAAO,CAAA,SAAA,CAAU,IAAI,CAAA;AACpC,QAAA,MAAM,OAAU,GAAA,IAAA,CAAK,UAAW,CAAA,MAAA,EAAQ,KAAK,YAAY,CAAA;AAEzD,QAAO,OAAA,MAAA,CAAO,UAAW,CAAA,EAAE,QAAU,EAAA,IAAA,EAAM,cAAc,IAAK,CAAA,YAAA,EAAgB,EAAA,OAAO,CAAE,CAAA,IAAA;AAAA,UACrF,2BAA4B,CAAA;AAAA,YAC1B,IAAM,EAAA,+BAAA;AAAA,YACN,OAAA;AAAA,YACA,MAAQ,EAAA;AAAA,WACT,CAAA;AAAA,UACD,MAAA,CAAO,CAAC,IAAA,KAAS,IAAK,CAAA,KAAA,KAAU,aAAa,IAAQ,IAAA,IAAA,CAAK,KAAU,KAAA,YAAA,CAAa,KAAK,CAAA;AAAA;AAAA,UACtF,KAAK,CAAC,CAAA;AAAA;AAAA,UACN,QAAA,CAAS,CAAC,IAAoB,KAAA;AAC5B,YAAI,IAAA,IAAA,CAAK,KAAU,KAAA,YAAA,CAAa,KAAO,EAAA;AACrC,cAAO,OAAA,UAAA,CAAW,MAAM,IAAA,CAAK,KAAK,CAAA;AAAA;AAEpC,YAAA,OAAO,GAAG,IAAI,CAAA;AAAA,WACf,CAAA;AAAA,UACD,kBAAmB,EAAA;AAAA,UACnB,QAAA,CAAS,CAAC,MAAW,KAAA;AACnB,YAAA,IAAI,KAAQ,GAAA,EAAA;AACZ,YAAI,IAAA,IAAA,CAAK,MAAM,KAAO,EAAA;AACpB,cAAA,KAAA,GAAQ,WAAW,WAAY,CAAA,IAAA,EAAM,KAAK,KAAM,CAAA,KAAA,EAAO,QAAW,OAAO,CAAA;AAAA;AAE3E,YAAA,IAAI,UAAU,2BAA4B,CAAA;AAAA,cACxC,aAAe,EAAA,KAAA;AAAA,cACf,oBAAA,EAAsB,KAAK,KAAM,CAAA,YAAA;AAAA,cACjC,IAAA,EAAM,KAAK,KAAM,CAAA,IAAA;AAAA,cACjB,WAAa,EAAA;AAAA,aACd,CAAA;AACD,YAAI,IAAA,IAAA,CAAK,MAAM,aAAe,EAAA;AAC5B,cAAM,MAAA,aAAA,GAAgB,KAAK,KAAM,CAAA,aAAA;AACjC,cAAA,OAAA,GAAU,OAAQ,CAAA,MAAA,CAAO,CAAC,MAAA,KAAW,CAAC,aAAA,CAAc,IAAK,CAAA,CAAC,MAAW,KAAA,MAAA,CAAO,KAAU,KAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AACnG,cAAI,IAAA,IAAA,CAAK,KAAM,CAAA,kBAAA,KAAuB,OAAS,EAAA;AAC7C,gBAAQ,OAAA,CAAA,IAAA,CAAK,GAAG,aAAa,CAAA;AAAA,eACpB,MAAA,IAAA,IAAA,CAAK,KAAM,CAAA,kBAAA,KAAuB,QAAU,EAAA;AACrD,gBAAA,OAAA,GAAU,mBAAmB,OAAQ,CAAA,MAAA,CAAO,aAAa,CAAG,EAAA,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,eACtE,MAAA;AACL,gBAAQ,OAAA,CAAA,OAAA,CAAQ,GAAG,aAAa,CAAA;AAAA;AAClC;AAEF,YAAA,OAAO,GAAG,OAAO,CAAA;AAAA,WAClB,CAAA;AAAA,UACD,UAAA,CAAW,CAAC,KAAU,KAAA;AACpB,YAAA,IAAI,MAAM,SAAW,EAAA;AACnB,cAAO,OAAA,EAAA,CAAG,EAAE,CAAA;AAAA;AAEd,YAAO,OAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,WAC9B;AAAA,SACH;AAAA,OACD;AAAA,KACH;AAAA;AACF,EAEQ,UAAA,CAAW,QAA4B,YAAuB,EAAA;AACpE,IAAA,MAAM,UAAyB,GAAA;AAAA,MAC7B,aAAA,EAAe,kCAAkC,IAAI;AAAA,KACvD;AAEA,IAAA,IAAI,YAAc,EAAA;AAChB,MAAA,UAAA,CAAW,cAAiB,GAAA,EAAE,KAAO,EAAA,YAAA,EAAc,MAAM,YAAa,EAAA;AAAA;AAGxE,IAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,YAAa,CAAA,IAAI,EAAE,KAAM,CAAA,KAAA;AAElD,IAAA,MAAM,OAA4B,GAAA;AAAA,MAChC,KAAK,OAAQ,CAAA,SAAA;AAAA,MACb,WAAWA,EAAO,EAAA;AAAA,MAClB,QAAU,EAAA,EAAA;AAAA,MACV,KAAA;AAAA,MACA,QAAU,EAAA,EAAA;AAAA,MACV,UAAY,EAAA,CAAA;AAAA;AAAA,MAEZ,OAAA,EAAS,CAAC,MAAM,CAAA;AAAA,MAChB,UAAA;AAAA,MACA,SAAA,EAAW,KAAK,GAAI;AAAA,KACtB;AAEA,IAAO,OAAA,OAAA;AAAA;AAmBX;AApIa,aAAA,CAiIG,SAAY,GAAA,CAAC,EAAE,KAAA,EAAqD,KAAA;AAChF,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,4BAAyB,KAAc,EAAA,CAAA;AACjD,CAAA;AAGF,SAAS,qBAAqB,KAA2B,EAAA;AACvD,EAAM,MAAA,GAAA,GAAM,mBAAmB,KAAK,CAAA;AACpC,EAAO,OAAA,GAAA,CAAI,OAAQ,CAAA,sBAAsB,CAAI,GAAA,EAAA;AAC/C;;;;"}
|
package/dist/esm/packages/scenes/src/variables/variants/query/createQueryVariableRunner.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createQueryVariableRunner.js","sources":["../../../../../../../../src/variables/variants/query/createQueryVariableRunner.ts"],"sourcesContent":["import { from, mergeMap, Observable, of } from 'rxjs';\n\nimport {\n DataQueryRequest,\n DataSourceApi,\n getDefaultTimeRange,\n LoadingState,\n PanelData,\n StandardVariableQuery,\n} from '@grafana/data';\nimport { getRunRequest } from '@grafana/runtime';\n\nimport {\n hasCustomVariableSupport,\n hasDataSourceVariableSupport,\n hasLegacyVariableSupport,\n hasStandardVariableSupport,\n} from './guards';\n\nimport { QueryVariable } from './QueryVariable';\nimport { DataQuery } from '@grafana/schema';\n\nexport interface RunnerArgs {\n searchFilter?: string;\n variable: QueryVariable;\n}\n\nexport interface QueryRunner {\n getTarget: (variable: QueryVariable) => DataQuery | string;\n runRequest: (args: RunnerArgs, request: DataQueryRequest) => Observable<PanelData>;\n}\n\nclass StandardQueryRunner implements QueryRunner {\n public constructor(private datasource: DataSourceApi, private _runRequest = getRunRequest()) {}\n\n public getTarget(variable: QueryVariable) {\n if (hasStandardVariableSupport(this.datasource)) {\n return this.datasource.variables.toDataQuery(ensureVariableQueryModelIsADataQuery(variable));\n }\n\n throw new Error(\"Couldn't create a target with supplied arguments.\");\n }\n\n public runRequest(_: RunnerArgs, request: DataQueryRequest) {\n if (!hasStandardVariableSupport(this.datasource)) {\n return getEmptyMetricFindValueObservable();\n }\n\n if (!this.datasource.variables.query) {\n return this._runRequest(this.datasource, request);\n }\n\n return this._runRequest(this.datasource, request, this.datasource.variables.query.bind(this.datasource.variables));\n }\n}\n\nclass LegacyQueryRunner implements QueryRunner {\n public constructor(private datasource: DataSourceApi) {}\n\n public getTarget(variable: QueryVariable) {\n if (hasLegacyVariableSupport(this.datasource)) {\n return variable.state.query;\n }\n\n throw new Error(\"Couldn't create a target with supplied arguments.\");\n }\n\n public runRequest({ variable, searchFilter }: RunnerArgs, request: DataQueryRequest) {\n if (!hasLegacyVariableSupport(this.datasource)) {\n return getEmptyMetricFindValueObservable();\n }\n\n return from(\n this.datasource.metricFindQuery(variable.state.query, {\n ...request,\n // variable is used by SQL common data source\n variable: {\n name: variable.state.name,\n type: variable.state.type,\n },\n searchFilter,\n })\n ).pipe(\n mergeMap((values) => {\n if (!values || !values.length) {\n return getEmptyMetricFindValueObservable();\n }\n\n const series: any = values;\n return of({ series, state: LoadingState.Done, timeRange: request.range });\n })\n );\n }\n}\n\nclass CustomQueryRunner implements QueryRunner {\n public constructor(private datasource: DataSourceApi, private _runRequest = getRunRequest()) {}\n\n public getTarget(variable: QueryVariable) {\n if (hasCustomVariableSupport(this.datasource)) {\n return variable.state.query;\n }\n\n throw new Error(\"Couldn't create a target with supplied arguments.\");\n }\n\n public runRequest(_: RunnerArgs, request: DataQueryRequest) {\n if (!hasCustomVariableSupport(this.datasource)) {\n return getEmptyMetricFindValueObservable();\n }\n\n if (!this.datasource.variables.query) {\n return this._runRequest(this.datasource, request);\n }\n return this._runRequest(this.datasource, request, this.datasource.variables.query.bind(this.datasource.variables));\n }\n}\n\nconst variableDummyRefId = 'variable-query';\nclass DatasourceQueryRunner implements QueryRunner {\n public constructor(private datasource: DataSourceApi, private _runRequest = getRunRequest()) {}\n\n public getTarget(variable: QueryVariable) {\n if (hasDataSourceVariableSupport(this.datasource)) {\n if (typeof variable.state.query === 'string') {\n return variable.state.query;\n }\n\n return { ...variable.state.query, refId: variable.state.query.refId ?? variableDummyRefId };\n }\n\n throw new Error(\"Couldn't create a target with supplied arguments.\");\n }\n\n public runRequest(_: RunnerArgs, request: DataQueryRequest) {\n if (!hasDataSourceVariableSupport(this.datasource)) {\n return getEmptyMetricFindValueObservable();\n }\n\n return this._runRequest(this.datasource, request);\n }\n}\n\nfunction getEmptyMetricFindValueObservable(): Observable<PanelData> {\n return of({ state: LoadingState.Done, series: [], timeRange: getDefaultTimeRange() });\n}\n\nfunction createQueryVariableRunnerFactory(datasource: DataSourceApi): QueryRunner {\n if (hasStandardVariableSupport(datasource)) {\n return new StandardQueryRunner(datasource, getRunRequest());\n }\n\n if (hasLegacyVariableSupport(datasource)) {\n return new LegacyQueryRunner(datasource);\n }\n\n if (hasCustomVariableSupport(datasource)) {\n return new CustomQueryRunner(datasource);\n }\n\n if (hasDataSourceVariableSupport(datasource)) {\n return new DatasourceQueryRunner(datasource);\n }\n\n throw new Error(`Couldn't create a query runner for datasource ${datasource.type}`);\n}\n\nexport let createQueryVariableRunner = createQueryVariableRunnerFactory;\n\n/**\n * Use only in tests\n */\nexport function setCreateQueryVariableRunnerFactory(fn: (datasource: DataSourceApi) => QueryRunner) {\n createQueryVariableRunner = fn;\n}\n\n/**\n * Fixes old legacy query string models and adds refId if missing\n */\nfunction ensureVariableQueryModelIsADataQuery(variable: QueryVariable): StandardVariableQuery {\n const query = variable.state.query ?? '';\n\n // Turn into query object if it's just a string\n if (typeof query === 'string') {\n return { query, refId: `variable-${variable.state.name}` };\n }\n\n // Add potentially missing refId\n if (query.refId == null) {\n return { ...query, refId: `variable-${variable.state.name}` } as StandardVariableQuery;\n }\n\n return variable.state.query as StandardVariableQuery;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sources":["../../../../../../../../src/variables/variants/query/guards.ts"],"sourcesContent":["import {\n DataQuery,\n DataSourceJsonData,\n DataSourceApi,\n MetricFindValue,\n VariableSupportType,\n StandardVariableQuery,\n DataQueryRequest,\n DataQueryResponse,\n QueryEditorProps,\n} from '@grafana/data';\nimport { TemplateSrv } from '@grafana/runtime';\nimport { ComponentType } from 'react';\n\nimport { Observable } from 'rxjs';\n\n/**\n * Interfaces and guards below are copied from core.\n * Not exposing via grafana/data as these are not intended to be used in context other than variables.\n */\n\ninterface DataSourceWithLegacyVariableSupport<\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n> extends DataSourceApi<TQuery, TOptions> {\n metricFindQuery(query: any, options?: any): Promise<MetricFindValue[]>;\n variables: undefined;\n}\n\ninterface DataSourceWithStandardVariableSupport<\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n> extends DataSourceApi<TQuery, TOptions> {\n variables: {\n getType(): VariableSupportType;\n toDataQuery(query: StandardVariableQuery): TQuery;\n query(request: DataQueryRequest<TQuery>): Observable<DataQueryResponse>;\n };\n}\n\ninterface DataSourceWithCustomVariableSupport<\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n> extends DataSourceApi<TQuery, TOptions> {\n variables: {\n getType(): VariableSupportType;\n editor: VariableQueryEditorType;\n query(request: DataQueryRequest<TQuery>): Observable<DataQueryResponse>;\n };\n}\n\ninterface VariableQueryEditorProps {\n query: any;\n onChange: (query: any, definition: string) => void;\n datasource: any;\n templateSrv: TemplateSrv;\n}\n\ntype VariableQueryEditorType<\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n> = ComponentType<VariableQueryEditorProps> | ComponentType<QueryEditorProps<any, TQuery, TOptions, any>> | null;\n\nexport const hasLegacyVariableSupport = <\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n>(\n datasource: DataSourceApi<TQuery, TOptions>\n): datasource is DataSourceWithLegacyVariableSupport<TQuery, TOptions> => {\n return Boolean(datasource.metricFindQuery) && !Boolean(datasource.variables);\n};\n\nexport const hasStandardVariableSupport = <\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n>(\n datasource: DataSourceApi<TQuery, TOptions>\n): datasource is DataSourceWithStandardVariableSupport<TQuery, TOptions> => {\n if (!datasource.variables) {\n return false;\n }\n\n if (datasource.variables.getType() !== VariableSupportType.Standard) {\n return false;\n }\n\n const variableSupport = datasource.variables;\n return 'toDataQuery' in variableSupport && Boolean(variableSupport.toDataQuery);\n};\n\nexport const hasCustomVariableSupport = <\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n>(\n datasource: DataSourceApi<TQuery, TOptions>\n): datasource is DataSourceWithCustomVariableSupport<TQuery, TOptions> => {\n if (!datasource.variables) {\n return false;\n }\n\n if (datasource.variables.getType() !== VariableSupportType.Custom) {\n return false;\n }\n\n const variableSupport = datasource.variables;\n return (\n 'query' in variableSupport &&\n 'editor' in variableSupport &&\n Boolean(variableSupport.query) &&\n Boolean(variableSupport.editor)\n );\n};\n\nexport const hasDataSourceVariableSupport = <\n TQuery extends DataQuery = DataQuery,\n TOptions extends DataSourceJsonData = DataSourceJsonData\n>(\n datasource: DataSourceApi<TQuery, TOptions>\n): datasource is DataSourceWithCustomVariableSupport<TQuery, TOptions> => {\n if (!datasource.variables) {\n return false;\n }\n\n return datasource.variables.getType() === VariableSupportType.Datasource;\n};\n"],"names":[],"mappings":";;AA+Da,MAAA,wBAAA,GAA2B,CAItC,UACwE,KAAA;AACxE,EAAA,OAAO,QAAQ,UAAW,CAAA,eAAe,KAAK,CAAC,OAAA,CAAQ,WAAW,SAAS,CAAA;AAC7E;AAEa,MAAA,0BAAA,GAA6B,CAIxC,UAC0E,KAAA;AAC1E,EAAI,IAAA,CAAC,WAAW,SAAW,EAAA;AACzB,IAAO,OAAA,KAAA;AAAA;AAGT,EAAA,IAAI,UAAW,CAAA,SAAA,CAAU,OAAQ,EAAA,KAAM,oBAAoB,QAAU,EAAA;AACnE,IAAO,OAAA,KAAA;AAAA;AAGT,EAAA,MAAM,kBAAkB,UAAW,CAAA,SAAA;AACnC,EAAA,OAAO,aAAiB,IAAA,eAAA,IAAmB,OAAQ,CAAA,eAAA,CAAgB,WAAW,CAAA;AAChF;AAEa,MAAA,wBAAA,GAA2B,CAItC,UACwE,KAAA;AACxE,EAAI,IAAA,CAAC,WAAW,SAAW,EAAA;AACzB,IAAO,OAAA,KAAA;AAAA;AAGT,EAAA,IAAI,UAAW,CAAA,SAAA,CAAU,OAAQ,EAAA,KAAM,oBAAoB,MAAQ,EAAA;AACjE,IAAO,OAAA,KAAA;AAAA;AAGT,EAAA,MAAM,kBAAkB,UAAW,CAAA,SAAA;AACnC,EACE,OAAA,OAAA,IAAW,eACX,IAAA,QAAA,IAAY,eACZ,IAAA,OAAA,CAAQ,gBAAgB,KAAK,CAAA,IAC7B,OAAQ,CAAA,eAAA,CAAgB,MAAM,CAAA;AAElC;AAEa,MAAA,4BAAA,GAA+B,CAI1C,UACwE,KAAA;AACxE,EAAI,IAAA,CAAC,WAAW,SAAW,EAAA;AACzB,IAAO,OAAA,KAAA;AAAA;AAGT,EAAA,OAAO,UAAW,CAAA,SAAA,CAAU,OAAQ,EAAA,KAAM,mBAAoB,CAAA,UAAA;AAChE;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toMetricFindValues.js","sources":["../../../../../../../../src/variables/variants/query/toMetricFindValues.ts"],"sourcesContent":["import {\n DataFrame,\n FieldType,\n getFieldDisplayName,\n getProcessedDataFrames,\n isDataFrame,\n MetricFindValue,\n PanelData,\n} from '@grafana/data';\nimport { map, OperatorFunction } from 'rxjs';\n\ninterface MetricFindValueWithOptionalProperties extends MetricFindValue {\n properties?: Record<string, string>;\n}\n\nexport function toMetricFindValues(\n valueProp?: string,\n textProp?: string\n): OperatorFunction<PanelData, MetricFindValueWithOptionalProperties[]> {\n return (source) =>\n source.pipe(\n map((panelData) => {\n const frames = panelData.series;\n if (!frames || !frames.length) {\n return [];\n }\n\n if (areMetricFindValues(frames)) {\n return frames;\n }\n\n if (frames[0].fields.length === 0) {\n return [];\n }\n\n const indices = validateIndices(findFieldsIndices(frames), valueProp, textProp);\n\n const metrics: MetricFindValueWithOptionalProperties[] = [];\n\n for (const frame of frames) {\n for (let index = 0; index < frame.length; index++) {\n const fieldValue = (fieldIndex: number) =>\n fieldIndex !== -1 ? frame.fields[fieldIndex].values.get(index) : undefined;\n\n const value = fieldValue(indices.value);\n const text = fieldValue(indices.text);\n const expandable = fieldValue(indices.expandable);\n\n if (!indices.properties.length) {\n metrics.push({\n value: value || text,\n text: text || value,\n expandable,\n });\n continue;\n }\n\n const properties: MetricFindValueWithOptionalProperties['properties'] = {};\n for (const p of indices.properties) {\n properties[p.name] = fieldValue(p.index);\n }\n\n metrics.push({\n value: value || (valueProp && properties[valueProp]) || text || (textProp && properties[textProp]),\n text: text || (textProp && properties[textProp]) || value || (valueProp && properties[valueProp]),\n properties,\n expandable,\n });\n }\n }\n\n return metrics;\n })\n );\n}\n\ntype Indices = {\n value: number;\n text: number;\n properties: Array<{ name: string; index: number }>;\n expandable: number;\n};\n\nfunction findFieldsIndices(frames: DataFrame[]): Indices {\n const indices: Indices = {\n value: -1,\n text: -1,\n expandable: -1,\n properties: [],\n };\n\n for (const frame of getProcessedDataFrames(frames)) {\n for (let index = 0; index < frame.fields.length; index++) {\n const field = frame.fields[index];\n const fieldName = getFieldDisplayName(field, frame, frames).toLowerCase();\n\n if (field.type === FieldType.string) {\n if (fieldName === 'value') {\n if (indices.value === -1) {\n indices.value = index;\n }\n continue;\n }\n\n if (fieldName === 'text') {\n if (indices.text === -1) {\n indices.text = index;\n }\n continue;\n }\n\n indices.properties.push({ name: fieldName, index });\n continue;\n }\n\n if (\n fieldName === 'expandable' &&\n (field.type === FieldType.boolean || field.type === FieldType.number) &&\n indices.expandable === -1\n ) {\n indices.expandable = index;\n }\n }\n }\n\n return indices;\n}\n\nfunction validateIndices(indices: Indices, valueProp?: string, textProp?: string): Indices {\n const hasNoValueOrText = indices.value === -1 && indices.text === -1;\n\n if (hasNoValueOrText && !indices.properties.length) {\n throw new Error(\"Couldn't find any field of type string in the results\");\n }\n\n // A single field of type string that is neither named \"value\" nor \"text\" is considered as \"value\"\n if (hasNoValueOrText && indices.properties.length === 1) {\n indices.value = indices.properties[0].index;\n indices.properties = [];\n }\n\n if (hasNoValueOrText && indices.properties.length && !valueProp && !textProp) {\n throw new Error('Properties found in series but missing valueProp and textProp');\n }\n\n return indices;\n}\n\nfunction areMetricFindValues(data: any[]): data is MetricFindValue[] {\n if (!data) {\n return false;\n }\n\n if (!data.length) {\n return true;\n }\n\n const firstValue: any = data[0];\n\n if (isDataFrame(firstValue)) {\n return false;\n }\n\n for (const firstValueKey in firstValue) {\n if (!firstValue.hasOwnProperty(firstValueKey)) {\n continue;\n }\n\n const value = firstValue[firstValueKey];\n if (value !== null && typeof value !== 'string' && typeof value !== 'number') {\n continue;\n }\n\n const key = firstValueKey.toLowerCase();\n\n if (key === 'text' || key === 'value') {\n return true;\n }\n }\n\n return false;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../../../src/variables/variants/query/utils.ts"],"sourcesContent":["import { isNumber, sortBy, toLower, uniqBy } from 'lodash';\n\nimport {\n stringToJsRegex,\n VariableSort,\n // @ts-expect-error TODO: remove suppression after updating grafana/data\n VariableRegexApplyTo,\n} from '@grafana/data';\n\nimport { VariableValueOption } from '../../types';\n\ninterface MetricNamesToVariableValuesArgs {\n variableRegEx: string;\n variableRegexApplyTo: VariableRegexApplyTo;\n sort: VariableSort;\n metricNames: any[];\n}\n\nexport function metricNamesToVariableValues({\n variableRegEx,\n variableRegexApplyTo,\n sort,\n metricNames,\n}: MetricNamesToVariableValuesArgs) {\n let regex;\n let options: VariableValueOption[] = [];\n\n if (variableRegEx) {\n regex = stringToJsRegex(variableRegEx);\n }\n\n for (let i = 0; i < metricNames.length; i++) {\n const item = metricNames[i];\n let text = item.text ?? item.value ?? '';\n let value = item.value ?? item.text ?? '';\n\n if (isNumber(value)) {\n value = value.toString();\n }\n\n if (isNumber(text)) {\n text = text.toString();\n }\n\n if (regex) {\n const applyTo = variableRegexApplyTo === 'text' ? text : value;\n const matches = getAllMatches(applyTo, regex);\n if (!matches.length) {\n continue;\n }\n\n const valueGroup = matches.find((m) => m.groups && m.groups.value);\n const textGroup = matches.find((m) => m.groups && m.groups.text);\n const firstMatch = matches.find((m) => m.length > 1);\n const manyMatches = matches.length > 1 && firstMatch;\n\n if (valueGroup || textGroup) {\n value = valueGroup?.groups?.value ?? textGroup?.groups?.text;\n text = textGroup?.groups?.text ?? valueGroup?.groups?.value;\n } else if (manyMatches) {\n for (let j = 0; j < matches.length; j++) {\n const match = matches[j];\n options.push({ label: match[1], value: match[1] });\n }\n continue;\n } else if (firstMatch) {\n text = firstMatch[1];\n value = firstMatch[1];\n }\n }\n\n options.push({ label: text, value: value, properties: item.properties });\n }\n\n options = uniqBy(options, 'value');\n return sortVariableValues(options, sort);\n}\n\nconst getAllMatches = (str: string, regex: RegExp): RegExpExecArray[] => {\n const results: RegExpExecArray[] = [];\n let matches = null;\n\n regex.lastIndex = 0;\n\n do {\n matches = regex.exec(str);\n if (matches) {\n results.push(matches);\n }\n } while (regex.global && matches && matches[0] !== '' && matches[0] !== undefined);\n\n return results;\n};\n\nexport const sortVariableValues = (options: VariableValueOption[], sortOrder: VariableSort) => {\n if (sortOrder === VariableSort.disabled) {\n return options;\n }\n\n switch (sortOrder) {\n case VariableSort.alphabeticalAsc:\n options = sortBy(options, 'label');\n break;\n case VariableSort.alphabeticalDesc:\n options = sortBy(options, 'label').reverse();\n break;\n case VariableSort.numericalAsc:\n options = sortBy(options, sortByNumeric);\n break;\n case VariableSort.numericalDesc:\n options = sortBy(options, sortByNumeric);\n options = options.reverse();\n break;\n case VariableSort.alphabeticalCaseInsensitiveAsc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n break;\n case VariableSort.alphabeticalCaseInsensitiveDesc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n options = options.reverse();\n break;\n case VariableSort.naturalAsc:\n // Sort by natural sort\n options = sortByNaturalSort(options);\n break;\n case VariableSort.naturalDesc:\n options = sortByNaturalSort(options);\n options = options.reverse();\n break;\n default:\n break;\n }\n return options;\n};\n\nfunction sortByNumeric(opt: VariableValueOption) {\n if (!opt.label) {\n return -1;\n }\n const matches = opt.label.match(/.*?(\\d+).*/);\n if (!matches || matches.length < 2) {\n return -1;\n } else {\n return parseInt(matches[1], 10);\n }\n}\n\nconst collator = new Intl.Collator(undefined, { sensitivity: 'accent', numeric: true });\n\nfunction sortByNaturalSort(options: VariableValueOption[]) {\n return options.slice().sort((a, b) => {\n return collator.compare(a.label, b.label);\n });\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ interface SceneVariableState extends SceneObjectState {
|
|
|
40
40
|
loading?: boolean;
|
|
41
41
|
error?: any | null;
|
|
42
42
|
description?: string | null;
|
|
43
|
+
isDefault?: boolean;
|
|
43
44
|
}
|
|
44
45
|
interface SceneVariable<TState extends SceneVariableState = SceneVariableState> extends SceneObject<TState> {
|
|
45
46
|
/**
|
package/dist/index.js
CHANGED
|
@@ -15,8 +15,10 @@ var ui = require('@grafana/ui');
|
|
|
15
15
|
var e2eSelectors = require('@grafana/e2e-selectors');
|
|
16
16
|
var css = require('@emotion/css');
|
|
17
17
|
var uFuzzy = require('@leeoniya/ufuzzy');
|
|
18
|
+
var react = require('@emotion/react');
|
|
19
|
+
require('react-dom');
|
|
18
20
|
var reactUse = require('react-use');
|
|
19
|
-
var react = require('@floating-ui/react');
|
|
21
|
+
var react$1 = require('@floating-ui/react');
|
|
20
22
|
var reactVirtual = require('@tanstack/react-virtual');
|
|
21
23
|
var operators = require('rxjs/operators');
|
|
22
24
|
var ReactGridLayout = require('react-grid-layout');
|
|
@@ -2915,6 +2917,158 @@ function findActiveGroupByVariablesByUid(dsUid) {
|
|
|
2915
2917
|
return void 0;
|
|
2916
2918
|
}
|
|
2917
2919
|
|
|
2920
|
+
function _typeof(o) {
|
|
2921
|
+
"@babel/helpers - typeof";
|
|
2922
|
+
|
|
2923
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
2924
|
+
return typeof o;
|
|
2925
|
+
} : function (o) {
|
|
2926
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
2927
|
+
}, _typeof(o);
|
|
2928
|
+
}
|
|
2929
|
+
|
|
2930
|
+
function toPrimitive(t, r) {
|
|
2931
|
+
if ("object" != _typeof(t) || !t) return t;
|
|
2932
|
+
var e = t[Symbol.toPrimitive];
|
|
2933
|
+
if (void 0 !== e) {
|
|
2934
|
+
var i = e.call(t, r);
|
|
2935
|
+
if ("object" != _typeof(i)) return i;
|
|
2936
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
2937
|
+
}
|
|
2938
|
+
return ("string" === r ? String : Number)(t);
|
|
2939
|
+
}
|
|
2940
|
+
|
|
2941
|
+
function toPropertyKey(t) {
|
|
2942
|
+
var i = toPrimitive(t, "string");
|
|
2943
|
+
return "symbol" == _typeof(i) ? i : i + "";
|
|
2944
|
+
}
|
|
2945
|
+
|
|
2946
|
+
function _defineProperty(e, r, t) {
|
|
2947
|
+
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
2948
|
+
value: t,
|
|
2949
|
+
enumerable: true,
|
|
2950
|
+
configurable: true,
|
|
2951
|
+
writable: true
|
|
2952
|
+
}) : e[r] = t, e;
|
|
2953
|
+
}
|
|
2954
|
+
|
|
2955
|
+
function ownKeys(e, r) {
|
|
2956
|
+
var t = Object.keys(e);
|
|
2957
|
+
if (Object.getOwnPropertySymbols) {
|
|
2958
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
2959
|
+
r && (o = o.filter(function (r) {
|
|
2960
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
2961
|
+
})), t.push.apply(t, o);
|
|
2962
|
+
}
|
|
2963
|
+
return t;
|
|
2964
|
+
}
|
|
2965
|
+
function _objectSpread2(e) {
|
|
2966
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
2967
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
2968
|
+
r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
|
|
2969
|
+
_defineProperty(e, r, t[r]);
|
|
2970
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
|
2971
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
2972
|
+
});
|
|
2973
|
+
}
|
|
2974
|
+
return e;
|
|
2975
|
+
}
|
|
2976
|
+
|
|
2977
|
+
function _extends() {
|
|
2978
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
2979
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
2980
|
+
var t = arguments[e];
|
|
2981
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
2982
|
+
}
|
|
2983
|
+
return n;
|
|
2984
|
+
}, _extends.apply(null, arguments);
|
|
2985
|
+
}
|
|
2986
|
+
|
|
2987
|
+
function _taggedTemplateLiteral(e, t) {
|
|
2988
|
+
return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
|
|
2989
|
+
raw: {
|
|
2990
|
+
value: Object.freeze(t)
|
|
2991
|
+
}
|
|
2992
|
+
}));
|
|
2993
|
+
}
|
|
2994
|
+
|
|
2995
|
+
// ==============================
|
|
2996
|
+
// NO OP
|
|
2997
|
+
// ==============================
|
|
2998
|
+
|
|
2999
|
+
var noop = function noop() {};
|
|
3000
|
+
|
|
3001
|
+
// ==============================
|
|
3002
|
+
// Get Style Props
|
|
3003
|
+
// ==============================
|
|
3004
|
+
|
|
3005
|
+
var getStyleProps = function getStyleProps(props, name, classNamesState) {
|
|
3006
|
+
var cx = props.cx,
|
|
3007
|
+
getStyles = props.getStyles,
|
|
3008
|
+
getClassNames = props.getClassNames,
|
|
3009
|
+
className = props.className;
|
|
3010
|
+
return {
|
|
3011
|
+
css: getStyles(name, props),
|
|
3012
|
+
className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)
|
|
3013
|
+
};
|
|
3014
|
+
};
|
|
3015
|
+
var options = {
|
|
3016
|
+
get passive() {
|
|
3017
|
+
return true;
|
|
3018
|
+
}
|
|
3019
|
+
};
|
|
3020
|
+
// check for SSR
|
|
3021
|
+
var w = typeof window !== 'undefined' ? window : {};
|
|
3022
|
+
if (w.addEventListener && w.removeEventListener) {
|
|
3023
|
+
w.addEventListener('p', noop, options);
|
|
3024
|
+
w.removeEventListener('p', noop, false);
|
|
3025
|
+
}
|
|
3026
|
+
var Menu = function Menu(props) {
|
|
3027
|
+
var children = props.children,
|
|
3028
|
+
innerRef = props.innerRef,
|
|
3029
|
+
innerProps = props.innerProps;
|
|
3030
|
+
return react.jsx("div", _extends({}, getStyleProps(props, 'menu', {
|
|
3031
|
+
menu: true
|
|
3032
|
+
}), {
|
|
3033
|
+
ref: innerRef
|
|
3034
|
+
}, innerProps), children);
|
|
3035
|
+
};
|
|
3036
|
+
var Menu$1 = Menu;
|
|
3037
|
+
|
|
3038
|
+
var _templateObject;
|
|
3039
|
+
|
|
3040
|
+
// ==============================
|
|
3041
|
+
// Dropdown & Clear Icons
|
|
3042
|
+
// ==============================
|
|
3043
|
+
process.env.NODE_ENV === "production" ? {
|
|
3044
|
+
} : {
|
|
3045
|
+
};
|
|
3046
|
+
|
|
3047
|
+
// ==============================
|
|
3048
|
+
// Loading
|
|
3049
|
+
// ==============================
|
|
3050
|
+
|
|
3051
|
+
react.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"])));
|
|
3052
|
+
var spacingStyle = {
|
|
3053
|
+
gridArea: '1 / 2',
|
|
3054
|
+
font: 'inherit',
|
|
3055
|
+
minWidth: '2px',
|
|
3056
|
+
border: 0,
|
|
3057
|
+
margin: 0,
|
|
3058
|
+
outline: 0,
|
|
3059
|
+
padding: 0
|
|
3060
|
+
};
|
|
3061
|
+
({
|
|
3062
|
+
'&:after': _objectSpread2({
|
|
3063
|
+
content: 'attr(data-value) " "',
|
|
3064
|
+
visibility: 'hidden',
|
|
3065
|
+
whiteSpace: 'pre'
|
|
3066
|
+
}, spacingStyle)
|
|
3067
|
+
});
|
|
3068
|
+
|
|
3069
|
+
var components = {
|
|
3070
|
+
Menu: Menu$1};
|
|
3071
|
+
|
|
2918
3072
|
const REGEXP_NON_ASCII = /[^ -~]/m;
|
|
2919
3073
|
const REGEXP_ONLY_SYMBOLS = /^[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+$/m;
|
|
2920
3074
|
const outOfOrderLimit = 5;
|
|
@@ -3749,6 +3903,7 @@ function GroupByVariableRenderer({ model }) {
|
|
|
3749
3903
|
isLoading: isFetchingOptions,
|
|
3750
3904
|
components: {
|
|
3751
3905
|
Option: OptionWithCheckbox,
|
|
3906
|
+
Menu: WideMenu,
|
|
3752
3907
|
...hasDefaultValue ? {
|
|
3753
3908
|
IndicatorsContainer: () => /* @__PURE__ */ React__default.default.createElement(DefaultGroupByCustomIndicatorContainer, { model })
|
|
3754
3909
|
} : {},
|
|
@@ -3772,6 +3927,7 @@ function GroupByVariableRenderer({ model }) {
|
|
|
3772
3927
|
model.changeValueTo([], void 0, true);
|
|
3773
3928
|
}
|
|
3774
3929
|
setUncommittedValue(newValue);
|
|
3930
|
+
setInputValue("");
|
|
3775
3931
|
},
|
|
3776
3932
|
onOpenMenu: async () => {
|
|
3777
3933
|
const profiler = getInteractionTracker(model);
|
|
@@ -3815,6 +3971,7 @@ function GroupByVariableRenderer({ model }) {
|
|
|
3815
3971
|
hideSelectedOptions: false,
|
|
3816
3972
|
noValueOnClear: true,
|
|
3817
3973
|
isLoading: isFetchingOptions,
|
|
3974
|
+
components: { Menu: WideMenu },
|
|
3818
3975
|
onInputChange,
|
|
3819
3976
|
onChange: (newValue, action) => {
|
|
3820
3977
|
if (action.action === "clear") {
|
|
@@ -3845,6 +4002,9 @@ function GroupByVariableRenderer({ model }) {
|
|
|
3845
4002
|
);
|
|
3846
4003
|
}
|
|
3847
4004
|
const filterNoOp$1 = () => true;
|
|
4005
|
+
function WideMenu(props) {
|
|
4006
|
+
return /* @__PURE__ */ React__default.default.createElement(components.Menu, { ...props }, /* @__PURE__ */ React__default.default.createElement("div", { style: { minWidth: "220px" } }, props.children));
|
|
4007
|
+
}
|
|
3848
4008
|
function toSelectableValue$1(input) {
|
|
3849
4009
|
const { label, value, group } = input;
|
|
3850
4010
|
const result = {
|
|
@@ -6528,15 +6688,15 @@ const useFloatingInteractions = ({
|
|
|
6528
6688
|
listRef,
|
|
6529
6689
|
disabledIndicesRef
|
|
6530
6690
|
}) => {
|
|
6531
|
-
const { refs, floatingStyles, context } = react.useFloating({
|
|
6532
|
-
whileElementsMounted: react.autoUpdate,
|
|
6691
|
+
const { refs, floatingStyles, context } = react$1.useFloating({
|
|
6692
|
+
whileElementsMounted: react$1.autoUpdate,
|
|
6533
6693
|
open,
|
|
6534
6694
|
onOpenChange,
|
|
6535
6695
|
placement: "bottom-start",
|
|
6536
6696
|
middleware: [
|
|
6537
|
-
react.offset(10),
|
|
6538
|
-
react.flip({ padding: 10 }),
|
|
6539
|
-
react.size({
|
|
6697
|
+
react$1.offset(10),
|
|
6698
|
+
react$1.flip({ padding: 10 }),
|
|
6699
|
+
react$1.size({
|
|
6540
6700
|
apply({ availableHeight, availableWidth, elements }) {
|
|
6541
6701
|
elements.floating.style.maxHeight = `${Math.min(MAX_MENU_HEIGHT, availableHeight)}px`;
|
|
6542
6702
|
elements.floating.style.maxWidth = `${availableWidth}px`;
|
|
@@ -6546,8 +6706,8 @@ const useFloatingInteractions = ({
|
|
|
6546
6706
|
],
|
|
6547
6707
|
strategy: "fixed"
|
|
6548
6708
|
});
|
|
6549
|
-
const role = react.useRole(context, { role: "listbox" });
|
|
6550
|
-
const dismiss = react.useDismiss(context, {
|
|
6709
|
+
const role = react$1.useRole(context, { role: "listbox" });
|
|
6710
|
+
const dismiss = react$1.useDismiss(context, {
|
|
6551
6711
|
// if outside click lands on operator pill, then ignore outside click
|
|
6552
6712
|
outsidePress: (event) => {
|
|
6553
6713
|
var _a;
|
|
@@ -6564,7 +6724,7 @@ const useFloatingInteractions = ({
|
|
|
6564
6724
|
return true;
|
|
6565
6725
|
}
|
|
6566
6726
|
});
|
|
6567
|
-
const listNav = react.useListNavigation(context, {
|
|
6727
|
+
const listNav = react$1.useListNavigation(context, {
|
|
6568
6728
|
listRef,
|
|
6569
6729
|
activeIndex,
|
|
6570
6730
|
onNavigate: setActiveIndex,
|
|
@@ -6572,7 +6732,7 @@ const useFloatingInteractions = ({
|
|
|
6572
6732
|
loop: true,
|
|
6573
6733
|
disabledIndices: disabledIndicesRef.current
|
|
6574
6734
|
});
|
|
6575
|
-
const { getReferenceProps, getFloatingProps, getItemProps } = react.useInteractions([role, dismiss, listNav]);
|
|
6735
|
+
const { getReferenceProps, getFloatingProps, getItemProps } = react$1.useInteractions([role, dismiss, listNav]);
|
|
6576
6736
|
return {
|
|
6577
6737
|
refs,
|
|
6578
6738
|
floatingStyles,
|
|
@@ -7178,7 +7338,7 @@ const AdHocCombobox = React.forwardRef(function AdHocCombobox2({
|
|
|
7178
7338
|
setOpen(true);
|
|
7179
7339
|
}
|
|
7180
7340
|
}
|
|
7181
|
-
), optionsLoading ? /* @__PURE__ */ React__default.default.createElement(ui.Spinner, { className: styles.loadingIndicator, inline: true }) : null, /* @__PURE__ */ React__default.default.createElement(react.FloatingPortal, null, open && /* @__PURE__ */ React__default.default.createElement(react.FloatingFocusManager, { context, initialFocus: -1, visuallyHiddenDismiss: true, modal: true }, /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(
|
|
7341
|
+
), optionsLoading ? /* @__PURE__ */ React__default.default.createElement(ui.Spinner, { className: styles.loadingIndicator, inline: true }) : null, /* @__PURE__ */ React__default.default.createElement(react$1.FloatingPortal, null, open && /* @__PURE__ */ React__default.default.createElement(react$1.FloatingFocusManager, { context, initialFocus: -1, visuallyHiddenDismiss: true, modal: true }, /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(
|
|
7182
7342
|
"div",
|
|
7183
7343
|
{
|
|
7184
7344
|
style: {
|