@grafana/scenes 6.8.0 → 6.8.1
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/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- 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,296 +0,0 @@
|
|
|
1
|
-
import { map, isArray, replace } from 'lodash';
|
|
2
|
-
import { Registry, escapeRegex, textUtil, dateTime, urlUtil } from '@grafana/data';
|
|
3
|
-
import { VariableFormatID } from '@grafana/schema';
|
|
4
|
-
|
|
5
|
-
const formatRegistry = new Registry(() => {
|
|
6
|
-
const formats = [
|
|
7
|
-
{
|
|
8
|
-
id: VariableFormatID.Lucene,
|
|
9
|
-
name: "Lucene",
|
|
10
|
-
description: "Values are lucene escaped and multi-valued variables generate an OR expression",
|
|
11
|
-
formatter: (value) => {
|
|
12
|
-
if (typeof value === "string") {
|
|
13
|
-
return luceneEscape(value);
|
|
14
|
-
}
|
|
15
|
-
if (Array.isArray(value)) {
|
|
16
|
-
if (value.length === 0) {
|
|
17
|
-
return "__empty__";
|
|
18
|
-
}
|
|
19
|
-
const quotedValues = map(value, (val) => {
|
|
20
|
-
return '"' + luceneEscape(val) + '"';
|
|
21
|
-
});
|
|
22
|
-
return "(" + quotedValues.join(" OR ") + ")";
|
|
23
|
-
} else {
|
|
24
|
-
return luceneEscape(`${value}`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
id: VariableFormatID.Raw,
|
|
30
|
-
name: "raw",
|
|
31
|
-
description: "Keep value as is",
|
|
32
|
-
formatter: (value) => String(value)
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: VariableFormatID.Regex,
|
|
36
|
-
name: "Regex",
|
|
37
|
-
description: "Values are regex escaped and multi-valued variables generate a (<value>|<value>) expression",
|
|
38
|
-
formatter: (value) => {
|
|
39
|
-
if (typeof value === "string") {
|
|
40
|
-
return escapeRegex(value);
|
|
41
|
-
}
|
|
42
|
-
if (Array.isArray(value)) {
|
|
43
|
-
const escapedValues = value.map((item) => {
|
|
44
|
-
if (typeof item === "string") {
|
|
45
|
-
return escapeRegex(item);
|
|
46
|
-
} else {
|
|
47
|
-
return escapeRegex(String(item));
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
if (escapedValues.length === 1) {
|
|
51
|
-
return escapedValues[0];
|
|
52
|
-
}
|
|
53
|
-
return "(" + escapedValues.join("|") + ")";
|
|
54
|
-
}
|
|
55
|
-
return escapeRegex(`${value}`);
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: VariableFormatID.Pipe,
|
|
60
|
-
name: "Pipe",
|
|
61
|
-
description: "Values are separated by | character",
|
|
62
|
-
formatter: (value) => {
|
|
63
|
-
if (typeof value === "string") {
|
|
64
|
-
return value;
|
|
65
|
-
}
|
|
66
|
-
if (Array.isArray(value)) {
|
|
67
|
-
return value.join("|");
|
|
68
|
-
}
|
|
69
|
-
return `${value}`;
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
id: VariableFormatID.Distributed,
|
|
74
|
-
name: "Distributed",
|
|
75
|
-
description: "Multiple values are formatted like variable=value",
|
|
76
|
-
formatter: (value, args, variable) => {
|
|
77
|
-
if (typeof value === "string") {
|
|
78
|
-
return value;
|
|
79
|
-
}
|
|
80
|
-
if (Array.isArray(value)) {
|
|
81
|
-
value = map(value, (val, index) => {
|
|
82
|
-
if (index !== 0) {
|
|
83
|
-
return variable.state.name + "=" + val;
|
|
84
|
-
} else {
|
|
85
|
-
return val;
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
return value.join(",");
|
|
89
|
-
}
|
|
90
|
-
return `${value}`;
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
id: VariableFormatID.CSV,
|
|
95
|
-
name: "Csv",
|
|
96
|
-
description: "Comma-separated values",
|
|
97
|
-
formatter: (value) => {
|
|
98
|
-
if (typeof value === "string") {
|
|
99
|
-
return value;
|
|
100
|
-
}
|
|
101
|
-
if (isArray(value)) {
|
|
102
|
-
return value.join(",");
|
|
103
|
-
}
|
|
104
|
-
return String(value);
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
id: VariableFormatID.HTML,
|
|
109
|
-
name: "HTML",
|
|
110
|
-
description: "HTML escaping of values",
|
|
111
|
-
formatter: (value) => {
|
|
112
|
-
if (typeof value === "string") {
|
|
113
|
-
return textUtil.escapeHtml(value);
|
|
114
|
-
}
|
|
115
|
-
if (isArray(value)) {
|
|
116
|
-
return textUtil.escapeHtml(value.join(", "));
|
|
117
|
-
}
|
|
118
|
-
return textUtil.escapeHtml(String(value));
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
id: VariableFormatID.JSON,
|
|
123
|
-
name: "JSON",
|
|
124
|
-
description: "JSON stringify value",
|
|
125
|
-
formatter: (value) => {
|
|
126
|
-
if (typeof value === "string") {
|
|
127
|
-
return value;
|
|
128
|
-
}
|
|
129
|
-
return JSON.stringify(value);
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
id: VariableFormatID.PercentEncode,
|
|
134
|
-
name: "Percent encode",
|
|
135
|
-
description: "Useful for URL escaping values",
|
|
136
|
-
formatter: (value) => {
|
|
137
|
-
if (isArray(value)) {
|
|
138
|
-
return encodeURIComponentStrict("{" + value.join(",") + "}");
|
|
139
|
-
}
|
|
140
|
-
return encodeURIComponentStrict(value);
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
id: VariableFormatID.SingleQuote,
|
|
145
|
-
name: "Single quote",
|
|
146
|
-
description: "Single quoted values",
|
|
147
|
-
formatter: (value) => {
|
|
148
|
-
const regExp = new RegExp(`'`, "g");
|
|
149
|
-
if (isArray(value)) {
|
|
150
|
-
return map(value, (v) => `'${replace(v, regExp, `\\'`)}'`).join(",");
|
|
151
|
-
}
|
|
152
|
-
let strVal = typeof value === "string" ? value : String(value);
|
|
153
|
-
return `'${replace(strVal, regExp, `\\'`)}'`;
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
id: VariableFormatID.DoubleQuote,
|
|
158
|
-
name: "Double quote",
|
|
159
|
-
description: "Double quoted values",
|
|
160
|
-
formatter: (value) => {
|
|
161
|
-
const regExp = new RegExp('"', "g");
|
|
162
|
-
if (isArray(value)) {
|
|
163
|
-
return map(value, (v) => `"${replace(v, regExp, '\\"')}"`).join(",");
|
|
164
|
-
}
|
|
165
|
-
let strVal = typeof value === "string" ? value : String(value);
|
|
166
|
-
return `"${replace(strVal, regExp, '\\"')}"`;
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
id: VariableFormatID.SQLString,
|
|
171
|
-
name: "SQL string",
|
|
172
|
-
description: "SQL string quoting and commas for use in IN statements and other scenarios",
|
|
173
|
-
formatter: sqlStringFormatter
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
id: VariableFormatID.Date,
|
|
177
|
-
name: "Date",
|
|
178
|
-
description: "Format date in different ways",
|
|
179
|
-
formatter: (value, args) => {
|
|
180
|
-
var _a;
|
|
181
|
-
let nrValue = NaN;
|
|
182
|
-
if (typeof value === "number") {
|
|
183
|
-
nrValue = value;
|
|
184
|
-
} else if (typeof value === "string") {
|
|
185
|
-
nrValue = parseInt(value, 10);
|
|
186
|
-
}
|
|
187
|
-
if (isNaN(nrValue)) {
|
|
188
|
-
return "NaN";
|
|
189
|
-
}
|
|
190
|
-
const arg = (_a = args[0]) != null ? _a : "iso";
|
|
191
|
-
switch (arg) {
|
|
192
|
-
case "ms":
|
|
193
|
-
return String(value);
|
|
194
|
-
case "seconds":
|
|
195
|
-
return `${Math.round(nrValue / 1e3)}`;
|
|
196
|
-
case "iso":
|
|
197
|
-
return dateTime(nrValue).toISOString();
|
|
198
|
-
default:
|
|
199
|
-
if ((args || []).length > 1) {
|
|
200
|
-
return dateTime(nrValue).format(args.join(":"));
|
|
201
|
-
}
|
|
202
|
-
return dateTime(nrValue).format(arg);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
id: VariableFormatID.Glob,
|
|
208
|
-
name: "Glob",
|
|
209
|
-
description: "Format multi-valued variables using glob syntax, example {value1,value2}",
|
|
210
|
-
formatter: (value) => {
|
|
211
|
-
if (isArray(value) && value.length > 1) {
|
|
212
|
-
return "{" + value.join(",") + "}";
|
|
213
|
-
}
|
|
214
|
-
return String(value);
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
id: VariableFormatID.Text,
|
|
219
|
-
name: "Text",
|
|
220
|
-
description: "Format variables in their text representation. Example in multi-variable scenario A + B + C.",
|
|
221
|
-
formatter: (value, _args, variable) => {
|
|
222
|
-
if (variable.getValueText) {
|
|
223
|
-
return variable.getValueText();
|
|
224
|
-
}
|
|
225
|
-
return String(value);
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
id: VariableFormatID.QueryParam,
|
|
230
|
-
name: "Query parameter",
|
|
231
|
-
description: "Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.",
|
|
232
|
-
formatter: (value, _args, variable) => {
|
|
233
|
-
if (variable.urlSync) {
|
|
234
|
-
const urlParam = variable.urlSync.getUrlState();
|
|
235
|
-
return urlUtil.toUrlParams(urlParam);
|
|
236
|
-
}
|
|
237
|
-
if (Array.isArray(value)) {
|
|
238
|
-
return value.map((v) => formatQueryParameter(variable.state.name, v)).join("&");
|
|
239
|
-
}
|
|
240
|
-
return formatQueryParameter(variable.state.name, value);
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
id: VariableFormatID.UriEncode,
|
|
245
|
-
name: "Percent encode as URI",
|
|
246
|
-
description: "Useful for URL escaping values, taking into URI syntax characters",
|
|
247
|
-
formatter: (value) => {
|
|
248
|
-
if (isArray(value)) {
|
|
249
|
-
return encodeURIStrict("{" + value.join(",") + "}");
|
|
250
|
-
}
|
|
251
|
-
return encodeURIStrict(value);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
];
|
|
255
|
-
return formats;
|
|
256
|
-
});
|
|
257
|
-
function luceneEscape(value) {
|
|
258
|
-
if (isNaN(+value) === false) {
|
|
259
|
-
return value;
|
|
260
|
-
}
|
|
261
|
-
return value.replace(/([\!\*\+\-\=<>\s\&\|\(\)\[\]\{\}\^\~\?\:\\/"])/g, "\\$1");
|
|
262
|
-
}
|
|
263
|
-
function encodeURIComponentStrict(str) {
|
|
264
|
-
if (typeof str === "object") {
|
|
265
|
-
str = String(str);
|
|
266
|
-
}
|
|
267
|
-
return replaceSpecialCharactersToASCII(encodeURIComponent(str));
|
|
268
|
-
}
|
|
269
|
-
const encodeURIStrict = (str) => replaceSpecialCharactersToASCII(encodeURI(String(str)));
|
|
270
|
-
const replaceSpecialCharactersToASCII = (value) => value.replace(/[!'()*]/g, (c) => {
|
|
271
|
-
return "%" + c.charCodeAt(0).toString(16).toUpperCase();
|
|
272
|
-
});
|
|
273
|
-
function formatQueryParameter(name, value) {
|
|
274
|
-
return `var-${name}=${encodeURIComponentStrict(value)}`;
|
|
275
|
-
}
|
|
276
|
-
const SQL_ESCAPE_MAP = {
|
|
277
|
-
"'": "''",
|
|
278
|
-
'"': '\\"'
|
|
279
|
-
};
|
|
280
|
-
function sqlStringFormatter(value) {
|
|
281
|
-
const regExp = new RegExp(`'|"`, "g");
|
|
282
|
-
if (isArray(value)) {
|
|
283
|
-
return map(value, (v) => `'${replace(v, regExp, (match) => {
|
|
284
|
-
var _a;
|
|
285
|
-
return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : "";
|
|
286
|
-
})}'`).join(",");
|
|
287
|
-
}
|
|
288
|
-
let strVal = typeof value === "string" ? value : String(value);
|
|
289
|
-
return `'${replace(strVal, regExp, (match) => {
|
|
290
|
-
var _a;
|
|
291
|
-
return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : "";
|
|
292
|
-
})}'`;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
export { formatRegistry };
|
|
296
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0UmVnaXN0cnkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvaW50ZXJwb2xhdGlvbi9mb3JtYXRSZWdpc3RyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5LCBtYXAsIHJlcGxhY2UgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBkYXRlVGltZSwgUmVnaXN0cnksIFJlZ2lzdHJ5SXRlbSwgdGV4dFV0aWwsIGVzY2FwZVJlZ2V4LCB1cmxVdGlsIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyBWYXJpYWJsZVR5cGUsIFZhcmlhYmxlRm9ybWF0SUQgfSBmcm9tICdAZ3JhZmFuYS9zY2hlbWEnO1xuXG5pbXBvcnQgeyBWYXJpYWJsZVZhbHVlLCBWYXJpYWJsZVZhbHVlU2luZ2xlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgQUxMX1ZBUklBQkxFX1ZBTFVFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0VXJsU3luY0hhbmRsZXIgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRSZWdpc3RyeUl0ZW0gZXh0ZW5kcyBSZWdpc3RyeUl0ZW0ge1xuICBmb3JtYXR0ZXIodmFsdWU6IFZhcmlhYmxlVmFsdWUsIGFyZ3M6IHN0cmluZ1tdLCB2YXJpYWJsZTogRm9ybWF0VmFyaWFibGUpOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2xpbW1lZCBkb3duIHZlcnNpb24gb2YgdGhlIFNjZW5lVmFyaWFibGUgaW50ZXJmYWNlIHNvIHRoYXQgaXQgb25seSBjb250YWlucyB3aGF0IHRoZSBmb3JtYXR0ZXJzIGFjdHVhbGx5IHVzZS5cbiAqIFRoaXMgaXMgdXNlZnVsIGFzIHdlIGhhdmUgc29tZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBpbnRlcmZhY2UgdGhhdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGZ1bGwgc2NlbmUgb2JqZWN0cy5cbiAqIEZvciBleGFtcGxlIFNjb3BlZFZhcnNWYXJpYWJsZSBhbmQgTGVnYWN5VmFyaWFibGVXcmFwcGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdFZhcmlhYmxlIHtcbiAgc3RhdGU6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogVmFyaWFibGVUeXBlIHwgc3RyaW5nO1xuICAgIGlzTXVsdGk/OiBib29sZWFuO1xuICAgIGluY2x1ZGVBbGw/OiBib29sZWFuO1xuICB9O1xuXG4gIGdldFZhbHVlKGZpZWxkUGF0aD86IHN0cmluZyk6IFZhcmlhYmxlVmFsdWUgfCB1bmRlZmluZWQgfCBudWxsO1xuICBnZXRWYWx1ZVRleHQ/KGZpZWxkUGF0aD86IHN0cmluZyk6IHN0cmluZztcbiAgdXJsU3luYz86IFNjZW5lT2JqZWN0VXJsU3luY0hhbmRsZXI7XG59XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRSZWdpc3RyeSA9IG5ldyBSZWdpc3RyeTxGb3JtYXRSZWdpc3RyeUl0ZW0+KCgpID0+IHtcbiAgY29uc3QgZm9ybWF0czogRm9ybWF0UmVnaXN0cnlJdGVtW10gPSBbXG4gICAge1xuICAgICAgaWQ6IFZhcmlhYmxlRm9ybWF0SUQuTHVjZW5lLFxuICAgICAgbmFtZTogJ0x1Y2VuZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1ZhbHVlcyBhcmUgbHVjZW5lIGVzY2FwZWQgYW5kIG11bHRpLXZhbHVlZCB2YXJpYWJsZXMgZ2VuZXJhdGUgYW4gT1IgZXhwcmVzc2lvbicsXG4gICAgICBmb3JtYXR0ZXI6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBsdWNlbmVFc2NhcGUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuICdfX2VtcHR5X18nO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBxdW90ZWRWYWx1ZXMgPSBtYXAodmFsdWUsICh2YWw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICdcIicgKyBsdWNlbmVFc2NhcGUodmFsKSArICdcIic7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuICcoJyArIHF1b3RlZFZhbHVlcy5qb2luKCcgT1IgJykgKyAnKSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGx1Y2VuZUVzY2FwZShgJHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBWYXJpYWJsZUZvcm1hdElELlJhdyxcbiAgICAgIG5hbWU6ICdyYXcnLFxuICAgICAgZGVzY3JpcHRpb246ICdLZWVwIHZhbHVlIGFzIGlzJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlKSA9PiBTdHJpbmcodmFsdWUpLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFZhcmlhYmxlRm9ybWF0SUQuUmVnZXgsXG4gICAgICBuYW1lOiAnUmVnZXgnLFxuICAgICAgZGVzY3JpcHRpb246ICdWYWx1ZXMgYXJlIHJlZ2V4IGVzY2FwZWQgYW5kIG11bHRpLXZhbHVlZCB2YXJpYWJsZXMgZ2VuZXJhdGUgYSAoPHZhbHVlPnw8dmFsdWU+KSBleHByZXNzaW9uJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIGVzY2FwZVJlZ2V4KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IGVzY2FwZWRWYWx1ZXMgPSB2YWx1ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVzY2FwZVJlZ2V4KGl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVzY2FwZVJlZ2V4KFN0cmluZyhpdGVtKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoZXNjYXBlZFZhbHVlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBlc2NhcGVkVmFsdWVzWzBdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAnKCcgKyBlc2NhcGVkVmFsdWVzLmpvaW4oJ3wnKSArICcpJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlc2NhcGVSZWdleChgJHt2YWx1ZX1gKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogVmFyaWFibGVGb3JtYXRJRC5QaXBlLFxuICAgICAgbmFtZTogJ1BpcGUnLFxuICAgICAgZGVzY3JpcHRpb246ICdWYWx1ZXMgYXJlIHNlcGFyYXRlZCBieSB8IGNoYXJhY3RlcicsXG4gICAgICBmb3JtYXR0ZXI6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZS5qb2luKCd8Jyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogVmFyaWFibGVGb3JtYXRJRC5EaXN0cmlidXRlZCxcbiAgICAgIG5hbWU6ICdEaXN0cmlidXRlZCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ011bHRpcGxlIHZhbHVlcyBhcmUgZm9ybWF0dGVkIGxpa2UgdmFyaWFibGU9dmFsdWUnLFxuICAgICAgZm9ybWF0dGVyOiAodmFsdWUsIGFyZ3MsIHZhcmlhYmxlKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgdmFsdWUgPSBtYXAodmFsdWUsICh2YWw6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZS5zdGF0ZS5uYW1lICsgJz0nICsgdmFsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiB2YWx1ZS5qb2luKCcsJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogVmFyaWFibGVGb3JtYXRJRC5DU1YsXG4gICAgICBuYW1lOiAnQ3N2JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ29tbWEtc2VwYXJhdGVkIHZhbHVlcycsXG4gICAgICBmb3JtYXR0ZXI6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZS5qb2luKCcsJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogVmFyaWFibGVGb3JtYXRJRC5IVE1MLFxuICAgICAgbmFtZTogJ0hUTUwnLFxuICAgICAgZGVzY3JpcHRpb246ICdIVE1MIGVzY2FwaW5nIG9mIHZhbHVlcycsXG4gICAgICBmb3JtYXR0ZXI6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB0ZXh0VXRpbC5lc2NhcGVIdG1sKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0ZXh0VXRpbC5lc2NhcGVIdG1sKHZhbHVlLmpvaW4oJywgJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRleHRVdGlsLmVzY2FwZUh0bWwoU3RyaW5nKHZhbHVlKSk7XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFZhcmlhYmxlRm9ybWF0SUQuSlNPTixcbiAgICAgIG5hbWU6ICdKU09OJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnSlNPTiBzdHJpbmdpZnkgdmFsdWUnLFxuICAgICAgZm9ybWF0dGVyOiAodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogVmFyaWFibGVGb3JtYXRJRC5QZXJjZW50RW5jb2RlLFxuICAgICAgbmFtZTogJ1BlcmNlbnQgZW5jb2RlJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVXNlZnVsIGZvciBVUkwgZXNjYXBpbmcgdmFsdWVzJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlKSA9PiB7XG4gICAgICAgIC8vIGxpa2UgZ2xvYiwgYnV0IHVybCBlc2NhcGVkXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnRTdHJpY3QoJ3snICsgdmFsdWUuam9pbignLCcpICsgJ30nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnRTdHJpY3QodmFsdWUpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBWYXJpYWJsZUZvcm1hdElELlNpbmdsZVF1b3RlLFxuICAgICAgbmFtZTogJ1NpbmdsZSBxdW90ZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NpbmdsZSBxdW90ZWQgdmFsdWVzJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlKSA9PiB7XG4gICAgICAgIC8vIGVzY2FwZSBzaW5nbGUgcXVvdGVzIHdpdGggYmFja3NsYXNoXG4gICAgICAgIGNvbnN0IHJlZ0V4cCA9IG5ldyBSZWdFeHAoYCdgLCAnZycpO1xuXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBtYXAodmFsdWUsICh2OiBzdHJpbmcpID0+IGAnJHtyZXBsYWNlKHYsIHJlZ0V4cCwgYFxcXFwnYCl9J2ApLmpvaW4oJywnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzdHJWYWwgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICByZXR1cm4gYCcke3JlcGxhY2Uoc3RyVmFsLCByZWdFeHAsIGBcXFxcJ2ApfSdgO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBWYXJpYWJsZUZvcm1hdElELkRvdWJsZVF1b3RlLFxuICAgICAgbmFtZTogJ0RvdWJsZSBxdW90ZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0RvdWJsZSBxdW90ZWQgdmFsdWVzJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlKSA9PiB7XG4gICAgICAgIC8vIGVzY2FwZSBkb3VibGUgcXVvdGVzIHdpdGggYmFja3NsYXNoXG4gICAgICAgIGNvbnN0IHJlZ0V4cCA9IG5ldyBSZWdFeHAoJ1wiJywgJ2cnKTtcbiAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIG1hcCh2YWx1ZSwgKHY6IHN0cmluZykgPT4gYFwiJHtyZXBsYWNlKHYsIHJlZ0V4cCwgJ1xcXFxcIicpfVwiYCkuam9pbignLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN0clZhbCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBgXCIke3JlcGxhY2Uoc3RyVmFsLCByZWdFeHAsICdcXFxcXCInKX1cImA7XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFZhcmlhYmxlRm9ybWF0SUQuU1FMU3RyaW5nLFxuICAgICAgbmFtZTogJ1NRTCBzdHJpbmcnLFxuICAgICAgZGVzY3JpcHRpb246ICdTUUwgc3RyaW5nIHF1b3RpbmcgYW5kIGNvbW1hcyBmb3IgdXNlIGluIElOIHN0YXRlbWVudHMgYW5kIG90aGVyIHNjZW5hcmlvcycsXG4gICAgICBmb3JtYXR0ZXI6IHNxbFN0cmluZ0Zvcm1hdHRlcixcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBWYXJpYWJsZUZvcm1hdElELkRhdGUsXG4gICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Zvcm1hdCBkYXRlIGluIGRpZmZlcmVudCB3YXlzJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlLCBhcmdzKSA9PiB7XG4gICAgICAgIGxldCBuclZhbHVlID0gTmFOO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgbnJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBuclZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05hTihuclZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiAnTmFOJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZyA9IGFyZ3NbMF0gPz8gJ2lzbyc7XG4gICAgICAgIHN3aXRjaCAoYXJnKSB7XG4gICAgICAgICAgY2FzZSAnbXMnOlxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChuclZhbHVlISAvIDEwMDApfWA7XG4gICAgICAgICAgY2FzZSAnaXNvJzpcbiAgICAgICAgICAgIHJldHVybiBkYXRlVGltZShuclZhbHVlKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoKGFyZ3MgfHwgW10pLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRhdGVUaW1lKG5yVmFsdWUpLmZvcm1hdChhcmdzLmpvaW4oJzonKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0ZVRpbWUobnJWYWx1ZSkuZm9ybWF0KGFyZyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogVmFyaWFibGVGb3JtYXRJRC5HbG9iLFxuICAgICAgbmFtZTogJ0dsb2InLFxuICAgICAgZGVzY3JpcHRpb246ICdGb3JtYXQgbXVsdGktdmFsdWVkIHZhcmlhYmxlcyB1c2luZyBnbG9iIHN5bnRheCwgZXhhbXBsZSB7dmFsdWUxLHZhbHVlMn0nLFxuICAgICAgZm9ybWF0dGVyOiAodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICByZXR1cm4gJ3snICsgdmFsdWUuam9pbignLCcpICsgJ30nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBWYXJpYWJsZUZvcm1hdElELlRleHQsXG4gICAgICBuYW1lOiAnVGV4dCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Zvcm1hdCB2YXJpYWJsZXMgaW4gdGhlaXIgdGV4dCByZXByZXNlbnRhdGlvbi4gRXhhbXBsZSBpbiBtdWx0aS12YXJpYWJsZSBzY2VuYXJpbyBBICsgQiArIEMuJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlLCBfYXJncywgdmFyaWFibGUpID0+IHtcbiAgICAgICAgaWYgKHZhcmlhYmxlLmdldFZhbHVlVGV4dCkge1xuICAgICAgICAgIHJldHVybiB2YXJpYWJsZS5nZXRWYWx1ZVRleHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBWYXJpYWJsZUZvcm1hdElELlF1ZXJ5UGFyYW0sXG4gICAgICBuYW1lOiAnUXVlcnkgcGFyYW1ldGVyJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnRm9ybWF0IHZhcmlhYmxlcyBhcyBVUkwgcGFyYW1ldGVycy4gRXhhbXBsZSBpbiBtdWx0aS12YXJpYWJsZSBzY2VuYXJpbyBBICsgQiArIEMgPT4gdmFyLWZvbz1BJnZhci1mb289QiZ2YXItZm9vPUMuJyxcbiAgICAgIGZvcm1hdHRlcjogKHZhbHVlLCBfYXJncywgdmFyaWFibGUpID0+IHtcbiAgICAgICAgaWYgKHZhcmlhYmxlLnVybFN5bmMpIHtcbiAgICAgICAgICBjb25zdCB1cmxQYXJhbSA9IHZhcmlhYmxlLnVybFN5bmMuZ2V0VXJsU3RhdGUoKTtcbiAgICAgICAgICByZXR1cm4gdXJsVXRpbC50b1VybFBhcmFtcyh1cmxQYXJhbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKCh2KSA9PiBmb3JtYXRRdWVyeVBhcmFtZXRlcih2YXJpYWJsZS5zdGF0ZS5uYW1lLCB2KSkuam9pbignJicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdFF1ZXJ5UGFyYW1ldGVyKHZhcmlhYmxlLnN0YXRlLm5hbWUsIHZhbHVlKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogVmFyaWFibGVGb3JtYXRJRC5VcmlFbmNvZGUsXG4gICAgICBuYW1lOiAnUGVyY2VudCBlbmNvZGUgYXMgVVJJJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVXNlZnVsIGZvciBVUkwgZXNjYXBpbmcgdmFsdWVzLCB0YWtpbmcgaW50byBVUkkgc3ludGF4IGNoYXJhY3RlcnMnLFxuICAgICAgZm9ybWF0dGVyOiAodmFsdWU6IFZhcmlhYmxlVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGVuY29kZVVSSVN0cmljdCgneycgKyB2YWx1ZS5qb2luKCcsJykgKyAnfScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVuY29kZVVSSVN0cmljdCh2YWx1ZSk7XG4gICAgICB9LFxuICAgIH0sXG4gIF07XG5cbiAgcmV0dXJuIGZvcm1hdHM7XG59KTtcblxuZnVuY3Rpb24gbHVjZW5lRXNjYXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgaWYgKGlzTmFOKCt2YWx1ZSkgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyhbXFwhXFwqXFwrXFwtXFw9PD5cXHNcXCZcXHxcXChcXClcXFtcXF1cXHtcXH1cXF5cXH5cXD9cXDpcXFxcL1wiXSkvZywgJ1xcXFwkMScpO1xufVxuXG4vKipcbiAqIGVuY29kZSBzdHJpbmcgYWNjb3JkaW5nIHRvIFJGQyAzOTg2OyBpbiBjb250cmFzdCB0byBlbmNvZGVVUklDb21wb25lbnQoKVxuICogYWxzbyB0aGUgc3ViLWRlbGltcyBcIiFcIiwgXCInXCIsIFwiKFwiLCBcIilcIiBhbmQgXCIqXCIgYXJlIGVuY29kZWQ7XG4gKiB1bmljb2RlIGhhbmRsaW5nIHVzZXMgVVRGLTggYXMgaW4gRUNNQS0yNjIuXG4gKi9cbmZ1bmN0aW9uIGVuY29kZVVSSUNvbXBvbmVudFN0cmljdChzdHI6IFZhcmlhYmxlVmFsdWVTaW5nbGUpIHtcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdvYmplY3QnKSB7XG4gICAgc3RyID0gU3RyaW5nKHN0cik7XG4gIH1cblxuICByZXR1cm4gcmVwbGFjZVNwZWNpYWxDaGFyYWN0ZXJzVG9BU0NJSShlbmNvZGVVUklDb21wb25lbnQoc3RyKSk7XG59XG5cbmNvbnN0IGVuY29kZVVSSVN0cmljdCA9IChzdHI6IFZhcmlhYmxlVmFsdWVTaW5nbGUpOiBzdHJpbmcgPT4gcmVwbGFjZVNwZWNpYWxDaGFyYWN0ZXJzVG9BU0NJSShlbmNvZGVVUkkoU3RyaW5nKHN0cikpKTtcblxuY29uc3QgcmVwbGFjZVNwZWNpYWxDaGFyYWN0ZXJzVG9BU0NJSSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHZhbHVlLnJlcGxhY2UoL1shJygpKl0vZywgKGMpID0+IHtcbiAgICByZXR1cm4gJyUnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICB9KTtcblxuZnVuY3Rpb24gZm9ybWF0UXVlcnlQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogVmFyaWFibGVWYWx1ZVNpbmdsZSk6IHN0cmluZyB7XG4gIHJldHVybiBgdmFyLSR7bmFtZX09JHtlbmNvZGVVUklDb21wb25lbnRTdHJpY3QodmFsdWUpfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FsbFZhbHVlKHZhbHVlOiBWYXJpYWJsZVZhbHVlU2luZ2xlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gQUxMX1ZBUklBQkxFX1ZBTFVFIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZVswXSA9PT0gQUxMX1ZBUklBQkxFX1ZBTFVFKTtcbn1cblxuY29uc3QgU1FMX0VTQ0FQRV9NQVA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIFwiJ1wiOiBcIicnXCIsXG4gICdcIic6ICdcXFxcXCInLFxufTtcblxuZnVuY3Rpb24gc3FsU3RyaW5nRm9ybWF0dGVyKHZhbHVlOiBWYXJpYWJsZVZhbHVlKSB7XG4gIC8vIGVzY2FwZSBzaW5nbGUgcXVvdGVzIGJ5IHBhaXJpbmcgdGhlbVxuICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKGAnfFwiYCwgJ2cnKTtcblxuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gbWFwKHZhbHVlLCAodjogc3RyaW5nKSA9PiBgJyR7cmVwbGFjZSh2LCByZWdFeHAsIChtYXRjaCkgPT4gU1FMX0VTQ0FQRV9NQVBbbWF0Y2hdID8/ICcnKX0nYCkuam9pbignLCcpO1xuICB9XG5cbiAgbGV0IHN0clZhbCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IFN0cmluZyh2YWx1ZSk7XG4gIHJldHVybiBgJyR7cmVwbGFjZShzdHJWYWwsIHJlZ0V4cCwgKG1hdGNoKSA9PiBTUUxfRVNDQVBFX01BUFttYXRjaF0gPz8gJycpfSdgO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUErQmEsTUFBQSxjQUFBLEdBQWlCLElBQUksUUFBQSxDQUE2QixNQUFNO0FBQ25FLEVBQUEsTUFBTSxPQUFnQyxHQUFBO0FBQUEsSUFDcEM7QUFBQSxNQUNFLElBQUksZ0JBQWlCLENBQUEsTUFBQTtBQUFBLE1BQ3JCLElBQU0sRUFBQSxRQUFBO0FBQUEsTUFDTixXQUFhLEVBQUEsZ0ZBQUE7QUFBQSxNQUNiLFNBQUEsRUFBVyxDQUFDLEtBQVUsS0FBQTtBQUNwQixRQUFJLElBQUEsT0FBTyxVQUFVLFFBQVUsRUFBQTtBQUM3QixVQUFBLE9BQU8sYUFBYSxLQUFLLENBQUEsQ0FBQTtBQUFBLFNBQzNCO0FBRUEsUUFBSSxJQUFBLEtBQUEsQ0FBTSxPQUFRLENBQUEsS0FBSyxDQUFHLEVBQUE7QUFDeEIsVUFBSSxJQUFBLEtBQUEsQ0FBTSxXQUFXLENBQUcsRUFBQTtBQUN0QixZQUFPLE9BQUEsV0FBQSxDQUFBO0FBQUEsV0FDVDtBQUNB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
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { VariableFormatID } from '@grafana/schema';
|
|
2
|
-
import { isCustomVariableValue } from '../types.js';
|
|
3
|
-
import { getSceneVariableForScopedVar } from './ScopedVarsVariable.js';
|
|
4
|
-
import { formatRegistry } from './formatRegistry.js';
|
|
5
|
-
import { VARIABLE_REGEX } from '../constants.js';
|
|
6
|
-
import { lookupVariable } from '../lookupVariable.js';
|
|
7
|
-
import { macrosIndex } from '../macros/index.js';
|
|
8
|
-
|
|
9
|
-
function sceneInterpolator(sceneObject, target, scopedVars, format, interpolations) {
|
|
10
|
-
if (!target || typeof target !== "string") {
|
|
11
|
-
return target != null ? target : "";
|
|
12
|
-
}
|
|
13
|
-
VARIABLE_REGEX.lastIndex = 0;
|
|
14
|
-
return target.replace(VARIABLE_REGEX, (match, var1, var2, fmt2, var3, fieldPath, fmt3) => {
|
|
15
|
-
const variableName = var1 || var2 || var3;
|
|
16
|
-
const fmt = fmt2 || fmt3 || format;
|
|
17
|
-
const variable = lookupFormatVariable(variableName, match, scopedVars, sceneObject);
|
|
18
|
-
if (!variable) {
|
|
19
|
-
if (interpolations) {
|
|
20
|
-
interpolations.push({ match, variableName, fieldPath, format: fmt, value: match, found: false });
|
|
21
|
-
}
|
|
22
|
-
return match;
|
|
23
|
-
}
|
|
24
|
-
const value = formatValue(sceneObject, variable, variable.getValue(fieldPath), fmt);
|
|
25
|
-
if (interpolations) {
|
|
26
|
-
interpolations.push({ match, variableName, fieldPath, format: fmt, value, found: value !== match });
|
|
27
|
-
}
|
|
28
|
-
return value;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
function lookupFormatVariable(name, match, scopedVars, sceneObject) {
|
|
32
|
-
if (scopedVars && scopedVars.hasOwnProperty(name)) {
|
|
33
|
-
const scopedVar = scopedVars[name];
|
|
34
|
-
if (scopedVar) {
|
|
35
|
-
return getSceneVariableForScopedVar(name, scopedVar);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
const variable = lookupVariable(name, sceneObject);
|
|
39
|
-
if (variable) {
|
|
40
|
-
return variable;
|
|
41
|
-
}
|
|
42
|
-
const Macro = macrosIndex.get(name);
|
|
43
|
-
if (Macro) {
|
|
44
|
-
return new Macro(name, sceneObject, match, scopedVars);
|
|
45
|
-
}
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
function formatValue(context, variable, value, formatNameOrFn) {
|
|
49
|
-
if (value === null || value === void 0) {
|
|
50
|
-
return "";
|
|
51
|
-
}
|
|
52
|
-
if (isCustomVariableValue(value)) {
|
|
53
|
-
return sceneInterpolator(context, value.formatter(formatNameOrFn));
|
|
54
|
-
}
|
|
55
|
-
if (!Array.isArray(value) && typeof value === "object") {
|
|
56
|
-
value = `${value}`;
|
|
57
|
-
}
|
|
58
|
-
if (typeof formatNameOrFn === "function") {
|
|
59
|
-
return formatNameOrFn(value, {
|
|
60
|
-
name: variable.state.name,
|
|
61
|
-
type: variable.state.type,
|
|
62
|
-
multi: variable.state.isMulti,
|
|
63
|
-
includeAll: variable.state.includeAll
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
let args = [];
|
|
67
|
-
if (!formatNameOrFn) {
|
|
68
|
-
formatNameOrFn = VariableFormatID.Glob;
|
|
69
|
-
} else {
|
|
70
|
-
args = formatNameOrFn.split(":");
|
|
71
|
-
if (args.length > 1) {
|
|
72
|
-
formatNameOrFn = args[0];
|
|
73
|
-
args = args.slice(1);
|
|
74
|
-
} else {
|
|
75
|
-
args = [];
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
let formatter = formatRegistry.getIfExists(formatNameOrFn);
|
|
79
|
-
if (!formatter) {
|
|
80
|
-
console.error(`Variable format ${formatNameOrFn} not found. Using glob format as fallback.`);
|
|
81
|
-
formatter = formatRegistry.get(VariableFormatID.Glob);
|
|
82
|
-
}
|
|
83
|
-
return formatter.formatter(value, args, variable);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export { sceneInterpolator };
|
|
87
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmVJbnRlcnBvbGF0b3IuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvaW50ZXJwb2xhdGlvbi9zY2VuZUludGVycG9sYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY29wZWRWYXJzIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyBWYXJpYWJsZUludGVycG9sYXRpb24gfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcbmltcG9ydCB7IFZhcmlhYmxlVHlwZSwgVmFyaWFibGVGb3JtYXRJRCB9IGZyb20gJ0BncmFmYW5hL3NjaGVtYSc7XG5cbmltcG9ydCB7IFNjZW5lT2JqZWN0IH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcyc7XG5pbXBvcnQgeyBJbnRlcnBvbGF0aW9uRm9ybWF0UGFyYW1ldGVyLCBpc0N1c3RvbVZhcmlhYmxlVmFsdWUsIFZhcmlhYmxlVmFsdWUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmltcG9ydCB7IGdldFNjZW5lVmFyaWFibGVGb3JTY29wZWRWYXIgfSBmcm9tICcuL1Njb3BlZFZhcnNWYXJpYWJsZSc7XG5pbXBvcnQgeyBmb3JtYXRSZWdpc3RyeSwgRm9ybWF0VmFyaWFibGUgfSBmcm9tICcuL2Zvcm1hdFJlZ2lzdHJ5JztcbmltcG9ydCB7IFZBUklBQkxFX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGxvb2t1cFZhcmlhYmxlIH0gZnJvbSAnLi4vbG9va3VwVmFyaWFibGUnO1xuaW1wb3J0IHsgbWFjcm9zSW5kZXggfSBmcm9tICcuLi9tYWNyb3MnO1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCB0cnkgdG8gcGFyc2UgYW5kIHJlcGxhY2UgYW55IHZhcmlhYmxlIGV4cHJlc3Npb24gZm91bmQgaW4gdGhlIHRhcmdldCBzdHJpbmcuIFRoZSBzY2VuZU9iamVjdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHNvdXJjZSBvZiB2YXJpYWJsZXMuIEl0IHdpbGxcbiAqIHVzZSB0aGUgc2NlbmUgZ3JhcGggYW5kIHdhbGsgdXAgdGhlIHBhcmVudCB0cmVlIHVudGlsIGl0IGZpbmRzIHRoZSBjbG9zZXN0IHZhcmlhYmxlLlxuICpcbiAqIFNjb3BlZFZhcnMgc2hvdWxkIG5vdCByZWFsbHkgYmUgbmVlZGVkIG11Y2ggaW4gdGhlIG5ldyBzY2VuZSBhcmNoaXRlY3R1cmUgYXMgdGhleSBjYW4gYmUgYWRkZWQgdG8gdGhlIGxvY2FsIHNjZW5lIG5vZGUgaW5zdGVhZCBvZiBwYXNzZWQgaW4gaW50ZXJwb2xhdGUgZnVuY3Rpb24uXG4gKiBJdCBpcyBzdXBwb3J0ZWQgaGVyZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBhbmQgc29tZSBlZGdlIGNhc2VzIHdoZXJlIGFkZGluZyBzY29wZWQgdmFycyB0byBsb2NhbCBzY2VuZSBub2RlIGlzIG5vdCBwcmFjdGljYWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2VuZUludGVycG9sYXRvcihcbiAgc2NlbmVPYmplY3Q6IFNjZW5lT2JqZWN0LFxuICB0YXJnZXQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIHNjb3BlZFZhcnM/OiBTY29wZWRWYXJzLFxuICBmb3JtYXQ/OiBJbnRlcnBvbGF0aW9uRm9ybWF0UGFyYW1ldGVyLFxuICBpbnRlcnBvbGF0aW9ucz86IFZhcmlhYmxlSW50ZXJwb2xhdGlvbltdXG4pOiBzdHJpbmcge1xuICBpZiAoIXRhcmdldCB8fCB0eXBlb2YgdGFyZ2V0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0YXJnZXQgPz8gJyc7XG4gIH1cblxuICBWQVJJQUJMRV9SRUdFWC5sYXN0SW5kZXggPSAwO1xuXG4gIHJldHVybiB0YXJnZXQucmVwbGFjZShWQVJJQUJMRV9SRUdFWCwgKG1hdGNoLCB2YXIxLCB2YXIyLCBmbXQyLCB2YXIzLCBmaWVsZFBhdGgsIGZtdDMpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXIxIHx8IHZhcjIgfHwgdmFyMztcbiAgICBjb25zdCBmbXQgPSBmbXQyIHx8IGZtdDMgfHwgZm9ybWF0O1xuICAgIGNvbnN0IHZhcmlhYmxlID0gbG9va3VwRm9ybWF0VmFyaWFibGUodmFyaWFibGVOYW1lLCBtYXRjaCwgc2NvcGVkVmFycywgc2NlbmVPYmplY3QpO1xuXG4gICAgaWYgKCF2YXJpYWJsZSkge1xuICAgICAgaWYgKGludGVycG9sYXRpb25zKSB7XG4gICAgICAgIC8vIFNldCBgdmFsdWVgIGVxdWFsIHRvIGBtYXRjaGAgYXMgZG9jdW1lbnRlZCBpbiB0aGUgYFZhcmlhYmxlSW50ZXJwb2xhdGlvbmAgaW50ZXJmYWNlLlxuICAgICAgICBpbnRlcnBvbGF0aW9ucy5wdXNoKHsgbWF0Y2gsIHZhcmlhYmxlTmFtZSwgZmllbGRQYXRoLCBmb3JtYXQ6IGZtdCwgdmFsdWU6IG1hdGNoLCBmb3VuZDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBmb3JtYXRWYWx1ZShzY2VuZU9iamVjdCwgdmFyaWFibGUsIHZhcmlhYmxlLmdldFZhbHVlKGZpZWxkUGF0aCksIGZtdCk7XG5cbiAgICBpZiAoaW50ZXJwb2xhdGlvbnMpIHtcbiAgICAgIGludGVycG9sYXRpb25zLnB1c2goeyBtYXRjaCwgdmFyaWFibGVOYW1lLCBmaWVsZFBhdGgsIGZvcm1hdDogZm10LCB2YWx1ZSwgZm91bmQ6IHZhbHVlICE9PSBtYXRjaCB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBsb29rdXBGb3JtYXRWYXJpYWJsZShcbiAgbmFtZTogc3RyaW5nLFxuICBtYXRjaDogc3RyaW5nLFxuICBzY29wZWRWYXJzOiBTY29wZWRWYXJzIHwgdW5kZWZpbmVkLFxuICBzY2VuZU9iamVjdDogU2NlbmVPYmplY3Rcbik6IEZvcm1hdFZhcmlhYmxlIHwgbnVsbCB7XG4gIGlmIChzY29wZWRWYXJzICYmIHNjb3BlZFZhcnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICBjb25zdCBzY29wZWRWYXIgPSBzY29wZWRWYXJzW25hbWVdO1xuXG4gICAgaWYgKHNjb3BlZFZhcikge1xuICAgICAgcmV0dXJuIGdldFNjZW5lVmFyaWFibGVGb3JTY29wZWRWYXIobmFtZSwgc2NvcGVkVmFyKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCB2YXJpYWJsZSA9IGxvb2t1cFZhcmlhYmxlKG5hbWUsIHNjZW5lT2JqZWN0KTtcbiAgaWYgKHZhcmlhYmxlKSB7XG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgY29uc3QgTWFjcm8gPSBtYWNyb3NJbmRleC5nZXQobmFtZSk7XG4gIGlmIChNYWNybykge1xuICAgIHJldHVybiBuZXcgTWFjcm8obmFtZSwgc2NlbmVPYmplY3QsIG1hdGNoLCBzY29wZWRWYXJzKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRWYWx1ZShcbiAgY29udGV4dDogU2NlbmVPYmplY3QsXG4gIHZhcmlhYmxlOiBGb3JtYXRWYXJpYWJsZSxcbiAgdmFsdWU6IFZhcmlhYmxlVmFsdWUgfCB1bmRlZmluZWQgfCBudWxsLFxuICBmb3JtYXROYW1lT3JGbj86IEludGVycG9sYXRpb25Gb3JtYXRQYXJhbWV0ZXJcbik6IHN0cmluZyB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLy8gVmFyaWFibGUgY2FuIHJldHVybiBhIGN1c3RvbSB2YWx1ZSB0aGF0IGhhbmRsZXMgZm9ybWF0dGluZ1xuICAvLyBUaGlzIGlzIHVzZWZ1bCBmb3IgY3VzdG9tQWxsVmFsdWUgYW5kIG1hY3JvcyB0aGF0IHJldHVybiB2YWx1ZXMgdGhhdCBhcmUgYWxyZWFkeSBmb3JtYXR0ZWQgb3IgbmVlZCBzcGVjaWFsIGZvcm1hdHRpbmdcbiAgaWYgKGlzQ3VzdG9tVmFyaWFibGVWYWx1ZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc2NlbmVJbnRlcnBvbGF0b3IoY29udGV4dCwgdmFsdWUuZm9ybWF0dGVyKGZvcm1hdE5hbWVPckZuKSk7XG4gIH1cblxuICAvLyBpZiBpdCdzIGFuIG9iamVjdCB0cmFuc2Zvcm0gdmFsdWUgdG8gc3RyaW5nXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIHZhbHVlID0gYCR7dmFsdWV9YDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZm9ybWF0TmFtZU9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZm9ybWF0TmFtZU9yRm4odmFsdWUsIHtcbiAgICAgIG5hbWU6IHZhcmlhYmxlLnN0YXRlLm5hbWUsXG4gICAgICB0eXBlOiB2YXJpYWJsZS5zdGF0ZS50eXBlIGFzIFZhcmlhYmxlVHlwZSxcbiAgICAgIG11bHRpOiB2YXJpYWJsZS5zdGF0ZS5pc011bHRpLFxuICAgICAgaW5jbHVkZUFsbDogdmFyaWFibGUuc3RhdGUuaW5jbHVkZUFsbCxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBhcmdzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGlmICghZm9ybWF0TmFtZU9yRm4pIHtcbiAgICBmb3JtYXROYW1lT3JGbiA9IFZhcmlhYmxlRm9ybWF0SUQuR2xvYjtcbiAgfSBlbHNlIHtcbiAgICAvLyBzb21lIGZvcm1hdHMgaGF2ZSBhcmd1bWVudHMgdGhhdCBjb21lIGFmdGVyICc6JyBjaGFyYWN0ZXJcbiAgICBhcmdzID0gZm9ybWF0TmFtZU9yRm4uc3BsaXQoJzonKTtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAxKSB7XG4gICAgICBmb3JtYXROYW1lT3JGbiA9IGFyZ3NbMF07XG4gICAgICBhcmdzID0gYXJncy5zbGljZSgxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJncyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIGxldCBmb3JtYXR0ZXIgPSBmb3JtYXRSZWdpc3RyeS5nZXRJZkV4aXN0cyhmb3JtYXROYW1lT3JGbik7XG5cbiAgaWYgKCFmb3JtYXR0ZXIpIHtcbiAgICBjb25zb2xlLmVycm9yKGBWYXJpYWJsZSBmb3JtYXQgJHtmb3JtYXROYW1lT3JGbn0gbm90IGZvdW5kLiBVc2luZyBnbG9iIGZvcm1hdCBhcyBmYWxsYmFjay5gKTtcbiAgICBmb3JtYXR0ZXIgPSBmb3JtYXRSZWdpc3RyeS5nZXQoVmFyaWFibGVGb3JtYXRJRC5HbG9iKTtcbiAgfVxuXG4gIHJldHVybiBmb3JtYXR0ZXIuZm9ybWF0dGVyKHZhbHVlLCBhcmdzLCB2YXJpYWJsZSk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFvQk8sU0FBUyxpQkFDZCxDQUFBLFdBQUEsRUFDQSxNQUNBLEVBQUEsVUFBQSxFQUNBLFFBQ0EsY0FDUSxFQUFBO0FBQ1IsRUFBQSxJQUFJLENBQUMsTUFBQSxJQUFVLE9BQU8sTUFBQSxLQUFXLFFBQVUsRUFBQTtBQUN6QyxJQUFBLE9BQU8sTUFBVSxJQUFBLElBQUEsR0FBQSxNQUFBLEdBQUEsRUFBQSxDQUFBO0FBQUEsR0FDbkI7QUFFQSxFQUFBLGNBQUEsQ0FBZSxTQUFZLEdBQUEsQ0FBQSxDQUFBO0FBRTNCLEVBQU8sT0FBQSxNQUFBLENBQU8sT0FBUSxDQUFBLGNBQUEsRUFBZ0IsQ0FBQyxLQUFBLEVBQU8sTUFBTSxJQUFNLEVBQUEsSUFBQSxFQUFNLElBQU0sRUFBQSxTQUFBLEVBQVcsSUFBUyxLQUFBO0FBQ3hGLElBQU0sTUFBQSxZQUFBLEdBQWUsUUFBUSxJQUFRLElBQUEsSUFBQSxDQUFBO0FBQ3JDLElBQU0sTUFBQSxHQUFBLEdBQU0sUUFBUSxJQUFRLElBQUEsTUFBQSxDQUFBO0FBQzVCLElBQUEsTUFBTSxRQUFXLEdBQUEsb0JBQUEsQ0FBcUIsWUFBYyxFQUFBLEtBQUEsRUFBTyxZQUFZLFdBQVcsQ0FBQSxDQUFBO0FBRWxGLElBQUEsSUFBSSxDQUFDLFFBQVUsRUFBQTtBQUNiLE1BQUEsSUFBSSxjQUFnQixFQUFBO0FBRWxCLFFBQWUsY0FBQSxDQUFBLElBQUEsQ0FBSyxFQUFFLEtBQUEsRUFBTyxZ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
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
function lookupVariable(name, sceneObject) {
|
|
2
|
-
const variables = sceneObject.state.$variables;
|
|
3
|
-
if (!variables) {
|
|
4
|
-
if (sceneObject.parent) {
|
|
5
|
-
return lookupVariable(name, sceneObject.parent);
|
|
6
|
-
} else {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const found = variables.getByName(name);
|
|
11
|
-
if (found) {
|
|
12
|
-
return found;
|
|
13
|
-
} else if (sceneObject.parent) {
|
|
14
|
-
return lookupVariable(name, sceneObject.parent);
|
|
15
|
-
}
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { lookupVariable };
|
|
20
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwVmFyaWFibGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvbG9va3VwVmFyaWFibGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NlbmVPYmplY3QgfSBmcm9tICcuLi9jb3JlL3R5cGVzJztcbmltcG9ydCB7IFNjZW5lVmFyaWFibGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBXaWxsIHdhbGsgdGhlIHNjZW5lIG9iamVjdCBncmFwaCB1cCB0byB0aGUgcm9vdCBsb29raW5nIGZvciB0aGUgZmlyc3QgdmFyaWFibGUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cFZhcmlhYmxlKG5hbWU6IHN0cmluZywgc2NlbmVPYmplY3Q6IFNjZW5lT2JqZWN0KTogU2NlbmVWYXJpYWJsZSB8IG51bGwge1xuICBjb25zdCB2YXJpYWJsZXMgPSBzY2VuZU9iamVjdC5zdGF0ZS4kdmFyaWFibGVzO1xuICBpZiAoIXZhcmlhYmxlcykge1xuICAgIGlmIChzY2VuZU9iamVjdC5wYXJlbnQpIHtcbiAgICAgIHJldHVybiBsb29rdXBWYXJpYWJsZShuYW1lLCBzY2VuZU9iamVjdC5wYXJlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3VuZCA9IHZhcmlhYmxlcy5nZXRCeU5hbWUobmFtZSk7XG4gIGlmIChmb3VuZCkge1xuICAgIHJldHVybiBmb3VuZDtcbiAgfSBlbHNlIGlmIChzY2VuZU9iamVjdC5wYXJlbnQpIHtcbiAgICByZXR1cm4gbG9va3VwVmFyaWFibGUobmFtZSwgc2NlbmVPYmplY3QucGFyZW50KTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1nQixTQUFBLGNBQUEsQ0FBZSxNQUFjLFdBQWdELEVBQUE7QUFDM0YsRUFBTSxNQUFBLFNBQUEsR0FBWSxZQUFZLEtBQU0sQ0FBQSxVQUFBLENBQUE7QUFDcEMsRUFBQSxJQUFJLENBQUMsU0FBVyxFQUFBO0FBQ2QsSUFBQSxJQUFJLFlBQVksTUFBUSxFQUFBO0FBQ3RCLE1BQU8sT0FBQSxjQUFBLENBQWUsSUFBTSxFQUFBLFdBQUEsQ0FBWSxNQUFNLENBQUEsQ0FBQTtBQUFBLEtBQ3pDLE1BQUE7QUFDTCxNQUFPLE9BQUEsSUFBQSxDQUFBO0FBQUEsS0FDVDtBQUFBLEdBQ0Y7QUFFQSxFQUFNLE1BQUEsS0FBQSxHQUFRLFNBQVUsQ0FBQSxTQUFBLENBQVUsSUFBSSxDQUFBLENBQUE7QUFDdEMsRUFBQSxJQUFJLEtBQU8sRUFBQTtBQUNULElBQU8sT0FBQSxLQUFBLENBQUE7QUFBQSxHQUNULE1BQUEsSUFBVyxZQUFZLE1BQVEsRUFBQTtBQUM3QixJQUFPLE9BQUEsY0FBQSxDQUFlLElBQU0sRUFBQSxXQUFBLENBQVksTUFBTSxDQUFBLENBQUE7QUFBQSxHQUNoRDtBQUVBLEVBQU8sT0FBQSxJQUFBLENBQUE7QUFDVDs7OzsifQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { isCustomVariableValue } from '../types.js';
|
|
2
|
-
import { formatRegistry } from '../interpolation/formatRegistry.js';
|
|
3
|
-
import { SkipFormattingValue } from './types.js';
|
|
4
|
-
import { VariableFormatID } from '@grafana/schema';
|
|
5
|
-
import { MultiValueVariable } from '../variants/MultiValueVariable.js';
|
|
6
|
-
import { ALL_VARIABLE_VALUE } from '../constants.js';
|
|
7
|
-
|
|
8
|
-
class AllVariablesMacro {
|
|
9
|
-
constructor(name, sceneObject) {
|
|
10
|
-
this.state = { name, type: "url_variable" };
|
|
11
|
-
this._sceneObject = sceneObject;
|
|
12
|
-
}
|
|
13
|
-
getValue() {
|
|
14
|
-
const allVars = collectAllVariables(this._sceneObject);
|
|
15
|
-
const format = formatRegistry.get(VariableFormatID.QueryParam);
|
|
16
|
-
const params = [];
|
|
17
|
-
for (const name of Object.keys(allVars)) {
|
|
18
|
-
const variable = allVars[name];
|
|
19
|
-
if (variable instanceof MultiValueVariable && variable.hasAllValue() && !variable.state.allValue) {
|
|
20
|
-
params.push(format.formatter(ALL_VARIABLE_VALUE, [], variable));
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
const value = variable.getValue();
|
|
24
|
-
if (!value) {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
if (isCustomVariableValue(value)) {
|
|
28
|
-
params.push(value.formatter(VariableFormatID.QueryParam));
|
|
29
|
-
} else {
|
|
30
|
-
params.push(format.formatter(value, [], variable));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return new SkipFormattingValue(params.join("&"));
|
|
34
|
-
}
|
|
35
|
-
getValueText() {
|
|
36
|
-
return "";
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function collectAllVariables(sceneObject, record = {}) {
|
|
40
|
-
if (sceneObject.state.$variables) {
|
|
41
|
-
for (const variable of sceneObject.state.$variables.state.variables) {
|
|
42
|
-
if (variable.state.skipUrlSync) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
if (!record[variable.state.name]) {
|
|
46
|
-
record[variable.state.name] = variable;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (sceneObject.parent) {
|
|
51
|
-
collectAllVariables(sceneObject.parent, record);
|
|
52
|
-
}
|
|
53
|
-
return record;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export { AllVariablesMacro };
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWxsVmFyaWFibGVzTWFjcm8uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvbWFjcm9zL0FsbFZhcmlhYmxlc01hY3JvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjZW5lT2JqZWN0IH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcyc7XG5pbXBvcnQgeyBpc0N1c3RvbVZhcmlhYmxlVmFsdWUsIFNjZW5lVmFyaWFibGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBmb3JtYXRSZWdpc3RyeSwgRm9ybWF0VmFyaWFibGUgfSBmcm9tICcuLi9pbnRlcnBvbGF0aW9uL2Zvcm1hdFJlZ2lzdHJ5JztcbmltcG9ydCB7IFNraXBGb3JtYXR0aW5nVmFsdWUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFZhcmlhYmxlRm9ybWF0SUQgfSBmcm9tICdAZ3JhZmFuYS9zY2hlbWEnO1xuaW1wb3J0IHsgTXVsdGlWYWx1ZVZhcmlhYmxlIH0gZnJvbSAnLi4vdmFyaWFudHMvTXVsdGlWYWx1ZVZhcmlhYmxlJztcbmltcG9ydCB7IEFMTF9WQVJJQUJMRV9WQUxVRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBBbGxWYXJpYWJsZXNNYWNybyBpbXBsZW1lbnRzIEZvcm1hdFZhcmlhYmxlIHtcbiAgcHVibGljIHN0YXRlOiB7IG5hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nIH07XG4gIHByaXZhdGUgX3NjZW5lT2JqZWN0OiBTY2VuZU9iamVjdDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBzY2VuZU9iamVjdDogU2NlbmVPYmplY3QpIHtcbiAgICB0aGlzLnN0YXRlID0geyBuYW1lLCB0eXBlOiAndXJsX3ZhcmlhYmxlJyB9O1xuICAgIHRoaXMuX3NjZW5lT2JqZWN0ID0gc2NlbmVPYmplY3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogU2tpcEZvcm1hdHRpbmdWYWx1ZSB7XG4gICAgY29uc3QgYWxsVmFycyA9IGNvbGxlY3RBbGxWYXJpYWJsZXModGhpcy5fc2NlbmVPYmplY3QpO1xuICAgIGNvbnN0IGZvcm1hdCA9IGZvcm1hdFJlZ2lzdHJ5LmdldChWYXJpYWJsZUZvcm1hdElELlF1ZXJ5UGFyYW0pO1xuICAgIGNvbnN0IHBhcmFtczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhhbGxWYXJzKSkge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSBhbGxWYXJzW25hbWVdO1xuXG4gICAgICBpZiAodmFyaWFibGUgaW5zdGFuY2VvZiBNdWx0aVZhbHVlVmFyaWFibGUgJiYgdmFyaWFibGUuaGFzQWxsVmFsdWUoKSAmJiAhdmFyaWFibGUuc3RhdGUuYWxsVmFsdWUpIHtcbiAgICAgICAgcGFyYW1zLnB1c2goZm9ybWF0LmZvcm1hdHRlcihBTExfVkFSSUFCTEVfVkFMVUUsIFtdLCB2YXJpYWJsZSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSB2YXJpYWJsZS5nZXRWYWx1ZSgpO1xuXG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNDdXN0b21WYXJpYWJsZVZhbHVlKHZhbHVlKSkge1xuICAgICAgICBwYXJhbXMucHVzaCh2YWx1ZS5mb3JtYXR0ZXIoVmFyaWFibGVGb3JtYXRJRC5RdWVyeVBhcmFtKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJhbXMucHVzaChmb3JtYXQuZm9ybWF0dGVyKHZhbHVlLCBbXSwgdmFyaWFibGUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFNraXBGb3JtYXR0aW5nVmFsdWUocGFyYW1zLmpvaW4oJyYnKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVUZXh0PygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2xsZWN0QWxsVmFyaWFibGVzKFxuICBzY2VuZU9iamVjdDogU2NlbmVPYmplY3QsXG4gIHJlY29yZDogUmVjb3JkPHN0cmluZywgU2NlbmVWYXJpYWJsZT4gPSB7fVxuKTogUmVjb3JkPHN0cmluZywgU2NlbmVWYXJpYWJsZT4ge1xuICBpZiAoc2NlbmVPYmplY3Quc3RhdGUuJHZhcmlhYmxlcykge1xuICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2Ygc2NlbmVPYmplY3Quc3RhdGUuJHZhcmlhYmxlcy5zdGF0ZS52YXJpYWJsZXMpIHtcbiAgICAgIGlmICh2YXJpYWJsZS5zdGF0ZS5za2lwVXJsU3luYykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZWNvcmRbdmFyaWFibGUuc3RhdGUubmFtZV0pIHtcbiAgICAgICAgcmVjb3JkW3ZhcmlhYmxlLnN0YXRlLm5hbWVdID0gdmFyaWFibGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHNjZW5lT2JqZWN0LnBhcmVudCkge1xuICAgIGNvbGxlY3RBbGxWYXJpYWJsZXMoc2NlbmVPYmplY3QucGFyZW50LCByZWNvcmQpO1xuICB9XG5cbiAgcmV0dXJuIHJlY29yZDtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUU8sTUFBTSxpQkFBNEMsQ0FBQTtBQUFBLEVBSWhELFdBQUEsQ0FBWSxNQUFjLFdBQTBCLEVBQUE7QUFDekQsSUFBQSxJQUFBLENBQUssS0FBUSxHQUFBLEVBQUUsSUFBTSxFQUFBLElBQUEsRUFBTSxjQUFlLEVBQUEsQ0FBQTtBQUMxQyxJQUFBLElBQUEsQ0FBSyxZQUFlLEdBQUEsV0FBQSxDQUFBO0FBQUEsR0FDdEI7QUFBQSxFQUVPLFFBQWdDLEdBQUE7QUFDckMsSUFBTSxNQUFBLE9BQUEsR0FBVSxtQkFBb0IsQ0FBQSxJQUFBLENBQUssWUFBWSxDQUFBLENBQUE7QUFDckQsSUFBQSxNQUFNLE1BQVMsR0FBQSxjQUFBLENBQWUsR0FBSSxDQUFBLGdCQUFBLENBQWlCLFVBQVUsQ0FBQSxDQUFBO0FBQzdELElBQUEsTUFBTSxTQUFtQixFQUFDLENBQUE7QUFFMUIsSUFBQSxLQUFBLE1BQVcsSUFBUSxJQUFBLE1BQUEsQ0FBTyxJQUFLLENBQUEsT0FBTyxDQUFHLEVBQUE7QUFDdkMsTUFBQSxNQUFNLFdBQVcsT0FBUSxDQUFBLElBQUEsQ0FBQSxDQUFBO0FBRXpCLE1BQUksSUFBQSxRQUFBLFlBQW9CLHNCQUFzQixRQUFTLENBQUEsV0FBQSxNQUFpQixDQUFDLFFBQUEsQ0FBUyxNQUFNLFFBQVUsRUFBQTtBQUNoRyxRQUFBLE1BQUEsQ0FBTyxLQUFLLE1BQU8sQ0FBQSxTQUFBLENBQVUsb0JBQW9CLEVBQUMsRUFBRyxRQUFRLENBQUMsQ0FBQSxDQUFBO0FBQzlELFFBQUEsU0FBQTtBQUFBLE9BQ0Y7QUFFQSxNQUFNLE1BQUEsS0FBQSxHQUFRLFNBQVMsUUFBUyxFQUFBLENBQUE7QUFFaEMsTUFBQSxJQUFJLENBQUMsS0FBTyxFQUFBO0FBQ1YsUUFBQSxTQUFBO0FBQUEsT0FDRjtBQUVBLE1BQUksSUFBQSxxQkFBQSxDQUFzQixLQUFLLENBQUcsRUFBQTtBQUNoQyxRQUFBLE1BQUEsQ0FBTyxJQUFLLENBQUEsS0FBQSxDQUFNLFNBQVUsQ0FBQSxnQkFBQSxDQUFpQixVQUFVLENBQUMsQ0FBQSxDQUFBO0FBQUEsT0FDbkQsTUFBQTtBQUNMLFFBQUEsTUFBQSxDQUFPLEtBQUssTUFBTyxDQUFBLFNBQUEsQ0FBVSxPQUFPLEVBQUMsRUFBRyxRQUFRLENBQUMsQ0FBQSxDQUFBO0FBQUEsT0FDbkQ7QUFBQSxLQUNGO0FBRUEsSUFBQSxPQUFPLElBQUksbUJBQUEsQ0FBb0IsTUFBTyxDQUFBLElBQUEsQ0FBSyxHQUFHLENBQUMsQ0FBQSxDQUFBO0FBQUEsR0FDakQ7QUFBQSxFQUVPLFlBQXdCLEdBQUE7QUFDN0IsSUFBTyxPQUFBLEVBQUEsQ0FBQTtBQUFBLEdBQ1Q7QUFDRixDQUFBO0FBRUEsU0FBUyxtQkFDUCxDQUFBLFdBQUEsRUFDQSxNQUF3QyxHQUFBLEVBQ1QsRUFBQTtBQUMvQixFQUFJLElBQUEsV0FBQSxDQUFZLE1BQU0sVUFBWSxFQUFBO0FBQ2hDLElBQUEsS0FBQSxNQUFXLFFBQVksSUFBQSxXQUFBLENBQVksS0FBTSxDQUFBLFVBQUEsQ0FBVyxNQUFNLFNBQVcsRUFBQTtBQUNuRSxNQUFJLElBQUEsUUFBQSxDQUFTLE1BQU0sV0FBYSxFQUFBO0FBQzlCLFFBQUEsU0FBQTtBQUFBLE9BQ0Y7QUFFQSxNQUFBLElBQUksQ0FBQyxNQUFBLENBQU8sUUFBUyxDQUFBLEtBQUEsQ0FBTSxJQUFPLENBQUEsRUFBQTtBQUNoQyxRQUFPLE1BQUEsQ0FBQSxRQUFBLENBQVMsTUFBTSxJQUFRLENBQUEsR0FBQSxRQUFBLENBQUE7QUFBQSxPQUNoQztBQUFBLEtBQ0Y7QUFBQSxHQUNGO0FBRUEsRUFBQSxJQUFJLFlBQVksTUFBUSxFQUFBO0FBQ3RCLElBQW9CLG1CQUFBLENBQUEsV0FBQSxDQUFZLFFBQVEsTUFBTSxDQUFBLENBQUE7QUFBQSxHQUNoRDtBQUVBLEVBQU8sT0FBQSxNQUFBLENBQUE7QUFDVDs7OzsifQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { config } from '@grafana/runtime';
|
|
2
|
-
|
|
3
|
-
class UserMacro {
|
|
4
|
-
constructor(name, _) {
|
|
5
|
-
this.state = { name, type: "user_macro" };
|
|
6
|
-
}
|
|
7
|
-
getValue(fieldPath) {
|
|
8
|
-
const user = config.bootData.user;
|
|
9
|
-
switch (fieldPath) {
|
|
10
|
-
case "login":
|
|
11
|
-
return user.login;
|
|
12
|
-
case "email":
|
|
13
|
-
return user.email;
|
|
14
|
-
case "id":
|
|
15
|
-
default:
|
|
16
|
-
return String(user.id);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
getValueText() {
|
|
20
|
-
return "";
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
class OrgMacro {
|
|
24
|
-
constructor(name, _) {
|
|
25
|
-
this.state = { name, type: "org_macro" };
|
|
26
|
-
}
|
|
27
|
-
getValue(fieldPath) {
|
|
28
|
-
const user = config.bootData.user;
|
|
29
|
-
switch (fieldPath) {
|
|
30
|
-
case "name":
|
|
31
|
-
return user.orgName;
|
|
32
|
-
case "id":
|
|
33
|
-
default:
|
|
34
|
-
return String(user.orgId);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
getValueText() {
|
|
38
|
-
return "";
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export { OrgMacro, UserMacro };
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dE1hY3Jvcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3ZhcmlhYmxlcy9tYWNyb3MvY29udGV4dE1hY3Jvcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2VuZU9iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgRm9ybWF0VmFyaWFibGUgfSBmcm9tICcuLi9pbnRlcnBvbGF0aW9uL2Zvcm1hdFJlZ2lzdHJ5JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuXG4vKipcbiAqIEhhbmRsZXMgZXhwcmVzc2lvbnMgbGlrZSAke19fdXNlci5sb2dpbn1cbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJNYWNybyBpbXBsZW1lbnRzIEZvcm1hdFZhcmlhYmxlIHtcbiAgcHVibGljIHN0YXRlOiB7IG5hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgXzogU2NlbmVPYmplY3QpIHtcbiAgICB0aGlzLnN0YXRlID0geyBuYW1lOiBuYW1lLCB0eXBlOiAndXNlcl9tYWNybycgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZShmaWVsZFBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSBjb25maWcuYm9vdERhdGEudXNlcjtcblxuICAgIHN3aXRjaCAoZmllbGRQYXRoKSB7XG4gICAgICBjYXNlICdsb2dpbic6XG4gICAgICAgIHJldHVybiB1c2VyLmxvZ2luO1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICByZXR1cm4gdXNlci5lbWFpbDtcbiAgICAgIGNhc2UgJ2lkJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBTdHJpbmcodXNlci5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlVGV4dD8oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuLyoqXG4gKiBIYW5kbGVzIGV4cHJlc3Npb25zIGxpa2UgJHtfX29yZy5uYW1lfVxuICovXG5leHBvcnQgY2xhc3MgT3JnTWFjcm8gaW1wbGVtZW50cyBGb3JtYXRWYXJpYWJsZSB7XG4gIHB1YmxpYyBzdGF0ZTogeyBuYW1lOiBzdHJpbmc7IHR5cGU6IHN0cmluZyB9O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIF86IFNjZW5lT2JqZWN0KSB7XG4gICAgdGhpcy5zdGF0ZSA9IHsgbmFtZTogbmFtZSwgdHlwZTogJ29yZ19tYWNybycgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZShmaWVsZFBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSBjb25maWcuYm9vdERhdGEudXNlcjtcblxuICAgIHN3aXRjaCAoZmllbGRQYXRoKSB7XG4gICAgICBjYXNlICduYW1lJzpcbiAgICAgICAgcmV0dXJuIHVzZXIub3JnTmFtZTtcbiAgICAgIGNhc2UgJ2lkJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBTdHJpbmcodXNlci5vcmdJZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlVGV4dD8oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9PLE1BQU0sU0FBb0MsQ0FBQTtBQUFBLEVBR3hDLFdBQUEsQ0FBWSxNQUFjLENBQWdCLEVBQUE7QUFDL0MsSUFBQSxJQUFBLENBQUssS0FBUSxHQUFBLEVBQUUsSUFBWSxFQUFBLElBQUEsRUFBTSxZQUFhLEVBQUEsQ0FBQTtBQUFBLEdBQ2hEO0FBQUEsRUFFTyxTQUFTLFNBQTRCLEVBQUE7QUFDMUMsSUFBTSxNQUFBLElBQUEsR0FBTyxPQUFPLFFBQVMsQ0FBQSxJQUFBLENBQUE7QUFFN0IsSUFBUSxRQUFBLFNBQUE7QUFBQSxNQUNELEtBQUEsT0FBQTtBQUNILFFBQUEsT0FBTyxJQUFLLENBQUEsS0FBQSxDQUFBO0FBQUEsTUFDVCxLQUFBLE9BQUE7QUFDSCxRQUFBLE9BQU8sSUFBSyxDQUFBLEtBQUEsQ0FBQTtBQUFBLE1BQ1QsS0FBQSxJQUFBLENBQUE7QUFBQSxNQUFBO0FBRUgsUUFBTyxPQUFBLE1BQUEsQ0FBTyxLQUFLLEVBQUUsQ0FBQSxDQUFBO0FBQUEsS0FBQTtBQUFBLEdBRTNCO0FBQUEsRUFFTyxZQUF3QixHQUFBO0FBQzdCLElBQU8sT0FBQSxFQUFBLENBQUE7QUFBQSxHQUNUO0FBQ0YsQ0FBQTtBQUtPLE1BQU0sUUFBbUMsQ0FBQTtBQUFBLEVBR3ZDLFdBQUEsQ0FBWSxNQUFjLENBQWdCLEVBQUE7QUFDL0MsSUFBQSxJQUFBLENBQUssS0FBUSxHQUFBLEVBQUUsSUFBWSxFQUFBLElBQUEsRUFBTSxXQUFZLEVBQUEsQ0FBQTtBQUFBLEdBQy9DO0FBQUEsRUFFTyxTQUFTLFNBQTRCLEVBQUE7QUFDMUMsSUFBTSxNQUFBLElBQUEsR0FBTyxPQUFPLFFBQVMsQ0FBQSxJQUFBLENBQUE7QUFFN0IsSUFBUSxRQUFBLFNBQUE7QUFBQSxNQUNELEtBQUEsTUFBQTtBQUNILFFBQUEsT0FBTyxJQUFLLENBQUEsT0FBQSxDQUFBO0FBQUEsTUFDVCxLQUFBLElBQUEsQ0FBQTtBQUFBLE1BQUE7QUFFSCxRQUFPLE9BQUEsTUFBQSxDQUFPLEtBQUssS0FBSyxDQUFBLENBQUE7QUFBQSxLQUFBO0FBQUEsR0FFOUI7QUFBQSxFQUVPLFlBQXdCLEdBQUE7QUFDN0IsSUFBTyxPQUFBLEVBQUEsQ0FBQTtBQUFBLEdBQ1Q7QUFDRjs7OzsifQ==
|