@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,285 +0,0 @@
|
|
|
1
|
-
import React, { useMemo, useCallback } from 'react';
|
|
2
|
-
import { useMeasure } from 'react-use';
|
|
3
|
-
import { SetPanelAttentionEvent, AlertState, PluginContextProvider } from '@grafana/data';
|
|
4
|
-
import { getAppEvents } from '@grafana/runtime';
|
|
5
|
-
import { useStyles2, Tooltip, PanelChrome, Icon, ErrorBoundaryAlert, PanelContextProvider } from '@grafana/ui';
|
|
6
|
-
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
7
|
-
import { isSceneObject } from '../../core/types.js';
|
|
8
|
-
import { css, cx } from '@emotion/css';
|
|
9
|
-
import { debounce } from 'lodash';
|
|
10
|
-
import { VizPanelSeriesLimit } from './VizPanelSeriesLimit.js';
|
|
11
|
-
|
|
12
|
-
var __defProp = Object.defineProperty;
|
|
13
|
-
var __defProps = Object.defineProperties;
|
|
14
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
15
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
16
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
17
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
18
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
19
|
-
var __spreadValues = (a, b) => {
|
|
20
|
-
for (var prop in b || (b = {}))
|
|
21
|
-
if (__hasOwnProp.call(b, prop))
|
|
22
|
-
__defNormalProp(a, prop, b[prop]);
|
|
23
|
-
if (__getOwnPropSymbols)
|
|
24
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
25
|
-
if (__propIsEnum.call(b, prop))
|
|
26
|
-
__defNormalProp(a, prop, b[prop]);
|
|
27
|
-
}
|
|
28
|
-
return a;
|
|
29
|
-
};
|
|
30
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
31
|
-
function VizPanelRenderer({ model }) {
|
|
32
|
-
var _a;
|
|
33
|
-
const {
|
|
34
|
-
title,
|
|
35
|
-
options,
|
|
36
|
-
fieldConfig,
|
|
37
|
-
_pluginLoadError,
|
|
38
|
-
displayMode,
|
|
39
|
-
hoverHeader,
|
|
40
|
-
showMenuAlways,
|
|
41
|
-
hoverHeaderOffset,
|
|
42
|
-
menu,
|
|
43
|
-
headerActions,
|
|
44
|
-
titleItems,
|
|
45
|
-
seriesLimit,
|
|
46
|
-
seriesLimitShowAll,
|
|
47
|
-
description,
|
|
48
|
-
collapsible,
|
|
49
|
-
collapsed,
|
|
50
|
-
_renderCounter = 0
|
|
51
|
-
} = model.useState();
|
|
52
|
-
const [ref, { width, height }] = useMeasure();
|
|
53
|
-
const appEvents = useMemo(() => getAppEvents(), []);
|
|
54
|
-
const setPanelAttention = useCallback(() => {
|
|
55
|
-
if (model.state.key) {
|
|
56
|
-
appEvents.publish(new SetPanelAttentionEvent({ panelId: model.state.key }));
|
|
57
|
-
}
|
|
58
|
-
}, [model.state.key, appEvents]);
|
|
59
|
-
const debouncedMouseMove = useMemo(
|
|
60
|
-
() => debounce(setPanelAttention, 100, { leading: true, trailing: false }),
|
|
61
|
-
[setPanelAttention]
|
|
62
|
-
);
|
|
63
|
-
const plugin = model.getPlugin();
|
|
64
|
-
const { dragClass, dragClassCancel } = getDragClasses(model);
|
|
65
|
-
const dataObject = sceneGraph.getData(model);
|
|
66
|
-
const rawData = dataObject.useState();
|
|
67
|
-
const dataWithSeriesLimit = useDataWithSeriesLimit(rawData.data, seriesLimit, seriesLimitShowAll);
|
|
68
|
-
const dataWithFieldConfig = model.applyFieldConfig(dataWithSeriesLimit);
|
|
69
|
-
const sceneTimeRange = sceneGraph.getTimeRange(model);
|
|
70
|
-
const timeZone = sceneTimeRange.getTimeZone();
|
|
71
|
-
const timeRange = model.getTimeRange(dataWithFieldConfig);
|
|
72
|
-
const titleInterpolated = model.interpolate(title, void 0, "text");
|
|
73
|
-
const alertStateStyles = useStyles2(getAlertStateStyles);
|
|
74
|
-
if (!plugin) {
|
|
75
|
-
return /* @__PURE__ */ React.createElement("div", null, "Loading plugin panel...");
|
|
76
|
-
}
|
|
77
|
-
if (!plugin.panel) {
|
|
78
|
-
return /* @__PURE__ */ React.createElement("div", null, "Panel plugin has no panel component");
|
|
79
|
-
}
|
|
80
|
-
const PanelComponent = plugin.panel;
|
|
81
|
-
if (dataObject && dataObject.setContainerWidth) {
|
|
82
|
-
dataObject.setContainerWidth(Math.round(width));
|
|
83
|
-
}
|
|
84
|
-
let titleItemsElement = [];
|
|
85
|
-
if (titleItems) {
|
|
86
|
-
if (Array.isArray(titleItems)) {
|
|
87
|
-
titleItemsElement = titleItemsElement.concat(
|
|
88
|
-
titleItems.map((titleItem) => {
|
|
89
|
-
return /* @__PURE__ */ React.createElement(titleItem.Component, {
|
|
90
|
-
model: titleItem,
|
|
91
|
-
key: `${titleItem.state.key}`
|
|
92
|
-
});
|
|
93
|
-
})
|
|
94
|
-
);
|
|
95
|
-
} else if (isSceneObject(titleItems)) {
|
|
96
|
-
titleItemsElement.push(/* @__PURE__ */ React.createElement(titleItems.Component, {
|
|
97
|
-
model: titleItems
|
|
98
|
-
}));
|
|
99
|
-
} else {
|
|
100
|
-
titleItemsElement.push(titleItems);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (seriesLimit) {
|
|
104
|
-
titleItemsElement.push(
|
|
105
|
-
/* @__PURE__ */ React.createElement(VizPanelSeriesLimit, {
|
|
106
|
-
key: "series-limit",
|
|
107
|
-
data: rawData.data,
|
|
108
|
-
seriesLimit,
|
|
109
|
-
showAll: seriesLimitShowAll,
|
|
110
|
-
onShowAllSeries: () => model.setState({ seriesLimitShowAll: !seriesLimitShowAll })
|
|
111
|
-
})
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
if (model.state.$timeRange) {
|
|
115
|
-
titleItemsElement.push(/* @__PURE__ */ React.createElement(model.state.$timeRange.Component, {
|
|
116
|
-
model: model.state.$timeRange,
|
|
117
|
-
key: model.state.key
|
|
118
|
-
}));
|
|
119
|
-
}
|
|
120
|
-
if (dataWithFieldConfig.alertState) {
|
|
121
|
-
titleItemsElement.push(
|
|
122
|
-
/* @__PURE__ */ React.createElement(Tooltip, {
|
|
123
|
-
content: (_a = dataWithFieldConfig.alertState.state) != null ? _a : "unknown",
|
|
124
|
-
key: `alert-states-icon-${model.state.key}`
|
|
125
|
-
}, /* @__PURE__ */ React.createElement(PanelChrome.TitleItem, {
|
|
126
|
-
className: cx({
|
|
127
|
-
[alertStateStyles.ok]: dataWithFieldConfig.alertState.state === AlertState.OK,
|
|
128
|
-
[alertStateStyles.pending]: dataWithFieldConfig.alertState.state === AlertState.Pending,
|
|
129
|
-
[alertStateStyles.alerting]: dataWithFieldConfig.alertState.state === AlertState.Alerting
|
|
130
|
-
})
|
|
131
|
-
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
132
|
-
name: dataWithFieldConfig.alertState.state === "alerting" ? "heart-break" : "heart",
|
|
133
|
-
className: "panel-alert-icon",
|
|
134
|
-
size: "md"
|
|
135
|
-
})))
|
|
136
|
-
);
|
|
137
|
-
}
|
|
138
|
-
let panelMenu;
|
|
139
|
-
if (menu) {
|
|
140
|
-
panelMenu = /* @__PURE__ */ React.createElement(menu.Component, {
|
|
141
|
-
model: menu
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
let actionsElement;
|
|
145
|
-
if (headerActions) {
|
|
146
|
-
if (Array.isArray(headerActions)) {
|
|
147
|
-
actionsElement = /* @__PURE__ */ React.createElement(React.Fragment, null, headerActions.map((action) => {
|
|
148
|
-
return /* @__PURE__ */ React.createElement(action.Component, {
|
|
149
|
-
model: action,
|
|
150
|
-
key: `${action.state.key}`
|
|
151
|
-
});
|
|
152
|
-
}));
|
|
153
|
-
} else if (isSceneObject(headerActions)) {
|
|
154
|
-
actionsElement = /* @__PURE__ */ React.createElement(headerActions.Component, {
|
|
155
|
-
model: headerActions
|
|
156
|
-
});
|
|
157
|
-
} else {
|
|
158
|
-
actionsElement = headerActions;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
const data = dataWithFieldConfig;
|
|
162
|
-
const isReadyToRender = dataObject.isDataReadyToDisplay ? dataObject.isDataReadyToDisplay() : true;
|
|
163
|
-
const context = model.getPanelContext();
|
|
164
|
-
const panelId = model.getLegacyPanelId();
|
|
165
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
166
|
-
className: relativeWrapper
|
|
167
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
168
|
-
ref,
|
|
169
|
-
className: absoluteWrapper,
|
|
170
|
-
"data-viz-panel-key": model.state.key
|
|
171
|
-
}, width > 0 && height > 0 && /* @__PURE__ */ React.createElement(PanelChrome, {
|
|
172
|
-
title: titleInterpolated,
|
|
173
|
-
description: (description == null ? void 0 : description.trim()) ? model.getDescription : void 0,
|
|
174
|
-
loadingState: data.state,
|
|
175
|
-
statusMessage: getChromeStatusMessage(data, _pluginLoadError),
|
|
176
|
-
statusMessageOnClick: model.onStatusMessageClick,
|
|
177
|
-
width,
|
|
178
|
-
height,
|
|
179
|
-
displayMode,
|
|
180
|
-
showMenuAlways,
|
|
181
|
-
hoverHeader,
|
|
182
|
-
hoverHeaderOffset,
|
|
183
|
-
titleItems: titleItemsElement,
|
|
184
|
-
dragClass,
|
|
185
|
-
actions: actionsElement,
|
|
186
|
-
dragClassCancel,
|
|
187
|
-
padding: plugin.noPadding ? "none" : "md",
|
|
188
|
-
menu: panelMenu,
|
|
189
|
-
onCancelQuery: model.onCancelQuery,
|
|
190
|
-
onFocus: setPanelAttention,
|
|
191
|
-
onMouseEnter: setPanelAttention,
|
|
192
|
-
onMouseMove: debouncedMouseMove,
|
|
193
|
-
collapsible,
|
|
194
|
-
collapsed,
|
|
195
|
-
onToggleCollapse: model.onToggleCollapse
|
|
196
|
-
}, (innerWidth, innerHeight) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ErrorBoundaryAlert, {
|
|
197
|
-
dependencies: [plugin, data]
|
|
198
|
-
}, /* @__PURE__ */ React.createElement(PluginContextProvider, {
|
|
199
|
-
meta: plugin.meta
|
|
200
|
-
}, /* @__PURE__ */ React.createElement(PanelContextProvider, {
|
|
201
|
-
value: context
|
|
202
|
-
}, isReadyToRender && /* @__PURE__ */ React.createElement(PanelComponent, {
|
|
203
|
-
id: panelId,
|
|
204
|
-
data,
|
|
205
|
-
title,
|
|
206
|
-
timeRange,
|
|
207
|
-
timeZone,
|
|
208
|
-
options,
|
|
209
|
-
fieldConfig,
|
|
210
|
-
transparent: false,
|
|
211
|
-
width: innerWidth,
|
|
212
|
-
height: innerHeight,
|
|
213
|
-
renderCounter: _renderCounter,
|
|
214
|
-
replaceVariables: model.interpolate,
|
|
215
|
-
onOptionsChange: model.onOptionsChange,
|
|
216
|
-
onFieldConfigChange: model.onFieldConfigChange,
|
|
217
|
-
onChangeTimeRange: model.onTimeRangeChange,
|
|
218
|
-
eventBus: context.eventBus
|
|
219
|
-
}))))))));
|
|
220
|
-
}
|
|
221
|
-
function useDataWithSeriesLimit(data, seriesLimit, showAllSeries) {
|
|
222
|
-
return useMemo(() => {
|
|
223
|
-
if (!(data == null ? void 0 : data.series) || !seriesLimit || showAllSeries) {
|
|
224
|
-
return data;
|
|
225
|
-
}
|
|
226
|
-
return __spreadProps(__spreadValues({}, data), {
|
|
227
|
-
series: data.series.slice(0, seriesLimit)
|
|
228
|
-
});
|
|
229
|
-
}, [data, seriesLimit, showAllSeries]);
|
|
230
|
-
}
|
|
231
|
-
function getDragClasses(panel) {
|
|
232
|
-
var _a, _b;
|
|
233
|
-
const parentLayout = sceneGraph.getLayout(panel);
|
|
234
|
-
const isDraggable = parentLayout == null ? void 0 : parentLayout.isDraggable();
|
|
235
|
-
if (!parentLayout || !isDraggable || itemDraggingDisabled(panel, parentLayout)) {
|
|
236
|
-
return { dragClass: "", dragClassCancel: "" };
|
|
237
|
-
}
|
|
238
|
-
return { dragClass: (_a = parentLayout.getDragClass) == null ? void 0 : _a.call(parentLayout), dragClassCancel: (_b = parentLayout == null ? void 0 : parentLayout.getDragClassCancel) == null ? void 0 : _b.call(parentLayout) };
|
|
239
|
-
}
|
|
240
|
-
function itemDraggingDisabled(item, layout) {
|
|
241
|
-
let ancestor = item.parent;
|
|
242
|
-
while (ancestor && ancestor !== layout) {
|
|
243
|
-
if ("isDraggable" in ancestor.state && ancestor.state.isDraggable === false) {
|
|
244
|
-
return true;
|
|
245
|
-
}
|
|
246
|
-
ancestor = ancestor.parent;
|
|
247
|
-
}
|
|
248
|
-
return false;
|
|
249
|
-
}
|
|
250
|
-
function getChromeStatusMessage(data, pluginLoadingError) {
|
|
251
|
-
if (pluginLoadingError) {
|
|
252
|
-
return pluginLoadingError;
|
|
253
|
-
}
|
|
254
|
-
let message = data.error ? data.error.message : void 0;
|
|
255
|
-
if (data.errors) {
|
|
256
|
-
message = data.errors.map((e) => e.message).join(", ");
|
|
257
|
-
}
|
|
258
|
-
return message;
|
|
259
|
-
}
|
|
260
|
-
const relativeWrapper = css({
|
|
261
|
-
position: "relative",
|
|
262
|
-
width: "100%",
|
|
263
|
-
height: "100%"
|
|
264
|
-
});
|
|
265
|
-
const absoluteWrapper = css({
|
|
266
|
-
position: "absolute",
|
|
267
|
-
width: "100%",
|
|
268
|
-
height: "100%"
|
|
269
|
-
});
|
|
270
|
-
const getAlertStateStyles = (theme) => {
|
|
271
|
-
return {
|
|
272
|
-
ok: css({
|
|
273
|
-
color: theme.colors.success.text
|
|
274
|
-
}),
|
|
275
|
-
pending: css({
|
|
276
|
-
color: theme.colors.warning.text
|
|
277
|
-
}),
|
|
278
|
-
alerting: css({
|
|
279
|
-
color: theme.colors.error.text
|
|
280
|
-
})
|
|
281
|
-
};
|
|
282
|
-
};
|
|
283
|
-
|
|
284
|
-
export { VizPanelRenderer };
|
|
285
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml6UGFuZWxSZW5kZXJlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVml6UGFuZWwvVml6UGFuZWxSZW5kZXJlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFJlZkNhbGxiYWNrLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lYXN1cmUgfSBmcm9tICdyZWFjdC11c2UnO1xuXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBBbGVydFN0YXRlLCBHcmFmYW5hVGhlbWUyLCBQYW5lbERhdGEsIFBsdWdpbkNvbnRleHRQcm92aWRlciwgU2V0UGFuZWxBdHRlbnRpb25FdmVudCB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuXG5pbXBvcnQgeyBnZXRBcHBFdmVudHMgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcbmltcG9ydCB7IFBhbmVsQ2hyb21lLCBFcnJvckJvdW5kYXJ5QWxlcnQsIFBhbmVsQ29udGV4dFByb3ZpZGVyLCBUb29sdGlwLCB1c2VTdHlsZXMyLCBJY29uIH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuXG5pbXBvcnQgeyBzY2VuZUdyYXBoIH0gZnJvbSAnLi4vLi4vY29yZS9zY2VuZUdyYXBoJztcbmltcG9ydCB7IGlzU2NlbmVPYmplY3QsIFNjZW5lQ29tcG9uZW50UHJvcHMsIFNjZW5lTGF5b3V0LCBTY2VuZU9iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBWaXpQYW5lbCB9IGZyb20gJy4vVml6UGFuZWwnO1xuaW1wb3J0IHsgY3NzLCBjeCB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBWaXpQYW5lbFNlcmllc0xpbWl0IH0gZnJvbSAnLi9WaXpQYW5lbFNlcmllc0xpbWl0JztcblxuZXhwb3J0IGZ1bmN0aW9uIFZpelBhbmVsUmVuZGVyZXIoeyBtb2RlbCB9OiBTY2VuZUNvbXBvbmVudFByb3BzPFZpelBhbmVsPikge1xuICBjb25zdCB7XG4gICAgdGl0bGUsXG4gICAgb3B0aW9ucyxcbiAgICBmaWVsZENvbmZpZyxcbiAgICBfcGx1Z2luTG9hZEVycm9yLFxuICAgIGRpc3BsYXlNb2RlLFxuICAgIGhvdmVySGVhZGVyLFxuICAgIHNob3dNZW51QWx3YXlzLFxuICAgIGhvdmVySGVhZGVyT2Zmc2V0LFxuICAgIG1lbnUsXG4gICAgaGVhZGVyQWN0aW9ucyxcbiAgICB0aXRsZUl0ZW1zLFxuICAgIHNlcmllc0xpbWl0LFxuICAgIHNlcmllc0xpbWl0U2hvd0FsbCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjb2xsYXBzaWJsZSxcbiAgICBjb2xsYXBzZWQsXG4gICAgX3JlbmRlckNvdW50ZXIgPSAwLFxuICB9ID0gbW9kZWwudXNlU3RhdGUoKTtcbiAgY29uc3QgW3JlZiwgeyB3aWR0aCwgaGVpZ2h0IH1dID0gdXNlTWVhc3VyZSgpO1xuICBjb25zdCBhcHBFdmVudHMgPSB1c2VNZW1vKCgpID0+IGdldEFwcEV2ZW50cygpLCBbXSk7XG5cbiAgY29uc3Qgc2V0UGFuZWxBdHRlbnRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKG1vZGVsLnN0YXRlLmtleSkge1xuICAgICAgYXBwRXZlbnRzLnB1Ymxpc2gobmV3IFNldFBhbmVsQXR0ZW50aW9uRXZlbnQoeyBwYW5lbElkOiBtb2RlbC5zdGF0ZS5rZXkgfSkpO1xuICAgIH1cbiAgfSwgW21vZGVsLnN0YXRlLmtleSwgYXBwRXZlbnRzXSk7XG4gIGNvbnN0IGRlYm91bmNlZE1vdXNlTW92ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZGVib3VuY2Uoc2V0UGFuZWxBdHRlbnRpb24sIDEwMCwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogZmFsc2UgfSksXG4gICAgW3NldFBhbmVsQXR0ZW50aW9uXVxuICApO1xuXG4gIGNvbnN0IHBsdWdpbiA9IG1vZGVsLmdldFBsdWdpbigpO1xuXG4gIGNvbnN0IHsgZHJhZ0NsYXNzLCBkcmFnQ2xhc3NDYW5jZWwgfSA9IGdldERyYWdDbGFzc2VzKG1vZGVsKTtcbiAgY29uc3QgZGF0YU9iamVjdCA9IHNjZW5lR3JhcGguZ2V0RGF0YShtb2RlbCk7XG5cbiAgY29uc3QgcmF3RGF0YSA9IGRhdGFPYmplY3QudXNlU3RhdGUoKTtcbiAgY29uc3QgZGF0YVdpdGhTZXJpZXNMaW1pdCA9IHVzZURhdGFXaXRoU2VyaWVzTGltaXQocmF3RGF0YS5kYXRhLCBzZXJpZXNMaW1pdCwgc2VyaWVzTGltaXRTaG93QWxsKTtcbiAgY29uc3QgZGF0YVdpdGhGaWVsZENvbmZpZyA9IG1vZGVsLmFwcGx5RmllbGRDb25maWcoZGF0YVdpdGhTZXJpZXNMaW1pdCk7XG4gIGNvbnN0IHNjZW5lVGltZVJhbmdlID0gc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UobW9kZWwpO1xuICBjb25zdCB0aW1lWm9uZSA9IHNjZW5lVGltZVJhbmdlLmdldFRpbWVab25lKCk7XG4gIGNvbnN0IHRpbWVSYW5nZSA9IG1vZGVsLmdldFRpbWVSYW5nZShkYXRhV2l0aEZpZWxkQ29uZmlnKTtcblxuICAvLyBJbnRlcnBvbGF0ZSB0aXRsZVxuICBjb25zdCB0aXRsZUludGVycG9sYXRlZCA9IG1vZGVsLmludGVycG9sYXRlKHRpdGxlLCB1bmRlZmluZWQsICd0ZXh0Jyk7XG5cbiAgY29uc3QgYWxlcnRTdGF0ZVN0eWxlcyA9IHVzZVN0eWxlczIoZ2V0QWxlcnRTdGF0ZVN0eWxlcyk7XG5cbiAgaWYgKCFwbHVnaW4pIHtcbiAgICByZXR1cm4gPGRpdj5Mb2FkaW5nIHBsdWdpbiBwYW5lbC4uLjwvZGl2PjtcbiAgfVxuXG4gIGlmICghcGx1Z2luLnBhbmVsKSB7XG4gICAgcmV0dXJuIDxkaXY+UGFuZWwgcGx1Z2luIGhhcyBubyBwYW5lbCBjb21wb25lbnQ8L2Rpdj47XG4gIH1cblxuICBjb25zdCBQYW5lbENvbXBvbmVudCA9IHBsdWdpbi5wYW5lbDtcblxuICAvLyBJZiB3ZSBoYXZlIGEgcXVlcnkgcnVubmVyIG9uIG91ciBsZXZlbCBpbmZvcm0gaXQgb2YgdGhlIGNvbnRhaW5lciB3aWR0aCAodXNlZCB0byBzZXQgYXV0byBtYXggZGF0YSBwb2ludHMpXG4gIGlmIChkYXRhT2JqZWN0ICYmIGRhdGFPYmplY3Quc2V0Q29udGFpbmVyV2lkdGgpIHtcbiAgICBkYXRhT2JqZWN0LnNldENvbnRhaW5lcldpZHRoKE1hdGgucm91bmQod2lkdGgpKTtcbiAgfVxuXG4gIGxldCB0aXRsZUl0ZW1zRWxlbWVudDogUmVhY3QuUmVhY3ROb2RlW10gPSBbXTtcblxuICBpZiAodGl0bGVJdGVtcykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRpdGxlSXRlbXMpKSB7XG4gICAgICB0aXRsZUl0ZW1zRWxlbWVudCA9IHRpdGxlSXRlbXNFbGVtZW50LmNvbmNhdChcbiAgICAgICAgdGl0bGVJdGVtcy5tYXAoKHRpdGxlSXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiA8dGl0bGVJdGVtLkNvbXBvbmVudCBtb2RlbD17dGl0bGVJdGVtfSBrZXk9e2Ake3RpdGxlSXRlbS5zdGF0ZS5rZXl9YH0gLz47XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaXNTY2VuZU9iamVjdCh0aXRsZUl0ZW1zKSkge1xuICAgICAgdGl0bGVJdGVtc0VsZW1lbnQucHVzaCg8dGl0bGVJdGVtcy5Db21wb25lbnQgbW9kZWw9e3RpdGxlSXRlbXN9IC8+KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGl0bGVJdGVtc0VsZW1lbnQucHVzaCh0aXRsZUl0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc2VyaWVzTGltaXQpIHtcbiAgICB0aXRsZUl0ZW1zRWxlbWVudC5wdXNoKFxuICAgICAgPFZpelBhbmVsU2VyaWVzTGltaXRcbiAgICAgICAga2V5PVwic2VyaWVzLWxpbWl0XCJcbiAgICAgICAgZGF0YT17cmF3RGF0YS5kYXRhfVxuICAgICAgICBzZXJpZXNMaW1pdD17c2VyaWVzTGltaXR9XG4gICAgICAgIHNob3dBbGw9e3Nlcmllc0xpbWl0U2hvd0FsbH1cbiAgICAgICAgb25TaG93QWxsU2VyaWVzPXsoKSA9PiBtb2RlbC5zZXRTdGF0ZSh7IHNlcmllc0xpbWl0U2hvd0FsbDogIXNlcmllc0xpbWl0U2hvd0FsbCB9KX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIC8vIElmIHdlIGhhdmUgbG9jYWwgdGltZSByYW5nZSBzaG93IHRoYXQgaW4gcGFuZWwgaGVhZGVyXG4gIGlmIChtb2RlbC5zdGF0ZS4kdGltZVJhbmdlKSB7XG4gICAgdGl0bGVJdGVtc0VsZW1lbnQucHVzaCg8bW9kZWwuc3RhdGUuJHRpbWVSYW5nZS5Db21wb25lbnQgbW9kZWw9e21vZGVsLnN0YXRlLiR0aW1lUmFuZ2V9IGtleT17bW9kZWwuc3RhdGUua2V5fSAvPik7XG4gIH1cblxuICBpZiAoZGF0YVdpdGhGaWVsZENvbmZpZy5hbGVydFN0YXRlKSB7XG4gICAgdGl0bGVJdGVtc0VsZW1lbnQucHVzaChcbiAgICAgIDxUb29sdGlwIGNvbnRlbnQ9e2RhdGFXaXRoRmllbGRDb25maWcuYWxlcnRTdGF0ZS5zdGF0ZSA/PyAndW5rbm93bid9IGtleT17YGFsZXJ0LXN0YXRlcy1pY29uLSR7bW9kZWwuc3RhdGUua2V5fWB9PlxuICAgICAgICA8UGFuZWxDaHJvbWUuVGl0bGVJdGVtXG4gICAgICAgICAgY2xhc3NOYW1lPXtjeCh7XG4gICAgICAgICAgICBbYWxlcnRTdGF0ZVN0eWxlcy5va106IGRhdGFXaXRoRmllbGRDb25maWcuYWxlcnRTdGF0ZS5zdGF0ZSA9PT0gQWxlcnRTdGF0ZS5PSyxcbiAgICAgICAgICAgIFthbGVydFN0YXRlU3R5bGVzLnBlbmRpbmddOiBkYXRhV2l0aEZpZWxkQ29uZmlnLmFsZXJ0U3RhdGUuc3RhdGUgPT09IEFsZXJ0U3RhdGUuUGVuZGluZyxcbiAgICAgICAgICAgIFthbGVydFN0YXRlU3R5bGVzLmFsZXJ0aW5nXTogZGF0YVdpdGhGaWVsZENvbmZpZy5hbGVydFN0YXRlLnN0YXRlID09PSBBbGVydFN0YXRlLkFsZXJ0aW5nLFxuICAgICAgICAgIH0pfVxuICAgICAgICA+XG4gICAgICAgICAgPEljb25cbiAgICAgICAgICAgIG5hbWU9e2RhdGFXaXRoRmllbGRDb25maWcuYWxlcnRTdGF0ZS5zdGF0ZSA9PT0gJ2FsZXJ0aW5nJyA/ICdoZWFydC1icmVhaycgOiAnaGVhcnQnfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicGFuZWwtYWxlcnQtaWNvblwiXG4gICAgICAgICAgICBzaXplPVwibWRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvUGFuZWxDaHJvbWUuVGl0bGVJdGVtPlxuICAgICAgPC9Ub29sdGlwPlxuICAgICk7XG4gIH1cblxuICBsZXQgcGFuZWxNZW51O1xuICBpZiAobWVudSkge1xuICAgIHBhbmVsTWVudSA9IDxtZW51LkNvbXBvbmVudCBtb2RlbD17bWVudX0gLz47XG4gIH1cblxuICBsZXQgYWN0aW9uc0VsZW1lbnQ6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZDtcblxuICBpZiAoaGVhZGVyQWN0aW9ucykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGhlYWRlckFjdGlvbnMpKSB7XG4gICAgICBhY3Rpb25zRWxlbWVudCA9IChcbiAgICAgICAgPD5cbiAgICAgICAgICB7aGVhZGVyQWN0aW9ucy5tYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxhY3Rpb24uQ29tcG9uZW50IG1vZGVsPXthY3Rpb259IGtleT17YCR7YWN0aW9uLnN0YXRlLmtleX1gfSAvPjtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaXNTY2VuZU9iamVjdChoZWFkZXJBY3Rpb25zKSkge1xuICAgICAgYWN0aW9uc0VsZW1lbnQgPSA8aGVhZGVyQWN0aW9ucy5Db21wb25lbnQgbW9kZWw9e2hlYWRlckFjdGlvbnN9IC8+O1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb25zRWxlbWVudCA9IGhlYWRlckFjdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgLy8gRGF0YSBpcyBhbHdheXMgcmV0dXJuZWQuIEZvciBub24tZGF0YSBwYW5lbHMsIGVtcHR5IFBhbmVsRGF0YSBpcyByZXR1cm5lZC5cbiAgY29uc3QgZGF0YSA9IGRhdGFXaXRoRmllbGRDb25maWchO1xuXG4gIGNvbnN0IGlzUmVhZHlUb1JlbmRlciA9IGRhdGFPYmplY3QuaXNEYXRhUmVhZHlUb0Rpc3BsYXkgPyBkYXRhT2JqZWN0LmlzRGF0YVJlYWR5VG9EaXNwbGF5KCkgOiB0cnVlO1xuXG4gIGNvbnN0IGNvbnRleHQgPSBtb2RlbC5nZXRQYW5lbENvbnRleHQoKTtcbiAgY29uc3QgcGFuZWxJZCA9IG1vZGVsLmdldExlZ2FjeVBhbmVsSWQoKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtyZWxhdGl2ZVdyYXBwZXJ9PlxuICAgICAgPGRpdiByZWY9e3JlZiBhcyBSZWZDYWxsYmFjazxIVE1MRGl2RWxlbWVudD59IGNsYXNzTmFtZT17YWJzb2x1dGVXcmFwcGVyfSBkYXRhLXZpei1wYW5lbC1rZXk9e21vZGVsLnN0YXRlLmtleX0+XG4gICAgICAgIHt3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCAmJiAoXG4gICAgICAgICAgPFBhbmVsQ2hyb21lXG4gICAgICAgICAgICB0aXRsZT17dGl0bGVJbnRlcnBvbGF0ZWR9XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb24/LnRyaW0oKSA/IG1vZGVsLmdldERlc2NyaXB0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgbG9hZGluZ1N0YXRlPXtkYXRhLnN0YXRlfVxuICAgICAgICAgICAgc3RhdHVzTWVzc2FnZT17Z2V0Q2hyb21lU3RhdHVzTWVzc2FnZShkYXRhLCBfcGx1Z2luTG9hZEVycm9yKX1cbiAgICAgICAgICAgIHN0YXR1c01lc3NhZ2VPbkNsaWNrPXttb2RlbC5vblN0YXR1c01lc3NhZ2VDbGlja31cbiAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgICAgICAgZGlzcGxheU1vZGU9e2Rpc3BsYXlNb2RlfVxuICAgICAgICAgICAgLy9AdHMtZXhwZWN0LWVycm9yIFJlbW92ZSB3aGVuIDExLjQgaXMgcmVsZWFzZWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFmYW5hL2dyYWZhbmEvcHVsbC85Njg2OFxuICAgICAgICAgICAgc2hvd01lbnVBbHdheXM9e3Nob3dNZW51QWx3YXlzfVxuICAgICAgICAgICAgaG92ZXJIZWFkZXI9e2hvdmVySGVhZGVyfVxuICAgICAgICAgICAgaG92ZXJIZWFkZXJPZmZzZXQ9e2hvdmVySGVhZGVyT2Zmc2V0fVxuICAgICAgICAgICAgdGl0bGVJdGVtcz17dGl0bGVJdGVtc0VsZW1lbnR9XG4gICAgICAgICAgICBkcmFnQ2xhc3M9e2RyYWdDbGFzc31cbiAgICAgICAgICAgIGFjdGlvbnM9e2FjdGlvbnNFbGVtZW50fVxuICAgICAgICAgICAgZHJhZ0NsYXNzQ2FuY2VsPXtkcmFnQ2xhc3NDYW5jZWx9XG4gICAgICAgICAgICBwYWRkaW5nPXtwbHVnaW4ubm9QYWRkaW5nID8gJ25vbmUnIDogJ21kJ31cbiAgICAgICAgICAgIG1lbnU9e3BhbmVsTWVudX1cbiAgICAgICAgICAgIG9uQ2FuY2VsUXVlcnk9e21vZGVsLm9uQ2FuY2VsUXVlcnl9XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBvbkZvY3VzPXtzZXRQYW5lbEF0dGVudGlvbn1cbiAgICAgICAgICAgIG9uTW91c2VFbnRlcj17c2V0UGFuZWxBdHRlbnRpb259XG4gICAgICAgICAgICBvbk1vdXNlTW92ZT17ZGVib3VuY2VkTW91c2VNb3ZlfVxuICAgICAgICAgICAgY29sbGFwc2libGU9e2NvbGxhcHNpYmxlfVxuICAgICAgICAgICAgY29sbGFwc2VkPXtjb2xsYXBzZWR9XG4gICAgICAgICAgICBvblRvZ2dsZUNvbGxhcHNlPXttb2RlbC5vblRvZ2dsZUNvbGxhcHNlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsoaW5uZXJXaWR0aCwgaW5uZXJIZWlnaHQpID0+IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RXJyb3JCb3VuZGFyeUFsZXJ0IGRlcGVuZGVuY2llcz17W3BsdWdpbiwgZGF0YV19PlxuICAgICAgICAgICAgICAgICAgPFBsdWdpbkNvbnRleHRQcm92aWRlciBtZXRhPXtwbHVnaW4ubWV0YX0+XG4gICAgICAgICAgICAgICAgICAgIDxQYW5lbENvbnRleHRQcm92aWRlciB2YWx1ZT17Y29udGV4dH0+XG4gICAgICAgICAgICAgICAgICAgICAge2lzUmVhZHlUb1JlbmRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGFuZWxDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e3BhbmVsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZVJhbmdlPXt0aW1lUmFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVab25lPXt0aW1lWm9uZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRDb25maWc9e2ZpZWxkQ29uZmlnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb3VudGVyPXtfcmVuZGVyQ291bnRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZVZhcmlhYmxlcz17bW9kZWwuaW50ZXJwb2xhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uT3B0aW9uc0NoYW5nZT17bW9kZWwub25PcHRpb25zQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZpZWxkQ29uZmlnQ2hhbmdlPXttb2RlbC5vbkZpZWxkQ29uZmlnQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVRpbWVSYW5nZT17bW9kZWwub25UaW1lUmFuZ2VDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QnVzPXtjb250ZXh0LmV2ZW50QnVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L1BhbmVsQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPC9QbHVnaW5Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5QWxlcnQ+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1BhbmVsQ2hyb21lPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIHVzZURhdGFXaXRoU2VyaWVzTGltaXQoZGF0YTogUGFuZWxEYXRhIHwgdW5kZWZpbmVkLCBzZXJpZXNMaW1pdD86IG51bWJlciwgc2hvd0FsbFNlcmllcz86IGJvb2xlYW4pIHtcbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghZGF0YT8uc2VyaWVzIHx8ICFzZXJpZXNMaW1pdCB8fCBzaG93QWxsU2VyaWVzKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZGF0YSxcbiAgICAgIHNlcmllczogZGF0YS5zZXJpZXMuc2xpY2UoMCwgc2VyaWVzTGltaXQpLFxuICAgIH07XG4gIH0sIFtkYXRhLCBzZXJpZXNMaW1pdCwgc2hvd0FsbFNlcmllc10pO1xufVxuXG5mdW5jdGlvbiBnZXREcmFnQ2xhc3NlcyhwYW5lbDogVml6UGFuZWwpIHtcbiAgY29uc3QgcGFyZW50TGF5b3V0ID0gc2NlbmVHcmFwaC5nZXRMYXlvdXQocGFuZWwpO1xuICBjb25zdCBpc0RyYWdnYWJsZSA9IHBhcmVudExheW91dD8uaXNEcmFnZ2FibGUoKTtcblxuICBpZiAoIXBhcmVudExheW91dCB8fCAhaXNEcmFnZ2FibGUgfHwgaXRlbURyYWdnaW5nRGlzYWJsZWQocGFuZWwsIHBhcmVudExheW91dCkpIHtcbiAgICByZXR1cm4geyBkcmFnQ2xhc3M6ICcnLCBkcmFnQ2xhc3NDYW5jZWw6ICcnIH07XG4gIH1cblxuICByZXR1cm4geyBkcmFnQ2xhc3M6IHBhcmVudExheW91dC5nZXREcmFnQ2xhc3M/LigpLCBkcmFnQ2xhc3NDYW5jZWw6IHBhcmVudExheW91dD8uZ2V0RHJhZ0NsYXNzQ2FuY2VsPy4oKSB9O1xufVxuXG4vKipcbiAqIFdhbGtzIHVwIHRoZSBwYXJlbnQgY2hhaW4gdW50aWwgaXQgaGl0cyB0aGUgbGF5b3V0IG9iamVjdCwgdHJ5aW5nIHRvIGZpbmQgdGhlIGNsb3Nlc3QgU2NlbmVHcmlkSXRlbUxpa2UgYW5jZXN0b3IuXG4gKiBJdCBpcyBub3QgYWx3YXlzIHRoZSBkaXJlY3QgcGFyZW50LCBiZWNhdXNlIHRoZSBWaXpQYW5lbCBjYW4gYmUgd3JhcHBlZCBpbiBvdGhlciBvYmplY3RzLlxuICovXG5mdW5jdGlvbiBpdGVtRHJhZ2dpbmdEaXNhYmxlZChpdGVtOiBTY2VuZU9iamVjdCwgbGF5b3V0OiBTY2VuZUxheW91dCkge1xuICBsZXQgYW5jZXN0b3IgPSBpdGVtLnBhcmVudDtcblxuICB3aGlsZSAoYW5jZXN0b3IgJiYgYW5jZXN0b3IgIT09IGxheW91dCkge1xuICAgIGlmICgnaXNEcmFnZ2FibGUnIGluIGFuY2VzdG9yLnN0YXRlICYmIGFuY2VzdG9yLnN0YXRlLmlzRHJhZ2dhYmxlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnQ7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldENocm9tZVN0YXR1c01lc3NhZ2UoZGF0YTogUGFuZWxEYXRhLCBwbHVnaW5Mb2FkaW5nRXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICBpZiAocGx1Z2luTG9hZGluZ0Vycm9yKSB7XG4gICAgcmV0dXJuIHBsdWdpbkxvYWRpbmdFcnJvcjtcbiAgfVxuXG4gIGxldCBtZXNzYWdlID0gZGF0YS5lcnJvciA/IGRhdGEuZXJyb3IubWVzc2FnZSA6IHVuZGVmaW5lZDtcblxuICAvLyBIYW5kbGluZyBtdWx0aXBsZSBlcnJvcnMgd2l0aCBhIHNpbmdsZSBzdHJpbmcgdW50aWwgd2UgaW50ZWdyYXRlIFZpelBhbmVsIHdpdGggaW5zcGVjdG9yXG4gIGlmIChkYXRhLmVycm9ycykge1xuICAgIG1lc3NhZ2UgPSBkYXRhLmVycm9ycy5tYXAoKGUpID0+IGUubWVzc2FnZSkuam9pbignLCAnKTtcbiAgfVxuICByZXR1cm4gbWVzc2FnZTtcbn1cblxuY29uc3QgcmVsYXRpdmVXcmFwcGVyID0gY3NzKHtcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlaWdodDogJzEwMCUnLFxufSk7XG5cbi8qKlxuICogU2FkbHkgdGhpcyB0aGlzIGFic29sdXRlIHdyYXBwZXIgaXMgbmVlZGVkIGZvciB0aGUgcGFuZWwgdG8gYWRvcHQgc21hbGxlciBzaXplcy5cbiAqIFRoZSBjb21ibyBvZiB1c2VNZWFzdXJlIGFuZCBQYW5lbENocm9tZSBtYWtlcyB0aGUgcGFuZWwgdGFrZSB1cCB0aGUgd2lkdGggaXQgZ2V0J3MgYnV0IHRoYXQgbWFrZXMgaXQgaW1wb3NzaWJsZSB0b1xuICogVGhlbiBhZGFwdCB0byBzbWFsbGVyIHNwYWNlIChzYXkgcmVzaXppbmcgdGhlIGJyb3dzZXIgd2luZG93IG9yIHVuZG9ja2luZyBtZW51KS5cbiAqL1xuY29uc3QgYWJzb2x1dGVXcmFwcGVyID0gY3NzKHtcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlaWdodDogJzEwMCUnLFxufSk7XG5cbmNvbnN0IGdldEFsZXJ0U3RhdGVTdHlsZXMgPSAodGhlbWU6IEdyYWZhbmFUaGVtZTIpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBvazogY3NzKHtcbiAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuc3VjY2Vzcy50ZXh0LFxuICAgIH0pLFxuICAgIHBlbmRpbmc6IGNzcyh7XG4gICAgICBjb2xvcjogdGhlbWUuY29sb3JzLndhcm5pbmcudGV4dCxcbiAgICB9KSxcbiAgICBhbGVydGluZzogY3NzKHtcbiAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuZXJyb3IudGV4dCxcbiAgICB9KSxcbiAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJnQixTQUFBLGdCQUFBLENBQWlCLEVBQUUsS0FBQSxFQUF3QyxFQUFBO0FBakIzRSxFQUFBLElBQUEsRUFBQSxDQUFBO0FBa0JFLEVBQU0sTUFBQTtBQUFBLElBQ0osS0FBQTtBQUFBLElBQ0EsT0FBQTtBQUFBLElBQ0EsV0FBQTtBQUFBLElBQ0EsZ0JBQUE7QUFBQSxJQUNBLFdBQUE7QUFBQSxJQUNBLFdBQUE7QUFBQSxJQUNBLGNBQUE7QUFBQSxJQUNBLGlCQUFBO0FBQUEsSUFDQSxJQUFBO0FBQUEsSUFDQSxhQUFBO0FBQUEsSUFDQSxVQUFBO0FBQUEsSUFDQSxXQUFBO0FBQUEsSUFDQSxrQkFBQTtBQUFBLElBQ0EsV0FBQTtBQUFBLElBQ0EsV0FBQTtBQUFBLElBQ0EsU0FBQTtBQUFBLElBQ0EsY0FBaUIsR0FBQSxDQUFBO0FBQUEsR0FDbkIsR0FBSSxNQUFNLFFBQVMsRUFBQSxDQUFBO0FBQ25CLEVBQUEsTUFBTSxDQUFDLEdBQUssRUFBQSxFQUFFLE9BQU8sTUFBTyxFQUFDLElBQUksVUFBVyxFQUFBLENBQUE7QUFDNUMsRUFBQSxNQUFNLFlBQVksT0FBUSxDQUFBLE1BQU0sWUFBYSxFQUFBLEVBQUcsRUFBRSxDQUFBLENBQUE7QUFFbEQsRUFBTSxNQUFBLGlCQUFBLEdBQW9CLFlBQVksTUFBTTtBQUMxQyxJQUFJLElBQUEsS0FBQSxDQUFNLE1BQU0sR0FBSyxFQUFBO0FBQ25CLE1BQVUsU0FBQSxDQUFBLE9BQUEsQ0FBUSxJQUFJLHNCQUF1QixDQUFBLEVBQUUsU0FBUyxLQUFNLENBQUEsS0FBQSxDQUFNLEdBQUksRUFBQyxDQUFDLENBQUEsQ0FBQTtBQUFBLEtBQzVFO0FBQUEsS0FDQyxDQUFDLEtBQUEsQ0FBTSxLQUFNLENBQUEsR0FBQSxFQUFLLFNBQVMsQ0FBQyxDQUFBLENBQUE7QUFDL0IsRUFBQSxNQUFNLGtCQUFxQixHQUFBLE9BQUE7QUFBQSxJQUN6QixNQUFNLFNBQVMsaUJBQW1CLEVBQUEsR0FBQSxFQUFLLEVBQUUsT0FBUyxFQUFBLElBQUEsRUFBTSxRQUFVLEVBQUEsS0FBQSxFQUFPLENBQUE7QUFBQSxJQUN6RSxDQUFDLGlCQUFpQixDQUFBO0FBQUEsR0FDcEIsQ0FBQTtBQUVBLEVBQU0sTUFBQSxNQUFBLEdBQVMsTUFBTSxTQUFVLEVBQUEsQ0FBQTtBQUUvQixFQUFBLE1BQU0sRUFBRSxTQUFBLEVBQVcsZUFBZ0IsRUFBQSxHQUFJLGVBQWUsS0FBSyxDQUFBLENBQUE7QUFDM0QsRUFBTSxNQUFBLFVBQUEsR0FBYSxVQUFXLENBQUEsT0FBQSxDQUFRLEtBQUssQ0FBQSxDQUFBO0FBRTNDLEVBQU0sTUFBQSxPQUFBLEdBQVUsV0FBVyxRQUFTLEVBQUEsQ0FBQTtBQUNwQyxFQUFBLE1BQU0sbUJBQXNCLEdBQUEsc0JBQUEsQ0FBdUIsT0FBUSxDQUFBLElBQUEsRUFBTSxhQUFhLGtCQUFrQixDQUFBLENBQUE7QUFDaEcsRUFBTSxNQUFBLG1CQUFBLEdBQXNCLEtBQU0sQ0FBQSxnQkFBQSxDQUFpQixtQkFBbUIsQ0FBQSxDQUFBO0FBQ3RFLEVBQU0sTUFBQSxjQUFBLEdBQWlCLFVBQVcsQ0FBQSxZQUFBLENBQWEsS0FBSyxDQUFBLENBQUE7QUFDcEQsRUFBTSxNQUFBLFFBQUEsR0FBVyxlQUFlLFdBQVksRUFBQSxDQUFBO0FBQzVDLEVBQU0sTUFBQSxTQUFBLEdBQVksS0FBTSxDQUFBLFlBQUEsQ0FBYSxtQkFBbUIsQ0FBQSxDQUFBO0FBR3hELEVBQUEsTUFBTSxpQkFBb0IsR0FBQSxLQUFBLENBQU0sV0FBWSxDQUFBLEtBQUEsRUFBTyxRQUFXLE1BQU0sQ0FBQSxDQUFBO0FBRXBFLEVBQU0sTUFBQSxnQkFBQSxHQUFtQixXQUFXLG1CQUFtQixDQUFBLENBQUE7QUFFdkQsRUFBQSxJQUFJLENBQUMsTUFBUSxFQUFBO0FBQ1gsSUFBTyx1QkFBQSxLQUFBLENBQUEsYUFBQSxDQUFDLGFBQUkseUJBQXVCLENBQUEsQ0FBQTtBQUFBLEdBQ3JDO0FBRUEsRUFBSSxJQUFBLENBQUMsT0FBTyxLQUFPLEVBQUE7QUFDakIsSUFBTyx1QkFBQSxLQUFBLENBQUEsYUFBQSxDQUFDLGFBQUkscUNBQW1DLENBQUEsQ0FBQTtBQUFBLEdBQ2pEO0FBRUEsRUFBQSxNQUFNLGlCQUFpQixNQUFPLENBQUEsS0FBQSxDQUFBO0FBRzlCLEVBQUksSUFBQSxVQUFBLElBQWMsV0FBVyxpQkFBbUIsRUFBQTtBQUM5QyxJQUFBLFVBQUEsQ0FBVyxpQkFBa0IsQ0FBQSxJQUFBLENBQUssS0FBTSxDQUFBLEtBQUssQ0FBQyxDQUFBLENBQUE7QUFBQSxHQUNoRDtBQUVBLEVBQUEsSUFBSSxvQkFBdUMsRUFBQyxDQUFBO0FBRTVDLEVBQUEsSUFBSSxVQUFZLEVBQUE7QUFDZCxJQUFJLElBQUEsS0FBQSxDQUFNLE9BQVEsQ0FBQSxVQUFVLENBQUcsRUFBQTtBQUM3QixNQUFBLGlCQUFBLEdBQW9CLGlCQUFrQixDQUFBLE1BQUE7QUFBQSxRQUNwQyxVQUFBLENBQVcsR0FBSSxDQUFBLENBQUMsU0FBYyxLQUFBO0FBQzVCLFVBQU8sdUJBQUEsS0FBQSxDQUFBLGFBQUEsQ0FBQyxVQUFVLFNBQVYsRUFBQTtBQUFBLFlBQW9CLEtBQU8sRUFBQSxTQUFBO0FBQUEsWUFBVyxHQUFBLEVBQUssQ0FBRyxFQUFBLFNBQUEsQ0FBVSxLQUFNLENBQUEsR0FBQSxDQUFBLENBQUE7QUFBQSxXQUFPLENBQUEsQ0FBQTtBQUFBLFNBQzlFLENBQUE7QUFBQSxPQUNILENBQUE7QUFBQSxLQUNGLE1BQUEsSUFBVyxhQUFjLENBQUEsVUFBVSxDQUFHLEVBQUE7QUFDcEMsTUFBa0IsaUJBQUEsQ0FBQSxJQUFBLGlCQUFNLEtBQUEsQ0FBQSxhQUFBLENBQUEsVUFBQSxDQUFXLFNBQVgsRUFBQTtBQUFBLFFBQXFCLEtBQU8sRUFBQSxVQUFBO0FBQUEsT0FBWSxDQUFFLENBQUEsQ0FBQTtBQUFBLEtBQzdELE1BQUE7QUFDTCxNQUFBLGlCQUFBLENBQWtCLEtBQUssVUFBVSxDQUFBLENBQUE7QUFBQSxLQUNuQztBQUFBLEdBQ0Y7QUFFQSxFQUFBLElBQUksV0FBYSxFQUFBO0FBQ2YsSUFBa0IsaUJBQUEsQ0FBQSxJQUFBO0FBQUEsc0JBQ2YsS0FBQSxDQUFBLGFBQUEsQ0FBQSxtQkFBQSxFQUFBO0FBQUEsUUFDQyxHQUFJLEVBQUEsY0FBQTtBQUFBLFFBQ0osTUFBTSxPQUFRLENBQUEsSUFBQTtBQUFBLFFBQ2QsV0FBQTtBQUFBLFFBQ0EsT0FBUyxFQUFBLGtCQUFBO0FBQUEsUUFDVCxlQUFBLEVBQWlCLE1BQU0sS0FBTSxDQUFBLFFBQUEsQ0FBUyxFQUFFLGtCQUFvQixFQUFBLENBQUMsb0JBQW9CLENBQUE7QUFBQSxPQUNuRixDQUFBO0FBQUEsS0FDRixDQUFBO0FBQUEsR0FDRjtBQUdBLEVBQUksSUFBQSxLQUFBLENBQU0sTUFBTSxVQUFZLEVBQUE7QUFDMUIsSUFBQSxpQkFBQSxDQUFrQixJQUFLLGlCQUFBLEtBQUEsQ0FBQSxhQUFBLENBQUMsS0FBTSxDQUFBLEtBQUEsQ0FBTSxXQUFXLFNBQXZCLEVBQUE7QUFBQSxNQUFpQyxLQUFBLEVBQU8sTUFBTSxLQUFNLENBQUEsVUFBQTtBQUFBLE1BQVksR0FBQSxFQUFLLE1BQU0sS0FBTSxDQUFBLEdBQUE7QUFBQSxLQUFLLENBQUUsQ0FBQSxDQUFBO0FBQUEsR0FDbEg7QUFFQSxFQUFBLElBQUksb0JBQW9CLFVBQVksRUFBQTtBQUNsQyxJQUFrQixpQkFBQSxDQUFBLElBQUE7QUFBQSxzQkFDZixLQUFBLENBQUEsYUFBQSxDQUFBLE9BQUEsRUFBQTtBQUFBLFFBQVEsT0FBUyxFQUFBLENBQUEsRUFBQSxHQUFBLG1CQUFBLENBQW9CLFVBQVcsQ0FBQSxLQUFBLEtBQS9CLElBQXdDLEdBQUEsRUFBQSxHQUFBLFNBQUE7QUFBQSxRQUFXLEdBQUEsRUFBSyxDQUFxQixrQkFBQSxFQUFBLEtBQUEsQ0FBTSxLQUFNLENBQUEsR0FBQSxDQUFBLENBQUE7QUFBQSxPQUN6RyxrQkFBQSxLQUFBLENBQUEsYUFBQSxDQUFDLFlBQVksU0FBWixFQUFBO0FBQUEsUUFDQyxXQUFXLEVBQUcsQ0FBQTtBQUFBLFVBQ1osQ0FBQyxnQkFBaUIsQ0FBQSxFQUFBLEdBQUssbUJBQW9CLENBQUEsVUFBQSxDQUFXLFVBQVUsVUFBVyxDQUFBLEVBQUE7QUFBQSxVQUMzRSxDQUFDLGdCQUFpQixDQUFBLE9BQUEsR0FBVSxtQkFBb0IsQ0FBQSxVQUFBLENBQVcsVUFBVSxVQUFXLENBQUEsT0FBQTtBQUFBLFVBQ2hGLENBQUMsZ0JBQWlCLENBQUEsUUFBQSxHQUFXLG1CQUFvQixDQUFBLFVBQUEsQ0FBVyxVQUFVLFVBQVcsQ0FBQSxRQUFBO0FBQUEsU0FDbEYsQ0FBQTtBQUFBLE9BQUEsa0JBRUEsS0FBQSxDQUFBLGFBQUEsQ0FBQSxJQUFBLEVBQUE7QUFBQSxRQUNDLElBQU0sRUFBQSxtQkFBQSxDQUFvQixVQUFXLENBQUEsS0FBQSxLQUFVLGFBQWEsYUFBZ0IsR0FBQSxPQUFBO0FBQUEsUUFDNUUsU0FBVSxFQUFBLGtCQUFBO0FBQUEsUUFDVixJQUFLLEVBQUEsSUFBQTtBQUFBLE9BQ1AsQ0FDRixDQUNGLENBQUE7QUFBQSxLQUNGLENBQUE7QUFBQSxHQUNGO0FBRUEsRUFBSSxJQUFBLFNBQUEsQ0FBQTtBQUNKLEVBQUEsSUFBSSxJQUFNLEVBQUE7QUFDUixJQUFZLFNBQUEsbUJBQUEsS0FBQSxDQUFBLGFBQUEsQ0FBQyxLQUFLLFNBQUwsRUFBQTtBQUFBLE1BQWUsS0FBTyxFQUFBLElBQUE7QUFBQSxLQUFNLENBQUEsQ0FBQTtBQUFBLEdBQzNDO0FBRUEsRUFBSSxJQUFBLGNBQUEsQ0FBQTtBQUVKLEVBQUEsSUFBSSxhQUFlLEVBQUE7QUFDakIsSUFBSSxJQUFBLEtBQUEsQ0FBTSxPQUFRLENBQUEsYUFBYSxDQUFHLEVBQUE7QUFDaEMsTUFBQSxjQUFBLG1CQUVLLEtBQUEsQ0FBQSxhQUFBLENBQUEsS0FBQSxDQUFBLFFBQUEsRUFBQSxJQUFBLEVBQUEsYUFBQSxDQUFjLEdBQUksQ0FBQSxDQUFDLE1BQVcsS0FBQTtBQUM3QixRQUFPLHVCQUFBLEtBQUEsQ0FBQSxhQUFBLENBQUMsT0FBTyxTQUFQLEVBQUE7QUFBQSxVQUFpQixLQUFPLEVBQUEsTUFBQTtBQUFBLFVBQVEsR0FBQSxFQUFLLENBQUcsRUFBQSxNQUFBLENBQU8sS0FBTSxDQUFBLEdBQUEsQ0FBQSxDQUFBO0FBQUEsU0FBTyxDQUFBLENBQUE7QUFBQSxPQUNyRSxDQUNILENBQUEsQ0FBQTtBQUFBLEtBRUosTUFBQSxJQUFXLGFBQWMsQ0FBQSxhQUFhLENBQUcsRUFBQTtBQUN2QyxNQUFpQixjQUFBLG1CQUFBLEtBQUEsQ0FBQSxhQUFBLENBQUMsY0FBYyxTQUFkLEVBQUE7QUFBQSxRQUF3QixLQUFPLEVBQUEsYUFBQTtBQUFBLE9BQWUsQ0FBQSxDQUFBO0FBQUEsS0FDM0QsTUFBQTtBQUNMLE1BQWlCLGNBQUEsR0FBQSxhQUFBLENBQUE7QUFBQSxLQUNuQjtBQUFBLEdBQ0Y7QUFHQSxFQUFBLE1BQU0sSUFBTyxHQUFBLG1CQUFBLENBQUE7QUFFYixFQUFBLE1BQU0sZUFBa0IsR0FBQSxVQUFBLENBQVcsb0JBQXVCLEdBQUEsVUFBQSxDQUFXLHNCQUF5QixHQUFBLElBQUEsQ0FBQTtBQUU5RixFQUFNLE1BQUEsT0FBQSxHQUFVLE1BQU0sZUFBZ0IsRUFBQSxDQUFBO0FBQ3RDLEVBQU0sTUFBQSxPQUFBLEdBQVUsTUFBTSxnQkFBaUIsRUFBQSxDQUFBO0FBRXZDLEVBQUEsdUJBQ0csS0FBQSxDQUFBLGFBQUEsQ0FBQSxLQUFBLEVBQUE7QUFBQSxJQUFJLFNBQVcsRUFBQSxlQUFBO0FBQUEsR0FBQSxrQkFDYixLQUFBLENBQUEsYUFBQSxDQUFBLEtBQUEsRUFBQTtBQUFBLElBQUksR0FBQTtBQUFBLElBQXlDLFNBQVcsRUFBQSxlQUFBO0FBQUEsSUFBaUIsb0JBQUEsRUFBb0IsTUFBTSxLQUFNLENBQUEsR0FBQTtBQUFBLEdBQUEsRUFDdkcsS0FBUSxHQUFBLENBQUEsSUFBSyxNQUFTLEdBQUEsQ0FBQSxvQkFDcEIsS0FBQSxDQUFBLGFBQUEsQ0FBQSxXQUFBLEVBQUE7QUFBQSxJQUNDLEtBQU8sRUFBQSxpQkFBQTtBQUFBLElBQ1AsV0FBYSxFQUFBLENBQUEsV0FBQSxJQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxXQUFBLENBQWEsSUFBUyxFQUFBLElBQUEsS0FBQSxDQUFNLGNBQWlCLEdBQUEsS0FBQSxDQUFBO0FBQUEsSUFDMUQsY0FBYyxJQUFLLENBQUEsS0FBQTtBQUFBLElBQ25CLGFBQUEsRUFBZSxzQkFBdUIsQ0FBQSxJQUFBLEVBQU0sZ0JBQWdCLENBQUE7QUFBQSxJQUM1RCxzQkFBc0IsS0FBTSxDQUFBLG9CQUFBO0FBQUEsSUFDNUIsS0FBQTtBQUFBLElBQ0EsTUFBQTtBQUFBLElBQ0EsV0FBQTtBQUFBLElBRUEsY0FBQTtBQUFBLElBQ0EsV0FBQTtBQUFBLElBQ0EsaUJBQUE7QUFBQSxJQUNBLFVBQVksRUFBQSxpQkFBQTtBQUFBLElBQ1osU0FBQTtBQUFBLElBQ0EsT0FBUyxFQUFBLGNBQUE7QUFBQSxJQUNULGVBQUE7QUFBQSxJQUNBLE9BQUEsRUFBUyxNQUFPLENBQUEsU0FBQSxHQUFZLE1BQVMsR0FBQSxJQUFBO0FBQUEsSUFDckMsSUFBTSxFQUFBLFNBQUE7QUFBQSxJQUNOLGVBQWUsS0FBTSxDQUFBLGFBQUE7QUFBQSxJQUVyQixPQUFTLEVBQUEsaUJBQUE7QUFBQSxJQUNULFlBQWMsRUFBQSxpQkFBQTtBQUFBLElBQ2QsV0FBYSxFQUFBLGtCQUFBO0FBQUEsSUFDYixXQUFBO0FBQUEsSUFDQSxTQUFBO0FBQUEsSUFDQSxrQkFBa0IsS0FBTSxDQUFBLGdCQUFBO0FBQUEsR0FBQSxFQUV2QixDQUFDLFVBQUEsRUFBWSxXQUNaLHFCQUFBLEtBQUEsQ0FBQSxhQUFBLENBQUEsS0FBQSxDQUFBLFFBQUEsRUFBQSxJQUFBLGtCQUNHLEtBQUEsQ0FBQSxhQUFBLENBQUEsa0JBQUEsRUFBQTtBQUFBLElBQW1CLFlBQUEsRUFBYyxDQUFDLE1BQUEsRUFBUSxJQUFJLENBQUE7QUFBQSxHQUFBLGtCQUM1QyxLQUFBLENBQUEsYUFBQSxDQUFBLHFCQUFBLEVBQUE7QUFBQSxJQUFzQixNQUFNLE1BQU8sQ0FBQSxJQUFBO0FBQUEsR0FBQSxrQkFDakMsS0FBQSxDQUFBLGFBQUEsQ0FBQSxvQkFBQSxFQUFBO0FBQUEsSUFBcUIsS0FBTyxFQUFBLE9BQUE7QUFBQSxHQUFBLEVBQzFCLG1DQUNFLEtBQUEsQ0FBQSxhQUFBLENBQUEsY0FBQSxFQUFBO0FBQUEsSUFDQyxFQUFJLEVBQUEsT0FBQTtBQUFBLElBQ0osSUFBQTtBQUFBLElBQ0EsS0FBQTtBQUFBLElBQ0EsU0FBQTtBQUFBLElBQ0EsUUFBQTtBQUFBLElBQ0EsT0FBQTtBQUFBLElBQ0EsV0FBQTtBQUFBLElBQ0EsV0FBYSxFQUFBLEtBQUE7QUFBQSxJQUNiLEtBQU8sRUFBQSxVQUFBO0FBQUEsSUFDUCxNQUFRLEVBQUEsV0FBQTtBQUFBLElBQ1IsYUFBZSxFQUFBLGNBQUE7QUFBQSxJQUNmLGtCQUFrQixLQUFNLENBQUEsV0FBQTtBQUFBLElBQ3hCLGlCQUFpQixLQUFNLENBQUEsZUFBQTtBQUFBLElBQ3ZCLHFCQUFxQixLQUFNLENBQUEsbUJBQUE7QUFBQSxJQUMzQixtQkFBbUIsS0FBTSxDQUFBLGlCQUFBO0FBQUEsSUFDekIsVUFBVSxPQUFRLENBQUEsUUFBQTtBQUFBLEdBQ3BCLENBRUosQ0FDRixDQUNGLENBQ0YsQ0FFSixDQUVKLENBQ0YsQ0FBQSxDQUFBO0FBRUosQ0FBQTtBQUVBLFNBQVMsc0JBQUEsQ0FBdUIsSUFBNkIsRUFBQSxXQUFBLEVBQXNCLGFBQXlCLEVBQUE7QUFDMUcsRUFBQSxPQUFPLFFBQVEsTUFBTTtBQUNuQixJQUFBLElBQUksRUFBQyxJQUFBLElBQUEsSUFBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBLElBQUEsQ0FBTSxNQUFVLENBQUEsSUFBQSxDQUFDLGVBQWUsYUFBZSxFQUFBO0FBQ2xELE1BQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxLQUNUO0FBRUEsSUFBQSxPQUFPLGlDQUNGLElBREUsQ0FBQSxFQUFBO0FBQUEsTUFFTCxNQUFRLEVBQUEsSUFBQSxDQUFLLE1BQU8sQ0FBQSxLQUFBLENBQU0sR0FBRyxXQUFXLENBQUE7QUFBQSxLQUMxQyxDQUFBLENBQUE7QUFBQSxHQUNDLEVBQUEsQ0FBQyxJQUFNLEVBQUEsV0FBQSxFQUFhLGFBQWEsQ0FBQyxDQUFBLENBQUE7QUFDdkMsQ0FBQTtBQUVBLFNBQVMsZUFBZSxLQUFpQixFQUFBO0FBeFB6QyxFQUFBLElBQUEsRUFBQSxFQUFBLEVBQUEsQ0FBQTtBQXlQRSxFQUFNLE1BQUEsWUFBQSxHQUFlLFVBQVcsQ0FBQSxTQUFBLENBQVUsS0FBSyxDQUFBLENBQUE7QUFDL0MsRUFBQSxNQUFNLGNBQWMsWUFBYyxJQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxZQUFBLENBQUEsV0FBQSxFQUFBLENBQUE7QUFFbEMsRUFBQSxJQUFJLENBQUMsWUFBZ0IsSUFBQSxDQUFDLGVBQWUsb0JBQXFCLENBQUEsS0FBQSxFQUFPLFlBQVksQ0FBRyxFQUFBO0FBQzlFLElBQUEsT0FBTyxFQUFFLFNBQUEsRUFBVyxFQUFJLEVBQUEsZUFBQSxFQUFpQixFQUFHLEVBQUEsQ0FBQTtBQUFBLEdBQzlDO0FBRUEsRUFBTyxPQUFBLEVBQUUsWUFBVyxFQUFhLEdBQUEsWUFBQSxDQUFBLFlBQUEsS0FBYix1Q0FBK0IsZUFBaUIsRUFBQSxDQUFBLEVBQUEsR0FBQSxZQUFBLElBQUEsSUFBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBLFlBQUEsQ0FBYyx1QkFBZCxJQUFxQyxHQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQUEsQ0FBQSxJQUFBLENBQUEsWUFBQSxDQUFBLEVBQUEsQ0FBQTtBQUMzRyxDQUFBO0FBTUEsU0FBUyxvQkFBQSxDQUFxQixNQUFtQixNQUFxQixFQUFBO0FBQ3BFLEVBQUEsSUFBSSxXQUFXLElBQUssQ0FBQSxNQUFBLENBQUE7QUFFcEIsRUFBTyxPQUFBLFFBQUEsSUFBWSxhQUFhLE1BQVEsRUFBQTtBQUN0QyxJQUFBLElBQUksaUJBQWlCLFFBQVMsQ0FBQSxLQUFBLElBQVMsUUFBUyxDQUFBLEtBQUEsQ0FBTSxnQkFBZ0IsS0FBTyxFQUFBO0FBQzNFLE1BQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxLQUNUO0FBRUEsSUFBQSxRQUFBLEdBQVcsUUFBUyxDQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQ3RCO0FBRUEsRUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUNULENBQUE7QUFFQSxTQUFTLHNCQUFBLENBQXVCLE1BQWlCLGtCQUF3QyxFQUFBO0FBQ3ZGLEVBQUEsSUFBSSxrQkFBb0IsRUFBQTtBQUN0QixJQUFPLE9BQUEsa0JBQUEsQ0FBQTtBQUFBLEdBQ1Q7QUFFQSxFQUFBLElBQUksT0FBVSxHQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUEsSUFBQSxDQUFLLE1BQU0sT0FBVSxHQUFBLEtBQUEsQ0FBQSxDQUFBO0FBR2hELEVBQUEsSUFBSSxLQUFLLE1BQVEsRUFBQTtBQUNmLElBQVUsT0FBQSxHQUFBLElBQUEsQ0FBSyxPQUFPLEdBQUksQ0FBQSxDQUFDLE1BQU0sQ0FBRSxDQUFBLE9BQU8sQ0FBRSxDQUFBLElBQUEsQ0FBSyxJQUFJLENBQUEsQ0FBQTtBQUFBLEdBQ3ZEO0FBQ0EsRUFBTyxPQUFBLE9BQUEsQ0FBQTtBQUNULENBQUE7QUFFQSxNQUFNLGtCQUFrQixHQUFJLENBQUE7QUFBQSxFQUMxQixRQUFVLEVBQUEsVUFBQTtBQUFBLEVBQ1YsS0FBTyxFQUFBLE1BQUE7QUFBQSxFQUNQLE1BQVEsRUFBQSxNQUFBO0FBQ1YsQ0FBQyxDQUFBLENBQUE7QUFPRCxNQUFNLGtCQUFrQixHQUFJLENBQUE7QUFBQSxFQUMxQixRQUFVLEVBQUEsVUFBQTtBQUFBLEVBQ1YsS0FBTyxFQUFBLE1BQUE7QUFBQSxFQUNQLE1BQVEsRUFBQSxNQUFBO0FBQ1YsQ0FBQyxDQUFBLENBQUE7QUFFRCxNQUFNLG1CQUFBLEdBQXNCLENBQUMsS0FBeUIsS0FBQTtBQUNwRCxFQUFPLE9BQUE7QUFBQSxJQUNMLElBQUksR0FBSSxDQUFBO0FBQUEsTUFDTixLQUFBLEVBQU8sS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLENBQUEsSUFBQTtBQUFBLEtBQzdCLENBQUE7QUFBQSxJQUNELFNBQVMsR0FBSSxDQUFBO0FBQUEsTUFDWCxLQUFBLEVBQU8sS0FBTSxDQUFBLE1BQUEsQ0FBTyxPQUFRLENBQUEsSUFBQTtBQUFBLEtBQzdCLENBQUE7QUFBQSxJQUNELFVBQVUsR0FBSSxDQUFBO0FBQUEsTUFDWixLQUFBLEVBQU8sS0FBTSxDQUFBLE1BQUEsQ0FBTyxLQUFNLENBQUEsSUFBQTtBQUFBLEtBQzNCLENBQUE7QUFBQSxHQUNILENBQUE7QUFDRixDQUFBOzs7OyJ9
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { css } from '@emotion/css';
|
|
2
|
-
import { useStyles2, Icon, Tooltip, Button } from '@grafana/ui';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
function VizPanelSeriesLimit({ data, showAll, seriesLimit, onShowAllSeries }) {
|
|
6
|
-
const styles = useStyles2(getStyles);
|
|
7
|
-
const seriesCount = data == null ? void 0 : data.series.length;
|
|
8
|
-
if (seriesCount === void 0 || seriesCount < seriesLimit) {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
const buttonText = showAll ? "Restore limit" : `Show all ${seriesCount}`;
|
|
12
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
13
|
-
className: styles.timeSeriesDisclaimer
|
|
14
|
-
}, !showAll && /* @__PURE__ */ React.createElement("span", {
|
|
15
|
-
className: styles.warningMessage
|
|
16
|
-
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
17
|
-
title: `Showing only ${seriesLimit} series`,
|
|
18
|
-
name: "exclamation-triangle",
|
|
19
|
-
"aria-hidden": "true"
|
|
20
|
-
})), /* @__PURE__ */ React.createElement(Tooltip, {
|
|
21
|
-
content: "Rendering too many series in a single panel may impact performance and make data harder to read."
|
|
22
|
-
}, /* @__PURE__ */ React.createElement(Button, {
|
|
23
|
-
variant: "secondary",
|
|
24
|
-
size: "sm",
|
|
25
|
-
onClick: onShowAllSeries
|
|
26
|
-
}, buttonText)));
|
|
27
|
-
}
|
|
28
|
-
const getStyles = (theme) => ({
|
|
29
|
-
timeSeriesDisclaimer: css({
|
|
30
|
-
label: "time-series-disclaimer",
|
|
31
|
-
display: "flex",
|
|
32
|
-
alignItems: "center",
|
|
33
|
-
gap: theme.spacing(1)
|
|
34
|
-
}),
|
|
35
|
-
warningMessage: css({
|
|
36
|
-
display: "flex",
|
|
37
|
-
alignItems: "center",
|
|
38
|
-
gap: theme.spacing(0.5),
|
|
39
|
-
color: theme.colors.warning.main,
|
|
40
|
-
fontSize: theme.typography.bodySmall.fontSize
|
|
41
|
-
})
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
export { VizPanelSeriesLimit };
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml6UGFuZWxTZXJpZXNMaW1pdC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVml6UGFuZWwvVml6UGFuZWxTZXJpZXNMaW1pdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcbmltcG9ydCB7IEdyYWZhbmFUaGVtZTIsIFBhbmVsRGF0YSB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgQnV0dG9uLCBJY29uLCBUb29sdGlwLCB1c2VTdHlsZXMyIH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9wcyB7XG4gIHNob3dBbGw/OiBib29sZWFuO1xuICBzZXJpZXNMaW1pdDogbnVtYmVyO1xuICBkYXRhPzogUGFuZWxEYXRhO1xuICBvblNob3dBbGxTZXJpZXM6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXpQYW5lbFNlcmllc0xpbWl0KHsgZGF0YSwgc2hvd0FsbCwgc2VyaWVzTGltaXQsIG9uU2hvd0FsbFNlcmllcyB9OiBQcm9wcykge1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMyKGdldFN0eWxlcyk7XG4gIGNvbnN0IHNlcmllc0NvdW50ID0gZGF0YT8uc2VyaWVzLmxlbmd0aDtcblxuICBpZiAoc2VyaWVzQ291bnQgPT09IHVuZGVmaW5lZCB8fCBzZXJpZXNDb3VudCA8IHNlcmllc0xpbWl0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBidXR0b25UZXh0ID0gc2hvd0FsbCA/ICdSZXN0b3JlIGxpbWl0JyA6IGBTaG93IGFsbCAke3Nlcmllc0NvdW50fWA7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRpbWVTZXJpZXNEaXNjbGFpbWVyfT5cbiAgICAgIHshc2hvd0FsbCAmJiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzLndhcm5pbmdNZXNzYWdlfT5cbiAgICAgICAgICA8SWNvbiB0aXRsZT17YFNob3dpbmcgb25seSAke3Nlcmllc0xpbWl0fSBzZXJpZXNgfSBuYW1lPVwiZXhjbGFtYXRpb24tdHJpYW5nbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICApfVxuICAgICAgPFRvb2x0aXBcbiAgICAgICAgY29udGVudD17J1JlbmRlcmluZyB0b28gbWFueSBzZXJpZXMgaW4gYSBzaW5nbGUgcGFuZWwgbWF5IGltcGFjdCBwZXJmb3JtYW5jZSBhbmQgbWFrZSBkYXRhIGhhcmRlciB0byByZWFkLid9XG4gICAgICA+XG4gICAgICAgIDxCdXR0b24gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzbVwiIG9uQ2xpY2s9e29uU2hvd0FsbFNlcmllc30+XG4gICAgICAgICAge2J1dHRvblRleHR9XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBnZXRTdHlsZXMgPSAodGhlbWU6IEdyYWZhbmFUaGVtZTIpID0+ICh7XG4gIHRpbWVTZXJpZXNEaXNjbGFpbWVyOiBjc3Moe1xuICAgIGxhYmVsOiAndGltZS1zZXJpZXMtZGlzY2xhaW1lcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGdhcDogdGhlbWUuc3BhY2luZygxKSxcbiAgfSksXG4gIHdhcm5pbmdNZXNzYWdlOiBjc3Moe1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBnYXA6IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLndhcm5pbmcubWFpbixcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5ib2R5U21hbGwuZm9udFNpemUsXG4gIH0pLFxufSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVlPLFNBQVMsb0JBQW9CLEVBQUUsSUFBQSxFQUFNLE9BQVMsRUFBQSxXQUFBLEVBQWEsaUJBQTBCLEVBQUE7QUFDMUYsRUFBTSxNQUFBLE1BQUEsR0FBUyxXQUFXLFNBQVMsQ0FBQSxDQUFBO0FBQ25DLEVBQU0sTUFBQSxXQUFBLEdBQWMsNkJBQU0sTUFBTyxDQUFBLE1BQUEsQ0FBQTtBQUVqQyxFQUFJLElBQUEsV0FBQSxLQUFnQixLQUFhLENBQUEsSUFBQSxXQUFBLEdBQWMsV0FBYSxFQUFBO0FBQzFELElBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxHQUNUO0FBRUEsRUFBTSxNQUFBLFVBQUEsR0FBYSxPQUFVLEdBQUEsZUFBQSxHQUFrQixDQUFZLFNBQUEsRUFBQSxXQUFBLENBQUEsQ0FBQSxDQUFBO0FBRTNELEVBQUEsdUJBQ0csS0FBQSxDQUFBLGFBQUEsQ0FBQSxLQUFBLEVBQUE7QUFBQSxJQUFJLFdBQVcsTUFBTyxDQUFBLG9CQUFBO0FBQUEsR0FDcEIsRUFBQSxDQUFDLDJCQUNDLEtBQUEsQ0FBQSxhQUFBLENBQUEsTUFBQSxFQUFBO0FBQUEsSUFBSyxXQUFXLE1BQU8sQ0FBQSxjQUFBO0FBQUEsR0FBQSxrQkFDckIsS0FBQSxDQUFBLGFBQUEsQ0FBQSxJQUFBLEVBQUE7QUFBQSxJQUFLLE9BQU8sQ0FBZ0IsYUFBQSxFQUFBLFdBQUEsQ0FBQSxPQUFBLENBQUE7QUFBQSxJQUFzQixJQUFLLEVBQUEsc0JBQUE7QUFBQSxJQUF1QixhQUFZLEVBQUEsTUFBQTtBQUFBLEdBQU8sQ0FDcEcsbUJBRUQsS0FBQSxDQUFBLGFBQUEsQ0FBQSxPQUFBLEVBQUE7QUFBQSxJQUNDLE9BQVMsRUFBQSxrR0FBQTtBQUFBLEdBQUEsa0JBRVIsS0FBQSxDQUFBLGFBQUEsQ0FBQSxNQUFBLEVBQUE7QUFBQSxJQUFPLE9BQVEsRUFBQSxXQUFBO0FBQUEsSUFBWSxJQUFLLEVBQUEsSUFBQTtBQUFBLElBQUssT0FBUyxFQUFBLGVBQUE7QUFBQSxHQUM1QyxFQUFBLFVBQ0gsQ0FDRixDQUNGLENBQUEsQ0FBQTtBQUVKLENBQUE7QUFFQSxNQUFNLFNBQUEsR0FBWSxDQUFDLEtBQTBCLE1BQUE7QUFBQSxFQUMzQyxzQkFBc0IsR0FBSSxDQUFBO0FBQUEsSUFDeEIsS0FBTyxFQUFBLHdCQUFBO0FBQUEsSUFDUCxPQUFTLEVBQUEsTUFBQTtBQUFBLElBQ1QsVUFBWSxFQUFBLFFBQUE7QUFBQSxJQUNaLEdBQUEsRUFBSyxLQUFNLENBQUEsT0FBQSxDQUFRLENBQUMsQ0FBQTtBQUFBLEdBQ3JCLENBQUE7QUFBQSxFQUNELGdCQUFnQixHQUFJLENBQUE7QUFBQSxJQUNsQixPQUFTLEVBQUEsTUFBQTtBQUFBLElBQ1QsVUFBWSxFQUFBLFFBQUE7QUFBQSxJQUNaLEdBQUEsRUFBSyxLQUFNLENBQUEsT0FBQSxDQUFRLEdBQUcsQ0FBQTtBQUFBLElBQ3RCLEtBQUEsRUFBTyxLQUFNLENBQUEsTUFBQSxDQUFPLE9BQVEsQ0FBQSxJQUFBO0FBQUEsSUFDNUIsUUFBQSxFQUFVLEtBQU0sQ0FBQSxVQUFBLENBQVcsU0FBVSxDQUFBLFFBQUE7QUFBQSxHQUN0QyxDQUFBO0FBQ0gsQ0FBQSxDQUFBOzs7OyJ9
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { FieldMatcherID, FieldColorModeId } from '@grafana/data';
|
|
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 changeSeriesColorConfigFactory = (label, color, fieldConfig) => {
|
|
23
|
-
const { overrides } = fieldConfig;
|
|
24
|
-
const currentIndex = fieldConfig.overrides.findIndex((override) => {
|
|
25
|
-
return override.matcher.id === FieldMatcherID.byName && override.matcher.options === label;
|
|
26
|
-
});
|
|
27
|
-
if (currentIndex < 0) {
|
|
28
|
-
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
29
|
-
overrides: [...fieldConfig.overrides, createOverride(label, color)]
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
const overridesCopy = Array.from(overrides);
|
|
33
|
-
const existing = overridesCopy[currentIndex];
|
|
34
|
-
const propertyIndex = existing.properties.findIndex((p) => p.id === "color");
|
|
35
|
-
if (propertyIndex < 0) {
|
|
36
|
-
overridesCopy[currentIndex] = __spreadProps(__spreadValues({}, existing), {
|
|
37
|
-
properties: [...existing.properties, createProperty(color)]
|
|
38
|
-
});
|
|
39
|
-
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
40
|
-
overrides: overridesCopy
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
const propertiesCopy = Array.from(existing.properties);
|
|
44
|
-
propertiesCopy[propertyIndex] = createProperty(color);
|
|
45
|
-
overridesCopy[currentIndex] = __spreadProps(__spreadValues({}, existing), {
|
|
46
|
-
properties: propertiesCopy
|
|
47
|
-
});
|
|
48
|
-
return __spreadProps(__spreadValues({}, fieldConfig), {
|
|
49
|
-
overrides: overridesCopy
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
const createOverride = (label, color) => {
|
|
53
|
-
return {
|
|
54
|
-
matcher: {
|
|
55
|
-
id: FieldMatcherID.byName,
|
|
56
|
-
options: label
|
|
57
|
-
},
|
|
58
|
-
properties: [createProperty(color)]
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
const createProperty = (color) => {
|
|
62
|
-
return {
|
|
63
|
-
id: "color",
|
|
64
|
-
value: {
|
|
65
|
-
mode: FieldColorModeId.Fixed,
|
|
66
|
-
fixedColor: color
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
export { changeSeriesColorConfigFactory };
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JTZXJpZXNDb25maWdGYWN0b3J5LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9WaXpQYW5lbC9jb2xvclNlcmllc0NvbmZpZ0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlnT3ZlcnJpZGVSdWxlLFxuICBEeW5hbWljQ29uZmlnVmFsdWUsXG4gIEZpZWxkQ29sb3JNb2RlSWQsXG4gIEZpZWxkQ29uZmlnU291cmNlLFxuICBGaWVsZE1hdGNoZXJJRCxcbn0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5cbmV4cG9ydCBjb25zdCBjaGFuZ2VTZXJpZXNDb2xvckNvbmZpZ0ZhY3RvcnkgPSAoXG4gIGxhYmVsOiBzdHJpbmcsXG4gIGNvbG9yOiBzdHJpbmcsXG4gIGZpZWxkQ29uZmlnOiBGaWVsZENvbmZpZ1NvdXJjZVxuKTogRmllbGRDb25maWdTb3VyY2UgPT4ge1xuICBjb25zdCB7IG92ZXJyaWRlcyB9ID0gZmllbGRDb25maWc7XG4gIGNvbnN0IGN1cnJlbnRJbmRleCA9IGZpZWxkQ29uZmlnLm92ZXJyaWRlcy5maW5kSW5kZXgoKG92ZXJyaWRlKSA9PiB7XG4gICAgcmV0dXJuIG92ZXJyaWRlLm1hdGNoZXIuaWQgPT09IEZpZWxkTWF0Y2hlcklELmJ5TmFtZSAmJiBvdmVycmlkZS5tYXRjaGVyLm9wdGlvbnMgPT09IGxhYmVsO1xuICB9KTtcblxuICBpZiAoY3VycmVudEluZGV4IDwgMCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5maWVsZENvbmZpZyxcbiAgICAgIG92ZXJyaWRlczogWy4uLmZpZWxkQ29uZmlnLm92ZXJyaWRlcywgY3JlYXRlT3ZlcnJpZGUobGFiZWwsIGNvbG9yKV0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG92ZXJyaWRlc0NvcHkgPSBBcnJheS5mcm9tKG92ZXJyaWRlcyk7XG4gIGNvbnN0IGV4aXN0aW5nID0gb3ZlcnJpZGVzQ29weVtjdXJyZW50SW5kZXhdO1xuICBjb25zdCBwcm9wZXJ0eUluZGV4ID0gZXhpc3RpbmcucHJvcGVydGllcy5maW5kSW5kZXgoKHApID0+IHAuaWQgPT09ICdjb2xvcicpO1xuXG4gIGlmIChwcm9wZXJ0eUluZGV4IDwgMCkge1xuICAgIG92ZXJyaWRlc0NvcHlbY3VycmVudEluZGV4XSA9IHtcbiAgICAgIC4uLmV4aXN0aW5nLFxuICAgICAgcHJvcGVydGllczogWy4uLmV4aXN0aW5nLnByb3BlcnRpZXMsIGNyZWF0ZVByb3BlcnR5KGNvbG9yKV0sXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5maWVsZENvbmZpZyxcbiAgICAgIG92ZXJyaWRlczogb3ZlcnJpZGVzQ29weSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgcHJvcGVydGllc0NvcHkgPSBBcnJheS5mcm9tKGV4aXN0aW5nLnByb3BlcnRpZXMpO1xuICBwcm9wZXJ0aWVzQ29weVtwcm9wZXJ0eUluZGV4XSA9IGNyZWF0ZVByb3BlcnR5KGNvbG9yKTtcblxuICBvdmVycmlkZXNDb3B5W2N1cnJlbnRJbmRleF0gPSB7XG4gICAgLi4uZXhpc3RpbmcsXG4gICAgcHJvcGVydGllczogcHJvcGVydGllc0NvcHksXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5maWVsZENvbmZpZyxcbiAgICBvdmVycmlkZXM6IG92ZXJyaWRlc0NvcHksXG4gIH07XG59O1xuXG5jb25zdCBjcmVhdGVPdmVycmlkZSA9IChsYWJlbDogc3RyaW5nLCBjb2xvcjogc3RyaW5nKTogQ29uZmlnT3ZlcnJpZGVSdWxlID0+IHtcbiAgcmV0dXJuIHtcbiAgICBtYXRjaGVyOiB7XG4gICAgICBpZDogRmllbGRNYXRjaGVySUQuYnlOYW1lLFxuICAgICAgb3B0aW9uczogbGFiZWwsXG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiBbY3JlYXRlUHJvcGVydHkoY29sb3IpXSxcbiAgfTtcbn07XG5cbmNvbnN0IGNyZWF0ZVByb3BlcnR5ID0gKGNvbG9yOiBzdHJpbmcpOiBEeW5hbWljQ29uZmlnVmFsdWUgPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiAnY29sb3InLFxuICAgIHZhbHVlOiB7XG4gICAgICBtb2RlOiBGaWVsZENvbG9yTW9kZUlkLkZpeGVkLFxuICAgICAgZml4ZWRDb2xvcjogY29sb3IsXG4gICAgfSxcbiAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUU8sTUFBTSw4QkFBaUMsR0FBQSxDQUM1QyxLQUNBLEVBQUEsS0FBQSxFQUNBLFdBQ3NCLEtBQUE7QUFDdEIsRUFBTSxNQUFBLEVBQUUsV0FBYyxHQUFBLFdBQUEsQ0FBQTtBQUN0QixFQUFBLE1BQU0sWUFBZSxHQUFBLFdBQUEsQ0FBWSxTQUFVLENBQUEsU0FBQSxDQUFVLENBQUMsUUFBYSxLQUFBO0FBQ2pFLElBQUEsT0FBTyxTQUFTLE9BQVEsQ0FBQSxFQUFBLEtBQU8sZUFBZSxNQUFVLElBQUEsUUFBQSxDQUFTLFFBQVEsT0FBWSxLQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ3RGLENBQUEsQ0FBQTtBQUVELEVBQUEsSUFBSSxlQUFlLENBQUcsRUFBQTtBQUNwQixJQUFBLE9BQU8saUNBQ0YsV0FERSxDQUFBLEVBQUE7QUFBQSxNQUVMLFNBQUEsRUFBVyxDQUFDLEdBQUcsV0FBQSxDQUFZLFdBQVcsY0FBZSxDQUFBLEtBQUEsRUFBTyxLQUFLLENBQUMsQ0FBQTtBQUFBLEtBQ3BFLENBQUEsQ0FBQTtBQUFBLEdBQ0Y7QUFFQSxFQUFNLE1BQUEsYUFBQSxHQUFnQixLQUFNLENBQUEsSUFBQSxDQUFLLFNBQVMsQ0FBQSxDQUFBO0FBQzFDLEVBQUEsTUFBTSxXQUFXLGFBQWMsQ0FBQSxZQUFBLENBQUEsQ0FBQTtBQUMvQixFQUFNLE1BQUEsYUFBQSxHQUFnQixTQUFTLFVBQVcsQ0FBQSxTQUFBLENBQVUsQ0FBQyxDQUFNLEtBQUEsQ0FBQSxDQUFFLE9BQU8sT0FBTyxDQUFBLENBQUE7QUFFM0UsRUFBQSxJQUFJLGdCQUFnQixDQUFHLEVBQUE7QUFDckIsSUFBYyxhQUFBLENBQUEsWUFBQSxDQUFBLEdBQWdCLGlDQUN6QixRQUR5QixDQUFBLEVBQUE7QUFBQSxNQUU1QixZQUFZLENBQUMsR0FBRyxTQUFTLFVBQVksRUFBQSxjQUFBLENBQWUsS0FBSyxDQUFDLENBQUE7QUFBQSxLQUM1RCxDQUFBLENBQUE7QUFFQSxJQUFBLE9BQU8saUNBQ0YsV0FERSxDQUFBLEVBQUE7QUFBQSxNQUVMLFNBQVcsRUFBQSxhQUFBO0FBQUEsS0FDYixDQUFBLENBQUE7QUFBQSxHQUNGO0FBRUEsRUFBQSxNQUFNLGNBQWlCLEdBQUEsS0FBQSxDQUFNLElBQUssQ0FBQSxRQUFBLENBQVMsVUFBVSxDQUFBLENBQUE7QUFDckQsRUFBZSxjQUFBLENBQUEsYUFBQSxDQUFBLEdBQWlCLGVBQWUsS0FBSyxDQUFBLENBQUE7QUFFcEQsRUFBYyxhQUFBLENBQUEsWUFBQSxDQUFBLEdBQWdCLGlDQUN6QixRQUR5QixDQUFBLEVBQUE7QUFBQSxJQUU1QixVQUFZLEVBQUEsY0FBQTtBQUFBLEdBQ2QsQ0FBQSxDQUFBO0FBRUEsRUFBQSxPQUFPLGlDQUNGLFdBREUsQ0FBQSxFQUFBO0FBQUEsSUFFTCxTQUFXLEVBQUEsYUFBQTtBQUFBLEdBQ2IsQ0FBQSxDQUFBO0FBQ0YsRUFBQTtBQUVBLE1BQU0sY0FBQSxHQUFpQixDQUFDLEtBQUEsRUFBZSxLQUFzQyxLQUFBO0FBQzNFLEVBQU8sT0FBQTtBQUFBLElBQ0wsT0FBUyxFQUFBO0FBQUEsTUFDUCxJQUFJLGNBQWUsQ0FBQSxNQUFBO0FBQUEsTUFDbkIsT0FBUyxFQUFBLEtBQUE7QUFBQSxLQUNYO0FBQUEsSUFDQSxVQUFZLEVBQUEsQ0FBQyxjQUFlLENBQUEsS0FBSyxDQUFDLENBQUE7QUFBQSxHQUNwQyxDQUFBO0FBQ0YsQ0FBQSxDQUFBO0FBRUEsTUFBTSxjQUFBLEdBQWlCLENBQUMsS0FBc0MsS0FBQTtBQUM1RCxFQUFPLE9BQUE7QUFBQSxJQUNMLEVBQUksRUFBQSxPQUFBO0FBQUEsSUFDSixLQUFPLEVBQUE7QUFBQSxNQUNMLE1BQU0sZ0JBQWlCLENBQUEsS0FBQTtBQUFBLE1BQ3ZCLFVBQVksRUFBQSxLQUFBO0FBQUEsS0FDZDtBQUFBLEdBQ0YsQ0FBQTtBQUNGLENBQUE7Ozs7In0=
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { getPluginImportUtils } from '@grafana/runtime';
|
|
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 runtimePanelPlugins = /* @__PURE__ */ new Map();
|
|
23
|
-
function registerRuntimePanelPlugin({ pluginId, plugin }) {
|
|
24
|
-
if (runtimePanelPlugins.has(pluginId)) {
|
|
25
|
-
throw new Error(`A runtime panel plugin with id ${pluginId} has already been registered`);
|
|
26
|
-
}
|
|
27
|
-
plugin.meta = __spreadProps(__spreadValues({}, plugin.meta), {
|
|
28
|
-
id: pluginId,
|
|
29
|
-
name: pluginId,
|
|
30
|
-
module: "runtime plugin",
|
|
31
|
-
baseUrl: "runtime plugin",
|
|
32
|
-
info: {
|
|
33
|
-
author: {
|
|
34
|
-
name: "Runtime plugin " + pluginId
|
|
35
|
-
},
|
|
36
|
-
description: "",
|
|
37
|
-
links: [],
|
|
38
|
-
logos: {
|
|
39
|
-
large: "",
|
|
40
|
-
small: ""
|
|
41
|
-
},
|
|
42
|
-
screenshots: [],
|
|
43
|
-
updated: "",
|
|
44
|
-
version: ""
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
runtimePanelPlugins.set(pluginId, plugin);
|
|
48
|
-
}
|
|
49
|
-
function loadPanelPluginSync(pluginId) {
|
|
50
|
-
var _a;
|
|
51
|
-
const { getPanelPluginFromCache } = getPluginImportUtils();
|
|
52
|
-
return (_a = getPanelPluginFromCache(pluginId)) != null ? _a : runtimePanelPlugins.get(pluginId);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export { loadPanelPluginSync, registerRuntimePanelPlugin, runtimePanelPlugins };
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJSdW50aW1lUGFuZWxQbHVnaW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1ZpelBhbmVsL3JlZ2lzdGVyUnVudGltZVBhbmVsUGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhbmVsUGx1Z2luLCBQbHVnaW5NZXRhSW5mbyB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSW1wb3J0VXRpbHMgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcblxuZXhwb3J0IGNvbnN0IHJ1bnRpbWVQYW5lbFBsdWdpbnMgPSBuZXcgTWFwPHN0cmluZywgUGFuZWxQbHVnaW4+KCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVBhbmVsUGx1Z2luT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQbGVhc2Ugc3BlY2lmeSBhIHBsdWdpbklkIHRoYXQgaXMgdW5saWtlbHkgdG8gY29sbGlkZSB3aXRoIG90aGVyIHBsdWdpbnMuXG4gICAqL1xuICBwbHVnaW5JZDogc3RyaW5nO1xuICBwbHVnaW46IFBhbmVsUGx1Z2luO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGEgd2F5IHRvIHJlZ2lzdGVyIHJ1bnRpbWUgcGFuZWwgcGx1Z2lucy5cbiAqIFBsZWFzZSB1c2UgYSBwbHVnaW5JZCB0aGF0IGlzIHVubGlrZWx5IHRvIGNvbGxpZGUgd2l0aCBvdGhlciBwbHVnaW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJSdW50aW1lUGFuZWxQbHVnaW4oeyBwbHVnaW5JZCwgcGx1Z2luIH06IFJ1bnRpbWVQYW5lbFBsdWdpbk9wdGlvbnMpIHtcbiAgaWYgKHJ1bnRpbWVQYW5lbFBsdWdpbnMuaGFzKHBsdWdpbklkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQSBydW50aW1lIHBhbmVsIHBsdWdpbiB3aXRoIGlkICR7cGx1Z2luSWR9IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZGApO1xuICB9XG5cbiAgcGx1Z2luLm1ldGEgPSB7XG4gICAgLi4ucGx1Z2luLm1ldGEsXG4gICAgaWQ6IHBsdWdpbklkLFxuICAgIG5hbWU6IHBsdWdpbklkLFxuICAgIG1vZHVsZTogJ3J1bnRpbWUgcGx1Z2luJyxcbiAgICBiYXNlVXJsOiAncnVudGltZSBwbHVnaW4nLFxuICAgIGluZm86IHtcbiAgICAgIGF1dGhvcjoge1xuICAgICAgICBuYW1lOiAnUnVudGltZSBwbHVnaW4gJyArIHBsdWdpbklkLFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgIGxpbmtzOiBbXSxcbiAgICAgIGxvZ29zOiB7XG4gICAgICAgIGxhcmdlOiAnJyxcbiAgICAgICAgc21hbGw6ICcnLFxuICAgICAgfSxcbiAgICAgIHNjcmVlbnNob3RzOiBbXSxcbiAgICAgIHVwZGF0ZWQ6ICcnLFxuICAgICAgdmVyc2lvbjogJycsXG4gICAgfSBhcyBQbHVnaW5NZXRhSW5mbyxcbiAgfTtcblxuICBydW50aW1lUGFuZWxQbHVnaW5zLnNldChwbHVnaW5JZCwgcGx1Z2luKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQYW5lbFBsdWdpblN5bmMocGx1Z2luSWQ6IHN0cmluZykge1xuICBjb25zdCB7IGdldFBhbmVsUGx1Z2luRnJvbUNhY2hlIH0gPSBnZXRQbHVnaW5JbXBvcnRVdGlscygpO1xuXG4gIHJldHVybiBnZXRQYW5lbFBsdWdpbkZyb21DYWNoZShwbHVnaW5JZCkgPz8gcnVudGltZVBhbmVsUGx1Z2lucy5nZXQocGx1Z2luSWQpO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdhLE1BQUEsbUJBQUEsdUJBQTBCLEdBQXlCLEdBQUE7QUFjekQsU0FBUywwQkFBMkIsQ0FBQSxFQUFFLFFBQVUsRUFBQSxNQUFBLEVBQXFDLEVBQUE7QUFDMUYsRUFBSSxJQUFBLG1CQUFBLENBQW9CLEdBQUksQ0FBQSxRQUFRLENBQUcsRUFBQTtBQUNyQyxJQUFNLE1BQUEsSUFBSSxLQUFNLENBQUEsQ0FBQSwrQkFBQSxFQUFrQyxRQUFzQyxDQUFBLDRCQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDMUY7QUFFQSxFQUFPLE1BQUEsQ0FBQSxJQUFBLEdBQU8sYUFDVCxDQUFBLGNBQUEsQ0FBQSxFQUFBLEVBQUEsTUFBQSxDQUFPLElBREUsQ0FBQSxFQUFBO0FBQUEsSUFFWixFQUFJLEVBQUEsUUFBQTtBQUFBLElBQ0osSUFBTSxFQUFBLFFBQUE7QUFBQSxJQUNOLE1BQVEsRUFBQSxnQkFBQTtBQUFBLElBQ1IsT0FBUyxFQUFBLGdCQUFBO0FBQUEsSUFDVCxJQUFNLEVBQUE7QUFBQSxNQUNKLE1BQVEsRUFBQTtBQUFBLFFBQ04sTUFBTSxpQkFBb0IsR0FBQSxRQUFBO0FBQUEsT0FDNUI7QUFBQSxNQUNBLFdBQWEsRUFBQSxFQUFBO0FBQUEsTUFDYixPQUFPLEVBQUM7QUFBQSxNQUNSLEtBQU8sRUFBQTtBQUFBLFFBQ0wsS0FBTyxFQUFBLEVBQUE7QUFBQSxRQUNQLEtBQU8sRUFBQSxFQUFBO0FBQUEsT0FDVDtBQUFBLE1BQ0EsYUFBYSxFQUFDO0FBQUEsTUFDZCxPQUFTLEVBQUEsRUFBQTtBQUFBLE1BQ1QsT0FBUyxFQUFBLEVBQUE7QUFBQSxLQUNYO0FBQUEsR0FDRixDQUFBLENBQUE7QUFFQSxFQUFvQixtQkFBQSxDQUFBLEdBQUEsQ0FBSSxVQUFVLE1BQU0sQ0FBQSxDQUFBO0FBQzFDLENBQUE7QUFFTyxTQUFTLG9CQUFvQixRQUFrQixFQUFBO0FBL0N0RCxFQUFBLElBQUEsRUFBQSxDQUFBO0FBZ0RFLEVBQU0sTUFBQSxFQUFFLHVCQUF3QixFQUFBLEdBQUksb0JBQXFCLEVBQUEsQ0FBQTtBQUV6RCxFQUFBLE9BQUEsQ0FBTyw2QkFBd0IsUUFBUSxDQUFBLEtBQWhDLElBQXFDLEdBQUEsRUFBQSxHQUFBLG1CQUFBLENBQW9CLElBQUksUUFBUSxDQUFBLENBQUE7QUFDOUU7Ozs7In0=
|