@grafana/scenes 6.49.0 → 6.49.1--canary.1316.20159204855.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/{locales → packages/scenes/src/locales}/en-US/grafana-scenes.json.js +6 -0
- package/dist/esm/packages/scenes/src/locales/en-US/grafana-scenes.json.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/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +2 -2
- package/dist/esm/packages/scenes/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js.map +1 -0
- package/dist/esm/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +3 -1
- 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 +174 -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/{variables → packages/scenes/src/variables}/adhoc/AdHocFiltersCombobox/utils.js +3 -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/{variables → packages/scenes/src/variables}/adhoc/controller/AdHocFiltersVariableController.js +2 -1
- 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/{grafana-scenes-D5iZGLtK.js → grafana-scenes-CwGWCTcQ.js} +7 -1
- package/dist/{grafana-scenes-D5iZGLtK.js.map → grafana-scenes-CwGWCTcQ.js.map} +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +296 -36
- 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/locales/zh-Hant/grafana-scenes.json.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 +0 -78
- 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}/es-ES/grafana-scenes.json.js +0 -0
- /package/dist/esm/{locales/en-US → 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/es-ES → 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/fr-FR → 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/hu-HU → 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/id-ID → 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/it-IT → 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/ja-JP → 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/ko-KR → 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/nl-NL → 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/pl-PL → 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/pt-BR → 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/pt-PT → 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/ru-RU → 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/sv-SE → 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/tr-TR → 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/zh-Hans → 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/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/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/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":"SceneGridLayout.js","sources":["../../../../../../../../src/components/layout/grid/SceneGridLayout.tsx"],"sourcesContent":["import { PointerEvent } from 'react';\nimport ReactGridLayout from 'react-grid-layout';\n\nimport { SceneObjectBase } from '../../../core/SceneObjectBase';\nimport { SceneLayout, SceneObjectState } from '../../../core/types';\nimport { DEFAULT_PANEL_SPAN } from './constants';\nimport { isSceneGridRow } from './SceneGridItem';\nimport { SceneGridLayoutRenderer } from './SceneGridLayoutRenderer';\n\nimport { SceneGridRow } from './SceneGridRow';\nimport { SceneGridItemLike, SceneGridItemPlacement, SceneGridLayoutDragStartEvent } from './types';\nimport { fitPanelsInHeight } from './utils';\nimport { VizPanel } from '../../VizPanel/VizPanel';\nimport { isRepeatCloneOrChildOf } from '../../../utils/utils';\n\ninterface SceneGridLayoutState extends SceneObjectState {\n /**\n * Turn on or off dragging for all items. Individual items can still disabled via isDraggable property\n **/\n isDraggable?: boolean;\n /** Enable or disable item resizing */\n isResizable?: boolean;\n isLazy?: boolean;\n /**\n * Fit panels to height of the grid. This will scale down the panels vertically to fit available height.\n * The row height is not changed, only the y position and height of the panels.\n * UNSAFE: This feature is experimental and it might change in the future.\n */\n UNSAFE_fitPanels?: boolean;\n children: SceneGridItemLike[];\n}\n\nexport class SceneGridLayout extends SceneObjectBase<SceneGridLayoutState> implements SceneLayout {\n public static Component = SceneGridLayoutRenderer;\n\n private _skipOnLayoutChange = false;\n private _oldLayout: ReactGridLayout.Layout[] = [];\n private _loadOldLayout = false;\n\n public constructor(state: SceneGridLayoutState) {\n super({\n ...state,\n children: sortChildrenByPosition(state.children),\n });\n }\n\n /**\n * SceneLayout interface. Used for example by VizPanelRenderer\n */\n public isDraggable(): boolean {\n return this.state.isDraggable ?? false;\n }\n\n public getDragClass() {\n return `grid-drag-handle-${this.state.key}`;\n }\n\n public getDragClassCancel() {\n return `grid-drag-cancel`;\n }\n\n public getDragHooks() {\n return {\n onDragStart: (evt: PointerEvent, panel: VizPanel) => {\n this.publishEvent(new SceneGridLayoutDragStartEvent({ evt, panel }), true);\n },\n };\n }\n\n public adjustYPositions(after: number, amount: number) {\n for (const child of this.state.children) {\n if (child.state.y! > after) {\n child.setState({ y: child.state.y! + amount });\n }\n if (child instanceof SceneGridRow) {\n for (const rowChild of child.state.children) {\n if (rowChild.state.y! > after) {\n rowChild.setState({ y: rowChild.state.y! + amount });\n }\n }\n }\n }\n }\n\n public toggleRow(row: SceneGridRow) {\n const isCollapsed = row.state.isCollapsed;\n\n if (!isCollapsed) {\n row.setState({ isCollapsed: true });\n // To force re-render\n this.setState({});\n return;\n }\n\n const rowChildren = row.state.children;\n\n if (rowChildren.length === 0) {\n row.setState({ isCollapsed: false });\n this.setState({});\n return;\n }\n\n // Ok we are expanding row. We need to update row children y pos (incase they are incorrect) and push items below down\n // Code copied from DashboardModel toggleRow()\n\n const rowY = row.state.y!;\n const firstPanelYPos = rowChildren[0].state.y ?? rowY;\n const yDiff = firstPanelYPos - (rowY + 1);\n\n // y max will represent the bottom y pos after all panels have been added\n // needed to know home much panels below should be pushed down\n let yMax = rowY;\n\n for (const panel of rowChildren) {\n // set the y gridPos if it wasn't already set\n const newSize = { ...panel.state };\n newSize.y = newSize.y ?? rowY;\n // make sure y is adjusted (in case row moved while collapsed)\n newSize.y -= yDiff;\n\n if (newSize.y! !== panel.state.y!) {\n panel.setState(newSize);\n }\n\n // update insert post and y max\n yMax = Math.max(yMax, Number(newSize.y!) + Number(newSize.height!));\n }\n\n const pushDownAmount = yMax - rowY - 1;\n\n // push panels below down\n for (const child of this.state.children) {\n if (child.state.y! > rowY) {\n this.pushChildDown(child, pushDownAmount);\n }\n\n if (isSceneGridRow(child) && child !== row) {\n for (const rowChild of child.state.children) {\n if (rowChild.state.y! > rowY) {\n this.pushChildDown(rowChild, pushDownAmount);\n }\n }\n }\n }\n\n row.setState({ isCollapsed: false });\n // Trigger re-render\n this.setState({});\n }\n\n public ignoreLayoutChange(shouldIgnore: boolean) {\n this._skipOnLayoutChange = shouldIgnore;\n }\n\n public onLayoutChange = (layout: ReactGridLayout.Layout[]) => {\n if (this._skipOnLayoutChange) {\n // Layout has been updated by other RTL handler already\n this._skipOnLayoutChange = false;\n return;\n }\n\n // We replace with the old layout only if the current state is invalid\n if (this._loadOldLayout) {\n layout = [...this._oldLayout];\n this._loadOldLayout = false;\n }\n\n for (const item of layout) {\n const child = this.getSceneLayoutChild(item.i);\n\n const nextSize: SceneGridItemPlacement = {\n x: item.x,\n y: item.y,\n width: item.w,\n height: item.h,\n };\n\n if (!isItemSizeEqual(child.state, nextSize)) {\n child.setState({\n ...nextSize,\n });\n }\n }\n\n this.setState({ children: sortChildrenByPosition(this.state.children) });\n };\n\n /**\n * Will also scan row children and return child of the row\n */\n public getSceneLayoutChild(key: string): SceneGridItemLike {\n for (const child of this.state.children) {\n if (child.state.key === key) {\n return child;\n }\n\n if (child instanceof SceneGridRow) {\n for (const rowChild of child.state.children) {\n if (rowChild.state.key === key) {\n return rowChild;\n }\n }\n }\n }\n\n throw new Error('Scene layout child not found for GridItem');\n }\n\n public onResizeStop: ReactGridLayout.ItemCallback = (_, o, n) => {\n const child = this.getSceneLayoutChild(n.i);\n child.setState({\n width: n.w,\n height: n.h,\n });\n };\n\n private pushChildDown(child: SceneGridItemLike, amount: number) {\n child.setState({\n y: child.state.y! + amount,\n });\n }\n\n /**\n * We assume the layout array is sorted according to y pos, and walk upwards until we find a row.\n * If it is collapsed there is no row to add it to. The default is then to return the SceneGridLayout itself\n */\n private findGridItemSceneParent(layout: ReactGridLayout.Layout[], startAt: number): SceneGridRow | SceneGridLayout {\n for (let i = startAt; i >= 0; i--) {\n const gridItem = layout[i];\n const sceneChild = this.getSceneLayoutChild(gridItem.i);\n\n if (sceneChild instanceof SceneGridRow) {\n // the closest row is collapsed return null\n if (sceneChild.state.isCollapsed) {\n return this;\n }\n\n return sceneChild;\n }\n }\n\n return this;\n }\n\n /**\n * Helper func to check if we are dropping a row in between panels of another row\n */\n private isRowDropValid(\n gridLayout: ReactGridLayout.Layout[],\n updatedItem: ReactGridLayout.Layout,\n indexOfUpdatedItem: number\n ): boolean {\n // if the row is dropped at the end of the dashboard grid layout, we accept this valid state\n if (gridLayout[gridLayout.length - 1].i === updatedItem.i) {\n return true;\n }\n\n // if the next child after the updated item is a scene grid row, then we are either at the top\n // of the dashboard, or between rows\n // if it's not a grid row, but it's parent is the layout, it means we are not in between a\n // rows children, so also valid state\n const nextSceneChild = this.getSceneLayoutChild(gridLayout[indexOfUpdatedItem + 1].i);\n if (nextSceneChild instanceof SceneGridRow) {\n return true;\n } else if (nextSceneChild.parent instanceof SceneGridLayout) {\n return true;\n }\n\n return false;\n }\n\n /**\n * This likely needs a slightly different approach. Where we clone or deactivate or and re-activate the moved child\n */\n public moveChildTo(child: SceneGridItemLike, target: SceneGridLayout | SceneGridRow) {\n const currentParent = child.parent!;\n let rootChildren = this.state.children;\n\n const newChild = child.clone({ key: child.state.key });\n\n // Remove from current parent row\n if (currentParent instanceof SceneGridRow) {\n const newRow = currentParent.clone();\n newRow.setState({\n children: newRow.state.children.filter((c) => c.state.key !== child.state.key),\n });\n\n // new children with new row\n rootChildren = rootChildren.map((c) => (c === currentParent ? newRow : c));\n\n // if target is also a row\n if (target instanceof SceneGridRow) {\n const targetRow = target.clone();\n targetRow.setState({ children: [...targetRow.state.children, newChild] });\n rootChildren = rootChildren.map((c) => (c === target ? targetRow : c));\n } else {\n // target is the main grid\n rootChildren = [...rootChildren, newChild];\n }\n } else {\n if (!(target instanceof SceneGridLayout)) {\n // current parent is the main grid remove it from there\n rootChildren = rootChildren.filter((c) => c.state.key !== child.state.key);\n // Clone the target row and add the child\n const targetRow = target.clone();\n targetRow.setState({ children: [...targetRow.state.children, newChild] });\n // Replace row with new row\n rootChildren = rootChildren.map((c) => (c === target ? targetRow : c));\n }\n }\n\n return rootChildren;\n }\n\n public onDragStart: ReactGridLayout.ItemCallback = (gridLayout) => {\n this._oldLayout = [...gridLayout];\n };\n\n public onDragStop: ReactGridLayout.ItemCallback = (gridLayout, o, updatedItem) => {\n const sceneChild = this.getSceneLayoutChild(updatedItem.i)!;\n\n // Need to resort the grid layout based on new position (needed to find the new parent)\n gridLayout = sortGridLayout(gridLayout);\n\n // Update the parent if the child if it has moved to a row or back to the grid\n const indexOfUpdatedItem = gridLayout.findIndex((item) => item.i === updatedItem.i);\n let newParent = this.findGridItemSceneParent(gridLayout, indexOfUpdatedItem - 1);\n let newChildren = this.state.children;\n\n // Update children positions if they have changed\n for (let i = 0; i < gridLayout.length; i++) {\n const gridItem = gridLayout[i];\n const child = this.getSceneLayoutChild(gridItem.i)!;\n const childSize = child.state;\n\n if (childSize?.x !== gridItem.x || childSize?.y !== gridItem.y) {\n child.setState({\n x: gridItem.x,\n y: gridItem.y,\n });\n }\n }\n\n // Dot not allow dragging into repeated row clone\n if (newParent instanceof SceneGridRow && isRepeatCloneOrChildOf(newParent)) {\n this._loadOldLayout = true;\n }\n\n // if the child is a row and we are moving it under an uncollapsed row, keep the scene grid layout as parent\n // and set the old layout flag if the state is invalid. We allow setting the children in an invalid state,\n // as the layout will be updated in onLayoutChange and avoid flickering\n if (sceneChild instanceof SceneGridRow && newParent instanceof SceneGridRow) {\n if (!this.isRowDropValid(gridLayout, updatedItem, indexOfUpdatedItem)) {\n this._loadOldLayout = true;\n }\n\n newParent = this;\n }\n\n if (newParent !== sceneChild.parent && !this._loadOldLayout) {\n newChildren = this.moveChildTo(sceneChild, newParent);\n }\n\n this.setState({ children: sortChildrenByPosition(newChildren) });\n this._skipOnLayoutChange = true;\n };\n\n private toGridCell(child: SceneGridItemLike): ReactGridLayout.Layout {\n const size = child.state;\n\n let x = Number.isFinite(Number(size.x)) ? Number(size.x) : 0;\n let y = Number.isFinite(Number(size.y)) ? Number(size.y) : 0;\n const w = Number.isFinite(Number(size.width)) ? Number(size.width) : DEFAULT_PANEL_SPAN;\n const h = Number.isFinite(Number(size.height)) ? Number(size.height) : DEFAULT_PANEL_SPAN;\n\n let isDraggable = child.state.isDraggable;\n let isResizable = child.state.isResizable;\n\n if (child instanceof SceneGridRow) {\n isDraggable = child.state.isCollapsed ? true : false;\n isResizable = false;\n }\n\n // If this is a repeated row, we should not allow dragging\n if (isRepeatCloneOrChildOf(child)) {\n isDraggable = false;\n isResizable = false;\n }\n\n return { i: child.state.key!, x, y, h, w, isResizable, isDraggable };\n }\n\n public buildGridLayout(width: number, height: number): ReactGridLayout.Layout[] {\n let cells: ReactGridLayout.Layout[] = [];\n\n for (const child of this.state.children) {\n cells.push(this.toGridCell(child));\n\n if (child instanceof SceneGridRow && !child.state.isCollapsed) {\n for (const rowChild of child.state.children) {\n cells.push(this.toGridCell(rowChild));\n }\n }\n }\n\n // Sort by position\n cells = sortGridLayout(cells);\n\n if (this.state.UNSAFE_fitPanels) {\n cells = fitPanelsInHeight(cells, height);\n }\n\n if (width < 768) {\n // We should not persist the mobile layout\n this._skipOnLayoutChange = true;\n return cells.map((cell) => ({ ...cell, w: 24 }));\n }\n\n this._skipOnLayoutChange = false;\n\n return cells;\n }\n}\n\nfunction isItemSizeEqual(a: SceneGridItemPlacement, b: SceneGridItemPlacement) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\nfunction sortChildrenByPosition(children: SceneGridItemLike[]) {\n children.forEach((child) => {\n if (child instanceof SceneGridRow) {\n child.setState({ children: sortChildrenByPosition(child.state.children) });\n }\n });\n\n return [...children].sort((a, b) => {\n return a.state.y! - b.state.y! || a.state.x! - b.state.x!;\n });\n}\n\nfunction sortGridLayout(layout: ReactGridLayout.Layout[]) {\n return [...layout].sort((a, b) => a.y - b.y || a.x! - b.x);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneGridLayoutRenderer.js","sources":["../../../../../../../../src/components/layout/grid/SceneGridLayoutRenderer.tsx"],"sourcesContent":["import React, { RefCallback, useEffect, useRef } from 'react';\nimport ReactGridLayout from 'react-grid-layout';\nimport { SceneComponentProps } from '../../../core/types';\nimport { GRID_CELL_HEIGHT, GRID_CELL_VMARGIN, GRID_COLUMN_COUNT } from './constants';\nimport { LazyLoader } from '../LazyLoader';\nimport { SceneGridLayout } from './SceneGridLayout';\nimport { SceneGridItemLike } from './types';\nimport { useStyles2 } from '@grafana/ui';\nimport { css, cx } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useMeasure } from 'react-use';\n\nexport function SceneGridLayoutRenderer({ model }: SceneComponentProps<SceneGridLayout>) {\n const { children, isLazy, isDraggable, isResizable } = model.useState();\n const [outerDivRef, { width, height }] = useMeasure();\n const ref = useRef<HTMLDivElement | null>(null);\n\n /**\n * The class that enables drag animations needs to be added after mount otherwise panels move on mount to their set positions which is annoying\n */\n useEffect(() => {\n updateAnimationClass(ref, !!isDraggable);\n }, [isDraggable]);\n\n validateChildrenSize(children);\n\n const renderGrid = (width: number, height: number) => {\n if (!width || !height) {\n return null;\n }\n\n const layout = model.buildGridLayout(width, height);\n\n return (\n /**\n * The children is using a width of 100% so we need to guarantee that it is wrapped\n * in an element that has the calculated size given by the AutoSizer. The AutoSizer\n * has a width of 0 and will let its content overflow its div.\n */\n <div ref={ref} style={{ width: `${width}px`, height: '100%' }} className=\"react-grid-layout\">\n <ReactGridLayout\n width={width}\n /**\n Disable draggable if mobile device, solving an issue with unintentionally\n moving panels. https://github.com/grafana/grafana/issues/18497\n theme.breakpoints.md = 769\n */\n isDraggable={isDraggable && width > 768}\n isResizable={isResizable ?? false}\n containerPadding={[0, 0]}\n useCSSTransforms={true}\n margin={[GRID_CELL_VMARGIN, GRID_CELL_VMARGIN]}\n cols={GRID_COLUMN_COUNT}\n rowHeight={GRID_CELL_HEIGHT}\n draggableHandle={`.grid-drag-handle-${model.state.key}`}\n draggableCancel=\".grid-drag-cancel\"\n layout={layout}\n onDragStart={model.onDragStart}\n onDragStop={model.onDragStop}\n onResizeStop={model.onResizeStop}\n onLayoutChange={model.onLayoutChange}\n isBounded={false}\n resizeHandle={<ResizeHandle />}\n >\n {layout.map((gridItem, index) => (\n <GridItemWrapper\n key={gridItem.i}\n grid={model}\n layoutItem={gridItem}\n index={index}\n isLazy={isLazy}\n totalCount={layout.length}\n />\n ))}\n </ReactGridLayout>\n </div>\n );\n };\n\n return (\n <div ref={outerDivRef as RefCallback<HTMLDivElement>} className={gridWrapperClass}>\n {renderGrid(width, height)}\n </div>\n );\n}\n\nconst gridWrapperClass = css({\n flex: '1 1 auto',\n position: 'relative',\n zIndex: 1,\n width: '100%',\n});\n\ninterface GridItemWrapperProps extends React.HTMLAttributes<HTMLDivElement> {\n grid: SceneGridLayout;\n layoutItem: ReactGridLayout.Layout;\n index: number;\n totalCount: number;\n isLazy?: boolean;\n}\n\nconst GridItemWrapper = React.forwardRef<HTMLDivElement, GridItemWrapperProps>((props, ref) => {\n const { grid, layoutItem, index, totalCount, isLazy, style, onLoad, onChange, children, ...divProps } = props;\n const sceneChild = grid.getSceneLayoutChild(layoutItem.i)!;\n const className = sceneChild.getClassName?.();\n\n const innerContent = <sceneChild.Component model={sceneChild} key={sceneChild.state.key} />;\n\n if (isLazy) {\n return (\n <LazyLoader\n {...divProps}\n key={sceneChild.state.key!}\n data-griditem-key={sceneChild.state.key}\n className={cx(className, props.className)}\n style={style}\n ref={ref}\n >\n {innerContent}\n {children}\n </LazyLoader>\n );\n }\n\n return (\n <div\n {...divProps}\n ref={ref}\n key={sceneChild.state.key}\n data-griditem-key={sceneChild.state.key}\n className={cx(className, props.className)}\n style={style}\n >\n {innerContent}\n {children}\n </div>\n );\n});\n\nGridItemWrapper.displayName = 'GridItemWrapper';\n\nfunction validateChildrenSize(children: SceneGridItemLike[]) {\n if (\n children.some(\n (c) =>\n c.state.height === undefined ||\n c.state.width === undefined ||\n c.state.x === undefined ||\n c.state.y === undefined\n )\n ) {\n throw new Error('All children must have a size specified');\n }\n}\n\nfunction updateAnimationClass(\n ref: React.MutableRefObject<HTMLDivElement | null>,\n isDraggable: boolean,\n retry?: boolean\n) {\n if (ref.current) {\n if (isDraggable) {\n ref.current.classList.add('react-grid-layout--enable-move-animations');\n } else {\n ref.current.classList.remove('react-grid-layout--enable-move-animations');\n }\n } else if (!retry) {\n setTimeout(() => updateAnimationClass(ref, isDraggable, true), 50);\n }\n}\n\ninterface ResizeHandleProps extends React.HTMLAttributes<HTMLDivElement> {\n handleAxis?: string;\n}\n\nconst ResizeHandle = React.forwardRef<HTMLDivElement, ResizeHandleProps>(({ handleAxis, ...divProps }, ref) => {\n const customCssClass = useStyles2(getResizeHandleStyles);\n\n return (\n <div ref={ref} {...divProps} className={`${customCssClass} scene-resize-handle`}>\n <svg width=\"16px\" height=\"16px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M21 15L15 21M21 8L8 21\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n );\n});\n\nResizeHandle.displayName = 'ResizeHandle';\n\nfunction getResizeHandleStyles(theme: GrafanaTheme2) {\n return css({\n position: 'absolute',\n bottom: 0,\n right: 0,\n zIndex: 999,\n padding: theme.spacing(1.5, 0, 0, 1.5),\n color: theme.colors.border.strong,\n cursor: 'se-resize',\n '&:hover': {\n color: theme.colors.text.link,\n },\n svg: {\n display: 'block',\n },\n '.react-resizable-hide &': {\n display: 'none',\n },\n });\n}\n"],"names":["width","height"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneGridRow.js","sources":["../../../../../../../../src/components/layout/grid/SceneGridRow.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Icon, useStyles2 } from '@grafana/ui';\n\nimport { SceneObjectBase } from '../../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObject, SceneObjectUrlValues } from '../../../core/types';\n\nimport { SceneGridLayout } from './SceneGridLayout';\nimport { GRID_COLUMN_COUNT } from './constants';\nimport { SceneGridItemLike, SceneGridItemStateLike } from './types';\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { VariableDependencyConfig } from '../../../variables/VariableDependencyConfig';\nimport { t } from '@grafana/i18n';\nimport { isRepeatCloneOrChildOf } from '../../../utils/utils';\n\nexport interface SceneGridRowState extends SceneGridItemStateLike {\n title: string;\n isCollapsible?: boolean;\n isCollapsed?: boolean;\n actions?: SceneObject;\n children: SceneGridItemLike[];\n /** Marks object as a repeated object and a key pointer to source object */\n repeatSourceKey?: string;\n}\n\nexport class SceneGridRow extends SceneObjectBase<SceneGridRowState> {\n public static Component = SceneGridRowRenderer;\n\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['title'],\n handleTimeMacros: true,\n });\n\n public constructor(state: Partial<SceneGridRowState>) {\n super({\n children: state.children || [],\n isCollapsible: state.isCollapsible || true,\n title: state.title || '',\n ...state,\n x: 0,\n height: 1,\n width: GRID_COLUMN_COUNT,\n });\n }\n\n public getGridLayout(): SceneGridLayout {\n const layout = this.parent;\n\n if (!layout || !(layout instanceof SceneGridLayout)) {\n throw new Error('SceneGridRow must be a child of SceneGridLayout');\n }\n\n return layout;\n }\n\n public onCollapseToggle = () => {\n if (!this.state.isCollapsible) {\n return;\n }\n\n this.getGridLayout().toggleRow(this);\n };\n\n public getUrlState() {\n return { rowc: this.state.isCollapsed ? '1' : '0' };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n if (values.rowc == null) {\n return;\n }\n\n if (values.rowc !== this.getUrlState().rowc) {\n this.onCollapseToggle();\n }\n }\n\n public getPanelCount(children: SceneGridItemLike[]) {\n let count = 0;\n for (const child of children) {\n count += child.getChildCount?.() || 1;\n }\n return count;\n }\n}\n\nexport function SceneGridRowRenderer({ model }: SceneComponentProps<SceneGridRow>) {\n const styles = useStyles2(getSceneGridRowStyles);\n const { isCollapsible, isCollapsed, title, actions, children } = model.useState();\n const layout = model.getGridLayout();\n const layoutDragClass = layout.getDragClass();\n const isDraggable = layout.isDraggable() && !isRepeatCloneOrChildOf(model);\n\n const count = model.getPanelCount(children);\n const panels = count === 1 ? 'panel' : 'panels';\n\n return (\n <div className={cx(styles.row, isCollapsed && styles.rowCollapsed)}>\n <div className={styles.rowTitleAndActionsGroup}>\n <button\n onClick={model.onCollapseToggle}\n className={styles.rowTitleButton}\n aria-label={\n isCollapsed\n ? t('grafana-scenes.components.scene-grid-row.expand-row', 'Expand row')\n : t('grafana-scenes.components.scene-grid-row.collapse-row', 'Collapse row')\n }\n data-testid={selectors.components.DashboardRow.title(sceneGraph.interpolate(model, title, undefined, 'text'))}\n >\n {isCollapsible && <Icon name={isCollapsed ? 'angle-right' : 'angle-down'} />}\n <span className={styles.rowTitle} role=\"heading\">\n {sceneGraph.interpolate(model, title, undefined, 'text')}\n </span>\n </button>\n <span className={cx(styles.panelCount, isCollapsed && styles.panelCountCollapsed)}>\n ({count} {panels})\n </span>\n {actions && (\n <div className={styles.rowActions}>\n <actions.Component model={actions} />\n </div>\n )}\n </div>\n {isDraggable && isCollapsed && (\n <div className={cx(styles.dragHandle, layoutDragClass)}>\n <Icon name=\"draggabledots\" />\n </div>\n )}\n </div>\n );\n}\n\nexport const getSceneGridRowStyles = (theme: GrafanaTheme2) => {\n return {\n row: css({\n width: '100%',\n height: '30px',\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n }),\n rowTitleButton: css({\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n background: 'transparent',\n border: 'none',\n minWidth: 0,\n gap: theme.spacing(1),\n }),\n rowCollapsed: css({\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n }),\n rowTitle: css({\n fontSize: theme.typography.h5.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%',\n flexGrow: 1,\n minWidth: 0,\n }),\n collapsedInfo: css({\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.text.secondary,\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1,\n }),\n rowTitleAndActionsGroup: css({\n display: 'flex',\n minWidth: 0,\n\n '&:hover, &:focus-within': {\n '& > div': {\n opacity: 1,\n },\n },\n }),\n rowActions: css({\n display: 'flex',\n whiteSpace: 'nowrap',\n opacity: 0,\n transition: '200ms opacity ease-in 200ms',\n\n '&:hover, &:focus-within': {\n opacity: 1,\n },\n }),\n dragHandle: css({\n display: 'flex',\n padding: theme.spacing(0, 1),\n alignItems: 'center',\n justifyContent: 'flex-end',\n cursor: 'move',\n color: theme.colors.text.secondary,\n '&:hover': {\n color: theme.colors.text.primary,\n },\n }),\n panelCount: css({\n whiteSpace: 'nowrap',\n paddingLeft: theme.spacing(2),\n color: theme.colors.text.secondary,\n fontStyle: 'italic',\n fontSize: theme.typography.size.sm,\n fontWeight: 'normal',\n display: 'none',\n lineHeight: '30px',\n }),\n panelCountCollapsed: css({\n display: 'inline-block',\n }),\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../../../../../src/components/layout/grid/constants.ts"],"sourcesContent":["export const DEFAULT_PANEL_SPAN = 4;\nexport const GRID_CELL_HEIGHT = 30;\nexport const GRID_CELL_VMARGIN = 8;\nexport const GRID_COLUMN_COUNT = 24;\n"],"names":[],"mappings":"AAAO,MAAM,kBAAqB,GAAA;AAC3B,MAAM,gBAAmB,GAAA;AACzB,MAAM,iBAAoB,GAAA;AAC1B,MAAM,iBAAoB,GAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../../../src/components/layout/grid/types.ts"],"sourcesContent":["import { PointerEvent } from 'react';\nimport { SceneObject, SceneObjectState } from '../../../core/types';\nimport { BusEventWithPayload } from '@grafana/data';\nimport { VizPanel } from '../../VizPanel/VizPanel';\n\nexport interface SceneGridItemPlacement {\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n}\n\nexport interface SceneGridItemStateLike extends SceneGridItemPlacement, SceneObjectState {\n isResizable?: boolean;\n isDraggable?: boolean;\n}\n\nexport interface SceneGridItemLike extends SceneObject<SceneGridItemStateLike> {\n /**\n * Provide a custom CSS class name for the underlying DOM element when special styling (i.e. for mobile breakpoint) is required.\n **/\n getClassName?(): string;\n\n /**\n * Get the number of grid item children (eg. original panel with all repeats)\n **/\n getChildCount?(): number;\n}\n\nexport class SceneGridLayoutDragStartEvent extends BusEventWithPayload<{ evt: PointerEvent; panel: VizPanel }> {\n public static readonly type = 'scene-grid-layout-drag-start';\n}\n"],"names":[],"mappings":";;AA6BO,MAAM,sCAAsC,mBAA4D,CAAA;AAE/G;AAFa,6BAAA,CACY,IAAO,GAAA,8BAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../../../src/components/layout/grid/utils.ts"],"sourcesContent":["import { GRID_CELL_HEIGHT, GRID_CELL_VMARGIN } from './constants';\n\nexport function fitPanelsInHeight(cells: ReactGridLayout.Layout[], height: number) {\n // Take into account cell margint top + cell margin bottom + adding some marging at the bottom\n const visibleHeight = height - GRID_CELL_VMARGIN * 4;\n const currentGridHeight = Math.max(...cells.map((cell) => cell.h + cell.y));\n\n const visibleGridHeight = Math.floor(visibleHeight / (GRID_CELL_HEIGHT + GRID_CELL_VMARGIN));\n const scaleFactor = currentGridHeight / visibleGridHeight;\n\n return cells.map((cell) => {\n return {\n ...cell,\n y: Math.round(cell.y / scaleFactor) || 0,\n h: Math.round(cell.h / scaleFactor) || 1,\n };\n });\n}\n"],"names":[],"mappings":";;AAEgB,SAAA,iBAAA,CAAkB,OAAiC,MAAgB,EAAA;AAEjF,EAAM,MAAA,aAAA,GAAgB,SAAS,iBAAoB,GAAA,CAAA;AACnD,EAAA,MAAM,iBAAoB,GAAA,IAAA,CAAK,GAAI,CAAA,GAAG,KAAM,CAAA,GAAA,CAAI,CAAC,IAAA,KAAS,IAAK,CAAA,CAAA,GAAI,IAAK,CAAA,CAAC,CAAC,CAAA;AAE1E,EAAA,MAAM,iBAAoB,GAAA,IAAA,CAAK,KAAM,CAAA,aAAA,IAAiB,mBAAmB,iBAAkB,CAAA,CAAA;AAC3F,EAAA,MAAM,cAAc,iBAAoB,GAAA,iBAAA;AAExC,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACzB,IAAO,OAAA;AAAA,MACL,GAAG,IAAA;AAAA,MACH,GAAG,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,CAAA,GAAI,WAAW,CAAK,IAAA,CAAA;AAAA,MACvC,GAAG,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,CAAA,GAAI,WAAW,CAAK,IAAA;AAAA,KACzC;AAAA,GACD,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitLayout.js","sources":["../../../../../../../../src/components/layout/split/SplitLayout.ts"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { SceneObjectBase } from '../../../core/SceneObjectBase';\nimport { SceneObjectState } from '../../../core/types';\nimport { SceneFlexItemPlacement, SceneFlexItemLike } from '../SceneFlexLayout';\nimport { SplitLayoutRenderer } from './SplitLayoutRenderer';\n\ninterface SplitLayoutState extends SceneObjectState, SceneFlexItemPlacement {\n primary: SceneFlexItemLike;\n secondary?: SceneFlexItemLike;\n direction: 'row' | 'column';\n initialSize?: number;\n primaryPaneStyles?: CSSProperties;\n secondaryPaneStyles?: CSSProperties;\n}\n\nexport class SplitLayout extends SceneObjectBase<SplitLayoutState> {\n public static Component = SplitLayoutRenderer;\n\n public toggleDirection() {\n this.setState({\n direction: this.state.direction === 'row' ? 'column' : 'row',\n });\n }\n\n public isDraggable(): boolean {\n return false;\n }\n}\n"],"names":[],"mappings":";;;AAeO,MAAM,oBAAoB,eAAkC,CAAA;AAAA,EAG1D,eAAkB,GAAA;AACvB,IAAA,IAAA,CAAK,QAAS,CAAA;AAAA,MACZ,SAAW,EAAA,IAAA,CAAK,KAAM,CAAA,SAAA,KAAc,QAAQ,QAAW,GAAA;AAAA,KACxD,CAAA;AAAA;AACH,EAEO,WAAuB,GAAA;AAC5B,IAAO,OAAA,KAAA;AAAA;AAEX;AAZa,WAAA,CACG,SAAY,GAAA,mBAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitLayoutRenderer.js","sources":["../../../../../../../../src/components/layout/split/SplitLayoutRenderer.tsx"],"sourcesContent":["import React, { ComponentType } from 'react';\n\nimport { SceneComponentProps, SceneObjectState, SceneObject } from '../../../core/types';\nimport { SceneFlexItemPlacement } from '../SceneFlexLayout';\nimport { SplitLayout } from './SplitLayout';\nimport { Splitter } from './Splitter';\n\nexport function SplitLayoutRenderer({ model }: SceneFlexItemRenderProps<SplitLayout>) {\n const { primary, secondary, direction, isHidden, initialSize, primaryPaneStyles, secondaryPaneStyles } =\n model.useState();\n\n if (isHidden) {\n return null;\n }\n\n const Prim = primary.Component as ComponentType<SceneFlexItemRenderProps<SceneObject>>;\n const Sec = secondary?.Component as ComponentType<SceneFlexItemRenderProps<SceneObject>>;\n let startSize = secondary ? initialSize : 1;\n\n return (\n <Splitter\n direction={direction}\n initialSize={startSize ?? 0.5}\n primaryPaneStyles={primaryPaneStyles}\n secondaryPaneStyles={secondaryPaneStyles}\n >\n <Prim key={primary.state.key} model={primary} parentState={model.state} />\n {Sec && secondary && <Sec key={secondary.state.key} model={secondary} parentState={model.state} />}\n </Splitter>\n );\n}\n\nexport interface SceneFlexItemState extends SceneFlexItemPlacement, SceneObjectState {\n body: SceneObject | undefined;\n}\n\ninterface SceneFlexItemRenderProps<T> extends SceneComponentProps<T> {\n parentState?: SceneFlexItemPlacement;\n}\n"],"names":[],"mappings":";;;AAOgB,SAAA,mBAAA,CAAoB,EAAE,KAAA,EAAgD,EAAA;AACpF,EAAM,MAAA,EAAE,OAAS,EAAA,SAAA,EAAW,SAAW,EAAA,QAAA,EAAU,aAAa,iBAAmB,EAAA,mBAAA,EAC/E,GAAA,KAAA,CAAM,QAAS,EAAA;AAEjB,EAAA,IAAI,QAAU,EAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,OAAO,OAAQ,CAAA,SAAA;AACrB,EAAA,MAAM,MAAM,SAAW,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAA,SAAA;AACvB,EAAI,IAAA,SAAA,GAAY,YAAY,WAAc,GAAA,CAAA;AAE1C,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,aAAa,SAAa,IAAA,IAAA,GAAA,SAAA,GAAA,GAAA;AAAA,MAC1B,iBAAA;AAAA,MACA;AAAA,KAAA;AAAA,oBAEA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,GAAA,EAAK,OAAQ,CAAA,KAAA,CAAM,KAAK,KAAO,EAAA,OAAA,EAAS,WAAa,EAAA,KAAA,CAAM,KAAO,EAAA,CAAA;AAAA,IACvE,GAAO,IAAA,SAAA,oBAAc,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,GAAK,EAAA,SAAA,CAAU,KAAM,CAAA,GAAA,EAAK,KAAO,EAAA,SAAA,EAAW,WAAa,EAAA,KAAA,CAAM,KAAO,EAAA;AAAA,GAClG;AAEJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Splitter.js","sources":["../../../../../../../../src/components/layout/split/Splitter.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport { css, cx } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { clamp, throttle } from 'lodash';\nimport React, { useCallback, useLayoutEffect, useRef } from 'react';\nimport { useUniqueId } from '../LazyLoader';\n\ninterface Props {\n handleSize?: number;\n initialSize?: number | 'auto';\n direction?: 'row' | 'column';\n primary?: 'first' | 'second';\n collapsedDefault?: boolean;\n primaryPaneStyles?: React.CSSProperties;\n secondaryPaneStyles?: React.CSSProperties;\n onDragFinished?: (size: number) => void;\n children: [React.ReactNode, React.ReactNode];\n}\n\nconst PIXELS_PER_MS = 0.3 as const;\nconst VERTICAL_KEYS = new Set(['ArrowUp', 'ArrowDown']);\nconst HORIZONTAL_KEYS = new Set(['ArrowLeft', 'ArrowRight']);\n\nconst propsForDirection = {\n row: {\n dim: 'width',\n axis: 'clientX',\n min: 'minWidth',\n max: 'maxWidth',\n },\n column: {\n dim: 'height',\n axis: 'clientY',\n min: 'minHeight',\n max: 'maxHeight',\n },\n} as const;\n\nexport function Splitter({\n direction = 'row',\n handleSize = 32,\n initialSize = 'auto',\n primaryPaneStyles,\n secondaryPaneStyles,\n onDragFinished,\n children,\n}: Props) {\n const kids = React.Children.toArray(children);\n\n const splitterRef = useRef<HTMLDivElement | null>(null);\n const firstPaneRef = useRef<HTMLDivElement | null>(null);\n const secondPaneRef = useRef<HTMLDivElement | null>(null);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const containerSize = useRef<number | null>(null);\n const primarySizeRef = useRef<'1fr' | number>('1fr');\n\n const firstPaneMeasurements = useRef<ReturnType<typeof measureElement>>(undefined);\n const savedPos = useRef<string | undefined>(undefined);\n\n const measurementProp = propsForDirection[direction].dim;\n const clientAxis = propsForDirection[direction].axis;\n const minDimProp = propsForDirection[direction].min;\n const maxDimProp = propsForDirection[direction].max;\n\n // Using a resize observer here, as with content or screen based width/height the ratio between panes might\n // change after a window resize, so ariaValueNow needs to be updated accordingly\n useResizeObserver(\n containerRef.current!,\n (entries) => {\n for (const entry of entries) {\n if (!entry.target.isSameNode(containerRef.current)) {\n return;\n }\n\n const curSize = firstPaneRef.current!.getBoundingClientRect()[measurementProp];\n const newDims = measureElement(firstPaneRef.current!);\n splitterRef.current!.ariaValueNow = `${clamp(\n ((curSize - newDims[minDimProp]) / (newDims[maxDimProp] - newDims[minDimProp])) * 100,\n 0,\n 100\n )}`;\n }\n },\n 500,\n [maxDimProp, minDimProp, direction, measurementProp]\n );\n\n const dragStart = useRef<number | null>(null);\n const onPointerDown = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n // measure left-side width\n primarySizeRef.current = firstPaneRef.current!.getBoundingClientRect()[measurementProp];\n containerSize.current = containerRef.current!.getBoundingClientRect()[measurementProp];\n\n // set position at start of drag\n dragStart.current = e[clientAxis];\n splitterRef.current!.setPointerCapture(e.pointerId);\n firstPaneMeasurements.current = measureElement(firstPaneRef.current!);\n\n savedPos.current = undefined;\n },\n [measurementProp, clientAxis]\n );\n\n const onPointerMove = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (dragStart.current !== null && primarySizeRef.current !== '1fr') {\n const diff = e[clientAxis] - dragStart.current;\n const dims = firstPaneMeasurements.current!;\n const newSize = clamp(primarySizeRef.current + diff, dims[minDimProp], dims[maxDimProp]);\n const newFlex = newSize / (containerSize.current! - handleSize);\n firstPaneRef.current!.style.flexGrow = `${newFlex}`;\n secondPaneRef.current!.style.flexGrow = `${1 - newFlex}`;\n const ariaValueNow = clamp(\n ((newSize - dims[minDimProp]) / (dims[maxDimProp] - dims[minDimProp])) * 100,\n 0,\n 100\n );\n\n splitterRef.current!.ariaValueNow = `${ariaValueNow}`;\n }\n },\n [handleSize, clientAxis, minDimProp, maxDimProp]\n );\n\n const onPointerUp = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n splitterRef.current!.releasePointerCapture(e.pointerId);\n dragStart.current = null;\n onDragFinished?.(parseFloat(firstPaneRef.current!.style.flexGrow));\n },\n [onDragFinished]\n );\n\n const pressedKeys = useRef(new Set<string>());\n const keysLastHandledAt = useRef<number | null>(null);\n const handlePressedKeys = useCallback(\n (time: number) => {\n const nothingPressed = pressedKeys.current.size === 0;\n if (nothingPressed) {\n keysLastHandledAt.current = null;\n return;\n } else if (primarySizeRef.current === '1fr') {\n return;\n }\n\n const dt = time - (keysLastHandledAt.current ?? time);\n const dx = dt * PIXELS_PER_MS;\n let sizeChange = 0;\n\n if (direction === 'row') {\n if (pressedKeys.current.has('ArrowLeft')) {\n sizeChange -= dx;\n }\n if (pressedKeys.current.has('ArrowRight')) {\n sizeChange += dx;\n }\n } else {\n if (pressedKeys.current.has('ArrowUp')) {\n sizeChange -= dx;\n }\n if (pressedKeys.current.has('ArrowDown')) {\n sizeChange += dx;\n }\n }\n\n const firstPaneDims = firstPaneMeasurements.current!;\n const curSize = firstPaneRef.current!.getBoundingClientRect()[measurementProp];\n const newSize = clamp(curSize + sizeChange, firstPaneDims[minDimProp], firstPaneDims[maxDimProp]);\n\n const newFlex = newSize / (containerSize.current! - handleSize);\n\n firstPaneRef.current!.style.flexGrow = `${newFlex}`;\n secondPaneRef.current!.style.flexGrow = `${1 - newFlex}`;\n const ariaValueNow =\n ((newSize - firstPaneDims[minDimProp]) / (firstPaneDims[maxDimProp] - firstPaneDims[minDimProp])) * 100;\n splitterRef.current!.ariaValueNow = `${clamp(ariaValueNow, 0, 100)}`;\n\n keysLastHandledAt.current = time;\n window.requestAnimationFrame(handlePressedKeys);\n },\n [direction, handleSize, minDimProp, maxDimProp, measurementProp]\n );\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter') {\n if (savedPos.current === undefined) {\n savedPos.current = firstPaneRef.current!.style.flexGrow;\n firstPaneRef.current!.style.flexGrow = '0';\n secondPaneRef.current!.style.flexGrow = '1';\n } else {\n firstPaneRef.current!.style.flexGrow = savedPos.current;\n secondPaneRef.current!.style.flexGrow = `${1 - parseFloat(savedPos.current)}`;\n savedPos.current = undefined;\n }\n return;\n } else if (e.key === 'Home') {\n firstPaneMeasurements.current = measureElement(firstPaneRef.current!);\n containerSize.current = containerRef.current!.getBoundingClientRect()[measurementProp];\n const newFlex = firstPaneMeasurements.current[minDimProp] / (containerSize.current! - handleSize);\n firstPaneRef.current!.style.flexGrow = `${newFlex}`;\n secondPaneRef.current!.style.flexGrow = `${1 - newFlex}`;\n splitterRef.current!.ariaValueNow = '0';\n return;\n } else if (e.key === 'End') {\n firstPaneMeasurements.current = measureElement(firstPaneRef.current!);\n containerSize.current = containerRef.current!.getBoundingClientRect()[measurementProp];\n const newFlex = firstPaneMeasurements.current[maxDimProp] / (containerSize.current! - handleSize);\n firstPaneRef.current!.style.flexGrow = `${newFlex}`;\n secondPaneRef.current!.style.flexGrow = `${1 - newFlex}`;\n splitterRef.current!.ariaValueNow = '100';\n return;\n }\n\n if (\n !(\n (direction === 'column' && VERTICAL_KEYS.has(e.key)) ||\n (direction === 'row' && HORIZONTAL_KEYS.has(e.key))\n ) ||\n pressedKeys.current.has(e.key)\n ) {\n return;\n }\n\n savedPos.current = undefined;\n e.preventDefault();\n e.stopPropagation();\n primarySizeRef.current = firstPaneRef.current!.getBoundingClientRect()[measurementProp];\n containerSize.current = containerRef.current!.getBoundingClientRect()[measurementProp];\n firstPaneMeasurements.current = measureElement(firstPaneRef.current!);\n const newKey = !pressedKeys.current.has(e.key);\n\n if (newKey) {\n const initiateAnimationLoop = pressedKeys.current.size === 0;\n pressedKeys.current.add(e.key);\n\n if (initiateAnimationLoop) {\n window.requestAnimationFrame(handlePressedKeys);\n }\n }\n },\n [direction, handlePressedKeys, handleSize, maxDimProp, measurementProp, minDimProp]\n );\n\n const onKeyUp = useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (\n (direction === 'row' && !HORIZONTAL_KEYS.has(e.key)) ||\n (direction === 'column' && !VERTICAL_KEYS.has(e.key))\n ) {\n return;\n }\n\n pressedKeys.current.delete(e.key);\n onDragFinished?.(parseFloat(firstPaneRef.current!.style.flexGrow));\n },\n [direction, onDragFinished]\n );\n\n const onDoubleClick = useCallback(() => {\n firstPaneRef.current!.style.flexGrow = '0.5';\n secondPaneRef.current!.style.flexGrow = '0.5';\n const dim = measureElement(firstPaneRef.current!);\n firstPaneMeasurements.current = dim;\n primarySizeRef.current = firstPaneRef.current!.getBoundingClientRect()[measurementProp];\n splitterRef.current!.ariaValueNow = `${\n ((primarySizeRef.current - dim[minDimProp]) / (dim[maxDimProp] - dim[minDimProp])) * 100\n }`;\n }, [maxDimProp, measurementProp, minDimProp]);\n\n const onBlur = useCallback(() => {\n // If focus is lost while keys are held, stop changing panel sizes\n if (pressedKeys.current.size > 0) {\n pressedKeys.current.clear();\n dragStart.current = null;\n onDragFinished?.(parseFloat(firstPaneRef.current!.style.flexGrow));\n }\n }, [onDragFinished]);\n\n const styles = useStyles2(getStyles);\n const id = useUniqueId();\n\n const secondAvailable = kids.length === 2;\n const visibilitySecond = secondAvailable ? 'visible' : 'hidden';\n\n return (\n <div\n ref={containerRef}\n className={styles.container}\n style={{\n flexDirection: direction,\n }}\n >\n <div\n ref={firstPaneRef}\n className={styles.panel}\n style={{\n flexGrow: initialSize === 'auto' ? 0.5 : clamp(initialSize, 0, 1),\n [minDimProp]: 'min-content',\n ...primaryPaneStyles,\n }}\n id={`start-panel-${id}`}\n >\n {kids[0]}\n </div>\n\n {kids[1] && (\n <>\n <div\n ref={splitterRef}\n style={{ [measurementProp]: `${handleSize}px` }}\n className={cx(styles.handle, { [styles.handleHorizontal]: direction === 'column' })}\n onPointerUp={onPointerUp}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onDoubleClick={onDoubleClick}\n onBlur={onBlur}\n role=\"separator\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={50}\n aria-controls={`start-panel-${id}`}\n aria-label={t('grafana-scenes.components.splitter.aria-label-pane-resize-widget', 'Pane resize widget')}\n tabIndex={0}\n ></div>\n\n <div\n ref={secondPaneRef}\n className={styles.panel}\n style={{\n flexGrow: initialSize === 'auto' ? 0.5 : clamp(1 - initialSize, 0, 1),\n [minDimProp]: 'min-content',\n visibility: `${visibilitySecond}`,\n ...secondaryPaneStyles,\n }}\n id={`end-panel-${id}`}\n >\n {kids[1]}\n </div>\n </>\n )}\n </div>\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n handle: css({\n cursor: 'col-resize',\n position: 'relative',\n flexShrink: 0,\n userSelect: 'none',\n\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n backgroundColor: theme.colors.primary.main,\n left: '50%',\n transform: 'translate(-50%)',\n top: 0,\n height: '100%',\n width: '1px',\n opacity: 0,\n transition: 'opacity ease-in-out 0.2s',\n },\n\n '&::after': {\n content: '\"\"',\n width: '4px',\n borderRadius: '4px',\n backgroundColor: theme.colors.border.weak,\n transition: 'background-color ease-in-out 0.2s',\n height: '50%',\n top: 'calc(50% - (50%) / 2)',\n transform: 'translateX(-50%)',\n position: 'absolute',\n left: '50%',\n },\n\n '&:hover, &:focus-visible': {\n outline: 'none',\n '&::before': {\n opacity: 1,\n },\n\n '&::after': {\n backgroundColor: theme.colors.primary.main,\n },\n },\n }),\n handleHorizontal: css({\n cursor: 'row-resize',\n\n '&::before': {\n left: 'inherit',\n transform: 'translateY(-50%)',\n top: '50%',\n height: '1px',\n width: '100%',\n },\n\n '&::after': {\n width: '50%',\n height: '4px',\n top: '50%',\n transform: 'translateY(-50%)',\n left: 'calc(50% - (50%) / 2)',\n },\n }),\n container: css({\n display: 'flex',\n width: '100%',\n flexGrow: 1,\n overflow: 'hidden',\n }),\n panel: css({ display: 'flex', position: 'relative', flexBasis: 0 }),\n };\n}\n\ntype MeasureR<T> = T extends HTMLElement\n ? { minWidth: number; maxWidth: number; minHeight: number; maxHeight: number }\n : T extends null\n ? undefined\n : never;\ntype HTMLElementOrNull = HTMLElement | null;\n\nfunction measureElement<T extends HTMLElementOrNull>(ref: T): MeasureR<T> {\n if (ref === null) {\n return undefined as MeasureR<T>;\n }\n\n const savedBodyOverflow = document.body.style.overflow;\n const savedWidth = ref.style.width;\n const savedHeight = ref.style.height;\n const savedFlex = ref.style.flexGrow;\n document.body.style.overflow = 'hidden';\n ref.style.flexGrow = '0';\n const { width: minWidth, height: minHeight } = ref.getBoundingClientRect();\n\n ref.style.flexGrow = '100';\n const { width: maxWidth, height: maxHeight } = ref.getBoundingClientRect();\n\n document.body.style.overflow = savedBodyOverflow;\n ref.style.width = savedWidth;\n ref.style.height = savedHeight;\n ref.style.flexGrow = savedFlex;\n\n return { minWidth, maxWidth, minHeight, maxHeight } as MeasureR<T>;\n}\n\nfunction useResizeObserver(\n target: Element,\n cb: (entries: ResizeObserverEntry[]) => void,\n throttleWait = 0,\n deps?: React.DependencyList\n) {\n const throttledCallback = throttle(cb, throttleWait);\n\n useLayoutEffect(() => {\n if (!target) {\n return;\n }\n\n const resizeObserver = new ResizeObserver(throttledCallback);\n\n resizeObserver.observe(target, { box: 'device-pixel-content-box' });\n return () => resizeObserver.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldConfigBuilder.js","sources":["../../../../../../../src/core/PanelBuilders/FieldConfigBuilder.ts"],"sourcesContent":["import { FieldConfigSource } from '@grafana/data';\nimport { cloneDeep, merge } from 'lodash';\nimport { DeepPartial } from '../types';\nimport { FieldConfigOverridesBuilder } from './FieldConfigOverridesBuilder';\nimport { StandardFieldConfig, StandardFieldConfigInterface } from './types';\n\nexport class FieldConfigBuilder<TFieldConfig extends {}>\n implements StandardFieldConfigInterface<StandardFieldConfig, FieldConfigBuilder<TFieldConfig>, 'set'>\n{\n private _fieldConfig: FieldConfigSource<DeepPartial<TFieldConfig>> = {\n defaults: {},\n overrides: [],\n };\n private _overridesBuilder = new FieldConfigOverridesBuilder<TFieldConfig>();\n\n public constructor(private defaultFieldConfig?: () => TFieldConfig) {\n this.setDefaults();\n }\n\n private setDefaults() {\n const fieldConfig: FieldConfigSource<TFieldConfig> = {\n defaults: {\n custom: this.defaultFieldConfig ? cloneDeep(this.defaultFieldConfig()) : ({} as TFieldConfig),\n }, // use field config factory that will provide default field config\n overrides: [],\n };\n\n this._fieldConfig = fieldConfig;\n }\n /**\n * Set color.\n */\n public setColor(color: StandardFieldConfig['color']): this {\n return this.setFieldConfigDefaults('color', color);\n }\n\n /**\n * Set number of decimals to show.\n */\n public setDecimals(decimals: StandardFieldConfig['decimals']): this {\n return this.setFieldConfigDefaults('decimals', decimals);\n }\n\n /**\n * Set field display name.\n */\n public setDisplayName(displayName: StandardFieldConfig['displayName']): this {\n return this.setFieldConfigDefaults('displayName', displayName);\n }\n\n /**\n * Set the standard field config property filterable.\n */\n public setFilterable(filterable: StandardFieldConfig['filterable']): this {\n return this.setFieldConfigDefaults('filterable', filterable);\n }\n\n /**\n * Set data links.\n */\n public setLinks(links: StandardFieldConfig['links']): this {\n return this.setFieldConfigDefaults('links', links);\n }\n\n /**\n * Set value mappings.\n */\n public setMappings(mappings: StandardFieldConfig['mappings']): this {\n return this.setFieldConfigDefaults('mappings', mappings);\n }\n\n /**\n * Set the standard field config property max.\n */\n public setMax(max: StandardFieldConfig['max']): this {\n return this.setFieldConfigDefaults('max', max);\n }\n\n /**\n * Set the standard field config property min.\n */\n public setMin(min: StandardFieldConfig['min']): this {\n return this.setFieldConfigDefaults('min', min);\n }\n\n /**\n * Set the standard field config property noValue.\n */\n public setNoValue(noValue: StandardFieldConfig['noValue']): this {\n return this.setFieldConfigDefaults('noValue', noValue);\n }\n\n /**\n * Set the standard field config property thresholds.\n */\n public setThresholds(thresholds: StandardFieldConfig['thresholds']): this {\n return this.setFieldConfigDefaults('thresholds', thresholds);\n }\n\n /**\n * Set the standard field config property unit.\n */\n public setUnit(unit: StandardFieldConfig['unit']): this {\n return this.setFieldConfigDefaults('unit', unit);\n }\n\n /**\n * Set an individual custom field config value. This will merge the value with the existing custom field config.\n */\n public setCustomFieldConfig<T extends TFieldConfig, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this {\n this._fieldConfig.defaults = {\n ...this._fieldConfig.defaults,\n custom: merge(this._fieldConfig.defaults.custom, { [id]: value }),\n };\n\n return this;\n }\n\n /**\n * Configure overrides for the field config. This will merge the overrides with the existing overrides.\n */\n public setOverrides(builder: (b: FieldConfigOverridesBuilder<TFieldConfig>) => void): this {\n builder(this._overridesBuilder);\n return this;\n }\n\n public setFieldConfigDefaults<T extends keyof StandardFieldConfig>(key: T, value: StandardFieldConfig[T]) {\n this._fieldConfig.defaults = {\n ...this._fieldConfig.defaults,\n [key]: value,\n };\n return this;\n }\n\n public build() {\n return {\n defaults: this._fieldConfig.defaults,\n overrides: this._overridesBuilder.build(),\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldConfigBuilders.js","sources":["../../../../../../../src/core/PanelBuilders/FieldConfigBuilders.ts"],"sourcesContent":["import { TableFieldOptions as TableFieldConfig } from '@grafana/schema';\n\nimport {\n FieldConfig as BarChartFieldConfig,\n defaultFieldConfig as defaultBarChartFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';\nimport { FieldConfig as HeatmapFieldConfig } from '@grafana/schema/dist/esm/raw/composable/heatmap/panelcfg/x/HeatmapPanelCfg_types.gen';\nimport {\n FieldConfig as HistogramFieldConfig,\n defaultFieldConfig as defaultHistogramFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/histogram/panelcfg/x/HistogramPanelCfg_types.gen';\nimport { FieldConfig as PieChartFieldConfig } from '@grafana/schema/dist/esm/raw/composable/piechart/panelcfg/x/PieChartPanelCfg_types.gen';\nimport {\n FieldConfig as StateTimelineFieldConfig,\n defaultFieldConfig as defaultStateTimelineFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statetimeline/panelcfg/x/StateTimelinePanelCfg_types.gen';\nimport {\n FieldConfig as StatusHistoryFieldConfig,\n defaultFieldConfig as defaultStatusHistoryFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statushistory/panelcfg/x/StatusHistoryPanelCfg_types.gen';\nimport { FieldConfig as TimeSeriesFieldConfig } from '@grafana/schema/dist/esm/raw/composable/timeseries/panelcfg/x/TimeSeriesPanelCfg_types.gen';\nimport { FieldConfig as TrendFieldConfig } from '@grafana/schema/dist/esm/raw/composable/trend/panelcfg/x/TrendPanelCfg_types.gen';\nimport { defaultFieldConfig as defaultXYChartFieldConfig } from '@grafana/schema/dist/esm/raw/composable/xychart/panelcfg/x/XYChartPanelCfg_types.gen';\nimport { FieldConfigBuilder } from './FieldConfigBuilder';\n\nexport const FieldConfigBuilders = {\n barchart() {\n return new FieldConfigBuilder<BarChartFieldConfig>(() => defaultBarChartFieldConfig);\n },\n bargauge() {\n return new FieldConfigBuilder<{}>();\n },\n datagrid() {\n return new FieldConfigBuilder<{}>();\n },\n flamegraph() {\n return new FieldConfigBuilder<{}>();\n },\n gauge() {\n return new FieldConfigBuilder<{}>();\n },\n geomap() {\n return new FieldConfigBuilder<{}>();\n },\n heatmap() {\n return new FieldConfigBuilder<HeatmapFieldConfig>();\n },\n histogram() {\n return new FieldConfigBuilder<HistogramFieldConfig>(() => defaultHistogramFieldConfig);\n },\n logs() {\n return new FieldConfigBuilder<{}>();\n },\n news() {\n return new FieldConfigBuilder<{}>();\n },\n nodegraph() {\n return new FieldConfigBuilder<{}>();\n },\n piechart() {\n return new FieldConfigBuilder<PieChartFieldConfig>();\n },\n stat() {\n return new FieldConfigBuilder<{}>();\n },\n statetimeline() {\n return new FieldConfigBuilder<StateTimelineFieldConfig>(() => defaultStateTimelineFieldConfig);\n },\n statushistory() {\n return new FieldConfigBuilder<StatusHistoryFieldConfig>(() => defaultStatusHistoryFieldConfig);\n },\n table() {\n return new FieldConfigBuilder<TableFieldConfig>();\n },\n text() {\n return new FieldConfigBuilder<{}>();\n },\n timeseries() {\n return new FieldConfigBuilder<TimeSeriesFieldConfig>();\n },\n trend() {\n return new FieldConfigBuilder<{}>();\n },\n traces() {\n return new FieldConfigBuilder<TrendFieldConfig>();\n },\n xychart() {\n return new FieldConfigBuilder<{}>(() => defaultXYChartFieldConfig);\n },\n};\n"],"names":["defaultBarChartFieldConfig","defaultHistogramFieldConfig","defaultStateTimelineFieldConfig","defaultStatusHistoryFieldConfig","defaultXYChartFieldConfig"],"mappings":";;;;;;;AAyBO,MAAM,mBAAsB,GAAA;AAAA,EACjC,QAAW,GAAA;AACT,IAAO,OAAA,IAAI,kBAAwC,CAAA,MAAMA,oBAA0B,CAAA;AAAA,GACrF;AAAA,EACA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,UAAa,GAAA;AACX,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,KAAQ,GAAA;AACN,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,MAAS,GAAA;AACP,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,OAAU,GAAA;AACR,IAAA,OAAO,IAAI,kBAAuC,EAAA;AAAA,GACpD;AAAA,EACA,SAAY,GAAA;AACV,IAAO,OAAA,IAAI,kBAAyC,CAAA,MAAMC,oBAA2B,CAAA;AAAA,GACvF;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,SAAY,GAAA;AACV,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,kBAAwC,EAAA;AAAA,GACrD;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,aAAgB,GAAA;AACd,IAAO,OAAA,IAAI,kBAA6C,CAAA,MAAMC,oBAA+B,CAAA;AAAA,GAC/F;AAAA,EACA,aAAgB,GAAA;AACd,IAAO,OAAA,IAAI,kBAA6C,CAAA,MAAMC,oBAA+B,CAAA;AAAA,GAC/F;AAAA,EACA,KAAQ,GAAA;AACN,IAAA,OAAO,IAAI,kBAAqC,EAAA;AAAA,GAClD;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,UAAa,GAAA;AACX,IAAA,OAAO,IAAI,kBAA0C,EAAA;AAAA,GACvD;AAAA,EACA,KAAQ,GAAA;AACN,IAAA,OAAO,IAAI,kBAAuB,EAAA;AAAA,GACpC;AAAA,EACA,MAAS,GAAA;AACP,IAAA,OAAO,IAAI,kBAAqC,EAAA;AAAA,GAClD;AAAA,EACA,OAAU,GAAA;AACR,IAAO,OAAA,IAAI,kBAAuB,CAAA,MAAMC,kBAAyB,CAAA;AAAA;AAErE;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldConfigOverridesBuilder.js","sources":["../../../../../../../src/core/PanelBuilders/FieldConfigOverridesBuilder.ts"],"sourcesContent":["import { FieldMatcherID, FieldType, FieldValueMatcherConfig } from '@grafana/data';\nimport { MatcherConfig } from '@grafana/schema';\nimport { getCompareSeriesRefId } from '../../utils/getCompareSeriesRefId';\nimport { StandardFieldConfigOverridesBuilder } from './StandardFieldConfigBuilders';\n\nexport class FieldConfigOverridesBuilder<TFieldConfig> extends StandardFieldConfigOverridesBuilder<\n FieldConfigOverridesBuilder<TFieldConfig>\n> {\n public match(matcher: MatcherConfig): this {\n this._overrides.push({ matcher, properties: [] });\n return this;\n }\n\n public matchFieldsWithName(name: string): this {\n this._overrides.push({\n matcher: {\n id: FieldMatcherID.byName,\n\n options: name,\n },\n properties: [],\n });\n return this;\n }\n\n public matchFieldsWithNameByRegex(regex: string): this {\n this._overrides.push({\n matcher: {\n id: FieldMatcherID.byRegexp,\n options: regex,\n },\n properties: [],\n });\n return this;\n }\n\n public matchFieldsByType(fieldType: FieldType): this {\n this._overrides.push({\n matcher: {\n id: FieldMatcherID.byType,\n options: fieldType,\n },\n properties: [],\n });\n return this;\n }\n\n public matchFieldsByQuery(refId: string): this {\n this._overrides.push({\n matcher: {\n id: FieldMatcherID.byFrameRefID,\n options: refId,\n },\n properties: [],\n });\n return this;\n }\n\n public matchFieldsByValue(options: FieldValueMatcherConfig): this {\n this._overrides.push({\n matcher: {\n id: FieldMatcherID.byValue,\n options,\n },\n properties: [],\n });\n return this;\n }\n\n public matchComparisonQuery(refId: string): this {\n return this.matchFieldsByQuery(getCompareSeriesRefId(refId));\n }\n\n public overrideCustomFieldConfig<T extends TFieldConfig, K extends keyof T>(id: K, value: T[K]): this {\n const _id = `custom.${String(id)}`;\n const last = this._overrides[this._overrides.length - 1];\n last.properties.push({ id: _id, value });\n return this;\n }\n\n public build() {\n return this._overrides;\n }\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,oCAAkD,mCAE7D,CAAA;AAAA,EACO,MAAM,OAA8B,EAAA;AACzC,IAAA,IAAA,CAAK,WAAW,IAAK,CAAA,EAAE,SAAS,UAAY,EAAA,IAAI,CAAA;AAChD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,oBAAoB,IAAoB,EAAA;AAC7C,IAAA,IAAA,CAAK,WAAW,IAAK,CAAA;AAAA,MACnB,OAAS,EAAA;AAAA,QACP,IAAI,cAAe,CAAA,MAAA;AAAA,QAEnB,OAAS,EAAA;AAAA,OACX;AAAA,MACA,YAAY;AAAC,KACd,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,2BAA2B,KAAqB,EAAA;AACrD,IAAA,IAAA,CAAK,WAAW,IAAK,CAAA;AAAA,MACnB,OAAS,EAAA;AAAA,QACP,IAAI,cAAe,CAAA,QAAA;AAAA,QACnB,OAAS,EAAA;AAAA,OACX;AAAA,MACA,YAAY;AAAC,KACd,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,kBAAkB,SAA4B,EAAA;AACnD,IAAA,IAAA,CAAK,WAAW,IAAK,CAAA;AAAA,MACnB,OAAS,EAAA;AAAA,QACP,IAAI,cAAe,CAAA,MAAA;AAAA,QACnB,OAAS,EAAA;AAAA,OACX;AAAA,MACA,YAAY;AAAC,KACd,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,mBAAmB,KAAqB,EAAA;AAC7C,IAAA,IAAA,CAAK,WAAW,IAAK,CAAA;AAAA,MACnB,OAAS,EAAA;AAAA,QACP,IAAI,cAAe,CAAA,YAAA;AAAA,QACnB,OAAS,EAAA;AAAA,OACX;AAAA,MACA,YAAY;AAAC,KACd,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,mBAAmB,OAAwC,EAAA;AAChE,IAAA,IAAA,CAAK,WAAW,IAAK,CAAA;AAAA,MACnB,OAAS,EAAA;AAAA,QACP,IAAI,cAAe,CAAA,OAAA;AAAA,QACnB;AAAA,OACF;AAAA,MACA,YAAY;AAAC,KACd,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,qBAAqB,KAAqB,EAAA;AAC/C,IAAA,OAAO,IAAK,CAAA,kBAAA,CAAmB,qBAAsB,CAAA,KAAK,CAAC,CAAA;AAAA;AAC7D,EAEO,yBAAA,CAAqE,IAAO,KAAmB,EAAA;AACpG,IAAA,MAAM,GAAM,GAAA,CAAA,OAAA,EAAU,MAAO,CAAA,EAAE,CAAC,CAAA,CAAA;AAChC,IAAA,MAAM,OAAO,IAAK,CAAA,UAAA,CAAW,IAAK,CAAA,UAAA,CAAW,SAAS,CAAC,CAAA;AACvD,IAAA,IAAA,CAAK,WAAW,IAAK,CAAA,EAAE,EAAI,EAAA,GAAA,EAAK,OAAO,CAAA;AACvC,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAQ,GAAA;AACb,IAAA,OAAO,IAAK,CAAA,UAAA;AAAA;AAEhB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelOptionsBuilder.js","sources":["../../../../../../../src/core/PanelBuilders/PanelOptionsBuilder.ts"],"sourcesContent":["import { cloneDeep, merge } from 'lodash';\nimport { DeepPartial } from '../types';\n\nexport class PanelOptionsBuilder<TOptions extends {} = {}> {\n private _options: DeepPartial<TOptions> = {};\n\n public constructor(private defaultOptions?: () => Partial<TOptions>) {\n this.setDefaults();\n }\n\n private setDefaults() {\n this._options = this.defaultOptions ? cloneDeep(this.defaultOptions()) : ({} as TOptions);\n }\n\n /**\n * Set an individual panel option. This will merge the value with the existing options.\n */\n public setOption<T extends TOptions, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this {\n this._options = merge(this._options, { [id]: value });\n return this;\n }\n\n public build() {\n return this._options;\n }\n}\n"],"names":[],"mappings":";;AAGO,MAAM,mBAA8C,CAAA;AAAA,EAGlD,YAAoB,cAA0C,EAAA;AAA1C,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA;AAF3B,IAAA,IAAA,CAAQ,WAAkC,EAAC;AAGzC,IAAA,IAAA,CAAK,WAAY,EAAA;AAAA;AACnB,EAEQ,WAAc,GAAA;AACpB,IAAK,IAAA,CAAA,QAAA,GAAW,KAAK,cAAiB,GAAA,SAAA,CAAU,KAAK,cAAe,EAAC,IAAK,EAAC;AAAA;AAC7E;AAAA;AAAA;AAAA,EAKO,SAAA,CAAiD,IAAO,KAAgC,EAAA;AAC7F,IAAK,IAAA,CAAA,QAAA,GAAW,MAAM,IAAK,CAAA,QAAA,EAAU,EAAE,CAAC,EAAE,GAAG,KAAA,EAAO,CAAA;AACpD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAQ,GAAA;AACb,IAAA,OAAO,IAAK,CAAA,QAAA;AAAA;AAEhB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelOptionsBuilders.js","sources":["../../../../../../../src/core/PanelBuilders/PanelOptionsBuilders.ts"],"sourcesContent":["import {\n Options as BarChartOptions,\n defaultOptions as defaultBarChartOptions,\n} from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';\nimport {\n Options as BarGaugeOptions,\n defaultOptions as defaultBarGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/bargauge/panelcfg/x/BarGaugePanelCfg_types.gen';\nimport {\n Options as DataGridOptions,\n defaultOptions as defaultDataGridOptions,\n} from '@grafana/schema/dist/esm/raw/composable/datagrid/panelcfg/x/DatagridPanelCfg_types.gen';\nimport {\n Options as GaugeOptions,\n defaultOptions as defaultGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/gauge/panelcfg/x/GaugePanelCfg_types.gen';\nimport {\n Options as GeomapOptions,\n defaultOptions as defaultGeomapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/geomap/panelcfg/x/GeomapPanelCfg_types.gen';\nimport {\n Options as HeatmapOptions,\n defaultOptions as defaultHeatmapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/heatmap/panelcfg/x/HeatmapPanelCfg_types.gen';\nimport {\n Options as HistogramOptions,\n defaultOptions as defaultHistogramOptions,\n} from '@grafana/schema/dist/esm/raw/composable/histogram/panelcfg/x/HistogramPanelCfg_types.gen';\nimport { Options as LogsOptions } from '@grafana/schema/dist/esm/raw/composable/logs/panelcfg/x/LogsPanelCfg_types.gen';\nimport {\n Options as NewsOptions,\n defaultOptions as defaultNewsOptions,\n} from '@grafana/schema/dist/esm/raw/composable/news/panelcfg/x/NewsPanelCfg_types.gen';\nimport { Options as NodeGraphOptions } from '@grafana/schema/dist/esm/raw/composable/nodegraph/panelcfg/x/NodeGraphPanelCfg_types.gen';\nimport {\n Options as PieChartOptions,\n defaultOptions as defaultPieChartOptions,\n} from '@grafana/schema/dist/esm/raw/composable/piechart/panelcfg/x/PieChartPanelCfg_types.gen';\nimport {\n Options as StatOptions,\n defaultOptions as defaultStatOptions,\n} from '@grafana/schema/dist/esm/raw/composable/stat/panelcfg/x/StatPanelCfg_types.gen';\nimport {\n Options as StateTimelineOptions,\n defaultOptions as defaultStateTimelineOptions,\n} from '@grafana/schema/dist/esm/raw/composable/statetimeline/panelcfg/x/StateTimelinePanelCfg_types.gen';\nimport {\n Options as StatusHistoryOptions,\n defaultOptions as defaultStatusHistoryOptions,\n} from '@grafana/schema/dist/esm/raw/composable/statushistory/panelcfg/x/StatusHistoryPanelCfg_types.gen';\nimport {\n Options as TableOptions,\n defaultOptions as defaultTableOptions,\n} from '@grafana/schema/dist/esm/raw/composable/table/panelcfg/x/TablePanelCfg_types.gen';\nimport {\n Options as TextOptions,\n defaultOptions as defaultTextOptions,\n} from '@grafana/schema/dist/esm/raw/composable/text/panelcfg/x/TextPanelCfg_types.gen';\nimport { Options as TimeSeriesOptions } from '@grafana/schema/dist/esm/raw/composable/timeseries/panelcfg/x/TimeSeriesPanelCfg_types.gen';\nimport { Options as TrendOptions } from '@grafana/schema/dist/esm/raw/composable/trend/panelcfg/x/TrendPanelCfg_types.gen';\nimport {\n Options as XYChartOptions,\n defaultOptions as defaultXYChartOptions,\n} from '@grafana/schema/dist/esm/raw/composable/xychart/panelcfg/x/XYChartPanelCfg_types.gen';\n\nimport { PanelOptionsBuilder } from './PanelOptionsBuilder';\n\nexport const PanelOptionsBuilders = {\n barchart() {\n return new PanelOptionsBuilder<BarChartOptions>(() => defaultBarChartOptions);\n },\n bargauge() {\n return new PanelOptionsBuilder<BarGaugeOptions>(() => defaultBarGaugeOptions);\n },\n datagrid() {\n return new PanelOptionsBuilder<DataGridOptions>(() => defaultDataGridOptions);\n },\n flamegraph() {\n return new PanelOptionsBuilder<{}>();\n },\n gauge() {\n return new PanelOptionsBuilder<GaugeOptions>(() => defaultGaugeOptions);\n },\n geomap() {\n return new PanelOptionsBuilder<GeomapOptions>(() => defaultGeomapOptions);\n },\n heatmap() {\n return new PanelOptionsBuilder<HeatmapOptions>(() => defaultHeatmapOptions);\n },\n histogram() {\n return new PanelOptionsBuilder<HistogramOptions>(() => defaultHistogramOptions);\n },\n logs() {\n return new PanelOptionsBuilder<LogsOptions>();\n },\n news() {\n return new PanelOptionsBuilder<NewsOptions>(() => defaultNewsOptions);\n },\n nodegraph() {\n return new PanelOptionsBuilder<NodeGraphOptions>();\n },\n piechart() {\n return new PanelOptionsBuilder<PieChartOptions>(() => defaultPieChartOptions);\n },\n stat() {\n return new PanelOptionsBuilder<StatOptions>(() => defaultStatOptions);\n },\n statetimeline() {\n return new PanelOptionsBuilder<StateTimelineOptions>(() => defaultStateTimelineOptions);\n },\n statushistory() {\n return new PanelOptionsBuilder<StatusHistoryOptions>(() => defaultStatusHistoryOptions);\n },\n table() {\n return new PanelOptionsBuilder<TableOptions>(() => defaultTableOptions);\n },\n text() {\n return new PanelOptionsBuilder<TextOptions>(() => defaultTextOptions);\n },\n timeseries() {\n return new PanelOptionsBuilder<TimeSeriesOptions>();\n },\n trend() {\n return new PanelOptionsBuilder<{}>();\n },\n traces() {\n return new PanelOptionsBuilder<TrendOptions>();\n },\n xychart() {\n return new PanelOptionsBuilder<XYChartOptions>(() => defaultXYChartOptions);\n },\n};\n"],"names":["defaultBarChartOptions","defaultBarGaugeOptions","defaultDataGridOptions","defaultGaugeOptions","defaultGeomapOptions","defaultHeatmapOptions","defaultHistogramOptions","defaultNewsOptions","defaultPieChartOptions","defaultStatOptions","defaultStateTimelineOptions","defaultStatusHistoryOptions","defaultTableOptions","defaultTextOptions","defaultXYChartOptions"],"mappings":";;;;;;;;;;;;;;;;;AAmEO,MAAM,oBAAuB,GAAA;AAAA,EAClC,QAAW,GAAA;AACT,IAAO,OAAA,IAAI,mBAAqC,CAAA,MAAMA,gBAAsB,CAAA;AAAA,GAC9E;AAAA,EACA,QAAW,GAAA;AACT,IAAO,OAAA,IAAI,mBAAqC,CAAA,MAAMC,gBAAsB,CAAA;AAAA,GAC9E;AAAA,EACA,QAAW,GAAA;AACT,IAAO,OAAA,IAAI,mBAAqC,CAAA,MAAMC,gBAAsB,CAAA;AAAA,GAC9E;AAAA,EACA,UAAa,GAAA;AACX,IAAA,OAAO,IAAI,mBAAwB,EAAA;AAAA,GACrC;AAAA,EACA,KAAQ,GAAA;AACN,IAAO,OAAA,IAAI,mBAAkC,CAAA,MAAMC,gBAAmB,CAAA;AAAA,GACxE;AAAA,EACA,MAAS,GAAA;AACP,IAAO,OAAA,IAAI,mBAAmC,CAAA,MAAMC,gBAAoB,CAAA;AAAA,GAC1E;AAAA,EACA,OAAU,GAAA;AACR,IAAO,OAAA,IAAI,mBAAoC,CAAA,MAAMC,gBAAqB,CAAA;AAAA,GAC5E;AAAA,EACA,SAAY,GAAA;AACV,IAAO,OAAA,IAAI,mBAAsC,CAAA,MAAMC,gBAAuB,CAAA;AAAA,GAChF;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,mBAAiC,EAAA;AAAA,GAC9C;AAAA,EACA,IAAO,GAAA;AACL,IAAO,OAAA,IAAI,mBAAiC,CAAA,MAAMC,gBAAkB,CAAA;AAAA,GACtE;AAAA,EACA,SAAY,GAAA;AACV,IAAA,OAAO,IAAI,mBAAsC,EAAA;AAAA,GACnD;AAAA,EACA,QAAW,GAAA;AACT,IAAO,OAAA,IAAI,mBAAqC,CAAA,MAAMC,gBAAsB,CAAA;AAAA,GAC9E;AAAA,EACA,IAAO,GAAA;AACL,IAAO,OAAA,IAAI,mBAAiC,CAAA,MAAMC,gBAAkB,CAAA;AAAA,GACtE;AAAA,EACA,aAAgB,GAAA;AACd,IAAO,OAAA,IAAI,mBAA0C,CAAA,MAAMC,gBAA2B,CAAA;AAAA,GACxF;AAAA,EACA,aAAgB,GAAA;AACd,IAAO,OAAA,IAAI,mBAA0C,CAAA,MAAMC,gBAA2B,CAAA;AAAA,GACxF;AAAA,EACA,KAAQ,GAAA;AACN,IAAO,OAAA,IAAI,mBAAkC,CAAA,MAAMC,gBAAmB,CAAA;AAAA,GACxE;AAAA,EACA,IAAO,GAAA;AACL,IAAO,OAAA,IAAI,mBAAiC,CAAA,MAAMC,gBAAkB,CAAA;AAAA,GACtE;AAAA,EACA,UAAa,GAAA;AACX,IAAA,OAAO,IAAI,mBAAuC,EAAA;AAAA,GACpD;AAAA,EACA,KAAQ,GAAA;AACN,IAAA,OAAO,IAAI,mBAAwB,EAAA;AAAA,GACrC;AAAA,EACA,MAAS,GAAA;AACP,IAAA,OAAO,IAAI,mBAAkC,EAAA;AAAA,GAC/C;AAAA,EACA,OAAU,GAAA;AACR,IAAO,OAAA,IAAI,mBAAoC,CAAA,MAAMC,cAAqB,CAAA;AAAA;AAE9E;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StandardFieldConfigBuilders.js","sources":["../../../../../../../src/core/PanelBuilders/StandardFieldConfigBuilders.ts"],"sourcesContent":["import { MatcherConfig } from '@grafana/schema';\nimport { StandardFieldConfig, StandardFieldConfigInterface } from './types';\n\n// Base class for standard field config overrides builder methods\nexport class StandardFieldConfigOverridesBuilder<T extends StandardFieldConfigOverridesBuilder<T>>\n implements StandardFieldConfigInterface<StandardFieldConfig, T, 'override'>\n{\n protected _overrides: Array<{ matcher: MatcherConfig; properties: Array<{ id: string; value: unknown }> }> = [];\n\n public overrideColor(value: StandardFieldConfig['color']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'color', value });\n return this as unknown as T;\n }\n\n public overrideDecimals(value: StandardFieldConfig['decimals']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'decimals', value });\n return this as unknown as T;\n }\n\n public overrideDisplayName(value: StandardFieldConfig['displayName']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'displayName', value });\n return this as unknown as T;\n }\n\n public overrideFilterable(value: StandardFieldConfig['filterable']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'filterable', value });\n return this as unknown as T;\n }\n\n public overrideLinks(value: StandardFieldConfig['links']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'links', value });\n return this as unknown as T;\n }\n\n public overrideMappings(value: StandardFieldConfig['mappings']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'mappings', value });\n return this as unknown as T;\n }\n\n public overrideMax(value: StandardFieldConfig['max']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'max', value });\n return this as unknown as T;\n }\n\n public overrideMin(value: StandardFieldConfig['min']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'min', value });\n return this as unknown as T;\n }\n\n public overrideNoValue(value: StandardFieldConfig['noValue']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'noValue', value });\n return this as unknown as T;\n }\n\n public overrideThresholds(value: StandardFieldConfig['thresholds']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'thresholds', value });\n return this as unknown as T;\n }\n\n public overrideUnit(value: StandardFieldConfig['unit']): T {\n this._overrides[this._overrides.length - 1].properties.push({ id: 'unit', value });\n return this as unknown as T;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VizConfigBuilder.js","sources":["../../../../../../../src/core/PanelBuilders/VizConfigBuilder.ts"],"sourcesContent":["import { DeepPartial } from '../types';\nimport { FieldConfigBuilder } from './FieldConfigBuilder';\nimport { FieldConfigOverridesBuilder } from './FieldConfigOverridesBuilder';\nimport { PanelOptionsBuilder } from './PanelOptionsBuilder';\nimport { StandardFieldConfig, StandardFieldConfigInterface, VizConfig } from './types';\n\nexport class VizConfigBuilder<TOptions extends {}, TFieldConfig extends {}>\n implements StandardFieldConfigInterface<StandardFieldConfig, VizConfigBuilder<TOptions, TFieldConfig>, 'set'>\n{\n private _fieldConfigBuilder: FieldConfigBuilder<TFieldConfig>;\n private _panelOptionsBuilder: PanelOptionsBuilder<TOptions>;\n private _pluginId: string;\n private _pluginVersion: string;\n\n public constructor(\n pluginId: string,\n pluginVersion: string,\n defaultOptions?: () => Partial<TOptions>,\n defaultFieldConfig?: () => TFieldConfig\n ) {\n this._pluginId = pluginId;\n this._pluginVersion = pluginVersion;\n this._fieldConfigBuilder = new FieldConfigBuilder(defaultFieldConfig);\n this._panelOptionsBuilder = new PanelOptionsBuilder(defaultOptions);\n }\n\n /**\n * Set color.\n */\n public setColor(color: StandardFieldConfig['color']): this {\n this._fieldConfigBuilder.setColor(color);\n return this;\n }\n\n /**\n * Set number of decimals to show.\n */\n public setDecimals(decimals: StandardFieldConfig['decimals']): this {\n this._fieldConfigBuilder.setDecimals(decimals);\n return this;\n }\n\n /**\n * Set field display name.\n */\n public setDisplayName(displayName: StandardFieldConfig['displayName']): this {\n this._fieldConfigBuilder.setDisplayName(displayName);\n return this;\n }\n\n /**\n * Set the standard field config property filterable.\n */\n public setFilterable(filterable: StandardFieldConfig['filterable']): this {\n this._fieldConfigBuilder.setFilterable(filterable);\n return this;\n }\n\n /**\n * Set data links.\n */\n public setLinks(links: StandardFieldConfig['links']): this {\n this._fieldConfigBuilder.setLinks(links);\n return this;\n }\n\n /**\n * Set value mappings.\n */\n public setMappings(mappings: StandardFieldConfig['mappings']): this {\n this._fieldConfigBuilder.setMappings(mappings);\n return this;\n }\n\n /**\n * Set the standard field config property max.\n */\n public setMax(max: StandardFieldConfig['max']): this {\n this._fieldConfigBuilder.setMax(max);\n return this;\n }\n\n /**\n * Set the standard field config property min.\n */\n public setMin(min: StandardFieldConfig['min']): this {\n this._fieldConfigBuilder.setMin(min);\n return this;\n }\n\n /**\n * Set the standard field config property noValue.\n */\n public setNoValue(noValue: StandardFieldConfig['noValue']): this {\n this._fieldConfigBuilder.setNoValue(noValue);\n return this;\n }\n\n /**\n * Set the standard field config property thresholds.\n */\n public setThresholds(thresholds: StandardFieldConfig['thresholds']): this {\n this._fieldConfigBuilder.setThresholds(thresholds);\n return this;\n }\n\n /**\n * Set the standard field config property unit.\n */\n public setUnit(unit: StandardFieldConfig['unit']): this {\n this._fieldConfigBuilder.setUnit(unit);\n return this;\n }\n\n public setCustomFieldConfig<T extends TFieldConfig, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this {\n this._fieldConfigBuilder.setCustomFieldConfig(id, value);\n return this;\n }\n\n public setOverrides(builder: (b: FieldConfigOverridesBuilder<TFieldConfig>) => void): this {\n this._fieldConfigBuilder.setOverrides(builder);\n return this;\n }\n\n /**\n * Set an individual panel option. This will merge the value with the existing options.\n */\n public setOption<T extends TOptions, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this {\n this._panelOptionsBuilder.setOption(id, value);\n return this;\n }\n\n /**\n * Build the panel.\n */\n public build(): VizConfig<TOptions, TFieldConfig> {\n return {\n pluginId: this._pluginId,\n pluginVersion: this._pluginVersion,\n options: this._panelOptionsBuilder.build(),\n fieldConfig: this._fieldConfigBuilder.build(),\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VizConfigBuilders.js","sources":["../../../../../../../src/core/PanelBuilders/VizConfigBuilders.ts"],"sourcesContent":["import { TableFieldOptions as TableFieldConfig } from '@grafana/schema';\n\nimport {\n Options as BarChartOptions,\n FieldConfig as BarChartFieldConfig,\n defaultOptions as defaultBarChartOptions,\n defaultFieldConfig as defaultBarChartFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';\nimport {\n Options as BarGaugeOptions,\n defaultOptions as defaultBarGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/bargauge/panelcfg/x/BarGaugePanelCfg_types.gen';\nimport {\n Options as DataGridOptions,\n defaultOptions as defaultDataGridOptions,\n} from '@grafana/schema/dist/esm/raw/composable/datagrid/panelcfg/x/DatagridPanelCfg_types.gen';\nimport {\n Options as GaugeOptions,\n defaultOptions as defaultGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/gauge/panelcfg/x/GaugePanelCfg_types.gen';\nimport {\n Options as GeomapOptions,\n defaultOptions as defaultGeomapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/geomap/panelcfg/x/GeomapPanelCfg_types.gen';\nimport {\n Options as HeatmapOptions,\n FieldConfig as HeatmapFieldConfig,\n defaultOptions as defaultHeatmapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/heatmap/panelcfg/x/HeatmapPanelCfg_types.gen';\nimport {\n Options as HistogramOptions,\n FieldConfig as HistogramFieldConfig,\n defaultOptions as defaultHistogramOptions,\n defaultFieldConfig as defaultHistogramFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/histogram/panelcfg/x/HistogramPanelCfg_types.gen';\nimport { Options as LogsOptions } from '@grafana/schema/dist/esm/raw/composable/logs/panelcfg/x/LogsPanelCfg_types.gen';\nimport {\n Options as NewsOptions,\n defaultOptions as defaultNewsOptions,\n} from '@grafana/schema/dist/esm/raw/composable/news/panelcfg/x/NewsPanelCfg_types.gen';\nimport { Options as NodeGraphOptions } from '@grafana/schema/dist/esm/raw/composable/nodegraph/panelcfg/x/NodeGraphPanelCfg_types.gen';\nimport {\n Options as PieChartOptions,\n FieldConfig as PieChartFieldConfig,\n defaultOptions as defaultPieChartOptions,\n} from '@grafana/schema/dist/esm/raw/composable/piechart/panelcfg/x/PieChartPanelCfg_types.gen';\nimport {\n Options as StatOptions,\n defaultOptions as defaultStatOptions,\n} from '@grafana/schema/dist/esm/raw/composable/stat/panelcfg/x/StatPanelCfg_types.gen';\nimport {\n Options as StateTimelineOptions,\n FieldConfig as StateTimelineFieldConfig,\n defaultOptions as defaultStateTimelineOptions,\n defaultFieldConfig as defaultStateTimelineFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statetimeline/panelcfg/x/StateTimelinePanelCfg_types.gen';\nimport {\n Options as StatusHistoryOptions,\n FieldConfig as StatusHistoryFieldConfig,\n defaultOptions as defaultStatusHistoryOptions,\n defaultFieldConfig as defaultStatusHistoryFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statushistory/panelcfg/x/StatusHistoryPanelCfg_types.gen';\nimport {\n Options as TableOptions,\n defaultOptions as defaultTableOptions,\n} from '@grafana/schema/dist/esm/raw/composable/table/panelcfg/x/TablePanelCfg_types.gen';\nimport {\n Options as TextOptions,\n defaultOptions as defaultTextOptions,\n} from '@grafana/schema/dist/esm/raw/composable/text/panelcfg/x/TextPanelCfg_types.gen';\nimport {\n Options as TimeSeriesOptions,\n FieldConfig as TimeSeriesFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/timeseries/panelcfg/x/TimeSeriesPanelCfg_types.gen';\nimport {\n Options as TrendOptions,\n FieldConfig as TrendFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/trend/panelcfg/x/TrendPanelCfg_types.gen';\nimport {\n Options as XYChartOptions,\n defaultOptions as defaultXYChartOptions,\n defaultFieldConfig as defaultXYChartFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/xychart/panelcfg/x/XYChartPanelCfg_types.gen';\n\nimport { VizConfigBuilder } from './VizConfigBuilder';\n\nexport const VizConfigBuilders = {\n barchart() {\n return new VizConfigBuilder<BarChartOptions, BarChartFieldConfig>(\n 'barchart',\n '10.0.0',\n () => defaultBarChartOptions,\n () => defaultBarChartFieldConfig\n );\n },\n bargauge() {\n return new VizConfigBuilder<BarGaugeOptions, {}>('bargauge', '10.0.0', () => defaultBarGaugeOptions);\n },\n datagrid() {\n return new VizConfigBuilder<DataGridOptions, {}>('datagrid', '10.0.0', () => defaultDataGridOptions);\n },\n flamegraph() {\n return new VizConfigBuilder<{}, {}>('flamegraph', '10.0.0');\n },\n gauge() {\n return new VizConfigBuilder<GaugeOptions, {}>('gauge', '10.0.0', () => defaultGaugeOptions);\n },\n geomap() {\n return new VizConfigBuilder<GeomapOptions, {}>('geomap', '10.0.0', () => defaultGeomapOptions);\n },\n heatmap() {\n return new VizConfigBuilder<HeatmapOptions, HeatmapFieldConfig>('heatmap', '10.0.0', () => defaultHeatmapOptions);\n },\n histogram() {\n return new VizConfigBuilder<HistogramOptions, HistogramFieldConfig>(\n 'histogram',\n '10.0.0',\n () => defaultHistogramOptions,\n () => defaultHistogramFieldConfig\n );\n },\n logs() {\n return new VizConfigBuilder<LogsOptions, {}>('logs', '10.0.0');\n },\n news() {\n return new VizConfigBuilder<NewsOptions, {}>('news', '10.0.0', () => defaultNewsOptions);\n },\n nodegraph() {\n return new VizConfigBuilder<NodeGraphOptions, {}>('nodeGraph', '10.0.0');\n },\n piechart() {\n return new VizConfigBuilder<PieChartOptions, PieChartFieldConfig>(\n 'piechart',\n '10.0.0',\n () => defaultPieChartOptions\n );\n },\n stat() {\n return new VizConfigBuilder<StatOptions, {}>('stat', '10.0.0', () => defaultStatOptions);\n },\n statetimeline() {\n return new VizConfigBuilder<StateTimelineOptions, StateTimelineFieldConfig>(\n 'state-timeline',\n '10.0.0',\n () => defaultStateTimelineOptions,\n () => defaultStateTimelineFieldConfig\n );\n },\n statushistory() {\n return new VizConfigBuilder<StatusHistoryOptions, StatusHistoryFieldConfig>(\n 'status-history',\n '10.0.0',\n () => defaultStatusHistoryOptions,\n () => defaultStatusHistoryFieldConfig\n );\n },\n table() {\n return new VizConfigBuilder<TableOptions, TableFieldConfig>('table', '10.0.0', () => defaultTableOptions);\n },\n text() {\n return new VizConfigBuilder<TextOptions, {}>('text', '10.0.0', () => defaultTextOptions);\n },\n timeseries() {\n return new VizConfigBuilder<TimeSeriesOptions, TimeSeriesFieldConfig>('timeseries', '10.0.0');\n },\n trend() {\n return new VizConfigBuilder<{}, {}>('trend', '10.0.0');\n },\n traces() {\n return new VizConfigBuilder<TrendOptions, TrendFieldConfig>('traces', '10.0.0');\n },\n xychart() {\n return new VizConfigBuilder<XYChartOptions, {}>(\n 'xychart',\n '10.0.0',\n () => defaultXYChartOptions,\n () => defaultXYChartFieldConfig\n );\n },\n};\n"],"names":["defaultBarChartOptions","defaultBarChartFieldConfig","defaultBarGaugeOptions","defaultDataGridOptions","defaultGaugeOptions","defaultGeomapOptions","defaultHeatmapOptions","defaultHistogramOptions","defaultHistogramFieldConfig","defaultNewsOptions","defaultPieChartOptions","defaultStatOptions","defaultStateTimelineOptions","defaultStateTimelineFieldConfig","defaultStatusHistoryOptions","defaultStatusHistoryFieldConfig","defaultTableOptions","defaultTextOptions","defaultXYChartOptions","defaultXYChartFieldConfig"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VizPanelBuilder.js","sources":["../../../../../../../src/core/PanelBuilders/VizPanelBuilder.ts"],"sourcesContent":["import { VizPanel, VizPanelState } from '../../components/VizPanel/VizPanel';\nimport { DeepPartial } from '../types';\nimport { FieldConfigBuilder } from './FieldConfigBuilder';\nimport { FieldConfigOverridesBuilder } from './FieldConfigOverridesBuilder';\nimport { PanelOptionsBuilder } from './PanelOptionsBuilder';\nimport { StandardFieldConfig, StandardFieldConfigInterface } from './types';\n\nexport class VizPanelBuilder<TOptions extends {}, TFieldConfig extends {}>\n implements StandardFieldConfigInterface<StandardFieldConfig, VizPanelBuilder<TOptions, TFieldConfig>, 'set'>\n{\n private _state: VizPanelState<TOptions, TFieldConfig> = {} as VizPanelState<TOptions, TFieldConfig>;\n private _fieldConfigBuilder: FieldConfigBuilder<TFieldConfig>;\n private _panelOptionsBuilder: PanelOptionsBuilder<TOptions>;\n\n public constructor(\n pluginId: string,\n pluginVersion: string,\n defaultOptions?: () => Partial<TOptions>,\n defaultFieldConfig?: () => TFieldConfig\n ) {\n this._state.title = '';\n this._state.description = '';\n this._state.displayMode = 'default';\n this._state.hoverHeader = false;\n this._state.pluginId = pluginId;\n this._state.pluginVersion = pluginVersion;\n\n this._fieldConfigBuilder = new FieldConfigBuilder(defaultFieldConfig);\n this._panelOptionsBuilder = new PanelOptionsBuilder(defaultOptions);\n }\n\n /**\n * Set panel title.\n */\n public setTitle(title: VizPanelState['title']): this {\n this._state.title = title;\n return this;\n }\n\n /**\n * Set panel description.\n */\n public setDescription(description: VizPanelState['description']): this {\n this._state.description = description;\n return this;\n }\n\n /**\n * Set panel display mode.\n */\n public setDisplayMode(displayMode: VizPanelState['displayMode']): this {\n this._state.displayMode = displayMode;\n return this;\n }\n\n /**\n * Set if panel header should be shown on hover.\n */\n public setHoverHeader(hoverHeader: VizPanelState['hoverHeader']): this {\n this._state.hoverHeader = hoverHeader;\n return this;\n }\n\n /**\n * Set if VizPanelMenu \"kebab\" icon is shown on panel hover for desktop devices. Set true to always show menu icon.\n * @param showMenuAlways\n */\n public setShowMenuAlways(showMenuAlways: VizPanelState['showMenuAlways']): this {\n this._state.showMenuAlways = showMenuAlways;\n return this;\n }\n\n /**\n * Set panel menu scene object.\n */\n public setMenu(menu: VizPanelState['menu']): this {\n this._state.menu = menu;\n return this;\n }\n\n /**\n * Set scene object or react component to use as panel header actions.\n */\n public setHeaderActions(headerActions: VizPanelState['headerActions']): this {\n this._state.headerActions = headerActions;\n return this;\n }\n\n public setCollapsible(collapsible: VizPanelState['collapsible']): this {\n this._state.collapsible = collapsible;\n return this;\n }\n public setCollapsed(collapsed: VizPanelState['collapsed']): this {\n this._state.collapsed = collapsed;\n return this;\n }\n\n /**\n * Set color.\n */\n public setColor(color: StandardFieldConfig['color']): this {\n this._fieldConfigBuilder.setColor(color);\n return this;\n }\n\n /**\n * Set number of decimals to show.\n */\n public setDecimals(decimals: StandardFieldConfig['decimals']): this {\n this._fieldConfigBuilder.setDecimals(decimals);\n return this;\n }\n\n /**\n * Set field display name.\n */\n public setDisplayName(displayName: StandardFieldConfig['displayName']): this {\n this._fieldConfigBuilder.setDisplayName(displayName);\n return this;\n }\n\n /**\n * Set the standard field config property filterable.\n */\n public setFilterable(filterable: StandardFieldConfig['filterable']): this {\n this._fieldConfigBuilder.setFilterable(filterable);\n return this;\n }\n\n /**\n * Set data links.\n */\n public setLinks(links: StandardFieldConfig['links']): this {\n this._fieldConfigBuilder.setLinks(links);\n return this;\n }\n\n /**\n * Set value mappings.\n */\n public setMappings(mappings: StandardFieldConfig['mappings']): this {\n this._fieldConfigBuilder.setMappings(mappings);\n return this;\n }\n\n /**\n * Set the standard field config property max.\n */\n public setMax(max: StandardFieldConfig['max']): this {\n this._fieldConfigBuilder.setMax(max);\n return this;\n }\n\n /**\n * Set the standard field config property min.\n */\n public setMin(min: StandardFieldConfig['min']): this {\n this._fieldConfigBuilder.setMin(min);\n return this;\n }\n\n /**\n * Set the standard field config property noValue.\n */\n public setNoValue(noValue: StandardFieldConfig['noValue']): this {\n this._fieldConfigBuilder.setNoValue(noValue);\n return this;\n }\n\n /**\n * Set the standard field config property thresholds.\n */\n public setThresholds(thresholds: StandardFieldConfig['thresholds']): this {\n this._fieldConfigBuilder.setThresholds(thresholds);\n return this;\n }\n\n /**\n * Set the standard field config property unit.\n */\n public setUnit(unit: StandardFieldConfig['unit']): this {\n this._fieldConfigBuilder.setUnit(unit);\n return this;\n }\n\n public setCustomFieldConfig<T extends TFieldConfig, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this {\n this._fieldConfigBuilder.setCustomFieldConfig(id, value);\n return this;\n }\n\n public setOverrides(builder: (b: FieldConfigOverridesBuilder<TFieldConfig>) => void): this {\n this._fieldConfigBuilder.setOverrides(builder);\n return this;\n }\n\n /**\n * Set an individual panel option. This will merge the value with the existing options.\n */\n public setOption<T extends TOptions, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this {\n this._panelOptionsBuilder.setOption(id, value);\n return this;\n }\n\n /**\n * Set data provider for the panel.\n */\n public setData(data: VizPanelState['$data']): this {\n this._state.$data = data;\n return this;\n }\n\n /**\n * Set time range for the panel.\n */\n public setTimeRange(timeRange: VizPanelState['$timeRange']): this {\n this._state.$timeRange = timeRange;\n return this;\n }\n\n /**\n * Set variables for the panel.\n */\n public setVariables(variables: VizPanelState['$variables']): this {\n this._state.$variables = variables;\n return this;\n }\n\n /**\n * Set behaviors for the panel.\n */\n public setBehaviors(behaviors: VizPanelState['$behaviors']): this {\n this._state.$behaviors = behaviors;\n return this;\n }\n\n /**\n * Sets the default series limit for the panel.\n */\n public setSeriesLimit(seriesLimit: VizPanelState['seriesLimit']): this {\n this._state.seriesLimit = seriesLimit;\n return this;\n }\n\n /**\n * Makes it possible to shared config between different builders\n */\n public applyMixin(mixin: (builder: this) => void): this {\n mixin(this);\n return this;\n }\n\n /**\n * Build the panel.\n */\n public build() {\n const panel = new VizPanel<TOptions, TFieldConfig>({\n ...this._state,\n options: this._panelOptionsBuilder.build(),\n fieldConfig: this._fieldConfigBuilder.build(),\n });\n\n return panel;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../src/core/PanelBuilders/index.ts"],"sourcesContent":["import { TableFieldOptions as TableFieldConfig } from '@grafana/schema';\n\nimport {\n Options as BarChartOptions,\n FieldConfig as BarChartFieldConfig,\n defaultOptions as defaultBarChartOptions,\n defaultFieldConfig as defaultBarChartFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';\nimport {\n Options as BarGaugeOptions,\n defaultOptions as defaultBarGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/bargauge/panelcfg/x/BarGaugePanelCfg_types.gen';\nimport {\n Options as DataGridOptions,\n defaultOptions as defaultDataGridOptions,\n} from '@grafana/schema/dist/esm/raw/composable/datagrid/panelcfg/x/DatagridPanelCfg_types.gen';\nimport {\n Options as GaugeOptions,\n defaultOptions as defaultGaugeOptions,\n} from '@grafana/schema/dist/esm/raw/composable/gauge/panelcfg/x/GaugePanelCfg_types.gen';\nimport {\n Options as GeomapOptions,\n defaultOptions as defaultGeomapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/geomap/panelcfg/x/GeomapPanelCfg_types.gen';\nimport {\n Options as HeatmapOptions,\n FieldConfig as HeatmapFieldConfig,\n defaultOptions as defaultHeatmapOptions,\n} from '@grafana/schema/dist/esm/raw/composable/heatmap/panelcfg/x/HeatmapPanelCfg_types.gen';\nimport {\n Options as HistogramOptions,\n FieldConfig as HistogramFieldConfig,\n defaultOptions as defaultHistogramOptions,\n defaultFieldConfig as defaultHistogramFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/histogram/panelcfg/x/HistogramPanelCfg_types.gen';\nimport { Options as LogsOptions } from '@grafana/schema/dist/esm/raw/composable/logs/panelcfg/x/LogsPanelCfg_types.gen';\nimport {\n Options as NewsOptions,\n defaultOptions as defaultNewsOptions,\n} from '@grafana/schema/dist/esm/raw/composable/news/panelcfg/x/NewsPanelCfg_types.gen';\nimport { Options as NodeGraphOptions } from '@grafana/schema/dist/esm/raw/composable/nodegraph/panelcfg/x/NodeGraphPanelCfg_types.gen';\nimport {\n Options as PieChartOptions,\n FieldConfig as PieChartFieldConfig,\n defaultOptions as defaultPieChartOptions,\n} from '@grafana/schema/dist/esm/raw/composable/piechart/panelcfg/x/PieChartPanelCfg_types.gen';\nimport {\n Options as StatOptions,\n defaultOptions as defaultStatOptions,\n} from '@grafana/schema/dist/esm/raw/composable/stat/panelcfg/x/StatPanelCfg_types.gen';\nimport {\n Options as StateTimelineOptions,\n FieldConfig as StateTimelineFieldConfig,\n defaultOptions as defaultStateTimelineOptions,\n defaultFieldConfig as defaultStateTimelineFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statetimeline/panelcfg/x/StateTimelinePanelCfg_types.gen';\nimport {\n Options as StatusHistoryOptions,\n FieldConfig as StatusHistoryFieldConfig,\n defaultOptions as defaultStatusHistoryOptions,\n defaultFieldConfig as defaultStatusHistoryFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/statushistory/panelcfg/x/StatusHistoryPanelCfg_types.gen';\nimport {\n Options as TableOptions,\n defaultOptions as defaultTableOptions,\n} from '@grafana/schema/dist/esm/raw/composable/table/panelcfg/x/TablePanelCfg_types.gen';\nimport {\n Options as TextOptions,\n defaultOptions as defaultTextOptions,\n} from '@grafana/schema/dist/esm/raw/composable/text/panelcfg/x/TextPanelCfg_types.gen';\nimport {\n Options as TimeSeriesOptions,\n FieldConfig as TimeSeriesFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/timeseries/panelcfg/x/TimeSeriesPanelCfg_types.gen';\nimport {\n Options as TrendOptions,\n FieldConfig as TrendFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/trend/panelcfg/x/TrendPanelCfg_types.gen';\nimport {\n Options as XYChartOptions,\n defaultOptions as defaultXYChartOptions,\n defaultFieldConfig as defaultXYChartFieldConfig,\n} from '@grafana/schema/dist/esm/raw/composable/xychart/panelcfg/x/XYChartPanelCfg_types.gen';\n\nimport { VizPanelBuilder } from './VizPanelBuilder';\n\nexport const PanelBuilders = {\n barchart() {\n return new VizPanelBuilder<BarChartOptions, BarChartFieldConfig>(\n 'barchart',\n '10.0.0',\n () => defaultBarChartOptions,\n () => defaultBarChartFieldConfig\n );\n },\n bargauge() {\n return new VizPanelBuilder<BarGaugeOptions, {}>('bargauge', '10.0.0', () => defaultBarGaugeOptions);\n },\n datagrid() {\n return new VizPanelBuilder<DataGridOptions, {}>('datagrid', '10.0.0', () => defaultDataGridOptions);\n },\n flamegraph() {\n return new VizPanelBuilder<{}, {}>('flamegraph', '10.0.0');\n },\n gauge() {\n return new VizPanelBuilder<GaugeOptions, {}>('gauge', '10.0.0', () => defaultGaugeOptions);\n },\n geomap() {\n return new VizPanelBuilder<GeomapOptions, {}>('geomap', '10.0.0', () => defaultGeomapOptions);\n },\n heatmap() {\n return new VizPanelBuilder<HeatmapOptions, HeatmapFieldConfig>('heatmap', '10.0.0', () => defaultHeatmapOptions);\n },\n histogram() {\n return new VizPanelBuilder<HistogramOptions, HistogramFieldConfig>(\n 'histogram',\n '10.0.0',\n () => defaultHistogramOptions,\n () => defaultHistogramFieldConfig\n );\n },\n logs() {\n return new VizPanelBuilder<LogsOptions, {}>('logs', '10.0.0');\n },\n news() {\n return new VizPanelBuilder<NewsOptions, {}>('news', '10.0.0', () => defaultNewsOptions);\n },\n nodegraph() {\n return new VizPanelBuilder<NodeGraphOptions, {}>('nodeGraph', '10.0.0');\n },\n piechart() {\n return new VizPanelBuilder<PieChartOptions, PieChartFieldConfig>(\n 'piechart',\n '10.0.0',\n () => defaultPieChartOptions\n );\n },\n stat() {\n return new VizPanelBuilder<StatOptions, {}>('stat', '10.0.0', () => defaultStatOptions);\n },\n statetimeline() {\n return new VizPanelBuilder<StateTimelineOptions, StateTimelineFieldConfig>(\n 'state-timeline',\n '10.0.0',\n () => defaultStateTimelineOptions,\n () => defaultStateTimelineFieldConfig\n );\n },\n statushistory() {\n return new VizPanelBuilder<StatusHistoryOptions, StatusHistoryFieldConfig>(\n 'status-history',\n '10.0.0',\n () => defaultStatusHistoryOptions,\n () => defaultStatusHistoryFieldConfig\n );\n },\n table() {\n return new VizPanelBuilder<TableOptions, TableFieldConfig>('table', '10.0.0', () => defaultTableOptions);\n },\n text() {\n return new VizPanelBuilder<TextOptions, {}>('text', '10.0.0', () => defaultTextOptions);\n },\n timeseries() {\n return new VizPanelBuilder<TimeSeriesOptions, TimeSeriesFieldConfig>('timeseries', '10.0.0');\n },\n trend() {\n return new VizPanelBuilder<{}, {}>('trend', '10.0.0');\n },\n traces() {\n return new VizPanelBuilder<TrendOptions, TrendFieldConfig>('traces', '10.0.0');\n },\n xychart() {\n return new VizPanelBuilder<XYChartOptions, {}>(\n 'xychart',\n '10.0.0',\n () => defaultXYChartOptions,\n () => defaultXYChartFieldConfig\n );\n },\n};\n\nexport { PanelOptionsBuilders } from './PanelOptionsBuilders';\nexport { FieldConfigBuilders } from './FieldConfigBuilders';\nexport { FieldConfigOverridesBuilder } from './FieldConfigOverridesBuilder';\n"],"names":["defaultBarChartOptions","defaultBarChartFieldConfig","defaultBarGaugeOptions","defaultDataGridOptions","defaultGaugeOptions","defaultGeomapOptions","defaultHeatmapOptions","defaultHistogramOptions","defaultHistogramFieldConfig","defaultNewsOptions","defaultPieChartOptions","defaultStatOptions","defaultStateTimelineOptions","defaultStateTimelineFieldConfig","defaultStatusHistoryOptions","defaultStatusHistoryFieldConfig","defaultTableOptions","defaultTextOptions","defaultXYChartOptions","defaultXYChartFieldConfig"],"mappings":";;;;;;;;;;;;;;;;;;;AAsFO,MAAM,aAAgB,GAAA;AAAA,EAC3B,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,eAAA;AAAA,MACT,UAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAMA,gBAAA;AAAA,MACN,MAAMC;AAAA,KACR;AAAA,GACF;AAAA,EACA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,eAAA,CAAqC,UAAY,EAAA,QAAA,EAAU,MAAMC,gBAAsB,CAAA;AAAA,GACpG;AAAA,EACA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,eAAA,CAAqC,UAAY,EAAA,QAAA,EAAU,MAAMC,gBAAsB,CAAA;AAAA,GACpG;AAAA,EACA,UAAa,GAAA;AACX,IAAO,OAAA,IAAI,eAAwB,CAAA,YAAA,EAAc,QAAQ,CAAA;AAAA,GAC3D;AAAA,EACA,KAAQ,GAAA;AACN,IAAA,OAAO,IAAI,eAAA,CAAkC,OAAS,EAAA,QAAA,EAAU,MAAMC,gBAAmB,CAAA;AAAA,GAC3F;AAAA,EACA,MAAS,GAAA;AACP,IAAA,OAAO,IAAI,eAAA,CAAmC,QAAU,EAAA,QAAA,EAAU,MAAMC,gBAAoB,CAAA;AAAA,GAC9F;AAAA,EACA,OAAU,GAAA;AACR,IAAA,OAAO,IAAI,eAAA,CAAoD,SAAW,EAAA,QAAA,EAAU,MAAMC,gBAAqB,CAAA;AAAA,GACjH;AAAA,EACA,SAAY,GAAA;AACV,IAAA,OAAO,IAAI,eAAA;AAAA,MACT,WAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAMC,gBAAA;AAAA,MACN,MAAMC;AAAA,KACR;AAAA,GACF;AAAA,EACA,IAAO,GAAA;AACL,IAAO,OAAA,IAAI,eAAiC,CAAA,MAAA,EAAQ,QAAQ,CAAA;AAAA,GAC9D;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,eAAA,CAAiC,MAAQ,EAAA,QAAA,EAAU,MAAMC,gBAAkB,CAAA;AAAA,GACxF;AAAA,EACA,SAAY,GAAA;AACV,IAAO,OAAA,IAAI,eAAsC,CAAA,WAAA,EAAa,QAAQ,CAAA;AAAA,GACxE;AAAA,EACA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,eAAA;AAAA,MACT,UAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAMC;AAAA,KACR;AAAA,GACF;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,eAAA,CAAiC,MAAQ,EAAA,QAAA,EAAU,MAAMC,gBAAkB,CAAA;AAAA,GACxF;AAAA,EACA,aAAgB,GAAA;AACd,IAAA,OAAO,IAAI,eAAA;AAAA,MACT,gBAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAMC,gBAAA;AAAA,MACN,MAAMC;AAAA,KACR;AAAA,GACF;AAAA,EACA,aAAgB,GAAA;AACd,IAAA,OAAO,IAAI,eAAA;AAAA,MACT,gBAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAMC,gBAAA;AAAA,MACN,MAAMC;AAAA,KACR;AAAA,GACF;AAAA,EACA,KAAQ,GAAA;AACN,IAAA,OAAO,IAAI,eAAA,CAAgD,OAAS,EAAA,QAAA,EAAU,MAAMC,gBAAmB,CAAA;AAAA,GACzG;AAAA,EACA,IAAO,GAAA;AACL,IAAA,OAAO,IAAI,eAAA,CAAiC,MAAQ,EAAA,QAAA,EAAU,MAAMC,gBAAkB,CAAA;AAAA,GACxF;AAAA,EACA,UAAa,GAAA;AACX,IAAO,OAAA,IAAI,eAA0D,CAAA,YAAA,EAAc,QAAQ,CAAA;AAAA,GAC7F;AAAA,EACA,KAAQ,GAAA;AACN,IAAO,OAAA,IAAI,eAAwB,CAAA,OAAA,EAAS,QAAQ,CAAA;AAAA,GACtD;AAAA,EACA,MAAS,GAAA;AACP,IAAO,OAAA,IAAI,eAAgD,CAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,GAC/E;AAAA,EACA,OAAU,GAAA;AACR,IAAA,OAAO,IAAI,eAAA;AAAA,MACT,SAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAMC,cAAA;AAAA,MACN,MAAMC;AAAA,KACR;AAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneComponentWrapper.js","sources":["../../../../../../src/core/SceneComponentWrapper.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { SceneComponentProps, SceneObject } from './types';\n\nfunction SceneComponentWrapperWithoutMemo<T extends SceneObject>({ model, ...otherProps }: SceneComponentProps<T>) {\n const Component = (model as any).constructor['Component'] ?? EmptyRenderer;\n const [_, setValue] = useState(0);\n\n useEffect(() => {\n const unsub = model.activate();\n setValue((prevState) => prevState + 1);\n return unsub;\n }, [model]);\n\n // By not rendering the component until the model is actiavted we make sure that parent models get activated before child models\n // Otherwise child models would be activated before parents as that is the order of React mount effects.\n // This also enables static logic to happen inside activate that can change state before the first render.\n if (!model.isActive && !model.renderBeforeActivation) {\n return null;\n }\n\n return <Component {...otherProps} model={model} />;\n}\n\nexport const SceneComponentWrapper = React.memo(SceneComponentWrapperWithoutMemo);\n\nfunction EmptyRenderer<T>(_: SceneComponentProps<T>): React.ReactElement | null {\n return null;\n}\n"],"names":[],"mappings":";;AAIA,SAAS,gCAAwD,CAAA,EAAE,KAAO,EAAA,GAAG,YAAsC,EAAA;AAJnH,EAAA,IAAA,EAAA;AAKE,EAAA,MAAM,SAAa,GAAA,CAAA,EAAA,GAAA,KAAA,CAAc,WAAY,CAAA,WAAW,MAArC,IAA0C,GAAA,EAAA,GAAA,aAAA;AAC7D,EAAA,MAAM,CAAC,CAAA,EAAG,QAAQ,CAAA,GAAI,SAAS,CAAC,CAAA;AAEhC,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,KAAA,GAAQ,MAAM,QAAS,EAAA;AAC7B,IAAS,QAAA,CAAA,CAAC,SAAc,KAAA,SAAA,GAAY,CAAC,CAAA;AACrC,IAAO,OAAA,KAAA;AAAA,GACT,EAAG,CAAC,KAAK,CAAC,CAAA;AAKV,EAAA,IAAI,CAAC,KAAA,CAAM,QAAY,IAAA,CAAC,MAAM,sBAAwB,EAAA;AACpD,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAW,GAAG,UAAA,EAAY,KAAc,EAAA,CAAA;AAClD;AAEa,MAAA,qBAAA,GAAwB,KAAM,CAAA,IAAA,CAAK,gCAAgC;AAEhF,SAAS,cAAiB,CAAsD,EAAA;AAC9E,EAAO,OAAA,IAAA;AACT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneDataNode.js","sources":["../../../../../../src/core/SceneDataNode.ts"],"sourcesContent":["import { getDefaultTimeRange, PanelData } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport { of } from 'rxjs';\n\nimport { SceneObjectBase } from './SceneObjectBase';\nimport { SceneDataProvider, SceneDataProviderResult, SceneDataState } from './types';\n\nexport interface SceneDataNodeState extends SceneDataState {\n data: PanelData;\n}\n\nexport class SceneDataNode extends SceneObjectBase<SceneDataNodeState> implements SceneDataProvider {\n public constructor(state?: Partial<SceneDataNodeState>) {\n super({\n data: emptyPanelData,\n ...state,\n });\n }\n\n public getResultsStream() {\n const result: SceneDataProviderResult = {\n origin: this,\n data: this.state.data,\n };\n\n return of(result);\n }\n}\n\nexport const emptyPanelData: PanelData = {\n state: LoadingState.Done,\n series: [],\n timeRange: getDefaultTimeRange(),\n};\n"],"names":[],"mappings":";;;;;AAWO,MAAM,sBAAsB,eAAiE,CAAA;AAAA,EAC3F,YAAY,KAAqC,EAAA;AACtD,IAAM,KAAA,CAAA;AAAA,MACJ,IAAM,EAAA,cAAA;AAAA,MACN,GAAG;AAAA,KACJ,CAAA;AAAA;AACH,EAEO,gBAAmB,GAAA;AACxB,IAAA,MAAM,MAAkC,GAAA;AAAA,MACtC,MAAQ,EAAA,IAAA;AAAA,MACR,IAAA,EAAM,KAAK,KAAM,CAAA;AAAA,KACnB;AAEA,IAAA,OAAO,GAAG,MAAM,CAAA;AAAA;AAEpB;AAEO,MAAM,cAA4B,GAAA;AAAA,EACvC,OAAO,YAAa,CAAA,IAAA;AAAA,EACpB,QAAQ,EAAC;AAAA,EACT,WAAW,mBAAoB;AACjC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneObjectBase.js","sources":["../../../../../../src/core/SceneObjectBase.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Subscription, Unsubscribable } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { BusEvent, BusEventHandler, BusEventType, EventBus, EventBusSrv } from '@grafana/data';\nimport {\n SceneObject,\n SceneComponent,\n SceneObjectUrlSyncHandler,\n SceneStateChangedHandler,\n SceneActivationHandler,\n SceneDeactivationHandler,\n CancelActivationHandler,\n SceneObjectState,\n UseStateHookOptions,\n SceneStatelessBehavior,\n} from './types';\n\nimport { SceneComponentWrapper } from './SceneComponentWrapper';\nimport { SceneObjectStateChangedEvent } from './events';\nimport { cloneSceneObject } from './sceneGraph/cloneSceneObject';\nimport { SceneVariableDependencyConfigLike } from '../variables/types';\nimport { SceneObjectRef } from './SceneObjectRef';\n\nexport abstract class SceneObjectBase<TState extends SceneObjectState = SceneObjectState>\n implements SceneObject<TState>\n{\n private _isActive = false;\n private _state: TState;\n private _activationHandlers: SceneActivationHandler[] = [];\n private _deactivationHandlers = new Map<object, SceneDeactivationHandler>();\n private _ref?: SceneObjectRef<this>;\n\n protected _events?: EventBus;\n protected _parent?: SceneObject;\n protected _subs = new Subscription();\n protected _refCount = 0;\n protected _renderBeforeActivation = false;\n\n protected _variableDependency: SceneVariableDependencyConfigLike | undefined;\n protected _urlSync: SceneObjectUrlSyncHandler | undefined;\n\n public constructor(state: TState) {\n if (!state.key) {\n state.key = uuidv4();\n }\n\n this._events = new EventBusSrv();\n\n this._state = Object.freeze(state);\n this._setParent(this._state);\n }\n\n /** Current state */\n public get state(): TState {\n return this._state;\n }\n\n /** True if currently being active (ie displayed for visual objects) */\n public get isActive(): boolean {\n return this._isActive;\n }\n\n public get renderBeforeActivation(): boolean {\n return this._renderBeforeActivation;\n }\n\n /** Returns the parent, undefined for root object */\n public get parent(): SceneObject | undefined {\n return this._parent;\n }\n\n /** Returns variable dependency config */\n public get variableDependency(): SceneVariableDependencyConfigLike | undefined {\n return this._variableDependency;\n }\n\n /** Returns url sync config */\n public get urlSync(): SceneObjectUrlSyncHandler | undefined {\n return this._urlSync;\n }\n\n /**\n * Used in render functions when rendering a SceneObject.\n * Wraps the component in an EditWrapper that handles edit mode\n */\n public get Component(): SceneComponent<this> {\n return SceneComponentWrapper as SceneComponent<this>;\n }\n\n private _setParent(state: Partial<TState>) {\n forEachChild(state, (child) => {\n // If we already have a parent and it's not this, then we likely have a bug\n if (child._parent && child._parent !== this) {\n console.warn(\n 'SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.',\n child,\n this\n );\n }\n child._parent = this;\n });\n }\n\n /**\n * Sometimes you want to move one instance to another parent.\n * This is a way to do that without getting the console warning.\n */\n public clearParent() {\n this._parent = undefined;\n }\n\n /**\n * Subscribe to the scene state subject\n **/\n public subscribeToState(handler: SceneStateChangedHandler<TState>): Unsubscribable {\n return this._events!.subscribe(SceneObjectStateChangedEvent, (event) => {\n if (event.payload.changedObject === this) {\n handler(event.payload.newState as TState, event.payload.prevState as TState);\n }\n });\n }\n\n /**\n * Subscribe to the scene event\n **/\n public subscribeToEvent<T extends BusEvent>(eventType: BusEventType<T>, handler: BusEventHandler<T>): Unsubscribable {\n return this._events!.subscribe(eventType, handler);\n }\n\n public setState(update: Partial<TState>) {\n const prevState = this._state;\n const newState: TState = {\n ...this._state,\n ...update,\n };\n\n this._state = Object.freeze(newState);\n this._setParent(update);\n\n // Handles cases when $data, $timeRange, or $variables are changed\n this._handleActivationOfChangedStateProps(prevState, newState);\n\n // Bubble state change event. This is event is subscribed to by UrlSyncManager and UndoManager\n this.publishEvent(\n new SceneObjectStateChangedEvent({\n prevState,\n newState,\n partialUpdate: update,\n changedObject: this,\n }),\n true\n );\n }\n\n /**\n * This handles activation and deactivation of $data, $timeRange and $variables when they change\n * during the active phase of the scene object.\n */\n private _handleActivationOfChangedStateProps(prevState: TState, newState: TState) {\n if (!this.isActive) {\n return;\n }\n\n if (prevState.$behaviors !== newState.$behaviors) {\n this._handleChangedBehaviors(prevState.$behaviors, newState.$behaviors);\n }\n\n if (prevState.$data !== newState.$data) {\n this._handleChangedStateActivation(prevState.$data, newState.$data);\n }\n\n if (prevState.$variables !== newState.$variables) {\n this._handleChangedStateActivation(prevState.$variables, newState.$variables);\n }\n\n if (prevState.$timeRange !== newState.$timeRange) {\n this._handleChangedStateActivation(prevState.$timeRange, newState.$timeRange);\n }\n }\n\n private _handleChangedStateActivation(oldValue: SceneObject | undefined, newValue: SceneObject | undefined) {\n if (oldValue) {\n const deactivationHandler = this._deactivationHandlers.get(oldValue);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldValue);\n }\n }\n\n if (newValue) {\n this._deactivationHandlers.set(newValue, newValue.activate());\n }\n }\n\n private _handleChangedBehaviors(\n oldValue: Array<SceneObject | SceneStatelessBehavior> | undefined,\n newValue: Array<SceneObject | SceneStatelessBehavior> | undefined\n ) {\n // Handle removed behaviors\n if (oldValue) {\n for (const oldBehavior of oldValue) {\n if (!newValue || !newValue.includes(oldBehavior)) {\n const deactivationHandler = this._deactivationHandlers.get(oldBehavior);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldBehavior);\n }\n }\n }\n }\n\n // Handle new behaviors\n if (newValue) {\n for (const newBehavior of newValue) {\n if (!oldValue || !oldValue.includes(newBehavior)) {\n this._activateBehavior(newBehavior);\n }\n }\n }\n }\n\n /*\n * Publish an event and optionally bubble it up the scene\n **/\n public publishEvent(event: BusEvent, bubble?: boolean) {\n this._events!.publish(event);\n\n if (bubble && this.parent) {\n this.parent.publishEvent(event, bubble);\n }\n }\n\n public getRoot(): SceneObject {\n return !this._parent ? this : this._parent.getRoot();\n }\n\n private _internalActivate() {\n this._isActive = true;\n\n const { $data, $variables, $timeRange, $behaviors } = this.state;\n\n this._activationHandlers.forEach((handler) => {\n const result = handler();\n if (result) {\n this._deactivationHandlers.set(result, result);\n }\n });\n\n if ($timeRange && !$timeRange.isActive) {\n this._deactivationHandlers.set($timeRange, $timeRange.activate());\n }\n\n if ($variables && !$variables.isActive) {\n this._deactivationHandlers.set($variables, $variables.activate());\n }\n\n if ($data && !$data.isActive) {\n this._deactivationHandlers.set($data, $data.activate());\n }\n\n if ($behaviors) {\n for (const behavior of $behaviors) {\n this._activateBehavior(behavior);\n }\n }\n }\n\n private _activateBehavior(behavior: SceneObject | SceneStatelessBehavior): SceneDeactivationHandler | void {\n if (behavior instanceof SceneObjectBase) {\n this._deactivationHandlers.set(behavior, behavior.activate());\n } else if (typeof behavior === 'function') {\n const deactivate = behavior(this);\n if (deactivate) {\n this._deactivationHandlers.set(behavior, deactivate);\n }\n }\n }\n\n /**\n * This is primarily called from SceneComponentWrapper when the SceneObject's Component is mounted.\n * But in some scenarios this can also be called directly from another scene object. When called manually from another scene object\n * make sure to call the returned function when the source scene object is deactivated.\n */\n public activate(): CancelActivationHandler {\n if (!this.isActive) {\n this._internalActivate();\n }\n\n this._refCount++;\n\n let called = false;\n\n return () => {\n this._refCount--;\n\n if (called) {\n const msg = `SceneObject cancelation handler returned by activate() called a second time`;\n throw new Error(msg);\n }\n\n called = true;\n\n if (this._refCount === 0) {\n this._internalDeactivate();\n }\n };\n }\n\n /**\n * Called by the SceneComponentWrapper when the react component is unmounted.\n * Don't override this, instead use addActivationHandler. The activation handler can return a deactivation handler.\n */\n private _internalDeactivate(): void {\n this._isActive = false;\n\n for (let handler of this._deactivationHandlers.values()) {\n handler();\n }\n\n this._deactivationHandlers.clear();\n\n // Clear subscriptions and listeners\n this._events!.removeAllListeners();\n this._subs.unsubscribe();\n this._subs = new Subscription();\n }\n\n /**\n * Utility hook to get and subscribe to state\n */\n public useState(): TState {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSceneObjectState(this);\n }\n\n /** Force a re-render, should only be needed when variable values change */\n public forceRender(): void {\n this.setState({});\n }\n\n /**\n * Will create new SceneObject with shallow-cloned state, but all state items of type SceneObject are deep cloned\n */\n public clone(withState?: Partial<TState>): this {\n return cloneSceneObject(this, withState);\n }\n\n /**\n * Allows external code to register code that is executed on activate and deactivate. This allow you\n * to wire up scene objects that need to respond to state changes in other objects from the outside.\n **/\n public addActivationHandler(handler: SceneActivationHandler) {\n this._activationHandlers.push(handler);\n }\n\n /**\n * Loop through state and call callback for each direct child scene object.\n * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.\n * Return false to exit loop early.\n */\n public forEachChild(callback: (child: SceneObjectBase) => void) {\n forEachChild(this.state, callback);\n }\n\n /** Returns a SceneObjectRef that will resolve to this object */\n public getRef(): SceneObjectRef<this> {\n if (!this._ref) {\n this._ref = new SceneObjectRef(this);\n }\n\n return this._ref;\n }\n\n public toJSON() {\n return {\n type: Object.getPrototypeOf(this).constructor.name,\n isActive: this.isActive,\n state: this.state,\n };\n }\n}\n\n/**\n * This hook is always returning model.state instead of a useState that remembers the last state emitted on the subject\n * The reason for this is so that if the model instance change this function will always return the latest state.\n */\nexport function useSceneObjectState<TState extends SceneObjectState>(\n model: SceneObject<TState>,\n options?: UseStateHookOptions\n): TState {\n const [_, setState] = useState<TState>(model.state);\n const stateAtFirstRender = model.state;\n const shouldActivateOrKeepAlive = options?.shouldActivateOrKeepAlive ?? false;\n\n useEffect(() => {\n let unactivate: CancelActivationHandler | undefined;\n\n if (shouldActivateOrKeepAlive) {\n unactivate = model.activate();\n }\n\n const s = model.subscribeToState((state) => {\n setState(state);\n });\n\n // Re-render component if the state changed between first render and useEffect (mount)\n if (model.state !== stateAtFirstRender) {\n setState(model.state);\n }\n\n return () => {\n s.unsubscribe();\n\n if (unactivate) {\n unactivate();\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [model, shouldActivateOrKeepAlive]);\n\n return model.state;\n}\n\nfunction forEachChild<T extends object>(state: T, callback: (child: SceneObjectBase) => void | false) {\n for (const propValue of Object.values(state)) {\n if (propValue instanceof SceneObjectBase) {\n const result = callback(propValue);\n if (result === false) {\n break;\n }\n }\n\n if (Array.isArray(propValue)) {\n let exitEarly = false;\n\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n const result = callback(child);\n if (result === false) {\n exitEarly = true;\n break;\n }\n }\n }\n\n if (exitEarly) {\n break;\n }\n }\n }\n}\n"],"names":["uuidv4"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneObjectRef.js","sources":["../../../../../../src/core/SceneObjectRef.ts"],"sourcesContent":["export class SceneObjectRef<T> {\n #ref: T;\n\n public constructor(ref: T) {\n this.#ref = ref;\n }\n\n public resolve(): T {\n return this.#ref;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,IAAA,IAAA;AAAO,MAAM,cAAkB,CAAA;AAAA,EAGtB,YAAY,GAAQ,EAAA;AAF3B,IAAA,YAAA,CAAA,IAAA,EAAA,IAAA,CAAA;AAGE,IAAA,YAAA,CAAA,IAAA,EAAK,IAAO,EAAA,GAAA,CAAA;AAAA;AACd,EAEO,OAAa,GAAA;AAClB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,IAAA,CAAA;AAAA;AAEhB;AATE,IAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneTimeRange.js","sources":["../../../../../../src/core/SceneTimeRange.tsx"],"sourcesContent":["import { getTimeZone, getZone, rangeUtil, setWeekStart, TimeRange, toUtc } from '@grafana/data';\nimport { defaultTimeZone, TimeZone } from '@grafana/schema';\n\nimport { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig';\n\nimport { SceneObjectBase } from './SceneObjectBase';\nimport { SceneTimeRangeLike, SceneTimeRangeState, SceneObjectUrlValues } from './types';\nimport { getClosest } from './sceneGraph/utils';\nimport { parseUrlParam } from '../utils/parseUrlParam';\nimport { evaluateTimeRange } from '../utils/evaluateTimeRange';\nimport { config, locationService, RefreshEvent } from '@grafana/runtime';\nimport { isValid } from '../utils/date';\nimport { getQueryController } from './sceneGraph/getQueryController';\nimport { writeSceneLog } from '../utils/writeSceneLog';\nimport { isEmpty } from 'lodash';\nimport { TIME_RANGE_CHANGE_INTERACTION } from '../performance/interactionConstants';\n\nexport class SceneTimeRange extends SceneObjectBase<SceneTimeRangeState> implements SceneTimeRangeLike {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['from', 'to', 'timezone', 'time', 'time.window'] });\n\n public constructor(state: Partial<SceneTimeRangeState> = {}) {\n const from = state.from && isValid(state.from) ? state.from : 'now-6h';\n const to = state.to && isValid(state.to) ? state.to : 'now';\n const timeZone = getValidTimeZone(state.timeZone);\n const value = evaluateTimeRange(\n from,\n to,\n timeZone || getTimeZone(),\n state.fiscalYearStartMonth,\n state.UNSAFE_nowDelay,\n state.weekStart\n );\n const refreshOnActivate = state.refreshOnActivate ?? { percent: 10 };\n super({ from, to, timeZone, value, refreshOnActivate, ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n // When SceneTimeRange has no time zone provided, find closest source of time zone and subscribe to it\n if (!this.state.timeZone) {\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this) {\n this._subs.add(\n timeZoneSource.subscribeToState((n, p) => {\n if (n.timeZone !== undefined && n.timeZone !== p.timeZone) {\n this.refreshRange(0);\n }\n })\n );\n }\n }\n\n if (rangeUtil.isRelativeTimeRange(this.state.value.raw)) {\n this.refreshIfStale();\n }\n\n return () => {\n if (this.state.weekStart) {\n setWeekStart(config.bootData.user.weekStart);\n }\n };\n }\n\n private refreshIfStale() {\n let ms;\n if (this.state?.refreshOnActivate?.percent !== undefined) {\n ms = this.calculatePercentOfInterval(this.state.refreshOnActivate.percent);\n }\n if (this.state?.refreshOnActivate?.afterMs !== undefined) {\n ms = Math.min(this.state.refreshOnActivate.afterMs, ms ?? Infinity);\n }\n if (ms !== undefined) {\n this.refreshRange(ms);\n }\n }\n\n /**\n * Will traverse up the scene graph to find the closest SceneTimeRangeLike with time zone set\n */\n private getTimeZoneSource() {\n if (!this.parent || !this.parent.parent) {\n return this;\n }\n // Find the closest source of time zone\n const source = getClosest<SceneTimeRangeLike>(this.parent.parent, (o) => {\n if (o.state.$timeRange && o.state.$timeRange.state.timeZone) {\n return o.state.$timeRange;\n }\n return undefined;\n });\n\n if (!source) {\n return this;\n }\n\n return source;\n }\n\n /**\n * Refreshes time range if it is older than the invalidation interval\n * @param refreshAfterMs invalidation interval (milliseconds)\n * @private\n */\n private refreshRange(refreshAfterMs: number) {\n const value = evaluateTimeRange(\n this.state.from,\n this.state.to,\n this.state.timeZone ?? getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n\n const diff = value.to.diff(this.state.value.to, 'milliseconds');\n if (diff >= refreshAfterMs) {\n this.setState({ value });\n }\n }\n\n private calculatePercentOfInterval(percent: number): number {\n const intervalMs = this.state.value.to.diff(this.state.value.from, 'milliseconds');\n return Math.ceil((intervalMs / 100) * percent);\n }\n\n public getTimeZone(): TimeZone {\n // Return local time zone if provided\n if (this.state.timeZone && getValidTimeZone(this.state.timeZone)) {\n return this.state.timeZone;\n }\n\n // Resolve higher level time zone source\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this && getValidTimeZone(timeZoneSource.state.timeZone)) {\n return timeZoneSource.state.timeZone!;\n }\n\n // Return default time zone\n return getTimeZone();\n }\n\n public onTimeRangeChange = (timeRange: TimeRange) => {\n const update: Partial<SceneTimeRangeState> = {};\n\n if (typeof timeRange.raw.from === 'string') {\n update.from = timeRange.raw.from;\n } else {\n update.from = timeRange.raw.from.toISOString();\n }\n\n if (typeof timeRange.raw.to === 'string') {\n update.to = timeRange.raw.to;\n } else {\n update.to = timeRange.raw.to.toISOString();\n }\n\n update.value = evaluateTimeRange(\n update.from,\n update.to,\n this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n\n // Only update if time range actually changed\n if (update.from !== this.state.from || update.to !== this.state.to) {\n const queryController = getQueryController(this);\n queryController?.startProfile(TIME_RANGE_CHANGE_INTERACTION);\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState(update);\n });\n }\n };\n\n public onTimeZoneChange = (timeZone: TimeZone) => {\n this._urlSync.performBrowserHistoryAction(() => {\n const validTimeZone = getValidTimeZone(timeZone) ?? defaultTimeZone;\n const updatedValue = evaluateTimeRange(\n this.state.from,\n this.state.to,\n validTimeZone,\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n this.setState({ timeZone: validTimeZone, value: updatedValue });\n });\n };\n\n public onRefresh = () => {\n this.refreshRange(0);\n this.publishEvent(new RefreshEvent(), true);\n };\n\n public getUrlState() {\n const params = locationService.getSearchObject();\n const urlValues: SceneObjectUrlValues = { from: this.state.from, to: this.state.to, timezone: this.getTimeZone() };\n\n // Clear time and time.window once they are converted to from and to\n if (params.time && params['time.window']) {\n urlValues.time = null;\n urlValues['time.window'] = null;\n }\n\n return urlValues;\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const update: Partial<SceneTimeRangeState> = {};\n\n let from = parseUrlParam(values.from);\n let to = parseUrlParam(values.to);\n\n if (values.time && values['time.window']) {\n const time = Array.isArray(values.time) ? values.time[0] : values.time;\n const timeWindow = Array.isArray(values['time.window']) ? values['time.window'][0] : values['time.window'];\n const timeRange = getTimeWindow(time, timeWindow);\n if (timeRange.from && isValid(timeRange.from)) {\n from = timeRange.from;\n }\n\n if (timeRange.to && isValid(timeRange.to)) {\n to = timeRange.to;\n }\n }\n\n if (from && isValid(from)) {\n update.from = from;\n }\n\n if (to && isValid(to)) {\n update.to = to;\n }\n\n if (typeof values.timezone === 'string') {\n update.timeZone = values.timezone !== '' ? values.timezone : undefined;\n }\n\n if (Object.keys(update).length === 0) {\n return;\n }\n\n update.value = evaluateTimeRange(\n update.from ?? this.state.from,\n update.to ?? this.state.to,\n update.timeZone ?? this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n\n return this.setState(update);\n }\n}\n\n/**\n * Calculates the duration of the time range from time-time.window/2 to time+time.window/2. Both be specified in ms. For example ?time=1500000000000&time.window=10000 results in a 10-second time range from 1499999995000 to 1500000005000`.\n * @param time - time in ms\n * @param timeWindow - time window in ms or interval string\n */\nfunction getTimeWindow(time: string, timeWindow: string) {\n // Parse the time, assuming it could be an ISO string or a number in milliseconds\n const valueTime = isNaN(Date.parse(time)) ? parseInt(time, 10) : Date.parse(time);\n\n let timeWindowMs;\n\n if (timeWindow.match(/^\\d+$/) && parseInt(timeWindow, 10)) {\n // when time window is specified in ms\n timeWindowMs = parseInt(timeWindow, 10);\n } else {\n timeWindowMs = rangeUtil.intervalToMs(timeWindow);\n }\n\n return {\n from: toUtc(valueTime - timeWindowMs / 2).toISOString(),\n to: toUtc(valueTime + timeWindowMs / 2).toISOString(),\n };\n}\n\n/**\n * Validates and returns a valid time zone string or undefined.\n * @param {string} [timeZone] - The time zone to validate. Can be a valid IANA time zone string, the string \"browser\", or undefined.\n * @returns {string | undefined} - Returns the input time zone if it is valid, or undefined if the input is invalid or not provided.\n */\nfunction getValidTimeZone(timeZone?: string): string | undefined {\n if (timeZone === undefined) {\n return undefined;\n }\n\n if (isEmpty(timeZone)) {\n return config.bootData.user.timezone;\n }\n\n if (timeZone === defaultTimeZone) {\n return timeZone;\n }\n\n if (getZone(timeZone)) {\n return timeZone;\n }\n\n writeSceneLog('SceneTimeRange', `Invalid timeZone \"${timeZone}\" provided.`);\n return;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAiBO,MAAM,uBAAuB,eAAmE,CAAA;AAAA,EAG9F,WAAA,CAAY,KAAsC,GAAA,EAAI,EAAA;AApB/D,IAAA,IAAA,EAAA;AAqBI,IAAM,MAAA,IAAA,GAAO,MAAM,IAAQ,IAAA,OAAA,CAAQ,MAAM,IAAI,CAAA,GAAI,MAAM,IAAO,GAAA,QAAA;AAC9D,IAAM,MAAA,EAAA,GAAK,MAAM,EAAM,IAAA,OAAA,CAAQ,MAAM,EAAE,CAAA,GAAI,MAAM,EAAK,GAAA,KAAA;AACtD,IAAM,MAAA,QAAA,GAAW,gBAAiB,CAAA,KAAA,CAAM,QAAQ,CAAA;AAChD,IAAA,MAAM,KAAQ,GAAA,iBAAA;AAAA,MACZ,IAAA;AAAA,MACA,EAAA;AAAA,MACA,YAAY,WAAY,EAAA;AAAA,MACxB,KAAM,CAAA,oBAAA;AAAA,MACN,KAAM,CAAA,eAAA;AAAA,MACN,KAAM,CAAA;AAAA,KACR;AACA,IAAA,MAAM,qBAAoB,EAAM,GAAA,KAAA,CAAA,iBAAA,KAAN,IAA2B,GAAA,EAAA,GAAA,EAAE,SAAS,EAAG,EAAA;AACnE,IAAM,KAAA,CAAA,EAAE,MAAM,EAAI,EAAA,QAAA,EAAU,OAAO,iBAAmB,EAAA,GAAG,OAAO,CAAA;AAflE,IAAA,IAAA,CAAU,QAAW,GAAA,IAAI,wBAAyB,CAAA,IAAA,EAAM,EAAE,IAAA,EAAM,CAAC,MAAA,EAAQ,IAAM,EAAA,UAAA,EAAY,MAAQ,EAAA,aAAa,GAAG,CAAA;AA2HnH,IAAO,IAAA,CAAA,iBAAA,GAAoB,CAAC,SAAyB,KAAA;AACnD,MAAA,MAAM,SAAuC,EAAC;AAE9C,MAAA,IAAI,OAAO,SAAA,CAAU,GAAI,CAAA,IAAA,KAAS,QAAU,EAAA;AAC1C,QAAO,MAAA,CAAA,IAAA,GAAO,UAAU,GAAI,CAAA,IAAA;AAAA,OACvB,MAAA;AACL,QAAA,MAAA,CAAO,IAAO,GAAA,SAAA,CAAU,GAAI,CAAA,IAAA,CAAK,WAAY,EAAA;AAAA;AAG/C,MAAA,IAAI,OAAO,SAAA,CAAU,GAAI,CAAA,EAAA,KAAO,QAAU,EAAA;AACxC,QAAO,MAAA,CAAA,EAAA,GAAK,UAAU,GAAI,CAAA,EAAA;AAAA,OACrB,MAAA;AACL,QAAA,MAAA,CAAO,EAAK,GAAA,SAAA,CAAU,GAAI,CAAA,EAAA,CAAG,WAAY,EAAA;AAAA;AAG3C,MAAA,MAAA,CAAO,KAAQ,GAAA,iBAAA;AAAA,QACb,MAAO,CAAA,IAAA;AAAA,QACP,MAAO,CAAA,EAAA;AAAA,QACP,KAAK,WAAY,EAAA;AAAA,QACjB,KAAK,KAAM,CAAA,oBAAA;AAAA,QACX,KAAK,KAAM,CAAA,eAAA;AAAA,QACX,KAAK,KAAM,CAAA;AAAA,OACb;AAGA,MAAI,IAAA,MAAA,CAAO,SAAS,IAAK,CAAA,KAAA,CAAM,QAAQ,MAAO,CAAA,EAAA,KAAO,IAAK,CAAA,KAAA,CAAM,EAAI,EAAA;AAClE,QAAM,MAAA,eAAA,GAAkB,mBAAmB,IAAI,CAAA;AAC/C,QAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,YAAa,CAAA,6BAAA,CAAA;AAC9B,QAAK,IAAA,CAAA,QAAA,CAAS,4BAA4B,MAAM;AAC9C,UAAA,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,SACrB,CAAA;AAAA;AACH,KACF;AAEA,IAAO,IAAA,CAAA,gBAAA,GAAmB,CAAC,QAAuB,KAAA;AAChD,MAAK,IAAA,CAAA,QAAA,CAAS,4BAA4B,MAAM;AAhLpD,QAAA,IAAA,EAAA;AAiLM,QAAA,MAAM,aAAgB,GAAA,CAAA,EAAA,GAAA,gBAAA,CAAiB,QAAQ,CAAA,KAAzB,IAA8B,GAAA,EAAA,GAAA,eAAA;AACpD,QAAA,MAAM,YAAe,GAAA,iBAAA;AAAA,UACnB,KAAK,KAAM,CAAA,IAAA;AAAA,UACX,KAAK,KAAM,CAAA,EAAA;AAAA,UACX,aAAA;AAAA,UACA,KAAK,KAAM,CAAA,oBAAA;AAAA,UACX,KAAK,KAAM,CAAA,eAAA;AAAA,UACX,KAAK,KAAM,CAAA;AAAA,SACb;AACA,QAAA,IAAA,CAAK,SAAS,EAAE,QAAA,EAAU,aAAe,EAAA,KAAA,EAAO,cAAc,CAAA;AAAA,OAC/D,CAAA;AAAA,KACH;AAEA,IAAA,IAAA,CAAO,YAAY,MAAM;AACvB,MAAA,IAAA,CAAK,aAAa,CAAC,CAAA;AACnB,MAAA,IAAA,CAAK,YAAa,CAAA,IAAI,YAAa,EAAA,EAAG,IAAI,CAAA;AAAA,KAC5C;AA9JE,IAAA,IAAA,CAAK,oBAAqB,CAAA,IAAA,CAAK,WAAY,CAAA,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA;AACvD,EAEQ,WAAc,GAAA;AAEpB,IAAI,IAAA,CAAC,IAAK,CAAA,KAAA,CAAM,QAAU,EAAA;AACxB,MAAM,MAAA,cAAA,GAAiB,KAAK,iBAAkB,EAAA;AAC9C,MAAA,IAAI,mBAAmB,IAAM,EAAA;AAC3B,QAAA,IAAA,CAAK,KAAM,CAAA,GAAA;AAAA,UACT,cAAe,CAAA,gBAAA,CAAiB,CAAC,CAAA,EAAG,CAAM,KAAA;AACxC,YAAA,IAAI,EAAE,QAAa,KAAA,MAAA,IAAa,CAAE,CAAA,QAAA,KAAa,EAAE,QAAU,EAAA;AACzD,cAAA,IAAA,CAAK,aAAa,CAAC,CAAA;AAAA;AACrB,WACD;AAAA,SACH;AAAA;AACF;AAGF,IAAA,IAAI,UAAU,mBAAoB,CAAA,IAAA,CAAK,KAAM,CAAA,KAAA,CAAM,GAAG,CAAG,EAAA;AACvD,MAAA,IAAA,CAAK,cAAe,EAAA;AAAA;AAGtB,IAAA,OAAO,MAAM;AACX,MAAI,IAAA,IAAA,CAAK,MAAM,SAAW,EAAA;AACxB,QAAa,YAAA,CAAA,MAAA,CAAO,QAAS,CAAA,IAAA,CAAK,SAAS,CAAA;AAAA;AAC7C,KACF;AAAA;AACF,EAEQ,cAAiB,GAAA;AAhE3B,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiEI,IAAI,IAAA,EAAA;AACJ,IAAA,IAAA,CAAA,CAAI,gBAAK,KAAL,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,iBAAZ,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAA+B,aAAY,MAAW,EAAA;AACxD,MAAA,EAAA,GAAK,IAAK,CAAA,0BAAA,CAA2B,IAAK,CAAA,KAAA,CAAM,kBAAkB,OAAO,CAAA;AAAA;AAE3E,IAAA,IAAA,CAAA,CAAI,gBAAK,KAAL,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,iBAAZ,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAA+B,aAAY,MAAW,EAAA;AACxD,MAAA,EAAA,GAAK,KAAK,GAAI,CAAA,IAAA,CAAK,MAAM,iBAAkB,CAAA,OAAA,EAAS,kBAAM,QAAQ,CAAA;AAAA;AAEpE,IAAA,IAAI,OAAO,MAAW,EAAA;AACpB,MAAA,IAAA,CAAK,aAAa,EAAE,CAAA;AAAA;AACtB;AACF;AAAA;AAAA;AAAA,EAKQ,iBAAoB,GAAA;AAC1B,IAAA,IAAI,CAAC,IAAK,CAAA,MAAA,IAAU,CAAC,IAAA,CAAK,OAAO,MAAQ,EAAA;AACvC,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,MAAM,SAAS,UAA+B,CAAA,IAAA,CAAK,MAAO,CAAA,MAAA,EAAQ,CAAC,CAAM,KAAA;AACvE,MAAA,IAAI,EAAE,KAAM,CAAA,UAAA,IAAc,EAAE,KAAM,CAAA,UAAA,CAAW,MAAM,QAAU,EAAA;AAC3D,QAAA,OAAO,EAAE,KAAM,CAAA,UAAA;AAAA;AAEjB,MAAO,OAAA,MAAA;AAAA,KACR,CAAA;AAED,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAO,OAAA,IAAA;AAAA;AAGT,IAAO,OAAA,MAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,aAAa,cAAwB,EAAA;AAxG/C,IAAA,IAAA,EAAA;AAyGI,IAAA,MAAM,KAAQ,GAAA,iBAAA;AAAA,MACZ,KAAK,KAAM,CAAA,IAAA;AAAA,MACX,KAAK,KAAM,CAAA,EAAA;AAAA,MAAA,CACX,EAAK,GAAA,IAAA,CAAA,KAAA,CAAM,QAAX,KAAA,IAAA,GAAA,EAAA,GAAuB,WAAY,EAAA;AAAA,MACnC,KAAK,KAAM,CAAA,oBAAA;AAAA,MACX,KAAK,KAAM,CAAA,eAAA;AAAA,MACX,KAAK,KAAM,CAAA;AAAA,KACb;AAEA,IAAM,MAAA,IAAA,GAAO,MAAM,EAAG,CAAA,IAAA,CAAK,KAAK,KAAM,CAAA,KAAA,CAAM,IAAI,cAAc,CAAA;AAC9D,IAAA,IAAI,QAAQ,cAAgB,EAAA;AAC1B,MAAK,IAAA,CAAA,QAAA,CAAS,EAAE,KAAA,EAAO,CAAA;AAAA;AACzB;AACF,EAEQ,2BAA2B,OAAyB,EAAA;AAC1D,IAAM,MAAA,UAAA,GAAa,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,EAAA,CAAG,KAAK,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,IAAA,EAAM,cAAc,CAAA;AACjF,IAAA,OAAO,IAAK,CAAA,IAAA,CAAM,UAAa,GAAA,GAAA,GAAO,OAAO,CAAA;AAAA;AAC/C,EAEO,WAAwB,GAAA;AAE7B,IAAA,IAAI,KAAK,KAAM,CAAA,QAAA,IAAY,iBAAiB,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAG,EAAA;AAChE,MAAA,OAAO,KAAK,KAAM,CAAA,QAAA;AAAA;AAIpB,IAAM,MAAA,cAAA,GAAiB,KAAK,iBAAkB,EAAA;AAC9C,IAAA,IAAI,mBAAmB,IAAQ,IAAA,gBAAA,CAAiB,cAAe,CAAA,KAAA,CAAM,QAAQ,CAAG,EAAA;AAC9E,MAAA,OAAO,eAAe,KAAM,CAAA,QAAA;AAAA;AAI9B,IAAA,OAAO,WAAY,EAAA;AAAA;AACrB,EAwDO,WAAc,GAAA;AACnB,IAAM,MAAA,MAAA,GAAS,gBAAgB,eAAgB,EAAA;AAC/C,IAAA,MAAM,SAAkC,GAAA,EAAE,IAAM,EAAA,IAAA,CAAK,KAAM,CAAA,IAAA,EAAM,EAAI,EAAA,IAAA,CAAK,KAAM,CAAA,EAAA,EAAI,QAAU,EAAA,IAAA,CAAK,aAAc,EAAA;AAGjH,IAAA,IAAI,MAAO,CAAA,IAAA,IAAQ,MAAO,CAAA,aAAa,CAAG,EAAA;AACxC,MAAA,SAAA,CAAU,IAAO,GAAA,IAAA;AACjB,MAAA,SAAA,CAAU,aAAa,CAAI,GAAA,IAAA;AAAA;AAG7B,IAAO,OAAA,SAAA;AAAA;AACT,EAEO,cAAc,MAA8B,EAAA;AAhNrD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiNI,IAAA,MAAM,SAAuC,EAAC;AAE9C,IAAI,IAAA,IAAA,GAAO,aAAc,CAAA,MAAA,CAAO,IAAI,CAAA;AACpC,IAAI,IAAA,EAAA,GAAK,aAAc,CAAA,MAAA,CAAO,EAAE,CAAA;AAEhC,IAAA,IAAI,MAAO,CAAA,IAAA,IAAQ,MAAO,CAAA,aAAa,CAAG,EAAA;AACxC,MAAM,MAAA,IAAA,GAAO,KAAM,CAAA,OAAA,CAAQ,MAAO,CAAA,IAAI,IAAI,MAAO,CAAA,IAAA,CAAK,CAAC,CAAA,GAAI,MAAO,CAAA,IAAA;AAClE,MAAA,MAAM,UAAa,GAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,CAAO,aAAa,CAAC,CAAI,GAAA,MAAA,CAAO,aAAa,CAAA,CAAE,CAAC,CAAA,GAAI,OAAO,aAAa,CAAA;AACzG,MAAM,MAAA,SAAA,GAAY,aAAc,CAAA,IAAA,EAAM,UAAU,CAAA;AAChD,MAAA,IAAI,SAAU,CAAA,IAAA,IAAQ,OAAQ,CAAA,SAAA,CAAU,IAAI,CAAG,EAAA;AAC7C,QAAA,IAAA,GAAO,SAAU,CAAA,IAAA;AAAA;AAGnB,MAAA,IAAI,SAAU,CAAA,EAAA,IAAM,OAAQ,CAAA,SAAA,CAAU,EAAE,CAAG,EAAA;AACzC,QAAA,EAAA,GAAK,SAAU,CAAA,EAAA;AAAA;AACjB;AAGF,IAAI,IAAA,IAAA,IAAQ,OAAQ,CAAA,IAAI,CAAG,EAAA;AACzB,MAAA,MAAA,CAAO,IAAO,GAAA,IAAA;AAAA;AAGhB,IAAI,IAAA,EAAA,IAAM,OAAQ,CAAA,EAAE,CAAG,EAAA;AACrB,MAAA,MAAA,CAAO,EAAK,GAAA,EAAA;AAAA;AAGd,IAAI,IAAA,OAAO,MAAO,CAAA,QAAA,KAAa,QAAU,EAAA;AACvC,MAAA,MAAA,CAAO,QAAW,GAAA,MAAA,CAAO,QAAa,KAAA,EAAA,GAAK,OAAO,QAAW,GAAA,MAAA;AAAA;AAG/D,IAAA,IAAI,MAAO,CAAA,IAAA,CAAK,MAAM,CAAA,CAAE,WAAW,CAAG,EAAA;AACpC,MAAA;AAAA;AAGF,IAAA,MAAA,CAAO,KAAQ,GAAA,iBAAA;AAAA,MAAA,CACb,EAAO,GAAA,MAAA,CAAA,IAAA,KAAP,IAAe,GAAA,EAAA,GAAA,IAAA,CAAK,KAAM,CAAA,IAAA;AAAA,MAAA,CAC1B,EAAO,GAAA,MAAA,CAAA,EAAA,KAAP,IAAa,GAAA,EAAA,GAAA,IAAA,CAAK,KAAM,CAAA,EAAA;AAAA,MAAA,CACxB,EAAO,GAAA,MAAA,CAAA,QAAA,KAAP,IAAmB,GAAA,EAAA,GAAA,IAAA,CAAK,WAAY,EAAA;AAAA,MACpC,KAAK,KAAM,CAAA,oBAAA;AAAA,MACX,KAAK,KAAM,CAAA,eAAA;AAAA,MACX,KAAK,KAAM,CAAA;AAAA,KACb;AAEA,IAAO,OAAA,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA;AAE/B;AAOA,SAAS,aAAA,CAAc,MAAc,UAAoB,EAAA;AAEvD,EAAA,MAAM,SAAY,GAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,IAAI,CAAC,CAAI,GAAA,QAAA,CAAS,IAAM,EAAA,EAAE,CAAI,GAAA,IAAA,CAAK,MAAM,IAAI,CAAA;AAEhF,EAAI,IAAA,YAAA;AAEJ,EAAA,IAAI,WAAW,KAAM,CAAA,OAAO,KAAK,QAAS,CAAA,UAAA,EAAY,EAAE,CAAG,EAAA;AAEzD,IAAe,YAAA,GAAA,QAAA,CAAS,YAAY,EAAE,CAAA;AAAA,GACjC,MAAA;AACL,IAAe,YAAA,GAAA,SAAA,CAAU,aAAa,UAAU,CAAA;AAAA;AAGlD,EAAO,OAAA;AAAA,IACL,MAAM,KAAM,CAAA,SAAA,GAAY,YAAe,GAAA,CAAC,EAAE,WAAY,EAAA;AAAA,IACtD,IAAI,KAAM,CAAA,SAAA,GAAY,YAAe,GAAA,CAAC,EAAE,WAAY;AAAA,GACtD;AACF;AAOA,SAAS,iBAAiB,QAAuC,EAAA;AAC/D,EAAA,IAAI,aAAa,MAAW,EAAA;AAC1B,IAAO,OAAA,MAAA;AAAA;AAGT,EAAI,IAAA,OAAA,CAAQ,QAAQ,CAAG,EAAA;AACrB,IAAO,OAAA,MAAA,CAAO,SAAS,IAAK,CAAA,QAAA;AAAA;AAG9B,EAAA,IAAI,aAAa,eAAiB,EAAA;AAChC,IAAO,OAAA,QAAA;AAAA;AAGT,EAAI,IAAA,OAAA,CAAQ,QAAQ,CAAG,EAAA;AACrB,IAAO,OAAA,QAAA;AAAA;AAGT,EAAc,aAAA,CAAA,gBAAA,EAAkB,CAAqB,kBAAA,EAAA,QAAQ,CAAa,WAAA,CAAA,CAAA;AAC1E,EAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneTimeRangeTransformerBase.js","sources":["../../../../../../src/core/SceneTimeRangeTransformerBase.tsx"],"sourcesContent":["import { TimeRange } from '@grafana/data';\nimport { TimeZone } from '@grafana/schema';\nimport { sceneGraph } from './sceneGraph';\nimport { SceneObjectBase } from './SceneObjectBase';\nimport { SceneTimeRangeLike, SceneTimeRangeState } from './types';\n\n/**\n * @internal\n * Used by SceneTimeZoneOverride and main repo PanelTimeRange.\n * Not recommened to be used by plugins directly.\n */\nexport abstract class SceneTimeRangeTransformerBase<T extends SceneTimeRangeState>\n extends SceneObjectBase<T>\n implements SceneTimeRangeLike\n{\n public constructor(state: T) {\n super(state);\n\n this.addActivationHandler(this._activationHandler);\n }\n\n protected getAncestorTimeRange() {\n if (!this.parent || !this.parent.parent) {\n throw new Error(typeof this + ' must be used within $timeRange scope');\n }\n\n return sceneGraph.getTimeRange(this.parent.parent);\n }\n\n private _activationHandler = () => {\n const ancestorTimeRange = this.getAncestorTimeRange();\n\n this.ancestorTimeRangeChanged(ancestorTimeRange.state);\n\n this._subs.add(ancestorTimeRange.subscribeToState((s) => this.ancestorTimeRangeChanged(s)));\n };\n\n protected abstract ancestorTimeRangeChanged(timeRange: SceneTimeRangeState): void;\n\n public getTimeZone(): TimeZone {\n return this.getAncestorTimeRange().getTimeZone();\n }\n\n public onTimeRangeChange(timeRange: TimeRange): void {\n this.getAncestorTimeRange().onTimeRangeChange(timeRange);\n }\n\n public onTimeZoneChange(timeZone: string): void {\n this.getAncestorTimeRange().onTimeZoneChange(timeZone);\n }\n\n public onRefresh(): void {\n this.getAncestorTimeRange().onRefresh();\n }\n}\n"],"names":[],"mappings":";;;AAWO,MAAe,sCACZ,eAEV,CAAA;AAAA,EACS,YAAY,KAAU,EAAA;AAC3B,IAAA,KAAA,CAAM,KAAK,CAAA;AAab,IAAA,IAAA,CAAQ,qBAAqB,MAAM;AACjC,MAAM,MAAA,iBAAA,GAAoB,KAAK,oBAAqB,EAAA;AAEpD,MAAK,IAAA,CAAA,wBAAA,CAAyB,kBAAkB,KAAK,CAAA;AAErD,MAAK,IAAA,CAAA,KAAA,CAAM,GAAI,CAAA,iBAAA,CAAkB,gBAAiB,CAAA,CAAC,MAAM,IAAK,CAAA,wBAAA,CAAyB,CAAC,CAAC,CAAC,CAAA;AAAA,KAC5F;AAjBE,IAAK,IAAA,CAAA,oBAAA,CAAqB,KAAK,kBAAkB,CAAA;AAAA;AACnD,EAEU,oBAAuB,GAAA;AAC/B,IAAA,IAAI,CAAC,IAAK,CAAA,MAAA,IAAU,CAAC,IAAA,CAAK,OAAO,MAAQ,EAAA;AACvC,MAAA,MAAM,IAAI,KAAA,CAAM,OAAO,IAAA,GAAO,uCAAuC,CAAA;AAAA;AAGvE,IAAA,OAAO,UAAW,CAAA,YAAA,CAAa,IAAK,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA;AACnD,EAYO,WAAwB,GAAA;AAC7B,IAAO,OAAA,IAAA,CAAK,oBAAqB,EAAA,CAAE,WAAY,EAAA;AAAA;AACjD,EAEO,kBAAkB,SAA4B,EAAA;AACnD,IAAK,IAAA,CAAA,oBAAA,EAAuB,CAAA,iBAAA,CAAkB,SAAS,CAAA;AAAA;AACzD,EAEO,iBAAiB,QAAwB,EAAA;AAC9C,IAAK,IAAA,CAAA,oBAAA,EAAuB,CAAA,gBAAA,CAAiB,QAAQ,CAAA;AAAA;AACvD,EAEO,SAAkB,GAAA;AACvB,IAAK,IAAA,CAAA,oBAAA,GAAuB,SAAU,EAAA;AAAA;AAE1C;;;;"}
|