@grafana/scenes 6.7.0 → 6.8.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/CHANGELOG.md +13 -0
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +33 -0
- package/dist/esm/dist/esm/behaviors/CursorSync.js +76 -0
- package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +44 -0
- package/dist/esm/dist/esm/behaviors/SceneQueryController.js +14 -0
- package/dist/esm/dist/esm/components/EmbeddedScene.js +59 -0
- package/dist/esm/dist/esm/components/NestedScene.js +95 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +27 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +176 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +104 -0
- package/dist/esm/dist/esm/components/SceneApp/utils.js +42 -0
- package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +41 -0
- package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +55 -0
- package/dist/esm/dist/esm/components/SceneCanvasText.js +32 -0
- package/dist/esm/dist/esm/components/SceneControlsSpacer.js +17 -0
- package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +82 -0
- package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +72 -0
- package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +77 -0
- package/dist/esm/dist/esm/components/SceneReactObject.js +34 -0
- package/dist/esm/dist/esm/components/SceneRefreshPicker.js +205 -0
- package/dist/esm/dist/esm/components/SceneTimePicker.js +139 -0
- package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +240 -0
- package/dist/esm/dist/esm/components/SceneToolbarButton.js +33 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +406 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +44 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +59 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +285 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +45 -0
- package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
- package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +11 -0
- package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
- package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
- package/dist/esm/dist/esm/components/layout/LazyLoader.js +103 -0
- package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +135 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +30 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +283 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +190 -0
- package/dist/esm/dist/esm/components/layout/grid/constants.js +7 -0
- package/dist/esm/dist/esm/components/layout/grid/utils.js +36 -0
- package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +17 -0
- package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +29 -0
- package/dist/esm/dist/esm/components/layout/split/Splitter.js +386 -0
- package/dist/esm/dist/esm/core/SceneComponentWrapper.js +57 -0
- package/dist/esm/dist/esm/core/SceneDataNode.js +43 -0
- package/dist/esm/dist/esm/core/SceneObjectBase.js +286 -0
- package/dist/esm/dist/esm/core/SceneObjectRef.js +32 -0
- package/dist/esm/dist/esm/core/SceneTimeRange.js +231 -0
- package/dist/esm/dist/esm/core/events.js +11 -0
- package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +10 -0
- package/dist/esm/dist/esm/core/sceneGraph/index.js +25 -0
- package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +178 -0
- package/dist/esm/dist/esm/core/sceneGraph/utils.js +64 -0
- package/dist/esm/dist/esm/core/types.js +15 -0
- package/dist/esm/dist/esm/querying/DataLayersMerger.js +46 -0
- package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +6 -0
- package/dist/esm/dist/esm/querying/RuntimeDataSource.js +6 -0
- package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +100 -0
- package/dist/esm/dist/esm/querying/SceneQueryRunner.js +468 -0
- package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +46 -0
- package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +12 -0
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +112 -0
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +51 -0
- package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
- package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +85 -0
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +121 -0
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
- package/dist/esm/dist/esm/querying/layers/annotations/utils.js +77 -0
- package/dist/esm/dist/esm/querying/registerQueryWithController.js +41 -0
- package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +30 -0
- package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +45 -0
- package/dist/esm/dist/esm/services/UrlSyncManager.js +167 -0
- package/dist/esm/dist/esm/services/useUrlSync.js +29 -0
- package/dist/esm/dist/esm/services/utils.js +71 -0
- package/dist/esm/dist/esm/utils/ControlsLabel.js +107 -0
- package/dist/esm/dist/esm/utils/LoadingIndicator.js +19 -0
- package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +39 -0
- package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
- package/dist/esm/dist/esm/utils/date.js +15 -0
- package/dist/esm/dist/esm/utils/evaluateTimeRange.js +16 -0
- package/dist/esm/dist/esm/utils/explore.js +47 -0
- package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +4 -0
- package/dist/esm/dist/esm/utils/getDataSource.js +18 -0
- package/dist/esm/dist/esm/utils/getMessageFromError.js +24 -0
- package/dist/esm/dist/esm/utils/metricTree.js +53 -0
- package/dist/esm/dist/esm/utils/parseUrlParam.js +41 -0
- package/dist/esm/dist/esm/utils/utils.js +11 -0
- package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +30 -0
- package/dist/esm/dist/esm/utils/writeSceneLog.js +12 -0
- package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +150 -0
- package/dist/esm/dist/esm/variables/VariableValueRecorder.js +71 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +24 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +303 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +289 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
- package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +13 -0
- package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +47 -0
- package/dist/esm/dist/esm/variables/components/VariableValueControl.js +23 -0
- package/dist/esm/dist/esm/variables/components/VariableValueInput.js +33 -0
- package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +228 -0
- package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +72 -0
- package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +15 -0
- package/dist/esm/dist/esm/variables/constants.js +9 -0
- package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +12 -0
- package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +259 -0
- package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
- package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
- package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +40 -0
- package/dist/esm/dist/esm/variables/interpolation/defaults.js +21 -0
- package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +13 -0
- package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +296 -0
- package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +87 -0
- package/dist/esm/dist/esm/variables/lookupVariable.js +20 -0
- package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +57 -0
- package/dist/esm/dist/esm/variables/macros/contextMacros.js +43 -0
- package/dist/esm/dist/esm/variables/macros/dataMacros.js +134 -0
- package/dist/esm/dist/esm/variables/macros/index.js +26 -0
- package/dist/esm/dist/esm/variables/macros/templateProxies.js +51 -0
- package/dist/esm/dist/esm/variables/macros/timeMacros.js +86 -0
- package/dist/esm/dist/esm/variables/macros/types.js +11 -0
- package/dist/esm/dist/esm/variables/macros/urlMacros.js +56 -0
- package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +254 -0
- package/dist/esm/dist/esm/variables/types.js +11 -0
- package/dist/esm/dist/esm/variables/utils.js +172 -0
- package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +38 -0
- package/dist/esm/dist/esm/variables/variants/CustomVariable.js +60 -0
- package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +88 -0
- package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +117 -0
- package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +295 -0
- package/dist/esm/dist/esm/variables/variants/TestVariable.js +117 -0
- package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +61 -0
- package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +139 -0
- package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +129 -0
- package/dist/esm/dist/esm/variables/variants/query/guards.js +28 -0
- package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +96 -0
- package/dist/esm/dist/esm/variables/variants/query/utils.js +124 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/querying/DataProviderSharer.js +39 -0
- package/dist/esm/src/behaviors/ActWhenVariableChanged.js +27 -0
- package/dist/esm/src/behaviors/CursorSync.js +76 -0
- package/dist/esm/src/behaviors/LiveNowTimer.js +44 -0
- package/dist/esm/src/behaviors/SceneQueryController.js +60 -0
- package/dist/esm/src/behaviors/index.js +5 -0
- package/dist/esm/src/components/EmbeddedScene.js +59 -0
- package/dist/esm/src/components/NestedScene.js +95 -0
- package/dist/esm/src/components/SceneApp/SceneApp.js +37 -0
- package/dist/esm/src/components/SceneApp/SceneAppPage.js +176 -0
- package/dist/esm/src/components/SceneApp/SceneAppPageView.js +104 -0
- package/dist/esm/src/components/SceneApp/utils.js +42 -0
- package/dist/esm/src/components/SceneByFrameRepeater.js +41 -0
- package/dist/esm/src/components/SceneByVariableRepeater.js +55 -0
- package/dist/esm/src/components/SceneCanvasText.js +32 -0
- package/dist/esm/src/components/SceneControlsSpacer.js +17 -0
- package/dist/esm/src/components/SceneDebugger/DebugDetails.js +82 -0
- package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +72 -0
- package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +77 -0
- package/dist/esm/src/components/SceneReactObject.js +34 -0
- package/dist/esm/src/components/SceneRefreshPicker.js +205 -0
- package/dist/esm/src/components/SceneTimePicker.js +139 -0
- package/dist/esm/src/components/SceneTimeRangeCompare.js +240 -0
- package/dist/esm/src/components/SceneToolbarButton.js +33 -0
- package/dist/esm/src/components/VizPanel/VizPanel.js +406 -0
- package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +44 -0
- package/dist/esm/src/components/VizPanel/VizPanelMenu.js +59 -0
- package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +285 -0
- package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +45 -0
- package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +72 -0
- package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +56 -0
- package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
- package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
- package/dist/esm/src/components/layout/LazyLoader.js +103 -0
- package/dist/esm/src/components/layout/SceneFlexLayout.js +135 -0
- package/dist/esm/src/components/layout/grid/SceneGridItem.js +30 -0
- package/dist/esm/src/components/layout/grid/SceneGridLayout.js +283 -0
- package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
- package/dist/esm/src/components/layout/grid/SceneGridRow.js +190 -0
- package/dist/esm/src/components/layout/grid/constants.js +7 -0
- package/dist/esm/src/components/layout/grid/utils.js +36 -0
- package/dist/esm/src/components/layout/split/SplitLayout.js +17 -0
- package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +29 -0
- package/dist/esm/src/components/layout/split/Splitter.js +386 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +100 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +75 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +75 -0
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +22 -0
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +85 -0
- package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +52 -0
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +78 -0
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +114 -0
- package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +162 -0
- package/dist/esm/src/core/PanelBuilders/index.js +116 -0
- package/dist/esm/src/core/SceneComponentWrapper.js +57 -0
- package/dist/esm/src/core/SceneDataNode.js +43 -0
- package/dist/esm/src/core/SceneObjectBase.js +286 -0
- package/dist/esm/src/core/SceneObjectRef.js +32 -0
- package/dist/esm/src/core/SceneTimeRange.js +231 -0
- package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +35 -0
- package/dist/esm/src/core/SceneTimeZoneOverride.js +63 -0
- package/dist/esm/src/core/events.js +11 -0
- package/dist/esm/src/core/sceneGraph/getTimeRange.js +10 -0
- package/dist/esm/src/core/sceneGraph/index.js +25 -0
- package/dist/esm/src/core/sceneGraph/sceneGraph.js +178 -0
- package/dist/esm/src/core/sceneGraph/utils.js +64 -0
- package/dist/esm/src/core/types.js +15 -0
- package/dist/esm/src/index.js +108 -0
- package/dist/esm/src/querying/DataLayersMerger.js +46 -0
- package/dist/esm/src/querying/DataProviderProxy.js +37 -0
- package/dist/esm/src/querying/DataProviderSharer.js +108 -0
- package/dist/esm/src/querying/ExtraQueryProvider.js +6 -0
- package/dist/esm/src/querying/RuntimeDataSource.js +49 -0
- package/dist/esm/src/querying/SceneDataLayerSet.js +100 -0
- package/dist/esm/src/querying/SceneDataTransformer.js +178 -0
- package/dist/esm/src/querying/SceneQueryRunner.js +468 -0
- package/dist/esm/src/querying/extraQueryProcessingOperator.js +46 -0
- package/dist/esm/src/querying/getEnrichedDataRequest.js +12 -0
- package/dist/esm/src/querying/layers/SceneDataLayerBase.js +112 -0
- package/dist/esm/src/querying/layers/SceneDataLayerControls.js +51 -0
- package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
- package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +85 -0
- package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +121 -0
- package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
- package/dist/esm/src/querying/layers/annotations/utils.js +77 -0
- package/dist/esm/src/querying/layers/index.js +2 -0
- package/dist/esm/src/querying/registerQueryWithController.js +41 -0
- package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +30 -0
- package/dist/esm/src/services/UniqueUrlKeyMapper.js +45 -0
- package/dist/esm/src/services/UrlSyncContextProvider.js +17 -0
- package/dist/esm/src/services/UrlSyncManager.js +167 -0
- package/dist/esm/src/services/useUrlSync.js +29 -0
- package/dist/esm/src/services/utils.js +75 -0
- package/dist/esm/src/utils/ControlsLabel.js +107 -0
- package/dist/esm/src/utils/LoadingIndicator.js +19 -0
- package/dist/esm/src/utils/SafeSerializableSceneObject.js +39 -0
- package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
- package/dist/esm/src/utils/date.js +15 -0
- package/dist/esm/src/utils/evaluateTimeRange.js +16 -0
- package/dist/esm/src/utils/explore.js +47 -0
- package/dist/esm/src/utils/getCompareSeriesRefId.js +4 -0
- package/dist/esm/src/utils/getDataSource.js +18 -0
- package/dist/esm/src/utils/getMessageFromError.js +24 -0
- package/dist/esm/src/utils/metricTree.js +53 -0
- package/dist/esm/src/utils/parseUrlParam.js +41 -0
- package/dist/esm/src/utils/utils.js +11 -0
- package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +30 -0
- package/dist/esm/src/utils/writeSceneLog.js +12 -0
- package/dist/esm/src/variables/VariableDependencyConfig.js +150 -0
- package/dist/esm/src/variables/VariableValueRecorder.js +71 -0
- package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +24 -0
- package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +303 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +289 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
- package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +13 -0
- package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +47 -0
- package/dist/esm/src/variables/components/VariableValueControl.js +23 -0
- package/dist/esm/src/variables/components/VariableValueInput.js +33 -0
- package/dist/esm/src/variables/components/VariableValueSelect.js +228 -0
- package/dist/esm/src/variables/components/VariableValueSelectors.js +72 -0
- package/dist/esm/src/variables/components/getOptionSearcher.js +15 -0
- package/dist/esm/src/variables/constants.js +9 -0
- package/dist/esm/src/variables/getEnrichedFiltersRequest.js +12 -0
- package/dist/esm/src/variables/groupby/GroupByVariable.js +259 -0
- package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
- package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
- package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +40 -0
- package/dist/esm/src/variables/interpolation/defaults.js +21 -0
- package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +13 -0
- package/dist/esm/src/variables/interpolation/formatRegistry.js +296 -0
- package/dist/esm/src/variables/interpolation/sceneInterpolator.js +87 -0
- package/dist/esm/src/variables/lookupVariable.js +20 -0
- package/dist/esm/src/variables/macros/AllVariablesMacro.js +57 -0
- package/dist/esm/src/variables/macros/contextMacros.js +43 -0
- package/dist/esm/src/variables/macros/dataMacros.js +134 -0
- package/dist/esm/src/variables/macros/index.js +35 -0
- package/dist/esm/src/variables/macros/templateProxies.js +51 -0
- package/dist/esm/src/variables/macros/timeMacros.js +86 -0
- package/dist/esm/src/variables/macros/types.js +11 -0
- package/dist/esm/src/variables/macros/urlMacros.js +56 -0
- package/dist/esm/src/variables/sets/SceneVariableSet.js +254 -0
- package/dist/esm/src/variables/types.js +11 -0
- package/dist/esm/src/variables/utils.js +172 -0
- package/dist/esm/src/variables/variants/ConstantVariable.js +38 -0
- package/dist/esm/src/variables/variants/CustomVariable.js +60 -0
- package/dist/esm/src/variables/variants/DataSourceVariable.js +88 -0
- package/dist/esm/src/variables/variants/IntervalVariable.js +117 -0
- package/dist/esm/src/variables/variants/JsonVariable.js +193 -0
- package/dist/esm/src/variables/variants/LocalValueVariable.js +56 -0
- package/dist/esm/src/variables/variants/MultiValueVariable.js +295 -0
- package/dist/esm/src/variables/variants/TestVariable.js +117 -0
- package/dist/esm/src/variables/variants/TextBoxVariable.js +61 -0
- package/dist/esm/src/variables/variants/guards.js +27 -0
- package/dist/esm/src/variables/variants/query/QueryVariable.js +139 -0
- package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +129 -0
- package/dist/esm/src/variables/variants/query/guards.js +28 -0
- package/dist/esm/src/variables/variants/query/toMetricFindValues.js +96 -0
- package/dist/esm/src/variables/variants/query/utils.js +124 -0
- package/dist/esm/variables/components/VariableValueSelect.js +13 -9
- package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
- package/dist/esm/variables/variants/ConstantVariable.js +22 -0
- package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
- package/dist/esm/variables/variants/CustomVariable.js +3 -2
- package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
- package/dist/esm/variables/variants/DataSourceVariable.js +3 -2
- package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
- package/dist/esm/variables/variants/JsonVariable.js +96 -0
- package/dist/esm/variables/variants/TestVariable.js +3 -2
- package/dist/esm/variables/variants/TestVariable.js.map +1 -1
- package/dist/esm/variables/variants/json/JsonVariable.js +95 -0
- package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +70 -0
- package/dist/esm/variables/variants/query/QueryVariable.js +3 -2
- package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.js +35 -13
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { isSystemOverrideWithRef, FieldMatcherID, ByNamesMatcherMode, FieldType, getFieldDisplayName, fieldMatchers } from '@grafana/data';
|
|
2
|
+
import { SeriesVisibilityChangeMode } from '@grafana/ui';
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defProps = Object.defineProperties;
|
|
6
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __spreadValues = (a, b) => {
|
|
12
|
+
for (var prop in b || (b = {}))
|
|
13
|
+
if (__hasOwnProp.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
if (__getOwnPropSymbols)
|
|
16
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
+
if (__propIsEnum.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
}
|
|
20
|
+
return a;
|
|
21
|
+
};
|
|
22
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
23
|
+
const displayOverrideRef = "hideSeriesFrom";
|
|
24
|
+
const isHideSeriesOverride = isSystemOverrideWithRef(displayOverrideRef);
|
|
25
|
+
function seriesVisibilityConfigFactory(label, mode, fieldConfig, data) {
|
|
26
|
+
const { overrides } = fieldConfig;
|
|
27
|
+
const displayName = label;
|
|
28
|
+
const currentIndex = overrides.findIndex(isHideSeriesOverride);
|
|
29
|
+
if (currentIndex < 0) {
|
|
30
|
+
if (mode === SeriesVisibilityChangeMode.ToggleSelection) {
|
|
31
|
+
const override3 = createOverride([displayName, ...getNamesOfHiddenFields(overrides, data)]);
|
|
32
|
+
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
33
|
+
overrides: [...fieldConfig.overrides, override3]
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const displayNames = getDisplayNames(data, displayName);
|
|
37
|
+
const override2 = createOverride(displayNames);
|
|
38
|
+
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
39
|
+
overrides: [...fieldConfig.overrides, override2]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const overridesCopy = Array.from(overrides);
|
|
43
|
+
const [current] = overridesCopy.splice(currentIndex, 1);
|
|
44
|
+
if (mode === SeriesVisibilityChangeMode.ToggleSelection) {
|
|
45
|
+
let existing = getExistingDisplayNames(current);
|
|
46
|
+
const nameOfHiddenFields = getNamesOfHiddenFields(overridesCopy, data);
|
|
47
|
+
if (nameOfHiddenFields.length > 0) {
|
|
48
|
+
existing = existing.filter((el) => nameOfHiddenFields.indexOf(el) < 0);
|
|
49
|
+
}
|
|
50
|
+
if (existing[0] === displayName && existing.length === 1) {
|
|
51
|
+
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
52
|
+
overrides: overridesCopy
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const override2 = createOverride([displayName, ...nameOfHiddenFields]);
|
|
56
|
+
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
57
|
+
overrides: [...overridesCopy, override2]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const override = createExtendedOverride(current, displayName);
|
|
61
|
+
if (allFieldsAreExcluded(override, data)) {
|
|
62
|
+
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
63
|
+
overrides: overridesCopy
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
67
|
+
overrides: [...overridesCopy, override]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function createOverride(names, mode = ByNamesMatcherMode.exclude, property) {
|
|
71
|
+
property = property != null ? property : {
|
|
72
|
+
id: "custom.hideFrom",
|
|
73
|
+
value: {
|
|
74
|
+
viz: true,
|
|
75
|
+
legend: false,
|
|
76
|
+
tooltip: false
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
__systemRef: displayOverrideRef,
|
|
81
|
+
matcher: {
|
|
82
|
+
id: FieldMatcherID.byNames,
|
|
83
|
+
options: {
|
|
84
|
+
mode,
|
|
85
|
+
names,
|
|
86
|
+
prefix: mode === ByNamesMatcherMode.exclude ? "All except:" : void 0,
|
|
87
|
+
readOnly: true
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
properties: [
|
|
91
|
+
__spreadProps(__spreadValues({}, property), {
|
|
92
|
+
value: {
|
|
93
|
+
viz: true,
|
|
94
|
+
legend: false,
|
|
95
|
+
tooltip: false
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
]
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const createExtendedOverride = (current, displayName, mode = ByNamesMatcherMode.exclude) => {
|
|
102
|
+
const property = current.properties.find((p) => p.id === "custom.hideFrom");
|
|
103
|
+
const existing = getExistingDisplayNames(current);
|
|
104
|
+
const index = existing.findIndex((name) => name === displayName);
|
|
105
|
+
if (index < 0) {
|
|
106
|
+
existing.push(displayName);
|
|
107
|
+
} else {
|
|
108
|
+
existing.splice(index, 1);
|
|
109
|
+
}
|
|
110
|
+
return createOverride(existing, mode, property);
|
|
111
|
+
};
|
|
112
|
+
const getExistingDisplayNames = (rule) => {
|
|
113
|
+
var _a;
|
|
114
|
+
const names = (_a = rule.matcher.options) == null ? void 0 : _a.names;
|
|
115
|
+
if (!Array.isArray(names)) {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
return [...names];
|
|
119
|
+
};
|
|
120
|
+
const allFieldsAreExcluded = (override, data) => {
|
|
121
|
+
return getExistingDisplayNames(override).length === getDisplayNames(data).length;
|
|
122
|
+
};
|
|
123
|
+
const getDisplayNames = (data, excludeName) => {
|
|
124
|
+
const unique = /* @__PURE__ */ new Set();
|
|
125
|
+
for (const frame of data) {
|
|
126
|
+
for (const field of frame.fields) {
|
|
127
|
+
if (field.type !== FieldType.number) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const name = getFieldDisplayName(field, frame, data);
|
|
131
|
+
if (name === excludeName) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
unique.add(name);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return Array.from(unique);
|
|
138
|
+
};
|
|
139
|
+
const getNamesOfHiddenFields = (overrides, data) => {
|
|
140
|
+
var _a;
|
|
141
|
+
let names = [];
|
|
142
|
+
for (const override of overrides) {
|
|
143
|
+
const property = override.properties.find((p) => p.id === "custom.hideFrom");
|
|
144
|
+
if (property !== void 0 && ((_a = property.value) == null ? void 0 : _a.legend) === true) {
|
|
145
|
+
const info = fieldMatchers.get(override.matcher.id);
|
|
146
|
+
const matcher = info.get(override.matcher.options);
|
|
147
|
+
for (const frame of data) {
|
|
148
|
+
for (const field of frame.fields) {
|
|
149
|
+
if (field.type !== FieldType.number) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const name = getFieldDisplayName(field, frame, data);
|
|
153
|
+
if (matcher(field, frame, data)) {
|
|
154
|
+
names.push(name);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return names;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export { seriesVisibilityConfigFactory };
|
|
164
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzVmlzaWJpbGl0eUNvbmZpZ0ZhY3RvcnkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1ZpelBhbmVsL3Nlcmllc1Zpc2liaWxpdHlDb25maWdGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ5TmFtZXNNYXRjaGVyTW9kZSxcbiAgQ29uZmlnT3ZlcnJpZGVSdWxlLFxuICBEYXRhRnJhbWUsXG4gIER5bmFtaWNDb25maWdWYWx1ZSxcbiAgRmllbGRDb25maWdTb3VyY2UsXG4gIEZpZWxkTWF0Y2hlcklELFxuICBmaWVsZE1hdGNoZXJzLFxuICBGaWVsZFR5cGUsXG4gIGdldEZpZWxkRGlzcGxheU5hbWUsXG4gIGlzU3lzdGVtT3ZlcnJpZGVXaXRoUmVmLFxuICBTeXN0ZW1Db25maWdPdmVycmlkZVJ1bGUsXG59IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgU2VyaWVzVmlzaWJpbGl0eUNoYW5nZU1vZGUgfSBmcm9tICdAZ3JhZmFuYS91aSc7XG5cbmNvbnN0IGRpc3BsYXlPdmVycmlkZVJlZiA9ICdoaWRlU2VyaWVzRnJvbSc7XG5jb25zdCBpc0hpZGVTZXJpZXNPdmVycmlkZSA9IGlzU3lzdGVtT3ZlcnJpZGVXaXRoUmVmKGRpc3BsYXlPdmVycmlkZVJlZik7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpZXNWaXNpYmlsaXR5Q29uZmlnRmFjdG9yeShcbiAgbGFiZWw6IHN0cmluZyxcbiAgbW9kZTogU2VyaWVzVmlzaWJpbGl0eUNoYW5nZU1vZGUsXG4gIGZpZWxkQ29uZmlnOiBGaWVsZENvbmZpZ1NvdXJjZSxcbiAgZGF0YTogRGF0YUZyYW1lW11cbik6IEZpZWxkQ29uZmlnU291cmNlIHtcbiAgY29uc3QgeyBvdmVycmlkZXMgfSA9IGZpZWxkQ29uZmlnO1xuXG4gIGNvbnN0IGRpc3BsYXlOYW1lID0gbGFiZWw7XG4gIGNvbnN0IGN1cnJlbnRJbmRleCA9IG92ZXJyaWRlcy5maW5kSW5kZXgoaXNIaWRlU2VyaWVzT3ZlcnJpZGUpO1xuXG4gIGlmIChjdXJyZW50SW5kZXggPCAwKSB7XG4gICAgaWYgKG1vZGUgPT09IFNlcmllc1Zpc2liaWxpdHlDaGFuZ2VNb2RlLlRvZ2dsZVNlbGVjdGlvbikge1xuICAgICAgY29uc3Qgb3ZlcnJpZGUgPSBjcmVhdGVPdmVycmlkZShbZGlzcGxheU5hbWUsIC4uLmdldE5hbWVzT2ZIaWRkZW5GaWVsZHMob3ZlcnJpZGVzLCBkYXRhKV0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWVsZENvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVzOiBbLi4uZmllbGRDb25maWcub3ZlcnJpZGVzLCBvdmVycmlkZV0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRpc3BsYXlOYW1lcyA9IGdldERpc3BsYXlOYW1lcyhkYXRhLCBkaXNwbGF5TmFtZSk7XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSBjcmVhdGVPdmVycmlkZShkaXNwbGF5TmFtZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgb3ZlcnJpZGVzOiBbLi4uZmllbGRDb25maWcub3ZlcnJpZGVzLCBvdmVycmlkZV0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG92ZXJyaWRlc0NvcHkgPSBBcnJheS5mcm9tKG92ZXJyaWRlcyk7XG4gIGNvbnN0IFtjdXJyZW50XSA9IG92ZXJyaWRlc0NvcHkuc3BsaWNlKGN1cnJlbnRJbmRleCwgMSkgYXMgU3lzdGVtQ29uZmlnT3ZlcnJpZGVSdWxlW107XG5cbiAgaWYgKG1vZGUgPT09IFNlcmllc1Zpc2liaWxpdHlDaGFuZ2VNb2RlLlRvZ2dsZVNlbGVjdGlvbikge1xuICAgIGxldCBleGlzdGluZyA9IGdldEV4aXN0aW5nRGlzcGxheU5hbWVzKGN1cnJlbnQpO1xuICAgIGNvbnN0IG5hbWVPZkhpZGRlbkZpZWxkcyA9IGdldE5hbWVzT2ZIaWRkZW5GaWVsZHMob3ZlcnJpZGVzQ29weSwgZGF0YSk7XG5cbiAgICBpZiAobmFtZU9mSGlkZGVuRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGV4aXN0aW5nID0gZXhpc3RpbmcuZmlsdGVyKChlbCkgPT4gbmFtZU9mSGlkZGVuRmllbGRzLmluZGV4T2YoZWwpIDwgMCk7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nWzBdID09PSBkaXNwbGF5TmFtZSAmJiBleGlzdGluZy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgICBvdmVycmlkZXM6IG92ZXJyaWRlc0NvcHksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IG92ZXJyaWRlID0gY3JlYXRlT3ZlcnJpZGUoW2Rpc3BsYXlOYW1lLCAuLi5uYW1lT2ZIaWRkZW5GaWVsZHNdKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5maWVsZENvbmZpZyxcbiAgICAgIG92ZXJyaWRlczogWy4uLm92ZXJyaWRlc0NvcHksIG92ZXJyaWRlXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgb3ZlcnJpZGUgPSBjcmVhdGVFeHRlbmRlZE92ZXJyaWRlKGN1cnJlbnQsIGRpc3BsYXlOYW1lKTtcblxuICBpZiAoYWxsRmllbGRzQXJlRXhjbHVkZWQob3ZlcnJpZGUsIGRhdGEpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgICAgb3ZlcnJpZGVzOiBvdmVycmlkZXNDb3B5LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmZpZWxkQ29uZmlnLFxuICAgIG92ZXJyaWRlczogWy4uLm92ZXJyaWRlc0NvcHksIG92ZXJyaWRlXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlT3ZlcnJpZGUoXG4gIG5hbWVzOiBzdHJpbmdbXSxcbiAgbW9kZSA9IEJ5TmFtZXNNYXRjaGVyTW9kZS5leGNsdWRlLFxuICBwcm9wZXJ0eT86IER5bmFtaWNDb25maWdWYWx1ZVxuKTogU3lzdGVtQ29uZmlnT3ZlcnJpZGVSdWxlIHtcbiAgcHJvcGVydHkgPSBwcm9wZXJ0eSA/PyB7XG4gICAgaWQ6ICdjdXN0b20uaGlkZUZyb20nLFxuICAgIHZhbHVlOiB7XG4gICAgICB2aXo6IHRydWUsXG4gICAgICBsZWdlbmQ6IGZhbHNlLFxuICAgICAgdG9vbHRpcDogZmFsc2UsXG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIF9fc3lzdGVtUmVmOiBkaXNwbGF5T3ZlcnJpZGVSZWYsXG4gICAgbWF0Y2hlcjoge1xuICAgICAgaWQ6IEZpZWxkTWF0Y2hlcklELmJ5TmFtZXMsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgIG5hbWVzOiBuYW1lcyxcbiAgICAgICAgcHJlZml4OiBtb2RlID09PSBCeU5hbWVzTWF0Y2hlck1vZGUuZXhjbHVkZSA/ICdBbGwgZXhjZXB0OicgOiB1bmRlZmluZWQsXG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcGVydHksXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdml6OiB0cnVlLFxuICAgICAgICAgIGxlZ2VuZDogZmFsc2UsXG4gICAgICAgICAgdG9vbHRpcDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cbmNvbnN0IGNyZWF0ZUV4dGVuZGVkT3ZlcnJpZGUgPSAoXG4gIGN1cnJlbnQ6IFN5c3RlbUNvbmZpZ092ZXJyaWRlUnVsZSxcbiAgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgbW9kZSA9IEJ5TmFtZXNNYXRjaGVyTW9kZS5leGNsdWRlXG4pOiBTeXN0ZW1Db25maWdPdmVycmlkZVJ1bGUgPT4ge1xuICBjb25zdCBwcm9wZXJ0eSA9IGN1cnJlbnQucHJvcGVydGllcy5maW5kKChwKSA9PiBwLmlkID09PSAnY3VzdG9tLmhpZGVGcm9tJyk7XG4gIGNvbnN0IGV4aXN0aW5nID0gZ2V0RXhpc3RpbmdEaXNwbGF5TmFtZXMoY3VycmVudCk7XG4gIGNvbnN0IGluZGV4ID0gZXhpc3RpbmcuZmluZEluZGV4KChuYW1lKSA9PiBuYW1lID09PSBkaXNwbGF5TmFtZSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIGV4aXN0aW5nLnB1c2goZGlzcGxheU5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGV4aXN0aW5nLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlT3ZlcnJpZGUoZXhpc3RpbmcsIG1vZGUsIHByb3BlcnR5KTtcbn07XG5cbmNvbnN0IGdldEV4aXN0aW5nRGlzcGxheU5hbWVzID0gKHJ1bGU6IFN5c3RlbUNvbmZpZ092ZXJyaWRlUnVsZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgbmFtZXMgPSBydWxlLm1hdGNoZXIub3B0aW9ucz8ubmFtZXM7XG4gIGlmICghQXJyYXkuaXNBcnJheShuYW1lcykpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFsuLi5uYW1lc107XG59O1xuXG5jb25zdCBhbGxGaWVsZHNBcmVFeGNsdWRlZCA9IChvdmVycmlkZTogU3lzdGVtQ29uZmlnT3ZlcnJpZGVSdWxlLCBkYXRhOiBEYXRhRnJhbWVbXSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gZ2V0RXhpc3RpbmdEaXNwbGF5TmFtZXMob3ZlcnJpZGUpLmxlbmd0aCA9PT0gZ2V0RGlzcGxheU5hbWVzKGRhdGEpLmxlbmd0aDtcbn07XG5cbmNvbnN0IGdldERpc3BsYXlOYW1lcyA9IChkYXRhOiBEYXRhRnJhbWVbXSwgZXhjbHVkZU5hbWU/OiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IHVuaXF1ZSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3QgZnJhbWUgb2YgZGF0YSkge1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZnJhbWUuZmllbGRzKSB7XG4gICAgICBpZiAoZmllbGQudHlwZSAhPT0gRmllbGRUeXBlLm51bWJlcikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmFtZSA9IGdldEZpZWxkRGlzcGxheU5hbWUoZmllbGQsIGZyYW1lLCBkYXRhKTtcblxuICAgICAgaWYgKG5hbWUgPT09IGV4Y2x1ZGVOYW1lKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB1bmlxdWUuYWRkKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBBcnJheS5mcm9tKHVuaXF1ZSk7XG59O1xuXG5jb25zdCBnZXROYW1lc09mSGlkZGVuRmllbGRzID0gKG92ZXJyaWRlczogQ29uZmlnT3ZlcnJpZGVSdWxlW10sIGRhdGE6IERhdGFGcmFtZVtdKTogc3RyaW5nW10gPT4ge1xuICBsZXQgbmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBvdmVycmlkZSBvZiBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IG92ZXJyaWRlLnByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5pZCA9PT0gJ2N1c3RvbS5oaWRlRnJvbScpO1xuXG4gICAgaWYgKHByb3BlcnR5ICE9PSB1bmRlZmluZWQgJiYgcHJvcGVydHkudmFsdWU/LmxlZ2VuZCA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgaW5mbyA9IGZpZWxkTWF0Y2hlcnMuZ2V0KG92ZXJyaWRlLm1hdGNoZXIuaWQpO1xuICAgICAgY29uc3QgbWF0Y2hlciA9IGluZm8uZ2V0KG92ZXJyaWRlLm1hdGNoZXIub3B0aW9ucyk7XG5cbiAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgZGF0YSkge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZyYW1lLmZpZWxkcykge1xuICAgICAgICAgIGlmIChmaWVsZC50eXBlICE9PSBGaWVsZFR5cGUubnVtYmVyKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBuYW1lID0gZ2V0RmllbGREaXNwbGF5TmFtZShmaWVsZCwgZnJhbWUsIGRhdGEpO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXIoZmllbGQsIGZyYW1lLCBkYXRhKSkge1xuICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmFtZXM7XG59O1xuIl0sIm5hbWVzIjpbIm92ZXJyaWRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsTUFBTSxrQkFBcUIsR0FBQSxnQkFBQSxDQUFBO0FBQzNCLE1BQU0sb0JBQUEsR0FBdUIsd0JBQXdCLGtCQUFrQixDQUFBLENBQUE7QUFFaEUsU0FBUyw2QkFDZCxDQUFBLEtBQUEsRUFDQSxJQUNBLEVBQUEsV0FBQSxFQUNBLElBQ21CLEVBQUE7QUFDbkIsRUFBTSxNQUFBLEVBQUUsV0FBYyxHQUFBLFdBQUEsQ0FBQTtBQUV0QixFQUFBLE1BQU0sV0FBYyxHQUFBLEtBQUEsQ0FBQTtBQUNwQixFQUFNLE1BQUEsWUFBQSxHQUFlLFNBQVUsQ0FBQSxTQUFBLENBQVUsb0JBQW9CLENBQUEsQ0FBQTtBQUU3RCxFQUFBLElBQUksZUFBZSxDQUFHLEVBQUE7QUFDcEIsSUFBSSxJQUFBLElBQUEsS0FBUywyQkFBMkIsZUFBaUIsRUFBQTtBQUN2RCxNQUFNQSxNQUFBQSxTQUFBQSxHQUFXLGVBQWUsQ0FBQyxXQUFBLEVBQWEsR0FBRyxzQkFBdUIsQ0FBQSxTQUFBLEVBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFBO0FBRXpGLE1BQUEsT0FBTyxpQ0FDRixXQURFLENBQUEsRUFBQTtBQUFBLFFBRUwsU0FBVyxFQUFBLENBQUMsR0FBRyxXQUFBLENBQVksV0FBV0EsU0FBUSxDQUFBO0FBQUEsT0FDaEQsQ0FBQSxDQUFBO0FBQUEsS0FDRjtBQUVBLElBQU0sTUFBQSxZQUFBLEdBQWUsZUFBZ0IsQ0FBQSxJQUFBLEVBQU0sV0FBVyxDQUFBLENBQUE7QUFDdEQsSUFBTUEsTUFBQUEsU0FBQUEsR0FBVyxlQUFl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
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { css } from '@emotion/css';
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
|
+
import { SceneObjectBase } from '../../../core/SceneObjectBase.js';
|
|
4
|
+
import { config } from '@grafana/runtime';
|
|
5
|
+
import { LazyLoader } from '../LazyLoader.js';
|
|
6
|
+
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
class SceneCSSGridLayout extends SceneObjectBase {
|
|
24
|
+
constructor(state) {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
super(__spreadValues({
|
|
27
|
+
rowGap: 1,
|
|
28
|
+
columnGap: 1,
|
|
29
|
+
templateColumns: "repeat(auto-fit, minmax(400px, 1fr))",
|
|
30
|
+
autoRows: (_a = state.autoRows) != null ? _a : `320px`,
|
|
31
|
+
children: (_b = state.children) != null ? _b : []
|
|
32
|
+
}, state));
|
|
33
|
+
}
|
|
34
|
+
isDraggable() {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
SceneCSSGridLayout.Component = SceneCSSGridLayoutRenderer;
|
|
39
|
+
function SceneCSSGridLayoutRenderer({ model }) {
|
|
40
|
+
const { children, isHidden, isLazy } = model.useState();
|
|
41
|
+
const style = useLayoutStyle(model.state);
|
|
42
|
+
if (isHidden) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
46
|
+
className: style
|
|
47
|
+
}, children.map((item) => {
|
|
48
|
+
const Component = item.Component;
|
|
49
|
+
if (isLazy) {
|
|
50
|
+
return /* @__PURE__ */ React.createElement(LazyLoader, {
|
|
51
|
+
key: item.state.key,
|
|
52
|
+
className: style
|
|
53
|
+
}, /* @__PURE__ */ React.createElement(Component, {
|
|
54
|
+
key: item.state.key,
|
|
55
|
+
model: item,
|
|
56
|
+
parentState: model.state
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
return /* @__PURE__ */ React.createElement(Component, {
|
|
60
|
+
key: item.state.key,
|
|
61
|
+
model: item,
|
|
62
|
+
parentState: model.state
|
|
63
|
+
});
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
class SceneCSSGridItem extends SceneObjectBase {
|
|
67
|
+
}
|
|
68
|
+
SceneCSSGridItem.Component = SceneCSSGridItemRenderer;
|
|
69
|
+
function SceneCSSGridItemRenderer({ model, parentState }) {
|
|
70
|
+
if (!parentState) {
|
|
71
|
+
throw new Error("SceneCSSGridItem must be a child of SceneCSSGridLayout");
|
|
72
|
+
}
|
|
73
|
+
const { body, isHidden } = model.useState();
|
|
74
|
+
const style = useItemStyle(model.state);
|
|
75
|
+
if (!body || isHidden) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
79
|
+
className: style
|
|
80
|
+
}, /* @__PURE__ */ React.createElement(body.Component, {
|
|
81
|
+
model: body
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
function useLayoutStyle(state) {
|
|
85
|
+
return useMemo(() => {
|
|
86
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
87
|
+
const style = {};
|
|
88
|
+
const theme = config.theme2;
|
|
89
|
+
style.display = "grid";
|
|
90
|
+
style.gridTemplateColumns = state.templateColumns;
|
|
91
|
+
style.gridTemplateRows = state.templateRows || "unset";
|
|
92
|
+
style.gridAutoRows = state.autoRows || "unset";
|
|
93
|
+
style.rowGap = theme.spacing((_a = state.rowGap) != null ? _a : 1);
|
|
94
|
+
style.columnGap = theme.spacing((_b = state.columnGap) != null ? _b : 1);
|
|
95
|
+
style.justifyItems = state.justifyItems || "unset";
|
|
96
|
+
style.alignItems = state.alignItems || "unset";
|
|
97
|
+
style.justifyContent = state.justifyContent || "unset";
|
|
98
|
+
style.flexGrow = 1;
|
|
99
|
+
if (state.md) {
|
|
100
|
+
style[theme.breakpoints.down("md")] = {
|
|
101
|
+
gridTemplateRows: (_c = state.md) == null ? void 0 : _c.templateRows,
|
|
102
|
+
gridTemplateColumns: (_d = state.md) == null ? void 0 : _d.templateColumns,
|
|
103
|
+
rowGap: state.md.rowGap ? theme.spacing((_f = (_e = state.md) == null ? void 0 : _e.rowGap) != null ? _f : 1) : void 0,
|
|
104
|
+
columnGap: state.md.columnGap ? theme.spacing((_h = (_g = state.md) == null ? void 0 : _g.rowGap) != null ? _h : 1) : void 0,
|
|
105
|
+
justifyItems: (_i = state.md) == null ? void 0 : _i.justifyItems,
|
|
106
|
+
alignItems: (_j = state.md) == null ? void 0 : _j.alignItems,
|
|
107
|
+
justifyContent: (_k = state.md) == null ? void 0 : _k.justifyContent
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
return css(style);
|
|
111
|
+
}, [state]);
|
|
112
|
+
}
|
|
113
|
+
function useItemStyle(state) {
|
|
114
|
+
return useMemo(() => {
|
|
115
|
+
const style = {};
|
|
116
|
+
style.gridColumn = state.gridColumn || "unset";
|
|
117
|
+
style.gridRow = state.gridRow || "unset";
|
|
118
|
+
style.position = "relative";
|
|
119
|
+
return css(style);
|
|
120
|
+
}, [state]);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export { SceneCSSGridItem, SceneCSSGridLayout };
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVDU1NHcmlkTGF5b3V0LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9sYXlvdXQvQ1NTR3JpZC9TY2VuZUNTU0dyaWRMYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcywgQ1NTT2JqZWN0IH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRUeXBlLCBDU1NQcm9wZXJ0aWVzLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBTY2VuZUNvbXBvbmVudFByb3BzLCBTY2VuZUxheW91dCwgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVPYmplY3QgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3R5cGVzJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuaW1wb3J0IHsgTGF6eUxvYWRlciB9IGZyb20gJy4uL0xhenlMb2FkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lQ1NTR3JpZExheW91dFN0YXRlIGV4dGVuZHMgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVDU1NHcmlkTGF5b3V0T3B0aW9ucyB7XG4gIGNoaWxkcmVuOiBBcnJheTxTY2VuZUNTU0dyaWRJdGVtIHwgU2NlbmVPYmplY3Q+O1xuICAvKipcbiAgICogVHJ1ZSB3aGVuIHRoZSBpdGVtIHNob3VsZCByZW5kZXJlZCBidXQgbm90IHZpc2libGUuXG4gICAqIFVzZWZ1bCBmb3IgY29uZGl0aW9uYWwgZGlzcGxheSBvZiBsYXlvdXQgaXRlbXNcbiAgICovXG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZvciBtZWRpYSBxdWVyeSBmb3Igc2NlZW5zIHNtYWxsZXIgdGhhbiBtZCBicmVha3BvaW50XG4gICAqL1xuICBtZD86IFNjZW5lQ1NTR3JpZExheW91dE9wdGlvbnM7XG4gIC8qKiBUcnVlIHdoZW4gdGhlIGl0ZW1zIHNob3VsZCBiZSBsYXp5IGxvYWRlZCAqL1xuICBpc0xhenk/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lQ1NTR3JpZExheW91dE9wdGlvbnMge1xuICAvKipcbiAgICogVXNlZnVsIGZvciBzZXR0aW5nIGEgaGVpZ2h0IG9uIGl0ZW1zIHdpdGhvdXQgc3BlY2lmeWluZyBob3cgbWFueSByb3dzIHRoZXJlIHdpbGwgYmUuXG4gICAqIERlZmF1bHRzIHRvIDMyMHB4XG4gICAqL1xuICBhdXRvUm93cz86IENTU1Byb3BlcnRpZXNbJ2dyaWRBdXRvUm93cyddO1xuICAvKipcbiAgICogVGhpcyBvdmVycmlkZXMgdGhlIGF1dG9Sb3dzIHdpdGggYSBzcGVjaWZpYyByb3cgdGVtcGxhdGUuXG4gICAqL1xuICB0ZW1wbGF0ZVJvd3M/OiBDU1NQcm9wZXJ0aWVzWydncmlkVGVtcGxhdGVSb3dzJ107XG4gIC8qKlxuICAgKiBEZWZhdWx0cyB0byByZXBlYXQoYXV0by1maXQsIG1pbm1heCg0MDBweCwgMWZyKSkuIFRoaXMgcGF0dGVybiB1cyB1c2VmdWwgZm9yIGVxdWFsbHkgc2l6ZWQgaXRlbXMgd2l0aCBhIG1pbiB3aWR0aCBvZiA0MDBweFxuICAgKiBhbmQgZHluYW1pYyBtYXggd2lkdGggc3BsaXQgZXF1YWxseSBhbW9uZyBjb2x1bW5zLlxuICAgKi9cbiAgdGVtcGxhdGVDb2x1bW5zOiBDU1NQcm9wZXJ0aWVzWydncmlkVGVtcGxhdGVDb2x1bW5zJ107XG4gIC8qKiBJbiBHcmFmYW5hIGRlc2lnbiBzeXN0ZW0gZ3JpZCB1bml0cyAoOHB4KSAgKi9cbiAgcm93R2FwOiBudW1iZXI7XG4gIC8qKiBJbiBHcmFmYW5hIGRlc2lnbiBzeXN0ZW0gZ3JpZCB1bml0cyAoOHB4KSAgKi9cbiAgY29sdW1uR2FwOiBudW1iZXI7XG4gIGp1c3RpZnlJdGVtcz86IENTU1Byb3BlcnRpZXNbJ2p1c3RpZnlJdGVtcyddO1xuICBhbGlnbkl0ZW1zPzogQ1NTUHJvcGVydGllc1snYWxpZ25JdGVtcyddO1xuICBqdXN0aWZ5Q29udGVudD86IENTU1Byb3BlcnRpZXNbJ2p1c3RpZnlDb250ZW50J107XG59XG5cbmV4cG9ydCBjbGFzcyBTY2VuZUNTU0dyaWRMYXlvdXQgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2U8U2NlbmVDU1NHcmlkTGF5b3V0U3RhdGU+IGltcGxlbWVudHMgU2NlbmVMYXlvdXQge1xuICBwdWJsaWMgc3RhdGljIENvbXBvbmVudCA9IFNjZW5lQ1NTR3JpZExheW91dFJlbmRlcmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzdGF0ZTogUGFydGlhbDxTY2VuZUNTU0dyaWRMYXlvdXRTdGF0ZT4pIHtcbiAgICBzdXBlcih7XG4gICAgICByb3dHYXA6IDEsXG4gICAgICBjb2x1bW5HYXA6IDEsXG4gICAgICB0ZW1wbGF0ZUNvbHVtbnM6ICdyZXBlYXQoYXV0by1maXQsIG1pbm1heCg0MDBweCwgMWZyKSknLFxuICAgICAgYXV0b1Jvd3M6IHN0YXRlLmF1dG9Sb3dzID8/IGAzMjBweGAsXG4gICAgICBjaGlsZHJlbjogc3RhdGUuY2hpbGRyZW4gPz8gW10sXG4gICAgICAuLi5zdGF0ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpc0RyYWdnYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gU2NlbmVDU1NHcmlkTGF5b3V0UmVuZGVyZXIoeyBtb2RlbCB9OiBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8U2NlbmVDU1NHcmlkTGF5b3V0Pikge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpc0hpZGRlbiwgaXNMYXp5IH0gPSBtb2RlbC51c2VTdGF0ZSgpO1xuICBjb25zdCBzdHlsZSA9IHVzZUxheW91dFN0eWxlKG1vZGVsLnN0YXRlKTtcblxuICBpZiAoaXNIaWRkZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlfT5cbiAgICAgIHtjaGlsZHJlbi5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgQ29tcG9uZW50ID0gaXRlbS5Db21wb25lbnQgYXMgQ29tcG9uZW50VHlwZTxTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8U2NlbmVPYmplY3Q+PjtcblxuICAgICAgICBpZiAoaXNMYXp5KSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxMYXp5TG9hZGVyIGtleT17aXRlbS5zdGF0ZS5rZXkhfSBjbGFzc05hbWU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgPENvbXBvbmVudCBrZXk9e2l0ZW0uc3RhdGUua2V5fSBtb2RlbD17aXRlbX0gcGFyZW50U3RhdGU9e21vZGVsLnN0YXRlfSAvPlxuICAgICAgICAgICAgPC9MYXp5TG9hZGVyPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDxDb21wb25lbnQga2V5PXtpdGVtLnN0YXRlLmtleX0gbW9kZWw9e2l0ZW19IHBhcmVudFN0YXRlPXttb2RlbC5zdGF0ZX0gLz47XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuZUNTU0dyaWRJdGVtUGxhY2VtZW50IHtcbiAgLyoqXG4gICAqIFRydWUgd2hlbiB0aGUgaXRlbSBzaG91bGQgcmVuZGVyZWQgYnV0IG5vdCB2aXNpYmxlLlxuICAgKiBVc2VmdWwgZm9yIGNvbmRpdGlvbmFsIGRpc3BsYXkgb2YgbGF5b3V0IGl0ZW1zXG4gICAqL1xuICBpc0hpZGRlbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VmdWwgZm9yIG1ha2luZyBjb250ZW50IHNwYW4gYWNyb3NzIG11bHRpcGxlIHJvd3Mgb3IgY29sdW1uc1xuICAgKi9cbiAgZ3JpZENvbHVtbj86IENTU1Byb3BlcnRpZXNbJ2dyaWRDb2x1bW4nXTtcbiAgZ3JpZFJvdz86IENTU1Byb3BlcnRpZXNbJ2dyaWRSb3cnXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuZUNTU0dyaWRJdGVtU3RhdGUgZXh0ZW5kcyBTY2VuZUNTU0dyaWRJdGVtUGxhY2VtZW50LCBTY2VuZU9iamVjdFN0YXRlIHtcbiAgYm9keTogU2NlbmVPYmplY3QgfCB1bmRlZmluZWQ7XG59XG5cbmludGVyZmFjZSBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8VD4gZXh0ZW5kcyBTY2VuZUNvbXBvbmVudFByb3BzPFQ+IHtcbiAgcGFyZW50U3RhdGU/OiBTY2VuZUNTU0dyaWRJdGVtUGxhY2VtZW50O1xufVxuXG5leHBvcnQgY2xhc3MgU2NlbmVDU1NHcmlkSXRlbSBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZTxTY2VuZUNTU0dyaWRJdGVtU3RhdGU+IHtcbiAgcHVibGljIHN0YXRpYyBDb21wb25lbnQgPSBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyZXI7XG59XG5cbmZ1bmN0aW9uIFNjZW5lQ1NTR3JpZEl0ZW1SZW5kZXJlcih7IG1vZGVsLCBwYXJlbnRTdGF0ZSB9OiBTY2VuZUNTU0dyaWRJdGVtUmVuZGVyUHJvcHM8U2NlbmVDU1NHcmlkSXRlbT4pIHtcbiAgaWYgKCFwYXJlbnRTdGF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2NlbmVDU1NHcmlkSXRlbSBtdXN0IGJlIGEgY2hpbGQgb2YgU2NlbmVDU1NHcmlkTGF5b3V0Jyk7XG4gIH1cblxuICBjb25zdCB7IGJvZHksIGlzSGlkZGVuIH0gPSBtb2RlbC51c2VTdGF0ZSgpO1xuICBjb25zdCBzdHlsZSA9IHVzZUl0ZW1TdHlsZShtb2RlbC5zdGF0ZSk7XG5cbiAgaWYgKCFib2R5IHx8IGlzSGlkZGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZX0+XG4gICAgICA8Ym9keS5Db21wb25lbnQgbW9kZWw9e2JvZHl9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIHVzZUxheW91dFN0eWxlKHN0YXRlOiBTY2VuZUNTU0dyaWRMYXlvdXRTdGF0ZSkge1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qge30gPSBzdGF0ZTtcbiAgICAvLyBvbmx5IG5lZWQgYnJlYWtwb2ludHMgc28gYWNjZXNzaW5nIHRoZW1lIGZyb20gY29uZmlnIGluc3RlYWQgb2YgY29udGV4dCBpcyBva1xuICAgIGNvbnN0IHN0eWxlOiBDU1NPYmplY3QgPSB7fTtcbiAgICBjb25zdCB0aGVtZSA9IGNvbmZpZy50aGVtZTI7XG5cbiAgICBzdHlsZS5kaXNwbGF5ID0gJ2dyaWQnO1xuICAgIHN0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBzdGF0ZS50ZW1wbGF0ZUNvbHVtbnM7XG4gICAgc3R5bGUuZ3JpZFRlbXBsYXRlUm93cyA9IHN0YXRlLnRlbXBsYXRlUm93cyB8fCAndW5zZXQnO1xuICAgIHN0eWxlLmdyaWRBdXRvUm93cyA9IHN0YXRlLmF1dG9Sb3dzIHx8ICd1bnNldCc7XG4gICAgc3R5bGUucm93R2FwID0gdGhlbWUuc3BhY2luZyhzdGF0ZS5yb3dHYXAgPz8gMSk7XG4gICAgc3R5bGUuY29sdW1uR2FwID0gdGhlbWUuc3BhY2luZyhzdGF0ZS5jb2x1bW5HYXAgPz8gMSk7XG4gICAgc3R5bGUuanVzdGlmeUl0ZW1zID0gc3RhdGUuanVzdGlmeUl0ZW1zIHx8ICd1bnNldCc7XG4gICAgc3R5bGUuYWxpZ25JdGVtcyA9IHN0YXRlLmFsaWduSXRlbXMgfHwgJ3Vuc2V0JztcbiAgICBzdHlsZS5qdXN0aWZ5Q29udGVudCA9IHN0YXRlLmp1c3RpZnlDb250ZW50IHx8ICd1bnNldCc7XG4gICAgc3R5bGUuZmxleEdyb3cgPSAxO1xuXG4gICAgaWYgKHN0YXRlLm1kKSB7XG4gICAgICBzdHlsZVt0aGVtZS5icmVha3BvaW50cy5kb3duKCdtZCcpXSA9IHtcbiAgICAgICAgZ3JpZFRlbXBsYXRlUm93czogc3RhdGUubWQ/LnRlbXBsYXRlUm93cyxcbiAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogc3RhdGUubWQ/LnRlbXBsYXRlQ29sdW1ucyxcbiAgICAgICAgcm93R2FwOiBzdGF0ZS5tZC5yb3dHYXAgPyB0aGVtZS5zcGFjaW5nKHN0YXRlLm1kPy5yb3dHYXAgPz8gMSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbHVtbkdhcDogc3RhdGUubWQuY29sdW1uR2FwID8gdGhlbWUuc3BhY2luZyhzdGF0ZS5tZD8ucm93R2FwID8/IDEpIDogdW5kZWZpbmVkLFxuICAgICAgICBqdXN0aWZ5SXRlbXM6IHN0YXRlLm1kPy5qdXN0aWZ5SXRlbXMsXG4gICAgICAgIGFsaWduSXRlbXM6IHN0YXRlLm1kPy5hbGlnbkl0ZW1zLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogc3RhdGUubWQ/Lmp1c3RpZnlDb250ZW50LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3NzKHN0eWxlKTtcbiAgfSwgW3N0YXRlXSk7XG59XG5cbmZ1bmN0aW9uIHVzZUl0ZW1TdHlsZShzdGF0ZTogU2NlbmVDU1NHcmlkSXRlbVN0YXRlKSB7XG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBzdHlsZTogQ1NTT2JqZWN0ID0ge307XG5cbiAgICBzdHlsZS5ncmlkQ29sdW1uID0gc3RhdGUuZ3JpZENvbHVtbiB8fCAndW5zZXQnO1xuICAgIHN0eWxlLmdyaWRSb3cgPSBzdGF0ZS5ncmlkUm93IHx8ICd1bnNldCc7XG4gICAgLy8gTmVlZGVkIGZvciBWaXpQYW5lbFxuICAgIHN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblxuICAgIHJldHVybiBjc3Moc3R5bGUpO1xuICB9LCBbc3RhdGVdKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0NPLE1BQU0sMkJBQTJCLGVBQWdFLENBQUE7QUFBQSxFQUcvRixZQUFZLEtBQXlDLEVBQUE7QUFsRDlELElBQUEsSUFBQSxFQUFBLEVBQUEsRUFBQSxDQUFBO0FBbURJLElBQU0sS0FBQSxDQUFB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
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import React, { useState, useRef, useImperativeHandle } from 'react';
|
|
2
|
+
import { useEffectOnce } from 'react-use';
|
|
3
|
+
import { uniqueId } from 'lodash';
|
|
4
|
+
import { css } from '@emotion/css';
|
|
5
|
+
import { useStyles2 } from '@grafana/ui';
|
|
6
|
+
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __objRest = (source, exclude) => {
|
|
24
|
+
var target = {};
|
|
25
|
+
for (var prop in source)
|
|
26
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
27
|
+
target[prop] = source[prop];
|
|
28
|
+
if (source != null && __getOwnPropSymbols)
|
|
29
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
30
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
31
|
+
target[prop] = source[prop];
|
|
32
|
+
}
|
|
33
|
+
return target;
|
|
34
|
+
};
|
|
35
|
+
function useUniqueId() {
|
|
36
|
+
var _a;
|
|
37
|
+
const idRefLazy = useRef(void 0);
|
|
38
|
+
(_a = idRefLazy.current) != null ? _a : idRefLazy.current = uniqueId();
|
|
39
|
+
return idRefLazy.current;
|
|
40
|
+
}
|
|
41
|
+
const LazyLoader = React.forwardRef(
|
|
42
|
+
(_a, ref) => {
|
|
43
|
+
var _b = _a, { children, onLoad, onChange, className } = _b, rest = __objRest(_b, ["children", "onLoad", "onChange", "className"]);
|
|
44
|
+
const id = useUniqueId();
|
|
45
|
+
const { hideEmpty } = useStyles2(getStyles);
|
|
46
|
+
const [loaded, setLoaded] = useState(false);
|
|
47
|
+
const [isInView, setIsInView] = useState(false);
|
|
48
|
+
const innerRef = useRef(null);
|
|
49
|
+
useImperativeHandle(ref, () => innerRef.current);
|
|
50
|
+
useEffectOnce(() => {
|
|
51
|
+
LazyLoader.addCallback(id, (entry) => {
|
|
52
|
+
if (!loaded && entry.isIntersecting) {
|
|
53
|
+
setLoaded(true);
|
|
54
|
+
onLoad == null ? void 0 : onLoad();
|
|
55
|
+
}
|
|
56
|
+
setIsInView(entry.isIntersecting);
|
|
57
|
+
onChange == null ? void 0 : onChange(entry.isIntersecting);
|
|
58
|
+
});
|
|
59
|
+
const wrapperEl = innerRef.current;
|
|
60
|
+
if (wrapperEl) {
|
|
61
|
+
LazyLoader.observer.observe(wrapperEl);
|
|
62
|
+
}
|
|
63
|
+
return () => {
|
|
64
|
+
wrapperEl && LazyLoader.observer.unobserve(wrapperEl);
|
|
65
|
+
delete LazyLoader.callbacks[id];
|
|
66
|
+
if (Object.keys(LazyLoader.callbacks).length === 0) {
|
|
67
|
+
LazyLoader.observer.disconnect();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
const classes = `${loaded ? hideEmpty : ""} ${className}`;
|
|
72
|
+
return /* @__PURE__ */ React.createElement("div", __spreadValues({
|
|
73
|
+
id,
|
|
74
|
+
ref: innerRef,
|
|
75
|
+
className: classes
|
|
76
|
+
}, rest), loaded && (typeof children === "function" ? children({ isInView }) : children));
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
function getStyles() {
|
|
80
|
+
return {
|
|
81
|
+
hideEmpty: css({
|
|
82
|
+
"&:empty": {
|
|
83
|
+
display: "none"
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
LazyLoader.displayName = "LazyLoader";
|
|
89
|
+
LazyLoader.callbacks = {};
|
|
90
|
+
LazyLoader.addCallback = (id, c) => LazyLoader.callbacks[id] = c;
|
|
91
|
+
LazyLoader.observer = new IntersectionObserver(
|
|
92
|
+
(entries) => {
|
|
93
|
+
for (const entry of entries) {
|
|
94
|
+
if (typeof LazyLoader.callbacks[entry.target.id] === "function") {
|
|
95
|
+
LazyLoader.callbacks[entry.target.id](entry);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{ rootMargin: "100px" }
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
export { LazyLoader, useUniqueId };
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF6eUxvYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbGF5b3V0L0xhenlMb2FkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRWZmZWN0T25jZSB9IGZyb20gJ3JlYWN0LXVzZSc7XG5cbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyB1c2VTdHlsZXMyIH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlVW5pcXVlSWQoKTogc3RyaW5nIHtcbiAgY29uc3QgaWRSZWZMYXp5ID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgaWRSZWZMYXp5LmN1cnJlbnQgPz89IHVuaXF1ZUlkKCk7XG4gIHJldHVybiBpZFJlZkxhenkuY3VycmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9wcyBleHRlbmRzIE9taXQ8UmVhY3QuSFRNTFByb3BzPEhUTUxEaXZFbGVtZW50PiwgJ29uQ2hhbmdlJyB8ICdjaGlsZHJlbic+IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB8ICgoeyBpc0luVmlldyB9OiB7IGlzSW5WaWV3OiBib29sZWFuIH0pID0+IFJlYWN0LlJlYWN0Tm9kZSk7XG4gIGtleTogc3RyaW5nO1xuICBvbkxvYWQ/OiAoKSA9PiB2b2lkO1xuICBvbkNoYW5nZT86IChpc0luVmlldzogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXp5TG9hZGVyVHlwZSBleHRlbmRzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UHJvcHM+IHtcbiAgYWRkQ2FsbGJhY2s6IChpZDogc3RyaW5nLCBjOiAoZTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgY2FsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCAoZTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkgPT4gdm9pZD47XG4gIG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbn1cblxuZXhwb3J0IGNvbnN0IExhenlMb2FkZXI6IExhenlMb2FkZXJUeXBlID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MRGl2RWxlbWVudCwgUHJvcHM+KFxuICAoeyBjaGlsZHJlbiwgb25Mb2FkLCBvbkNoYW5nZSwgY2xhc3NOYW1lLCAuLi5yZXN0IH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IGlkID0gdXNlVW5pcXVlSWQoKTtcbiAgICBjb25zdCB7IGhpZGVFbXB0eSB9ID0gdXNlU3R5bGVzMihnZXRTdHlsZXMpO1xuICAgIGNvbnN0IFtsb2FkZWQsIHNldExvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2lzSW5WaWV3LCBzZXRJc0luVmlld10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgaW5uZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUmVmLmN1cnJlbnQhKTtcblxuICAgIHVzZUVmZmVjdE9uY2UoKCkgPT4ge1xuICAgICAgTGF6eUxvYWRlci5hZGRDYWxsYmFjayhpZCwgKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICghbG9hZGVkICYmIGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgc2V0TG9hZGVkKHRydWUpO1xuICAgICAgICAgIG9uTG9hZD8uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRJc0luVmlldyhlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgIG9uQ2hhbmdlPy4oZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHdyYXBwZXJFbCA9IGlubmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmICh3cmFwcGVyRWwpIHtcbiAgICAgICAgTGF6eUxvYWRlci5vYnNlcnZlci5vYnNlcnZlKHdyYXBwZXJFbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdyYXBwZXJFbCAmJiBMYXp5TG9hZGVyLm9ic2VydmVyLnVub2JzZXJ2ZSh3cmFwcGVyRWwpO1xuICAgICAgICBkZWxldGUgTGF6eUxvYWRlci5jYWxsYmFja3NbaWRdO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoTGF6eUxvYWRlci5jYWxsYmFja3MpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIExhenlMb2FkZXIub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gSWYgdGhlIGVsZW1lbnQgd2FzIGxvYWRlZCwgd2UgYWRkIHRoZSBgaGlkZUVtcHR5YCBjbGFzcyB0byBwb3RlbnRpYWxseVxuICAgIC8vIGhpZGUgdGhlIExhenlMb2FkZXIgaWYgaXQgZG9lcyBub3QgaGF2ZSBhbnkgY2hpbGRyZW4uIFRoaXMgaXMgdGhlIGNhc2VcbiAgICAvLyB3aGVuIGNoaWxkcmVuIGhhdmUgdGhlIGBpc0hpZGRlbmAgcHJvcGVydHkgc2V0LlxuICAgIC8vIFdlIGFsd2F5cyBpbmNsdWRlIHRoZSBgY2xhc3NOYW1lYCBjbGFzcywgYXMgdGhpcyBpcyBjb21pbmcgZnJvbSB0aGVcbiAgICAvLyBjYWxsZXIgb2YgdGhlIGBMYXp5TG9hZGVyYCBjb21wb25lbnQuXG4gICAgY29uc3QgY2xhc3NlcyA9IGAke2xvYWRlZCA/IGhpZGVFbXB0eSA6ICcnfSAke2NsYXNzTmFtZX1gO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGlkPXtpZH0gcmVmPXtpbm5lclJlZn0gY2xhc3NOYW1lPXtjbGFzc2VzfSB7Li4ucmVzdH0+XG4gICAgICAgIHtsb2FkZWQgJiYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHsgaXNJblZpZXcgfSkgOiBjaGlsZHJlbil9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pIGFzIExhenlMb2FkZXJUeXBlO1xuXG5mdW5jdGlvbiBnZXRTdHlsZXMoKSB7XG4gIHJldHVybiB7XG4gICAgaGlkZUVtcHR5OiBjc3Moe1xuICAgICAgJyY6ZW1wdHknOiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAgIH0sXG4gICAgfSksXG4gIH07XG59XG5cbkxhenlMb2FkZXIuZGlzcGxheU5hbWUgPSAnTGF6eUxvYWRlcic7XG5MYXp5TG9hZGVyLmNhbGxiYWNrcyA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIChlOiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSA9PiB2b2lkPjtcbkxhenlMb2FkZXIuYWRkQ2FsbGJhY2sgPSAoaWQ6IHN0cmluZywgYzogKGU6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpID0+IHZvaWQpID0+IChMYXp5TG9hZGVyLmNhbGxiYWNrc1tpZF0gPSBjKTtcbkxhenlMb2FkZXIub2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gIChlbnRyaWVzKSA9PiB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAodHlwZW9mIExhenlMb2FkZXIuY2FsbGJhY2tzW2VudHJ5LnRhcmdldC5pZF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgTGF6eUxvYWRlci5jYWxsYmFja3NbZW50cnkudGFyZ2V0LmlkXShlbnRyeSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICB7IHJvb3RNYXJnaW46ICcxMDBweCcgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT08sU0FBUyxXQUFzQixHQUFBO0FBUHRDLEVB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
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { css } from '@emotion/css';
|
|
2
|
+
import { config } from '@grafana/runtime';
|
|
3
|
+
import React, { useMemo } from 'react';
|
|
4
|
+
import { SceneObjectBase } from '../../core/SceneObjectBase.js';
|
|
5
|
+
|
|
6
|
+
class SceneFlexLayout extends SceneObjectBase {
|
|
7
|
+
toggleDirection() {
|
|
8
|
+
this.setState({
|
|
9
|
+
direction: this.state.direction === "row" ? "column" : "row"
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
isDraggable() {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
SceneFlexLayout.Component = SceneFlexLayoutRenderer;
|
|
17
|
+
function SceneFlexLayoutRenderer({ model, parentState }) {
|
|
18
|
+
const { children, isHidden } = model.useState();
|
|
19
|
+
const style = useLayoutStyle(model.state, parentState);
|
|
20
|
+
if (isHidden) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
24
|
+
className: style
|
|
25
|
+
}, children.map((item) => {
|
|
26
|
+
const Component = item.Component;
|
|
27
|
+
return /* @__PURE__ */ React.createElement(Component, {
|
|
28
|
+
key: item.state.key,
|
|
29
|
+
model: item,
|
|
30
|
+
parentState: model.state
|
|
31
|
+
});
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
class SceneFlexItem extends SceneObjectBase {
|
|
35
|
+
}
|
|
36
|
+
SceneFlexItem.Component = SceneFlexItemRenderer;
|
|
37
|
+
function SceneFlexItemRenderer({ model, parentState }) {
|
|
38
|
+
if (!parentState) {
|
|
39
|
+
throw new Error("SceneFlexItem must be a child of SceneFlexLayout");
|
|
40
|
+
}
|
|
41
|
+
const { body, isHidden } = model.useState();
|
|
42
|
+
const style = useLayoutItemStyle(model.state, parentState);
|
|
43
|
+
if (!body || isHidden) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
47
|
+
className: style
|
|
48
|
+
}, /* @__PURE__ */ React.createElement(body.Component, {
|
|
49
|
+
model: body
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
function applyItemStyles(style, state, parentState) {
|
|
53
|
+
var _a, _b, _c;
|
|
54
|
+
const parentDirection = (_a = parentState.direction) != null ? _a : "row";
|
|
55
|
+
const { xSizing = "fill", ySizing = "fill" } = state;
|
|
56
|
+
style.display = "flex";
|
|
57
|
+
style.position = "relative";
|
|
58
|
+
style.flexDirection = parentDirection;
|
|
59
|
+
if (parentDirection === "column") {
|
|
60
|
+
if (state.height) {
|
|
61
|
+
style.height = state.height;
|
|
62
|
+
} else {
|
|
63
|
+
style.flexGrow = ySizing === "fill" ? 1 : 0;
|
|
64
|
+
}
|
|
65
|
+
if (state.width) {
|
|
66
|
+
style.width = state.width;
|
|
67
|
+
} else {
|
|
68
|
+
style.alignSelf = xSizing === "fill" ? "stretch" : "flex-start";
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
if (state.height) {
|
|
72
|
+
style.height = state.height;
|
|
73
|
+
} else {
|
|
74
|
+
style.alignSelf = ySizing === "fill" ? "stretch" : "flex-start";
|
|
75
|
+
}
|
|
76
|
+
if (state.width) {
|
|
77
|
+
style.width = state.width;
|
|
78
|
+
} else {
|
|
79
|
+
style.flexGrow = xSizing === "fill" ? 1 : 0;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
style.minWidth = state.minWidth;
|
|
83
|
+
style.maxWidth = state.maxWidth;
|
|
84
|
+
style.maxHeight = state.maxHeight;
|
|
85
|
+
style.minHeight = (_b = state.minHeight) != null ? _b : parentState.minHeight;
|
|
86
|
+
style.height = (_c = state.height) != null ? _c : parentState.height;
|
|
87
|
+
return style;
|
|
88
|
+
}
|
|
89
|
+
function useLayoutItemStyle(state, parentState) {
|
|
90
|
+
return useMemo(() => {
|
|
91
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
92
|
+
const theme = config.theme2;
|
|
93
|
+
const style = applyItemStyles({}, state, parentState);
|
|
94
|
+
style[theme.breakpoints.down("md")] = {
|
|
95
|
+
maxWidth: (_b = (_a = state.md) == null ? void 0 : _a.maxWidth) != null ? _b : "unset",
|
|
96
|
+
maxHeight: (_d = (_c = state.md) == null ? void 0 : _c.maxHeight) != null ? _d : "unset",
|
|
97
|
+
height: (_g = (_e = state.md) == null ? void 0 : _e.height) != null ? _g : (_f = parentState.md) == null ? void 0 : _f.height,
|
|
98
|
+
width: (_j = (_h = state.md) == null ? void 0 : _h.width) != null ? _j : (_i = parentState.md) == null ? void 0 : _i.width
|
|
99
|
+
};
|
|
100
|
+
return css(style);
|
|
101
|
+
}, [state, parentState]);
|
|
102
|
+
}
|
|
103
|
+
function useLayoutStyle(state, parentState) {
|
|
104
|
+
return useMemo(() => {
|
|
105
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
106
|
+
const { direction = "row", wrap } = state;
|
|
107
|
+
const theme = config.theme2;
|
|
108
|
+
const style = {};
|
|
109
|
+
if (parentState) {
|
|
110
|
+
applyItemStyles(style, state, parentState);
|
|
111
|
+
} else {
|
|
112
|
+
style.display = "flex";
|
|
113
|
+
style.flexGrow = 1;
|
|
114
|
+
style.minWidth = state.minWidth;
|
|
115
|
+
style.minHeight = state.minHeight;
|
|
116
|
+
}
|
|
117
|
+
style.flexDirection = direction;
|
|
118
|
+
style.gap = "8px";
|
|
119
|
+
style.flexWrap = wrap || "nowrap";
|
|
120
|
+
style.alignContent = "baseline";
|
|
121
|
+
style.minWidth = style.minWidth || 0;
|
|
122
|
+
style.minHeight = style.minHeight || 0;
|
|
123
|
+
style[theme.breakpoints.down("md")] = {
|
|
124
|
+
flexDirection: (_b = (_a = state.md) == null ? void 0 : _a.direction) != null ? _b : "column",
|
|
125
|
+
maxWidth: (_d = (_c = state.md) == null ? void 0 : _c.maxWidth) != null ? _d : "unset",
|
|
126
|
+
maxHeight: (_f = (_e = state.md) == null ? void 0 : _e.maxHeight) != null ? _f : "unset",
|
|
127
|
+
height: (_h = (_g = state.md) == null ? void 0 : _g.height) != null ? _h : "unset",
|
|
128
|
+
width: (_j = (_i = state.md) == null ? void 0 : _i.width) != null ? _j : "unset"
|
|
129
|
+
};
|
|
130
|
+
return css(style);
|
|
131
|
+
}, [parentState, state]);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export { SceneFlexItem, SceneFlexLayout };
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVGbGV4TGF5b3V0LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9sYXlvdXQvU2NlbmVGbGV4TGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MsIENTU09iamVjdCB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRUeXBlLCBDU1NQcm9wZXJ0aWVzLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBTY2VuZUNvbXBvbmVudFByb3BzLCBTY2VuZUxheW91dCwgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2VuZUZsZXhJdGVtU3RhdGVMaWtlIGV4dGVuZHMgU2NlbmVGbGV4SXRlbVBsYWNlbWVudCwgU2NlbmVPYmplY3RTdGF0ZSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1MaWtlIGV4dGVuZHMgU2NlbmVPYmplY3Q8U2NlbmVGbGV4SXRlbVN0YXRlTGlrZT4ge31cblxuaW50ZXJmYWNlIFNjZW5lRmxleExheW91dFN0YXRlIGV4dGVuZHMgU2NlbmVPYmplY3RTdGF0ZSwgU2NlbmVGbGV4SXRlbVBsYWNlbWVudCB7XG4gIGNoaWxkcmVuOiBTY2VuZUZsZXhJdGVtTGlrZVtdO1xufVxuXG5leHBvcnQgY2xhc3MgU2NlbmVGbGV4TGF5b3V0IGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPFNjZW5lRmxleExheW91dFN0YXRlPiBpbXBsZW1lbnRzIFNjZW5lTGF5b3V0IHtcbiAgcHVibGljIHN0YXRpYyBDb21wb25lbnQgPSBTY2VuZUZsZXhMYXlvdXRSZW5kZXJlcjtcblxuICBwdWJsaWMgdG9nZ2xlRGlyZWN0aW9uKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZGlyZWN0aW9uOiB0aGlzLnN0YXRlLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyAnY29sdW1uJyA6ICdyb3cnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzRHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBTY2VuZUZsZXhMYXlvdXRSZW5kZXJlcih7IG1vZGVsLCBwYXJlbnRTdGF0ZSB9OiBTY2VuZUZsZXhJdGVtUmVuZGVyUHJvcHM8U2NlbmVGbGV4TGF5b3V0Pikge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpc0hpZGRlbiB9ID0gbW9kZWwudXNlU3RhdGUoKTtcbiAgY29uc3Qgc3R5bGUgPSB1c2VMYXlvdXRTdHlsZShtb2RlbC5zdGF0ZSwgcGFyZW50U3RhdGUpO1xuXG4gIGlmIChpc0hpZGRlbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGV9PlxuICAgICAge2NoaWxkcmVuLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBDb21wb25lbnQgPSBpdGVtLkNvbXBvbmVudCBhcyBDb21wb25lbnRUeXBlPFNjZW5lRmxleEl0ZW1SZW5kZXJQcm9wczxTY2VuZU9iamVjdD4+O1xuICAgICAgICByZXR1cm4gPENvbXBvbmVudCBrZXk9e2l0ZW0uc3RhdGUua2V5fSBtb2RlbD17aXRlbX0gcGFyZW50U3RhdGU9e21vZGVsLnN0YXRlfSAvPjtcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQge1xuICB3cmFwPzogQ1NTUHJvcGVydGllc1snZmxleFdyYXAnXTtcbiAgZGlyZWN0aW9uPzogQ1NTUHJvcGVydGllc1snZmxleERpcmVjdGlvbiddO1xuICB3aWR0aD86IENTU1Byb3BlcnRpZXNbJ3dpZHRoJ107XG4gIGhlaWdodD86IENTU1Byb3BlcnRpZXNbJ2hlaWdodCddO1xuICBtaW5XaWR0aD86IENTU1Byb3BlcnRpZXNbJ21pbldpZHRoJ107XG4gIG1pbkhlaWdodD86IENTU1Byb3BlcnRpZXNbJ21pbkhlaWdodCddO1xuICBtYXhXaWR0aD86IENTU1Byb3BlcnRpZXNbJ21heFdpZHRoJ107XG4gIG1heEhlaWdodD86IENTU1Byb3BlcnRpZXNbJ21heEhlaWdodCddO1xuICB4U2l6aW5nPzogJ2ZpbGwnIHwgJ2NvbnRlbnQnO1xuICB5U2l6aW5nPzogJ2ZpbGwnIHwgJ2NvbnRlbnQnO1xuICAvKipcbiAgICogVHJ1ZSB3aGVuIHRoZSBpdGVtIHNob3VsZCByZW5kZXJlZCBidXQgbm90IHZpc2libGUuXG4gICAqIFVzZWZ1bCBmb3IgY29uZGl0aW9uYWwgZGlzcGxheSBvZiBsYXlvdXQgaXRlbXNcbiAgICovXG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0IGRpcmVjdGlvbiBmb3Igc21hbGxlciBzY3JlZW5zLiBUaGlzIGRlZmF1bHRzIHRvIGNvbHVtbi5cbiAgICogVGhpcyBlcXVhbHMgbWVkaWEgcXVlcnkgdGhlbWUuYnJlYWtwb2ludHMuZG93bignbWQnKVxuICAgKi9cbiAgbWQ/OiBTY2VuZUZsZXhJdGVtUGxhY2VtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1TdGF0ZSBleHRlbmRzIFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQsIFNjZW5lT2JqZWN0U3RhdGUge1xuICBib2R5OiBTY2VuZU9iamVjdCB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIFNjZW5lRmxleEl0ZW1SZW5kZXJQcm9wczxUPiBleHRlbmRzIFNjZW5lQ29tcG9uZW50UHJvcHM8VD4ge1xuICBwYXJlbnRTdGF0ZT86IFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBTY2VuZUZsZXhJdGVtIGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPFNjZW5lRmxleEl0ZW1TdGF0ZT4ge1xuICBwdWJsaWMgc3RhdGljIENvbXBvbmVudCA9IFNjZW5lRmxleEl0ZW1SZW5kZXJlcjtcbn1cblxuZnVuY3Rpb24gU2NlbmVGbGV4SXRlbVJlbmRlcmVyKHsgbW9kZWwsIHBhcmVudFN0YXRlIH06IFNjZW5lRmxleEl0ZW1SZW5kZXJQcm9wczxTY2VuZUZsZXhJdGVtPikge1xuICBpZiAoIXBhcmVudFN0YXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTY2VuZUZsZXhJdGVtIG11c3QgYmUgYSBjaGlsZCBvZiBTY2VuZUZsZXhMYXlvdXQnKTtcbiAgfVxuXG4gIGNvbnN0IHsgYm9keSwgaXNIaWRkZW4gfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG4gIGNvbnN0IHN0eWxlID0gdXNlTGF5b3V0SXRlbVN0eWxlKG1vZGVsLnN0YXRlLCBwYXJlbnRTdGF0ZSk7XG5cbiAgaWYgKCFib2R5IHx8IGlzSGlkZGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZX0+XG4gICAgICA8Ym9keS5Db21wb25lbnQgbW9kZWw9e2JvZHl9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5mdW5jdGlvbiBhcHBseUl0ZW1TdHlsZXMoc3R5bGU6IENTU09iamVjdCwgc3RhdGU6IFNjZW5lRmxleEl0ZW1QbGFjZW1lbnQsIHBhcmVudFN0YXRlOiBTY2VuZUZsZXhJdGVtUGxhY2VtZW50KSB7XG4gIGNvbnN0IHBhcmVudERpcmVjdGlvbiA9IHBhcmVudFN0YXRlLmRpcmVjdGlvbiA/PyAncm93JztcbiAgY29uc3QgeyB4U2l6aW5nID0gJ2ZpbGwnLCB5U2l6aW5nID0gJ2ZpbGwnIH0gPSBzdGF0ZTtcblxuICBzdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICBzdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gIHN0eWxlLmZsZXhEaXJlY3Rpb24gPSBwYXJlbnREaXJlY3Rpb247XG5cbiAgaWYgKHBhcmVudERpcmVjdGlvbiA9PT0gJ2NvbHVtbicpIHtcbiAgICBpZiAoc3RhdGUuaGVpZ2h0KSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSBzdGF0ZS5oZWlnaHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlLmZsZXhHcm93ID0geVNpemluZyA9PT0gJ2ZpbGwnID8gMSA6IDA7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLndpZHRoKSB7XG4gICAgICBzdHlsZS53aWR0aCA9IHN0YXRlLndpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5hbGlnblNlbGYgPSB4U2l6aW5nID09PSAnZmlsbCcgPyAnc3RyZXRjaCcgOiAnZmxleC1zdGFydCc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChzdGF0ZS5oZWlnaHQpIHtcbiAgICAgIHN0eWxlLmhlaWdodCA9IHN0YXRlLmhlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUuYWxpZ25TZWxmID0geVNpemluZyA9PT0gJ2ZpbGwnID8gJ3N0cmV0Y2gnIDogJ2ZsZXgtc3RhcnQnO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS53aWR0aCkge1xuICAgICAgc3R5bGUud2lkdGggPSBzdGF0ZS53aWR0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUuZmxleEdyb3cgPSB4U2l6aW5nID09PSAnZmlsbCcgPyAxIDogMDtcbiAgICB9XG4gIH1cblxuICBzdHlsZS5taW5XaWR0aCA9IHN0YXRlLm1pbldpZHRoO1xuICBzdHlsZS5tYXhXaWR0aCA9IHN0YXRlLm1heFdpZHRoO1xuICBzdHlsZS5tYXhIZWlnaHQgPSBzdGF0ZS5tYXhIZWlnaHQ7XG5cbiAgLy8gRm9yIHJlc3BvbnNpdmUgbGF5b3V0cyB0byB3b3JrIHdlIGRlZmF1bHQgdXNlIHRoZSBtaW5IZWlnaHQgb3IgaGVpZ2h0IG9mIHRoZSBwYXJlbnRcbiAgc3R5bGUubWluSGVpZ2h0ID0gc3RhdGUubWluSGVpZ2h0ID8/IHBhcmVudFN0YXRlLm1pbkhlaWdodDtcbiAgc3R5bGUuaGVpZ2h0ID0gc3RhdGUuaGVpZ2h0ID8/IHBhcmVudFN0YXRlLmhlaWdodDtcblxuICByZXR1cm4gc3R5bGU7XG59XG5cbmZ1bmN0aW9uIHVzZUxheW91dEl0ZW1TdHlsZShzdGF0ZTogU2NlbmVGbGV4SXRlbVN0YXRlLCBwYXJlbnRTdGF0ZTogU2NlbmVGbGV4SXRlbVBsYWNlbWVudCkge1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBjb25maWcudGhlbWUyO1xuICAgIGNvbnN0IHN0eWxlID0gYXBwbHlJdGVtU3R5bGVzKHt9LCBzdGF0ZSwgcGFyZW50U3RhdGUpO1xuXG4gICAgLy8gVW5zZXQgbWF4V2lkdGggZm9yIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIHN0eWxlW3RoZW1lLmJyZWFrcG9pbnRzLmRvd24oJ21kJyldID0ge1xuICAgICAgbWF4V2lkdGg6IHN0YXRlLm1kPy5tYXhXaWR0aCA/PyAndW5zZXQnLFxuICAgICAgbWF4SGVpZ2h0OiBzdGF0ZS5tZD8ubWF4SGVpZ2h0ID8/ICd1bnNldCcsXG4gICAgICBoZWlnaHQ6IHN0YXRlLm1kPy5oZWlnaHQgPz8gcGFyZW50U3RhdGUubWQ/LmhlaWdodCxcbiAgICAgIHdpZHRoOiBzdGF0ZS5tZD8ud2lkdGggPz8gcGFyZW50U3RhdGUubWQ/LndpZHRoLFxuICAgIH07XG5cbiAgICByZXR1cm4gY3NzKHN0eWxlKTtcbiAgfSwgW3N0YXRlLCBwYXJlbnRTdGF0ZV0pO1xufVxuXG5mdW5jdGlvbiB1c2VMYXlvdXRTdHlsZShzdGF0ZTogU2NlbmVGbGV4TGF5b3V0U3RhdGUsIHBhcmVudFN0YXRlPzogU2NlbmVGbGV4SXRlbVBsYWNlbWVudCkge1xuICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgeyBkaXJlY3Rpb24gPSAncm93Jywgd3JhcCB9ID0gc3RhdGU7XG4gICAgLy8gb25seSBuZWVkIGJyZWFrcG9pbnRzIHNvIGFjY2Vzc2luZyB0aGVtZSBmcm9tIGNvbmZpZyBpbnN0ZWFkIG9mIGNvbnRleHQgaXMgb2tcbiAgICBjb25zdCB0aGVtZSA9IGNvbmZpZy50aGVtZTI7XG5cbiAgICBjb25zdCBzdHlsZTogQ1NTT2JqZWN0ID0ge307XG5cbiAgICBpZiAocGFyZW50U3RhdGUpIHtcbiAgICAgIGFwcGx5SXRlbVN0eWxlcyhzdHlsZSwgc3RhdGUsIHBhcmVudFN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgIHN0eWxlLmZsZXhHcm93ID0gMTtcbiAgICAgIHN0eWxlLm1pbldpZHRoID0gc3RhdGUubWluV2lkdGg7XG4gICAgICBzdHlsZS5taW5IZWlnaHQgPSBzdGF0ZS5taW5IZWlnaHQ7XG4gICAgfVxuXG4gICAgc3R5bGUuZmxleERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICBzdHlsZS5nYXAgPSAnOHB4JztcbiAgICBzdHlsZS5mbGV4V3JhcCA9IHdyYXAgfHwgJ25vd3JhcCc7XG4gICAgc3R5bGUuYWxpZ25Db250ZW50ID0gJ2Jhc2VsaW5lJztcbiAgICBzdHlsZS5taW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoIHx8IDA7XG4gICAgc3R5bGUubWluSGVpZ2h0ID0gc3R5bGUubWluSGVpZ2h0IHx8IDA7XG5cbiAgICBzdHlsZVt0aGVtZS5icmVha3BvaW50cy5kb3duKCdtZCcpXSA9IHtcbiAgICAgIGZsZXhEaXJlY3Rpb246IHN0YXRlLm1kPy5kaXJlY3Rpb24gPz8gJ2NvbHVtbicsXG4gICAgICBtYXhXaWR0aDogc3RhdGUubWQ/Lm1heFdpZHRoID8/ICd1bnNldCcsXG4gICAgICBtYXhIZWlnaHQ6IHN0YXRlLm1kPy5tYXhIZWlnaHQgPz8gJ3Vuc2V0JyxcbiAgICAgIGhlaWdodDogc3RhdGUubWQ/LmhlaWdodCA/PyAndW5zZXQnLFxuICAgICAgd2lkdGg6IHN0YXRlLm1kPy53aWR0aCA/PyAndW5zZXQnLFxuICAgIH07XG5cbiAgICByZXR1cm4gY3NzKHN0eWxlKTtc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
|