@grafana/scenes 6.5.1--canary.1077.13965250047.0 → 6.5.1--canary.1079.13965689803.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.
Files changed (275) hide show
  1. package/dist/esm/behaviors/ActWhenVariableChanged.js.map +1 -1
  2. package/dist/esm/behaviors/CursorSync.js +21 -3
  3. package/dist/esm/behaviors/CursorSync.js.map +1 -1
  4. package/dist/esm/behaviors/LiveNowTimer.js +2 -3
  5. package/dist/esm/behaviors/LiveNowTimer.js.map +1 -1
  6. package/dist/esm/behaviors/SceneQueryController.js +37 -7
  7. package/dist/esm/behaviors/SceneQueryController.js.map +1 -1
  8. package/dist/esm/behaviors/SceneRenderProfiler.js +17 -10
  9. package/dist/esm/behaviors/SceneRenderProfiler.js.map +1 -1
  10. package/dist/esm/components/EmbeddedScene.js +12 -1
  11. package/dist/esm/components/EmbeddedScene.js.map +1 -1
  12. package/dist/esm/components/NestedScene.js +30 -23
  13. package/dist/esm/components/NestedScene.js.map +1 -1
  14. package/dist/esm/components/SceneApp/SceneApp.js +11 -1
  15. package/dist/esm/components/SceneApp/SceneApp.js.map +1 -1
  16. package/dist/esm/components/SceneApp/SceneAppPage.js +47 -28
  17. package/dist/esm/components/SceneApp/SceneAppPage.js.map +1 -1
  18. package/dist/esm/components/SceneApp/SceneAppPageView.js +20 -14
  19. package/dist/esm/components/SceneApp/SceneAppPageView.js.map +1 -1
  20. package/dist/esm/components/SceneApp/utils.js +18 -2
  21. package/dist/esm/components/SceneApp/utils.js.map +1 -1
  22. package/dist/esm/components/SceneByFrameRepeater.js +3 -1
  23. package/dist/esm/components/SceneByFrameRepeater.js.map +1 -1
  24. package/dist/esm/components/SceneByVariableRepeater.js +3 -1
  25. package/dist/esm/components/SceneByVariableRepeater.js.map +1 -1
  26. package/dist/esm/components/SceneCanvasText.js +4 -1
  27. package/dist/esm/components/SceneCanvasText.js.map +1 -1
  28. package/dist/esm/components/SceneControlsSpacer.js +3 -1
  29. package/dist/esm/components/SceneControlsSpacer.js.map +1 -1
  30. package/dist/esm/components/SceneDebugger/DebugDetails.js +24 -11
  31. package/dist/esm/components/SceneDebugger/DebugDetails.js.map +1 -1
  32. package/dist/esm/components/SceneDebugger/DebugTreeNode.js +14 -2
  33. package/dist/esm/components/SceneDebugger/DebugTreeNode.js.map +1 -1
  34. package/dist/esm/components/SceneDebugger/SceneDebugger.js +29 -1
  35. package/dist/esm/components/SceneDebugger/SceneDebugger.js.map +1 -1
  36. package/dist/esm/components/SceneReactObject.js +17 -1
  37. package/dist/esm/components/SceneReactObject.js.map +1 -1
  38. package/dist/esm/components/SceneRefreshPicker.js +38 -23
  39. package/dist/esm/components/SceneRefreshPicker.js.map +1 -1
  40. package/dist/esm/components/SceneTimePicker.js +29 -27
  41. package/dist/esm/components/SceneTimePicker.js.map +1 -1
  42. package/dist/esm/components/SceneTimeRangeCompare.js +50 -36
  43. package/dist/esm/components/SceneTimeRangeCompare.js.map +1 -1
  44. package/dist/esm/components/SceneToolbarButton.js +14 -10
  45. package/dist/esm/components/SceneToolbarButton.js.map +1 -1
  46. package/dist/esm/components/VizPanel/VizPanel.js +29 -20
  47. package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
  48. package/dist/esm/components/VizPanel/VizPanelExploreButton.js +13 -17
  49. package/dist/esm/components/VizPanel/VizPanelExploreButton.js.map +1 -1
  50. package/dist/esm/components/VizPanel/VizPanelMenu.js +20 -18
  51. package/dist/esm/components/VizPanel/VizPanelMenu.js.map +1 -1
  52. package/dist/esm/components/VizPanel/VizPanelRenderer.js +122 -92
  53. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
  54. package/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +15 -7
  55. package/dist/esm/components/VizPanel/VizPanelSeriesLimit.js.map +1 -1
  56. package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +29 -15
  57. package/dist/esm/components/VizPanel/colorSeriesConfigFactory.js.map +1 -1
  58. package/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +21 -3
  59. package/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js.map +1 -1
  60. package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +34 -22
  61. package/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js.map +1 -1
  62. package/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +40 -8
  63. package/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js.map +1 -1
  64. package/dist/esm/components/layout/LazyLoader.js +35 -2
  65. package/dist/esm/components/layout/LazyLoader.js.map +1 -1
  66. package/dist/esm/components/layout/SceneFlexLayout.js +13 -3
  67. package/dist/esm/components/layout/SceneFlexLayout.js.map +1 -1
  68. package/dist/esm/components/layout/grid/SceneGridItem.js +3 -1
  69. package/dist/esm/components/layout/grid/SceneGridItem.js.map +1 -1
  70. package/dist/esm/components/layout/grid/SceneGridLayout.js +26 -26
  71. package/dist/esm/components/layout/grid/SceneGridLayout.js.map +1 -1
  72. package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +104 -88
  73. package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js.map +1 -1
  74. package/dist/esm/components/layout/grid/SceneGridRow.js +48 -15
  75. package/dist/esm/components/layout/grid/SceneGridRow.js.map +1 -1
  76. package/dist/esm/components/layout/grid/constants.js.map +1 -1
  77. package/dist/esm/components/layout/grid/types.js.map +1 -1
  78. package/dist/esm/components/layout/grid/utils.js +21 -3
  79. package/dist/esm/components/layout/grid/utils.js.map +1 -1
  80. package/dist/esm/components/layout/split/SplitLayout.js.map +1 -1
  81. package/dist/esm/components/layout/split/SplitLayoutRenderer.js +14 -11
  82. package/dist/esm/components/layout/split/SplitLayoutRenderer.js.map +1 -1
  83. package/dist/esm/components/layout/split/Splitter.js +58 -60
  84. package/dist/esm/components/layout/split/Splitter.js.map +1 -1
  85. package/dist/esm/core/PanelBuilders/FieldConfigBuilder.js +23 -46
  86. package/dist/esm/core/PanelBuilders/FieldConfigBuilder.js.map +1 -1
  87. package/dist/esm/core/PanelBuilders/FieldConfigBuilders.js +8 -8
  88. package/dist/esm/core/PanelBuilders/FieldConfigBuilders.js.map +1 -1
  89. package/dist/esm/core/PanelBuilders/FieldConfigOverridesBuilder.js.map +1 -1
  90. package/dist/esm/core/PanelBuilders/PanelOptionsBuilder.js +0 -3
  91. package/dist/esm/core/PanelBuilders/PanelOptionsBuilder.js.map +1 -1
  92. package/dist/esm/core/PanelBuilders/PanelOptionsBuilders.js +28 -28
  93. package/dist/esm/core/PanelBuilders/PanelOptionsBuilders.js.map +1 -1
  94. package/dist/esm/core/PanelBuilders/StandardFieldConfigBuilders.js.map +1 -1
  95. package/dist/esm/core/PanelBuilders/VizConfigBuilder.js +0 -39
  96. package/dist/esm/core/PanelBuilders/VizConfigBuilder.js.map +1 -1
  97. package/dist/esm/core/PanelBuilders/VizConfigBuilders.js +32 -32
  98. package/dist/esm/core/PanelBuilders/VizConfigBuilders.js.map +1 -1
  99. package/dist/esm/core/PanelBuilders/VizPanelBuilder.js +21 -82
  100. package/dist/esm/core/PanelBuilders/VizPanelBuilder.js.map +1 -1
  101. package/dist/esm/core/PanelBuilders/index.js +32 -32
  102. package/dist/esm/core/PanelBuilders/index.js.map +1 -1
  103. package/dist/esm/core/SceneComponentWrapper.js +38 -4
  104. package/dist/esm/core/SceneComponentWrapper.js.map +1 -1
  105. package/dist/esm/core/SceneDataNode.js +19 -4
  106. package/dist/esm/core/SceneDataNode.js.map +1 -1
  107. package/dist/esm/core/SceneObjectBase.js +17 -55
  108. package/dist/esm/core/SceneObjectBase.js.map +1 -1
  109. package/dist/esm/core/SceneObjectRef.js +18 -7
  110. package/dist/esm/core/SceneObjectRef.js.map +1 -1
  111. package/dist/esm/core/SceneScopesBridge.js +0 -15
  112. package/dist/esm/core/SceneScopesBridge.js.map +1 -1
  113. package/dist/esm/core/SceneTimeRange.js +17 -9
  114. package/dist/esm/core/SceneTimeRange.js.map +1 -1
  115. package/dist/esm/core/SceneTimeRangeTransformerBase.js.map +1 -1
  116. package/dist/esm/core/SceneTimeZoneOverride.js +23 -7
  117. package/dist/esm/core/SceneTimeZoneOverride.js.map +1 -1
  118. package/dist/esm/core/events.js.map +1 -1
  119. package/dist/esm/core/sceneGraph/getQueryController.js.map +1 -1
  120. package/dist/esm/core/sceneGraph/getTimeRange.js.map +1 -1
  121. package/dist/esm/core/sceneGraph/index.js +1 -1
  122. package/dist/esm/core/sceneGraph/index.js.map +1 -1
  123. package/dist/esm/core/sceneGraph/sceneGraph.js.map +1 -1
  124. package/dist/esm/core/sceneGraph/utils.js +17 -1
  125. package/dist/esm/core/sceneGraph/utils.js.map +1 -1
  126. package/dist/esm/core/types.js.map +1 -1
  127. package/dist/esm/index.js +5 -6
  128. package/dist/esm/index.js.map +1 -1
  129. package/dist/esm/querying/DataLayersMerger.js.map +1 -1
  130. package/dist/esm/querying/DataProviderProxy.js.map +1 -1
  131. package/dist/esm/querying/ExtraQueryProvider.js.map +1 -1
  132. package/dist/esm/querying/RuntimeDataSource.js.map +1 -1
  133. package/dist/esm/querying/SceneDataLayerSet.js +24 -9
  134. package/dist/esm/querying/SceneDataLayerSet.js.map +1 -1
  135. package/dist/esm/querying/SceneDataTransformer.js +24 -11
  136. package/dist/esm/querying/SceneDataTransformer.js.map +1 -1
  137. package/dist/esm/querying/SceneQueryRunner.js +34 -45
  138. package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
  139. package/dist/esm/querying/extraQueryProcessingOperator.js +21 -3
  140. package/dist/esm/querying/extraQueryProcessingOperator.js.map +1 -1
  141. package/dist/esm/querying/getEnrichedDataRequest.js.map +1 -1
  142. package/dist/esm/querying/layers/SceneDataLayerBase.js +19 -16
  143. package/dist/esm/querying/layers/SceneDataLayerBase.js.map +1 -1
  144. package/dist/esm/querying/layers/SceneDataLayerControls.js +21 -15
  145. package/dist/esm/querying/layers/SceneDataLayerControls.js.map +1 -1
  146. package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +30 -12
  147. package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js.map +1 -1
  148. package/dist/esm/querying/layers/annotations/filterAnnotations.js +23 -6
  149. package/dist/esm/querying/layers/annotations/filterAnnotations.js.map +1 -1
  150. package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +29 -19
  151. package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js.map +1 -1
  152. package/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +34 -14
  153. package/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js.map +1 -1
  154. package/dist/esm/querying/layers/annotations/utils.js +17 -1
  155. package/dist/esm/querying/layers/annotations/utils.js.map +1 -1
  156. package/dist/esm/querying/registerQueryWithController.js.map +1 -1
  157. package/dist/esm/services/SceneObjectUrlSyncConfig.js.map +1 -1
  158. package/dist/esm/services/UniqueUrlKeyMapper.js.map +1 -1
  159. package/dist/esm/services/UrlSyncContextProvider.js.map +1 -1
  160. package/dist/esm/services/UrlSyncManager.js +19 -11
  161. package/dist/esm/services/UrlSyncManager.js.map +1 -1
  162. package/dist/esm/services/useUrlSync.js.map +1 -1
  163. package/dist/esm/services/utils.js.map +1 -1
  164. package/dist/esm/utils/ControlsLabel.js +47 -23
  165. package/dist/esm/utils/ControlsLabel.js.map +1 -1
  166. package/dist/esm/utils/LoadingIndicator.js +10 -11
  167. package/dist/esm/utils/LoadingIndicator.js.map +1 -1
  168. package/dist/esm/utils/SafeSerializableSceneObject.js +18 -7
  169. package/dist/esm/utils/SafeSerializableSceneObject.js.map +1 -1
  170. package/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js.map +1 -1
  171. package/dist/esm/utils/date.js.map +1 -1
  172. package/dist/esm/utils/evaluateTimeRange.js.map +1 -1
  173. package/dist/esm/utils/explore.js.map +1 -1
  174. package/dist/esm/utils/getCompareSeriesRefId.js.map +1 -1
  175. package/dist/esm/utils/getDataSource.js.map +1 -1
  176. package/dist/esm/utils/getMessageFromError.js.map +1 -1
  177. package/dist/esm/utils/metricTree.js.map +1 -1
  178. package/dist/esm/utils/parseUrlParam.js.map +1 -1
  179. package/dist/esm/utils/utils.js.map +1 -1
  180. package/dist/esm/utils/wrapInSafeSerializableSceneObject.js.map +1 -1
  181. package/dist/esm/utils/writeSceneLog.js.map +1 -1
  182. package/dist/esm/variables/VariableDependencyConfig.js +0 -9
  183. package/dist/esm/variables/VariableDependencyConfig.js.map +1 -1
  184. package/dist/esm/variables/VariableValueRecorder.js.map +1 -1
  185. package/dist/esm/variables/adhoc/AdHocFilterBuilder.js +12 -13
  186. package/dist/esm/variables/adhoc/AdHocFilterBuilder.js.map +1 -1
  187. package/dist/esm/variables/adhoc/AdHocFilterRenderer.js +142 -129
  188. package/dist/esm/variables/adhoc/AdHocFilterRenderer.js.map +1 -1
  189. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +91 -84
  190. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -1
  191. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +6 -1
  192. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js.map +1 -1
  193. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +194 -195
  194. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
  195. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +28 -34
  196. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js.map +1 -1
  197. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +65 -28
  198. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js.map +1 -1
  199. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +43 -29
  200. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js.map +1 -1
  201. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +1 -2
  202. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js.map +1 -1
  203. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js.map +1 -1
  204. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +55 -43
  205. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
  206. package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
  207. package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js +0 -1
  208. package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js.map +1 -1
  209. package/dist/esm/variables/adhoc/getAdhocOptionSearcher.js.map +1 -1
  210. package/dist/esm/variables/adhoc/patchGetAdhocFilters.js.map +1 -1
  211. package/dist/esm/variables/components/VariableValueControl.js +6 -9
  212. package/dist/esm/variables/components/VariableValueControl.js.map +1 -1
  213. package/dist/esm/variables/components/VariableValueInput.js +10 -13
  214. package/dist/esm/variables/components/VariableValueInput.js.map +1 -1
  215. package/dist/esm/variables/components/VariableValueSelect.js +115 -90
  216. package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
  217. package/dist/esm/variables/components/VariableValueSelectors.js +37 -20
  218. package/dist/esm/variables/components/VariableValueSelectors.js.map +1 -1
  219. package/dist/esm/variables/components/getOptionSearcher.js +1 -1
  220. package/dist/esm/variables/components/getOptionSearcher.js.map +1 -1
  221. package/dist/esm/variables/constants.js.map +1 -1
  222. package/dist/esm/variables/filter.js +1 -6
  223. package/dist/esm/variables/filter.js.map +1 -1
  224. package/dist/esm/variables/getEnrichedFiltersRequest.js.map +1 -1
  225. package/dist/esm/variables/groupby/GroupByVariable.js +112 -106
  226. package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
  227. package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js.map +1 -1
  228. package/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js.map +1 -1
  229. package/dist/esm/variables/interpolation/ScopedVarsVariable.js.map +1 -1
  230. package/dist/esm/variables/interpolation/defaults.js.map +1 -1
  231. package/dist/esm/variables/interpolation/fieldAccessorCache.js.map +1 -1
  232. package/dist/esm/variables/interpolation/formatRegistry.js.map +1 -1
  233. package/dist/esm/variables/interpolation/sceneInterpolator.js.map +1 -1
  234. package/dist/esm/variables/lookupVariable.js.map +1 -1
  235. package/dist/esm/variables/macros/AllVariablesMacro.js.map +1 -1
  236. package/dist/esm/variables/macros/contextMacros.js.map +1 -1
  237. package/dist/esm/variables/macros/dataMacros.js.map +1 -1
  238. package/dist/esm/variables/macros/index.js.map +1 -1
  239. package/dist/esm/variables/macros/templateProxies.js +21 -4
  240. package/dist/esm/variables/macros/templateProxies.js.map +1 -1
  241. package/dist/esm/variables/macros/timeMacros.js.map +1 -1
  242. package/dist/esm/variables/macros/types.js.map +1 -1
  243. package/dist/esm/variables/macros/urlMacros.js.map +1 -1
  244. package/dist/esm/variables/sets/SceneVariableSet.js +0 -44
  245. package/dist/esm/variables/sets/SceneVariableSet.js.map +1 -1
  246. package/dist/esm/variables/types.js.map +1 -1
  247. package/dist/esm/variables/utils.js.map +1 -1
  248. package/dist/esm/variables/variants/ConstantVariable.js +23 -4
  249. package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
  250. package/dist/esm/variables/variants/CustomVariable.js +19 -4
  251. package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
  252. package/dist/esm/variables/variants/DataSourceVariable.js +19 -4
  253. package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
  254. package/dist/esm/variables/variants/IntervalVariable.js +29 -17
  255. package/dist/esm/variables/variants/IntervalVariable.js.map +1 -1
  256. package/dist/esm/variables/variants/LocalValueVariable.js +23 -8
  257. package/dist/esm/variables/variants/LocalValueVariable.js.map +1 -1
  258. package/dist/esm/variables/variants/MultiValueVariable.js +0 -16
  259. package/dist/esm/variables/variants/MultiValueVariable.js.map +1 -1
  260. package/dist/esm/variables/variants/TestVariable.js +19 -5
  261. package/dist/esm/variables/variants/TestVariable.js.map +1 -1
  262. package/dist/esm/variables/variants/TextBoxVariable.js +22 -5
  263. package/dist/esm/variables/variants/TextBoxVariable.js.map +1 -1
  264. package/dist/esm/variables/variants/guards.js.map +1 -1
  265. package/dist/esm/variables/variants/query/QueryVariable.js +20 -8
  266. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  267. package/dist/esm/variables/variants/query/createQueryVariableRunner.js +23 -6
  268. package/dist/esm/variables/variants/query/createQueryVariableRunner.js.map +1 -1
  269. package/dist/esm/variables/variants/query/guards.js.map +1 -1
  270. package/dist/esm/variables/variants/query/toMetricFindValues.js.map +1 -1
  271. package/dist/esm/variables/variants/query/utils.js.map +1 -1
  272. package/dist/index.d.ts +6 -36
  273. package/dist/index.js +2792 -2036
  274. package/dist/index.js.map +1 -1
  275. package/package.json +9 -8
@@ -1,16 +1,35 @@
1
1
  import React, { forwardRef, useState, useRef, useId, useMemo, useCallback, useImperativeHandle, useEffect, useLayoutEffect } from 'react';
2
2
  import { FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
3
3
  import { useStyles2, Spinner, Text } from '@grafana/ui';
4
- import { css, cx } from '@emotion/css';
4
+ import { cx, css } from '@emotion/css';
5
5
  import { isMultiValueOperator } from '../AdHocFiltersVariable.js';
6
6
  import { useVirtualizer } from '@tanstack/react-virtual';
7
7
  import { LoadingOptionsPlaceholder, OptionsErrorPlaceholder, NoOptionsPlaceholder, DropdownItem, MultiValueApplyButton } from './DropdownItem.js';
8
- import { flattenOptionGroups, setupDropdownAccessibility, VIRTUAL_LIST_OVERSCAN, VIRTUAL_LIST_ITEM_HEIGHT_WITH_DESCRIPTION, VIRTUAL_LIST_ITEM_HEIGHT, generateFilterUpdatePayload, populateInputValueOnInputTypeSwitch, switchToNextInputType, switchInputType, generatePlaceholder, ERROR_STATE_DROPDOWN_WIDTH } from './utils.js';
8
+ import { flattenOptionGroups, setupDropdownAccessibility, VIRTUAL_LIST_ITEM_HEIGHT_WITH_DESCRIPTION, VIRTUAL_LIST_ITEM_HEIGHT, VIRTUAL_LIST_OVERSCAN, generateFilterUpdatePayload, populateInputValueOnInputTypeSwitch, switchToNextInputType, switchInputType, generatePlaceholder, ERROR_STATE_DROPDOWN_WIDTH } from './utils.js';
9
9
  import { handleOptionGroups } from '../../utils.js';
10
10
  import { useFloatingInteractions, MAX_MENU_HEIGHT } from './useFloatingInteractions.js';
11
11
  import { MultiValuePill } from './MultiValuePill.js';
12
12
  import { getAdhocOptionSearcher } from '../getAdhocOptionSearcher.js';
13
13
 
14
+ var __defProp = Object.defineProperty;
15
+ var __defProps = Object.defineProperties;
16
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
17
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
18
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
19
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
20
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
21
+ var __spreadValues = (a, b) => {
22
+ for (var prop in b || (b = {}))
23
+ if (__hasOwnProp.call(b, prop))
24
+ __defNormalProp(a, prop, b[prop]);
25
+ if (__getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(b)) {
27
+ if (__propIsEnum.call(b, prop))
28
+ __defNormalProp(a, prop, b[prop]);
29
+ }
30
+ return a;
31
+ };
32
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14
33
  const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwaysWip, handleChangeViewMode, focusOnWipInputRef, populateInputOnEdit }, parentRef) {
15
34
  var _a, _b, _c, _d;
16
35
  const [open, setOpen] = useState(false);
@@ -69,7 +88,6 @@ const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwa
69
88
  });
70
89
  }
71
90
  },
72
- // eslint-disable-next-line react-hooks/exhaustive-deps
73
91
  []
74
92
  );
75
93
  const handleLocalMultiValueChange = useCallback((selectedItem) => {
@@ -297,7 +315,6 @@ const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwa
297
315
  setInputType,
298
316
  handleChangeViewMode,
299
317
  refs.domReference.current,
300
- // preventing focus on filter pill only when last filter for better backspace experience
301
318
  isLastFilter ? false : void 0
302
319
  );
303
320
  setActiveIndex(null);
@@ -388,202 +405,185 @@ const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwa
388
405
  }
389
406
  }, [activeIndex, rowVirtualizer]);
390
407
  const keyLabel = (_b = filter == null ? void 0 : filter.keyLabel) != null ? _b : filter == null ? void 0 : filter.key;
391
- return /* @__PURE__ */ React.createElement("div", { className: styles.comboboxWrapper }, filter ? /* @__PURE__ */ React.createElement("div", { className: styles.pillWrapper }, (filter == null ? void 0 : filter.key) ? /* @__PURE__ */ React.createElement("div", { className: cx(styles.basePill, styles.keyPill) }, keyLabel) : null, (filter == null ? void 0 : filter.key) && (filter == null ? void 0 : filter.operator) && filterInputType !== "operator" ? /* @__PURE__ */ React.createElement(
392
- "div",
393
- {
394
- id: operatorIdentifier,
395
- className: cx(
396
- styles.basePill,
397
- !filter.origin && styles.operatorPill,
398
- filter.origin && styles.keyPill,
399
- operatorIdentifier
400
- ),
401
- "aria-label": "Edit filter operator",
402
- tabIndex: filter.origin ? -1 : 0,
403
- onClick: (event) => {
404
- if (filter.origin) {
405
- handleChangeViewMode == null ? void 0 : handleChangeViewMode();
406
- return;
407
- }
408
- event.stopPropagation();
408
+ return /* @__PURE__ */ React.createElement("div", {
409
+ className: styles.comboboxWrapper
410
+ }, filter ? /* @__PURE__ */ React.createElement("div", {
411
+ className: styles.pillWrapper
412
+ }, (filter == null ? void 0 : filter.key) ? /* @__PURE__ */ React.createElement("div", {
413
+ className: cx(styles.basePill, styles.keyPill)
414
+ }, keyLabel) : null, (filter == null ? void 0 : filter.key) && (filter == null ? void 0 : filter.operator) && filterInputType !== "operator" ? /* @__PURE__ */ React.createElement("div", __spreadValues({
415
+ id: operatorIdentifier,
416
+ className: cx(
417
+ styles.basePill,
418
+ !filter.origin && styles.operatorPill,
419
+ filter.origin && styles.keyPill,
420
+ operatorIdentifier
421
+ ),
422
+ "aria-label": "Edit filter operator",
423
+ tabIndex: filter.origin ? -1 : 0,
424
+ onClick: (event) => {
425
+ if (filter.origin) {
426
+ handleChangeViewMode == null ? void 0 : handleChangeViewMode();
427
+ return;
428
+ }
429
+ event.stopPropagation();
430
+ setInputValue("");
431
+ switchInputType("operator", setInputType, void 0, refs.domReference.current);
432
+ },
433
+ onKeyDown: (event) => {
434
+ if (filter.origin) {
435
+ return;
436
+ }
437
+ handleShiftTabInput(event, hasMultiValueOperator);
438
+ if (event.key === "Enter") {
409
439
  setInputValue("");
410
440
  switchInputType("operator", setInputType, void 0, refs.domReference.current);
411
- },
412
- onKeyDown: (event) => {
413
- if (filter.origin) {
414
- return;
415
- }
416
- handleShiftTabInput(event, hasMultiValueOperator);
417
- if (event.key === "Enter") {
418
- setInputValue("");
419
- switchInputType("operator", setInputType, void 0, refs.domReference.current);
420
- }
421
- },
422
- ...!filter.origin && { role: "button" }
423
- },
424
- filter.operator
425
- ) : null, /* @__PURE__ */ React.createElement("div", { ref: multiValuePillWrapperRef }), isMultiValueEdit ? filterMultiValues.map((item, i) => /* @__PURE__ */ React.createElement(
426
- MultiValuePill,
427
- {
428
- key: `${item.value}-${i}`,
429
- item,
430
- index: i,
431
- handleRemoveMultiValue,
432
- handleEditMultiValuePill
441
+ }
433
442
  }
434
- )) : null) : null, /* @__PURE__ */ React.createElement(
435
- "input",
436
- {
437
- ...getReferenceProps({
438
- ref: refs.setReference,
439
- onChange,
440
- value: inputValue,
441
- // dynamic placeholder to display operator and/or value in filter edit mode
442
- placeholder: generatePlaceholder(filter, filterInputType, isMultiValueEdit, isAlwaysWip),
443
- "aria-autocomplete": "list",
444
- onKeyDown(event) {
445
- if (!open) {
446
- setOpen(true);
447
- return;
448
- }
449
- if (filterInputType === "operator") {
450
- handleShiftTabInput(event);
451
- }
452
- handleBackspaceInput(event, isMultiValueEdit);
453
- handleTabInput(event, isMultiValueEdit);
454
- handleEnterInput(event, isMultiValueEdit);
455
- }
456
- }),
457
- className: cx(styles.inputStyle, { [styles.loadingInputPadding]: !optionsLoading }),
458
- onClick: (event) => {
459
- event.stopPropagation();
460
- setOpen(true);
461
- },
462
- onFocus: () => {
443
+ }, !filter.origin && { role: "button" }), filter.operator) : null, /* @__PURE__ */ React.createElement("div", {
444
+ ref: multiValuePillWrapperRef
445
+ }), isMultiValueEdit ? filterMultiValues.map((item, i) => /* @__PURE__ */ React.createElement(MultiValuePill, {
446
+ key: `${item.value}-${i}`,
447
+ item,
448
+ index: i,
449
+ handleRemoveMultiValue,
450
+ handleEditMultiValuePill
451
+ })) : null) : null, /* @__PURE__ */ React.createElement("input", __spreadProps(__spreadValues({}, getReferenceProps({
452
+ ref: refs.setReference,
453
+ onChange,
454
+ value: inputValue,
455
+ placeholder: generatePlaceholder(filter, filterInputType, isMultiValueEdit, isAlwaysWip),
456
+ "aria-autocomplete": "list",
457
+ onKeyDown(event) {
458
+ if (!open) {
463
459
  setOpen(true);
460
+ return;
461
+ }
462
+ if (filterInputType === "operator") {
463
+ handleShiftTabInput(event);
464
464
  }
465
+ handleBackspaceInput(event, isMultiValueEdit);
466
+ handleTabInput(event, isMultiValueEdit);
467
+ handleEnterInput(event, isMultiValueEdit);
465
468
  }
466
- ), optionsLoading ? /* @__PURE__ */ React.createElement(Spinner, { className: styles.loadingIndicator, inline: true }) : null, /* @__PURE__ */ React.createElement(FloatingPortal, null, open && /* @__PURE__ */ React.createElement(FloatingFocusManager, { context, initialFocus: -1, visuallyHiddenDismiss: true, modal: false }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
467
- "div",
468
- {
469
- style: {
470
- ...floatingStyles,
471
- width: `${optionsError ? ERROR_STATE_DROPDOWN_WIDTH : maxOptionWidth}px`,
472
- transform: isMultiValueEdit ? `translate(${((_c = multiValuePillWrapperRef.current) == null ? void 0 : _c.getBoundingClientRect().left) || 0}px, ${(((_d = refs.domReference.current) == null ? void 0 : _d.getBoundingClientRect().bottom) || 0) + 10}px )` : floatingStyles.transform
473
- },
474
- ref: refs.setFloating,
475
- className: styles.dropdownWrapper,
476
- tabIndex: -1
469
+ })), {
470
+ className: cx(styles.inputStyle, { [styles.loadingInputPadding]: !optionsLoading }),
471
+ onClick: (event) => {
472
+ event.stopPropagation();
473
+ setOpen(true);
477
474
  },
478
- /* @__PURE__ */ React.createElement(
479
- "div",
480
- {
475
+ onFocus: () => {
476
+ setOpen(true);
477
+ }
478
+ })), optionsLoading ? /* @__PURE__ */ React.createElement(Spinner, {
479
+ className: styles.loadingIndicator,
480
+ inline: true
481
+ }) : null, /* @__PURE__ */ React.createElement(FloatingPortal, null, open && /* @__PURE__ */ React.createElement(FloatingFocusManager, {
482
+ context,
483
+ initialFocus: -1,
484
+ visuallyHiddenDismiss: true,
485
+ modal: false
486
+ }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
487
+ style: __spreadProps(__spreadValues({}, floatingStyles), {
488
+ width: `${optionsError ? ERROR_STATE_DROPDOWN_WIDTH : maxOptionWidth}px`,
489
+ transform: isMultiValueEdit ? `translate(${((_c = multiValuePillWrapperRef.current) == null ? void 0 : _c.getBoundingClientRect().left) || 0}px, ${(((_d = refs.domReference.current) == null ? void 0 : _d.getBoundingClientRect().bottom) || 0) + 10}px )` : floatingStyles.transform
490
+ }),
491
+ ref: refs.setFloating,
492
+ className: styles.dropdownWrapper,
493
+ tabIndex: -1
494
+ }, /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({
495
+ style: {
496
+ height: `${rowVirtualizer.getTotalSize() || VIRTUAL_LIST_ITEM_HEIGHT}px`
497
+ }
498
+ }, getFloatingProps()), {
499
+ tabIndex: -1
500
+ }), optionsLoading ? /* @__PURE__ */ React.createElement(LoadingOptionsPlaceholder, null) : optionsError ? /* @__PURE__ */ React.createElement(OptionsErrorPlaceholder, {
501
+ handleFetchOptions: () => handleFetchOptions(filterInputType)
502
+ }) : !filteredDropDownItems.length && (!allowCustomValue || filterInputType === "operator" || !inputValue) ? /* @__PURE__ */ React.createElement(NoOptionsPlaceholder, null) : rowVirtualizer.getVirtualItems().map((virtualItem) => {
503
+ var _a2;
504
+ const item = filteredDropDownItems[virtualItem.index];
505
+ const index = virtualItem.index;
506
+ if (item.options) {
507
+ return /* @__PURE__ */ React.createElement("div", {
508
+ key: `${item.label}+${index}`,
509
+ className: cx(styles.optionGroupLabel, styles.groupTopBorder),
481
510
  style: {
482
- height: `${rowVirtualizer.getTotalSize() || VIRTUAL_LIST_ITEM_HEIGHT}px`
483
- // fallback to 38px for loading/error/no options placeholders
484
- },
485
- ...getFloatingProps(),
486
- tabIndex: -1
511
+ height: `${virtualItem.size}px`,
512
+ transform: `translateY(${virtualItem.start}px)`
513
+ }
514
+ }, /* @__PURE__ */ React.createElement(Text, {
515
+ weight: "bold",
516
+ variant: "bodySmall",
517
+ color: "secondary"
518
+ }, item.label));
519
+ }
520
+ const nextItem = filteredDropDownItems[virtualItem.index + 1];
521
+ const shouldAddBottomBorder = nextItem && !nextItem.group && !nextItem.options && item.group;
522
+ return /* @__PURE__ */ React.createElement(DropdownItem, __spreadProps(__spreadValues({}, getItemProps({
523
+ key: `${item.value}-${index}`,
524
+ ref(node) {
525
+ listRef.current[index] = node;
487
526
  },
488
- optionsLoading ? /* @__PURE__ */ React.createElement(LoadingOptionsPlaceholder, null) : optionsError ? /* @__PURE__ */ React.createElement(OptionsErrorPlaceholder, { handleFetchOptions: () => handleFetchOptions(filterInputType) }) : !filteredDropDownItems.length && (!allowCustomValue || filterInputType === "operator" || !inputValue) ? /* @__PURE__ */ React.createElement(NoOptionsPlaceholder, null) : rowVirtualizer.getVirtualItems().map((virtualItem) => {
489
- var _a2;
490
- const item = filteredDropDownItems[virtualItem.index];
491
- const index = virtualItem.index;
492
- if (item.options) {
493
- return /* @__PURE__ */ React.createElement(
494
- "div",
495
- {
496
- key: `${item.label}+${index}`,
497
- className: cx(styles.optionGroupLabel, styles.groupTopBorder),
498
- style: {
499
- height: `${virtualItem.size}px`,
500
- transform: `translateY(${virtualItem.start}px)`
501
- }
502
- },
503
- /* @__PURE__ */ React.createElement(Text, { weight: "bold", variant: "bodySmall", color: "secondary" }, item.label)
527
+ onClick(event) {
528
+ var _a3;
529
+ if (filterInputType !== "value") {
530
+ event.stopPropagation();
531
+ }
532
+ if (isMultiValueEdit) {
533
+ event.preventDefault();
534
+ event.stopPropagation();
535
+ handleLocalMultiValueChange(item);
536
+ setInputValue("");
537
+ (_a3 = refs.domReference.current) == null ? void 0 : _a3.focus();
538
+ } else {
539
+ model._updateFilter(
540
+ filter,
541
+ generateFilterUpdatePayload({
542
+ filterInputType,
543
+ item,
544
+ filter,
545
+ setFilterMultiValues,
546
+ onAddCustomValue
547
+ })
548
+ );
549
+ populateInputValueOnInputTypeSwitch({
550
+ populateInputOnEdit,
551
+ item,
552
+ filterInputType,
553
+ setInputValue,
554
+ filter
555
+ });
556
+ switchToNextInputType(
557
+ filterInputType,
558
+ setInputType,
559
+ handleChangeViewMode,
560
+ refs.domReference.current,
561
+ false
504
562
  );
505
563
  }
506
- const nextItem = filteredDropDownItems[virtualItem.index + 1];
507
- const shouldAddBottomBorder = nextItem && !nextItem.group && !nextItem.options && item.group;
508
- return (
509
- // key is included in getItemProps()
510
- // eslint-disable-next-line react/jsx-key
511
- /* @__PURE__ */ React.createElement(
512
- DropdownItem,
513
- {
514
- ...getItemProps({
515
- key: `${item.value}-${index}`,
516
- ref(node) {
517
- listRef.current[index] = node;
518
- },
519
- onClick(event) {
520
- var _a3;
521
- if (filterInputType !== "value") {
522
- event.stopPropagation();
523
- }
524
- if (isMultiValueEdit) {
525
- event.preventDefault();
526
- event.stopPropagation();
527
- handleLocalMultiValueChange(item);
528
- setInputValue("");
529
- (_a3 = refs.domReference.current) == null ? void 0 : _a3.focus();
530
- } else {
531
- model._updateFilter(
532
- filter,
533
- generateFilterUpdatePayload({
534
- filterInputType,
535
- item,
536
- filter,
537
- setFilterMultiValues,
538
- onAddCustomValue
539
- })
540
- );
541
- populateInputValueOnInputTypeSwitch({
542
- populateInputOnEdit,
543
- item,
544
- filterInputType,
545
- setInputValue,
546
- filter
547
- });
548
- switchToNextInputType(
549
- filterInputType,
550
- setInputType,
551
- handleChangeViewMode,
552
- refs.domReference.current,
553
- // explicitly preventing focus on filter pill due to a11y error
554
- false
555
- );
556
- }
557
- }
558
- }),
559
- active: activeIndex === index,
560
- addGroupBottomBorder: shouldAddBottomBorder,
561
- style: {
562
- height: `${virtualItem.size}px`,
563
- transform: `translateY(${virtualItem.start}px)`
564
- },
565
- "aria-setsize": filteredDropDownItems.length,
566
- "aria-posinset": virtualItem.index + 1,
567
- isMultiValueEdit,
568
- checked: filterMultiValues.some((val) => val.value === item.value)
569
- },
570
- /* @__PURE__ */ React.createElement("span", null, item.isCustom ? "Use custom value: " : "", " ", (_a2 = item.label) != null ? _a2 : item.value),
571
- item.description ? /* @__PURE__ */ React.createElement("div", { className: styles.descriptionText }, item.description) : null
572
- )
573
- );
574
- })
575
- )
576
- ), isMultiValueEdit && !optionsLoading && !optionsError && filteredDropDownItems.length ? /* @__PURE__ */ React.createElement(
577
- MultiValueApplyButton,
578
- {
579
- onApply: () => {
580
- handleMultiValueFilterCommit(model, filter, filterMultiValues);
564
+ }
565
+ })), {
566
+ active: activeIndex === index,
567
+ addGroupBottomBorder: shouldAddBottomBorder,
568
+ style: {
569
+ height: `${virtualItem.size}px`,
570
+ transform: `translateY(${virtualItem.start}px)`
581
571
  },
582
- floatingElement: refs.floating.current,
583
- maxOptionWidth,
584
- menuHeight: Math.min(rowVirtualizer.getTotalSize(), MAX_MENU_HEIGHT)
585
- }
586
- ) : null))));
572
+ "aria-setsize": filteredDropDownItems.length,
573
+ "aria-posinset": virtualItem.index + 1,
574
+ isMultiValueEdit,
575
+ checked: filterMultiValues.some((val) => val.value === item.value)
576
+ }), /* @__PURE__ */ React.createElement("span", null, item.isCustom ? "Use custom value: " : "", " ", (_a2 = item.label) != null ? _a2 : item.value), item.description ? /* @__PURE__ */ React.createElement("div", {
577
+ className: styles.descriptionText
578
+ }, item.description) : null);
579
+ }))), isMultiValueEdit && !optionsLoading && !optionsError && filteredDropDownItems.length ? /* @__PURE__ */ React.createElement(MultiValueApplyButton, {
580
+ onApply: () => {
581
+ handleMultiValueFilterCommit(model, filter, filterMultiValues);
582
+ },
583
+ floatingElement: refs.floating.current,
584
+ maxOptionWidth,
585
+ menuHeight: Math.min(rowVirtualizer.getTotalSize(), MAX_MENU_HEIGHT)
586
+ }) : null))));
587
587
  });
588
588
  const getStyles = (theme) => ({
589
589
  comboboxWrapper: css({
@@ -595,7 +595,7 @@ const getStyles = (theme) => ({
595
595
  alignItems: "center",
596
596
  flexWrap: "wrap"
597
597
  }),
598
- basePill: css({
598
+ basePill: css(__spreadProps(__spreadValues({
599
599
  display: "flex",
600
600
  alignItems: "center",
601
601
  background: theme.colors.action.disabledBackground,
@@ -604,10 +604,10 @@ const getStyles = (theme) => ({
604
604
  color: theme.colors.text.primary,
605
605
  overflow: "hidden",
606
606
  whiteSpace: "nowrap",
607
- minHeight: theme.spacing(2.75),
608
- ...theme.typography.bodySmall,
607
+ minHeight: theme.spacing(2.75)
608
+ }, theme.typography.bodySmall), {
609
609
  cursor: "pointer"
610
- }),
610
+ })),
611
611
  keyPill: css({
612
612
  fontWeight: theme.typography.fontWeightBold,
613
613
  cursor: "default"
@@ -649,11 +649,10 @@ const getStyles = (theme) => ({
649
649
  borderTop: `1px solid ${theme.colors.border.weak}`
650
650
  }
651
651
  }),
652
- descriptionText: css({
653
- ...theme.typography.bodySmall,
652
+ descriptionText: css(__spreadProps(__spreadValues({}, theme.typography.bodySmall), {
654
653
  color: theme.colors.text.secondary,
655
654
  paddingTop: theme.spacing(0.5)
656
- })
655
+ }))
657
656
  });
658
657
 
659
658
  export { AdHocCombobox };