@grafana/scenes 6.8.0 → 6.9.0--canary.1093.14409340532.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 +20 -0
- package/dist/esm/components/VizPanel/VizPanelRenderer.js +4 -3
- package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
- package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
- package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
- package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
- package/dist/esm/dist/esm/components/NestedScene.js +0 -95
- package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
- package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
- package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
- package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
- package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
- package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
- package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
- package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
- package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
- package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
- package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
- package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
- package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
- package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
- package/dist/esm/dist/esm/core/events.js +0 -11
- package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
- package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
- package/dist/esm/dist/esm/core/types.js +0 -15
- package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
- package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
- package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
- package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
- package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
- package/dist/esm/dist/esm/services/utils.js +0 -71
- package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
- package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
- package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/dist/esm/utils/date.js +0 -15
- package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/dist/esm/utils/explore.js +0 -47
- package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
- package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
- package/dist/esm/dist/esm/utils/metricTree.js +0 -53
- package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
- package/dist/esm/dist/esm/utils/utils.js +0 -11
- package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
- package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/dist/esm/variables/constants.js +0 -9
- package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
- package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
- package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
- package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
- package/dist/esm/dist/esm/variables/macros/index.js +0 -26
- package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
- package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
- package/dist/esm/dist/esm/variables/macros/types.js +0 -11
- package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
- package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/dist/esm/variables/types.js +0 -11
- package/dist/esm/dist/esm/variables/utils.js +0 -172
- package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
- package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
- package/dist/esm/querying/DataProviderSharer.js +0 -39
- package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
- package/dist/esm/src/behaviors/CursorSync.js +0 -76
- package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
- package/dist/esm/src/behaviors/index.js +0 -5
- package/dist/esm/src/components/EmbeddedScene.js +0 -59
- package/dist/esm/src/components/NestedScene.js +0 -95
- package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
- package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/src/components/SceneApp/utils.js +0 -42
- package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/src/components/SceneCanvasText.js +0 -32
- package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/src/components/SceneReactObject.js +0 -34
- package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/src/components/SceneTimePicker.js +0 -139
- package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/src/components/SceneToolbarButton.js +0 -33
- package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
- package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/src/components/layout/LazyLoader.js +0 -103
- package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/src/components/layout/grid/constants.js +0 -7
- package/dist/esm/src/components/layout/grid/utils.js +0 -36
- package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/src/components/layout/split/Splitter.js +0 -386
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
- package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
- package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
- package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
- package/dist/esm/src/core/PanelBuilders/index.js +0 -116
- package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/src/core/SceneDataNode.js +0 -43
- package/dist/esm/src/core/SceneObjectBase.js +0 -286
- package/dist/esm/src/core/SceneObjectRef.js +0 -32
- package/dist/esm/src/core/SceneTimeRange.js +0 -231
- package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
- package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
- package/dist/esm/src/core/events.js +0 -11
- package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/src/core/sceneGraph/index.js +0 -25
- package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/src/core/sceneGraph/utils.js +0 -64
- package/dist/esm/src/core/types.js +0 -15
- package/dist/esm/src/index.js +0 -108
- package/dist/esm/src/querying/DataLayersMerger.js +0 -46
- package/dist/esm/src/querying/DataProviderProxy.js +0 -37
- package/dist/esm/src/querying/DataProviderSharer.js +0 -108
- package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
- package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
- package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/src/querying/layers/index.js +0 -2
- package/dist/esm/src/querying/registerQueryWithController.js +0 -41
- package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
- package/dist/esm/src/services/UrlSyncManager.js +0 -167
- package/dist/esm/src/services/useUrlSync.js +0 -29
- package/dist/esm/src/services/utils.js +0 -75
- package/dist/esm/src/utils/ControlsLabel.js +0 -107
- package/dist/esm/src/utils/LoadingIndicator.js +0 -19
- package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/src/utils/date.js +0 -15
- package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/src/utils/explore.js +0 -47
- package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/src/utils/getDataSource.js +0 -18
- package/dist/esm/src/utils/getMessageFromError.js +0 -24
- package/dist/esm/src/utils/metricTree.js +0 -53
- package/dist/esm/src/utils/parseUrlParam.js +0 -41
- package/dist/esm/src/utils/utils.js +0 -11
- package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/src/utils/writeSceneLog.js +0 -12
- package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/src/variables/constants.js +0 -9
- package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/src/variables/interpolation/defaults.js +0 -21
- package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/src/variables/lookupVariable.js +0 -20
- package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/src/variables/macros/contextMacros.js +0 -43
- package/dist/esm/src/variables/macros/dataMacros.js +0 -134
- package/dist/esm/src/variables/macros/index.js +0 -35
- package/dist/esm/src/variables/macros/templateProxies.js +0 -51
- package/dist/esm/src/variables/macros/timeMacros.js +0 -86
- package/dist/esm/src/variables/macros/types.js +0 -11
- package/dist/esm/src/variables/macros/urlMacros.js +0 -56
- package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/src/variables/types.js +0 -11
- package/dist/esm/src/variables/utils.js +0 -172
- package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
- package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
- package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/src/variables/variants/TestVariable.js +0 -117
- package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/src/variables/variants/guards.js +0 -27
- package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/src/variables/variants/query/guards.js +0 -28
- package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/src/variables/variants/query/utils.js +0 -124
- package/dist/esm/variables/variants/JsonVariable.js +0 -96
- package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
- package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
|
@@ -1,468 +0,0 @@
|
|
|
1
|
-
import { isEqual, cloneDeep } from 'lodash';
|
|
2
|
-
import { ReplaySubject, forkJoin } from 'rxjs';
|
|
3
|
-
import { LoadingState } from '@grafana/schema';
|
|
4
|
-
import { preProcessPanelData, DataTopic, DataFrameView, rangeUtil } from '@grafana/data';
|
|
5
|
-
import { getRunRequest, toDataQueryError, isExpressionReference } from '@grafana/runtime';
|
|
6
|
-
import { SceneObjectBase } from '../core/SceneObjectBase.js';
|
|
7
|
-
import { sceneGraph } from '../core/sceneGraph/index.js';
|
|
8
|
-
import { getDataSource } from '../utils/getDataSource.js';
|
|
9
|
-
import { VariableDependencyConfig } from '../variables/VariableDependencyConfig.js';
|
|
10
|
-
import { writeSceneLog } from '../utils/writeSceneLog.js';
|
|
11
|
-
import { VariableValueRecorder } from '../variables/VariableValueRecorder.js';
|
|
12
|
-
import { emptyPanelData } from '../core/SceneDataNode.js';
|
|
13
|
-
import { getClosest } from '../core/sceneGraph/utils.js';
|
|
14
|
-
import { isExtraQueryProvider } from './ExtraQueryProvider.js';
|
|
15
|
-
import { extraQueryProcessingOperator, passthroughProcessor } from './extraQueryProcessingOperator.js';
|
|
16
|
-
import { filterAnnotations } from './layers/annotations/filterAnnotations.js';
|
|
17
|
-
import { getEnrichedDataRequest } from './getEnrichedDataRequest.js';
|
|
18
|
-
import { findActiveAdHocFilterVariableByUid } from '../variables/adhoc/patchGetAdhocFilters.js';
|
|
19
|
-
import { registerQueryWithController } from './registerQueryWithController.js';
|
|
20
|
-
import { findActiveGroupByVariablesByUid } from '../variables/groupby/findActiveGroupByVariablesByUid.js';
|
|
21
|
-
import { GroupByVariable } from '../variables/groupby/GroupByVariable.js';
|
|
22
|
-
import { AdHocFiltersVariable, isFilterComplete } from '../variables/adhoc/AdHocFiltersVariable.js';
|
|
23
|
-
import { DataLayersMerger } from './DataLayersMerger.js';
|
|
24
|
-
import { interpolate } from '../core/sceneGraph/sceneGraph.js';
|
|
25
|
-
import { wrapInSafeSerializableSceneObject } from '../utils/wrapInSafeSerializableSceneObject.js';
|
|
26
|
-
|
|
27
|
-
var __defProp = Object.defineProperty;
|
|
28
|
-
var __defProps = Object.defineProperties;
|
|
29
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
30
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
31
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
32
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
33
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
34
|
-
var __spreadValues = (a, b) => {
|
|
35
|
-
for (var prop in b || (b = {}))
|
|
36
|
-
if (__hasOwnProp.call(b, prop))
|
|
37
|
-
__defNormalProp(a, prop, b[prop]);
|
|
38
|
-
if (__getOwnPropSymbols)
|
|
39
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
40
|
-
if (__propIsEnum.call(b, prop))
|
|
41
|
-
__defNormalProp(a, prop, b[prop]);
|
|
42
|
-
}
|
|
43
|
-
return a;
|
|
44
|
-
};
|
|
45
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
46
|
-
let counter = 100;
|
|
47
|
-
function getNextRequestId() {
|
|
48
|
-
return "SQR" + counter++;
|
|
49
|
-
}
|
|
50
|
-
class SceneQueryRunner extends SceneObjectBase {
|
|
51
|
-
constructor(initialState) {
|
|
52
|
-
super(initialState);
|
|
53
|
-
this._dataLayersMerger = new DataLayersMerger();
|
|
54
|
-
this._variableValueRecorder = new VariableValueRecorder();
|
|
55
|
-
this._results = new ReplaySubject(1);
|
|
56
|
-
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
|
57
|
-
this._variableDependency = new VariableDependencyConfig(this, {
|
|
58
|
-
statePaths: ["queries", "datasource"],
|
|
59
|
-
onVariableUpdateCompleted: this.onVariableUpdatesCompleted.bind(this),
|
|
60
|
-
onAnyVariableChanged: this.onAnyVariableChanged.bind(this)
|
|
61
|
-
});
|
|
62
|
-
this.onDataReceived = (data) => {
|
|
63
|
-
const preProcessedData = preProcessPanelData(data, this.state.data);
|
|
64
|
-
this._resultAnnotations = data.annotations;
|
|
65
|
-
const dataWithLayersApplied = this._combineDataLayers(preProcessedData);
|
|
66
|
-
let hasFetchedData = this.state._hasFetchedData;
|
|
67
|
-
if (!hasFetchedData && preProcessedData.state !== LoadingState.Loading) {
|
|
68
|
-
hasFetchedData = true;
|
|
69
|
-
}
|
|
70
|
-
this.setState({ data: dataWithLayersApplied, _hasFetchedData: hasFetchedData });
|
|
71
|
-
this._results.next({ origin: this, data: dataWithLayersApplied });
|
|
72
|
-
};
|
|
73
|
-
this.addActivationHandler(() => this._onActivate());
|
|
74
|
-
}
|
|
75
|
-
getResultsStream() {
|
|
76
|
-
return this._results;
|
|
77
|
-
}
|
|
78
|
-
_onActivate() {
|
|
79
|
-
if (this.isQueryModeAuto()) {
|
|
80
|
-
const timeRange = sceneGraph.getTimeRange(this);
|
|
81
|
-
const providers = this.getClosestExtraQueryProviders();
|
|
82
|
-
for (const provider of providers) {
|
|
83
|
-
this._subs.add(
|
|
84
|
-
provider.subscribeToState((n, p) => {
|
|
85
|
-
if (provider.shouldRerun(p, n, this.state.queries)) {
|
|
86
|
-
this.runQueries();
|
|
87
|
-
}
|
|
88
|
-
})
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
this.subscribeToTimeRangeChanges(timeRange);
|
|
92
|
-
if (this.shouldRunQueriesOnActivate()) {
|
|
93
|
-
this.runQueries();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (!this._dataLayersSub) {
|
|
97
|
-
this._handleDataLayers();
|
|
98
|
-
}
|
|
99
|
-
return () => this._onDeactivate();
|
|
100
|
-
}
|
|
101
|
-
_handleDataLayers() {
|
|
102
|
-
const dataLayers = sceneGraph.getDataLayers(this);
|
|
103
|
-
if (dataLayers.length === 0) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
this._dataLayersSub = this._dataLayersMerger.getMergedStream(dataLayers).subscribe(this._onLayersReceived.bind(this));
|
|
107
|
-
}
|
|
108
|
-
_onLayersReceived(results) {
|
|
109
|
-
var _a, _b, _c, _d, _e;
|
|
110
|
-
const timeRange = sceneGraph.getTimeRange(this);
|
|
111
|
-
const { dataLayerFilter } = this.state;
|
|
112
|
-
let annotations = [];
|
|
113
|
-
let alertStates = [];
|
|
114
|
-
let alertState;
|
|
115
|
-
for (const result of results) {
|
|
116
|
-
for (let frame of result.data.series) {
|
|
117
|
-
if (((_a = frame.meta) == null ? void 0 : _a.dataTopic) === DataTopic.Annotations) {
|
|
118
|
-
annotations = annotations.concat(frame);
|
|
119
|
-
}
|
|
120
|
-
if (((_b = frame.meta) == null ? void 0 : _b.dataTopic) === DataTopic.AlertStates) {
|
|
121
|
-
alertStates = alertStates.concat(frame);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (dataLayerFilter == null ? void 0 : dataLayerFilter.panelId) {
|
|
126
|
-
if (annotations.length > 0) {
|
|
127
|
-
annotations = filterAnnotations(annotations, dataLayerFilter);
|
|
128
|
-
}
|
|
129
|
-
if (alertStates.length > 0) {
|
|
130
|
-
for (const frame of alertStates) {
|
|
131
|
-
const frameView = new DataFrameView(frame);
|
|
132
|
-
for (const row of frameView) {
|
|
133
|
-
if (row.panelId === dataLayerFilter.panelId) {
|
|
134
|
-
alertState = row;
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (allFramesEmpty(annotations) && allFramesEmpty(this._layerAnnotations) && isEqual(alertState, (_c = this.state.data) == null ? void 0 : _c.alertState)) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
this._layerAnnotations = annotations;
|
|
145
|
-
const baseStateUpdate = this.state.data ? this.state.data : __spreadProps(__spreadValues({}, emptyPanelData), { timeRange: timeRange.state.value });
|
|
146
|
-
this.setState({
|
|
147
|
-
data: __spreadProps(__spreadValues({}, baseStateUpdate), {
|
|
148
|
-
annotations: [...(_d = this._resultAnnotations) != null ? _d : [], ...annotations],
|
|
149
|
-
alertState: alertState != null ? alertState : (_e = this.state.data) == null ? void 0 : _e.alertState
|
|
150
|
-
})
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
onVariableUpdatesCompleted() {
|
|
154
|
-
if (this.isQueryModeAuto()) {
|
|
155
|
-
this.runQueries();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
onAnyVariableChanged(variable) {
|
|
159
|
-
if (this._adhocFiltersVar === variable || this._groupByVar === variable || !this.isQueryModeAuto()) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
if (variable instanceof AdHocFiltersVariable && this._isRelevantAutoVariable(variable)) {
|
|
163
|
-
this.runQueries();
|
|
164
|
-
}
|
|
165
|
-
if (variable instanceof GroupByVariable && this._isRelevantAutoVariable(variable)) {
|
|
166
|
-
this.runQueries();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
_isRelevantAutoVariable(variable) {
|
|
170
|
-
var _a, _b;
|
|
171
|
-
const datasource = (_a = this.state.datasource) != null ? _a : findFirstDatasource(this.state.queries);
|
|
172
|
-
return variable.state.applyMode === "auto" && (datasource == null ? void 0 : datasource.uid) === ((_b = variable.state.datasource) == null ? void 0 : _b.uid);
|
|
173
|
-
}
|
|
174
|
-
shouldRunQueriesOnActivate() {
|
|
175
|
-
if (this._variableValueRecorder.hasDependenciesChanged(this)) {
|
|
176
|
-
writeSceneLog(
|
|
177
|
-
"SceneQueryRunner",
|
|
178
|
-
"Variable dependency changed while inactive, shouldRunQueriesOnActivate returns true"
|
|
179
|
-
);
|
|
180
|
-
return true;
|
|
181
|
-
}
|
|
182
|
-
if (!this.state.data) {
|
|
183
|
-
return true;
|
|
184
|
-
}
|
|
185
|
-
if (this._isDataTimeRangeStale(this.state.data)) {
|
|
186
|
-
return true;
|
|
187
|
-
}
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
_isDataTimeRangeStale(data) {
|
|
191
|
-
const timeRange = sceneGraph.getTimeRange(this);
|
|
192
|
-
const stateTimeRange = timeRange.state.value;
|
|
193
|
-
const dataTimeRange = data.timeRange;
|
|
194
|
-
if (stateTimeRange.from.unix() === dataTimeRange.from.unix() && stateTimeRange.to.unix() === dataTimeRange.to.unix()) {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
writeSceneLog("SceneQueryRunner", "Data time range is stale");
|
|
198
|
-
return true;
|
|
199
|
-
}
|
|
200
|
-
_onDeactivate() {
|
|
201
|
-
var _a;
|
|
202
|
-
if (this._querySub) {
|
|
203
|
-
this._querySub.unsubscribe();
|
|
204
|
-
this._querySub = void 0;
|
|
205
|
-
}
|
|
206
|
-
if (this._dataLayersSub) {
|
|
207
|
-
this._dataLayersSub.unsubscribe();
|
|
208
|
-
this._dataLayersSub = void 0;
|
|
209
|
-
}
|
|
210
|
-
(_a = this._timeSub) == null ? void 0 : _a.unsubscribe();
|
|
211
|
-
this._timeSub = void 0;
|
|
212
|
-
this._timeSubRange = void 0;
|
|
213
|
-
this._adhocFiltersVar = void 0;
|
|
214
|
-
this._groupByVar = void 0;
|
|
215
|
-
this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this);
|
|
216
|
-
}
|
|
217
|
-
setContainerWidth(width) {
|
|
218
|
-
if (!this._containerWidth && width > 0) {
|
|
219
|
-
this._containerWidth = width;
|
|
220
|
-
if (this.state.maxDataPointsFromWidth && !this.state.maxDataPoints) {
|
|
221
|
-
setTimeout(() => {
|
|
222
|
-
if (this.isActive && !this.state._hasFetchedData) {
|
|
223
|
-
this.runQueries();
|
|
224
|
-
}
|
|
225
|
-
}, 0);
|
|
226
|
-
}
|
|
227
|
-
} else {
|
|
228
|
-
if (width > 0) {
|
|
229
|
-
this._containerWidth = width;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
isDataReadyToDisplay() {
|
|
234
|
-
return Boolean(this.state._hasFetchedData);
|
|
235
|
-
}
|
|
236
|
-
subscribeToTimeRangeChanges(timeRange) {
|
|
237
|
-
if (this._timeSubRange === timeRange) {
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
if (this._timeSub) {
|
|
241
|
-
this._timeSub.unsubscribe();
|
|
242
|
-
}
|
|
243
|
-
this._timeSubRange = timeRange;
|
|
244
|
-
this._timeSub = timeRange.subscribeToState(() => {
|
|
245
|
-
this.runWithTimeRange(timeRange);
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
runQueries() {
|
|
249
|
-
const timeRange = sceneGraph.getTimeRange(this);
|
|
250
|
-
if (this.isQueryModeAuto()) {
|
|
251
|
-
this.subscribeToTimeRangeChanges(timeRange);
|
|
252
|
-
}
|
|
253
|
-
this.runWithTimeRange(timeRange);
|
|
254
|
-
}
|
|
255
|
-
getMaxDataPoints() {
|
|
256
|
-
var _a;
|
|
257
|
-
if (this.state.maxDataPoints) {
|
|
258
|
-
return this.state.maxDataPoints;
|
|
259
|
-
}
|
|
260
|
-
return this.state.maxDataPointsFromWidth ? (_a = this._containerWidth) != null ? _a : 500 : 500;
|
|
261
|
-
}
|
|
262
|
-
cancelQuery() {
|
|
263
|
-
var _a;
|
|
264
|
-
(_a = this._querySub) == null ? void 0 : _a.unsubscribe();
|
|
265
|
-
if (this._dataLayersSub) {
|
|
266
|
-
this._dataLayersSub.unsubscribe();
|
|
267
|
-
this._dataLayersSub = void 0;
|
|
268
|
-
}
|
|
269
|
-
this.setState({
|
|
270
|
-
data: __spreadProps(__spreadValues({}, this.state.data), { state: LoadingState.Done })
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
async runWithTimeRange(timeRange) {
|
|
274
|
-
var _a, _b, _c;
|
|
275
|
-
if (!this.state.maxDataPoints && this.state.maxDataPointsFromWidth && !this._containerWidth) {
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
if (!this._dataLayersSub) {
|
|
279
|
-
this._handleDataLayers();
|
|
280
|
-
}
|
|
281
|
-
(_a = this._querySub) == null ? void 0 : _a.unsubscribe();
|
|
282
|
-
if (this._variableDependency.hasDependencyInLoadingState()) {
|
|
283
|
-
writeSceneLog("SceneQueryRunner", "Variable dependency is in loading state, skipping query execution");
|
|
284
|
-
this.setState({ data: __spreadProps(__spreadValues({}, (_b = this.state.data) != null ? _b : emptyPanelData), { state: LoadingState.Loading }) });
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
const { queries } = this.state;
|
|
288
|
-
if (!(queries == null ? void 0 : queries.length)) {
|
|
289
|
-
this._setNoDataState();
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
try {
|
|
293
|
-
const datasource = (_c = this.state.datasource) != null ? _c : findFirstDatasource(queries);
|
|
294
|
-
const ds = await getDataSource(datasource, this._scopedVars);
|
|
295
|
-
this.findAndSubscribeToAdHocFilters(datasource == null ? void 0 : datasource.uid);
|
|
296
|
-
const runRequest = getRunRequest();
|
|
297
|
-
const { primary, secondaries, processors } = this.prepareRequests(timeRange, ds);
|
|
298
|
-
writeSceneLog("SceneQueryRunner", "Starting runRequest", this.state.key);
|
|
299
|
-
let stream = runRequest(ds, primary);
|
|
300
|
-
if (secondaries.length > 0) {
|
|
301
|
-
const secondaryStreams = secondaries.map((r) => runRequest(ds, r));
|
|
302
|
-
const op = extraQueryProcessingOperator(processors);
|
|
303
|
-
stream = forkJoin([stream, ...secondaryStreams]).pipe(op);
|
|
304
|
-
}
|
|
305
|
-
stream = stream.pipe(
|
|
306
|
-
registerQueryWithController({
|
|
307
|
-
type: "data",
|
|
308
|
-
request: primary,
|
|
309
|
-
origin: this,
|
|
310
|
-
cancel: () => this.cancelQuery()
|
|
311
|
-
})
|
|
312
|
-
);
|
|
313
|
-
this._querySub = stream.subscribe(this.onDataReceived);
|
|
314
|
-
} catch (err) {
|
|
315
|
-
console.error("PanelQueryRunner Error", err);
|
|
316
|
-
this.onDataReceived(__spreadProps(__spreadValues(__spreadValues({}, emptyPanelData), this.state.data), {
|
|
317
|
-
state: LoadingState.Error,
|
|
318
|
-
errors: [toDataQueryError(err)]
|
|
319
|
-
}));
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
clone(withState) {
|
|
323
|
-
var _a;
|
|
324
|
-
const clone = super.clone(withState);
|
|
325
|
-
if (this._resultAnnotations) {
|
|
326
|
-
clone["_resultAnnotations"] = this._resultAnnotations.map((frame) => __spreadValues({}, frame));
|
|
327
|
-
}
|
|
328
|
-
if (this._layerAnnotations) {
|
|
329
|
-
clone["_layerAnnotations"] = this._layerAnnotations.map((frame) => __spreadValues({}, frame));
|
|
330
|
-
}
|
|
331
|
-
clone["_variableValueRecorder"] = this._variableValueRecorder.cloneAndRecordCurrentValuesForSceneObject(this);
|
|
332
|
-
clone["_containerWidth"] = this._containerWidth;
|
|
333
|
-
clone["_results"].next({ origin: this, data: (_a = this.state.data) != null ? _a : emptyPanelData });
|
|
334
|
-
return clone;
|
|
335
|
-
}
|
|
336
|
-
prepareRequests(timeRange, ds) {
|
|
337
|
-
var _a;
|
|
338
|
-
const { minInterval, queries } = this.state;
|
|
339
|
-
let request = __spreadValues({
|
|
340
|
-
app: "scenes",
|
|
341
|
-
requestId: getNextRequestId(),
|
|
342
|
-
timezone: timeRange.getTimeZone(),
|
|
343
|
-
range: timeRange.state.value,
|
|
344
|
-
interval: "1s",
|
|
345
|
-
intervalMs: 1e3,
|
|
346
|
-
targets: cloneDeep(queries),
|
|
347
|
-
maxDataPoints: this.getMaxDataPoints(),
|
|
348
|
-
scopedVars: this._scopedVars,
|
|
349
|
-
startTime: Date.now(),
|
|
350
|
-
liveStreaming: this.state.liveStreaming,
|
|
351
|
-
rangeRaw: {
|
|
352
|
-
from: timeRange.state.from,
|
|
353
|
-
to: timeRange.state.to
|
|
354
|
-
},
|
|
355
|
-
cacheTimeout: this.state.cacheTimeout,
|
|
356
|
-
queryCachingTTL: this.state.queryCachingTTL
|
|
357
|
-
}, getEnrichedDataRequest(this));
|
|
358
|
-
if (this._adhocFiltersVar) {
|
|
359
|
-
request.filters = this._adhocFiltersVar.state.filters.filter(isFilterComplete);
|
|
360
|
-
}
|
|
361
|
-
if (this._groupByVar) {
|
|
362
|
-
request.groupByKeys = this._groupByVar.state.value;
|
|
363
|
-
}
|
|
364
|
-
request.targets = request.targets.map((query) => {
|
|
365
|
-
var _a2;
|
|
366
|
-
if (!query.datasource || query.datasource.uid !== ds.uid && !((_a2 = ds.meta) == null ? void 0 : _a2.mixed) && isExpressionReference && !isExpressionReference(query.datasource)) {
|
|
367
|
-
query.datasource = ds.getRef();
|
|
368
|
-
}
|
|
369
|
-
return query;
|
|
370
|
-
});
|
|
371
|
-
const lowerIntervalLimit = minInterval ? interpolate(this, minInterval) : ds.interval;
|
|
372
|
-
const norm = rangeUtil.calculateInterval(timeRange.state.value, request.maxDataPoints, lowerIntervalLimit);
|
|
373
|
-
request.scopedVars = Object.assign({}, request.scopedVars, {
|
|
374
|
-
__interval: { text: norm.interval, value: norm.interval },
|
|
375
|
-
__interval_ms: { text: norm.intervalMs.toString(), value: norm.intervalMs }
|
|
376
|
-
});
|
|
377
|
-
request.interval = norm.interval;
|
|
378
|
-
request.intervalMs = norm.intervalMs;
|
|
379
|
-
const primaryTimeRange = timeRange.state.value;
|
|
380
|
-
let secondaryRequests = [];
|
|
381
|
-
let secondaryProcessors = /* @__PURE__ */ new Map();
|
|
382
|
-
for (const provider of (_a = this.getClosestExtraQueryProviders()) != null ? _a : []) {
|
|
383
|
-
for (const { req, processor } of provider.getExtraQueries(request)) {
|
|
384
|
-
const requestId = getNextRequestId();
|
|
385
|
-
secondaryRequests.push(__spreadProps(__spreadValues({}, req), { requestId }));
|
|
386
|
-
secondaryProcessors.set(requestId, processor != null ? processor : passthroughProcessor);
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
request.range = primaryTimeRange;
|
|
390
|
-
return { primary: request, secondaries: secondaryRequests, processors: secondaryProcessors };
|
|
391
|
-
}
|
|
392
|
-
_combineDataLayers(data) {
|
|
393
|
-
if (this._layerAnnotations && this._layerAnnotations.length > 0) {
|
|
394
|
-
data.annotations = (data.annotations || []).concat(this._layerAnnotations);
|
|
395
|
-
}
|
|
396
|
-
if (this.state.data && this.state.data.alertState) {
|
|
397
|
-
data.alertState = this.state.data.alertState;
|
|
398
|
-
}
|
|
399
|
-
return data;
|
|
400
|
-
}
|
|
401
|
-
_setNoDataState() {
|
|
402
|
-
if (this.state.data !== emptyPanelData) {
|
|
403
|
-
this.setState({ data: emptyPanelData });
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
getClosestExtraQueryProviders() {
|
|
407
|
-
const found = /* @__PURE__ */ new Map();
|
|
408
|
-
if (!this.parent) {
|
|
409
|
-
return [];
|
|
410
|
-
}
|
|
411
|
-
getClosest(this.parent, (s) => {
|
|
412
|
-
if (isExtraQueryProvider(s) && !found.has(s.constructor)) {
|
|
413
|
-
found.set(s.constructor, s);
|
|
414
|
-
}
|
|
415
|
-
s.forEachChild((child) => {
|
|
416
|
-
if (isExtraQueryProvider(child) && !found.has(child.constructor)) {
|
|
417
|
-
found.set(child.constructor, child);
|
|
418
|
-
}
|
|
419
|
-
});
|
|
420
|
-
return null;
|
|
421
|
-
});
|
|
422
|
-
return Array.from(found.values());
|
|
423
|
-
}
|
|
424
|
-
findAndSubscribeToAdHocFilters(uid) {
|
|
425
|
-
const filtersVar = findActiveAdHocFilterVariableByUid(uid);
|
|
426
|
-
if (this._adhocFiltersVar !== filtersVar) {
|
|
427
|
-
this._adhocFiltersVar = filtersVar;
|
|
428
|
-
this._updateExplicitVariableDependencies();
|
|
429
|
-
}
|
|
430
|
-
const groupByVar = findActiveGroupByVariablesByUid(uid);
|
|
431
|
-
if (this._groupByVar !== groupByVar) {
|
|
432
|
-
this._groupByVar = groupByVar;
|
|
433
|
-
this._updateExplicitVariableDependencies();
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
_updateExplicitVariableDependencies() {
|
|
437
|
-
const explicitDependencies = [];
|
|
438
|
-
if (this._adhocFiltersVar) {
|
|
439
|
-
explicitDependencies.push(this._adhocFiltersVar.state.name);
|
|
440
|
-
}
|
|
441
|
-
if (this._groupByVar) {
|
|
442
|
-
explicitDependencies.push(this._groupByVar.state.name);
|
|
443
|
-
}
|
|
444
|
-
this._variableDependency.setVariableNames(explicitDependencies);
|
|
445
|
-
}
|
|
446
|
-
isQueryModeAuto() {
|
|
447
|
-
var _a;
|
|
448
|
-
return ((_a = this.state.runQueriesMode) != null ? _a : "auto") === "auto";
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
function findFirstDatasource(targets) {
|
|
452
|
-
var _a, _b;
|
|
453
|
-
return (_b = (_a = targets.find((t) => t.datasource !== null)) == null ? void 0 : _a.datasource) != null ? _b : void 0;
|
|
454
|
-
}
|
|
455
|
-
function allFramesEmpty(frames) {
|
|
456
|
-
if (!frames) {
|
|
457
|
-
return true;
|
|
458
|
-
}
|
|
459
|
-
for (let i = 0; i < frames.length; i++) {
|
|
460
|
-
if (frames[i].length > 0) {
|
|
461
|
-
return false;
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
return true;
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
export { SceneQueryRunner, findFirstDatasource, getNextRequestId };
|
|
468
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVRdWVyeVJ1bm5lci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5aW5nL1NjZW5lUXVlcnlSdW5uZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGZvcmtKb2luLCBSZXBsYXlTdWJqZWN0LCBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEYXRhUXVlcnksIERhdGFTb3VyY2VSZWYsIExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BncmFmYW5hL3NjaGVtYSc7XG5cbmltcG9ydCB7XG4gIEFsZXJ0U3RhdGVJbmZvLFxuICBEYXRhRnJhbWUsXG4gIERhdGFGcmFtZVZpZXcsXG4gIERhdGFRdWVyeVJlcXVlc3QsXG4gIERhdGFTb3VyY2VBcGksXG4gIERhdGFUb3BpYyxcbiAgUGFuZWxEYXRhLFxuICBwcmVQcm9jZXNzUGFuZWxEYXRhLFxuICByYW5nZVV0aWwsXG59IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuXG4vLyBUT0RPOiBSZW1vdmUgdGhpcyBpZ25vcmUgYW5ub3RhdGlvbiB3aGVuIHRoZSBncmFmYW5hIHJ1bnRpbWUgZGVwZW5kZW5jeSBoYXMgYmVlbiB1cGRhdGVkXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBnZXRSdW5SZXF1ZXN0LCB0b0RhdGFRdWVyeUVycm9yLCBpc0V4cHJlc3Npb25SZWZlcmVuY2UsIGNvbmZpZyB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuXG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi9jb3JlL1NjZW5lT2JqZWN0QmFzZSc7XG5pbXBvcnQgeyBzY2VuZUdyYXBoIH0gZnJvbSAnLi4vY29yZS9zY2VuZUdyYXBoJztcbmltcG9ydCB7XG4gIERhdGFMYXllckZpbHRlcixcbiAgU2NlbmVEYXRhUHJvdmlkZXIsXG4gIFNjZW5lRGF0YVByb3ZpZGVyUmVzdWx0LFxuICBTY2VuZURhdGFRdWVyeSxcbiAgU2NlbmVPYmplY3RTdGF0ZSxcbiAgU2NlbmVUaW1lUmFuZ2VMaWtlLFxufSBmcm9tICcuLi9jb3JlL3R5cGVzJztcbmltcG9ydCB7IGdldERhdGFTb3VyY2UgfSBmcm9tICcuLi91dGlscy9nZXREYXRhU291cmNlJztcbmltcG9ydCB7IFZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyB9IGZyb20gJy4uL3ZhcmlhYmxlcy9WYXJpYWJsZURlcGVuZGVuY3lDb25maWcnO1xuaW1wb3J0IHsgd3JpdGVTY2VuZUxvZyB9IGZyb20gJy4uL3V0aWxzL3dyaXRlU2NlbmVMb2cnO1xuaW1wb3J0IHsgVmFyaWFibGVWYWx1ZVJlY29yZGVyIH0gZnJvbSAnLi4vdmFyaWFibGVzL1ZhcmlhYmxlVmFsdWVSZWNvcmRlcic7XG5pbXBvcnQgeyBlbXB0eVBhbmVsRGF0YSB9IGZyb20gJy4uL2NvcmUvU2NlbmVEYXRhTm9kZSc7XG5pbXBvcnQgeyBnZXRDbG9zZXN0IH0gZnJvbSAnLi4vY29yZS9zY2VuZUdyYXBoL3V0aWxzJztcbmltcG9ydCB7IGlzRXh0cmFRdWVyeVByb3ZpZGVyLCBFeHRyYVF1ZXJ5RGF0YVByb2Nlc3NvciwgRXh0cmFRdWVyeVByb3ZpZGVyIH0gZnJvbSAnLi9FeHRyYVF1ZXJ5UHJvdmlkZXInO1xuaW1wb3J0IHsgcGFzc3Rocm91Z2hQcm9jZXNzb3IsIGV4dHJhUXVlcnlQcm9jZXNzaW5nT3BlcmF0b3IgfSBmcm9tICcuL2V4dHJhUXVlcnlQcm9jZXNzaW5nT3BlcmF0b3InO1xuaW1wb3J0IHsgZmlsdGVyQW5ub3RhdGlvbnMgfSBmcm9tICcuL2xheWVycy9hbm5vdGF0aW9ucy9maWx0ZXJBbm5vdGF0aW9ucyc7XG5pbXBvcnQgeyBnZXRFbnJpY2hlZERhdGFSZXF1ZXN0IH0gZnJvbSAnLi9nZXRFbnJpY2hlZERhdGFSZXF1ZXN0JztcbmltcG9ydCB7IGZpbmRBY3RpdmVBZEhvY0ZpbHRlclZhcmlhYmxlQnlVaWQgfSBmcm9tICcuLi92YXJpYWJsZXMvYWRob2MvcGF0Y2hHZXRBZGhvY0ZpbHRlcnMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJRdWVyeVdpdGhDb250cm9sbGVyIH0gZnJvbSAnLi9yZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXInO1xuaW1wb3J0IHsgZmluZEFjdGl2ZUdyb3VwQnlWYXJpYWJsZXNCeVVpZCB9IGZyb20gJy4uL3ZhcmlhYmxlcy9ncm91cGJ5L2ZpbmRBY3RpdmVHcm91cEJ5VmFyaWFibGVzQnlVaWQnO1xuaW1wb3J0IHsgR3JvdXBCeVZhcmlhYmxlIH0gZnJvbSAnLi4vdmFyaWFibGVzL2dyb3VwYnkvR3JvdXBCeVZhcmlhYmxlJztcbmltcG9ydCB7IEFkSG9jRmlsdGVyc1ZhcmlhYmxlLCBpc0ZpbHRlckNvbXBsZXRlIH0gZnJvbSAnLi4vdmFyaWFibGVzL2FkaG9jL0FkSG9jRmlsdGVyc1ZhcmlhYmxlJztcbmltcG9ydCB7IFNjZW5lVmFyaWFibGUgfSBmcm9tICcuLi92YXJpYWJsZXMvdHlwZXMnO1xuaW1wb3J0IHsgRGF0YUxheWVyc01lcmdlciB9IGZyb20gJy4vRGF0YUxheWVyc01lcmdlcic7XG5pbXBvcnQgeyBpbnRlcnBvbGF0ZSB9IGZyb20gJy4uL2NvcmUvc2NlbmVHcmFwaC9zY2VuZUdyYXBoJztcbmltcG9ydCB7IHdyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdCB9IGZyb20gJy4uL3V0aWxzL3dyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdCc7XG5cbmxldCBjb3VudGVyID0gMTAwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFJlcXVlc3RJZCgpIHtcbiAgcmV0dXJuICdTUVInICsgY291bnRlcisrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UnVubmVyU3RhdGUgZXh0ZW5kcyBTY2VuZU9iamVjdFN0YXRlIHtcbiAgZGF0YT86IFBhbmVsRGF0YTtcbiAgcXVlcmllczogU2NlbmVEYXRhUXVlcnlbXTtcbiAgZGF0YXNvdXJjZT86IERhdGFTb3VyY2VSZWY7XG4gIG1pbkludGVydmFsPzogc3RyaW5nO1xuICBtYXhEYXRhUG9pbnRzPzogbnVtYmVyO1xuICBsaXZlU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgbWF4RGF0YVBvaW50c0Zyb21XaWR0aD86IGJvb2xlYW47XG4gIGNhY2hlVGltZW91dD86IERhdGFRdWVyeVJlcXVlc3RbJ2NhY2hlVGltZW91dCddO1xuICBxdWVyeUNhY2hpbmdUVEw/OiBEYXRhUXVlcnlSZXF1ZXN0WydxdWVyeUNhY2hpbmdUVEwnXTtcbiAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIGF1dG8gKHRoZSBkZWZhdWx0KSBxdWVyeSBydW5uZXIgd2lsbCBpc3N1ZSBxdWVyaWVzIG9uIGFjdGl2YXRlICh3aGVuIHZhcmlhYmxlIGRlcGVuZGVuY2llcyBhcmUgcmVhZHkpIG9yIHdoZW4gdGltZSByYW5nZSBjaGFuZ2UuXG4gICAqIFNldCB0byBtYW51YWwgdG8gaGF2ZSBmdWxsIG1hbnVhbCBjb250cm9sIG92ZXIgd2hlbiBxdWVyaWVzIGFyZSBpc3N1ZWQuIFRyeSBub3QgdG8gc2V0IHRoaXMuIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgdW5pdCB0ZXN0cywgb3Igc3BlY2lhbCBlZGdlIGNhc2Ugd29ya2Zsb3dzLlxuICAgKi9cbiAgcnVuUXVlcmllc01vZGU/OiAnYXV0bycgfCAnbWFudWFsJztcbiAgLy8gRmlsdGVycyB0byBiZSBhcHBsaWVkIHRvIGRhdGEgbGF5ZXIgcmVzdWx0cyBiZWZvcmUgY29tYmluaW5nIHRoZW0gd2l0aCBTUVIgcmVzdWx0c1xuICBkYXRhTGF5ZXJGaWx0ZXI/OiBEYXRhTGF5ZXJGaWx0ZXI7XG4gIC8vIFByaXZhdGUgcnVudGltZSBzdGF0ZVxuICBfaGFzRmV0Y2hlZERhdGE/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFRdWVyeUV4dGVuZGVkIGV4dGVuZHMgRGF0YVF1ZXJ5IHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIC8vIE9wdCB0aGlzIHF1ZXJ5IG91dCBvZiB0aW1lIHdpbmRvdyBjb21wYXJpc29uXG4gIHRpbWVSYW5nZUNvbXBhcmU/OiBib29sZWFuO1xufVxuXG4vLyBUaGUgcmVxdWVzdHMgdGhhdCB3aWxsIGJlIHJ1biBieSB0aGUgcXVlcnkgcnVubmVyLlxuLy9cbi8vIEdlbmVyYWxseSB0aGUgcXVlcnkgcnVubmVyIHdpbGwgcnVuIGEgc2luZ2xlIHByaW1hcnkgcmVxdWVzdC5cbi8vIElmIHRoZSBzY2VuZSBncmFwaCBjb250YWlucyBpbXBsZW1lbnRhdGlvbnMgb2Zcbi8vIGBFeHRyYVF1ZXJ5UHJvdmlkZXJgLCB0aGUgcmVxdWVzdHMgY3JlYXRlZCBieSB0aGVzZVxuLy8gaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGxpc3Qgb2Ygc2Vjb25kYXJ5IHJlcXVlc3RzLFxuLy8gYW5kIHRoZXNlIHdpbGwgYmUgZXhlY3V0ZWQgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgcHJpbWFyeSByZXF1ZXN0LlxuLy9cbi8vIFRoZSByZXN1bHRzIG9mIGVhY2ggc2Vjb25kYXJ5IHJlcXVlc3Qgd2lsbCBiZSBwYXNzZWQgdG8gYW4gYXNzb2NpYXRlZFxuLy8gcHJvY2Vzc29yIGZ1bmN0aW9uIChhbG9uZyB3aXRoIHRoZSByZXN1bHRzIG9mIHRoZSBwcmltYXJ5IHJlcXVlc3QpLFxuLy8gd2hpY2ggY2FuIHRyYW5zZm9ybSB0aGUgcmVzdWx0cyBhcyBkZXNpcmVkLlxuaW50ZXJmYWNlIFByZXBhcmVkUmVxdWVzdHMge1xuICAvLyBUaGUgcHJpbWFyeSByZXF1ZXN0IHRvIHJ1bi5cbiAgcHJpbWFyeTogRGF0YVF1ZXJ5UmVxdWVzdDtcbiAgLy8gQSBwb3NzaWJseSBlbXB0eSBsaXN0IG9mIHNlY29uZGFyeSByZXF1ZXN0cyB0byBydW4gYWxvbmdzaWRlXG4gIC8vIHRoZSBwcmltYXJ5IHJlcXVlc3QuXG4gIHNlY29uZGFyaWVzOiBEYXRhUXVlcnlSZXF1ZXN0W107XG4gIC8vIEEgbWFwIGZyb20gYHJlcXVlc3RJZGAgb2Ygc2Vjb25kYXJ5IHJlcXVlc3RzIHRvIHByb2Nlc3NvcnNcbiAgLy8gZm9yIHRob3NlIHJlcXVlc3RzLiBQcm92aWRlZCBieSB0aGUgYEV4dHJhUXVlcnlQcm92aWRlcmAuXG4gIHByb2Nlc3NvcnM6IE1hcDxzdHJpbmcsIEV4dHJhUXVlcnlEYXRhUHJvY2Vzc29yPjtcbn1cblxuZXhwb3J0IGNsYXNzIFNjZW5lUXVlcnlSdW5uZXIgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2U8UXVlcnlSdW5uZXJTdGF0ZT4gaW1wbGVtZW50cyBTY2VuZURhdGFQcm92aWRlciB7XG4gIHByaXZhdGUgX3F1ZXJ5U3ViPzogVW5zdWJzY3JpYmFibGU7XG4gIHByaXZhdGUgX2RhdGFMYXllcnNTdWI/OiBVbnN1YnNjcmliYWJsZTtcbiAgcHJpdmF0ZSBfZGF0YUxheWVyc01lcmdlciA9IG5ldyBEYXRhTGF5ZXJzTWVyZ2VyKCk7XG4gIHByaXZhdGUgX3RpbWVTdWI/OiBVbnN1YnNjcmliYWJsZTtcbiAgcHJpdmF0ZSBfdGltZVN1YlJhbmdlPzogU2NlbmVUaW1lUmFuZ2VMaWtlO1xuICBwcml2YXRlIF9jb250YWluZXJXaWR0aD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfdmFyaWFibGVWYWx1ZVJlY29yZGVyID0gbmV3IFZhcmlhYmxlVmFsdWVSZWNvcmRlcigpO1xuICBwcml2YXRlIF9yZXN1bHRzID0gbmV3IFJlcGxheVN1YmplY3Q8U2NlbmVEYXRhUHJvdmlkZXJSZXN1bHQ+KDEpO1xuICBwcml2YXRlIF9zY29wZWRWYXJzID0geyBfX3NjZW5lT2JqZWN0OiB3cmFwSW5TYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3QodGhpcykgfTtcbiAgcHJpdmF0ZSBfbGF5ZXJBbm5vdGF0aW9ucz86IERhdGFGcmFtZVtdO1xuICBwcml2YXRlIF9yZXN1bHRBbm5vdGF0aW9ucz86IERhdGFGcmFtZVtdO1xuXG4gIHByaXZhdGUgX2FkaG9jRmlsdGVyc1Zhcj86IEFkSG9jRmlsdGVyc1ZhcmlhYmxlO1xuICBwcml2YXRlIF9ncm91cEJ5VmFyPzogR3JvdXBCeVZhcmlhYmxlO1xuXG4gIHB1YmxpYyBnZXRSZXN1bHRzU3RyZWFtKCkge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzO1xuICB9XG5cbiAgcHJvdGVjdGVkIF92YXJpYWJsZURlcGVuZGVuY3k6IFZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZzxRdWVyeVJ1bm5lclN0YXRlPiA9IG5ldyBWYXJpYWJsZURlcGVuZGVuY3lDb25maWcodGhpcywge1xuICAgIHN0YXRlUGF0aHM6IFsncXVlcmllcycsICdkYXRhc291cmNlJ10sXG4gICAgb25WYXJpYWJsZVVwZGF0ZUNvbXBsZXRlZDogdGhpcy5vblZhcmlhYmxlVXBkYXRlc0NvbXBsZXRlZC5iaW5kKHRoaXMpLFxuICAgIG9uQW55VmFyaWFibGVDaGFuZ2VkOiB0aGlzLm9uQW55VmFyaWFibGVDaGFuZ2VkLmJpbmQodGhpcyksXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0aWFsU3RhdGU6IFF1ZXJ5UnVubmVyU3RhdGUpIHtcbiAgICBzdXBlcihpbml0aWFsU3RhdGUpO1xuXG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB0aGlzLl9vbkFjdGl2YXRlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25BY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5pc1F1ZXJ5TW9kZUF1dG8oKSkge1xuICAgICAgY29uc3QgdGltZVJhbmdlID0gc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UodGhpcyk7XG5cbiAgICAgIC8vIEFkZCBzdWJzY3JpcHRpb25zIHRvIGFueSBleHRyYSBwcm92aWRlcnMgc28gdGhhdCB0aGV5IHJlcnVuIHF1ZXJpZXNcbiAgICAgIC8vIHdoZW4gdGhlaXIgc3RhdGUgY2hhbmdlcyBhbmQgdGhleSBzaG91bGQgcmVydW4uXG4gICAgICBjb25zdCBwcm92aWRlcnMgPSB0aGlzLmdldENsb3Nlc3RFeHRyYVF1ZXJ5UHJvdmlkZXJzKCk7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgICAgICBwcm92aWRlci5zdWJzY3JpYmVUb1N0YXRlKChuLCBwKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvdmlkZXIuc2hvdWxkUmVydW4ocCwgbiwgdGhpcy5zdGF0ZS5xdWVyaWVzKSkge1xuICAgICAgICAgICAgICB0aGlzLnJ1blF1ZXJpZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN1YnNjcmliZVRvVGltZVJhbmdlQ2hhbmdlcyh0aW1lUmFuZ2UpO1xuXG4gICAgICBpZiAodGhpcy5zaG91bGRSdW5RdWVyaWVzT25BY3RpdmF0ZSgpKSB7XG4gICAgICAgIHRoaXMucnVuUXVlcmllcygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5fZGF0YUxheWVyc1N1Yikge1xuICAgICAgdGhpcy5faGFuZGxlRGF0YUxheWVycygpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB0aGlzLl9vbkRlYWN0aXZhdGUoKTtcbiAgfVxuXG4gIC8vIFRoaXMgbWV0aG9kIHN1YnNjcmliZXMgdG8gYWxsIFNjZW5lRGF0YUxheWVycyB1cCB1bnRpbCB0aGUgcm9vdCwgYW5kIGNvbWJpbmVzIHRoZSByZXN1bHRzIGludG8gZGF0YSBwcm92aWRlZCBmcm9tIFNjZW5lUXVlcnlSdW5uZXJcbiAgcHJpdmF0ZSBfaGFuZGxlRGF0YUxheWVycygpIHtcbiAgICBjb25zdCBkYXRhTGF5ZXJzID0gc2NlbmVHcmFwaC5nZXREYXRhTGF5ZXJzKHRoaXMpO1xuXG4gICAgaWYgKGRhdGFMYXllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0YUxheWVyc1N1YiA9IHRoaXMuX2RhdGFMYXllcnNNZXJnZXJcbiAgICAgIC5nZXRNZXJnZWRTdHJlYW0oZGF0YUxheWVycylcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5fb25MYXllcnNSZWNlaXZlZC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uTGF5ZXJzUmVjZWl2ZWQocmVzdWx0czogSXRlcmFibGU8U2NlbmVEYXRhUHJvdmlkZXJSZXN1bHQ+KSB7XG4gICAgY29uc3QgdGltZVJhbmdlID0gc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UodGhpcyk7XG4gICAgY29uc3QgeyBkYXRhTGF5ZXJGaWx0ZXIgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBsZXQgYW5ub3RhdGlvbnM6IERhdGFGcmFtZVtdID0gW107XG4gICAgbGV0IGFsZXJ0U3RhdGVzOiBEYXRhRnJhbWVbXSA9IFtdO1xuICAgIGxldCBhbGVydFN0YXRlOiBBbGVydFN0YXRlSW5mbyB8IHVuZGVmaW5lZDtcblxuICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgIGZvciAobGV0IGZyYW1lIG9mIHJlc3VsdC5kYXRhLnNlcmllcykge1xuICAgICAgICBpZiAoZnJhbWUubWV0YT8uZGF0YVRvcGljID09PSBEYXRhVG9waWMuQW5ub3RhdGlvbnMpIHtcbiAgICAgICAgICBhbm5vdGF0aW9ucyA9IGFubm90YXRpb25zLmNvbmNhdChmcmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZyYW1lLm1ldGE/LmRhdGFUb3BpYyA9PT0gRGF0YVRvcGljLkFsZXJ0U3RhdGVzKSB7XG4gICAgICAgICAgYWxlcnRTdGF0ZXMgPSBhbGVydFN0YXRlcy5jb25jYXQoZnJhbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGFMYXllckZpbHRlcj8ucGFuZWxJZCkge1xuICAgICAgaWYgKGFubm90YXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYW5ub3RhdGlvbnMgPSBmaWx0ZXJBbm5vdGF0aW9ucyhhbm5vdGF0aW9ucywgZGF0YUxheWVyRmlsdGVyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFsZXJ0U3RhdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCBmcmFtZSBvZiBhbGVydFN0YXRlcykge1xuICAgICAgICAgIGNvbnN0IGZyYW1lVmlldyA9IG5ldyBEYXRhRnJhbWVWaWV3PEFsZXJ0U3RhdGVJbmZvPihmcmFtZSk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBmcmFtZVZpZXcpIHtcbiAgICAgICAgICAgIGlmIChyb3cucGFuZWxJZCA9PT0gZGF0YUxheWVyRmlsdGVyLnBhbmVsSWQpIHtcbiAgICAgICAgICAgICAgYWxlcnRTdGF0ZSA9IHJvdztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2tpcCB1bm5lc3Nhcnkgc3RhdGUgdXBkYXRlc1xuICAgIGlmIChcbiAgICAgIGFsbEZyYW1lc0VtcHR5KGFubm90YXRpb25zKSAmJlxuICAgICAgYWxsRnJhbWVzRW1wdHkodGhpcy5fbGF5ZXJBbm5vdGF0aW9ucykgJiZcbiAgICAgIGlzRXF1YWwoYWxlcnRTdGF0ZSwgdGhpcy5zdGF0ZS5kYXRhPy5hbGVydFN0YXRlKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2xheWVyQW5ub3RhdGlvbnMgPSBhbm5vdGF0aW9ucztcblxuICAgIGNvbnN0IGJhc2VTdGF0ZVVwZGF0ZSA9IHRoaXMuc3RhdGUuZGF0YSA/IHRoaXMuc3RhdGUuZGF0YSA6IHsgLi4uZW1wdHlQYW5lbERhdGEsIHRpbWVSYW5nZTogdGltZVJhbmdlLnN0YXRlLnZhbHVlIH07XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4uYmFzZVN0YXRlVXBkYXRlLFxuICAgICAgICBhbm5vdGF0aW9uczogWy4uLih0aGlzLl9yZXN1bHRBbm5vdGF0aW9ucyA/PyBbXSksIC4uLmFubm90YXRpb25zXSxcbiAgICAgICAgYWxlcnRTdGF0ZTogYWxlcnRTdGF0ZSA/PyB0aGlzLnN0YXRlLmRhdGE/LmFsZXJ0U3RhdGUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgdHJpZXMgdG8gc3RhcnQgYSBuZXcgcXVlcnkgd2hlbmV2ZXIgYSB2YXJpYWJsZSBjb21wbGV0ZXMgb3IgaXMgY2hhbmdlZC5cbiAgICpcbiAgICogV2UgY2FyZSBhYm91dCB2YXJpYWJsZSB1cGRhdGUgY29tcGxldGlvbnMgZXZlbiB3aGVuIHRoZSB2YXJpYWJsZSBoYXMgbm90IGNoYW5nZWQgYW5kIGV2ZW4gd2hlbiBpdCBpcyBub3QgYSBkaXJlY3QgZGVwZW5kZW5jeS5cbiAgICogRXhhbXBsZTogVmFyaWFibGVzIEEgYW5kIEIgKEIgZGVwZW5kcyBvbiBBKS4gQSB1cGRhdGUgZGVwZW5kcyBvbiB0aW1lIHJhbmdlLiBTbyB3aGVuIHRpbWUgY2hhbmdlIHF1ZXJ5IHJ1bm5lciB3aWxsXG4gICAqIGZpbmQgdGhhdCB2YXJpYWJsZSBBIGlzIGxvYWRpbmcgd2hpY2ggaXMgYSBkZXBlbmRlbmN5IG9uIG9mIHZhcmlhYmxlIEIgc28gd2lsbCBzZXQgX2lzV2FpdGluZ0ZvclZhcmlhYmxlcyB0byB0cnVlIGFuZFxuICAgKiBub3QgaXNzdWUgYW55IHF1ZXJ5LlxuICAgKlxuICAgKiBXaGVuIEEgY29tcGxldGVzIGl0J3MgbG9hZGluZyAod2l0aCBubyB2YWx1ZSBjaGFuZ2UsIHNvIEIgbmV2ZXIgdXBkYXRlcykgaXQgd2lsbCBjYXVzZSBhIGNhbGwgb2YgdGhpcyBmdW5jdGlvbiBsZXR0aW5nXG4gICAqIHRoZSBxdWVyeSBydW5uZXIga25vdyB0aGF0IEEgaGFzIGNvbXBsZXRlZCwgYW5kIGluIGNhc2UgX2lzV2FpdGluZ0ZvclZhcmlhYmxlcyB3ZSB0cnkgdG8gcnVuIHRoZSBxdWVyeS4gVGhlIHF1ZXJ5IHdpbGxcbiAgICogb25seSBydW4gaWYgYWxsIHZhcmlhYmxlcyBhcmUgaW4gYSBub24gbG9hZGluZyBzdGF0ZSBzbyBpbiBvdGhlciBzY2VuYXJpb3Mgd2hlcmUgYSBxdWVyeSBkZXBlbmRzIG9uIG1hbnkgdmFyaWFibGVzIHRoaXMgd2lsbFxuICAgKiBiZSBjYWxsZWQgbWFueSB0aW1lcyB1bnRpbCBhbGwgZGVwZW5kZW5jaWVzIGFyZSBpbiBhIG5vbiBsb2FkaW5nIHN0YXRlLiAgICpcbiAgICovXG4gIHByaXZhdGUgb25WYXJpYWJsZVVwZGF0ZXNDb21wbGV0ZWQoKSB7XG4gICAgaWYgKHRoaXMuaXNRdWVyeU1vZGVBdXRvKCkpIHtcbiAgICAgIHRoaXMucnVuUXVlcmllcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB2YWx1ZSBjaGFuZ2VkIGlzIGEgYWRob2MgZmlsdGVyIG8gZ3JvdXAgYnkgdmFyaWFibGUgdGhhdCBkaWQgbm90IGV4aXN0IHdoZW4gd2UgaXNzdWVkIHRoZSBsYXN0IHF1ZXJ5XG4gICAqL1xuICBwcml2YXRlIG9uQW55VmFyaWFibGVDaGFuZ2VkKHZhcmlhYmxlOiBTY2VuZVZhcmlhYmxlKSB7XG4gICAgLy8gSWYgdGhpcyB2YXJpYWJsZSBoYXMgYWxyZWFkeSBiZWVuIGRldGVjdGVkIHRoaXMgdmFyaWFibGUgYXMgYSBkZXBlbmRlbmN5IG9uVmFyaWFibGVVcGRhdGVzQ29tcGxldGVkIGFib3ZlIHdpbGwgaGFuZGxlIHZhbHVlIGNoYW5nZXNcbiAgICBpZiAodGhpcy5fYWRob2NGaWx0ZXJzVmFyID09PSB2YXJpYWJsZSB8fCB0aGlzLl9ncm91cEJ5VmFyID09PSB2YXJpYWJsZSB8fCAhdGhpcy5pc1F1ZXJ5TW9kZUF1dG8oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YXJpYWJsZSBpbnN0YW5jZW9mIEFkSG9jRmlsdGVyc1ZhcmlhYmxlICYmIHRoaXMuX2lzUmVsZXZhbnRBdXRvVmFyaWFibGUodmFyaWFibGUpKSB7XG4gICAgICB0aGlzLnJ1blF1ZXJpZXMoKTtcbiAgICB9XG5cbiAgICBpZiAodmFyaWFibGUgaW5zdGFuY2VvZiBHcm91cEJ5VmFyaWFibGUgJiYgdGhpcy5faXNSZWxldmFudEF1dG9WYXJpYWJsZSh2YXJpYWJsZSkpIHtcbiAgICAgIHRoaXMucnVuUXVlcmllcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzUmVsZXZhbnRBdXRvVmFyaWFibGUodmFyaWFibGU6IEFkSG9jRmlsdGVyc1ZhcmlhYmxlIHwgR3JvdXBCeVZhcmlhYmxlKSB7XG4gICAgY29uc3QgZGF0YXNvdXJjZSA9IHRoaXMuc3RhdGUuZGF0YXNvdXJjZSA/PyBmaW5kRmlyc3REYXRhc291cmNlKHRoaXMuc3RhdGUucXVlcmllcyk7XG4gICAgcmV0dXJuIHZhcmlhYmxlLnN0YXRlLmFwcGx5TW9kZSA9PT0gJ2F1dG8nICYmIGRhdGFzb3VyY2U/LnVpZCA9PT0gdmFyaWFibGUuc3RhdGUuZGF0YXNvdXJjZT8udWlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRSdW5RdWVyaWVzT25BY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5fdmFyaWFibGVWYWx1ZVJlY29yZGVyLmhhc0RlcGVuZGVuY2llc0NoYW5nZWQodGhpcykpIHtcbiAgICAgIHdyaXRlU2NlbmVMb2coXG4gICAgICAgICdTY2VuZVF1ZXJ5UnVubmVyJyxcbiAgICAgICAgJ1ZhcmlhYmxlIGRlcGVuZGVuY3kgY2hhbmdlZCB3aGlsZSBpbmFjdGl2ZSwgc2hvdWxkUnVuUXVlcmllc09uQWN0aXZhdGUgcmV0dXJucyB0cnVlJ1xuICAgICAgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW55IGRhdGEgd2Ugc2hvdWxkIHJ1biBxdWVyaWVzXG4gICAgaWYgKCF0aGlzLnN0YXRlLmRhdGEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIElmIHRpbWUgcmFuZ2UgaXMgc3RhbGUgLyBkaWZmZXJlbnQgd2Ugc2hvdWxkIHJ1biBxdWVyaWVzXG4gICAgaWYgKHRoaXMuX2lzRGF0YVRpbWVSYW5nZVN0YWxlKHRoaXMuc3RhdGUuZGF0YSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzRGF0YVRpbWVSYW5nZVN0YWxlKGRhdGE6IFBhbmVsRGF0YSkge1xuICAgIGNvbnN0IHRpbWVSYW5nZSA9IHNjZW5lR3JhcGguZ2V0VGltZVJhbmdlKHRoaXMpO1xuXG4gICAgY29uc3Qgc3RhdGVUaW1lUmFuZ2UgPSB0aW1lUmFuZ2Uuc3RhdGUudmFsdWU7XG4gICAgY29uc3QgZGF0YVRpbWVSYW5nZSA9IGRhdGEudGltZVJhbmdlO1xuXG4gICAgaWYgKFxuICAgICAgc3RhdGVUaW1lUmFuZ2UuZnJvbS51bml4KCkgPT09IGRhdGFUaW1lUmFuZ2UuZnJvbS51bml4KCkgJiZcbiAgICAgIHN0YXRlVGltZVJhbmdlLnRvLnVuaXgoKSA9PT0gZGF0YVRpbWVSYW5nZS50by51bml4KClcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgd3JpdGVTY2VuZUxvZygnU2NlbmVRdWVyeVJ1bm5lcicsICdEYXRhIHRpbWUgcmFuZ2UgaXMgc3RhbGUnKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX29uRGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcXVlcnlTdWIpIHtcbiAgICAgIHRoaXMuX3F1ZXJ5U3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl9xdWVyeVN1YiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZGF0YUxheWVyc1N1Yikge1xuICAgICAgdGhpcy5fZGF0YUxheWVyc1N1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fZGF0YUxheWVyc1N1YiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLl90aW1lU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3RpbWVTdWIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fdGltZVN1YlJhbmdlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2FkaG9jRmlsdGVyc1ZhciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9ncm91cEJ5VmFyID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3ZhcmlhYmxlVmFsdWVSZWNvcmRlci5yZWNvcmRDdXJyZW50RGVwZW5kZW5jeVZhbHVlc0ZvclNjZW5lT2JqZWN0KHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHNldENvbnRhaW5lcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgd2lkdGggd2Ugc2hvdWxkIHJ1biBxdWVyaWVzXG4gICAgaWYgKCF0aGlzLl9jb250YWluZXJXaWR0aCAmJiB3aWR0aCA+IDApIHtcbiAgICAgIHRoaXMuX2NvbnRhaW5lcldpZHRoID0gd2lkdGg7XG5cbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgbWF4RGF0YVBvaW50cyBzcGVjaWZpY2FsbHkgc2V0IGFuZCBtYXhEYXRhUG9pbnRzRnJvbVdpZHRoIGlzIHRydWVcbiAgICAgIGlmICh0aGlzLnN0YXRlLm1heERhdGFQb2ludHNGcm9tV2lkdGggJiYgIXRoaXMuc3RhdGUubWF4RGF0YVBvaW50cykge1xuICAgICAgICAvLyBBcyB0aGlzIGlzIGNhbGxlZCBmcm9tIHJlbmRlciBwYXRoIHdlIG5lZWQgdG8gd2FpdCBmb3IgbmV4dCB0aWNrIGJlZm9yZSBydW5uaW5nIHF1ZXJpZXNcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUgJiYgIXRoaXMuc3RhdGUuX2hhc0ZldGNoZWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnJ1blF1ZXJpZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiB0aGUgdXBkYXRlZCBjb250YWluZXIgd2lkdGggaXMgYmlnZ2VyIHRoYW4gMCBsZXQncyByZW1lbWJlciB0aGUgd2lkdGggdW50aWwgbmV4dCBxdWVyeSBpc3N1ZVxuICAgICAgaWYgKHdpZHRoID4gMCkge1xuICAgICAgICB0aGlzLl9jb250YWluZXJXaWR0aCA9IHdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RhdGFSZWFkeVRvRGlzcGxheSgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLnN0YXRlLl9oYXNGZXRjaGVkRGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvVGltZVJhbmdlQ2hhbmdlcyh0aW1lUmFuZ2U6IFNjZW5lVGltZVJhbmdlTGlrZSkge1xuICAgIGlmICh0aGlzLl90aW1lU3ViUmFuZ2UgPT09IHRpbWVSYW5nZSkge1xuICAgICAgLy8gTm90aGluZyB0byBkbywgYWxyZWFkeSBzdWJzY3JpYmVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3RpbWVTdWIpIHtcbiAgICAgIHRoaXMuX3RpbWVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl90aW1lU3ViUmFuZ2UgPSB0aW1lUmFuZ2U7XG4gICAgdGhpcy5fdGltZVN1YiA9IHRpbWVSYW5nZS5zdWJzY3JpYmVUb1N0YXRlKCgpID0+IHtcbiAgICAgIHRoaXMucnVuV2l0aFRpbWVSYW5nZSh0aW1lUmFuZ2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJ1blF1ZXJpZXMoKSB7XG4gICAgY29uc3QgdGltZVJhbmdlID0gc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UodGhpcyk7XG4gICAgaWYgKHRoaXMuaXNRdWVyeU1vZGVBdXRvKCkpIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9UaW1lUmFuZ2VDaGFuZ2VzKHRpbWVSYW5nZSk7XG4gICAgfVxuXG4gICAgdGhpcy5ydW5XaXRoVGltZVJhbmdlKHRpbWVSYW5nZSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1heERhdGFQb2ludHMoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUubWF4RGF0YVBvaW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUubWF4RGF0YVBvaW50cztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5tYXhEYXRhUG9pbnRzRnJvbVdpZHRoID8gdGhpcy5fY29udGFpbmVyV2lkdGggPz8gNTAwIDogNTAwO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFF1ZXJ5KCkge1xuICAgIHRoaXMuX3F1ZXJ5U3ViPy51bnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKHRoaXMuX2RhdGFMYXllcnNTdWIpIHtcbiAgICAgIHRoaXMuX2RhdGFMYXllcnNTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX2RhdGFMYXllcnNTdWIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkYXRhOiB7IC4uLnRoaXMuc3RhdGUuZGF0YSEsIHN0YXRlOiBMb2FkaW5nU3RhdGUuRG9uZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBydW5XaXRoVGltZVJhbmdlKHRpbWVSYW5nZTogU2NlbmVUaW1lUmFuZ2VMaWtlKSB7XG4gICAgLy8gSWYgbm8gbWF4RGF0YVBvaW50cyBzcGVjaWZpZWQgd2UgbWlnaHQgbmVlZCB0byB3YWl0IGZvciBjb250YWluZXIgd2lkdGggdG8gYmUgc2V0IGZyb20gdGhlIG91dHNpZGVcbiAgICBpZiAoIXRoaXMuc3RhdGUubWF4RGF0YVBvaW50cyAmJiB0aGlzLnN0YXRlLm1heERhdGFQb2ludHNGcm9tV2lkdGggJiYgIXRoaXMuX2NvbnRhaW5lcldpZHRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgZGF0YSBsYXllcnMgc3Vic2NyaXB0aW9uIGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBvbmVcbiAgICBpZiAoIXRoaXMuX2RhdGFMYXllcnNTdWIpIHtcbiAgICAgIHRoaXMuX2hhbmRsZURhdGFMYXllcnMoKTtcbiAgICB9XG5cbiAgICAvLyBDYW5jZWwgYW55IHJ1bm5pbmcgcXVlcmllc1xuICAgIHRoaXMuX3F1ZXJ5U3ViPy51bnN1YnNjcmliZSgpO1xuXG4gICAgLy8gU2tpcCBleGVjdXRpbmcgcXVlcmllcyBpZiB2YXJpYWJsZSBkZXBlbmRlbmN5IGlzIGluIGxvYWRpbmcgc3RhdGVcbiAgICBpZiAodGhpcy5fdmFyaWFibGVEZXBlbmRlbmN5Lmhhc0RlcGVuZGVuY3lJbkxvYWRpbmdTdGF0ZSgpKSB7XG4gICAgICB3cml0ZVNjZW5lTG9nKCdTY2VuZVF1ZXJ5UnVubmVyJywgJ1ZhcmlhYmxlIGRlcGVuZGVuY3kgaXMgaW4gbG9hZGluZyBzdGF0ZSwgc2tpcHBpbmcgcXVlcnkgZXhlY3V0aW9uJyk7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgZGF0YTogeyAuLi4odGhpcy5zdGF0ZS5kYXRhID8/IGVtcHR5UGFuZWxEYXRhKSwgc3RhdGU6IExvYWRpbmdTdGF0ZS5Mb2FkaW5nIH0gfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBxdWVyaWVzIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gU2ltcGxlIHBhdGggd2hlbiBubyBxdWVyaWVzIGV4aXN0XG4gICAgaWYgKCFxdWVyaWVzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3NldE5vRGF0YVN0YXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB0aGlzLnN0YXRlLmRhdGFzb3VyY2UgPz8gZmluZEZpcnN0RGF0YXNvdXJjZShxdWVyaWVzKTtcbiAgICAgIGNvbnN0IGRzID0gYXdhaXQgZ2V0RGF0YVNvdXJjZShkYXRhc291cmNlLCB0aGlzLl9zY29wZWRWYXJzKTtcblxuICAgICAgdGhpcy5maW5kQW5kU3Vic2NyaWJlVG9BZEhvY0ZpbHRlcnMoZGF0YXNvdXJjZT8udWlkKTtcblxuICAgICAgY29uc3QgcnVuUmVxdWVzdCA9IGdldFJ1blJlcXVlc3QoKTtcbiAgICAgIGNvbnN0IHsgcHJpbWFyeSwgc2Vjb25kYXJpZXMsIHByb2Nlc3NvcnMgfSA9IHRoaXMucHJlcGFyZVJlcXVlc3RzKHRpbWVSYW5nZSwgZHMpO1xuXG4gICAgICB3cml0ZVNjZW5lTG9nKCdTY2VuZVF1ZXJ5UnVubmVyJywgJ1N0YXJ0aW5nIHJ1blJlcXVlc3QnLCB0aGlzLnN0YXRlLmtleSk7XG5cbiAgICAgIGxldCBzdHJlYW0gPSBydW5SZXF1ZXN0KGRzLCBwcmltYXJ5KTtcblxuICAgICAgaWYgKHNlY29uZGFyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gU3VibWl0IGFsbCBzZWNvbmRhcnkgcmVxdWVzdHMgaW4gcGFyYWxsZWwuXG4gICAgICAgIGNvbnN0IHNlY29uZGFyeVN0cmVhbXMgPSBzZWNvbmRhcmllcy5tYXAoKHIpID0+IHJ1blJlcXVlc3QoZHMsIHIpKTtcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSByeGpzIG9wZXJhdG9yIHdoaWNoIHdpbGwgY29tYmluZSB0aGUgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IHJlc3BvbnNlc1xuICAgICAgICAvLyBieSBjYWxsaW5nIHRoZSBjb3JyZWN0IHByb2Nlc3NvciBmdW5jdGlvbnMgcHJvdmlkZWQgYnkgdGhlXG4gICAgICAgIC8vIGV4dHJhIHJlcXVlc3QgcHJvdmlkZXJzLlxuICAgICAgICBjb25zdCBvcCA9IGV4dHJhUXVlcnlQcm9jZXNzaW5nT3BlcmF0b3IocHJvY2Vzc29ycyk7XG4gICAgICAgIC8vIENvbWJpbmUgdGhlIHByaW1hcnkgYW5kIHNlY29uZGFyeSBzdHJlYW1zIGludG8gYSBzaW5nbGUgc3RyZWFtLCBhbmQgYXBwbHkgdGhlIG9wZXJhdG9yLlxuICAgICAgICBzdHJlYW0gPSBmb3JrSm9pbihbc3RyZWFtLCAuLi5zZWNvbmRhcnlTdHJlYW1zXSkucGlwZShvcCk7XG4gICAgICB9XG5cbiAgICAgIHN0cmVhbSA9IHN0cmVhbS5waXBlKFxuICAgICAgICByZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXIoe1xuICAgICAgICAgIHR5cGU6ICdkYXRhJyxcbiAgICAgICAgICByZXF1ZXN0OiBwcmltYXJ5LFxuICAgICAgICAgIG9yaWdpbjogdGhpcyxcbiAgICAgICAgICBjYW5jZWw6ICgpID0+IHRoaXMuY2FuY2VsUXVlcnkoKSxcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX3F1ZXJ5U3ViID0gc3RyZWFtLnN1YnNjcmliZSh0aGlzLm9uRGF0YVJlY2VpdmVkKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1BhbmVsUXVlcnlSdW5uZXIgRXJyb3InLCBlcnIpO1xuXG4gICAgICB0aGlzLm9uRGF0YVJlY2VpdmVkKHtcbiAgICAgICAgLi4uZW1wdHlQYW5lbERhdGEsXG4gICAgICAgIC4uLnRoaXMuc3RhdGUuZGF0YSxcbiAgICAgICAgc3RhdGU6IExvYWRpbmdTdGF0ZS5FcnJvcixcbiAgICAgICAgZXJyb3JzOiBbdG9EYXRhUXVlcnlFcnJvcihlcnIpXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh3aXRoU3RhdGU/OiBQYXJ0aWFsPFF1ZXJ5UnVubmVyU3RhdGU+KSB7XG4gICAgY29uc3QgY2xvbmUgPSBzdXBlci5jbG9uZSh3aXRoU3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuX3Jlc3VsdEFubm90YXRpb25zKSB7XG4gICAgICBjbG9uZVsnX3Jlc3VsdEFubm90YXRpb25zJ10gPSB0aGlzLl9yZXN1bHRBbm5vdGF0aW9ucy5tYXAoKGZyYW1lKSA9PiAoeyAuLi5mcmFtZSB9KSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2xheWVyQW5ub3RhdGlvbnMpIHtcbiAgICAgIGNsb25lWydfbGF5ZXJBbm5vdGF0aW9ucyddID0gdGhpcy5fbGF5ZXJBbm5vdGF0aW9ucy5tYXAoKGZyYW1lKSA9PiAoeyAuLi5mcmFtZSB9KSk7XG4gICAgfVxuXG4gICAgY2xvbmVbJ192YXJpYWJsZVZhbHVlUmVjb3JkZXInXSA9IHRoaXMuX3ZhcmlhYmxlVmFsdWVSZWNvcmRlci5jbG9uZUFuZFJlY29yZEN1cnJlbnRWYWx1ZXNGb3JTY2VuZU9iamVjdCh0aGlzKTtcbiAgICBjbG9uZVsnX2NvbnRhaW5lcldpZHRoJ10gPSB0aGlzLl9jb250YWluZXJXaWR0aDtcbiAgICBjbG9uZVsnX3Jlc3VsdHMnXS5uZXh0KHsgb3JpZ2luOiB0aGlzLCBkYXRhOiB0aGlzLnN0YXRlLmRhdGEgPz8gZW1wdHlQYW5lbERhdGEgfSk7XG5cbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVSZXF1ZXN0cyh0aW1lUmFuZ2U6IFNjZW5lVGltZVJhbmdlTGlrZSwgZHM6IERhdGFTb3VyY2VBcGkpOiBQcmVwYXJlZFJlcXVlc3RzIHtcbiAgICBjb25zdCB7IG1pbkludGVydmFsLCBxdWVyaWVzIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbGV0IHJlcXVlc3Q6IERhdGFRdWVyeVJlcXVlc3Q8RGF0YVF1ZXJ5RXh0ZW5kZWQ+ID0ge1xuICAgICAgYXBwOiAnc2NlbmVzJyxcbiAgICAgIHJlcXVlc3RJZDogZ2V0TmV4dFJlcXVlc3RJZCgpLFxuICAgICAgdGltZXpvbmU6IHRpbWVSYW5nZS5nZXRUaW1lWm9uZSgpLFxuICAgICAgcmFuZ2U6IHRpbWVSYW5nZS5zdGF0ZS52YWx1ZSxcbiAgICAgIGludGVydmFsOiAnMXMnLFxuICAgICAgaW50ZXJ2YWxNczogMTAwMCxcbiAgICAgIHRhcmdldHM6IGNsb25lRGVlcChxdWVyaWVzKSxcbiAgICAgIG1heERhdGFQb2ludHM6IHRoaXMuZ2V0TWF4RGF0YVBvaW50cygpLFxuICAgICAgc2NvcGVkVmFyczogdGhpcy5fc2NvcGVkVmFycyxcbiAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgIGxpdmVTdHJlYW1pbmc6IHRoaXMuc3RhdGUubGl2ZVN0cmVhbWluZyxcbiAgICAgIHJhbmdlUmF3OiB7XG4gICAgICAgIGZyb206IHRpbWVSYW5nZS5zdGF0ZS5mcm9tLFxuICAgICAgICB0bzogdGltZVJhbmdlLnN0YXRlLnRvLFxuICAgICAgfSxcbiAgICAgIGNhY2hlVGltZW91dDogdGhpcy5zdGF0ZS5jYWNoZVRpbWVvdXQsXG4gICAgICBxdWVyeUNhY2hpbmdUVEw6IHRoaXMuc3RhdGUucXVlcnlDYWNoaW5nVFRMLFxuICAgICAgLy8gVGhpcyBhc2tzIHRoZSBzY2VuZSByb290IHRvIHByb3ZpZGUgY29udGV4dCBwcm9wZXJ0aWVzIGxpa2UgYXBwLCBwYW5lbCBhbmQgZGFzaGJvYXJkVUlEXG4gICAgICAuLi5nZXRFbnJpY2hlZERhdGFSZXF1ZXN0KHRoaXMpLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5fYWRob2NGaWx0ZXJzVmFyKSB7XG4gICAgICAvLyBvbmx5IHBhc3MgZmlsdGVycyB0aGF0IGhhdmUgYm90aCBrZXkgYW5kIHZhbHVlXG4gICAgICAvLyBAdHMtaWdub3JlIChUZW1wb3JhcnkgaWdub3JlIHVudGlsIHdlIHVwZGF0ZSBAZ3JhZmFuYS9kYXRhKVxuICAgICAgcmVxdWVzdC5maWx0ZXJzID0gdGhpcy5fYWRob2NGaWx0ZXJzVmFyLnN0YXRlLmZpbHRlcnMuZmlsdGVyKGlzRmlsdGVyQ29tcGxldGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9ncm91cEJ5VmFyKSB7XG4gICAgICAvLyBAdHMtaWdub3JlIChUZW1wb3JhcnkgaWdub3JlIHVudGlsIHdlIHVwZGF0ZSBAZ3JhZmFuYS9kYXRhKVxuICAgICAgcmVxdWVzdC5ncm91cEJ5S2V5cyA9IHRoaXMuX2dyb3VwQnlWYXIuc3RhdGUudmFsdWU7XG4gICAgfVxuXG4gICAgcmVxdWVzdC50YXJnZXRzID0gcmVxdWVzdC50YXJnZXRzLm1hcCgocXVlcnkpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIXF1ZXJ5LmRhdGFzb3VyY2UgfHxcbiAgICAgICAgKHF1ZXJ5LmRhdGFzb3VyY2UudWlkICE9PSBkcy51aWQgJiZcbiAgICAgICAgICAhZHMubWV0YT8ubWl4ZWQgJiZcbiAgICAgICAgICBpc0V4cHJlc3Npb25SZWZlcmVuY2UgLyogVE9ETzogUmVtb3ZlIHRoaXMgY2hlY2sgd2hlbiBpc0V4cHJlc3Npb25SZWZlcmVuY2UgaXMgcHJvcGVybHkgZXhwb3J0ZWQgZnJvbSBncmFmYW4gcnVudGltZSAqLyAmJlxuICAgICAgICAgICFpc0V4cHJlc3Npb25SZWZlcmVuY2UocXVlcnkuZGF0YXNvdXJjZSkpXG4gICAgICApIHtcbiAgICAgICAgcXVlcnkuZGF0YXNvdXJjZSA9IGRzLmdldFJlZigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH0pO1xuXG4gICAgY29uc3QgbG93ZXJJbnRlcnZhbExpbWl0ID0gbWluSW50ZXJ2YWwgPyBpbnRlcnBvbGF0ZSh0aGlzLCBtaW5JbnRlcnZhbCkgOiBkcy5pbnRlcnZhbDtcbiAgICBjb25zdCBub3JtID0gcmFuZ2VVdGlsLmNhbGN1bGF0ZUludGVydmFsKHRpbWVSYW5nZS5zdGF0ZS52YWx1ZSwgcmVxdWVzdC5tYXhEYXRhUG9pbnRzISwgbG93ZXJJbnRlcnZhbExpbWl0KTtcblxuICAgIC8vIG1ha2Ugc2hhbGxvdyBjb3B5IG9mIHNjb3BlZCB2YXJzLFxuICAgIC8vIGFuZCBhZGQgYnVpbHQgaW4gdmFyaWFibGVzIGludGVydmFsIGFuZCBpbnRlcnZhbF9tc1xuICAgIHJlcXVlc3Quc2NvcGVkVmFycyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcXVlc3Quc2NvcGVkVmFycywge1xuICAgICAgX19pbnRlcnZhbDogeyB0ZXh0OiBub3JtLmludGVydmFsLCB2YWx1ZTogbm9ybS5pbnRlcnZhbCB9LFxuICAgICAgX19pbnRlcnZhbF9tczogeyB0ZXh0OiBub3JtLmludGVydmFsTXMudG9TdHJpbmcoKSwgdmFsdWU6IG5vcm0uaW50ZXJ2YWxNcyB9LFxuICAgIH0pO1xuXG4gICAgcmVxdWVzdC5pbnRlcnZhbCA9IG5vcm0uaW50ZXJ2YWw7XG4gICAgcmVxdWVzdC5pbnRlcnZhbE1zID0gbm9ybS5pbnRlcnZhbE1zO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBleHRyYSByZXF1ZXN0IHByb3ZpZGVycywgd2UgbmVlZCB0byBhZGQgYSBuZXcgcmVxdWVzdCBmb3IgZWFjaFxuICAgIC8vIGFuZCBtYXAgdGhlIHJlcXVlc3QncyBJRCB0byB0aGUgcHJvY2Vzc29yIGZ1bmN0aW9uIGdpdmVuIGJ5IHRoZSBwcm92aWRlciwgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyB0aGUgcHJvY2Vzc29yIGlzIGNhbGxlZCB3aXRoIHRoZSBjb3JyZWN0IHJlc3BvbnNlIGRhdGEuXG4gICAgY29uc3QgcHJpbWFyeVRpbWVSYW5nZSA9IHRpbWVSYW5nZS5zdGF0ZS52YWx1ZTtcbiAgICBsZXQgc2Vjb25kYXJ5UmVxdWVzdHM6IERhdGFRdWVyeVJlcXVlc3RbXSA9IFtdO1xuICAgIGxldCBzZWNvbmRhcnlQcm9jZXNzb3JzID0gbmV3IE1hcCgpO1xuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5nZXRDbG9zZXN0RXh0cmFRdWVyeVByb3ZpZGVycygpID8/IFtdKSB7XG4gICAgICBmb3IgKGNvbnN0IHsgcmVxLCBwcm9jZXNzb3IgfSBvZiBwcm92aWRlci5nZXRFeHRyYVF1ZXJpZXMocmVxdWVzdCkpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdElkID0gZ2V0TmV4dFJlcXVlc3RJZCgpO1xuICAgICAgICBzZWNvbmRhcnlSZXF1ZXN0cy5wdXNoKHsgLi4ucmVxLCByZXF1ZXN0SWQgfSk7XG4gICAgICAgIHNlY29uZGFyeVByb2Nlc3NvcnMuc2V0KHJlcXVlc3RJZCwgcHJvY2Vzc29yID8/IHBhc3N0aHJvdWdoUHJvY2Vzc29yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVxdWVzdC5yYW5nZSA9IHByaW1hcnlUaW1lUmFuZ2U7XG4gICAgcmV0dXJuIHsgcHJpbWFyeTogcmVxdWVzdCwgc2Vjb25kYXJpZXM6IHNlY29uZGFyeVJlcXVlc3RzLCBwcm9jZXNzb3JzOiBzZWNvbmRhcnlQcm9jZXNzb3JzIH07XG4gIH1cblxuICBwcml2YXRlIG9uRGF0YVJlY2VpdmVkID0gKGRhdGE6IFBhbmVsRGF0YSkgPT4ge1xuICAgIC8vIFdpbGwgY29tYmluZSBhbm5vdGF0aW9ucyBmcm9tIFNRUiBxdWVyaWVzIChmcmFtZXMgd2l0aCBtZXRhLmRhdGFUb3BpYyA9PT0gRGF0YVRvcGljLkFubm90YXRpb25zKVxuICAgIGNvbnN0IHByZVByb2Nlc3NlZERhdGEgPSBwcmVQcm9jZXNzUGFuZWxEYXRhKGRhdGEsIHRoaXMuc3RhdGUuZGF0YSk7XG5cbiAgICAvLyBTYXZlIHF1ZXJ5IGFubm90YXRpb25zXG4gICAgdGhpcy5fcmVzdWx0QW5ub3RhdGlvbnMgPSBkYXRhLmFubm90YXRpb25zO1xuXG4gICAgLy8gV2lsbCBjb21iaW5lIGFubm90YXRpb25zICYgYWxlcnQgc3RhdGUgZnJvbSBkYXRhIGxheWVyIHByb3ZpZGVyc1xuICAgIGNvbnN0IGRhdGFXaXRoTGF5ZXJzQXBwbGllZCA9IHRoaXMuX2NvbWJpbmVEYXRhTGF5ZXJzKHByZVByb2Nlc3NlZERhdGEpO1xuXG4gICAgbGV0IGhhc0ZldGNoZWREYXRhID0gdGhpcy5zdGF0ZS5faGFzRmV0Y2hlZERhdGE7XG5cbiAgICBpZiAoIWhhc0ZldGNoZWREYXRhICYmIHByZVByb2Nlc3NlZERhdGEuc3RhdGUgIT09IExvYWRpbmdTdGF0ZS5Mb2FkaW5nKSB7XG4gICAgICBoYXNGZXRjaGVkRGF0YSA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGE6IGRhdGFXaXRoTGF5ZXJzQXBwbGllZCwgX2hhc0ZldGNoZWREYXRhOiBoYXNGZXRjaGVkRGF0YSB9KTtcbiAgICB0aGlzLl9yZXN1bHRzLm5leHQoeyBvcmlnaW46IHRoaXMsIGRhdGE6IGRhdGFXaXRoTGF5ZXJzQXBwbGllZCB9KTtcbiAgfTtcblxuICBwcml2YXRlIF9jb21iaW5lRGF0YUxheWVycyhkYXRhOiBQYW5lbERhdGEpIHtcbiAgICBpZiAodGhpcy5fbGF5ZXJBbm5vdGF0aW9ucyAmJiB0aGlzLl9sYXllckFubm90YXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGRhdGEuYW5ub3RhdGlvbnMgPSAoZGF0YS5hbm5vdGF0aW9ucyB8fCBbXSkuY29uY2F0KHRoaXMuX2xheWVyQW5ub3RhdGlvbnMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXRlLmRhdGEgJiYgdGhpcy5zdGF0ZS5kYXRhLmFsZXJ0U3RhdGUpIHtcbiAgICAgIGRhdGEuYWxlcnRTdGF0ZSA9IHRoaXMuc3RhdGUuZGF0YS5hbGVydFN0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Tm9EYXRhU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuZGF0YSAhPT0gZW1wdHlQYW5lbERhdGEpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhOiBlbXB0eVBhbmVsRGF0YSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2FsayB1cCB0aGUgc2NlbmUgZ3JhcGggYW5kIGZpbmQgYW55IEV4dHJhUXVlcnlQcm92aWRlcnMuXG4gICAqXG4gICAqIFRoaXMgd2lsbCByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIGNsb3Nlc3QgcHJvdmlkZXIgb2YgZWFjaCB0eXBlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDbG9zZXN0RXh0cmFRdWVyeVByb3ZpZGVycygpOiBBcnJheTxFeHRyYVF1ZXJ5UHJvdmlkZXI8YW55Pj4ge1xuICAgIC8vIE1haW50YWluIGEgbWFwIGZyb20gcHJvdmlkZXIgY29uc3RydWN0b3IgdG8gcHJvdmlkZXIgb2JqZWN0LiBUaGUgY29uc3RydWN0b3JcbiAgICAvLyBpcyB1c2VkIGFzIGEgdW5pcXVlIGtleSBmb3IgZWFjaCBjbGFzcywgdG8gZW5zdXJlIHdlIGhhdmUgbm8gbW9yZSB0aGFuIG9uZVxuICAgIC8vIHR5cGUgb2YgZWFjaCB0eXBlIG9mIHByb3ZpZGVyLlxuICAgIGNvbnN0IGZvdW5kID0gbmV3IE1hcCgpO1xuICAgIGlmICghdGhpcy5wYXJlbnQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgZ2V0Q2xvc2VzdCh0aGlzLnBhcmVudCwgKHMpID0+IHtcbiAgICAgIGlmIChpc0V4dHJhUXVlcnlQcm92aWRlcihzKSAmJiAhZm91bmQuaGFzKHMuY29uc3RydWN0b3IpKSB7XG4gICAgICAgIGZvdW5kLnNldChzLmNvbnN0cnVjdG9yLCBzKTtcbiAgICAgIH1cbiAgICAgIHMuZm9yRWFjaENoaWxkKChjaGlsZCkgPT4ge1xuICAgICAgICBpZiAoaXNFeHRyYVF1ZXJ5UHJvdmlkZXIoY2hpbGQpICYmICFmb3VuZC5oYXMoY2hpbGQuY29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgZm91bmQuc2V0KGNoaWxkLmNvbnN0cnVjdG9yLCBjaGlsZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gQWx3YXlzIHJldHVybiBudWxsIHNvIHRoYXQgdGhlIHNlYXJjaCBjb250aW51ZXMgdG8gdGhlIHRvcCBvZlxuICAgICAgLy8gdGhlIHNjZW5lIGdyYXBoLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZm91bmQudmFsdWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdhbGsgdXAgc2NlbmUgZ3JhcGggYW5kIGZpbmQgdGhlIGNsb3Nlc3QgZmlsdGVyc2V0IHdpdGggbWF0Y2hpbmcgZGF0YSBzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgZmluZEFuZFN1YnNjcmliZVRvQWRIb2NGaWx0ZXJzKHVpZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZmlsdGVyc1ZhciA9IGZpbmRBY3RpdmVBZEhvY0ZpbHRlclZhcmlhYmxlQnlVaWQodWlkKTtcblxuICAgIGlmICh0aGlzLl9hZGhvY0ZpbHRlcnNWYXIgIT09IGZpbHRlcnNWYXIpIHtcbiAgICAgIHRoaXMuX2FkaG9jRmlsdGVyc1ZhciA9IGZpbHRlcnNWYXI7XG4gICAgICB0aGlzLl91cGRhdGVFeHBsaWNpdFZhcmlhYmxlRGVwZW5kZW5jaWVzKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXBCeVZhciA9IGZpbmRBY3RpdmVHcm91cEJ5VmFyaWFibGVzQnlVaWQodWlkKTtcbiAgICBpZiAodGhpcy5fZ3JvdXBCeVZhciAhPT0gZ3JvdXBCeVZhcikge1xuICAgICAgdGhpcy5fZ3JvdXBCeVZhciA9IGdyb3VwQnlWYXI7XG4gICAgICB0aGlzLl91cGRhdGVFeHBsaWNpdFZhcmlhYmxlRGVwZW5kZW5jaWVzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRXhwbGljaXRWYXJpYWJsZURlcGVuZGVuY2llcygpIHtcbiAgICBjb25zdCBleHBsaWNpdERlcGVuZGVuY2llczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLl9hZGhvY0ZpbHRlcnNWYXIpIHtcbiAgICAgIGV4cGxpY2l0RGVwZW5kZW5jaWVzLnB1c2godGhpcy5fYWRob2NGaWx0ZXJzVmFyLnN0YXRlLm5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9ncm91cEJ5VmFyKSB7XG4gICAgICBleHBsaWNpdERlcGVuZGVuY2llcy5wdXNoKHRoaXMuX2dyb3VwQnlWYXIuc3RhdGUubmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdmFyaWFibGVEZXBlbmRlbmN5LnNldFZhcmlhYmxlTmFtZXMoZXhwbGljaXREZXBlbmRlbmNpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1F1ZXJ5TW9kZUF1dG8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnN0YXRlLnJ1blF1ZXJpZXNNb2RlID8/ICdhdXRvJykgPT09ICdhdXRvJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEZpcnN0RGF0YXNvdXJjZSh0YXJnZXRzOiBEYXRhUXVlcnlbXSk6IERhdGFTb3VyY2VSZWYgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdGFyZ2V0cy5maW5kKCh0KSA9PiB0LmRhdGFzb3VyY2UgIT09IG51bGwpPy5kYXRhc291cmNlID8/IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gYWxsRnJhbWVzRW1wdHkoZnJhbWVzPzogRGF0YUZyYW1lW10pIHtcbiAgaWYgKCFmcmFtZXMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGZyYW1lc1tpXS5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1EQSxJQUFJLE9BQVUsR0FBQSxHQUFBLENBQUE7QUFFUCxTQUFTLGdCQUFtQixHQUFBO0FBQ2pDLEVBQUEsT0FBTyxLQUFRLEdBQUEsT0FBQSxFQUFBLENBQUE7QUFDakIsQ0FBQTtBQW9ETyxNQUFNLHlCQUF5QixlQUErRCxDQUFBO0FBQUEsRUEwQjVGLFlBQVksWUFBZ0MsRUFBQTtBQUNqRCxJQUFBLEtBQUEsQ0FBTSxZQUFZLENBQUEsQ0FBQTtBQXhCcEIsSUFBUSxJQUFBLENBQUEsaUJBQUEsR0FBb0IsSUFBSSxnQkFBaUIsRUFBQSxDQUFBO0FBSWpELElBQVEsSUFBQSxDQUFBLHNCQUFBLEdBQXlCLElBQUkscUJBQXNCLEVBQUEsQ0FBQTtBQUMzRCxJQUFRLElBQUEsQ0FBQSxRQUFBLEdBQVcsSUFBSSxhQUFBLENBQXVDLENBQUMsQ0FBQSxDQUFBO0FBQy9ELElBQUEsSUFBQSxDQUFRLFdBQWMsR0FBQSxFQUFFLGFBQWUsRUFBQSxpQ0FBQSxDQUFrQyxJQUFJLENBQUUsRUFBQSxDQUFBO0FBVy9FLElBQVUsSUFBQSxDQUFBLG1CQUFBLEdBQWtFLElBQUksd0JBQUEsQ0FBeUIsSUFBTSxFQUFBO0FBQUEsTUFDN0csVUFBQSxFQUFZLENBQUMsU0FBQSxFQUFXLFlBQVksQ0FBQTtBQUFBLE1BQ3BDLHlCQUEyQixFQUFBLElBQUEsQ0FBSywwQkFBMkIsQ0FBQSxJQUFBLENBQUssSUFBSSxDQUFBO0FBQUEsTUFDcEUsb0JBQXNCLEVBQUEsSUFBQSxDQUFLLG9CQUFxQixDQUFBLElBQUEsQ0FBSyxJQUFJLENBQUE7QUFBQSxLQUMxRCxDQUFBLENBQUE7QUF1Y0QsSUFBUSxJQUFBLENBQUEsY0FBQSxHQUFpQixDQUFDLElBQW9CLEtBQUE7QUFFNUMs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
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { of, mergeMap, forkJoin, map } from 'rxjs';
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __defProps = Object.defineProperties;
|
|
5
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
-
const passthroughProcessor = (_, secondary) => of(secondary);
|
|
23
|
-
const extraQueryProcessingOperator = (processors) => (data) => {
|
|
24
|
-
return data.pipe(
|
|
25
|
-
mergeMap(([primary, ...secondaries]) => {
|
|
26
|
-
const processedSecondaries = secondaries.flatMap((s) => {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
return (_b = (_a = processors.get(s.request.requestId)) == null ? void 0 : _a(primary, s)) != null ? _b : of(s);
|
|
29
|
-
});
|
|
30
|
-
return forkJoin([of(primary), ...processedSecondaries]);
|
|
31
|
-
}),
|
|
32
|
-
map(([primary, ...processedSecondaries]) => {
|
|
33
|
-
var _a;
|
|
34
|
-
return __spreadProps(__spreadValues({}, primary), {
|
|
35
|
-
series: [...primary.series, ...processedSecondaries.flatMap((s) => s.series)],
|
|
36
|
-
annotations: [...(_a = primary.annotations) != null ? _a : [], ...processedSecondaries.flatMap((s) => {
|
|
37
|
-
var _a2;
|
|
38
|
-
return (_a2 = s.annotations) != null ? _a2 : [];
|
|
39
|
-
})]
|
|
40
|
-
});
|
|
41
|
-
})
|
|
42
|
-
);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export { extraQueryProcessingOperator, passthroughProcessor };
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFRdWVyeVByb2Nlc3NpbmdPcGVyYXRvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5aW5nL2V4dHJhUXVlcnlQcm9jZXNzaW5nT3BlcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFuZWxEYXRhIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YsIG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEV4dHJhUXVlcnlEYXRhUHJvY2Vzc29yIH0gZnJvbSAnLi9FeHRyYVF1ZXJ5UHJvdmlkZXInO1xuXG4vLyBQYXNzdGhyb3VnaCBwcm9jZXNzb3IgZm9yIHVzZSB3aXRoIEV4dHJhUXVlcnlzLlxuZXhwb3J0IGNvbnN0IHBhc3N0aHJvdWdoUHJvY2Vzc29yOiBFeHRyYVF1ZXJ5RGF0YVByb2Nlc3NvciA9IChfLCBzZWNvbmRhcnkpID0+IG9mKHNlY29uZGFyeSk7XG5cbi8vIEZhY3RvcnkgZnVuY3Rpb24gd2hpY2ggdGFrZXMgYSBtYXAgZnJvbSByZXF1ZXN0IElEIHRvIHByb2Nlc3NvciBmdW5jdGlvbnMgYW5kXG4vLyByZXR1cm5zIGFuIHJ4anMgb3BlcmF0b3Igd2hpY2ggb3BlcmF0ZXMgb24gYW4gYXJyYXkgb2YgcGFuZWwgZGF0YSByZXNwb25zZXMuXG4vL1xuLy8gRWFjaCBzZWNvbmRhcnkgcmVzcG9uc2UgaXMgdHJhbnNmb3JtZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm9jZXNzb3IgZnVuY3Rpb25cbi8vIGlkZW50aWZpZWQgYnkgaXQncyByZXF1ZXN0IElELiBUaGUgcHJvY2Vzc29yIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgcHJpbWFyeVxuLy8gcmVzcG9uc2UgYW5kIHRoZSBzZWNvbmRhcnkgcmVzcG9uc2UgdG8gYmUgcHJvY2Vzc2VkLlxuLy9cbi8vIFRoZSBvdXRwdXQgaXMgYSBzaW5nbGUgZnJhbWUgd2l0aCB0aGUgcHJpbWFyeSBzZXJpZXMgYW5kIGFsbCBwcm9jZXNzZWRcbi8vIHNlY29uZGFyeSBzZXJpZXMgY29tYmluZWQuXG5leHBvcnQgY29uc3QgZXh0cmFRdWVyeVByb2Nlc3NpbmdPcGVyYXRvciA9XG4gIChwcm9jZXNzb3JzOiBNYXA8c3RyaW5nLCBFeHRyYVF1ZXJ5RGF0YVByb2Nlc3Nvcj4pID0+IChkYXRhOiBPYnNlcnZhYmxlPFtQYW5lbERhdGEsIC4uLlBhbmVsRGF0YVtdXT4pID0+IHtcbiAgICByZXR1cm4gZGF0YS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKFtwcmltYXJ5LCAuLi5zZWNvbmRhcmllc10pID0+IHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkU2Vjb25kYXJpZXMgPSBzZWNvbmRhcmllcy5mbGF0TWFwKChzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3NvcnMuZ2V0KHMucmVxdWVzdCEucmVxdWVzdElkKT8uKHByaW1hcnksIHMpID8/IG9mKHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFtvZihwcmltYXJ5KSwgLi4ucHJvY2Vzc2VkU2Vjb25kYXJpZXNdKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChbcHJpbWFyeSwgLi4ucHJvY2Vzc2VkU2Vjb25kYXJpZXNdKSA9PiAoe1xuICAgICAgICAuLi5wcmltYXJ5LFxuICAgICAgICBzZXJpZXM6IFsuLi5wcmltYXJ5LnNlcmllcywgLi4ucHJvY2Vzc2VkU2Vjb25kYXJpZXMuZmxhdE1hcCgocykgPT4gcy5zZXJpZXMpXSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IFsuLi4ocHJpbWFyeS5hbm5vdGF0aW9ucyA/PyBbXSksIC4uLnByb2Nlc3NlZFNlY29uZGFyaWVzLmZsYXRNYXAoKHMpID0+IHMuYW5ub3RhdGlvbnMgPz8gW10pXSxcbiAgICAgIH0pKVxuICAgICk7XG4gIH07XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtPLE1BQU0sb0JBQWdELEdBQUEsQ0FBQyxDQUFHLEVBQUEsU0FBQSxLQUFjLEdBQUcsU0FBUyxFQUFBO0FBV3BGLE1BQU0sNEJBQ1gsR0FBQSxDQUFDLFVBQXFELEtBQUEsQ0FBQyxJQUFrRCxLQUFBO0FBQ3ZHLEVBQUEsT0FBTyxJQUFLLENBQUEsSUFBQTtBQUFBLElBQ1YsUUFBUyxDQUFBLENBQUMsQ0FBQyxPQUFBLEVBQUEsR0FBWSxXQUFXLENBQU0sS0FBQTtBQUN0QyxNQUFBLE1BQU0sb0JBQXVCLEdBQUEsV0FBQSxDQUFZLE9BQVEsQ0FBQSxDQUFDLENBQU0sS0FBQTtBQXBCaEUsUUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUFxQlUsUUFBTyxPQUFBLENBQUEsRUFBQSxHQUFBLENBQUEsRUFBQSxHQUFBLFVBQUEsQ0FBVyxHQUFJLENBQUEsQ0FBQSxDQUFFLE9BQVMsQ0FBQSxTQUFTLENBQW5DLEtBQUEsSUFBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBdUMsT0FBUyxFQUFBLENBQUEsQ0FBQSxLQUFoRCxJQUFzRCxHQUFBLEVBQUEsR0FBQSxFQUFBLENBQUcsQ0FBQyxDQUFBLENBQUE7QUFBQSxPQUNsRSxDQUFBLENBQUE7QUFDRCxNQUFBLE9BQU8sU0FBUyxDQUFDLEVBQUEsQ0FBRyxPQUFPLENBQUcsRUFBQSxHQUFHLG9CQUFvQixDQUFDLENBQUEsQ0FBQTtBQUFBLEtBQ3ZELENBQUE7QUFBQSxJQUNELEdBQUksQ0FBQSxDQUFDLENBQUMsT0FBQSxFQUFBLEdBQVksb0JBQW9CLENBQUcsS0FBQTtBQXpCL0MsTUFBQSxJQUFBLEVBQUEsQ0FBQTtBQXlCbUQsTUFBQSxPQUFBLGFBQUEsQ0FBQSxjQUFBLENBQUEsRUFBQSxFQUN4QyxPQUR3QyxDQUFBLEVBQUE7QUFBQSxRQUUzQyxNQUFRLEVBQUEsQ0FBQyxHQUFHLE9BQUEsQ0FBUSxNQUFRLEVBQUEsR0FBRyxvQkFBcUIsQ0FBQSxPQUFBLENBQVEsQ0FBQyxDQUFBLEtBQU0sQ0FBRSxDQUFBLE1BQU0sQ0FBQyxDQUFBO0FBQUEsUUFDNUUsV0FBYSxFQUFBLENBQUMsR0FBSSxDQUFBLEVBQUEsR0FBQSxPQUFBLENBQVEsV0FBUixLQUFBLElBQUEsR0FBQSxFQUFBLEdBQXVCLEVBQUMsRUFBSSxHQUFHLG9CQUFBLENBQXFCLE9BQVEsQ0FBQSxDQUFDLENBQUcsS0FBQTtBQTVCMUYsVUFBQUEsSUFBQUEsR0FBQUEsQ0FBQUE7QUE0QjZGLFVBQUEsT0FBQSxDQUFBQSxHQUFBLEdBQUEsQ0FBQSxDQUFFLFdBQUYsS0FBQSxJQUFBLEdBQUFBLE1BQWlCLEVBQUMsQ0FBQTtBQUFBLFNBQUMsQ0FBQyxDQUFBO0FBQUEsT0FDM0csQ0FBQSxDQUFBO0FBQUEsS0FBRSxDQUFBO0FBQUEsR0FDSixDQUFBO0FBQ0Y7Ozs7In0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { isDataRequestEnricher } from '../core/types.js';
|
|
2
|
-
|
|
3
|
-
function getEnrichedDataRequest(sourceRunner) {
|
|
4
|
-
const root = sourceRunner.getRoot();
|
|
5
|
-
if (isDataRequestEnricher(root)) {
|
|
6
|
-
return root.enrichDataRequest(sourceRunner);
|
|
7
|
-
}
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export { getEnrichedDataRequest };
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RW5yaWNoZWREYXRhUmVxdWVzdC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3F1ZXJ5aW5nL2dldEVucmljaGVkRGF0YVJlcXVlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVF1ZXJ5UmVxdWVzdCB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgaXNEYXRhUmVxdWVzdEVucmljaGVyLCBTY2VuZU9iamVjdCB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5yaWNoZWREYXRhUmVxdWVzdChzb3VyY2VSdW5uZXI6IFNjZW5lT2JqZWN0KTogUGFydGlhbDxEYXRhUXVlcnlSZXF1ZXN0PiB8IG51bGwge1xuICBjb25zdCByb290ID0gc291cmNlUnVubmVyLmdldFJvb3QoKTtcblxuICBpZiAoaXNEYXRhUmVxdWVzdEVucmljaGVyKHJvb3QpKSB7XG4gICAgcmV0dXJuIHJvb3QuZW5yaWNoRGF0YVJlcXVlc3Qoc291cmNlUnVubmVyKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR08sU0FBUyx1QkFBdUIsWUFBNkQsRUFBQTtBQUNsRyxFQUFNLE1BQUEsSUFBQSxHQUFPLGFBQWEsT0FBUSxFQUFBLENBQUE7QUFFbEMsRUFBSSxJQUFBLHFCQUFBLENBQXNCLElBQUksQ0FBRyxFQUFBO0FBQy9CLElBQU8sT0FBQSxJQUFBLENBQUssa0JBQWtCLFlBQVksQ0FBQSxDQUFBO0FBQUEsR0FDNUM7QUFFQSxFQUFPLE9BQUEsSUFBQSxDQUFBO0FBQ1Q7Ozs7In0=
|