@grafana/scenes 6.7.0--canary.1091.14350229100.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 +25 -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,28 @@
|
|
|
1
|
+
import { VariableSupportType } from '@grafana/data';
|
|
2
|
+
|
|
3
|
+
const hasLegacyVariableSupport = (datasource) => {
|
|
4
|
+
return Boolean(datasource.metricFindQuery) && !Boolean(datasource.variables);
|
|
5
|
+
};
|
|
6
|
+
const hasStandardVariableSupport = (datasource) => {
|
|
7
|
+
if (!datasource.variables) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
if (datasource.variables.getType() !== VariableSupportType.Standard) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const variableSupport = datasource.variables;
|
|
14
|
+
return "toDataQuery" in variableSupport && Boolean(variableSupport.toDataQuery);
|
|
15
|
+
};
|
|
16
|
+
const hasCustomVariableSupport = (datasource) => {
|
|
17
|
+
if (!datasource.variables) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (datasource.variables.getType() !== VariableSupportType.Custom) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const variableSupport = datasource.variables;
|
|
24
|
+
return "query" in variableSupport && "editor" in variableSupport && Boolean(variableSupport.query) && Boolean(variableSupport.editor);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { hasCustomVariableSupport, hasLegacyVariableSupport, hasStandardVariableSupport };
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi92YXJpYWJsZXMvdmFyaWFudHMvcXVlcnkvZ3VhcmRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhcmlhYmxlU3VwcG9ydFR5cGUgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcblxuY29uc3QgaGFzTGVnYWN5VmFyaWFibGVTdXBwb3J0ID0gKGRhdGFzb3VyY2UpID0+IHtcbiAgcmV0dXJuIEJvb2xlYW4oZGF0YXNvdXJjZS5tZXRyaWNGaW5kUXVlcnkpICYmICFCb29sZWFuKGRhdGFzb3VyY2UudmFyaWFibGVzKTtcbn07XG5jb25zdCBoYXNTdGFuZGFyZFZhcmlhYmxlU3VwcG9ydCA9IChkYXRhc291cmNlKSA9PiB7XG4gIGlmICghZGF0YXNvdXJjZS52YXJpYWJsZXMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGRhdGFzb3VyY2UudmFyaWFibGVzLmdldFR5cGUoKSAhPT0gVmFyaWFibGVTdXBwb3J0VHlwZS5TdGFuZGFyZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCB2YXJpYWJsZVN1cHBvcnQgPSBkYXRhc291cmNlLnZhcmlhYmxlcztcbiAgcmV0dXJuIFwidG9EYXRhUXVlcnlcIiBpbiB2YXJpYWJsZVN1cHBvcnQgJiYgQm9vbGVhbih2YXJpYWJsZVN1cHBvcnQudG9EYXRhUXVlcnkpO1xufTtcbmNvbnN0IGhhc0N1c3RvbVZhcmlhYmxlU3VwcG9ydCA9IChkYXRhc291cmNlKSA9PiB7XG4gIGlmICghZGF0YXNvdXJjZS52YXJpYWJsZXMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGRhdGFzb3VyY2UudmFyaWFibGVzLmdldFR5cGUoKSAhPT0gVmFyaWFibGVTdXBwb3J0VHlwZS5DdXN0b20pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgdmFyaWFibGVTdXBwb3J0ID0gZGF0YXNvdXJjZS52YXJpYWJsZXM7XG4gIHJldHVybiBcInF1ZXJ5XCIgaW4gdmFyaWFibGVTdXBwb3J0ICYmIFwiZWRpdG9yXCIgaW4gdmFyaWFibGVTdXBwb3J0ICYmIEJvb2xlYW4odmFyaWFibGVTdXBwb3J0LnF1ZXJ5KSAmJiBCb29sZWFuKHZhcmlhYmxlU3VwcG9ydC5lZGl0b3IpO1xufTtcblxuZXhwb3J0IHsgaGFzQ3VzdG9tVmFyaWFibGVTdXBwb3J0LCBoYXNMZWdhY3lWYXJpYWJsZVN1cHBvcnQsIGhhc1N0YW5kYXJkVmFyaWFibGVTdXBwb3J0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVozVmhjbVJ6TG1weklpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk4dUxpOXpjbU12ZG1GeWFXRmliR1Z6TDNaaGNtbGhiblJ6TDNGMVpYSjVMMmQxWVhKa2N5NTBjeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTF4dUlDQkVZWFJoVVhWbGNua3NYRzRnSUVSaGRHRlRiM1Z5WTJWS2MyOXVSR0YwWVN4Y2JpQWdSR0YwWVZOdmRYSmpaVUZ3YVN4Y2JpQWdUV1YwY21salJtbHVaRlpoYkhWbExGeHVJQ0JXWVhKcFlXSnNaVk4xY0hCdmNuUlVlWEJsTEZ4dUlDQlRkR0Z1WkdGeVpGWmhjbWxoWW14bFVYVmxjbmtzWEc0Z0lFUmhkR0ZSZFdWeWVWSmxjWFZsYzNRc1hHNGdJRVJoZEdGUmRXVnllVkpsYzNCdmJuTmxMRnh1SUNCUmRXVnllVVZrYVhSdmNsQnliM0J6TEZ4dWZTQm1jbTl0SUNkQVozSmhabUZ1WVM5a1lYUmhKenRjYm1sdGNHOXlkQ0I3SUZSbGJYQnNZWFJsVTNKMklIMGdabkp2YlNBblFHZHlZV1poYm1FdmNuVnVkR2x0WlNjN1hHNXBiWEJ2Y25RZ2V5QkRiMjF3YjI1bGJuUlVlWEJsSUgwZ1puSnZiU0FuY21WaFkzUW5PMXh1WEc1cGJYQnZjblFnZXlCUFluTmxjblpoWW14bElIMGdabkp2YlNBbmNuaHFjeWM3WEc1Y2JpOHFLbHh1SUNvZ1NXNTBaWEptWVdObGN5QmhibVFnWjNWaGNtUnpJR0psYkc5M0lHRnlaU0JqYjNCcFpXUWdabkp2YlNCamIzSmxMbHh1SUNvZ1RtOTBJR1Y0Y0c5emFXNW5JSFpwWVNCbmNtRm1ZVzVoTDJSaGRHRWdZWE1nZEdobGMyVWdZWEpsSUc1dmRDQnBiblJsYm1SbFpDQjBieUJpWlNCMWMyVmtJR2x1SUdOdmJuUmxlSFFnYjNSb1pYSWdkR2hoYmlCMllYSnBZV0pzWlhNdVhHNGdLaTljYmx4dWFXNTBaWEptWVdObElFUmhkR0ZUYjNWeVkyVlhhWFJvVEdWbllXTjVWbUZ5YVdGaWJHVlRkWEJ3YjNKMFBGeHVJQ0JVVVhWbGNua2daWGgwWlc1a2N5QkVZWFJoVVhWbGNua2dQU0JFWVhSaFVYVmxjbmtzWEc0Z0lGUlBjSFJwYjI1eklHVjRkR1Z1WkhNZ1JHRjBZVk52ZFhKalpVcHpiMjVFWVhSaElEMGdSR0YwWVZOdmRYSmpaVXB6YjI1RVlYUmhYRzQrSUdWNGRHVnVaSE1nUkdGMFlWTnZkWEpqWlVGd2FUeFVVWFZsY25rc0lGUlBjSFJwYjI1elBpQjdYRzRnSUcxbGRISnBZMFpwYm1SUmRXVnllU2h4ZFdWeWVUb2dZVzU1TENCdmNIUnBiMjV6UHpvZ1lXNTVLVG9nVUhKdmJXbHpaVHhOWlhSeWFXTkdhVzVrVm1Gc2RXVmJYVDQ3WEc0Z0lIWmhjbWxoWW14bGN6b2dkVzVrWldacGJtVmtPMXh1ZlZ4dVhHNXBiblJsY21aaFkyVWdSR0YwWVZOdmRYSmpaVmRwZEdoVGRHRnVaR0Z5WkZaaGNtbGhZbXhsVTNWd2NHOXlkRHhjYmlBZ1ZGRjFaWEo1SUdWNGRHVnVaSE1nUkdGMFlWRjFaWEo1SUQwZ1JHRjBZVkYxWlhKNUxGeHVJQ0JVVDNCMGFXOXVjeUJsZUhSbGJtUnpJRVJoZEdGVGIzVnlZMlZLYzI5dVJHRjBZU0E5SUVSaGRHRlRiM1Z5WTJWS2MyOXVSR0YwWVZ4dVBpQmxlSFJsYm1SeklFUmhkR0ZUYjNWeVkyVkJjR2s4VkZGMVpYSjVMQ0JVVDNCMGFXOXVjejRnZTF4dUlDQjJZWEpwWVdKc1pYTTZJSHRjYmlBZ0lDQm5aWFJVZVhCbEtDazZJRlpoY21saFlteGxVM1Z3Y0c5eWRGUjVjR1U3WEc0Z0lDQWdkRzlFWVhSaFVYVmxjbmtvY1hWbGNuazZJRk4wWVc1a1lYSmtWbUZ5YVdGaWJHVlJkV1Z5ZVNrNklGUlJkV1Z5ZVR0Y2JpQWdJQ0J4ZFdWeWVTaHlaWEYxWlhOME9pQkVZWFJoVVhWbGNubFNaWEYxWlhOMFBGUlJkV1Z5ZVQ0cE9pQlBZbk5sY25aaFlteGxQRVJoZEdGUmRXVnllVkpsYzNCdmJuTmxQanRjYmlBZ2ZUdGNibjFjYmx4dWFXNTBaWEptWVdObElFUmhkR0ZUYjNWeVkyVlhhWFJvUTNWemRHOXRWbUZ5YVdGaWJHVlRkWEJ3YjNKMFBGeHVJQ0JVVVhWbGNua2daWGgwWlc1a2N5QkVZWFJoVVhWbGNua2dQU0JFWVhSaFVYVmxjbmtzWEc0Z0lGUlBjSFJwYjI1eklHVjRkR1Z1WkhNZ1JHRjBZVk52ZFhKalpVcHpiMjVFWVhSaElEMGdSR0YwWVZOdmRYSmpaVXB6YjI1RVlYUmhYRzQrSUdWNGRHVnVaSE1nUkdGMFlWTnZkWEpqWlVGd2FUeFVVWFZsY25rc0lGUlBjSFJwYjI1elBpQjdYRzRnSUhaaGNtbGhZbXhsY3pvZ2UxeHVJQ0FnSUdkbGRGUjVjR1VvS1RvZ1ZtRnlhV0ZpYkdWVGRYQndiM0owVkhsd1pUdGNiaUFnSUNCbFpHbDBiM0k2SUZaaGNtbGhZbXhsVVhWbGNubEZaR2wwYjNKVWVYQmxPMXh1SUNBZ0lIRjFaWEo1S0hKbGNYVmxjM1E2SUVSaGRHRlJkV1Z5ZVZKbGNYVmxjM1E4VkZGMVpYSjVQaWs2SUU5aWMyVnlkbUZpYkdVOFJHRjBZVkYxWlhKNVVtVnpjRzl1YzJVK08xeHVJQ0I5TzF4dWZWeHVYRzVwYm5SbGNtWmhZMlVnVm1GeWFXRmliR1ZSZFdWeWVVVmthWFJ2Y2xCeWIzQnpJSHRjYmlBZ2NYVmxjbms2SUdGdWVUdGNiaUFnYjI1RGFHRnVaMlU2SUNoeGRXVnllVG9nWVc1NUxDQmtaV1pwYm1sMGFXOXVPaUJ6ZEhKcGJtY3BJRDArSUhadmFXUTdYRzRnSUdSaGRHRnpiM1Z5WTJVNklHRnVlVHRjYmlBZ2RHVnRjR3hoZEdWVGNuWTZJRlJsYlhCc1lYUmxVM0oyTzF4dWZWeHVYRzUwZVhCbElGWmhjbWxoWW14bFVYVmxjbmxGWkdsMGIzSlVlWEJsUEZ4dUlDQlVVWFZsY25rZ1pYaDBaVzVrY3lCRVlYUmhVWFZsY25rZ1BTQkVZWFJoVVhWbGNua3NYRzRnSUZSUGNIUnBiMjV6SUdWNGRHVnVaSE1nUkdGMFlWTnZkWEpqWlVwemIyNUVZWFJoSUQwZ1JHRjBZVk52ZFhKalpVcHpiMjVFWVhSaFhHNCtJRDBnUTI5dGNHOXVaVzUwVkhsd1pUeFdZWEpwWVdKc1pWRjFaWEo1UldScGRHOXlVSEp2Y0hNK0lId2dRMjl0Y0c5dVpXNTBWSGx3WlR4UmRXVnllVVZrYVhSdmNsQnliM0J6UEdGdWVTd2dWRkYxWlhKNUxDQlVUM0IwYVc5dWN5d2dZVzU1UGo0Z2ZDQnVkV3hzTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYUdGelRHVm5ZV041Vm1GeWFXRmliR1ZUZFhCd2IzSjBJRDBnUEZ4dUlDQlVVWFZsY25rZ1pYaDBaVzVrY3lCRVlYUmhVWFZsY25rZ1BTQkVZWFJoVVhWbGNua3NYRzRnSUZSUGNIUnBiMjV6SUdWNGRHVnVaSE1nUkdGMFlWTnZkWEpqWlVwemIyNUVZWFJoSUQwZ1JHRjBZVk52ZFhKalpVcHpiMjVFWVhSaFhHNCtLRnh1SUNCa1lYUmhjMjkxY21ObE9pQkVZWFJoVTI5MWNtTmxRWEJwUEZSUmRXVnllU3dnVkU5d2RHbHZibk0rWEc0cE9pQmtZWFJoYzI5MWNtTmxJR2x6SUVSaGRHRlRiM1Z5WTJWWGFYUm9UR1ZuWVdONVZtRnlhV0ZpYkdWVGRYQndiM0owUEZSUmRXVnllU3dnVkU5d2RHbHZibk0rSUQwK0lIdGNiaUFnY21WMGRYSnVJRUp2YjJ4bFlXNG9aR0YwWVhOdmRYSmpaUzV0WlhSeWFXTkdhVzVrVVhWbGNua3BJQ1ltSUNGQ2IyOXNaV0Z1S0dSaGRHRnpiM1Z5WTJVdWRtRnlhV0ZpYkdWektUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JvWVhOVGRHRnVaR0Z5WkZaaGNtbGhZbXhsVTNWd2NHOXlkQ0E5SUR4Y2JpQWdWRkYxWlhKNUlHVjRkR1Z1WkhNZ1JHRjBZVkYxWlhKNUlEMGdSR0YwWVZGMVpYSjVMRnh1SUNCVVQzQjBhVzl1Y3lCbGVIUmxibVJ6SUVSaGRHRlRiM1Z5WTJWS2MyOXVSR0YwWVNBOUlFUmhkR0ZUYjNWeVkyVktjMjl1UkdGMFlWeHVQaWhjYmlBZ1pHRjBZWE52ZFhKalpUb2dSR0YwWVZOdmRYSmpaVUZ3YVR4VVVYVmxjbmtzSUZSUGNIUnBiMjV6UGx4dUtUb2daR0YwWVhOdmRYSmpaU0JwY3lCRVlYUmhVMjkxY21ObFYybDBhRk4wWVc1a1lYSmtWbUZ5YVdGaWJHVlRkWEJ3YjNKMFBGUlJkV1Z5ZVN3Z1ZFOXdkR2x2Ym5NK0lEMCtJSHRjYmlBZ2FXWWdLQ0ZrWVhSaGMyOTFjbU5sTG5aaGNtbGhZbXhsY3lrZ2UxeHVJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnZlZ4dVhHNGdJR2xtSUNoa1lYUmhjMjkxY21ObExuWmhjbWxoWW14bGN5NW5aWFJVZVhCbEtDa2dJVDA5SUZaaGNtbGhZbXhsVTNWd2NHOXlkRlI1Y0dVdVUzUmhibVJoY21RcElIdGNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQjJZWEpwWVdKc1pWTjFjSEJ2Y25RZ1BTQmtZWFJoYzI5MWNtTmxMblpoY21saFlteGxjenRjYmlBZ2NtVjBkWEp1SUNkMGIwUmhkR0ZSZFdWeWVTY2dhVzRnZG1GeWFXRmliR1ZUZFhCd2IzSjBJQ1ltSUVKdmIyeGxZVzRvZG1GeWFXRmliR1ZUZFhCd2IzSjBMblJ2UkdGMFlWRjFaWEo1S1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm9ZWE5EZFhOMGIyMVdZWEpwWVdKc1pWTjFjSEJ2Y25RZ1BTQThYRzRnSUZSUmRXVnllU0JsZUhSbGJtUnpJRVJoZEdGUmRXVnllU0E5SUVSaGRHRlJkV1Z5ZVN4Y2JpQWdWRTl3ZEdsdmJuTWdaWGgwWlc1a2N5QkVZWFJoVTI5MWNtTmxTbk52YmtSaGRHRWdQU0JFWVhSaFUyOTFjbU5sU25OdmJrUmhkR0ZjYmo0b1hHNGdJR1JoZEdGemIzVnlZMlU2SUVSaGRHRlRiM1Z5WTJWQmNHazhWRkYxWlhKNUxDQlVUM0IwYVc5dWN6NWNiaWs2SUdSaGRHRnpiM1Z5WTJVZ2FYTWdSR0YwWVZOdmRYSmpaVmRwZEdoRGRYTjBiMjFXWVhKcFlXSnNaVk4xY0hCdmNuUThWRkYxWlhKNUxDQlVUM0IwYVc5dWN6NGdQVDRnZTF4dUlDQnBaaUFvSVdSaGRHRnpiM1Z5WTJVdWRtRnlhV0ZpYkdWektTQjdYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCOVhHNWNiaUFnYVdZZ0tHUmhkR0Z6YjNWeVkyVXVkbUZ5YVdGaWJHVnpMbWRsZEZSNWNHVW9LU0FoUFQwZ1ZtRnlhV0ZpYkdWVGRYQndiM0owVkhsd1pTNURkWE4wYjIwcElIdGNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQjJZWEpwWVdKc1pWTjFjSEJ2Y25RZ1BTQmtZWFJoYzI5MWNtTmxMblpoY21saFlteGxjenRjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FuY1hWbGNua25JR2x1SUhaaGNtbGhZbXhsVTNWd2NHOXlkQ0FtSmx4dUlDQWdJQ2RsWkdsMGIzSW5JR2x1SUhaaGNtbGhZbXhsVTNWd2NHOXlkQ0FtSmx4dUlDQWdJRUp2YjJ4bFlXNG9kbUZ5YVdGaWJHVlRkWEJ3YjNKMExuRjFaWEo1S1NBbUpseHVJQ0FnSUVKdmIyeGxZVzRvZG1GeWFXRmliR1ZUZFhCd2IzSjBMbVZrYVhSdmNpbGNiaUFnS1R0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3UVVFclJHRXNUVUZCUVN4M1FrRkJRU3hIUVVFeVFpeERRVWwwUXl4VlFVTjNSU3hMUVVGQk8wRkJRM2hGTEVWQlFVRXNUMEZCVHl4UlFVRlJMRlZCUVZjc1EwRkJRU3hsUVVGbExFdEJRVXNzUTBGQlF5eFBRVUZCTEVOQlFWRXNWMEZCVnl4VFFVRlRMRU5CUVVFc1EwRkJRVHRCUVVNM1JTeEZRVUZCTzBGQlJXRXNUVUZCUVN3d1FrRkJRU3hIUVVFMlFpeERRVWw0UXl4VlFVTXdSU3hMUVVGQk8wRkJRekZGTEVWQlFVa3NTVUZCUVN4RFFVRkRMRmRCUVZjc1UwRkJWeXhGUVVGQk8wRkJRM3BDTEVsQlFVOHNUMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJSVUVzUlVGQlFTeEpRVUZKTEZWQlFWY3NRMEZCUVN4VFFVRkJMRU5CUVZVc1QwRkJVU3hGUVVGQkxFdEJRVTBzYjBKQlFXOUNMRkZCUVZVc1JVRkJRVHRCUVVOdVJTeEpRVUZQTEU5QlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRWRHRCUVVWQkxFVkJRVUVzVFVGQlRTeHJRa0ZCYTBJc1ZVRkJWeXhEUVVGQkxGTkJRVUVzUTBGQlFUdEJRVU51UXl4RlFVRkJMRTlCUVU4c1lVRkJhVUlzU1VGQlFTeGxRVUZCTEVsQlFXMUNMRTlCUVZFc1EwRkJRU3hsUVVGQkxFTkJRV2RDTEZkQlFWY3NRMEZCUVN4RFFVRkJPMEZCUTJoR0xFVkJRVUU3UVVGRllTeE5RVUZCTEhkQ1FVRkJMRWRCUVRKQ0xFTkJTWFJETEZWQlEzZEZMRXRCUVVFN1FVRkRlRVVzUlVGQlNTeEpRVUZCTEVOQlFVTXNWMEZCVnl4VFFVRlhMRVZCUVVFN1FVRkRla0lzU1VGQlR5eFBRVUZCTEV0QlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkZRU3hGUVVGQkxFbEJRVWtzVlVGQlZ5eERRVUZCTEZOQlFVRXNRMEZCVlN4UFFVRlJMRVZCUVVFc1MwRkJUU3h2UWtGQmIwSXNUVUZCVVN4RlFVRkJPMEZCUTJwRkxFbEJRVThzVDBGQlFTeExRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTlVPMEZCUlVFc1JVRkJRU3hOUVVGTkxHdENRVUZyUWl4VlFVRlhMRU5CUVVFc1UwRkJRU3hEUVVGQk8wRkJRMjVETEVWQlEwVXNUMEZCUVN4UFFVRkJMRWxCUVZjc1pVRkRXQ3hKUVVGQkxGRkJRVUVzU1VGQldTeGxRVU5hTEVsQlFVRXNUMEZCUVN4RFFVRlJMR2RDUVVGblFpeExRVUZMTEVOQlFVRXNTVUZETjBJc1QwRkJVU3hEUVVGQkxHVkJRVUVzUTBGQlowSXNUVUZCVFN4RFFVRkJMRU5CUVVFN1FVRkZiRU03T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStEYSxNQUFBLHdCQUFBLEdBQTJCLENBSXRDLFVBQ3dFLEtBQUE7QUFDeEUsRUFBQSxPQUFPLFFBQVEsVUFBVyxDQUFBLGVBQWUsS0FBSyxDQUFDLE9BQUEsQ0FBUSxXQUFXLFNBQVMsQ0FBQSxDQUFBO0FBQzdFLEVBQUE7QUFFYSxNQUFBLDBCQUFBLEdBQTZCLENBSXhDLFVBQzBFLEtBQUE7QUFDdEUsRUFBQSxJQUFBLENBQUMsV0FBVyxTQUFXLEVBQUE7QUFDbEIsSUFBQSxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQUE7QUFHVCxFQUFBLElBQUksVUFBVyxDQUFBLFNBQUEsQ0FBVSxPQUFRLEVBQUEsS0FBTSxvQkFBb0IsUUFBVSxFQUFBO0FBQzVELElBQUEsT0FBQSxLQUFBLENBQUE7QUFBQSxHQUFBO0FBR1QsRUFBQSxNQUFNLGtCQUFrQixVQUFXLENBQUEsU0FBQSxDQUFBO0FBQ25DLEVBQUEsT0FBTyxhQUFpQixJQUFBLGVBQUEsSUFBbUIsT0FBUSxDQUFBLGVBQUEsQ0FBZ0IsV0FBVyxDQUFBLENBQUE7QUFDaEYsRUFBQTtBQUVhLE1BQUEsd0JBQUEsR0FBMkIsQ0FJdEMsVUFDd0UsS0FBQTtBQUNwRSxFQUFBLElBQUEsQ0FBQyxXQUFXLFNBQVcsRUFBQTtBQUNsQixJQUFBLE9BQUEsS0FBQSxDQUFBO0FBQUEsR0FBQTtBQUdULEVBQUEsSUFBSSxVQUFXLENBQUEsU0FBQSxDQUFVLE9BQVEsRUFBQSxLQUFNLG9CQUFvQixNQUFRLEVBQUE7QUFDMUQsSUFBQSxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQUE7QUFHVCxFQUFBLE1BQU0sa0JBQWtCLFVBQVcsQ0FBQSxTQUFBLENBQUE7QUFFakMsRUFBQSxPQUFBLE9BQUEsSUFBVyxlQUNYLElBQUEsUUFBQSxJQUFZLGVBQ1osSUFBQSxPQUFBLENBQVEsZ0JBQWdCLEtBQUssQ0FBQSxJQUM3QixPQUFRLENBQUEsZUFBQSxDQUFnQixNQUFNLENBQUEsQ0FBQTtBQUVsQzs7OzsifQ==
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { getProcessedDataFrames, getFieldDisplayName, FieldType, isDataFrame } from '@grafana/data';
|
|
2
|
+
import { map } from 'rxjs';
|
|
3
|
+
|
|
4
|
+
function toMetricFindValues() {
|
|
5
|
+
return (source) => source.pipe(
|
|
6
|
+
map((panelData) => {
|
|
7
|
+
const frames = panelData.series;
|
|
8
|
+
if (!frames || !frames.length) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
if (areMetricFindValues(frames)) {
|
|
12
|
+
return frames;
|
|
13
|
+
}
|
|
14
|
+
if (frames[0].fields.length === 0) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
const processedDataFrames = getProcessedDataFrames(frames);
|
|
18
|
+
const metrics = [];
|
|
19
|
+
let valueIndex = -1;
|
|
20
|
+
let textIndex = -1;
|
|
21
|
+
let stringIndex = -1;
|
|
22
|
+
let expandableIndex = -1;
|
|
23
|
+
for (const frame of processedDataFrames) {
|
|
24
|
+
for (let index = 0; index < frame.fields.length; index++) {
|
|
25
|
+
const field = frame.fields[index];
|
|
26
|
+
const fieldName = getFieldDisplayName(field, frame, frames).toLowerCase();
|
|
27
|
+
if (field.type === FieldType.string && stringIndex === -1) {
|
|
28
|
+
stringIndex = index;
|
|
29
|
+
}
|
|
30
|
+
if (fieldName === "text" && field.type === FieldType.string && textIndex === -1) {
|
|
31
|
+
textIndex = index;
|
|
32
|
+
}
|
|
33
|
+
if (fieldName === "value" && field.type === FieldType.string && valueIndex === -1) {
|
|
34
|
+
valueIndex = index;
|
|
35
|
+
}
|
|
36
|
+
if (fieldName === "expandable" && (field.type === FieldType.boolean || field.type === FieldType.number) && expandableIndex === -1) {
|
|
37
|
+
expandableIndex = index;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (stringIndex === -1) {
|
|
42
|
+
throw new Error("Couldn't find any field of type string in the results.");
|
|
43
|
+
}
|
|
44
|
+
for (const frame of frames) {
|
|
45
|
+
for (let index = 0; index < frame.length; index++) {
|
|
46
|
+
const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : void 0;
|
|
47
|
+
const string = frame.fields[stringIndex].values.get(index);
|
|
48
|
+
const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : "";
|
|
49
|
+
const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : "";
|
|
50
|
+
if (valueIndex === -1 && textIndex === -1) {
|
|
51
|
+
metrics.push({ text: string, value: string, expandable });
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (valueIndex === -1 && textIndex !== -1) {
|
|
55
|
+
metrics.push({ text, value: text, expandable });
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (valueIndex !== -1 && textIndex === -1) {
|
|
59
|
+
metrics.push({ text: value, value, expandable });
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
metrics.push({ text, value, expandable });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return metrics;
|
|
66
|
+
})
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
function areMetricFindValues(data) {
|
|
70
|
+
if (!data) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (!data.length) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
const firstValue = data[0];
|
|
77
|
+
if (isDataFrame(firstValue)) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
for (const firstValueKey in firstValue) {
|
|
81
|
+
if (!firstValue.hasOwnProperty(firstValueKey)) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (firstValue[firstValueKey] !== null && typeof firstValue[firstValueKey] !== "string" && typeof firstValue[firstValueKey] !== "number") {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const key = firstValueKey.toLowerCase();
|
|
88
|
+
if (key === "text" || key === "value") {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export { toMetricFindValues };
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9NZXRyaWNGaW5kVmFsdWVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi92YXJpYWJsZXMvdmFyaWFudHMvcXVlcnkvdG9NZXRyaWNGaW5kVmFsdWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFByb2Nlc3NlZERhdGFGcmFtZXMsIGdldEZpZWxkRGlzcGxheU5hbWUsIEZpZWxkVHlwZSwgaXNEYXRhRnJhbWUgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuXG5mdW5jdGlvbiB0b01ldHJpY0ZpbmRWYWx1ZXMoKSB7XG4gIHJldHVybiAoc291cmNlKSA9PiBzb3VyY2UucGlwZShcbiAgICBtYXAoKHBhbmVsRGF0YSkgPT4ge1xuICAgICAgY29uc3QgZnJhbWVzID0gcGFuZWxEYXRhLnNlcmllcztcbiAgICAgIGlmICghZnJhbWVzIHx8ICFmcmFtZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmIChhcmVNZXRyaWNGaW5kVmFsdWVzKGZyYW1lcykpIHtcbiAgICAgICAgcmV0dXJuIGZyYW1lcztcbiAgICAgIH1cbiAgICAgIGlmIChmcmFtZXNbMF0uZmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9jZXNzZWREYXRhRnJhbWVzID0gZ2V0UHJvY2Vzc2VkRGF0YUZyYW1lcyhmcmFtZXMpO1xuICAgICAgY29uc3QgbWV0cmljcyA9IFtdO1xuICAgICAgbGV0IHZhbHVlSW5kZXggPSAtMTtcbiAgICAgIGxldCB0ZXh0SW5kZXggPSAtMTtcbiAgICAgIGxldCBzdHJpbmdJbmRleCA9IC0xO1xuICAgICAgbGV0IGV4cGFuZGFibGVJbmRleCA9IC0xO1xuICAgICAgZm9yIChjb25zdCBmcmFtZSBvZiBwcm9jZXNzZWREYXRhRnJhbWVzKSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmcmFtZS5maWVsZHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBmcmFtZS5maWVsZHNbaW5kZXhdO1xuICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldEZpZWxkRGlzcGxheU5hbWUoZmllbGQsIGZyYW1lLCBmcmFtZXMpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5zdHJpbmcgJiYgc3RyaW5nSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBzdHJpbmdJbmRleCA9IGluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmllbGROYW1lID09PSBcInRleHRcIiAmJiBmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuc3RyaW5nICYmIHRleHRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRleHRJbmRleCA9IGluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmllbGROYW1lID09PSBcInZhbHVlXCIgJiYgZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLnN0cmluZyAmJiB2YWx1ZUluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgdmFsdWVJbmRleCA9IGluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmllbGROYW1lID09PSBcImV4cGFuZGFibGVcIiAmJiAoZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLmJvb2xlYW4gfHwgZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLm51bWJlcikgJiYgZXhwYW5kYWJsZUluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgZXhwYW5kYWJsZUluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3RyaW5nSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYW55IGZpZWxkIG9mIHR5cGUgc3RyaW5nIGluIHRoZSByZXN1bHRzLlwiKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgZnJhbWVzKSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmcmFtZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBleHBhbmRhYmxlID0gZXhwYW5kYWJsZUluZGV4ICE9PSAtMSA/IGZyYW1lLmZpZWxkc1tleHBhbmRhYmxlSW5kZXhdLnZhbHVlcy5nZXQoaW5kZXgpIDogdm9pZCAwO1xuICAgICAgICAgIGNvbnN0IHN0cmluZyA9IGZyYW1lLmZpZWxkc1tzdHJpbmdJbmRleF0udmFsdWVzLmdldChpbmRleCk7XG4gICAgICAgICAgY29uc3QgdGV4dCA9IHRleHRJbmRleCAhPT0gLTEgPyBmcmFtZS5maWVsZHNbdGV4dEluZGV4XS52YWx1ZXMuZ2V0KGluZGV4KSA6IFwiXCI7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZUluZGV4ICE9PSAtMSA/IGZyYW1lLmZpZWxkc1t2YWx1ZUluZGV4XS52YWx1ZXMuZ2V0KGluZGV4KSA6IFwiXCI7XG4gICAgICAgICAgaWYgKHZhbHVlSW5kZXggPT09IC0xICYmIHRleHRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIG1ldHJpY3MucHVzaCh7IHRleHQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZXhwYW5kYWJsZSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodmFsdWVJbmRleCA9PT0gLTEgJiYgdGV4dEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgbWV0cmljcy5wdXNoKHsgdGV4dCwgdmFsdWU6IHRleHQsIGV4cGFuZGFibGUgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHZhbHVlSW5kZXggIT09IC0xICYmIHRleHRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIG1ldHJpY3MucHVzaCh7IHRleHQ6IHZhbHVlLCB2YWx1ZSwgZXhwYW5kYWJsZSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXRyaWNzLnB1c2goeyB0ZXh0LCB2YWx1ZSwgZXhwYW5kYWJsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1ldHJpY3M7XG4gICAgfSlcbiAgKTtcbn1cbmZ1bmN0aW9uIGFyZU1ldHJpY0ZpbmRWYWx1ZXMoZGF0YSkge1xuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCFkYXRhLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGNvbnN0IGZpcnN0VmFsdWUgPSBkYXRhWzBdO1xuICBpZiAoaXNEYXRhRnJhbWUoZmlyc3RWYWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZm9yIChjb25zdCBmaXJzdFZhbHVlS2V5IGluIGZpcnN0VmFsdWUpIHtcbiAgICBpZiAoIWZpcnN0VmFsdWUuaGFzT3duUHJvcGVydHkoZmlyc3RWYWx1ZUtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoZmlyc3RWYWx1ZVtmaXJzdFZhbHVlS2V5XSAhPT0gbnVsbCAmJiB0eXBlb2YgZmlyc3RWYWx1ZVtmaXJzdFZhbHVlS2V5XSAhPT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgZmlyc3RWYWx1ZVtmaXJzdFZhbHVlS2V5XSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IGZpcnN0VmFsdWVLZXkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoa2V5ID09PSBcInRleHRcIiB8fCBrZXkgPT09IFwidmFsdWVcIikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IHsgdG9NZXRyaWNGaW5kVmFsdWVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRHOU5aWFJ5YVdOR2FXNWtWbUZzZFdWekxtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOHVMaTl6Y21NdmRtRnlhV0ZpYkdWekwzWmhjbWxoYm5SekwzRjFaWEo1TDNSdlRXVjBjbWxqUm1sdVpGWmhiSFZsY3k1MGN5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCR2FXVnNaRlI1Y0dVc1hHNGdJR2RsZEVacFpXeGtSR2x6Y0d4aGVVNWhiV1VzWEc0Z0lHbHpSR0YwWVVaeVlXMWxMRnh1SUNCTlpYUnlhV05HYVc1a1ZtRnNkV1VzWEc0Z0lGQmhibVZzUkdGMFlTeGNiaUFnWjJWMFVISnZZMlZ6YzJWa1JHRjBZVVp5WVcxbGN5eGNibjBnWm5KdmJTQW5RR2R5WVdaaGJtRXZaR0YwWVNjN1hHNXBiWEJ2Y25RZ2V5QnRZWEFzSUU5d1pYSmhkRzl5Um5WdVkzUnBiMjRnZlNCbWNtOXRJQ2R5ZUdwekp6dGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFJ2VFdWMGNtbGpSbWx1WkZaaGJIVmxjeWdwT2lCUGNHVnlZWFJ2Y2taMWJtTjBhVzl1UEZCaGJtVnNSR0YwWVN3Z1RXVjBjbWxqUm1sdVpGWmhiSFZsVzEwK0lIdGNiaUFnY21WMGRYSnVJQ2h6YjNWeVkyVXBJRDArWEc0Z0lDQWdjMjkxY21ObExuQnBjR1VvWEc0Z0lDQWdJQ0J0WVhBb0tIQmhibVZzUkdGMFlTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JtY21GdFpYTWdQU0J3WVc1bGJFUmhkR0V1YzJWeWFXVnpPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXWnlZVzFsY3lCOGZDQWhabkpoYldWekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoY21WTlpYUnlhV05HYVc1a1ZtRnNkV1Z6S0daeVlXMWxjeWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1puSmhiV1Z6TzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdhV1lnS0daeVlXMWxjMXN3WFM1bWFXVnNaSE11YkdWdVozUm9JRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRnRkTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NISnZZMlZ6YzJWa1JHRjBZVVp5WVcxbGN5QTlJR2RsZEZCeWIyTmxjM05sWkVSaGRHRkdjbUZ0WlhNb1puSmhiV1Z6S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYldWMGNtbGpjem9nVFdWMGNtbGpSbWx1WkZaaGJIVmxXMTBnUFNCYlhUdGNibHh1SUNBZ0lDQWdJQ0JzWlhRZ2RtRnNkV1ZKYm1SbGVDQTlJQzB4TzF4dUlDQWdJQ0FnSUNCc1pYUWdkR1Y0ZEVsdVpHVjRJRDBnTFRFN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J6ZEhKcGJtZEpibVJsZUNBOUlDMHhPMXh1SUNBZ0lDQWdJQ0JzWlhRZ1pYaHdZVzVrWVdKc1pVbHVaR1Y0SUQwZ0xURTdYRzVjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCbWNtRnRaU0J2WmlCd2NtOWpaWE56WldSRVlYUmhSbkpoYldWektTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVc1a1pYZ2dQU0F3T3lCcGJtUmxlQ0E4SUdaeVlXMWxMbVpwWld4a2N5NXNaVzVuZEdnN0lHbHVaR1Y0S3lzcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1pwWld4a0lEMGdabkpoYldVdVptbGxiR1J6VzJsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdacFpXeGtUbUZ0WlNBOUlHZGxkRVpwWld4a1JHbHpjR3hoZVU1aGJXVW9abWxsYkdRc0lHWnlZVzFsTENCbWNtRnRaWE1wTG5SdlRHOTNaWEpEWVhObEtDazdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htYVdWc1pDNTBlWEJsSUQwOVBTQkdhV1ZzWkZSNWNHVXVjM1J5YVc1bklDWW1JSE4wY21sdVowbHVaR1Y0SUQwOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKcGJtZEpibVJsZUNBOUlHbHVaR1Y0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWm1sbGJHUk9ZVzFsSUQwOVBTQW5kR1Y0ZENjZ0ppWWdabWxsYkdRdWRIbHdaU0E5UFQwZ1JtbGxiR1JVZVhCbExuTjBjbWx1WnlBbUppQjBaWGgwU1c1a1pYZ2dQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmxlSFJKYm1SbGVDQTlJR2x1WkdWNE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1ptbGxiR1JPWVcxbElEMDlQU0FuZG1Gc2RXVW5JQ1ltSUdacFpXeGtMblI1Y0dVZ1BUMDlJRVpwWld4a1ZIbHdaUzV6ZEhKcGJtY2dKaVlnZG1Gc2RXVkpibVJsZUNBOVBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVkpibVJsZUNBOUlHbHVaR1Y0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR1pwWld4a1RtRnRaU0E5UFQwZ0oyVjRjR0Z1WkdGaWJHVW5JQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2htYVdWc1pDNTBlWEJsSUQwOVBTQkdhV1ZzWkZSNWNHVXVZbTl2YkdWaGJpQjhmQ0JtYVdWc1pDNTBlWEJsSUQwOVBTQkdhV1ZzWkZSNWNHVXViblZ0WW1WeUtTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmxlSEJoYm1SaFlteGxTVzVrWlhnZ1BUMDlJQzB4WEc0Z0lDQWdJQ0FnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaWGh3WVc1a1lXSnNaVWx1WkdWNElEMGdhVzVrWlhnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tITjBjbWx1WjBsdVpHVjRJRDA5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSWtOdmRXeGtiaWQwSUdacGJtUWdZVzU1SUdacFpXeGtJRzltSUhSNWNHVWdjM1J5YVc1bklHbHVJSFJvWlNCeVpYTjFiSFJ6TGx3aUtUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1puSmhiV1VnYjJZZ1puSmhiV1Z6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdhVzVrWlhnZ1BTQXdPeUJwYm1SbGVDQThJR1p5WVcxbExteGxibWQwYURzZ2FXNWtaWGdyS3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaWGh3WVc1a1lXSnNaU0E5SUdWNGNHRnVaR0ZpYkdWSmJtUmxlQ0FoUFQwZ0xURWdQeUJtY21GdFpTNW1hV1ZzWkhOYlpYaHdZVzVrWVdKc1pVbHVaR1Y0WFM1MllXeDFaWE11WjJWMEtHbHVaR1Y0S1NBNklIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wY21sdVp5QTlJR1p5WVcxbExtWnBaV3hrYzF0emRISnBibWRKYm1SbGVGMHVkbUZzZFdWekxtZGxkQ2hwYm1SbGVDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IwWlhoMElEMGdkR1Y0ZEVsdVpHVjRJQ0U5UFNBdE1TQS9JR1p5WVcxbExtWnBaV3hrYzF0MFpYaDBTVzVrWlhoZExuWmhiSFZsY3k1blpYUW9hVzVrWlhncElEb2dKeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMllXeDFaU0E5SUhaaGJIVmxTVzVrWlhnZ0lUMDlJQzB4SUQ4Z1puSmhiV1V1Wm1sbGJHUnpXM1poYkhWbFNXNWtaWGhkTG5aaGJIVmxjeTVuWlhRb2FXNWtaWGdwSURvZ0p5YzdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gyWVd4MVpVbHVaR1Y0SUQwOVBTQXRNU0FtSmlCMFpYaDBTVzVrWlhnZ1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUcxbGRISnBZM011Y0hWemFDaDdJSFJsZUhRNklITjBjbWx1Wnl3Z2RtRnNkV1U2SUhOMGNtbHVaeXdnWlhod1lXNWtZV0pzWlNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMllXeDFaVWx1WkdWNElEMDlQU0F0TVNBbUppQjBaWGgwU1c1a1pYZ2dJVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWxkSEpwWTNNdWNIVnphQ2g3SUhSbGVIUXNJSFpoYkhWbE9pQjBaWGgwTENCbGVIQmhibVJoWW14bElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWmhiSFZsU1c1a1pYZ2dJVDA5SUMweElDWW1JSFJsZUhSSmJtUmxlQ0E5UFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiV1YwY21samN5NXdkWE5vS0hzZ2RHVjRkRG9nZG1Gc2RXVXNJSFpoYkhWbExDQmxlSEJoYm1SaFlteGxJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2JXVjBjbWxqY3k1d2RYTm9LSHNnZEdWNGRDd2dkbUZzZFdVc0lHVjRjR0Z1WkdGaWJHVWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzFsZEhKcFkzTTdYRzRnSUNBZ0lDQjlLVnh1SUNBZ0lDazdYRzU5WEc1Y2JtWjFibU4wYVc5dUlHRnlaVTFsZEhKcFkwWnBibVJXWVd4MVpYTW9aR0YwWVRvZ1lXNTVXMTBwT2lCa1lYUmhJR2x6SUUxbGRISnBZMFpwYm1SV1lXeDFaVnRkSUh0Y2JpQWdhV1lnS0NGa1lYUmhLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQjlYRzVjYmlBZ2FXWWdLQ0ZrWVhSaExteGxibWQwYUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1ptbHljM1JXWVd4MVpUb2dZVzU1SUQwZ1pHRjBZVnN3WFR0Y2JseHVJQ0JwWmlBb2FYTkVZWFJoUm5KaGJXVW9abWx5YzNSV1lXeDFaU2twSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYmx4dUlDQm1iM0lnS0dOdmJuTjBJR1pwY25OMFZtRnNkV1ZMWlhrZ2FXNGdabWx5YzNSV1lXeDFaU2tnZTF4dUlDQWdJR2xtSUNnaFptbHljM1JXWVd4MVpTNW9ZWE5QZDI1UWNtOXdaWEowZVNobWFYSnpkRlpoYkhWbFMyVjVLU2tnZTF4dUlDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnWm1seWMzUldZV3gxWlZ0bWFYSnpkRlpoYkhWbFMyVjVYU0FoUFQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnZEhsd1pXOW1JR1pwY25OMFZtRnNkV1ZiWm1seWMzUldZV3gxWlV0bGVWMGdJVDA5SUNkemRISnBibWNuSUNZbVhHNGdJQ0FnSUNCMGVYQmxiMllnWm1seWMzUldZV3gxWlZ0bWFYSnpkRlpoYkhWbFMyVjVYU0FoUFQwZ0oyNTFiV0psY2lkY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUdOdmJuUnBiblZsTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHdGxlU0E5SUdacGNuTjBWbUZzZFdWTFpYa3VkRzlNYjNkbGNrTmhjMlVvS1R0Y2JseHVJQ0FnSUdsbUlDaHJaWGtnUFQwOUlDZDBaWGgwSnlCOGZDQnJaWGtnUFQwOUlDZDJZV3gxWlNjcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3UVVGVlR5eFRRVUZUTEd0Q1FVRnhSU3hIUVVGQk8wRkJRMjVHTEVWQlFVOHNUMEZCUVN4RFFVRkRMRmRCUTA0c1RVRkJUeXhEUVVGQkxFbEJRVUU3UVVGQlFTeEpRVU5NTEVkQlFVRXNRMEZCU1N4RFFVRkRMRk5CUVdNc1MwRkJRVHRCUVVOcVFpeE5RVUZCTEUxQlFVMHNVMEZCVXl4VFFVRlZMRU5CUVVFc1RVRkJRU3hEUVVGQk8wRkJRM3BDTEUxQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVVFc1NVRkJWU3hEUVVGRExFMUJRVUVzUTBGQlR5eE5RVUZSTEVWQlFVRTdRVUZETjBJc1VVRkJRU3hQUVVGUExFVkJRVU1zUTBGQlFUdEJRVUZCTEU5QlExWTdRVUZGUVN4TlFVRkpMRWxCUVVFc2JVSkJRVUVzUTBGQmIwSXNUVUZCVFN4RFFVRkhMRVZCUVVFN1FVRkRMMElzVVVGQlR5eFBRVUZCTEUxQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTFRN1FVRkZRU3hOUVVGQkxFbEJRVWtzVFVGQlR5eERRVUZCTEVOQlFVRXNRMEZCUVN4RFFVRkhMRTFCUVU4c1EwRkJRU3hOUVVGQkxFdEJRVmNzUTBGQlJ5eEZRVUZCTzBGQlEycERMRkZCUVVFc1QwRkJUeXhGUVVGRExFTkJRVUU3UVVGQlFTeFBRVU5XTzBGQlJVRXNUVUZCVFN4TlFVRkJMRzFDUVVGQkxFZEJRWE5DTEhWQ1FVRjFRaXhOUVVGTkxFTkJRVUVzUTBGQlFUdEJRVU42UkN4TlFVRkJMRTFCUVUwc1ZVRkJOa0lzUlVGQlF5eERRVUZCTzBGQlJYQkRMRTFCUVVFc1NVRkJTU3hWUVVGaExFZEJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZEYWtJc1RVRkJRU3hKUVVGSkxGTkJRVmtzUjBGQlFTeERRVUZCTEVOQlFVRXNRMEZCUVR0QlFVTm9RaXhOUVVGQkxFbEJRVWtzVjBGQll5eEhRVUZCTEVOQlFVRXNRMEZCUVN4RFFVRkJPMEZCUTJ4Q0xFMUJRVUVzU1VGQlNTeGxRVUZyUWl4SFFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJSWFJDTEUxQlFVRXNTMEZCUVN4TlFVRlhMRk5CUVZNc2JVSkJRWEZDTEVWQlFVRTdRVUZEZGtNc1VVRkJRU3hMUVVGQkxFbEJRVk1zVVVGQlVTeERRVUZITEVWQlFVRXNTMEZCUVN4SFFVRlJMRXRCUVUwc1EwRkJRU3hOUVVGQkxFTkJRVThzVVVGQlVTeExRVUZUTEVWQlFVRXNSVUZCUVR0QlFVTjRSQ3hWUVVGTkxFMUJRVUVzUzBGQlFTeEhRVUZSTEUxQlFVMHNUVUZCVHl4RFFVRkJMRXRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRek5DTEZWQlFVRXNUVUZCVFN4WlFVRlpMRzFDUVVGdlFpeERRVUZCTEV0QlFVRXNSVUZCVHl4TFFVRlBMRVZCUVVFc1RVRkJUU3hGUVVGRkxGZEJRVmtzUlVGQlFTeERRVUZCTzBGQlJYaEZMRlZCUVVFc1NVRkJTU3hMUVVGTkxFTkJRVUVzU1VGQlFTeExRVUZUTEZOQlFWVXNRMEZCUVN4TlFVRkJMRWxCUVZVc1owSkJRV2RDTEVOQlFVa3NRMEZCUVN4RlFVRkJPMEZCUTNwRUxGbEJRV01zVjBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVR0QlFVRkJMRmRCUTJoQ08wRkJSVUVzVlVGQlFTeEpRVUZKTEdOQlFXTXNUVUZCVlN4SlFVRkJMRXRCUVVFc1EwRkJUU3hUUVVGVExGTkJRVlVzUTBGQlFTeE5RVUZCTEVsQlFWVXNZMEZCWXl4RFFVRkpMRU5CUVVFc1JVRkJRVHRCUVVNdlJTeFpRVUZaTEZOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkJRU3hYUVVOa08wRkJSVUVzVlVGQlFTeEpRVUZKTEdOQlFXTXNUMEZCVnl4SlFVRkJMRXRCUVVFc1EwRkJUU3hUUVVGVExGTkJRVlVzUTBGQlFTeE5RVUZCTEVsQlFWVXNaVUZCWlN4RFFVRkpMRU5CUVVFc1JVRkJRVHRCUVVOcVJpeFpRVUZoTEZWQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkJRU3hYUVVObU8wRkJSVUVzVlVGRFJTeEpRVUZCTEZOQlFVRXNTMEZCWXl4WlFVTmlMRXRCUVVFc1MwRkJRU3hEUVVGTkxFbEJRVk1zUzBGQlFTeFRRVUZCTEVOQlFWVXNUMEZCVnl4SlFVRkJMRXRCUVVFc1EwRkJUU3hKUVVGVExFdEJRVUVzVTBGQlFTeERRVUZWTEUxQlF6bEVMRU5CUVVFc1NVRkJRU3hsUVVGQkxFdEJRVzlDTEVOQlEzQkNMRU5CUVVFc1JVRkJRVHRCUVVOQkxGbEJRV3RDTEdWQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkJRU3hYUVVOd1FqdEJRVUZCTEZOQlEwWTdRVUZCUVN4UFFVTkdPMEZCUlVFc1RVRkJRU3hKUVVGSkxHZENRVUZuUWl4RFFVRkpMRU5CUVVFc1JVRkJRVHRCUVVOMFFpeFJRVUZOTEUxQlFVRXNTVUZCU1N4TlFVRk5MSGRFUVVGM1JDeERRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTXhSVHRCUVVWQkxFMUJRVUVzUzBGQlFTeE5RVUZYTEZOQlFWTXNUVUZCVVN4RlFVRkJPMEZCUXpGQ0xGRkJRVUVzUzBGQlFTeEpRVUZUTEV0QlFWRXNSMEZCUVN4RFFVRkJMRVZCUVVjc1MwRkJVU3hIUVVGQkxFdEJRVUVzUTBGQlRTeFJRVUZSTEV0QlFWTXNSVUZCUVN4RlFVRkJPMEZCUTJwRUxGVkJRVTBzVFVGQlFTeFZRVUZCTEVkQlFXRXNiMEpCUVc5Q0xFTkJRVXNzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCVFN4UFFVRlBMR1ZCUVdsQ0xFTkJRVUVzUTBGQlFTeE5RVUZCTEVOQlFVOHNSMEZCU1N4RFFVRkJMRXRCUVVzc1EwRkJTU3hIUVVGQkxFdEJRVUVzUTBGQlFTeERRVUZCTzBGQlF6bEdMRlZCUVVFc1RVRkJUU3hUUVVGVExFdEJRVTBzUTBGQlFTeE5RVUZCTEVOQlFVOHNWMEZCWVN4RFFVRkJMRU5CUVVFc1RVRkJRU3hEUVVGUExFbEJRVWtzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZEZWtRc1ZVRkJUU3hOUVVGQkxFbEJRVUVzUjBGQlR5eGpRVUZqTEVOQlFVc3NRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJUU3hQUVVGUExGTkJRVmNzUTBGQlFTeERRVUZCTEUxQlFVRXNRMEZCVHl4SFFVRkpMRU5CUVVFc1MwRkJTeXhEUVVGSkxFZEJRVUVzUlVGQlFTeERRVUZCTzBGQlF6VkZMRlZCUVUwc1RVRkJRU3hMUVVGQkxFZEJRVkVzWlVGQlpTeERRVUZMTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVUwc1QwRkJUeXhWUVVGWkxFTkJRVUVzUTBGQlFTeE5RVUZCTEVOQlFVOHNSMEZCU1N4RFFVRkJMRXRCUVVzc1EwRkJTU3hIUVVGQkxFVkJRVUVzUTBGQlFUdEJRVVV2UlN4VlFVRkpMRWxCUVVFc1ZVRkJRU3hMUVVGbExFTkJRVTBzUTBGQlFTeEpRVUZCTEZOQlFVRXNTMEZCWXl4RFFVRkpMRU5CUVVFc1JVRkJRVHRCUVVONlF5eFpRVUZCTEU5QlFVRXNRMEZCVVN4TFFVRkxMRVZCUVVVc1NVRkJRU3hGUVVGTkxGRkJRVkVzUzBGQlR5eEZRVUZCTEUxQlFVRXNSVUZCVVN4WlFVRlpMRU5CUVVFc1EwRkJRVHRCUVVONFJDeFpRVUZCTEZOQlFVRTdRVUZCUVN4WFFVTkdPMEZCUlVFc1ZVRkJTU3hKUVVGQkxGVkJRVUVzUzBGQlpTeERRVUZOTEVOQlFVRXNTVUZCUVN4VFFVRkJMRXRCUVdNc1EwRkJTU3hEUVVGQkxFVkJRVUU3UVVGRGVrTXNXVUZCUVN4UFFVRkJMRU5CUVZFc1MwRkJTeXhGUVVGRkxFbEJRVUVzUlVGQlRTeExRVUZQTEVWQlFVRXNTVUZCUVN4RlFVRk5MRmxCUVZrc1EwRkJRU3hEUVVGQk8wRkJRemxETEZsQlFVRXNVMEZCUVR0QlFVRkJMRmRCUTBZN1FVRkZRU3hWUVVGSkxFbEJRVUVzVlVGQlFTeExRVUZsTEVOQlFVMHNRMEZCUVN4SlFVRkJMRk5CUVVFc1MwRkJZeXhEUVVGSkxFTkJRVUVzUlVGQlFUdEJRVU42UXl4WlFVRkJMRTlCUVVFc1EwRkJVU3hMUVVGTExFVkJRVVVzU1VGQlFTeEZRVUZOTEV0QlFVOHNSVUZCUVN4TFFVRkJMRVZCUVU4c1dVRkJXU3hEUVVGQkxFTkJRVUU3UVVGREwwTXNXVUZCUVN4VFFVRkJPMEZCUVVFc1YwRkRSanRCUVVWQkxGVkJRVUVzVDBGQlFTeERRVUZSTEVsQlFVc3NRMEZCUVN4RlFVRkZMRWxCUVUwc1JVRkJRU3hMUVVGQkxFVkJRVThzV1VGQldTeERRVUZCTEVOQlFVRTdRVUZCUVN4VFFVTXhRenRCUVVGQkxFOUJRMFk3UVVGRlFTeE5RVUZQTEU5QlFVRXNUMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRVaXhEUVVGQk8wRkJRVUVzUjBGRFNDeERRVUZCTzBGQlEwb3NRMEZCUVR0QlFVVkJMRk5CUVZNc2IwSkJRVzlDTEVsQlFYZERMRVZCUVVFN1FVRkRia1VzUlVGQlFTeEpRVUZKTEVOQlFVTXNTVUZCVFN4RlFVRkJPMEZCUTFRc1NVRkJUeXhQUVVGQkxFdEJRVUVzUTBGQlFUdEJRVUZCTEVkQlExUTdRVUZGUVN4RlFVRkpMRWxCUVVFc1EwRkJReXhMUVVGTExFMUJRVkVzUlVGQlFUdEJRVU5vUWl4SlFVRlBMRTlCUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFZEdEJRVVZCTEVWQlFVRXNUVUZCVFN4aFFVRnJRaXhKUVVGTExFTkJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZGTjBJc1JVRkJTU3hKUVVGQkxGZEJRVUVzUTBGQldTeFZRVUZWTEVOQlFVY3NSVUZCUVR0QlFVTXpRaXhKUVVGUExFOUJRVUVzUzBGQlFTeERRVUZCTzBGQlFVRXNSMEZEVkR0QlFVVkJMRVZCUVVFc1MwRkJRU3hOUVVGWExHbENRVUZwUWl4VlFVRlpMRVZCUVVFN1FVRkRkRU1zU1VGQlFTeEpRVUZKTEVOQlFVTXNWVUZCUVN4RFFVRlhMR05CUVdVc1EwRkJRU3hoUVVGaExFTkJRVWNzUlVGQlFUdEJRVU0zUXl4TlFVRkJMRk5CUVVFN1FVRkJRU3hMUVVOR08wRkJSVUVzU1VGRFJTeEpRVUZCTEZWQlFVRXNRMEZCVnl4aFFVRnRRaXhEUVVGQkxFdEJRVUVzU1VGQlFTeEpRVU01UWl4UFFVRlBMRlZCUVVFc1EwRkJWeXh0UWtGQmJVSXNVVUZEY2tNc1NVRkJRU3hQUVVGUExGVkJRVmNzUTBGQlFTeGhRVUZCTEVOQlFVRXNTMEZCYlVJc1VVRkRja01zUlVGQlFUdEJRVU5CTEUxQlFVRXNVMEZCUVR0QlFVRkJMRXRCUTBZN1FVRkZRU3hKUVVGTkxFMUJRVUVzUjBGQlFTeEhRVUZOTEdOQlFXTXNWMEZCV1N4RlFVRkJMRU5CUVVFN1FVRkZkRU1zU1VGQlNTeEpRVUZCTEVkQlFVRXNTMEZCVVN4TlFVRlZMRWxCUVVFc1IwRkJRU3hMUVVGUkxFOUJRVk1zUlVGQlFUdEJRVU55UXl4TlFVRlBMRTlCUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFZEdEJRVUZCTEVkQlEwWTdRVUZGUVN4RlFVRlBMRTlCUVVFc1MwRkJRU3hEUVVGQk8wRkJRMVE3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVTyxTQUFTLGtCQUFxRSxHQUFBO0FBQzVFLEVBQUEsT0FBQSxDQUFDLFdBQ04sTUFBTyxDQUFBLElBQUE7QUFDTCxJQUFBLEdBQUEsQ0FBSSxDQUFDLFNBQWMsS0FBQTtBQUNqQixNQUFBLE1BQU0sU0FBUyxTQUFVLENBQUEsTUFBQSxDQUFBO0FBQ3pCLE1BQUEsSUFBSSxDQUFDLE1BQUEsSUFBVSxDQUFDLE1BQUEsQ0FBTyxNQUFRLEVBQUE7QUFDN0IsUUFBQSxPQUFPLEVBQUEsQ0FBQTtBQUFDLE9BQUE7QUFHTixNQUFBLElBQUEsbUJBQUEsQ0FBb0IsTUFBTSxDQUFHLEVBQUE7QUFDeEIsUUFBQSxPQUFBLE1BQUEsQ0FBQTtBQUFBLE9BQUE7QUFHVCxNQUFBLElBQUksTUFBTyxDQUFBLENBQUEsQ0FBQSxDQUFHLE1BQU8sQ0FBQSxNQUFBLEtBQVcsQ0FBRyxFQUFBO0FBQ2pDLFFBQUEsT0FBTyxFQUFBLENBQUE7QUFBQyxPQUFBO0FBR0osTUFBQSxNQUFBLG1CQUFBLEdBQXNCLHVCQUF1QixNQUFNLENBQUEsQ0FBQTtBQUN6RCxNQUFBLE1BQU0sVUFBNkIsRUFBQSxDQUFBO0FBRW5DLE1BQUEsSUFBSSxVQUFhLEdBQUEsQ0FBQSxDQUFBLENBQUE7QUFDakIsTUFBQSxJQUFJLFNBQVksR0FBQSxDQUFBLENBQUEsQ0FBQTtBQUNoQixNQUFBLElBQUksV0FBYyxHQUFBLENBQUEs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
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { isNumber, uniqBy, sortBy, toLower } from 'lodash';
|
|
2
|
+
import { stringToJsRegex, VariableSort } from '@grafana/data';
|
|
3
|
+
|
|
4
|
+
function metricNamesToVariableValues(variableRegEx, sort, metricNames) {
|
|
5
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
6
|
+
let regex;
|
|
7
|
+
let options = [];
|
|
8
|
+
if (variableRegEx) {
|
|
9
|
+
regex = stringToJsRegex(variableRegEx);
|
|
10
|
+
}
|
|
11
|
+
for (let i = 0; i < metricNames.length; i++) {
|
|
12
|
+
const item = metricNames[i];
|
|
13
|
+
let text = (_b = (_a = item.text) != null ? _a : item.value) != null ? _b : "";
|
|
14
|
+
let value = (_d = (_c = item.value) != null ? _c : item.text) != null ? _d : "";
|
|
15
|
+
if (isNumber(value)) {
|
|
16
|
+
value = value.toString();
|
|
17
|
+
}
|
|
18
|
+
if (isNumber(text)) {
|
|
19
|
+
text = text.toString();
|
|
20
|
+
}
|
|
21
|
+
if (regex) {
|
|
22
|
+
const matches = getAllMatches(value, regex);
|
|
23
|
+
if (!matches.length) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const valueGroup = matches.find((m) => m.groups && m.groups.value);
|
|
27
|
+
const textGroup = matches.find((m) => m.groups && m.groups.text);
|
|
28
|
+
const firstMatch = matches.find((m) => m.length > 1);
|
|
29
|
+
const manyMatches = matches.length > 1 && firstMatch;
|
|
30
|
+
if (valueGroup || textGroup) {
|
|
31
|
+
value = (_g = (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value) != null ? _g : (_f = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _f.text;
|
|
32
|
+
text = (_j = (_h = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _h.text) != null ? _j : (_i = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _i.value;
|
|
33
|
+
} else if (manyMatches) {
|
|
34
|
+
for (let j = 0; j < matches.length; j++) {
|
|
35
|
+
const match = matches[j];
|
|
36
|
+
options.push({ label: match[1], value: match[1] });
|
|
37
|
+
}
|
|
38
|
+
continue;
|
|
39
|
+
} else if (firstMatch) {
|
|
40
|
+
text = firstMatch[1];
|
|
41
|
+
value = firstMatch[1];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
options.push({ label: text, value });
|
|
45
|
+
}
|
|
46
|
+
options = uniqBy(options, "value");
|
|
47
|
+
return sortVariableValues(options, sort);
|
|
48
|
+
}
|
|
49
|
+
const getAllMatches = (str, regex) => {
|
|
50
|
+
const results = [];
|
|
51
|
+
let matches = null;
|
|
52
|
+
regex.lastIndex = 0;
|
|
53
|
+
do {
|
|
54
|
+
matches = regex.exec(str);
|
|
55
|
+
if (matches) {
|
|
56
|
+
results.push(matches);
|
|
57
|
+
}
|
|
58
|
+
} while (regex.global && matches && matches[0] !== "" && matches[0] !== void 0);
|
|
59
|
+
return results;
|
|
60
|
+
};
|
|
61
|
+
const sortVariableValues = (options, sortOrder) => {
|
|
62
|
+
if (sortOrder === VariableSort.disabled) {
|
|
63
|
+
return options;
|
|
64
|
+
}
|
|
65
|
+
const sortByNumeric = (opt) => {
|
|
66
|
+
if (!opt.text) {
|
|
67
|
+
return -1;
|
|
68
|
+
}
|
|
69
|
+
const matches = opt.text.match(/.*?(\d+).*/);
|
|
70
|
+
if (!matches || matches.length < 2) {
|
|
71
|
+
return -1;
|
|
72
|
+
} else {
|
|
73
|
+
return parseInt(matches[1], 10);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const sortByNaturalSort = (options2) => {
|
|
77
|
+
return options2.sort((a, b) => {
|
|
78
|
+
if (!a.text) {
|
|
79
|
+
return -1;
|
|
80
|
+
}
|
|
81
|
+
if (!b.text) {
|
|
82
|
+
return 1;
|
|
83
|
+
}
|
|
84
|
+
return a.text.localeCompare(b.text, void 0, { numeric: true });
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
switch (sortOrder) {
|
|
88
|
+
case VariableSort.alphabeticalAsc:
|
|
89
|
+
options = sortBy(options, "label");
|
|
90
|
+
break;
|
|
91
|
+
case VariableSort.alphabeticalDesc:
|
|
92
|
+
options = sortBy(options, "label").reverse();
|
|
93
|
+
break;
|
|
94
|
+
case VariableSort.numericalAsc:
|
|
95
|
+
options = sortBy(options, sortByNumeric);
|
|
96
|
+
break;
|
|
97
|
+
case VariableSort.numericalDesc:
|
|
98
|
+
options = sortBy(options, sortByNumeric);
|
|
99
|
+
options = options.reverse();
|
|
100
|
+
break;
|
|
101
|
+
case VariableSort.alphabeticalCaseInsensitiveAsc:
|
|
102
|
+
options = sortBy(options, (opt) => {
|
|
103
|
+
return toLower(opt.label);
|
|
104
|
+
});
|
|
105
|
+
break;
|
|
106
|
+
case VariableSort.alphabeticalCaseInsensitiveDesc:
|
|
107
|
+
options = sortBy(options, (opt) => {
|
|
108
|
+
return toLower(opt.label);
|
|
109
|
+
});
|
|
110
|
+
options = options.reverse();
|
|
111
|
+
break;
|
|
112
|
+
case (VariableSort.naturalAsc || 7):
|
|
113
|
+
options = sortByNaturalSort(options);
|
|
114
|
+
break;
|
|
115
|
+
case (VariableSort.naturalDesc || 8):
|
|
116
|
+
options = sortByNaturalSort(options);
|
|
117
|
+
options = options.reverse();
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
return options;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export { metricNamesToVariableValues, sortVariableValues };
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3ZhcmlhYmxlcy92YXJpYW50cy9xdWVyeS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc051bWJlciwgdW5pcUJ5LCBzb3J0QnksIHRvTG93ZXIgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc3RyaW5nVG9Kc1JlZ2V4LCBWYXJpYWJsZVNvcnQgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcblxuZnVuY3Rpb24gbWV0cmljTmFtZXNUb1ZhcmlhYmxlVmFsdWVzKHZhcmlhYmxlUmVnRXgsIHNvcnQsIG1ldHJpY05hbWVzKSB7XG4gIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9pLCBfajtcbiAgbGV0IHJlZ2V4O1xuICBsZXQgb3B0aW9ucyA9IFtdO1xuICBpZiAodmFyaWFibGVSZWdFeCkge1xuICAgIHJlZ2V4ID0gc3RyaW5nVG9Kc1JlZ2V4KHZhcmlhYmxlUmVnRXgpO1xuICB9XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0cmljTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBpdGVtID0gbWV0cmljTmFtZXNbaV07XG4gICAgbGV0IHRleHQgPSAoX2IgPSAoX2EgPSBpdGVtLnRleHQpICE9IG51bGwgPyBfYSA6IGl0ZW0udmFsdWUpICE9IG51bGwgPyBfYiA6IFwiXCI7XG4gICAgbGV0IHZhbHVlID0gKF9kID0gKF9jID0gaXRlbS52YWx1ZSkgIT0gbnVsbCA/IF9jIDogaXRlbS50ZXh0KSAhPSBudWxsID8gX2QgOiBcIlwiO1xuICAgIGlmIChpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyKHRleHQpKSB7XG4gICAgICB0ZXh0ID0gdGV4dC50b1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAocmVnZXgpIHtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBnZXRBbGxNYXRjaGVzKHZhbHVlLCByZWdleCk7XG4gICAgICBpZiAoIW1hdGNoZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWVHcm91cCA9IG1hdGNoZXMuZmluZCgobSkgPT4gbS5ncm91cHMgJiYgbS5ncm91cHMudmFsdWUpO1xuICAgICAgY29uc3QgdGV4dEdyb3VwID0gbWF0Y2hlcy5maW5kKChtKSA9PiBtLmdyb3VwcyAmJiBtLmdyb3Vwcy50ZXh0KTtcbiAgICAgIGNvbnN0IGZpcnN0TWF0Y2ggPSBtYXRjaGVzLmZpbmQoKG0pID0+IG0ubGVuZ3RoID4gMSk7XG4gICAgICBjb25zdCBtYW55TWF0Y2hlcyA9IG1hdGNoZXMubGVuZ3RoID4gMSAmJiBmaXJzdE1hdGNoO1xuICAgICAgaWYgKHZhbHVlR3JvdXAgfHwgdGV4dEdyb3VwKSB7XG4gICAgICAgIHZhbHVlID0gKF9nID0gKF9lID0gdmFsdWVHcm91cCA9PSBudWxsID8gdm9pZCAwIDogdmFsdWVHcm91cC5ncm91cHMpID09IG51bGwgPyB2b2lkIDAgOiBfZS52YWx1ZSkgIT0gbnVsbCA/IF9nIDogKF9mID0gdGV4dEdyb3VwID09IG51bGwgPyB2b2lkIDAgOiB0ZXh0R3JvdXAuZ3JvdXBzKSA9PSBudWxsID8gdm9pZCAwIDogX2YudGV4dDtcbiAgICAgICAgdGV4dCA9IChfaiA9IChfaCA9IHRleHRHcm91cCA9PSBudWxsID8gdm9pZCAwIDogdGV4dEdyb3VwLmdyb3VwcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9oLnRleHQpICE9IG51bGwgPyBfaiA6IChfaSA9IHZhbHVlR3JvdXAgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlR3JvdXAuZ3JvdXBzKSA9PSBudWxsID8gdm9pZCAwIDogX2kudmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKG1hbnlNYXRjaGVzKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbWF0Y2hlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGNvbnN0IG1hdGNoID0gbWF0Y2hlc1tqXTtcbiAgICAgICAgICBvcHRpb25zLnB1c2goeyBsYWJlbDogbWF0Y2hbMV0sIHZhbHVlOiBtYXRjaFsxXSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSBpZiAoZmlyc3RNYXRjaCkge1xuICAgICAgICB0ZXh0ID0gZmlyc3RNYXRjaFsxXTtcbiAgICAgICAgdmFsdWUgPSBmaXJzdE1hdGNoWzFdO1xuICAgICAgfVxuICAgIH1cbiAgICBvcHRpb25zLnB1c2goeyBsYWJlbDogdGV4dCwgdmFsdWUgfSk7XG4gIH1cbiAgb3B0aW9ucyA9IHVuaXFCeShvcHRpb25zLCBcInZhbHVlXCIpO1xuICByZXR1cm4gc29ydFZhcmlhYmxlVmFsdWVzKG9wdGlvbnMsIHNvcnQpO1xufVxuY29uc3QgZ2V0QWxsTWF0Y2hlcyA9IChzdHIsIHJlZ2V4KSA9PiB7XG4gIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgbGV0IG1hdGNoZXMgPSBudWxsO1xuICByZWdleC5sYXN0SW5kZXggPSAwO1xuICBkbyB7XG4gICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMoc3RyKTtcbiAgICBpZiAobWF0Y2hlcykge1xuICAgICAgcmVzdWx0cy5wdXNoKG1hdGNoZXMpO1xuICAgIH1cbiAgfSB3aGlsZSAocmVnZXguZ2xvYmFsICYmIG1hdGNoZXMgJiYgbWF0Y2hlc1swXSAhPT0gXCJcIiAmJiBtYXRjaGVzWzBdICE9PSB2b2lkIDApO1xuICByZXR1cm4gcmVzdWx0cztcbn07XG5jb25zdCBzb3J0VmFyaWFibGVWYWx1ZXMgPSAob3B0aW9ucywgc29ydE9yZGVyKSA9PiB7XG4gIGlmIChzb3J0T3JkZXIgPT09IFZhcmlhYmxlU29ydC5kaXNhYmxlZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHNvcnRCeU51bWVyaWMgPSAob3B0KSA9PiB7XG4gICAgaWYgKCFvcHQudGV4dCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBjb25zdCBtYXRjaGVzID0gb3B0LnRleHQubWF0Y2goLy4qPyhcXGQrKS4qLyk7XG4gICAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXMubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGFyc2VJbnQobWF0Y2hlc1sxXSwgMTApO1xuICAgIH1cbiAgfTtcbiAgY29uc3Qgc29ydEJ5TmF0dXJhbFNvcnQgPSAob3B0aW9uczIpID0+IHtcbiAgICByZXR1cm4gb3B0aW9uczIuc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKCFhLnRleHQpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYgKCFiLnRleHQpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gYS50ZXh0LmxvY2FsZUNvbXBhcmUoYi50ZXh0LCB2b2lkIDAsIHsgbnVtZXJpYzogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgfTtcbiAgc3dpdGNoIChzb3J0T3JkZXIpIHtcbiAgICBjYXNlIFZhcmlhYmxlU29ydC5hbHBoYWJldGljYWxBc2M6XG4gICAgICBvcHRpb25zID0gc29ydEJ5KG9wdGlvbnMsIFwibGFiZWxcIik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFZhcmlhYmxlU29ydC5hbHBoYWJldGljYWxEZXNjOlxuICAgICAgb3B0aW9ucyA9IHNvcnRCeShvcHRpb25zLCBcImxhYmVsXCIpLnJldmVyc2UoKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmFyaWFibGVTb3J0Lm51bWVyaWNhbEFzYzpcbiAgICAgIG9wdGlvbnMgPSBzb3J0Qnkob3B0aW9ucywgc29ydEJ5TnVtZXJpYyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFZhcmlhYmxlU29ydC5udW1lcmljYWxEZXNjOlxuICAgICAgb3B0aW9ucyA9IHNvcnRCeShvcHRpb25zLCBzb3J0QnlOdW1lcmljKTtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zLnJldmVyc2UoKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmFyaWFibGVTb3J0LmFscGhhYmV0aWNhbENhc2VJbnNlbnNpdGl2ZUFzYzpcbiAgICAgIG9wdGlvbnMgPSBzb3J0Qnkob3B0aW9ucywgKG9wdCkgPT4ge1xuICAgICAgICByZXR1cm4gdG9Mb3dlcihvcHQubGFiZWwpO1xuICAgICAgfSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFZhcmlhYmxlU29ydC5hbHBoYWJldGljYWxDYXNlSW5zZW5zaXRpdmVEZXNjOlxuICAgICAgb3B0aW9ucyA9IHNvcnRCeShvcHRpb25zLCAob3B0KSA9PiB7XG4gICAgICAgIHJldHVybiB0b0xvd2VyKG9wdC5sYWJlbCk7XG4gICAgICB9KTtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zLnJldmVyc2UoKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgKFZhcmlhYmxlU29ydC5uYXR1cmFsQXNjIHx8IDcpOlxuICAgICAgb3B0aW9ucyA9IHNvcnRCeU5hdHVyYWxTb3J0KG9wdGlvbnMpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAoVmFyaWFibGVTb3J0Lm5hdHVyYWxEZXNjIHx8IDgpOlxuICAgICAgb3B0aW9ucyA9IHNvcnRCeU5hdHVyYWxTb3J0KG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMucmV2ZXJzZSgpO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnM7XG59O1xuXG5leHBvcnQgeyBtZXRyaWNOYW1lc1RvVmFyaWFibGVWYWx1ZXMsIHNvcnRWYXJpYWJsZVZhbHVlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUx5NHVMM055WXk5MllYSnBZV0pzWlhNdmRtRnlhV0Z1ZEhNdmNYVmxjbmt2ZFhScGJITXVkSE1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ2FYTk9kVzFpWlhJc0lITnZjblJDZVN3Z2RHOU1iM2RsY2l3Z2RXNXBjVUo1SUgwZ1puSnZiU0FuYkc5a1lYTm9KenRjYmx4dWFXMXdiM0owSUhzZ2MzUnlhVzVuVkc5S2MxSmxaMlY0TENCV1lYSnBZV0pzWlZOdmNuUWdmU0JtY205dElDZEFaM0poWm1GdVlTOWtZWFJoSnp0Y2JseHVhVzF3YjNKMElIc2dWbUZ5YVdGaWJHVldZV3gxWlU5d2RHbHZiaUI5SUdaeWIyMGdKeTR1THk0dUwzUjVjR1Z6Snp0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMWxkSEpwWTA1aGJXVnpWRzlXWVhKcFlXSnNaVlpoYkhWbGN5aDJZWEpwWVdKc1pWSmxaMFY0T2lCemRISnBibWNzSUhOdmNuUTZJRlpoY21saFlteGxVMjl5ZEN3Z2JXVjBjbWxqVG1GdFpYTTZJR0Z1ZVZ0ZEtTQjdYRzRnSUd4bGRDQnlaV2RsZUR0Y2JpQWdiR1YwSUc5d2RHbHZibk02SUZaaGNtbGhZbXhsVm1Gc2RXVlBjSFJwYjI1YlhTQTlJRnRkTzF4dVhHNGdJR2xtSUNoMllYSnBZV0pzWlZKbFowVjRLU0I3WEc0Z0lDQWdjbVZuWlhnZ1BTQnpkSEpwYm1kVWIwcHpVbVZuWlhnb2RtRnlhV0ZpYkdWU1pXZEZlQ2s3WEc0Z0lIMWNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHMWxkSEpwWTA1aGJXVnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnWTI5dWMzUWdhWFJsYlNBOUlHMWxkSEpwWTA1aGJXVnpXMmxkTzF4dUlDQWdJR3hsZENCMFpYaDBJRDBnYVhSbGJTNTBaWGgwSUQ4L0lHbDBaVzB1ZG1Gc2RXVWdQejhnSnljN1hHNGdJQ0FnYkdWMElIWmhiSFZsSUQwZ2FYUmxiUzUyWVd4MVpTQS9QeUJwZEdWdExuUmxlSFFnUHo4Z0p5YzdYRzVjYmlBZ0lDQnBaaUFvYVhOT2RXMWlaWElvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0IyWVd4MVpTQTlJSFpoYkhWbExuUnZVM1J5YVc1bktDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR2x6VG5WdFltVnlLSFJsZUhRcEtTQjdYRzRnSUNBZ0lDQjBaWGgwSUQwZ2RHVjRkQzUwYjFOMGNtbHVaeWdwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoeVpXZGxlQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiV0YwWTJobGN5QTlJR2RsZEVGc2JFMWhkR05vWlhNb2RtRnNkV1VzSUhKbFoyVjRLVHRjYmlBZ0lDQWdJR2xtSUNnaGJXRjBZMmhsY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHTnZibk4wSUhaaGJIVmxSM0p2ZFhBZ1BTQnRZWFJqYUdWekxtWnBibVFvS0cwcElEMCtJRzB1WjNKdmRYQnpJQ1ltSUcwdVozSnZkWEJ6TG5aaGJIVmxLVHRjYmlBZ0lDQWdJR052Ym5OMElIUmxlSFJIY205MWNDQTlJRzFoZEdOb1pYTXVabWx1WkNnb2JTa2dQVDRnYlM1bmNtOTFjSE1nSmlZZ2JTNW5jbTkxY0hNdWRHVjRkQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQm1hWEp6ZEUxaGRHTm9JRDBnYldGMFkyaGxjeTVtYVc1a0tDaHRLU0E5UGlCdExteGxibWQwYUNBK0lERXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2JXRnVlVTFoZEdOb1pYTWdQU0J0WVhSamFHVnpMbXhsYm1kMGFDQStJREVnSmlZZ1ptbHljM1JOWVhSamFEdGNibHh1SUNBZ0lDQWdhV1lnS0haaGJIVmxSM0p2ZFhBZ2ZId2dkR1Y0ZEVkeWIzVndLU0I3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxJRDBnZG1Gc2RXVkhjbTkxY0Q4dVozSnZkWEJ6UHk1MllXeDFaU0EvUHlCMFpYaDBSM0p2ZFhBL0xtZHliM1Z3Y3o4dWRHVjRkRHRjYmlBZ0lDQWdJQ0FnZEdWNGRDQTlJSFJsZUhSSGNtOTFjRDh1WjNKdmRYQnpQeTUwWlhoMElEOC9JSFpoYkhWbFIzSnZkWEEvTG1keWIzVndjejh1ZG1Gc2RXVTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLRzFoYm5sTllYUmphR1Z6S1NCN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2diV0YwWTJobGN5NXNaVzVuZEdnN0lHb3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRHTm9JRDBnYldGMFkyaGxjMXRxWFR0Y2JpQWdJQ0FnSUNBZ0lDQnZjSFJwYjI1ekxuQjFjMmdvZXlCc1lXSmxiRG9nYldGMFkyaGJNVjBzSUhaaGJIVmxPaUJ0WVhSamFGc3hYU0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9abWx5YzNSTllYUmphQ2tnZTF4dUlDQWdJQ0FnSUNCMFpYaDBJRDBnWm1seWMzUk5ZWFJqYUZzeFhUdGNiaUFnSUNBZ0lDQWdkbUZzZFdVZ1BTQm1hWEp6ZEUxaGRHTm9XekZkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJRzl3ZEdsdmJuTXVjSFZ6YUNoN0lHeGhZbVZzT2lCMFpYaDBMQ0IyWVd4MVpUb2dkbUZzZFdVZ2ZTazdYRzRnSUgxY2JseHVJQ0J2Y0hScGIyNXpJRDBnZFc1cGNVSjVLRzl3ZEdsdmJuTXNJQ2QyWVd4MVpTY3BPMXh1SUNCeVpYUjFjbTRnYzI5eWRGWmhjbWxoWW14bFZtRnNkV1Z6S0c5d2RHbHZibk1zSUhOdmNuUXBPMXh1ZlZ4dVhHNWpiMjV6ZENCblpYUkJiR3hOWVhSamFHVnpJRDBnS0hOMGNqb2djM1J5YVc1bkxDQnlaV2RsZURvZ1VtVm5SWGh3S1RvZ1VtVm5SWGh3UlhobFkwRnljbUY1VzEwZ1BUNGdlMXh1SUNCamIyNXpkQ0J5WlhOMWJIUnpPaUJTWldkRmVIQkZlR1ZqUVhKeVlYbGJYU0E5SUZ0ZE8xeHVJQ0JzWlhRZ2JXRjBZMmhsY3lBOUlHNTFiR3c3WEc1Y2JpQWdjbVZuWlhndWJHRnpkRWx1WkdWNElEMGdNRHRjYmx4dUlDQmtieUI3WEc0Z0lDQWdiV0YwWTJobGN5QTlJSEpsWjJWNExtVjRaV01vYzNSeUtUdGNiaUFnSUNCcFppQW9iV0YwWTJobGN5a2dlMXh1SUNBZ0lDQWdjbVZ6ZFd4MGN5NXdkWE5vS0cxaGRHTm9aWE1wTzF4dUlDQWdJSDFjYmlBZ2ZTQjNhR2xzWlNBb2NtVm5aWGd1WjJ4dlltRnNJQ1ltSUcxaGRHTm9aWE1nSmlZZ2JXRjBZMmhsYzFzd1hTQWhQVDBnSnljZ0ppWWdiV0YwWTJobGMxc3dYU0FoUFQwZ2RXNWtaV1pwYm1Wa0tUdGNibHh1SUNCeVpYUjFjbTRnY21WemRXeDBjenRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCemIzSjBWbUZ5YVdGaWJHVldZV3gxWlhNZ1BTQW9iM0IwYVc5dWN6b2dZVzU1VzEwc0lITnZjblJQY21SbGNqb2dWbUZ5YVdGaWJHVlRiM0owS1NBOVBpQjdYRzRnSUdsbUlDaHpiM0owVDNKa1pYSWdQVDA5SUZaaGNtbGhZbXhsVTI5eWRDNWthWE5oWW14bFpDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdmNIUnBiMjV6TzF4dUlDQjlYRzVjYmlBZ0x5OGdRSFJ6TFdsbmJtOXlaVnh1SUNCamIyNXpkQ0J6YjNKMFFubE9kVzFsY21saklEMGdLRzl3ZENrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2doYjNCMExuUmxlSFFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUF0TVR0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2JXRjBZMmhsY3lBOUlHOXdkQzUwWlhoMExtMWhkR05vS0M4dUtqOG9YRnhrS3lrdUtpOHBPMXh1SUNBZ0lHbG1JQ2doYldGMFkyaGxjeUI4ZkNCdFlYUmphR1Z6TG14bGJtZDBhQ0E4SURJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBdE1UdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSEJoY25ObFNXNTBLRzFoZEdOb1pYTmJNVjBzSURFd0tUdGNiaUFnSUNCOVhHNGdJSDA3WEc1Y2JpQWdMeThnUUhSekxXbG5ibTl5WlZ4dUlDQmpiMjV6ZENCemIzSjBRbmxPWVhSMWNtRnNVMjl5ZENBOUlDaHZjSFJwYjI1ektTQTlQaUI3WEc0Z0lDQWdMeTlBZEhNdGFXZHViM0psWEc0Z0lDQWdjbVYwZFhKdUlHOXdkR2x2Ym5NdWMyOXlkQ2dvWVN3Z1lpa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tDRmhMblJsZUhRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDMHhPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb0lXSXVkR1Y0ZENrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z01UdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHRXVkR1Y0ZEM1c2IyTmhiR1ZEYjIxd1lYSmxLR0l1ZEdWNGRDd2dkVzVrWldacGJtVmtMQ0I3SUc1MWJXVnlhV002SUhSeWRXVWdmU2s3WEc0Z0lDQWdmU2s3WEc0Z0lIMDdYRzVjYmlBZ2MzZHBkR05vSUNoemIzSjBUM0prWlhJcElIdGNiaUFnSUNCallYTmxJRlpoY21saFlteGxVMjl5ZEM1aGJIQm9ZV0psZEdsallXeEJjMk02WEc0Z0lDQWdJQ0J2Y0hScGIyNXpJRDBnYzI5eWRFSjVLRzl3ZEdsdmJuTXNJQ2RzWVdKbGJDY3BPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQldZWEpwWVdKc1pWTnZjblF1WVd4d2FHRmlaWFJwWTJGc1JHVnpZenBjYmlBZ0lDQWdJRzl3ZEdsdmJuTWdQU0J6YjNKMFFua29iM0IwYVc5dWN5d2dKMnhoWW1Wc0p5a3VjbVYyWlhKelpTZ3BPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQldZWEpwWVdKc1pWTnZjblF1Ym5WdFpYSnBZMkZzUVhOak9seHVJQ0FnSUNBZ2IzQjBhVzl1Y3lBOUlITnZjblJDZVNodmNIUnBiMjV6TENCemIzSjBRbmxPZFcxbGNtbGpLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdWbUZ5YVdGaWJHVlRiM0owTG01MWJXVnlhV05oYkVSbGMyTTZYRzRnSUNBZ0lDQnZjSFJwYjI1eklEMGdjMjl5ZEVKNUtHOXdkR2x2Ym5Nc0lITnZjblJDZVU1MWJXVnlhV01wTzF4dUlDQWdJQ0FnYjNCMGFXOXVjeUE5SUc5d2RHbHZibk11Y21WMlpYSnpaU2dwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0JXWVhKcFlXSnNaVk52Y25RdVlXeHdhR0ZpWlhScFkyRnNRMkZ6WlVsdWMyVnVjMmwwYVhabFFYTmpPbHh1SUNBZ0lDQWdiM0IwYVc5dWN5QTlJSE52Y25SQ2VTaHZjSFJwYjI1ekxDQW9iM0IwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBiMHh2ZDJWeUtHOXdkQzVzWVdKbGJDazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdWbUZ5YVdGaWJHVlRiM0owTG1Gc2NHaGhZbVYwYVdOaGJFTmhjMlZKYm5ObGJuTnBkR2wyWlVSbGMyTTZYRzRnSUNBZ0lDQnZjSFJwYjI1eklEMGdjMjl5ZEVKNUtHOXdkR2x2Ym5Nc0lDaHZjSFFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUnZURzkzWlhJb2IzQjBMbXhoWW1Wc0tUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdiM0IwYVc5dWN5QTlJRzl3ZEdsdmJuTXVjbVYyWlhKelpTZ3BPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQldZWEpwWVdKc1pWTnZjblF1Ym1GMGRYSmhiRUZ6WXlCOGZDQTNPbHh1SUNBZ0lDQWdMeThnVTI5eWRDQmllU0J1WVhSMWNtRnNJSE52Y25SY2JpQWdJQ0FnSUc5d2RHbHZibk1nUFNCemIzSjBRbmxPWVhSMWNtRnNVMjl5ZENodmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnVm1GeWFXRmliR1ZUYjNKMExtNWhkSFZ5WVd4RVpYTmpJSHg4SURnNlhHNGdJQ0FnSUNCdmNIUnBiMjV6SUQwZ2MyOXlkRUo1VG1GMGRYSmhiRk52Y25Rb2IzQjBhVzl1Y3lrN1hHNGdJQ0FnSUNCdmNIUnBiMjV6SUQwZ2IzQjBhVzl1Y3k1eVpYWmxjbk5sS0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzl3ZEdsdmJuTTdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJJbTl3ZEdsdmJuTWlYU3dpYldGd2NHbHVaM01pT2lJN096dEJRVTFuUWl4VFFVRkJMREpDUVVGQkxFTkJRVFJDTEdGQlFYVkNMRVZCUVVFc1NVRkJRU3hGUVVGdlFpeFhRVUZ2UWl4RlFVRkJPMEZCVGpOSExFVkJRVUVzU1VGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVOQlFVRTdRVUZQUlN4RlFVRkpMRWxCUVVFc1MwRkJRU3hEUVVGQk8wRkJRMG9zUlVGQlFTeEpRVUZKTEZWQlFXbERMRVZCUVVNc1EwRkJRVHRCUVVWMFF5eEZRVUZCTEVsQlFVa3NZVUZCWlN4RlFVRkJPMEZCUTJwQ0xFbEJRVUVzUzBGQlFTeEhRVUZSTEdkQ1FVRm5RaXhoUVVGaExFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEzWkRPMEZCUlVFc1JVRkJRU3hMUVVGQkxFbEJRVk1zUTBGQlNTeEhRVUZCTEVOQlFVRXNSVUZCUnl4RFFVRkpMRWRCUVVFc1YwRkJRU3hEUVVGWkxGRkJRVkVzUTBGQlN5eEZRVUZCTEVWQlFVRTdRVUZETTBNc1NVRkJRU3hOUVVGTkxFOUJRVThzVjBGQldTeERRVUZCTEVOQlFVRXNRMEZCUVN4RFFVRkJPMEZCUTNwQ0xFbEJRVUVzU1VGQlNTeFJRVUZQTEVWQlFVc3NSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGQkxFTkJRVUVzU1VGQlFTeExRVUZNTEVsQlFXRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJRU3hEUVVGTExGVkJRV3hDTEVsQlFUSkNMRWRCUVVFc1JVRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlFUdEJRVU4wUXl4SlFVRkJMRWxCUVVrc1UwRkJVU3hGUVVGTExFZEJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCUVN4RFFVRkJMRXRCUVVFc1MwRkJUQ3hKUVVGakxFZEJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVRXNRMEZCU3l4VFFVRnVRaXhKUVVFeVFpeEhRVUZCTEVWQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVFN1FVRkZka01zU1VGQlNTeEpRVUZCTEZGQlFVRXNRMEZCVXl4TFFVRkxMRU5CUVVjc1JVRkJRVHRCUVVOdVFpeE5RVUZCTEV0QlFVRXNSMEZCVVN4TlFVRk5MRkZCUVZNc1JVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRGVrSTdRVUZGUVN4SlFVRkpMRWxCUVVFc1VVRkJRU3hEUVVGVExFbEJRVWtzUTBGQlJ5eEZRVUZCTzBGQlEyeENMRTFCUVVFc1NVRkJRU3hIUVVGUExFdEJRVXNzVVVGQlV5eEZRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTjJRanRCUVVWQkxFbEJRVUVzU1VGQlNTeExRVUZQTEVWQlFVRTdRVUZEVkN4TlFVRk5MRTFCUVVFc1QwRkJRU3hIUVVGVkxHRkJRV01zUTBGQlFTeExRVUZCTEVWQlFVOHNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkRNVU1zVFVGQlNTeEpRVUZCTEVOQlFVTXNVVUZCVVN4TlFVRlJMRVZCUVVFN1FVRkRia0lzVVVGQlFTeFRRVUZCTzBGQlFVRXNUMEZEUmp0QlFVVkJMRTFCUVUwc1RVRkJRU3hWUVVGQkxFZEJRV0VzVVVGQlVTeEpRVUZMTEVOQlFVRXNRMEZCUXl4TlFVRk5MRU5CUVVVc1EwRkJRU3hOUVVGQkxFbEJRVlVzUTBGQlJTeERRVUZCTEUxQlFVRXNRMEZCVHl4TFFVRkxMRU5CUVVFc1EwRkJRVHRCUVVOcVJTeE5RVUZOTEUxQlFVRXNVMEZCUVN4SFFVRlpMRkZCUVZFc1NVRkJTeXhEUVVGQkxFTkJRVU1zVFVGQlRTeERRVUZGTEVOQlFVRXNUVUZCUVN4SlFVRlZMRU5CUVVVc1EwRkJRU3hOUVVGQkxFTkJRVThzU1VGQlNTeERRVUZCTEVOQlFVRTdRVUZETDBRc1RVRkJRU3hOUVVGTkxHRkJRV0VzVDBGQlVTeERRVUZCTEVsQlFVRXNRMEZCU3l4RFFVRkRMRU5CUVUwc1MwRkJRU3hEUVVGQkxFTkJRVVVzVTBGQlV5eERRVUZETEVOQlFVRXNRMEZCUVR0QlFVTnVSQ3hOUVVGTkxFMUJRVUVzVjBGQlFTeEhRVUZqTEU5QlFWRXNRMEZCUVN4TlFVRkJMRWRCUVZNc1EwRkJTeXhKUVVGQkxGVkJRVUVzUTBGQlFUdEJRVVV4UXl4TlFVRkJMRWxCUVVrc1kwRkJZeXhUUVVGWExFVkJRVUU3UVVGRE0wSXNVVUZCUVN4TFFVRkJMRWRCUVVFc1EwRkJVU3h2UkVGQldTeE5RVUZhTEV0QlFVRXNTVUZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQmIwSXNWVUZCY0VJc1NVRkJOa0lzUjBGQlFTeEZRVUZCTEVkQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc1UwRkJRU3hKUVVGQkxFbEJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4VFFVRkJMRU5CUVZjc1YwRkJXQ3hKUVVGdFFpeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJRU3hKUVVGQkxFTkJRVUU3UVVGRGVFUXNVVUZCUVN4SlFVRkJMRWRCUVVFc1EwRkJUeXhyUkVGQlZ5eE5RVUZZTEV0QlFVRXNTVUZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQmJVSXNVMEZCYmtJc1NVRkJNa0lzUjBGQlFTeEZRVUZCTEVkQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc1ZVRkJRU3hKUVVGQkxFbEJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4VlFVRkJMRU5CUVZrc1YwRkJXaXhKUVVGdlFpeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJRU3hMUVVGQkxFTkJRVUU3UVVGQlFTeHBRa0ZETjBNc1YwRkJZU3hGUVVGQk8wRkJRM1JDTEZGQlFVRXNTMEZCUVN4SlFVRlRMRU5CUVVrc1IwRkJRU3hEUVVGQkxFVkJRVWNzUTBGQlNTeEhRVUZCTEU5QlFVRXNRMEZCVVN4UlFVRlJMRU5CUVVzc1JVRkJRU3hGUVVGQk8wRkJRM1pETEZWQlFVRXNUVUZCVFN4UlFVRlJMRTlCUVZFc1EwRkJRU3hEUVVGQkxFTkJRVUVzUTBGQlFUdEJRVU4wUWl4VlFVRlJMRTlCUVVFc1EwRkJRU3hKUVVGQkxFTkJRVXNzUlVGQlJTeExRVUZQTEVWQlFVRXNTMEZCUVN4RFFVRk5MRWxCUVVrc1MwRkJUeXhGUVVGQkxFdEJRVUVzUTBGQlRTeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVRkJMRk5CUTI1RU8wRkJRMEVzVVVGQlFTeFRRVUZCTzBGQlFVRXNhVUpCUTFNc1ZVRkJXU3hGUVVGQk8wRkJRM0pDTEZGQlFVRXNTVUZCUVN4SFFVRlBMRlZCUVZjc1EwRkJRU3hEUVVGQkxFTkJRVUVzUTBGQlFUdEJRVU5zUWl4UlFVRkJMRXRCUVVFc1IwRkJVU3hWUVVGWExFTkJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTnlRanRCUVVGQkxFdEJRMFk3UVVGRlFTeEpRVUZCTEU5QlFVRXNRMEZCVVN4SlFVRkxMRU5CUVVFc1JVRkJSU3hMUVVGUExFVkJRVUVzU1VGQlFTeEZRVUZOTEU5QlFXTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkROVU03UVVGRlFTeEZRVUZWTEU5QlFVRXNSMEZCUVN4TlFVRkJMRU5CUVU4c1UwRkJVeXhQUVVGUExFTkJRVUVzUTBGQlFUdEJRVU5xUXl4RlFVRlBMRTlCUVVFc2EwSkJRVUVzUTBGQmJVSXNVMEZCVXl4SlFVRkpMRU5CUVVFc1EwRkJRVHRCUVVONlF5eERRVUZCTzBGQlJVRXNUVUZCVFN4aFFVRkJMRWRCUVdkQ0xFTkJRVU1zUjBGQlFTeEZRVUZoTEV0QlFYRkRMRXRCUVVFN1FVRkRka1VzUlVGQlFTeE5RVUZOTEZWQlFUWkNMRVZCUVVNc1EwRkJRVHRCUVVOd1F5eEZRVUZCTEVsQlFVa3NUMEZCVlN4SFFVRkJMRWxCUVVFc1EwRkJRVHRCUVVWa0xFVkJRVUVzUzBGQlFTeERRVUZOTEZOQlFWa3NSMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkZiRUlzUlVGQlJ5eEhRVUZCTzBGQlEwUXNTVUZCVlN4UFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZCTEVOQlFVRTdRVUZEZUVJc1NVRkJRU3hKUVVGSkxFOUJRVk1zUlVGQlFUdEJRVU5ZTEUxQlFVRXNUMEZCUVN4RFFVRlJMRXRCUVVzc1QwRkJUeXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU4wUWp0QlFVRkJMRWRCUTBZc1VVRkJVeXhOUVVGTkxFMUJRVlVzU1VGQlFTeFBRVUZCTEVsQlFWY3NVVUZCVVN4RFFVRlBMRU5CUVVFc1MwRkJRU3hGUVVGQkxFbEJRVTBzVVVGQlVTeERRVUZQTEVOQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1JVRkJRVHRCUVVWNFJTeEZRVUZQTEU5QlFVRXNUMEZCUVN4RFFVRkJPMEZCUTFRc1EwRkJRU3hEUVVGQk8wRkJSV0VzVFVGQlFTeHJRa0ZCUVN4SFFVRnhRaXhEUVVGRExFOUJRVUVzUlVGQlowSXNVMEZCTkVJc1MwRkJRVHRCUVVNM1JTeEZRVUZKTEVsQlFVRXNVMEZCUVN4TFFVRmpMR0ZCUVdFc1VVRkJWU3hGUVVGQk8wRkJRM1pETEVsQlFVOHNUMEZCUVN4UFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJSMEVzUlVGQlRTeE5RVUZCTEdGQlFVRXNSMEZCWjBJc1EwRkJReXhIUVVGUkxFdEJRVUU3UVVGRE4wSXNTVUZCU1N4SlFVRkJMRU5CUVVNc1NVRkJTU3hKUVVGTkxFVkJRVUU3UVVGRFlpeE5RVUZQTEU5QlFVRXNRMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOVU8wRkJRMEVzU1VGQlFTeE5RVUZOTEU5QlFWVXNSMEZCUVN4SFFVRkJMRU5CUVVrc1NVRkJTeXhEUVVGQkxFdEJRVUVzUTBGQlRTeFpRVUZaTEVOQlFVRXNRMEZCUVR0QlFVTXpReXhKUVVGQkxFbEJRVWtzUTBGQlF5eFBRVUZCTEVsQlFWY3NUMEZCVVN4RFFVRkJMRTFCUVVFc1IwRkJVeXhEUVVGSExFVkJRVUU3UVVGRGJFTXNUVUZCVHl4UFFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFJpeE5RVUZCTzBGQlEwd3NUVUZCVHl4UFFVRkJMRkZCUVVFc1EwRkJVeXhQUVVGUkxFTkJRVUVzUTBGQlFTeERRVUZCTEVWQlFVa3NSVUZCUlN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOb1F6dEJRVUZCTEVkQlEwWXNRMEZCUVR0QlFVZEJMRVZCUVUwc1RVRkJRU3hwUWtGQlFTeEhRVUZ2UWl4RFFVRkRRU3hSUVVGWkxFdEJRVUU3UVVGRmNrTXNTVUZCUVN4UFFVRlBRU3hSUVVGUkxFTkJRVUVzU1VGQlFTeERRVUZMTEVOQlFVTXNRMEZCUVN4RlFVRkhMRU5CUVUwc1MwRkJRVHRCUVVNMVFpeE5RVUZKTEVsQlFVRXNRMEZCUXl4RlFVRkZMRWxCUVUwc1JVRkJRVHRCUVVOWUxGRkJRVThzVDBGQlFTeERRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTFRN1FVRkZRU3hOUVVGSkxFbEJRVUVzUTBGQlF5eEZRVUZGTEVsQlFVMHNSVUZCUVR0QlFVTllMRkZCUVU4c1QwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU5VTzBGQlJVRXNUVUZCVHl4UFFVRkJMRU5CUVVFc1EwRkJSU3hMUVVGTExHRkJRV01zUTBGQlFTeERRVUZCTEVOQlFVVXNUVUZCVFN4TFFVRlhMRU5CUVVFc1JVRkJRU3hGUVVGRkxFOUJRVk1zUlVGQlFTeEpRVUZCTEVWQlFVMHNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRha1VzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZEU0N4RFFVRkJPMEZCUlVFc1JVRkJVU3hSUVVGQkxGTkJRVUU3UVVGQlFTeEpRVUZCTEV0QlEwUXNXVUZCWVN4RFFVRkJMR1ZCUVVFN1FVRkRhRUlzVFVGQlZTeFBRVUZCTEVkQlFVRXNUVUZCUVN4RFFVRlBMRk5CUVZNc1QwRkJUeXhEUVVGQkxFTkJRVUU3UVVGRGFrTXNUVUZCUVN4TlFVRkJPMEZCUVVFc1NVRkJRU3hMUVVOSExGbEJRV0VzUTBGQlFTeG5Ra0ZCUVR0QlFVTm9RaXhOUVVGQkxFOUJRVUVzUjBGQlZTeE5RVUZQTEVOQlFVRXNUMEZCUVN4RlFVRlRMRTlCUVU4c1EwRkJRU3hEUVVGRkxFOUJRVkVzUlVGQlFTeERRVUZCTzBGQlF6TkRMRTFCUVVFc1RVRkJRVHRCUVVGQkxFbEJRVUVzUzBGRFJ5eFpRVUZoTEVOQlFVRXNXVUZCUVR0QlFVTm9RaXhOUVVGVkxFOUJRVUVzUjBGQlFTeE5RVUZCTEVOQlFVOHNVMEZCVXl4aFFVRmhMRU5CUVVFc1EwRkJRVHRCUVVOMlF5eE5RVUZCTEUxQlFVRTdRVUZCUVN4SlFVRkJMRXRCUTBjc1dVRkJZU3hEUVVGQkxHRkJRVUU3UVVGRGFFSXNUVUZCVlN4UFFVRkJMRWRCUVVFc1RVRkJRU3hEUVVGUExGTkJRVk1zWVVGQllTeERRVUZCTEVOQlFVRTdRVUZEZGtNc1RVRkJRU3hQUVVGQkxFZEJRVlVzVVVGQlVTeFBRVUZSTEVWQlFVRXNRMEZCUVR0QlFVTXhRaXhOUVVGQkxFMUJRVUU3UVVGQlFTeEpRVUZCTEV0QlEwY3NXVUZCWVN4RFFVRkJMRGhDUVVGQk8wRkJRMmhDTEUxQlFWVXNUMEZCUVN4SFFVRkJMRTFCUVVFc1EwRkJUeXhQUVVGVExFVkJRVUVzUTBGQlF5eEhRVUZSTEV0QlFVRTdRVUZEYWtNc1VVRkJUeXhQUVVGQkxFOUJRVUVzUTBGQlVTeEpRVUZKTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUVVFc1QwRkRla0lzUTBGQlFTeERRVUZCTzBGQlEwUXNUVUZCUVN4TlFVRkJPMEZCUVVFc1NVRkJRU3hMUVVOSExGbEJRV0VzUTBGQlFTd3JRa0ZCUVR0QlFVTm9RaXhOUVVGVkxFOUJRVUVzUjBGQlFTeE5RVUZCTEVOQlFVOHNUMEZCVXl4RlFVRkJMRU5CUVVNc1IwRkJVU3hMUVVGQk8wRkJRMnBETEZGQlFVOHNUMEZCUVN4UFFVRkJMRU5CUVZFc1NVRkJTU3hMUVVGTExFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEzcENMRU5CUVVFc1EwRkJRVHRCUVVORUxFMUJRVUVzVDBGQlFTeEhRVUZWTEZGQlFWRXNUMEZCVVN4RlFVRkJMRU5CUVVFN1FVRkRNVUlzVFVGQlFTeE5RVUZCTzBGQlFVRXNTVUZCUVN4TlFVTkhMR0ZCUVdFc1ZVRkJZeXhKUVVGQkxFTkJRVUU3UVVGRk9VSXNUVUZCUVN4UFFVRkJMRWRCUVZVc2EwSkJRV3RDTEU5QlFVOHNRMEZCUVN4RFFVRkJPMEZCUTI1RExFMUJRVUVzVFVGQlFUdEJRVUZCTEVsQlFVRXNUVUZEUnl4aFFVRmhMRmRCUVdVc1NVRkJRU3hEUVVGQk8wRkJReTlDTEUxQlFVRXNUMEZCUVN4SFFVRlZMR3RDUVVGclFpeFBRVUZQTEVOQlFVRXNRMEZCUVR0QlFVTnVReXhOUVVGQkxFOUJRVUVzUjBGQlZTeFJRVUZSTEU5QlFWRXNSVUZCUVN4RFFVRkJPMEZCUXpGQ0xFMUJRVUVzVFVGQlFUdEJRVVZCTEVkQlFVRTdRVUZGU2l4RlFVRlBMRTlCUVVFc1QwRkJRU3hEUVVGQk8wRkJRMVE3T3pzN0luMD1cbiJdLCJuYW1lcyI6WyJvcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7QUFNZ0IsU0FBQSwyQkFBQSxDQUE0QixhQUF1QixFQUFBLElBQUEsRUFBb0IsV0FBb0IsRUFBQTtBQU4zRyxFQUFBLElBQUEsRUFBQSxFQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFBQSxFQUFBLEVBQUEsRUFBQSxDQUFBO0FBT00sRUFBQSxJQUFBLEtBQUEsQ0FBQTtBQUNKLEVBQUEsSUFBSSxVQUFpQyxFQUFBLENBQUE7QUFFckMsRUFBQSxJQUFJLGFBQWUsRUFBQTtBQUNqQixJQUFBLEtBQUEsR0FBUSxnQkFBZ0IsYUFBYSxDQUFBLENBQUE7QUFBQSxHQUFBO0FBR3ZDLEVBQUEsS0FBQSxJQUFTLENBQUksR0FBQSxDQUFBLEVBQUcsQ0FBSSxHQUFBLFdBQUEsQ0FBWSxRQUFRLENBQUssRUFBQSxFQUFBO0FBQzNDLElBQUEsTUFBTSxPQUFPLFdBQVksQ0FBQSxDQUFBLENBQUEsQ0FBQTtBQUN6QixJQUFJLElBQUEsSUFBQSxHQUFBLENBQU8sRUFBSyxHQUFBLENBQUEsRUFBQSxHQUFBLElBQUEsQ0FBQSxJQUFB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
|
package/dist/esm/index.js
CHANGED
|
@@ -77,7 +77,7 @@ export { FieldConfigBuilder } from './core/PanelBuilders/FieldConfigBuilder.js';
|
|
|
77
77
|
export { VizPanelBuilder } from './core/PanelBuilders/VizPanelBuilder.js';
|
|
78
78
|
export { SceneDebugger } from './components/SceneDebugger/SceneDebugger.js';
|
|
79
79
|
export { ControlsLabel } from './utils/ControlsLabel.js';
|
|
80
|
-
export { renderSelectForVariable } from './variables/components/VariableValueSelect.js';
|
|
80
|
+
export { MultiOrSingleValueSelect as renderSelectForVariable } from './variables/components/VariableValueSelect.js';
|
|
81
81
|
export { VizConfigBuilder } from './core/PanelBuilders/VizConfigBuilder.js';
|
|
82
82
|
export { VizConfigBuilders } from './core/PanelBuilders/VizConfigBuilders.js';
|
|
83
83
|
export { SceneScopesBridge } from './core/SceneScopesBridge.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { getUrlWithAppState } from './components/SceneApp/utils';\nimport { registerRuntimePanelPlugin } from './components/VizPanel/registerRuntimePanelPlugin';\nimport { cloneSceneObjectState } from './core/sceneGraph/utils';\nimport { registerRuntimeDataSource } from './querying/RuntimeDataSource';\nimport { getUrlState, syncStateFromSearchParams } from './services/utils';\n\nimport { registerVariableMacro } from './variables/macros';\nimport {\n escapeLabelValueInExactSelector,\n escapeLabelValueInRegexSelector,\n escapeURLDelimiters,\n renderPrometheusLabelFilters,\n} from './variables/utils';\nimport {\n isAdHocVariable,\n isQueryVariable,\n isTextBoxVariable,\n isCustomVariable,\n isDataSourceVariable,\n isConstantVariable,\n isIntervalVariable,\n isGroupByVariable,\n} from './variables/variants/guards';\n\nexport * from './core/types';\nexport * from './core/events';\nexport { sceneGraph } from './core/sceneGraph';\nexport * as behaviors from './behaviors';\nexport * as dataLayers from './querying/layers';\n\nexport { SceneObjectBase, useSceneObjectState } from './core/SceneObjectBase';\nexport { SceneDataNode } from './core/SceneDataNode';\nexport { SceneTimeRange } from './core/SceneTimeRange';\nexport { SceneTimeZoneOverride } from './core/SceneTimeZoneOverride';\n\nexport { SceneQueryRunner, type QueryRunnerState } from './querying/SceneQueryRunner';\nexport { DataProviderProxy } from './querying/DataProviderProxy';\nexport {\n type ExtraQueryDescriptor,\n type ExtraQueryProvider,\n type ExtraQueryDataProcessor,\n} from './querying/ExtraQueryProvider';\nexport { SceneDataLayerSet, SceneDataLayerSetBase } from './querying/SceneDataLayerSet';\nexport { SceneDataLayerBase } from './querying/layers/SceneDataLayerBase';\nexport { SceneDataLayerControls } from './querying/layers/SceneDataLayerControls';\nexport { SceneDataTransformer, type SceneDataTransformerState } from './querying/SceneDataTransformer';\nexport { registerQueryWithController } from './querying/registerQueryWithController';\nexport { registerRuntimeDataSource, RuntimeDataSource } from './querying/RuntimeDataSource';\nexport type {\n SceneQueryControllerLike,\n SceneQueryControllerEntryType,\n SceneQueryControllerEntry,\n SceneInteractionProfileEvent,\n} from './behaviors/types';\n\nexport * from './variables/types';\nexport { VariableDependencyConfig } from './variables/VariableDependencyConfig';\nexport { formatRegistry, type FormatVariable } from './variables/interpolation/formatRegistry';\nexport { VariableValueSelectors } from './variables/components/VariableValueSelectors';\nexport { VariableValueControl } from './variables/components/VariableValueControl';\nexport { SceneVariableSet } from './variables/sets/SceneVariableSet';\nexport { ConstantVariable } from './variables/variants/ConstantVariable';\nexport { CustomVariable } from './variables/variants/CustomVariable';\nexport { DataSourceVariable } from './variables/variants/DataSourceVariable';\nexport { QueryVariable } from './variables/variants/query/QueryVariable';\nexport { TestVariable } from './variables/variants/TestVariable';\nexport { TextBoxVariable } from './variables/variants/TextBoxVariable';\nexport {\n MultiValueVariable,\n type MultiValueVariableState,\n type VariableGetOptionsArgs,\n} from './variables/variants/MultiValueVariable';\nexport { LocalValueVariable } from './variables/variants/LocalValueVariable';\nexport { IntervalVariable } from './variables/variants/IntervalVariable';\nexport { AdHocFiltersVariable, FilterOrigin } from './variables/adhoc/AdHocFiltersVariable';\nexport type { AdHocFilterWithLabels } from './variables/adhoc/AdHocFiltersVariable';\nexport { GroupByVariable } from './variables/groupby/GroupByVariable';\nexport { type MacroVariableConstructor } from './variables/macros/types';\n\nexport { type UrlSyncManagerLike, UrlSyncManager, NewSceneObjectAddedEvent } from './services/UrlSyncManager';\nexport { useUrlSync } from './services/useUrlSync';\nexport { UrlSyncContextProvider } from './services/UrlSyncContextProvider';\nexport { SceneObjectUrlSyncConfig } from './services/SceneObjectUrlSyncConfig';\n\nexport { EmbeddedScene, type EmbeddedSceneState } from './components/EmbeddedScene';\nexport { VizPanel, type VizPanelState } from './components/VizPanel/VizPanel';\nexport { VizPanelMenu } from './components/VizPanel/VizPanelMenu';\nexport { VizPanelExploreButton } from './components/VizPanel/VizPanelExploreButton';\nexport { NestedScene } from './components/NestedScene';\nexport { SceneCanvasText } from './components/SceneCanvasText';\nexport { SceneToolbarButton, SceneToolbarInput } from './components/SceneToolbarButton';\nexport { SceneTimePicker } from './components/SceneTimePicker';\nexport { SceneRefreshPicker, type SceneRefreshPickerState } from './components/SceneRefreshPicker';\nexport { SceneTimeRangeTransformerBase } from './core/SceneTimeRangeTransformerBase';\nexport { SceneTimeRangeCompare } from './components/SceneTimeRangeCompare';\nexport { SceneByFrameRepeater } from './components/SceneByFrameRepeater';\nexport { SceneByVariableRepeater } from './components/SceneByVariableRepeater';\nexport { SceneControlsSpacer } from './components/SceneControlsSpacer';\nexport {\n SceneFlexLayout,\n SceneFlexItem,\n type SceneFlexItemState,\n type SceneFlexItemLike,\n} from './components/layout/SceneFlexLayout';\nexport { SceneCSSGridLayout, SceneCSSGridItem } from './components/layout/CSSGrid/SceneCSSGridLayout';\nexport { SceneGridLayout } from './components/layout/grid/SceneGridLayout';\nexport { SceneGridLayoutDragStartEvent } from './components/layout/grid/types';\nexport { SceneGridItem } from './components/layout/grid/SceneGridItem';\nexport { SceneGridRow } from './components/layout/grid/SceneGridRow';\nexport { type SceneGridItemStateLike, type SceneGridItemLike } from './components/layout/grid/types';\nexport { SplitLayout } from './components/layout/split/SplitLayout';\nexport { LazyLoader } from './components/layout/LazyLoader';\nexport {\n type SceneAppPageLike,\n type SceneRouteMatch,\n type SceneAppPageState,\n type SceneAppDrilldownView,\n type SceneAppRoute,\n} from './components/SceneApp/types';\nexport { SceneApp, useSceneApp } from './components/SceneApp/SceneApp';\nexport { SceneAppPage } from './components/SceneApp/SceneAppPage';\nexport { SceneReactObject } from './components/SceneReactObject';\nexport { SceneObjectRef } from './core/SceneObjectRef';\nexport {\n PanelBuilders,\n PanelOptionsBuilders,\n FieldConfigBuilders,\n FieldConfigOverridesBuilder,\n} from './core/PanelBuilders';\nexport { FieldConfigBuilder } from './core/PanelBuilders/FieldConfigBuilder';\nexport { VizPanelBuilder } from './core/PanelBuilders/VizPanelBuilder';\nexport { SceneDebugger } from './components/SceneDebugger/SceneDebugger';\nexport { VariableValueSelectWrapper } from './variables/components/VariableValueSelectors';\nexport { ControlsLabel } from './utils/ControlsLabel';\nexport { renderSelectForVariable } from './variables/components/VariableValueSelect';\nexport { VizConfigBuilder } from './core/PanelBuilders/VizConfigBuilder';\nexport { VizConfigBuilders } from './core/PanelBuilders/VizConfigBuilders';\nexport { type VizConfig } from './core/PanelBuilders/types';\nexport { SceneScopesBridge } from './core/SceneScopesBridge';\n\nexport const sceneUtils = {\n getUrlWithAppState,\n registerRuntimePanelPlugin,\n registerRuntimeDataSource,\n registerVariableMacro,\n cloneSceneObjectState,\n syncStateFromSearchParams,\n getUrlState,\n renderPrometheusLabelFilters,\n escapeLabelValueInRegexSelector,\n escapeLabelValueInExactSelector,\n escapeURLDelimiters,\n\n // Variable guards\n isAdHocVariable,\n isConstantVariable,\n isCustomVariable,\n isDataSourceVariable,\n isIntervalVariable,\n isQueryVariable,\n isTextBoxVariable,\n isGroupByVariable,\n};\n\nexport { SafeSerializableSceneObject } from './utils/SafeSerializableSceneObject';\nexport { getExploreURL } from './utils/explore';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4IO,MAAM,UAAa,GAAA;AAAA,EACxB,kBAAA;AAAA,EACA,0BAAA;AAAA,EACA,yBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,yBAAA;AAAA,EACA,WAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,+BAAA;AAAA,EACA,mBAAA;AAAA;AAAA,EAGA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { getUrlWithAppState } from './components/SceneApp/utils';\nimport { registerRuntimePanelPlugin } from './components/VizPanel/registerRuntimePanelPlugin';\nimport { cloneSceneObjectState } from './core/sceneGraph/utils';\nimport { registerRuntimeDataSource } from './querying/RuntimeDataSource';\nimport { getUrlState, syncStateFromSearchParams } from './services/utils';\n\nimport { registerVariableMacro } from './variables/macros';\nimport {\n escapeLabelValueInExactSelector,\n escapeLabelValueInRegexSelector,\n escapeURLDelimiters,\n renderPrometheusLabelFilters,\n} from './variables/utils';\nimport {\n isAdHocVariable,\n isQueryVariable,\n isTextBoxVariable,\n isCustomVariable,\n isDataSourceVariable,\n isConstantVariable,\n isIntervalVariable,\n isGroupByVariable,\n} from './variables/variants/guards';\n\nexport * from './core/types';\nexport * from './core/events';\nexport { sceneGraph } from './core/sceneGraph';\nexport * as behaviors from './behaviors';\nexport * as dataLayers from './querying/layers';\n\nexport { SceneObjectBase, useSceneObjectState } from './core/SceneObjectBase';\nexport { SceneDataNode } from './core/SceneDataNode';\nexport { SceneTimeRange } from './core/SceneTimeRange';\nexport { SceneTimeZoneOverride } from './core/SceneTimeZoneOverride';\n\nexport { SceneQueryRunner, type QueryRunnerState } from './querying/SceneQueryRunner';\nexport { DataProviderProxy } from './querying/DataProviderProxy';\nexport {\n type ExtraQueryDescriptor,\n type ExtraQueryProvider,\n type ExtraQueryDataProcessor,\n} from './querying/ExtraQueryProvider';\nexport { SceneDataLayerSet, SceneDataLayerSetBase } from './querying/SceneDataLayerSet';\nexport { SceneDataLayerBase } from './querying/layers/SceneDataLayerBase';\nexport { SceneDataLayerControls } from './querying/layers/SceneDataLayerControls';\nexport { SceneDataTransformer, type SceneDataTransformerState } from './querying/SceneDataTransformer';\nexport { registerQueryWithController } from './querying/registerQueryWithController';\nexport { registerRuntimeDataSource, RuntimeDataSource } from './querying/RuntimeDataSource';\nexport type {\n SceneQueryControllerLike,\n SceneQueryControllerEntryType,\n SceneQueryControllerEntry,\n SceneInteractionProfileEvent,\n} from './behaviors/types';\n\nexport * from './variables/types';\nexport { VariableDependencyConfig } from './variables/VariableDependencyConfig';\nexport { formatRegistry, type FormatVariable } from './variables/interpolation/formatRegistry';\nexport { VariableValueSelectors } from './variables/components/VariableValueSelectors';\nexport { VariableValueControl } from './variables/components/VariableValueControl';\nexport { SceneVariableSet } from './variables/sets/SceneVariableSet';\nexport { ConstantVariable } from './variables/variants/ConstantVariable';\nexport { CustomVariable } from './variables/variants/CustomVariable';\nexport { DataSourceVariable } from './variables/variants/DataSourceVariable';\nexport { QueryVariable } from './variables/variants/query/QueryVariable';\nexport { TestVariable } from './variables/variants/TestVariable';\nexport { TextBoxVariable } from './variables/variants/TextBoxVariable';\nexport {\n MultiValueVariable,\n type MultiValueVariableState,\n type VariableGetOptionsArgs,\n} from './variables/variants/MultiValueVariable';\nexport { LocalValueVariable } from './variables/variants/LocalValueVariable';\nexport { IntervalVariable } from './variables/variants/IntervalVariable';\nexport { AdHocFiltersVariable, FilterOrigin } from './variables/adhoc/AdHocFiltersVariable';\nexport type { AdHocFilterWithLabels } from './variables/adhoc/AdHocFiltersVariable';\nexport { GroupByVariable } from './variables/groupby/GroupByVariable';\nexport { type MacroVariableConstructor } from './variables/macros/types';\n\nexport { type UrlSyncManagerLike, UrlSyncManager, NewSceneObjectAddedEvent } from './services/UrlSyncManager';\nexport { useUrlSync } from './services/useUrlSync';\nexport { UrlSyncContextProvider } from './services/UrlSyncContextProvider';\nexport { SceneObjectUrlSyncConfig } from './services/SceneObjectUrlSyncConfig';\n\nexport { EmbeddedScene, type EmbeddedSceneState } from './components/EmbeddedScene';\nexport { VizPanel, type VizPanelState } from './components/VizPanel/VizPanel';\nexport { VizPanelMenu } from './components/VizPanel/VizPanelMenu';\nexport { VizPanelExploreButton } from './components/VizPanel/VizPanelExploreButton';\nexport { NestedScene } from './components/NestedScene';\nexport { SceneCanvasText } from './components/SceneCanvasText';\nexport { SceneToolbarButton, SceneToolbarInput } from './components/SceneToolbarButton';\nexport { SceneTimePicker } from './components/SceneTimePicker';\nexport { SceneRefreshPicker, type SceneRefreshPickerState } from './components/SceneRefreshPicker';\nexport { SceneTimeRangeTransformerBase } from './core/SceneTimeRangeTransformerBase';\nexport { SceneTimeRangeCompare } from './components/SceneTimeRangeCompare';\nexport { SceneByFrameRepeater } from './components/SceneByFrameRepeater';\nexport { SceneByVariableRepeater } from './components/SceneByVariableRepeater';\nexport { SceneControlsSpacer } from './components/SceneControlsSpacer';\nexport {\n SceneFlexLayout,\n SceneFlexItem,\n type SceneFlexItemState,\n type SceneFlexItemLike,\n} from './components/layout/SceneFlexLayout';\nexport { SceneCSSGridLayout, SceneCSSGridItem } from './components/layout/CSSGrid/SceneCSSGridLayout';\nexport { SceneGridLayout } from './components/layout/grid/SceneGridLayout';\nexport { SceneGridLayoutDragStartEvent } from './components/layout/grid/types';\nexport { SceneGridItem } from './components/layout/grid/SceneGridItem';\nexport { SceneGridRow } from './components/layout/grid/SceneGridRow';\nexport { type SceneGridItemStateLike, type SceneGridItemLike } from './components/layout/grid/types';\nexport { SplitLayout } from './components/layout/split/SplitLayout';\nexport { LazyLoader } from './components/layout/LazyLoader';\nexport {\n type SceneAppPageLike,\n type SceneRouteMatch,\n type SceneAppPageState,\n type SceneAppDrilldownView,\n type SceneAppRoute,\n} from './components/SceneApp/types';\nexport { SceneApp, useSceneApp } from './components/SceneApp/SceneApp';\nexport { SceneAppPage } from './components/SceneApp/SceneAppPage';\nexport { SceneReactObject } from './components/SceneReactObject';\nexport { SceneObjectRef } from './core/SceneObjectRef';\nexport {\n PanelBuilders,\n PanelOptionsBuilders,\n FieldConfigBuilders,\n FieldConfigOverridesBuilder,\n} from './core/PanelBuilders';\nexport { FieldConfigBuilder } from './core/PanelBuilders/FieldConfigBuilder';\nexport { VizPanelBuilder } from './core/PanelBuilders/VizPanelBuilder';\nexport { SceneDebugger } from './components/SceneDebugger/SceneDebugger';\nexport { VariableValueSelectWrapper } from './variables/components/VariableValueSelectors';\nexport { ControlsLabel } from './utils/ControlsLabel';\nexport { MultiOrSingleValueSelect as renderSelectForVariable } from './variables/components/VariableValueSelect';\nexport { VizConfigBuilder } from './core/PanelBuilders/VizConfigBuilder';\nexport { VizConfigBuilders } from './core/PanelBuilders/VizConfigBuilders';\nexport { type VizConfig } from './core/PanelBuilders/types';\nexport { SceneScopesBridge } from './core/SceneScopesBridge';\n\nexport const sceneUtils = {\n getUrlWithAppState,\n registerRuntimePanelPlugin,\n registerRuntimeDataSource,\n registerVariableMacro,\n cloneSceneObjectState,\n syncStateFromSearchParams,\n getUrlState,\n renderPrometheusLabelFilters,\n escapeLabelValueInRegexSelector,\n escapeLabelValueInExactSelector,\n escapeURLDelimiters,\n\n // Variable guards\n isAdHocVariable,\n isConstantVariable,\n isCustomVariable,\n isDataSourceVariable,\n isIntervalVariable,\n isQueryVariable,\n isTextBoxVariable,\n isGroupByVariable,\n};\n\nexport { SafeSerializableSceneObject } from './utils/SafeSerializableSceneObject';\nexport { getExploreURL } from './utils/explore';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4IO,MAAM,UAAa,GAAA;AAAA,EACxB,kBAAA;AAAA,EACA,0BAAA;AAAA,EACA,yBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,yBAAA;AAAA,EACA,WAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,+BAAA;AAAA,EACA,mBAAA;AAAA;AAAA,EAGA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { SceneObjectBase } from '@grafana/scenes';
|
|
2
|
+
|
|
3
|
+
class DataProviderSharer extends SceneObjectBase {
|
|
4
|
+
constructor(state) {
|
|
5
|
+
super({
|
|
6
|
+
source: state.source,
|
|
7
|
+
data: state.source.resolve().state.data,
|
|
8
|
+
});
|
|
9
|
+
this.addActivationHandler(() => {
|
|
10
|
+
this._subs.add(
|
|
11
|
+
this.state.source.resolve().subscribeToState((newState, oldState) => {
|
|
12
|
+
if (newState.data !== oldState.data) {
|
|
13
|
+
this.setState({ data: newState.data });
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
setContainerWidth(width) {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
(_b = (_a = this.state.source.resolve()).setContainerWidth) == null ? void 0 : _b.call(_a, width);
|
|
22
|
+
}
|
|
23
|
+
isDataReadyToDisplay() {
|
|
24
|
+
var _a, _b, _c;
|
|
25
|
+
return (_c = (_b = (_a = this.state.source.resolve()).isDataReadyToDisplay) == null ? void 0 : _b.call(_a)) != null
|
|
26
|
+
? _c
|
|
27
|
+
: true;
|
|
28
|
+
}
|
|
29
|
+
cancelQuery() {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
(_b = (_a = this.state.source.resolve()).cancelQuery) == null ? void 0 : _b.call(_a);
|
|
32
|
+
}
|
|
33
|
+
getResultsStream() {
|
|
34
|
+
return this.state.source.resolve().getResultsStream();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { DataProviderSharer };
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVByb3ZpZGVyU2hhcmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcnlpbmcvRGF0YVByb3ZpZGVyU2hhcmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNjZW5lT2JqZWN0QmFzZSxcbiAgU2NlbmVPYmplY3RSZWYsXG4gIFNjZW5lRGF0YVByb3ZpZGVyLFxuICBTY2VuZURhdGFQcm92aWRlclJlc3VsdCxcbiAgU2NlbmVEYXRhU3RhdGUsXG59IGZyb20gJ0BncmFmYW5hL3NjZW5lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByb3ZpZGVyU2hhcmVyU3RhdGUgZXh0ZW5kcyBTY2VuZURhdGFTdGF0ZSB7XG4gIHNvdXJjZTogU2NlbmVPYmplY3RSZWY8U2NlbmVEYXRhUHJvdmlkZXI+O1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YVByb3ZpZGVyU2hhcmVyIGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPERhdGFQcm92aWRlclNoYXJlclN0YXRlPiBpbXBsZW1lbnRzIFNjZW5lRGF0YVByb3ZpZGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHN0YXRlOiBEYXRhUHJvdmlkZXJTaGFyZXJTdGF0ZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIHNvdXJjZTogc3RhdGUuc291cmNlLFxuICAgICAgZGF0YTogc3RhdGUuc291cmNlLnJlc29sdmUoKS5zdGF0ZS5kYXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgICAgdGhpcy5zdGF0ZS5zb3VyY2UucmVzb2x2ZSgpLnN1YnNjcmliZVRvU3RhdGUoKG5ld1N0YXRlLCBvbGRTdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmIChuZXdTdGF0ZS5kYXRhICE9PSBvbGRTdGF0ZS5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGF0YTogbmV3U3RhdGUuZGF0YSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldENvbnRhaW5lcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuc2V0Q29udGFpbmVyV2lkdGg/Lih3aWR0aCk7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRhUmVhZHlUb0Rpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc291cmNlLnJlc29sdmUoKS5pc0RhdGFSZWFkeVRvRGlzcGxheT8uKCkgPz8gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxRdWVyeSgpIHtcbiAgICB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuY2FuY2VsUXVlcnk/LigpO1xuICB9XG5cbiAgcHVibGljIGdldFJlc3VsdHNTdHJlYW0oKTogT2JzZXJ2YWJsZTxTY2VuZURhdGFQcm92aWRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNvdXJjZS5yZXNvbHZlKCkuZ2V0UmVzdWx0c1N0cmVhbSgpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhTyxNQUFNLDJCQUEyQixlQUFzRSxDQUFBO0FBQUEsRUFDckcsWUFBWSxLQUFnQyxFQUFBO0FBQ2pELElBQU0sS0FBQSxDQUFBO0FBQUEsTUFDSixRQUFRLEtBQU0sQ0FBQSxNQUFBO0FBQUEsTUFDZCxJQUFNLEVBQUEsS0FBQSxDQUFNLE1BQU8sQ0FBQSxPQUFBLEdBQVUsS0FBTSxDQUFBLElBQUE7QUFBQSxLQUNwQyxDQUFBLENBQUE7QUFFRCxJQUFBLElBQUEsQ0FBSyxxQkFBcUIsTUFBTTtBQUM5QixNQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsR0FBQTtBQUFBLFFBQ1QsSUFBQSxDQUFLLE1BQU0sTUFBTyxDQUFBLE9BQUEsR0FBVSxnQkFBaUIsQ0FBQSxDQUFDLFVBQVUsUUFBYSxLQUFBO0FBQ25FLFVBQUksSUFBQSxRQUFBLENBQVMsSUFBUyxLQUFBLFFBQUEsQ0FBUyxJQUFNLEVBQUE7QUFDbkMsWUFBQSxJQUFBLENBQUssUUFBUyxDQUFBLEVBQUUsSUFBTSxFQUFBLFFBQUEsQ0FBUyxNQUFNLENBQUEsQ0FBQTtBQUFBLFdBQ3ZDO0FBQUEsU0FDRCxDQUFBO0FBQUEsT0FDSCxDQUFBO0FBQUEsS0FDRCxDQUFBLENBQUE7QUFBQSxHQUNIO0FBQUEsRUFFTyxrQkFBa0IsS0FBZSxFQUFBO0FBL0IxQyxJQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsQ0FBQTtBQWdDSSxJQUFBLENBQUEsRUFBQSxHQUFBLENBQUEsRUFBQSxHQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsTUFBQSxDQUFPLE9BQVEsRUFBQSxFQUFFLHNCQUE1QixJQUFnRCxHQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxJQUFBLENBQUEsRUFBQSxFQUFBLEtBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDbEQ7QUFBQSxFQUVPLG9CQUF1QixHQUFBO0FBbkNoQyxJQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUFvQ0ksSUFBQSxPQUFBLENBQU8sc0JBQUssS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLEVBQUEsRUFBRSx5QkFBNUIsSUFBd0QsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxLQUFBLElBQUEsR0FBQSxFQUFBLEdBQUEsSUFBQSxDQUFBO0FBQUEsR0FDakU7QUFBQSxFQUVPLFdBQWMsR0FBQTtBQXZDdkIsSUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUF3Q0ksSUFBQSxDQUFBLEVBQUEsR0FBQSxDQUFBLEVBQUEsR0FBQSxJQUFBLENBQUssS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLEVBQUEsRUFBRSxXQUE1QixLQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDRjtBQUFBLEVBRU8sZ0JBQXdELEdBQUE7QUFDN0QsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQU0sTUFBTyxDQUFBLE9BQUEsR0FBVSxnQkFBaUIsRUFBQSxDQUFBO0FBQUEsR0FDdEQ7QUFDRjs7OzsifQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SceneObjectBase } from '../core/SceneObjectBase.js';
|
|
2
|
+
import { VariableDependencyConfig } from '../variables/VariableDependencyConfig.js';
|
|
3
|
+
|
|
4
|
+
class ActWhenVariableChanged extends SceneObjectBase {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this._runningEffect = null;
|
|
8
|
+
this._variableDependency = new VariableDependencyConfig(this, {
|
|
9
|
+
variableNames: [this.state.variableName],
|
|
10
|
+
onReferencedVariableValueChanged: this._onVariableChanged.bind(this)
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
_onVariableChanged(variable) {
|
|
14
|
+
const effect = this.state.onChange;
|
|
15
|
+
if (this._runningEffect) {
|
|
16
|
+
this._runningEffect();
|
|
17
|
+
this._runningEffect = null;
|
|
18
|
+
}
|
|
19
|
+
const cancellation = effect(variable, this);
|
|
20
|
+
if (cancellation) {
|
|
21
|
+
this._runningEffect = cancellation;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { ActWhenVariableChanged };
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWN0V2hlblZhcmlhYmxlQ2hhbmdlZC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JlaGF2aW9ycy9BY3RXaGVuVmFyaWFibGVDaGFuZ2VkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjZW5lT2JqZWN0QmFzZSB9IGZyb20gJy4uL2NvcmUvU2NlbmVPYmplY3RCYXNlJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0U3RhdGUgfSBmcm9tICcuLi9jb3JlL3R5cGVzJztcbmltcG9ydCB7IFNjZW5lVmFyaWFibGUgfSBmcm9tICcuLi92YXJpYWJsZXMvdHlwZXMnO1xuaW1wb3J0IHsgVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnIH0gZnJvbSAnLi4vdmFyaWFibGVzL1ZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyc7XG5cbmludGVyZmFjZSBBY3RXaGVuVmFyaWFibGVDaGFuZ2VkU3RhdGUgZXh0ZW5kcyBTY2VuZU9iamVjdFN0YXRlIHtcbiAgLy8gVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIHRvIHN1YnNjcmliZSB0byBjaGFuZ2VzIHRvLlxuICB2YXJpYWJsZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBoYW5kbGVyIHRvIHJ1biB3aGVuIGEgdmFyaWFibGUgY2hhbmdlcy5cbiAgICogQHBhcmFtIHZhcmlhYmxlIFRoZSB2YXJpYWJsZSB0aGF0IGNoYW5nZWRcbiAgICogQHBhcmFtIGJlaGF2aW9yIFRoZSBiZWhhdmlvciBpbnN0YW5jZSB3aGVyZSB0aGlzIG9uQ2hhbmdlIGhhbmRsZXIgYWRkZWQgdG8uXG4gICAqICBZb3UgY2FuIHVzZSB0aGlzIHRvIGFjY2VzcyB0aGUgcGFyZW50IFNjZW5lT2JqZWN0IHdoZXJlIHRoaXMgYmVoYXZpb3IgZXhpc3RzLlxuICAgKiAgWW91IGNhbiBhbHNvIHVzZSB0aGlzIHdpdGggdGhlIHNjZW5lR3JhcGggdXRpbCBmdW5jdGlvbnMgdG8gZmluZCBvYmplY3RzIGZyb20gdGhpcyBzY2VuZSBncmFwaCBsb2NhdGlvbi5cbiAgICogQHJldHVybnMgUmV0dXJuIGEgY2FuY2VsbGF0aW9uIGZ1bmN0aW9uIGlmIHlvdSBkbyBhbnl0aGluZyBhc3luYyBsaWtlIGlzc3VlIGEgcXVlcnkuXG4gICAqL1xuICBvbkNoYW5nZTogKHZhcmlhYmxlOiBTY2VuZVZhcmlhYmxlLCBiZWhhdmlvcjogQWN0V2hlblZhcmlhYmxlQ2hhbmdlZCkgPT4gKCgpID0+IHZvaWQpIHwgdm9pZDtcbn1cblxuLyoqXG4gKiBUaGlzIGJlaGF2aW9yIHdpbGwgcnVuIGFuIGVmZmVjdCBmdW5jdGlvbiB3aGVuIHNwZWNpZmllZCB2YXJpYWJsZXMgY2hhbmdlXG4gKi9cblxuZXhwb3J0IGNsYXNzIEFjdFdoZW5WYXJpYWJsZUNoYW5nZWQgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2U8QWN0V2hlblZhcmlhYmxlQ2hhbmdlZFN0YXRlPiB7XG4gIHByaXZhdGUgX3J1bm5pbmdFZmZlY3Q6IG51bGwgfCAoKCkgPT4gdm9pZCkgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBfdmFyaWFibGVEZXBlbmRlbmN5ID0gbmV3IFZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyh0aGlzLCB7XG4gICAgdmFyaWFibGVOYW1lczogW3RoaXMuc3RhdGUudmFyaWFibGVOYW1lXSxcbiAgICBvblJlZmVyZW5jZWRWYXJpYWJsZVZhbHVlQ2hhbmdlZDogdGhpcy5fb25WYXJpYWJsZUNoYW5nZWQuYmluZCh0aGlzKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfb25WYXJpYWJsZUNoYW5nZWQodmFyaWFibGU6IFNjZW5lVmFyaWFibGUpOiB2b2lkIHtcbiAgICBjb25zdCBlZmZlY3QgPSB0aGlzLnN0YXRlLm9uQ2hhbmdlO1xuXG4gICAgaWYgKHRoaXMuX3J1bm5pbmdFZmZlY3QpIHtcbiAgICAgIHRoaXMuX3J1bm5pbmdFZmZlY3QoKTtcbiAgICAgIHRoaXMuX3J1bm5pbmdFZmZlY3QgPSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmNlbGxhdGlvbiA9IGVmZmVjdCh2YXJpYWJsZSwgdGhpcyk7XG4gICAgaWYgKGNhbmNlbGxhdGlvbikge1xuICAgICAgdGhpcy5fcnVubmluZ0VmZmVjdCA9IGNhbmNlbGxhdGlvbjtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1Qk8sTUFBTSwrQkFBK0IsZUFBNkMsQ0FBQTtBQUFBLEVBQWxGLFdBQUEsR0FBQTtBQUFBLElBQUEsS0FBQSxDQUFBLEdBQUEsU0FBQSxDQUFBLENBQUE7QUFDTCxJQUFBLElBQUEsQ0FBUSxjQUFzQyxHQUFBLElBQUEsQ0FBQTtBQUU5QyxJQUFVLElBQUEsQ0FBQSxtQkFBQSxHQUFzQixJQUFJLHdCQUFBLENBQXlCLElBQU0sRUFBQTtBQUFBLE1BQ2pFLGFBQWUsRUFBQSxDQUFDLElBQUssQ0FBQSxLQUFBLENBQU0sWUFBWSxDQUFBO0FBQUEsTUFDdkMsZ0NBQWtDLEVBQUEsSUFBQSxDQUFLLGtCQUFtQixDQUFBLElBQUEsQ0FBSyxJQUFJLENBQUE7QUFBQSxLQUNwRSxDQUFBLENBQUE7QUFBQSxHQUFBO0FBQUEsRUFFTyxtQkFBbUIsUUFBK0IsRUFBQTtBQUN4RCxJQUFNLE1BQUEsTUFBQSxHQUFTLEtBQUssS0FBTSxDQUFBLFFBQUEsQ0FBQTtBQUUxQixJQUFBLElBQUksS0FBSyxjQUFnQixFQUFBO0FBQ3ZCLE1BQUEsSUFBQSxDQUFLLGNBQWUsRUFBQSxDQUFBO0FBQ3BCLE1BQUEsSUFBQSxDQUFLLGNBQWlCLEdBQUEsSUFBQSxDQUFBO0FBQUEsS0FDeEI7QUFFQSxJQUFNLE1BQUEsWUFBQSxHQUFlLE1BQU8sQ0FBQSxRQUFBLEVBQVUsSUFBSSxDQUFBLENBQUE7QUFDMUMsSUFBQSxJQUFJLFlBQWMsRUFBQTtBQUNoQixNQUFBLElBQUEsQ0FBSyxjQUFpQixHQUFBLFlBQUEsQ0FBQTtBQUFBLEtBQ3hCO0FBQUEsR0FDRjtBQUNGOzs7OyJ9
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { DashboardCursorSync } from '@grafana/schema';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { sceneGraph } from '../core/sceneGraph/index.js';
|
|
4
|
+
import { SceneObjectBase } from '../core/SceneObjectBase.js';
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defProps = Object.defineProperties;
|
|
8
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
9
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
class CursorSync extends SceneObjectBase {
|
|
26
|
+
constructor(state) {
|
|
27
|
+
super(__spreadProps(__spreadValues({}, state), {
|
|
28
|
+
sync: state.sync || DashboardCursorSync.Off
|
|
29
|
+
}));
|
|
30
|
+
this.getEventsBus = (panel) => {
|
|
31
|
+
if (!this.parent) {
|
|
32
|
+
throw new Error("EnableCursorSync cannot be used as a standalone scene object");
|
|
33
|
+
}
|
|
34
|
+
return new PanelContextEventBus(this.parent, panel);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
getEventsScope() {
|
|
38
|
+
if (!this.parent) {
|
|
39
|
+
throw new Error("EnableCursorSync cannot be used as a standalone scene object");
|
|
40
|
+
}
|
|
41
|
+
return this.state.key;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class PanelContextEventBus {
|
|
45
|
+
constructor(_source, _eventsOrigin) {
|
|
46
|
+
this._source = _source;
|
|
47
|
+
this._eventsOrigin = _eventsOrigin;
|
|
48
|
+
}
|
|
49
|
+
publish(event) {
|
|
50
|
+
event.origin = this;
|
|
51
|
+
this._eventsOrigin.publishEvent(event, true);
|
|
52
|
+
}
|
|
53
|
+
getStream(eventType) {
|
|
54
|
+
return new Observable((observer) => {
|
|
55
|
+
const handler = (event) => {
|
|
56
|
+
observer.next(event);
|
|
57
|
+
};
|
|
58
|
+
const sub = this._source.subscribeToEvent(eventType, handler);
|
|
59
|
+
return () => sub.unsubscribe();
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
subscribe(eventType, handler) {
|
|
63
|
+
return this.getStream(eventType).pipe().subscribe(handler);
|
|
64
|
+
}
|
|
65
|
+
removeAllListeners() {
|
|
66
|
+
}
|
|
67
|
+
newScopedBus(key, filter) {
|
|
68
|
+
throw new Error("For internal use only");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function getCursorSyncScope(sceneObject) {
|
|
72
|
+
return sceneGraph.findObject(sceneObject, (o) => o instanceof CursorSync);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { CursorSync, getCursorSyncScope };
|
|
76
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Vyc29yU3luYy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JlaGF2aW9ycy9DdXJzb3JTeW5jLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1c0V2ZW50LCBCdXNFdmVudEhhbmRsZXIsIEJ1c0V2ZW50VHlwZSwgRXZlbnRCdXMsIEV2ZW50RmlsdGVyT3B0aW9ucyB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ3Vyc29yU3luYyB9IGZyb20gJ0BncmFmYW5hL3NjaGVtYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2NlbmVHcmFwaCB9IGZyb20gJy4uL2NvcmUvc2NlbmVHcmFwaCc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdCwgU2NlbmVPYmplY3RTdGF0ZSB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5pbnRlcmZhY2UgQ3Vyc29yU3luY1N0YXRlIGV4dGVuZHMgU2NlbmVPYmplY3RTdGF0ZSB7XG4gIHN5bmM6IERhc2hib2FyZEN1cnNvclN5bmM7XG59XG5cbi8qKlxuICogVGhpcyBiZWhhdmlvciB3aWxsIHByb3ZpZGUgYSBjdXJzb3Igc3luYyBjb250ZXh0IHdpdGhpbiBhIHNjZW5lLlxuICovXG5cbmV4cG9ydCBjbGFzcyBDdXJzb3JTeW5jIGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlPEN1cnNvclN5bmNTdGF0ZT4ge1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc3RhdGU6IFBhcnRpYWw8Q3Vyc29yU3luY1N0YXRlPikge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgc3luYzogc3RhdGUuc3luYyB8fCBEYXNoYm9hcmRDdXJzb3JTeW5jLk9mZixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFdmVudHNCdXMgPSAocGFuZWw6IFNjZW5lT2JqZWN0KSA9PiB7XG4gICAgaWYgKCF0aGlzLnBhcmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbmFibGVDdXJzb3JTeW5jIGNhbm5vdCBiZSB1c2VkIGFzIGEgc3RhbmRhbG9uZSBzY2VuZSBvYmplY3QnKTtcbiAgICB9XG4gICAgLy8gU2luY2UgRW5hYmxlQ3Vyc29yU3luYyBpcyBhIGJlaGF2aW9yLCBpdCBpcyBub3QgYSBwYXJlbnQgdG8gYW55IG9iamVjdCBpbiB0aGUgc2NlbmUgZ3JhcGguXG4gICAgLy8gV2UgbmVlZCB0byBnZXQgaXQncyBwYXJlbnQgaW4gb3JkZXIgdG8gcHJvdmlkZSBjb3JyZWN0IEV2ZW50QnVzIGNvbnRleHQgdG8gdGhlIGNoaWxkcmVuLlxuICAgIHJldHVybiBuZXcgUGFuZWxDb250ZXh0RXZlbnRCdXModGhpcy5wYXJlbnQsIHBhbmVsKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0RXZlbnRzU2NvcGUoKSB7XG4gICAgaWYgKCF0aGlzLnBhcmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbmFibGVDdXJzb3JTeW5jIGNhbm5vdCBiZSB1c2VkIGFzIGEgc3RhbmRhbG9uZSBzY2VuZSBvYmplY3QnKTtcbiAgICB9XG5cbiAgICAvLyBTaW5jZSBFbmFibGVDdXJzb3JTeW5jIGlzIGEgYmVoYXZpb3IsIGl0IGlzIG5vdCBhIHBhcmVudCB0byBhbnkgb2JqZWN0IGluIHRoZSBzY2VuZSBncmFwaC5cbiAgICAvLyBXZSBuZWVkIHRvIGdldCBpdCdzIHBhcmVudCBpbiBvcmRlciB0byBwcm92aWRlIGNvcnJlY3QgRXZlbnRCdXMgY29udGV4dCB0byB0aGUgY2hpbGRyZW4uXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUua2V5ITtcbiAgfVxufVxuXG4vLyBUaGlzIHNlcnZlcyBhcyBhIHNoYXJlZCBFdmVudHNCdXMgdGhhdCBpcyBzaGFyZWQgYnkgY2hpbGRyZW4gb3IgQ3Vyc29yU3luYyBiZWhhdmlvci5cbmNsYXNzIFBhbmVsQ29udGV4dEV2ZW50QnVzIGltcGxlbWVudHMgRXZlbnRCdXMge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfc291cmNlOiBTY2VuZU9iamVjdCwgcHJpdmF0ZSBfZXZlbnRzT3JpZ2luOiBTY2VuZU9iamVjdCkge31cblxuICBwdWJsaWMgcHVibGlzaDxUIGV4dGVuZHMgQnVzRXZlbnQ+KGV2ZW50OiBUKTogdm9pZCB7XG4gICAgKGV2ZW50IGFzIGFueSkub3JpZ2luID0gdGhpcztcbiAgICB0aGlzLl9ldmVudHNPcmlnaW4ucHVibGlzaEV2ZW50KGV2ZW50LCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJlYW08VCBleHRlbmRzIEJ1c0V2ZW50PihldmVudFR5cGU6IEJ1c0V2ZW50VHlwZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IFQpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChldmVudCk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzdWIgPSB0aGlzLl9zb3VyY2Uuc3Vic2NyaWJlVG9FdmVudChldmVudFR5cGUsIGhhbmRsZXIpO1xuXG4gICAgICByZXR1cm4gKCkgPT4gc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlPFQgZXh0ZW5kcyBCdXNFdmVudD4oZXZlbnRUeXBlOiBCdXNFdmVudFR5cGU8VD4sIGhhbmRsZXI6IEJ1c0V2ZW50SGFuZGxlcjxUPik6IFVuc3Vic2NyaWJhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJlYW0oZXZlbnRUeXBlKS5waXBlKCkuc3Vic2NyaWJlKGhhbmRsZXIpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUFsbExpc3RlbmVycygpOiB2b2lkIHt9XG5cbiAgcHVibGljIG5ld1Njb3BlZEJ1cyhrZXk6IHN0cmluZywgZmlsdGVyOiBFdmVudEZpbHRlck9wdGlvbnMpOiBFdmVudEJ1cyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGb3IgaW50ZXJuYWwgdXNlIG9ubHknKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3Vyc29yU3luY1Njb3BlKHNjZW5lT2JqZWN0OiBTY2VuZU9iamVjdCk6IEN1cnNvclN5bmMgfCBudWxsIHtcbiAgcmV0dXJuIHNjZW5lR3JhcGguZmluZE9iamVjdChzY2VuZU9iamVjdCwgKG8pID0+IG8gaW5zdGFuY2VvZiBDdXJzb3JTeW5jKSBhcyBDdXJzb3JTeW5jO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVPLE1BQU0sbUJBQW1CLGVBQWlDLENBQUE7QUFBQSxFQUN4RCxZQUFZLEtBQWlDLEVBQUE7QUFDbEQsSUFBQSxLQUFBLENBQU0saUNBQ0QsS0FEQyxDQUFBLEVBQUE7QUFBQSxNQUVKLElBQUEsRUFBTSxLQUFNLENBQUEsSUFBQSxJQUFRLG1CQUFvQixDQUFBLEdBQUE7QUFBQSxLQUN6QyxDQUFBLENBQUEsQ0FBQTtBQUdILElBQU8sSUFBQSxDQUFBLFlBQUEsR0FBZSxDQUFDLEtBQXVCLEtBQUE7QUFDNUMsTUFBSSxJQUFBLENBQUMsS0FBSyxNQUFRLEVBQUE7QUFDaEIsUUFBTSxNQUFBLElBQUksTUFBTSw4REFBOEQsQ0FBQSxDQUFBO0FBQUEsT0FDaEY7QUFHQSxNQUFBLE9BQU8sSUFBSSxvQkFBQSxDQUFxQixJQUFLLENBQUEsTUFBQSxFQUFRLEtBQUssQ0FBQSxDQUFBO0FBQUEsS0FDcEQsQ0FBQTtBQUFBLEdBVEE7QUFBQSxFQVdPLGNBQWlCLEdBQUE7QUFDdEIsSUFBSSxJQUFBLENBQUMsS0FBSyxNQUFRLEVBQUE7QUFDaEIsTUFBTSxNQUFBLElBQUksTUFBTSw4REFBOEQsQ0FBQSxDQUFBO0FBQUEsS0FDaEY7QUFJQSxJQUFBLE9BQU8sS0FBSyxLQUFNLENBQUEsR0FBQSxDQUFBO0FBQUEsR0FDcEI7QUFDRixDQUFBO0FBR0EsTUFBTSxvQkFBeUMsQ0FBQTtBQUFBLEVBQ3RDLFdBQUEsQ0FBb0IsU0FBOEIsYUFBNEIsRUFBQTtBQUExRCxJQUFBLElBQUEsQ0FBQSxPQUFBLEdBQUEsT0FBQSxDQUFBO0FBQThCLElBQUEsSUFBQSxDQUFBLGFBQUEsR0FBQSxhQUFBLENBQUE7QUFBQSxHQUE2QjtBQUFBLEVBRS9FLFFBQTRCLEtBQWdCLEVBQUE7QUFDakQsSUFBQyxNQUFjLE1BQVMsR0FBQSxJQUFBLENBQUE7QUFDeEIsSUFBSyxJQUFBLENBQUEsYUFBQSxDQUFjLFlBQWEsQ0FBQSxLQUFBLEVBQU8sSUFBSSxDQUFBLENBQUE7QUFBQSxHQUM3QztBQUFBLEVBRU8sVUFBOEIsU0FBMkMsRUFBQTtBQUM5RSxJQUFPLE9BQUEsSUFBSSxVQUFjLENBQUEsQ0FBQyxRQUFhLEtBQUE7QUFDckMsTUFBTSxNQUFBLE9BQUEsR0FBVSxDQUFDLEtBQWEsS0FBQTtBQUM1QixRQUFBLFFBQUEsQ0FBUyxLQUFLLEtBQUssQ0FBQSxDQUFBO0FBQUEsT0FDckIsQ0FBQTtBQUVBLE1BQUEsTUFBTSxHQUFNLEdBQUEsSUFBQSxDQUFLLE9BQVEsQ0FBQSxnQkFBQSxDQUFpQixXQUFXLE9BQU8sQ0FBQSxDQUFBO0FBRTVELE1BQU8sT0FBQSxNQUFNLElBQUksV0FBWSxFQUFBLENBQUE7QUFBQSxLQUM5QixDQUFBLENBQUE7QUFBQSxHQUNIO0FBQUEsRUFFTyxTQUFBLENBQThCLFdBQTRCLE9BQTZDLEVBQUE7QUFDNUcsSUFBQSxPQUFPLEtBQUssU0FBVSxDQUFBLFNBQVMsRUFBRSxJQUFLLEVBQUEsQ0FBRSxVQUFVLE9BQU8sQ0FBQSxDQUFBO0FBQUEsR0FDM0Q7QUFBQSxFQUVPLGtCQUEyQixHQUFBO0FBQUEsR0FBQztBQUFBLEVBRTVCLFlBQUEsQ0FBYSxLQUFhLE1BQXNDLEVBQUE7QUFDckUsSUFBTSxNQUFBLElBQUksTUFBTSx1QkFBdUIsQ0FBQSxDQUFBO0FBQUEsR0FDekM7QUFDRixDQUFBO0FBRU8sU0FBUyxtQkFBbUIsV0FBNkMsRUFBQTtBQUM5RSxFQUFBLE9BQU8sV0FBVyxVQUFXLENBQUEsV0FBQSxFQUFhLENBQUMsQ0FBQSxLQUFNLGFBQWEsVUFBVSxDQUFBLENBQUE7QUFDMUU7Ozs7In0=
|