@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.
Files changed (319) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/index.js +1 -1
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
  9. package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
  10. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
  11. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
  12. package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
  13. package/dist/esm/dist/esm/components/NestedScene.js +0 -95
  14. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
  15. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
  16. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
  17. package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
  18. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
  19. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
  20. package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
  21. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
  22. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
  23. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
  24. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
  25. package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
  26. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
  27. package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
  28. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
  29. package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
  30. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
  31. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
  32. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
  33. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
  34. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  35. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  36. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
  37. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  38. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  39. package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
  40. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
  41. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
  42. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
  43. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  44. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
  45. package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
  46. package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
  47. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
  48. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
  49. package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
  50. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
  51. package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
  52. package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
  53. package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
  54. package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
  55. package/dist/esm/dist/esm/core/events.js +0 -11
  56. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
  57. package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
  58. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
  59. package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
  60. package/dist/esm/dist/esm/core/types.js +0 -15
  61. package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
  62. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
  63. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
  64. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
  65. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
  66. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
  67. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
  68. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
  69. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
  70. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  71. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
  72. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  73. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  74. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
  75. package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
  76. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
  77. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
  78. package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
  79. package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
  80. package/dist/esm/dist/esm/services/utils.js +0 -71
  81. package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
  82. package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
  83. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
  84. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  85. package/dist/esm/dist/esm/utils/date.js +0 -15
  86. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
  87. package/dist/esm/dist/esm/utils/explore.js +0 -47
  88. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
  89. package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
  90. package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
  91. package/dist/esm/dist/esm/utils/metricTree.js +0 -53
  92. package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
  93. package/dist/esm/dist/esm/utils/utils.js +0 -11
  94. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
  95. package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
  96. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
  97. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  104. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  105. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  106. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  107. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  108. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
  109. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  110. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  111. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
  112. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
  113. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
  114. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
  115. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
  116. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
  117. package/dist/esm/dist/esm/variables/constants.js +0 -9
  118. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
  119. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
  120. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  121. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  122. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
  123. package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
  124. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
  125. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
  126. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
  127. package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
  128. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
  129. package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
  130. package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
  131. package/dist/esm/dist/esm/variables/macros/index.js +0 -26
  132. package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
  133. package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
  134. package/dist/esm/dist/esm/variables/macros/types.js +0 -11
  135. package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
  136. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
  137. package/dist/esm/dist/esm/variables/types.js +0 -11
  138. package/dist/esm/dist/esm/variables/utils.js +0 -172
  139. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
  140. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
  141. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
  142. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
  143. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
  144. package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
  145. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
  146. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
  147. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
  148. package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
  149. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
  150. package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
  151. package/dist/esm/querying/DataProviderSharer.js +0 -39
  152. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
  153. package/dist/esm/src/behaviors/CursorSync.js +0 -76
  154. package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
  155. package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
  156. package/dist/esm/src/behaviors/index.js +0 -5
  157. package/dist/esm/src/components/EmbeddedScene.js +0 -59
  158. package/dist/esm/src/components/NestedScene.js +0 -95
  159. package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
  160. package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
  161. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
  162. package/dist/esm/src/components/SceneApp/utils.js +0 -42
  163. package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
  164. package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
  165. package/dist/esm/src/components/SceneCanvasText.js +0 -32
  166. package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
  167. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
  168. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
  169. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
  170. package/dist/esm/src/components/SceneReactObject.js +0 -34
  171. package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
  172. package/dist/esm/src/components/SceneTimePicker.js +0 -139
  173. package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
  174. package/dist/esm/src/components/SceneToolbarButton.js +0 -33
  175. package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
  176. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
  177. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
  178. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
  179. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  180. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  181. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
  182. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  183. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  184. package/dist/esm/src/components/layout/LazyLoader.js +0 -103
  185. package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
  186. package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
  187. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
  188. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  189. package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
  190. package/dist/esm/src/components/layout/grid/constants.js +0 -7
  191. package/dist/esm/src/components/layout/grid/utils.js +0 -36
  192. package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
  193. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
  194. package/dist/esm/src/components/layout/split/Splitter.js +0 -386
  195. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
  196. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
  197. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
  198. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
  199. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
  200. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
  201. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
  202. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
  203. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
  204. package/dist/esm/src/core/PanelBuilders/index.js +0 -116
  205. package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
  206. package/dist/esm/src/core/SceneDataNode.js +0 -43
  207. package/dist/esm/src/core/SceneObjectBase.js +0 -286
  208. package/dist/esm/src/core/SceneObjectRef.js +0 -32
  209. package/dist/esm/src/core/SceneTimeRange.js +0 -231
  210. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
  211. package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
  212. package/dist/esm/src/core/events.js +0 -11
  213. package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
  214. package/dist/esm/src/core/sceneGraph/index.js +0 -25
  215. package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
  216. package/dist/esm/src/core/sceneGraph/utils.js +0 -64
  217. package/dist/esm/src/core/types.js +0 -15
  218. package/dist/esm/src/index.js +0 -108
  219. package/dist/esm/src/querying/DataLayersMerger.js +0 -46
  220. package/dist/esm/src/querying/DataProviderProxy.js +0 -37
  221. package/dist/esm/src/querying/DataProviderSharer.js +0 -108
  222. package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
  223. package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
  224. package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
  225. package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
  226. package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
  227. package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
  228. package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
  229. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
  230. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
  231. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  232. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
  233. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  234. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  235. package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
  236. package/dist/esm/src/querying/layers/index.js +0 -2
  237. package/dist/esm/src/querying/registerQueryWithController.js +0 -41
  238. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
  239. package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
  240. package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
  241. package/dist/esm/src/services/UrlSyncManager.js +0 -167
  242. package/dist/esm/src/services/useUrlSync.js +0 -29
  243. package/dist/esm/src/services/utils.js +0 -75
  244. package/dist/esm/src/utils/ControlsLabel.js +0 -107
  245. package/dist/esm/src/utils/LoadingIndicator.js +0 -19
  246. package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
  247. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  248. package/dist/esm/src/utils/date.js +0 -15
  249. package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
  250. package/dist/esm/src/utils/explore.js +0 -47
  251. package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
  252. package/dist/esm/src/utils/getDataSource.js +0 -18
  253. package/dist/esm/src/utils/getMessageFromError.js +0 -24
  254. package/dist/esm/src/utils/metricTree.js +0 -53
  255. package/dist/esm/src/utils/parseUrlParam.js +0 -41
  256. package/dist/esm/src/utils/utils.js +0 -11
  257. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
  258. package/dist/esm/src/utils/writeSceneLog.js +0 -12
  259. package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
  260. package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
  261. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
  262. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  269. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  270. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  271. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
  272. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  273. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  274. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
  275. package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
  276. package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
  277. package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
  278. package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
  279. package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
  280. package/dist/esm/src/variables/constants.js +0 -9
  281. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
  282. package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
  283. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  284. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  285. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
  286. package/dist/esm/src/variables/interpolation/defaults.js +0 -21
  287. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
  288. package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
  289. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
  290. package/dist/esm/src/variables/lookupVariable.js +0 -20
  291. package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
  292. package/dist/esm/src/variables/macros/contextMacros.js +0 -43
  293. package/dist/esm/src/variables/macros/dataMacros.js +0 -134
  294. package/dist/esm/src/variables/macros/index.js +0 -35
  295. package/dist/esm/src/variables/macros/templateProxies.js +0 -51
  296. package/dist/esm/src/variables/macros/timeMacros.js +0 -86
  297. package/dist/esm/src/variables/macros/types.js +0 -11
  298. package/dist/esm/src/variables/macros/urlMacros.js +0 -56
  299. package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
  300. package/dist/esm/src/variables/types.js +0 -11
  301. package/dist/esm/src/variables/utils.js +0 -172
  302. package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
  303. package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
  304. package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
  305. package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
  306. package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
  307. package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
  308. package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
  309. package/dist/esm/src/variables/variants/TestVariable.js +0 -117
  310. package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
  311. package/dist/esm/src/variables/variants/guards.js +0 -27
  312. package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
  313. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
  314. package/dist/esm/src/variables/variants/query/guards.js +0 -28
  315. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
  316. package/dist/esm/src/variables/variants/query/utils.js +0 -124
  317. package/dist/esm/variables/variants/JsonVariable.js +0 -96
  318. package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
  319. 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