@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,303 +0,0 @@
|
|
|
1
|
-
import React, { useState, useMemo } from 'react';
|
|
2
|
-
import { isMultiValueOperator } from './AdHocFiltersVariable.js';
|
|
3
|
-
import { useStyles2, Select, Field, Button } from '@grafana/ui';
|
|
4
|
-
import { cx, css } from '@emotion/css';
|
|
5
|
-
import { ControlsLabel } from '../../utils/ControlsLabel.js';
|
|
6
|
-
import { getAdhocOptionSearcher } from './getAdhocOptionSearcher.js';
|
|
7
|
-
import { handleOptionGroups } from '../utils.js';
|
|
8
|
-
import { OptionWithCheckbox } from '../components/VariableValueSelect.js';
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
14
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
-
var __spreadValues = (a, b) => {
|
|
16
|
-
for (var prop in b || (b = {}))
|
|
17
|
-
if (__hasOwnProp.call(b, prop))
|
|
18
|
-
__defNormalProp(a, prop, b[prop]);
|
|
19
|
-
if (__getOwnPropSymbols)
|
|
20
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
21
|
-
if (__propIsEnum.call(b, prop))
|
|
22
|
-
__defNormalProp(a, prop, b[prop]);
|
|
23
|
-
}
|
|
24
|
-
return a;
|
|
25
|
-
};
|
|
26
|
-
function keyLabelToOption(key, label) {
|
|
27
|
-
return key !== "" ? {
|
|
28
|
-
value: key,
|
|
29
|
-
label: label || key
|
|
30
|
-
} : null;
|
|
31
|
-
}
|
|
32
|
-
const filterNoOp = () => true;
|
|
33
|
-
function AdHocFilterRenderer({ filter, model }) {
|
|
34
|
-
var _a, _b, _c, _d, _e;
|
|
35
|
-
const styles = useStyles2(getStyles);
|
|
36
|
-
const [keys, setKeys] = useState([]);
|
|
37
|
-
const [values, setValues] = useState([]);
|
|
38
|
-
const [isKeysLoading, setIsKeysLoading] = useState(false);
|
|
39
|
-
const [isValuesLoading, setIsValuesLoading] = useState(false);
|
|
40
|
-
const [isKeysOpen, setIsKeysOpen] = useState(false);
|
|
41
|
-
const [isValuesOpen, setIsValuesOpen] = useState(false);
|
|
42
|
-
const [isOperatorOpen, setIsOperatorOpen] = useState(false);
|
|
43
|
-
const [valueInputValue, setValueInputValue] = useState("");
|
|
44
|
-
const [valueHasCustomValue, setValueHasCustomValue] = useState(false);
|
|
45
|
-
const [uncommittedValue, setUncommittedValue] = useState(
|
|
46
|
-
filter.values ? filter.values.map((value, index) => {
|
|
47
|
-
var _a2;
|
|
48
|
-
return keyLabelToOption(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]);
|
|
49
|
-
}) : []
|
|
50
|
-
);
|
|
51
|
-
const isMultiValue = isMultiValueOperator(filter.operator);
|
|
52
|
-
const keyValue = keyLabelToOption(filter.key, filter.keyLabel);
|
|
53
|
-
const valueValue = keyLabelToOption(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]);
|
|
54
|
-
const optionSearcher = useMemo(() => getAdhocOptionSearcher(values), [values]);
|
|
55
|
-
const onValueInputChange = (value, { action }) => {
|
|
56
|
-
if (action === "input-change") {
|
|
57
|
-
setValueInputValue(value);
|
|
58
|
-
}
|
|
59
|
-
return value;
|
|
60
|
-
};
|
|
61
|
-
const onOperatorChange = (v) => {
|
|
62
|
-
var _a2, _b2;
|
|
63
|
-
const existingOperator = filter.operator;
|
|
64
|
-
const newOperator = v.value;
|
|
65
|
-
const update = { operator: newOperator };
|
|
66
|
-
if (isMultiValueOperator(existingOperator) && !isMultiValueOperator(newOperator)) {
|
|
67
|
-
update.value = "";
|
|
68
|
-
update.valueLabels = [""];
|
|
69
|
-
update.values = void 0;
|
|
70
|
-
setUncommittedValue([]);
|
|
71
|
-
} else if (!isMultiValueOperator(existingOperator) && isMultiValueOperator(newOperator) && filter.value) {
|
|
72
|
-
update.values = [filter.value];
|
|
73
|
-
setUncommittedValue([
|
|
74
|
-
{
|
|
75
|
-
value: filter.value,
|
|
76
|
-
label: (_b2 = (_a2 = filter.valueLabels) == null ? void 0 : _a2[0]) != null ? _b2 : filter.value
|
|
77
|
-
}
|
|
78
|
-
]);
|
|
79
|
-
}
|
|
80
|
-
model._updateFilter(filter, update);
|
|
81
|
-
};
|
|
82
|
-
const filteredValueOptions = useMemo(
|
|
83
|
-
() => handleOptionGroups(optionSearcher(valueInputValue)),
|
|
84
|
-
[optionSearcher, valueInputValue]
|
|
85
|
-
);
|
|
86
|
-
const multiValueProps = {
|
|
87
|
-
isMulti: true,
|
|
88
|
-
value: uncommittedValue,
|
|
89
|
-
components: {
|
|
90
|
-
Option: OptionWithCheckbox
|
|
91
|
-
},
|
|
92
|
-
hideSelectedOptions: false,
|
|
93
|
-
closeMenuOnSelect: false,
|
|
94
|
-
openMenuOnFocus: false,
|
|
95
|
-
onChange: (v) => {
|
|
96
|
-
setUncommittedValue(v);
|
|
97
|
-
if (v.some((value) => value.__isNew__)) {
|
|
98
|
-
setValueInputValue("");
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
onBlur: () => {
|
|
102
|
-
var _a2, _b2;
|
|
103
|
-
model._updateFilter(filter, {
|
|
104
|
-
value: (_b2 = (_a2 = uncommittedValue[0]) == null ? void 0 : _a2.value) != null ? _b2 : "",
|
|
105
|
-
values: uncommittedValue.map((option) => option.value),
|
|
106
|
-
valueLabels: uncommittedValue.map((option) => option.label)
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const valueSelect = /* @__PURE__ */ React.createElement(Select, __spreadValues({
|
|
111
|
-
virtualized: true,
|
|
112
|
-
allowCustomValue: (_b = model.state.allowCustomValue) != null ? _b : true,
|
|
113
|
-
isValidNewOption: (inputValue) => inputValue.trim().length > 0,
|
|
114
|
-
allowCreateWhileLoading: true,
|
|
115
|
-
formatCreateLabel: (inputValue) => `Use custom value: ${inputValue}`,
|
|
116
|
-
disabled: model.state.readOnly,
|
|
117
|
-
className: cx(styles.value, isValuesOpen ? styles.widthWhenOpen : void 0),
|
|
118
|
-
width: "auto",
|
|
119
|
-
value: valueValue,
|
|
120
|
-
filterOption: filterNoOp,
|
|
121
|
-
placeholder: "Select value",
|
|
122
|
-
options: filteredValueOptions,
|
|
123
|
-
inputValue: valueInputValue,
|
|
124
|
-
onInputChange: onValueInputChange,
|
|
125
|
-
onChange: (v) => {
|
|
126
|
-
model._updateFilter(filter, {
|
|
127
|
-
value: v.value,
|
|
128
|
-
valueLabels: v.label ? [v.label] : [v.value]
|
|
129
|
-
});
|
|
130
|
-
if (valueHasCustomValue !== v.__isNew__) {
|
|
131
|
-
setValueHasCustomValue(v.__isNew__);
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
isOpen: isValuesOpen && !isValuesLoading,
|
|
135
|
-
isLoading: isValuesLoading,
|
|
136
|
-
openMenuOnFocus: true,
|
|
137
|
-
onOpenMenu: async () => {
|
|
138
|
-
var _a2;
|
|
139
|
-
setIsValuesLoading(true);
|
|
140
|
-
setIsValuesOpen(true);
|
|
141
|
-
const values2 = await model._getValuesFor(filter);
|
|
142
|
-
setIsValuesLoading(false);
|
|
143
|
-
setValues(values2);
|
|
144
|
-
if (valueHasCustomValue) {
|
|
145
|
-
setValueInputValue((_a2 = valueValue == null ? void 0 : valueValue.label) != null ? _a2 : "");
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
onCloseMenu: () => {
|
|
149
|
-
setIsValuesOpen(false);
|
|
150
|
-
setValueInputValue("");
|
|
151
|
-
}
|
|
152
|
-
}, isMultiValue && multiValueProps));
|
|
153
|
-
const keySelect = /* @__PURE__ */ React.createElement(Select, {
|
|
154
|
-
key: `${isValuesLoading ? "loading" : "loaded"}`,
|
|
155
|
-
disabled: model.state.readOnly,
|
|
156
|
-
className: cx(styles.key, isKeysOpen ? styles.widthWhenOpen : void 0),
|
|
157
|
-
width: "auto",
|
|
158
|
-
allowCustomValue: (_c = model.state.allowCustomValue) != null ? _c : true,
|
|
159
|
-
value: keyValue,
|
|
160
|
-
placeholder: "Select label",
|
|
161
|
-
options: handleOptionGroups(keys),
|
|
162
|
-
onChange: (v) => {
|
|
163
|
-
model._updateFilter(filter, {
|
|
164
|
-
key: v.value,
|
|
165
|
-
keyLabel: v.label,
|
|
166
|
-
value: "",
|
|
167
|
-
valueLabels: [""],
|
|
168
|
-
values: void 0
|
|
169
|
-
});
|
|
170
|
-
setUncommittedValue([]);
|
|
171
|
-
},
|
|
172
|
-
autoFocus: filter.key === "",
|
|
173
|
-
isOpen: isKeysOpen && !isKeysLoading,
|
|
174
|
-
isLoading: isKeysLoading,
|
|
175
|
-
onOpenMenu: async () => {
|
|
176
|
-
setIsKeysOpen(true);
|
|
177
|
-
setIsKeysLoading(true);
|
|
178
|
-
const keys2 = await model._getKeys(filter.key);
|
|
179
|
-
setIsKeysLoading(false);
|
|
180
|
-
setKeys(keys2);
|
|
181
|
-
},
|
|
182
|
-
onCloseMenu: () => {
|
|
183
|
-
setIsKeysOpen(false);
|
|
184
|
-
},
|
|
185
|
-
onBlur: () => {
|
|
186
|
-
if (filter.key === "") {
|
|
187
|
-
model._removeFilter(filter);
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
openMenuOnFocus: true
|
|
191
|
-
});
|
|
192
|
-
const operatorSelect = /* @__PURE__ */ React.createElement(Select, {
|
|
193
|
-
className: cx(styles.operator, {
|
|
194
|
-
[styles.widthWhenOpen]: isOperatorOpen
|
|
195
|
-
}),
|
|
196
|
-
value: filter.operator,
|
|
197
|
-
disabled: model.state.readOnly,
|
|
198
|
-
options: model._getOperators(),
|
|
199
|
-
onChange: onOperatorChange,
|
|
200
|
-
onOpenMenu: () => {
|
|
201
|
-
setIsOperatorOpen(true);
|
|
202
|
-
},
|
|
203
|
-
onCloseMenu: () => {
|
|
204
|
-
setIsOperatorOpen(false);
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
if (model.state.layout === "vertical") {
|
|
208
|
-
if (filter.key) {
|
|
209
|
-
const label = /* @__PURE__ */ React.createElement(ControlsLabel, {
|
|
210
|
-
layout: "vertical",
|
|
211
|
-
label: (_d = filter.key) != null ? _d : "",
|
|
212
|
-
onRemove: () => model._removeFilter(filter)
|
|
213
|
-
});
|
|
214
|
-
return /* @__PURE__ */ React.createElement(Field, {
|
|
215
|
-
label,
|
|
216
|
-
"data-testid": `AdHocFilter-${filter.key}`,
|
|
217
|
-
className: styles.field
|
|
218
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
219
|
-
className: styles.wrapper
|
|
220
|
-
}, operatorSelect, valueSelect));
|
|
221
|
-
} else {
|
|
222
|
-
return /* @__PURE__ */ React.createElement(Field, {
|
|
223
|
-
label: "Select label",
|
|
224
|
-
"data-testid": `AdHocFilter-${filter.key}`,
|
|
225
|
-
className: styles.field
|
|
226
|
-
}, keySelect);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
230
|
-
className: styles.wrapper,
|
|
231
|
-
"data-testid": `AdHocFilter-${filter.key}`
|
|
232
|
-
}, keySelect, operatorSelect, valueSelect, /* @__PURE__ */ React.createElement(Button, {
|
|
233
|
-
variant: "secondary",
|
|
234
|
-
"aria-label": "Remove filter",
|
|
235
|
-
title: "Remove filter",
|
|
236
|
-
className: styles.removeButton,
|
|
237
|
-
icon: "times",
|
|
238
|
-
"data-testid": `AdHocFilter-remove-${(_e = filter.key) != null ? _e : ""}`,
|
|
239
|
-
onClick: () => model._removeFilter(filter)
|
|
240
|
-
}));
|
|
241
|
-
}
|
|
242
|
-
const getStyles = (theme) => ({
|
|
243
|
-
field: css({
|
|
244
|
-
marginBottom: 0
|
|
245
|
-
}),
|
|
246
|
-
wrapper: css({
|
|
247
|
-
display: "flex",
|
|
248
|
-
"> *": {
|
|
249
|
-
"&:not(:first-child)": {
|
|
250
|
-
marginLeft: -1
|
|
251
|
-
},
|
|
252
|
-
"&:first-child": {
|
|
253
|
-
borderTopRightRadius: 0,
|
|
254
|
-
borderBottomRightRadius: 0
|
|
255
|
-
},
|
|
256
|
-
"&:last-child": {
|
|
257
|
-
borderTopLeftRadius: 0,
|
|
258
|
-
borderBottomLeftRadius: 0
|
|
259
|
-
},
|
|
260
|
-
"&:not(:first-child):not(:last-child)": {
|
|
261
|
-
borderRadius: 0
|
|
262
|
-
},
|
|
263
|
-
position: "relative",
|
|
264
|
-
zIndex: 0,
|
|
265
|
-
"&:hover": {
|
|
266
|
-
zIndex: 1
|
|
267
|
-
},
|
|
268
|
-
"&:focus-within": {
|
|
269
|
-
zIndex: 2
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}),
|
|
273
|
-
widthWhenOpen: css({
|
|
274
|
-
minWidth: theme.spacing(16)
|
|
275
|
-
}),
|
|
276
|
-
value: css({
|
|
277
|
-
flexBasis: "content",
|
|
278
|
-
flexShrink: 1,
|
|
279
|
-
minWidth: "90px"
|
|
280
|
-
}),
|
|
281
|
-
key: css({
|
|
282
|
-
flexBasis: "content",
|
|
283
|
-
minWidth: "90px",
|
|
284
|
-
flexShrink: 1
|
|
285
|
-
}),
|
|
286
|
-
operator: css({
|
|
287
|
-
flexShrink: 0,
|
|
288
|
-
flexBasis: "content"
|
|
289
|
-
}),
|
|
290
|
-
removeButton: css({
|
|
291
|
-
paddingLeft: theme.spacing(3 / 2),
|
|
292
|
-
paddingRight: theme.spacing(3 / 2),
|
|
293
|
-
borderLeft: "none",
|
|
294
|
-
width: theme.spacing(3),
|
|
295
|
-
marginRight: theme.spacing(1),
|
|
296
|
-
boxSizing: "border-box",
|
|
297
|
-
position: "relative",
|
|
298
|
-
left: "1px"
|
|
299
|
-
})
|
|
300
|
-
});
|
|
301
|
-
|
|
302
|
-
export { AdHocFilterRenderer };
|
|
303
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRIb2NGaWx0ZXJSZW5kZXJlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3ZhcmlhYmxlcy9hZGhvYy9BZEhvY0ZpbHRlclJlbmRlcmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEFkSG9jRmlsdGVyc1ZhcmlhYmxlLCBBZEhvY0ZpbHRlcldpdGhMYWJlbHMsIGlzTXVsdGlWYWx1ZU9wZXJhdG9yIH0gZnJvbSAnLi9BZEhvY0ZpbHRlcnNWYXJpYWJsZSc7XG5pbXBvcnQgeyBHcmFmYW5hVGhlbWUyLCBTZWxlY3RhYmxlVmFsdWUgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IEJ1dHRvbiwgRmllbGQsIElucHV0QWN0aW9uTWV0YSwgU2VsZWN0LCB1c2VTdHlsZXMyIH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuaW1wb3J0IHsgY3NzLCBjeCB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBDb250cm9sc0xhYmVsIH0gZnJvbSAnLi4vLi4vdXRpbHMvQ29udHJvbHNMYWJlbCc7XG5pbXBvcnQgeyBnZXRBZGhvY09wdGlvblNlYXJjaGVyIH0gZnJvbSAnLi9nZXRBZGhvY09wdGlvblNlYXJjaGVyJztcbmltcG9ydCB7IGhhbmRsZU9wdGlvbkdyb3VwcyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE9wdGlvbldpdGhDaGVja2JveCB9IGZyb20gJy4uL2NvbXBvbmVudHMvVmFyaWFibGVWYWx1ZVNlbGVjdCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGZpbHRlcjogQWRIb2NGaWx0ZXJXaXRoTGFiZWxzO1xuICBtb2RlbDogQWRIb2NGaWx0ZXJzVmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIGtleUxhYmVsVG9PcHRpb24oa2V5OiBzdHJpbmcsIGxhYmVsPzogc3RyaW5nKTogU2VsZWN0YWJsZVZhbHVlIHwgbnVsbCB7XG4gIHJldHVybiBrZXkgIT09ICcnXG4gICAgPyB7XG4gICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgIGxhYmVsOiBsYWJlbCB8fCBrZXksXG4gICAgICB9XG4gICAgOiBudWxsO1xufVxuXG5jb25zdCBmaWx0ZXJOb09wID0gKCkgPT4gdHJ1ZTtcblxuZXhwb3J0IGZ1bmN0aW9uIEFkSG9jRmlsdGVyUmVuZGVyZXIoeyBmaWx0ZXIsIG1vZGVsIH06IFByb3BzKSB7XG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlczIoZ2V0U3R5bGVzKTtcblxuICBjb25zdCBba2V5cywgc2V0S2V5c10gPSB1c2VTdGF0ZTxTZWxlY3RhYmxlVmFsdWVbXT4oW10pO1xuICBjb25zdCBbdmFsdWVzLCBzZXRWYWx1ZXNdID0gdXNlU3RhdGU8U2VsZWN0YWJsZVZhbHVlW10+KFtdKTtcbiAgY29uc3QgW2lzS2V5c0xvYWRpbmcsIHNldElzS2V5c0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNWYWx1ZXNMb2FkaW5nLCBzZXRJc1ZhbHVlc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNLZXlzT3Blbiwgc2V0SXNLZXlzT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc1ZhbHVlc09wZW4sIHNldElzVmFsdWVzT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc09wZXJhdG9yT3Blbiwgc2V0SXNPcGVyYXRvck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbdmFsdWVJbnB1dFZhbHVlLCBzZXRWYWx1ZUlucHV0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbdmFsdWVIYXNDdXN0b21WYWx1ZSwgc2V0VmFsdWVIYXNDdXN0b21WYWx1ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIC8vIFRvIG5vdCB0cmlnZ2VyIHF1ZXJpZXMgb24gZXZlcnkgc2VsZWN0aW9uIHdlIHN0b3JlIHRoaXMgc3RhdGUgbG9jYWxseSBoZXJlIGFuZCBvbmx5IHVwZGF0ZSB0aGUgdmFyaWFibGUgb25CbHVyXG4gIGNvbnN0IFt1bmNvbW1pdHRlZFZhbHVlLCBzZXRVbmNvbW1pdHRlZFZhbHVlXSA9IHVzZVN0YXRlPFNlbGVjdGFibGVWYWx1ZT4oXG4gICAgZmlsdGVyLnZhbHVlcyA/IGZpbHRlci52YWx1ZXMubWFwKCh2YWx1ZSwgaW5kZXgpID0+IGtleUxhYmVsVG9PcHRpb24odmFsdWUsIGZpbHRlci52YWx1ZUxhYmVscz8uW2luZGV4XSkpIDogW11cbiAgKTtcbiAgY29uc3QgaXNNdWx0aVZhbHVlID0gaXNNdWx0aVZhbHVlT3BlcmF0b3IoZmlsdGVyLm9wZXJhdG9yKTtcblxuICBjb25zdCBrZXlWYWx1ZSA9IGtleUxhYmVsVG9PcHRpb24oZmlsdGVyLmtleSwgZmlsdGVyLmtleUxhYmVsKTtcbiAgY29uc3QgdmFsdWVWYWx1ZSA9IGtleUxhYmVsVG9PcHRpb24oZmlsdGVyLnZhbHVlLCBmaWx0ZXIudmFsdWVMYWJlbHM/LlswXSk7XG5cbiAgY29uc3Qgb3B0aW9uU2VhcmNoZXIgPSB1c2VNZW1vKCgpID0+IGdldEFkaG9jT3B0aW9uU2VhcmNoZXIodmFsdWVzKSwgW3ZhbHVlc10pO1xuXG4gIGNvbnN0IG9uVmFsdWVJbnB1dENoYW5nZSA9ICh2YWx1ZTogc3RyaW5nLCB7IGFjdGlvbiB9OiBJbnB1dEFjdGlvbk1ldGEpID0+IHtcbiAgICBpZiAoYWN0aW9uID09PSAnaW5wdXQtY2hhbmdlJykge1xuICAgICAgc2V0VmFsdWVJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuXG4gIGNvbnN0IG9uT3BlcmF0b3JDaGFuZ2UgPSAodjogU2VsZWN0YWJsZVZhbHVlKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdPcGVyYXRvciA9IGZpbHRlci5vcGVyYXRvcjtcbiAgICBjb25zdCBuZXdPcGVyYXRvciA9IHYudmFsdWU7XG5cbiAgICBjb25zdCB1cGRhdGU6IFBhcnRpYWw8QWRIb2NGaWx0ZXJXaXRoTGFiZWxzPiA9IHsgb3BlcmF0b3I6IG5ld09wZXJhdG9yIH07XG4gICAgLy8gY2xlYXIgdmFsdWUgaWYgb3BlcmF0b3IgaGFzIGNoYW5nZWQgZnJvbSBtdWx0aSB0byBzaW5nbGVcbiAgICBpZiAoaXNNdWx0aVZhbHVlT3BlcmF0b3IoZXhpc3RpbmdPcGVyYXRvcikgJiYgIWlzTXVsdGlWYWx1ZU9wZXJhdG9yKG5ld09wZXJhdG9yKSkge1xuICAgICAgdXBkYXRlLnZhbHVlID0gJyc7XG4gICAgICB1cGRhdGUudmFsdWVMYWJlbHMgPSBbJyddO1xuICAgICAgdXBkYXRlLnZhbHVlcyA9IHVuZGVmaW5lZDtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW10pO1xuICAgICAgLy8gc2V0IHZhbHVlcyBpZiBvcGVyYXRvciBoYXMgY2hhbmdlZCBmcm9tIHNpbmdsZSB0byBtdWx0aVxuICAgIH0gZWxzZSBpZiAoIWlzTXVsdGlWYWx1ZU9wZXJhdG9yKGV4aXN0aW5nT3BlcmF0b3IpICYmIGlzTXVsdGlWYWx1ZU9wZXJhdG9yKG5ld09wZXJhdG9yKSAmJiBmaWx0ZXIudmFsdWUpIHtcbiAgICAgIHVwZGF0ZS52YWx1ZXMgPSBbZmlsdGVyLnZhbHVlXTtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZSxcbiAgICAgICAgICBsYWJlbDogZmlsdGVyLnZhbHVlTGFiZWxzPy5bMF0gPz8gZmlsdGVyLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfVxuICAgIG1vZGVsLl91cGRhdGVGaWx0ZXIoZmlsdGVyLCB1cGRhdGUpO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlcmVkVmFsdWVPcHRpb25zID0gdXNlTWVtbyhcbiAgICAoKSA9PiBoYW5kbGVPcHRpb25Hcm91cHMob3B0aW9uU2VhcmNoZXIodmFsdWVJbnB1dFZhbHVlKSksXG4gICAgW29wdGlvblNlYXJjaGVyLCB2YWx1ZUlucHV0VmFsdWVdXG4gICk7XG5cbiAgY29uc3QgbXVsdGlWYWx1ZVByb3BzID0ge1xuICAgIGlzTXVsdGk6IHRydWUsXG4gICAgdmFsdWU6IHVuY29tbWl0dGVkVmFsdWUsXG4gICAgY29tcG9uZW50czoge1xuICAgICAgT3B0aW9uOiBPcHRpb25XaXRoQ2hlY2tib3gsXG4gICAgfSxcbiAgICBoaWRlU2VsZWN0ZWRPcHRpb25zOiBmYWxzZSxcbiAgICBjbG9zZU1lbnVPblNlbGVjdDogZmFsc2UsXG4gICAgb3Blbk1lbnVPbkZvY3VzOiBmYWxzZSxcbiAgICBvbkNoYW5nZTogKHY6IFNlbGVjdGFibGVWYWx1ZSkgPT4ge1xuICAgICAgc2V0VW5jb21taXR0ZWRWYWx1ZSh2KTtcbiAgICAgIC8vIGNsZWFyIGlucHV0IHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgY3VzdG9tIG11bHRpIHZhbHVlXG4gICAgICBpZiAodi5zb21lKCh2YWx1ZTogU2VsZWN0YWJsZVZhbHVlKSA9PiB2YWx1ZS5fX2lzTmV3X18pKSB7XG4gICAgICAgIHNldFZhbHVlSW5wdXRWYWx1ZSgnJyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBvbkJsdXI6ICgpID0+IHtcbiAgICAgIG1vZGVsLl91cGRhdGVGaWx0ZXIoZmlsdGVyLCB7XG4gICAgICAgIHZhbHVlOiB1bmNvbW1pdHRlZFZhbHVlWzBdPy52YWx1ZSA/PyAnJyxcbiAgICAgICAgLy8gVE9ETyByZW1vdmUgZXhwZWN0LWVycm9yIHdoZW4gd2UncmUgb24gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEBncmFmYW5hL2RhdGFcbiAgICAgICAgdmFsdWVzOiB1bmNvbW1pdHRlZFZhbHVlLm1hcCgob3B0aW9uOiBTZWxlY3RhYmxlVmFsdWU8c3RyaW5nPikgPT4gb3B0aW9uLnZhbHVlKSxcbiAgICAgICAgdmFsdWVMYWJlbHM6IHVuY29tbWl0dGVkVmFsdWUubWFwKChvcHRpb246IFNlbGVjdGFibGVWYWx1ZTxzdHJpbmc+KSA9PiBvcHRpb24ubGFiZWwpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcblxuICBjb25zdCB2YWx1ZVNlbGVjdCA9IChcbiAgICA8U2VsZWN0XG4gICAgICB2aXJ0dWFsaXplZFxuICAgICAgYWxsb3dDdXN0b21WYWx1ZT17bW9kZWwuc3RhdGUuYWxsb3dDdXN0b21WYWx1ZSA/PyB0cnVlfVxuICAgICAgaXNWYWxpZE5ld09wdGlvbj17KGlucHV0VmFsdWUpID0+IGlucHV0VmFsdWUudHJpbSgpLmxlbmd0aCA+IDB9XG4gICAgICBhbGxvd0NyZWF0ZVdoaWxlTG9hZGluZ1xuICAgICAgZm9ybWF0Q3JlYXRlTGFiZWw9eyhpbnB1dFZhbHVlKSA9PiBgVXNlIGN1c3RvbSB2YWx1ZTogJHtpbnB1dFZhbHVlfWB9XG4gICAgICBkaXNhYmxlZD17bW9kZWwuc3RhdGUucmVhZE9ubHl9XG4gICAgICBjbGFzc05hbWU9e2N4KHN0eWxlcy52YWx1ZSwgaXNWYWx1ZXNPcGVuID8gc3R5bGVzLndpZHRoV2hlbk9wZW4gOiB1bmRlZmluZWQpfVxuICAgICAgd2lkdGg9XCJhdXRvXCJcbiAgICAgIHZhbHVlPXt2YWx1ZVZhbHVlfVxuICAgICAgZmlsdGVyT3B0aW9uPXtmaWx0ZXJOb09wfVxuICAgICAgcGxhY2Vob2xkZXI9eydTZWxlY3QgdmFsdWUnfVxuICAgICAgb3B0aW9ucz17ZmlsdGVyZWRWYWx1ZU9wdGlvbnN9XG4gICAgICBpbnB1dFZhbHVlPXt2YWx1ZUlucHV0VmFsdWV9XG4gICAgICBvbklucHV0Q2hhbmdlPXtvblZhbHVlSW5wdXRDaGFuZ2V9XG4gICAgICBvbkNoYW5nZT17KHYpID0+IHtcbiAgICAgICAgbW9kZWwuX3VwZGF0ZUZpbHRlcihmaWx0ZXIsIHtcbiAgICAgICAgICB2YWx1ZTogdi52YWx1ZSxcbiAgICAgICAgICB2YWx1ZUxhYmVsczogdi5sYWJlbCA/IFt2LmxhYmVsXSA6IFt2LnZhbHVlXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHZhbHVlSGFzQ3VzdG9tVmFsdWUgIT09IHYuX19pc05ld19fKSB7XG4gICAgICAgICAgc2V0VmFsdWVIYXNDdXN0b21WYWx1ZSh2Ll9faXNOZXdfXyk7XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICAvLyB0aGVyZSdzIGEgYnVnIGluIHJlYWN0LXNlbGVjdCB3aGVyZSB0aGUgbWVudSBkb2Vzbid0IHJlY2FsY3VsYXRlIGl0cyBwb3NpdGlvbiB3aGVuIHRoZSBvcHRpb25zIGFyZSBsb2FkZWQgYXN5bmNocm9ub3VzbHlcbiAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZ3JhZmFuYS9ncmFmYW5hL2lzc3Vlcy82MzU1OFxuICAgICAgLy8gaW5zdGVhZCwgd2UgZXhwbGljaXRseSBjb250cm9sIHRoZSBtZW51IHZpc2liaWxpdHkgYW5kIHByZXZlbnQgc2hvd2luZyBpdCB1bnRpbCB0aGUgb3B0aW9ucyBoYXZlIGZ1bGx5IGxvYWRlZFxuICAgICAgaXNPcGVuPXtpc1ZhbHVlc09wZW4gJiYgIWlzVmFsdWVzTG9hZGluZ31cbiAgICAgIGlzTG9hZGluZz17aXNWYWx1ZXNMb2FkaW5nfVxuICAgICAgb3Blbk1lbnVPbkZvY3VzPXt0cnVlfVxuICAgICAgb25PcGVuTWVudT17YXN5bmMgKCkgPT4ge1xuICAgICAgICBzZXRJc1ZhbHVlc0xvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHNldElzVmFsdWVzT3Blbih0cnVlKTtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gYXdhaXQgbW9kZWwuX2dldFZhbHVlc0ZvcihmaWx0ZXIpO1xuICAgICAgICBzZXRJc1ZhbHVlc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICBzZXRWYWx1ZXModmFsdWVzKTtcbiAgICAgICAgaWYgKHZhbHVlSGFzQ3VzdG9tVmFsdWUpIHtcbiAgICAgICAgICBzZXRWYWx1ZUlucHV0VmFsdWUodmFsdWVWYWx1ZT8ubGFiZWwgPz8gJycpO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgICAgb25DbG9zZU1lbnU9eygpID0+IHtcbiAgICAgICAgc2V0SXNWYWx1ZXNPcGVuKGZhbHNlKTtcbiAgICAgICAgc2V0VmFsdWVJbnB1dFZhbHVlKCcnKTtcbiAgICAgIH19XG4gICAgICB7Li4uKGlzTXVsdGlWYWx1ZSAmJiBtdWx0aVZhbHVlUHJvcHMpfVxuICAgIC8+XG4gICk7XG5cbiAgY29uc3Qga2V5U2VsZWN0ID0gKFxuICAgIDxTZWxlY3RcbiAgICAgIC8vIEJ5IGNoYW5naW5nIHRoZSBrZXksIHdlIHJlc2V0IHRoZSBTZWxlY3QgY29tcG9uZW50LFxuICAgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIGxvYWRlZCB2YWx1ZXMgYXJlIHNob3duIGFmdGVyIHRoZXkgYXJlIGxvYWRlZFxuICAgICAga2V5PXtgJHtpc1ZhbHVlc0xvYWRpbmcgPyAnbG9hZGluZycgOiAnbG9hZGVkJ31gfVxuICAgICAgZGlzYWJsZWQ9e21vZGVsLnN0YXRlLnJlYWRPbmx5fVxuICAgICAgY2xhc3NOYW1lPXtjeChzdHlsZXMua2V5LCBpc0tleXNPcGVuID8gc3R5bGVzLndpZHRoV2hlbk9wZW4gOiB1bmRlZmluZWQpfVxuICAgICAgd2lkdGg9XCJhdXRvXCJcbiAgICAgIGFsbG93Q3VzdG9tVmFsdWU9e21vZGVsLnN0YXRlLmFsbG93Q3VzdG9tVmFsdWUgPz8gdHJ1ZX1cbiAgICAgIHZhbHVlPXtrZXlWYWx1ZX1cbiAgICAgIHBsYWNlaG9sZGVyPXsnU2VsZWN0IGxhYmVsJ31cbiAgICAgIG9wdGlvbnM9e2hhbmRsZU9wdGlvbkdyb3VwcyhrZXlzKX1cbiAgICAgIG9uQ2hhbmdlPXsodikgPT4ge1xuICAgICAgICBtb2RlbC5fdXBkYXRlRmlsdGVyKGZpbHRlciwge1xuICAgICAgICAgIGtleTogdi52YWx1ZSxcbiAgICAgICAgICBrZXlMYWJlbDogdi5sYWJlbCxcbiAgICAgICAgICAvLyBjbGVhciB2YWx1ZSBpZiBrZXkgaGFzIGNoYW5nZWRcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgdmFsdWVMYWJlbHM6IFsnJ10sXG4gICAgICAgICAgdmFsdWVzOiB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRVbmNvbW1pdHRlZFZhbHVlKFtdKTtcbiAgICAgIH19XG4gICAgICBhdXRvRm9jdXM9e2ZpbHRlci5rZXkgPT09ICcnfVxuICAgICAgLy8gdGhlcmUncyBhIGJ1ZyBpbiByZWFjdC1zZWxlY3Qgd2hlcmUgdGhlIG1lbnUgZG9lc24ndCByZWNhbGN1bGF0ZSBpdHMgcG9zaXRpb24gd2hlbiB0aGUgb3B0aW9ucyBhcmUgbG9hZGVkIGFzeW5jaHJvbm91c2x5XG4gICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2dyYWZhbmEvZ3JhZmFuYS9pc3N1ZXMvNjM1NThcbiAgICAgIC8vIGluc3RlYWQsIHdlIGV4cGxpY2l0bHkgY29udHJvbCB0aGUgbWVudSB2aXNpYmlsaXR5IGFuZCBwcmV2ZW50IHNob3dpbmcgaXQgdW50aWwgdGhlIG9wdGlvbnMgaGF2ZSBmdWxseSBsb2FkZWRcbiAgICAgIGlzT3Blbj17aXNLZXlzT3BlbiAmJiAhaXNLZXlzTG9hZGluZ31cbiAgICAgIGlzTG9hZGluZz17aXNLZXlzTG9hZGluZ31cbiAgICAgIG9uT3Blbk1lbnU9e2FzeW5jICgpID0+IHtcbiAgICAgICAgc2V0SXNLZXlzT3Blbih0cnVlKTtcbiAgICAgICAgc2V0SXNLZXlzTG9hZGluZyh0cnVlKTtcbiAgICAgICAgY29uc3Qga2V5cyA9IGF3YWl0IG1vZGVsLl9nZXRLZXlzKGZpbHRlci5rZXkpO1xuICAgICAgICBzZXRJc0tleXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgc2V0S2V5cyhrZXlzKTtcbiAgICAgIH19XG4gICAgICBvbkNsb3NlTWVudT17KCkgPT4ge1xuICAgICAgICBzZXRJc0tleXNPcGVuKGZhbHNlKTtcbiAgICAgIH19XG4gICAgICBvbkJsdXI9eygpID0+IHtcbiAgICAgICAgaWYgKGZpbHRlci5rZXkgPT09ICcnKSB7XG4gICAgICAgICAgbW9kZWwuX3JlbW92ZUZpbHRlcihmaWx0ZXIpO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgICAgb3Blbk1lbnVPbkZvY3VzPXt0cnVlfVxuICAgIC8+XG4gICk7XG5cbiAgY29uc3Qgb3BlcmF0b3JTZWxlY3QgPSAoXG4gICAgPFNlbGVjdFxuICAgICAgY2xhc3NOYW1lPXtjeChzdHlsZXMub3BlcmF0b3IsIHtcbiAgICAgICAgW3N0eWxlcy53aWR0aFdoZW5PcGVuXTogaXNPcGVyYXRvck9wZW4sXG4gICAgICB9KX1cbiAgICAgIHZhbHVlPXtmaWx0ZXIub3BlcmF0b3J9XG4gICAgICBkaXNhYmxlZD17bW9kZWwuc3RhdGUucmVhZE9ubHl9XG4gICAgICBvcHRpb25zPXttb2RlbC5fZ2V0T3BlcmF0b3JzKCl9XG4gICAgICBvbkNoYW5nZT17b25PcGVyYXRvckNoYW5nZX1cbiAgICAgIG9uT3Blbk1lbnU9eygpID0+IHtcbiAgICAgICAgc2V0SXNPcGVyYXRvck9wZW4odHJ1ZSk7XG4gICAgICB9fVxuICAgICAgb25DbG9zZU1lbnU9eygpID0+IHtcbiAgICAgICAgc2V0SXNPcGVyYXRvck9wZW4oZmFsc2UpO1xuICAgICAgfX1cbiAgICAvPlxuICApO1xuXG4gIGlmIChtb2RlbC5zdGF0ZS5sYXlvdXQgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICBpZiAoZmlsdGVyLmtleSkge1xuICAgICAgY29uc3QgbGFiZWwgPSAoXG4gICAgICAgIDxDb250cm9sc0xhYmVsIGxheW91dD1cInZlcnRpY2FsXCIgbGFiZWw9e2ZpbHRlci5rZXkgPz8gJyd9IG9uUmVtb3ZlPXsoKSA9PiBtb2RlbC5fcmVtb3ZlRmlsdGVyKGZpbHRlcil9IC8+XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmllbGQgbGFiZWw9e2xhYmVsfSBkYXRhLXRlc3RpZD17YEFkSG9jRmlsdGVyLSR7ZmlsdGVyLmtleX1gfSBjbGFzc05hbWU9e3N0eWxlcy5maWVsZH0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy53cmFwcGVyfT5cbiAgICAgICAgICAgIHtvcGVyYXRvclNlbGVjdH1cbiAgICAgICAgICAgIHt2YWx1ZVNlbGVjdH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9GaWVsZD5cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWVsZCBsYWJlbD17J1NlbGVjdCBsYWJlbCd9IGRhdGEtdGVzdGlkPXtgQWRIb2NGaWx0ZXItJHtmaWx0ZXIua2V5fWB9IGNsYXNzTmFtZT17c3R5bGVzLmZpZWxkfT5cbiAgICAgICAgICB7a2V5U2VsZWN0fVxuICAgICAgICA8L0ZpZWxkPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMud3JhcHBlcn0gZGF0YS10ZXN0aWQ9e2BBZEhvY0ZpbHRlci0ke2ZpbHRlci5rZXl9YH0+XG4gICAgICB7a2V5U2VsZWN0fVxuICAgICAge29wZXJhdG9yU2VsZWN0fVxuICAgICAge3ZhbHVlU2VsZWN0fVxuICAgICAgPEJ1dHRvblxuICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBmaWx0ZXJcIlxuICAgICAgICB0aXRsZT1cIlJlbW92ZSBmaWx0ZXJcIlxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5yZW1vdmVCdXR0b259XG4gICAgICAgIGljb249XCJ0aW1lc1wiXG4gICAgICAgIGRhdGEtdGVzdGlkPXtgQWRIb2NGaWx0ZXItcmVtb3ZlLSR7ZmlsdGVyLmtleSA/PyAnJ31gfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBtb2RlbC5fcmVtb3ZlRmlsdGVyKGZpbHRlcil9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBnZXRTdHlsZXMgPSAodGhlbWU6IEdyYWZhbmFUaGVtZTIpID0+ICh7XG4gIGZpZWxkOiBjc3Moe1xuICAgIG1hcmdpbkJvdHRvbTogMCxcbiAgfSksXG4gIHdyYXBwZXI6IGNzcyh7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICc+IConOiB7XG4gICAgICAnJjpub3QoOmZpcnN0LWNoaWxkKSc6IHtcbiAgICAgICAgLy8gTmVnYXRpdmUgbWFyZ2luIGhpZGVzIHRoZSBkb3VibGUtYm9yZGVyIG9uIGFkamFjZW50IHNlbGVjdHNcbiAgICAgICAgbWFyZ2luTGVmdDogLTEsXG4gICAgICB9LFxuXG4gICAgICAnJjpmaXJzdC1jaGlsZCc6IHtcbiAgICAgICAgYm9yZGVyVG9wUmlnaHRSYWRpdXM6IDAsXG4gICAgICAgIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiAwLFxuICAgICAgfSxcblxuICAgICAgJyY6bGFzdC1jaGlsZCc6IHtcbiAgICAgICAgYm9yZGVyVG9wTGVmdFJhZGl1czogMCxcbiAgICAgICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogMCxcbiAgICAgIH0sXG5cbiAgICAgICcmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCknOiB7XG4gICAgICAgIGJvcmRlclJhZGl1czogMCxcbiAgICAgIH0sXG5cbiAgICAgIC8vIEZpeCBmb2N1cyBzdGF0ZSB6SW5kZXggaXNzdWVzXG4gICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgIHpJbmRleDogMCxcblxuICAgICAgLy8gQWRqYWNlbnQgYm9yZGVycyBhcmUgb3ZlcmxhcHBpbmcsIHNvIHJhaXNlIGNoaWxkcmVuIHVwIHdoZW4gaG92ZXJpbmcgZXRjXG4gICAgICAvLyBzbyBhbGwgdGhhdCBjaGlsZCdzIGJvcmRlcnMgYXJlIHZpc2libGUuXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgekluZGV4OiAxLFxuICAgICAgfSxcblxuICAgICAgJyY6Zm9jdXMtd2l0aGluJzoge1xuICAgICAgICB6SW5kZXg6IDIsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pLFxuICB3aWR0aFdoZW5PcGVuOiBjc3Moe1xuICAgIG1pbldpZHRoOiB0aGVtZS5zcGFjaW5nKDE2KSxcbiAgfSksXG4gIHZhbHVlOiBjc3Moe1xuICAgIGZsZXhCYXNpczogJ2NvbnRlbnQnLFxuICAgIGZsZXhTaHJpbms6IDEsXG4gICAgbWluV2lkdGg6ICc5MHB4JyxcbiAgfSksXG4gIGtleTogY3NzKHtcbiAgICBmbGV4QmFzaXM6ICdjb250ZW50JyxcbiAgICBtaW5XaWR0aDogJzkwcHgnLFxuICAgIGZsZXhTaHJpbms6IDEsXG4gIH0pLFxuICBvcGVyYXRvcjogY3NzKHtcbiAgICBmbGV4U2hyaW5rOiAwLFxuICAgIGZsZXhCYXNpczogJ2NvbnRlbnQnLFxuICB9KSxcbiAgcmVtb3ZlQnV0dG9uOiBjc3Moe1xuICAgIHBhZGRpbmdMZWZ0OiB0aGVtZS5zcGFjaW5nKDMgLyAyKSxcbiAgICBwYWRkaW5nUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMyAvIDIpLFxuICAgIGJvcmRlckxlZnQ6ICdub25lJyxcbiAgICB3aWR0aDogdGhlbWUuc3BhY2luZygzKSxcbiAgICBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2luZygxKSxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICAvLyBUbyBub3QgaGF2ZSBidXR0b24gYmFja2dyb3VuZCBhbmQgbGFzdCBzZWxlY3QgYm9yZGVyIGludGVyc2VjdFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGxlZnQ6ICcxcHgnLFxuICB9KSxcbn0pO1xuIl0sIm5hbWVzIjpbIl9hIiwiX2IiLCJ2YWx1ZXMiLCJrZXlzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLFNBQVMsZ0JBQUEsQ0FBaUIsS0FBYSxLQUF3QyxFQUFBO0FBQzdFLEVBQUEsT0FBTyxRQUFRLEVBQ1gsR0FBQTtBQUFBLElBQ0UsS0FBTyxFQUFBLEdBQUE7QUFBQSxJQUNQLE9BQU8sS0FBUyxJQUFBLEdBQUE7QUFBQSxHQUVsQixHQUFBLElBQUEsQ0FBQTtBQUNOLENBQUE7QUFFQSxNQUFNLGFBQWEsTUFBTSxJQUFBLENBQUE7QUFFbEIsU0FBUyxtQkFBb0IsQ0FBQSxFQUFFLE1BQVEsRUFBQSxLQUFBLEVBQWdCLEVBQUE7QUEzQjlELEVBQUEsSUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEs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
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { cx, css } from '@emotion/css';
|
|
2
|
-
import { useStyles2, Tooltip, IconButton } from '@grafana/ui';
|
|
3
|
-
import React, { useState, useRef, useCallback, useEffect } from 'react';
|
|
4
|
-
import { AdHocCombobox } from './AdHocFiltersCombobox.js';
|
|
5
|
-
|
|
6
|
-
var __defProp = Object.defineProperty;
|
|
7
|
-
var __defProps = Object.defineProperties;
|
|
8
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
9
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
-
var __spreadValues = (a, b) => {
|
|
14
|
-
for (var prop in b || (b = {}))
|
|
15
|
-
if (__hasOwnProp.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
if (__getOwnPropSymbols)
|
|
18
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
-
if (__propIsEnum.call(b, prop))
|
|
20
|
-
__defNormalProp(a, prop, b[prop]);
|
|
21
|
-
}
|
|
22
|
-
return a;
|
|
23
|
-
};
|
|
24
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
-
function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
26
|
-
var _a, _b, _c;
|
|
27
|
-
const styles = useStyles2(getStyles);
|
|
28
|
-
const [viewMode, setViewMode] = useState(true);
|
|
29
|
-
const [shouldFocusOnPillWrapper, setShouldFocusOnPillWrapper] = useState(false);
|
|
30
|
-
const pillWrapperRef = useRef(null);
|
|
31
|
-
const [populateInputOnEdit, setPopulateInputOnEdit] = useState(false);
|
|
32
|
-
const keyLabel = (_a = filter.keyLabel) != null ? _a : filter.key;
|
|
33
|
-
const valueLabel = ((_b = filter.valueLabels) == null ? void 0 : _b.join(", ")) || ((_c = filter.values) == null ? void 0 : _c.join(", ")) || filter.value;
|
|
34
|
-
const handleChangeViewMode = useCallback(
|
|
35
|
-
(event, shouldFocusOnPillWrapperOverride) => {
|
|
36
|
-
event == null ? void 0 : event.stopPropagation();
|
|
37
|
-
if (readOnly) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
setShouldFocusOnPillWrapper(shouldFocusOnPillWrapperOverride != null ? shouldFocusOnPillWrapperOverride : !viewMode);
|
|
41
|
-
setViewMode(!viewMode);
|
|
42
|
-
},
|
|
43
|
-
[readOnly, viewMode]
|
|
44
|
-
);
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
var _a2;
|
|
47
|
-
if (shouldFocusOnPillWrapper) {
|
|
48
|
-
(_a2 = pillWrapperRef.current) == null ? void 0 : _a2.focus();
|
|
49
|
-
setShouldFocusOnPillWrapper(false);
|
|
50
|
-
}
|
|
51
|
-
}, [shouldFocusOnPillWrapper]);
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (filter.forceEdit && viewMode) {
|
|
54
|
-
setViewMode(false);
|
|
55
|
-
model._updateFilter(filter, { forceEdit: void 0 });
|
|
56
|
-
}
|
|
57
|
-
}, [filter, model, viewMode]);
|
|
58
|
-
useEffect(() => {
|
|
59
|
-
if (viewMode) {
|
|
60
|
-
setPopulateInputOnEdit((prevValue) => prevValue ? false : prevValue);
|
|
61
|
-
}
|
|
62
|
-
}, [viewMode]);
|
|
63
|
-
if (viewMode) {
|
|
64
|
-
const pillText = /* @__PURE__ */ React.createElement("span", {
|
|
65
|
-
className: styles.pillText
|
|
66
|
-
}, keyLabel, " ", filter.operator, " ", valueLabel);
|
|
67
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
68
|
-
className: cx(styles.combinedFilterPill, { [styles.readOnlyCombinedFilter]: readOnly }),
|
|
69
|
-
onClick: (e) => {
|
|
70
|
-
e.stopPropagation();
|
|
71
|
-
setPopulateInputOnEdit(true);
|
|
72
|
-
handleChangeViewMode();
|
|
73
|
-
},
|
|
74
|
-
onKeyDown: (e) => {
|
|
75
|
-
if (e.key === "Enter") {
|
|
76
|
-
setPopulateInputOnEdit(true);
|
|
77
|
-
handleChangeViewMode();
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
role: "button",
|
|
81
|
-
"aria-label": `Edit filter with key ${keyLabel}`,
|
|
82
|
-
tabIndex: 0,
|
|
83
|
-
ref: pillWrapperRef
|
|
84
|
-
}, valueLabel.length < 20 ? pillText : /* @__PURE__ */ React.createElement(Tooltip, {
|
|
85
|
-
content: /* @__PURE__ */ React.createElement("div", {
|
|
86
|
-
className: styles.tooltipText
|
|
87
|
-
}, valueLabel),
|
|
88
|
-
placement: "top"
|
|
89
|
-
}, pillText), !readOnly ? /* @__PURE__ */ React.createElement(IconButton, {
|
|
90
|
-
onClick: (e) => {
|
|
91
|
-
e.stopPropagation();
|
|
92
|
-
model._removeFilter(filter);
|
|
93
|
-
setTimeout(() => focusOnWipInputRef == null ? void 0 : focusOnWipInputRef());
|
|
94
|
-
},
|
|
95
|
-
onKeyDownCapture: (e) => {
|
|
96
|
-
if (e.key === "Enter") {
|
|
97
|
-
e.preventDefault();
|
|
98
|
-
e.stopPropagation();
|
|
99
|
-
model._removeFilter(filter);
|
|
100
|
-
setTimeout(() => focusOnWipInputRef == null ? void 0 : focusOnWipInputRef());
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
name: "times",
|
|
104
|
-
size: "md",
|
|
105
|
-
className: styles.removeButton,
|
|
106
|
-
tooltip: `Remove filter with key ${keyLabel}`
|
|
107
|
-
}) : null);
|
|
108
|
-
}
|
|
109
|
-
return /* @__PURE__ */ React.createElement(AdHocCombobox, {
|
|
110
|
-
filter,
|
|
111
|
-
model,
|
|
112
|
-
handleChangeViewMode,
|
|
113
|
-
focusOnWipInputRef,
|
|
114
|
-
populateInputOnEdit
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
const getStyles = (theme) => ({
|
|
118
|
-
combinedFilterPill: css(__spreadProps(__spreadValues({
|
|
119
|
-
display: "flex",
|
|
120
|
-
alignItems: "center",
|
|
121
|
-
background: theme.colors.action.selected,
|
|
122
|
-
borderRadius: theme.shape.radius.default,
|
|
123
|
-
border: `1px solid ${theme.colors.border.weak}`,
|
|
124
|
-
padding: theme.spacing(0.125, 0, 0.125, 1),
|
|
125
|
-
color: theme.colors.text.primary,
|
|
126
|
-
overflow: "hidden",
|
|
127
|
-
whiteSpace: "nowrap",
|
|
128
|
-
minHeight: theme.spacing(2.75)
|
|
129
|
-
}, theme.typography.bodySmall), {
|
|
130
|
-
fontWeight: theme.typography.fontWeightBold,
|
|
131
|
-
cursor: "pointer",
|
|
132
|
-
"&:hover": {
|
|
133
|
-
background: theme.colors.action.hover
|
|
134
|
-
}
|
|
135
|
-
})),
|
|
136
|
-
readOnlyCombinedFilter: css({
|
|
137
|
-
paddingRight: theme.spacing(1),
|
|
138
|
-
cursor: "text",
|
|
139
|
-
"&:hover": {
|
|
140
|
-
background: theme.colors.action.selected
|
|
141
|
-
}
|
|
142
|
-
}),
|
|
143
|
-
removeButton: css({
|
|
144
|
-
marginInline: theme.spacing(0.5),
|
|
145
|
-
cursor: "pointer",
|
|
146
|
-
"&:hover": {
|
|
147
|
-
color: theme.colors.text.primary
|
|
148
|
-
}
|
|
149
|
-
}),
|
|
150
|
-
pillText: css({
|
|
151
|
-
maxWidth: "200px",
|
|
152
|
-
width: "100%",
|
|
153
|
-
textOverflow: "ellipsis",
|
|
154
|
-
overflow: "hidden"
|
|
155
|
-
}),
|
|
156
|
-
tooltipText: css({
|
|
157
|
-
textAlign: "center"
|
|
158
|
-
})
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
export { AdHocFilterPill };
|
|
162
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRIb2NGaWx0ZXJQaWxsLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdmFyaWFibGVzL2FkaG9jL0FkSG9jRmlsdGVyc0NvbWJvYm94L0FkSG9jRmlsdGVyUGlsbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzLCBjeCB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBHcmFmYW5hVGhlbWUyIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyB1c2VTdHlsZXMyLCBJY29uQnV0dG9uLCBUb29sdGlwIH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBZEhvY0NvbWJvYm94IH0gZnJvbSAnLi9BZEhvY0ZpbHRlcnNDb21ib2JveCc7XG5pbXBvcnQgeyBBZEhvY0ZpbHRlcldpdGhMYWJlbHMsIEFkSG9jRmlsdGVyc1ZhcmlhYmxlIH0gZnJvbSAnLi4vQWRIb2NGaWx0ZXJzVmFyaWFibGUnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBmaWx0ZXI6IEFkSG9jRmlsdGVyV2l0aExhYmVscztcbiAgbW9kZWw6IEFkSG9jRmlsdGVyc1ZhcmlhYmxlO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIGZvY3VzT25XaXBJbnB1dFJlZj86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZEhvY0ZpbHRlclBpbGwoeyBmaWx0ZXIsIG1vZGVsLCByZWFkT25seSwgZm9jdXNPbldpcElucHV0UmVmIH06IFByb3BzKSB7XG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlczIoZ2V0U3R5bGVzKTtcbiAgY29uc3QgW3ZpZXdNb2RlLCBzZXRWaWV3TW9kZV0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW3Nob3VsZEZvY3VzT25QaWxsV3JhcHBlciwgc2V0U2hvdWxkRm9jdXNPblBpbGxXcmFwcGVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgcGlsbFdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbcG9wdWxhdGVJbnB1dE9uRWRpdCwgc2V0UG9wdWxhdGVJbnB1dE9uRWRpdF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3Qga2V5TGFiZWwgPSBmaWx0ZXIua2V5TGFiZWwgPz8gZmlsdGVyLmtleTtcbiAgY29uc3QgdmFsdWVMYWJlbCA9IGZpbHRlci52YWx1ZUxhYmVscz8uam9pbignLCAnKSB8fCBmaWx0ZXIudmFsdWVzPy5qb2luKCcsICcpIHx8IGZpbHRlci52YWx1ZTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2VWaWV3TW9kZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudD86IFJlYWN0Lk1vdXNlRXZlbnQsIHNob3VsZEZvY3VzT25QaWxsV3JhcHBlck92ZXJyaWRlPzogYm9vbGVhbikgPT4ge1xuICAgICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgaWYgKHJlYWRPbmx5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2V0U2hvdWxkRm9jdXNPblBpbGxXcmFwcGVyKHNob3VsZEZvY3VzT25QaWxsV3JhcHBlck92ZXJyaWRlID8/ICF2aWV3TW9kZSk7XG4gICAgICBzZXRWaWV3TW9kZSghdmlld01vZGUpO1xuICAgIH0sXG4gICAgW3JlYWRPbmx5LCB2aWV3TW9kZV1cbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzaG91bGRGb2N1c09uUGlsbFdyYXBwZXIpIHtcbiAgICAgIHBpbGxXcmFwcGVyUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICBzZXRTaG91bGRGb2N1c09uUGlsbFdyYXBwZXIoZmFsc2UpO1xuICAgIH1cbiAgfSwgW3Nob3VsZEZvY3VzT25QaWxsV3JhcHBlcl0pO1xuXG4gIC8vIHNldCB2aWV3TW9kZSB0byBmYWxzZSB3aGVuIGZpbHRlci5mb3JjZUVkaXQgaXMgZGVmaW5lZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmaWx0ZXIuZm9yY2VFZGl0ICYmIHZpZXdNb2RlKSB7XG4gICAgICBzZXRWaWV3TW9kZShmYWxzZSk7XG4gICAgICAvLyBpbW1lZGlhdGVseSBzZXQgZm9yY2VFZGl0IGJhY2sgdG8gdW5kZWZpbmVkIGFzIGEgY2xlYW4gdXBcbiAgICAgIG1vZGVsLl91cGRhdGVGaWx0ZXIoZmlsdGVyLCB7IGZvcmNlRWRpdDogdW5kZWZpbmVkIH0pO1xuICAgIH1cbiAgfSwgW2ZpbHRlciwgbW9kZWwsIHZpZXdNb2RlXSk7XG5cbiAgLy8gcmVzZXQgcG9wdWxhdGVJbnB1dE9uRWRpdCB3aGVuIHBpbGwgZ29lcyBpbnRvIHZpZXcgbW9kZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2aWV3TW9kZSkge1xuICAgICAgc2V0UG9wdWxhdGVJbnB1dE9uRWRpdCgocHJldlZhbHVlKSA9PiAocHJldlZhbHVlID8gZmFsc2UgOiBwcmV2VmFsdWUpKTtcbiAgICB9XG4gIH0sIFt2aWV3TW9kZV0pO1xuXG4gIGlmICh2aWV3TW9kZSkge1xuICAgIGNvbnN0IHBpbGxUZXh0ID0gKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMucGlsbFRleHR9PlxuICAgICAgICB7a2V5TGFiZWx9IHtmaWx0ZXIub3BlcmF0b3J9IHt2YWx1ZUxhYmVsfVxuICAgICAgPC9zcGFuPlxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjeChzdHlsZXMuY29tYmluZWRGaWx0ZXJQaWxsLCB7IFtzdHlsZXMucmVhZE9ubHlDb21iaW5lZEZpbHRlcl06IHJlYWRPbmx5IH0pfVxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgc2V0UG9wdWxhdGVJbnB1dE9uRWRpdCh0cnVlKTtcbiAgICAgICAgICBoYW5kbGVDaGFuZ2VWaWV3TW9kZSgpO1xuICAgICAgICB9fVxuICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICBzZXRQb3B1bGF0ZUlucHV0T25FZGl0KHRydWUpO1xuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlVmlld01vZGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBhcmlhLWxhYmVsPXtgRWRpdCBmaWx0ZXIgd2l0aCBrZXkgJHtrZXlMYWJlbH1gfVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgcmVmPXtwaWxsV3JhcHBlclJlZn1cbiAgICAgID5cbiAgICAgICAge3ZhbHVlTGFiZWwubGVuZ3RoIDwgMjAgPyAoXG4gICAgICAgICAgcGlsbFRleHRcbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCBjb250ZW50PXs8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRvb2x0aXBUZXh0fT57dmFsdWVMYWJlbH08L2Rpdj59IHBsYWNlbWVudD1cInRvcFwiPlxuICAgICAgICAgICAge3BpbGxUZXh0fVxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cblxuICAgICAgICB7IXJlYWRPbmx5ID8gKFxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICBtb2RlbC5fcmVtb3ZlRmlsdGVyKGZpbHRlcik7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZm9jdXNPbldpcElucHV0UmVmPy4oKSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25LZXlEb3duQ2FwdHVyZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgbW9kZWwuX3JlbW92ZUZpbHRlcihmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZm9jdXNPbldpcElucHV0UmVmPy4oKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBuYW1lPVwidGltZXNcIlxuICAgICAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnJlbW92ZUJ1dHRvbn1cbiAgICAgICAgICAgIHRvb2x0aXA9e2BSZW1vdmUgZmlsdGVyIHdpdGgga2V5ICR7a2V5TGFiZWx9YH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxBZEhvY0NvbWJvYm94XG4gICAgICBmaWx0ZXI9e2ZpbHRlcn1cbiAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgIGhhbmRsZUNoYW5nZVZpZXdNb2RlPXtoYW5kbGVDaGFuZ2VWaWV3TW9kZX1cbiAgICAgIGZvY3VzT25XaXBJbnB1dFJlZj17Zm9jdXNPbldpcElucHV0UmVmfVxuICAgICAgcG9wdWxhdGVJbnB1dE9uRWRpdD17cG9wdWxhdGVJbnB1dE9uRWRpdH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBnZXRTdHlsZXMgPSAodGhlbWU6IEdyYWZhbmFUaGVtZTIpID0+ICh7XG4gIGNvbWJpbmVkRmlsdGVyUGlsbDogY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzLmFjdGlvbi5zZWxlY3RlZCxcbiAgICBib3JkZXJSYWRpdXM6IHRoZW1lLnNoYXBlLnJhZGl1cy5kZWZhdWx0LFxuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5ib3JkZXIud2Vha31gLFxuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcoMC4xMjUsIDAsIDAuMTI1LCAxKSxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLnRleHQucHJpbWFyeSxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgbWluSGVpZ2h0OiB0aGVtZS5zcGFjaW5nKDIuNzUpLFxuICAgIC4uLnRoZW1lLnR5cG9ncmFwaHkuYm9keVNtYWxsLFxuICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFdlaWdodEJvbGQsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG5cbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lLmNvbG9ycy5hY3Rpb24uaG92ZXIsXG4gICAgfSxcbiAgfSksXG4gIHJlYWRPbmx5Q29tYmluZWRGaWx0ZXI6IGNzcyh7XG4gICAgcGFkZGluZ1JpZ2h0OiB0aGVtZS5zcGFjaW5nKDEpLFxuICAgIGN1cnNvcjogJ3RleHQnLFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzLmFjdGlvbi5zZWxlY3RlZCxcbiAgICB9LFxuICB9KSxcbiAgcmVtb3ZlQnV0dG9uOiBjc3Moe1xuICAgIG1hcmdpbklubGluZTogdGhlbWUuc3BhY2luZygwLjUpLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy50ZXh0LnByaW1hcnksXG4gICAgfSxcbiAgfSksXG4gIHBpbGxUZXh0OiBjc3Moe1xuICAgIG1heFdpZHRoOiAnMjAwcHgnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgfSksXG4gIHRvb2x0aXBUZXh0OiBjc3Moe1xu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
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, useLayoutEffect } from 'react';
|
|
2
|
-
import { AdHocCombobox } from './AdHocFiltersCombobox.js';
|
|
3
|
-
|
|
4
|
-
const AdHocFiltersAlwaysWipCombobox = forwardRef(function AdHocFiltersAlwaysWipCombobox2({ model }, parentRef) {
|
|
5
|
-
const { _wip } = model.useState();
|
|
6
|
-
useLayoutEffect(() => {
|
|
7
|
-
if (!_wip) {
|
|
8
|
-
model._addWip();
|
|
9
|
-
}
|
|
10
|
-
}, [_wip]);
|
|
11
|
-
return /* @__PURE__ */ React.createElement(AdHocCombobox, {
|
|
12
|
-
model,
|
|
13
|
-
filter: _wip,
|
|
14
|
-
isAlwaysWip: true,
|
|
15
|
-
ref: parentRef
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
export { AdHocFiltersAlwaysWipCombobox };
|
|
20
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRIb2NGaWx0ZXJzQWx3YXlzV2lwQ29tYm9ib3guanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy92YXJpYWJsZXMvYWRob2MvQWRIb2NGaWx0ZXJzQ29tYm9ib3gvQWRIb2NGaWx0ZXJzQWx3YXlzV2lwQ29tYm9ib3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBZEhvY0ZpbHRlcnNWYXJpYWJsZSB9IGZyb20gJy4uL0FkSG9jRmlsdGVyc1ZhcmlhYmxlJztcbmltcG9ydCB7IEFkSG9jQ29tYm9ib3ggfSBmcm9tICcuL0FkSG9jRmlsdGVyc0NvbWJvYm94JztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgbW9kZWw6IEFkSG9jRmlsdGVyc1ZhcmlhYmxlO1xufVxuXG5leHBvcnQgY29uc3QgQWRIb2NGaWx0ZXJzQWx3YXlzV2lwQ29tYm9ib3ggPSBmb3J3YXJkUmVmKGZ1bmN0aW9uIEFkSG9jRmlsdGVyc0Fsd2F5c1dpcENvbWJvYm94KFxuICB7IG1vZGVsIH06IFByb3BzLFxuICAvLyBwYXNzIGFiaWxpdHkgdG8gZm9jdXMgb24gaW5wdXQgZWxlbWVudCBiYWNrIHRvIHBhcmVudFxuICAvLyAgICBwYXJlbnRSZWYgaXMgY29taW5nIGZyb20gQWRIb2NGaWx0ZXJzQ29tYm9ib3hSZW5kZXJlclxuICAvLyAgICBwYXJlbnRSZWYgaXMgbXV0YXRlZCB0aHJvdWdoIHVzZUltcGVyYXRpdmVIYW5kbGUgaW4gQWRIb2NDb21ib2JveFxuICBwYXJlbnRSZWZcbikge1xuICBjb25zdCB7IF93aXAgfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG5cbiAgLy8gd2hlbiBjb21ib2JveCBpcyBpbiB3aXAgbW9kZSB0aGVuIGNoZWNrIGFuZCBhZGQgX3dpcCBpZiBpdHMgbWlzc2luZ1xuICAvLyAgICBuZWVkZWQgb24gZmlyc3QgcmVuZGVyIGFuZCB3aGVuIF93aXAgaXMgcmVzZXQgb24gZmlsdGVyIHZhbHVlIGNvbW1pdFxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghX3dpcCkge1xuICAgICAgbW9kZWwuX2FkZFdpcCgpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW193aXBdKTtcblxuICByZXR1cm4gPEFkSG9jQ29tYm9ib3ggbW9kZWw9e21vZGVsfSBmaWx0ZXI9e193aXB9IGlzQWx3YXlzV2lwIHJlZj17cGFyZW50UmVmfSAvPjtcbn0pO1xuIl0sIm5hbWVzIjpbIkFkSG9jRmlsdGVyc0Fsd2F5c1dpcENvbWJvYm94Il0sIm1hcHBpbmdzIjoiOzs7QUFRTyxNQUFNLGdDQUFnQyxVQUFXLENBQUEsU0FBU0EsK0JBQy9ELEVBQUUsS0FBQSxJQUlGLFNBQ0EsRUFBQTtBQUNBLEVBQUEsTUFBTSxFQUFFLElBQUEsRUFBUyxHQUFBLEtBQUEsQ0FBTSxRQUFTLEVBQUEsQ0FBQTtBQUloQyxFQUFBLGVBQUEsQ0FBZ0IsTUFBTTtBQUNwQixJQUFBLElBQUksQ0FBQyxJQUFNLEVBQUE7QUFDVCxNQUFBLEtBQUEsQ0FBTSxPQUFRLEVBQUEsQ0FBQTtBQUFBLEtBQ2hCO0FBQUEsR0FHRixFQUFHLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQTtBQUVULEVBQUEsdUJBQVEsS0FBQSxDQUFBLGFBQUEsQ0FBQSxhQUFBLEVBQUE7QUFBQSxJQUFjLEtBQUE7QUFBQSxJQUFjLE1BQVEsRUFBQSxJQUFBO0FBQUEsSUFBTSxXQUFXLEVBQUEsSUFBQTtBQUFBLElBQUMsR0FBSyxFQUFBLFNBQUE7QUFBQSxHQUFXLENBQUEsQ0FBQTtBQUNoRixDQUFDOzs7OyJ9
|