@grafana/scenes 6.5.1--canary.1077.13964702348.0 → 6.5.1--canary.1078.13965220580.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 +33 -44
  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 +63 -45
  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 +2799 -2037
  274. package/dist/index.js.map +1 -1
  275. package/package.json +9 -9
@@ -1,7 +1,26 @@
1
- import { css, cx } from '@emotion/css';
1
+ import { cx, css } from '@emotion/css';
2
2
  import { useStyles2, Button, Icon } from '@grafana/ui';
3
3
  import React, { useCallback } from 'react';
4
4
 
5
+ var __defProp = Object.defineProperty;
6
+ var __defProps = Object.defineProperties;
7
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
5
24
  const MultiValuePill = ({
6
25
  item,
7
26
  handleRemoveMultiValue,
@@ -42,33 +61,28 @@ const MultiValuePill = ({
42
61
  },
43
62
  [removePillHandler]
44
63
  );
45
- return /* @__PURE__ */ React.createElement(
46
- "div",
47
- {
48
- className: cx(styles.basePill, styles.valuePill),
49
- onClick: editMultiValuePill,
50
- onKeyDown: editMultiValuePillWithKeyboard,
51
- tabIndex: 0,
52
- id: `${item.value}-${index}`
53
- },
54
- (_a = item.label) != null ? _a : item.value,
55
- /* @__PURE__ */ React.createElement(
56
- Button,
57
- {
58
- onClick: removePillHandler,
59
- onKeyDownCapture: removePillHandlerWithKeyboard,
60
- fill: "text",
61
- size: "sm",
62
- variant: "secondary",
63
- className: styles.removeButton,
64
- tooltip: `Remove filter value - ${(_b = item.label) != null ? _b : item.value}`
65
- },
66
- /* @__PURE__ */ React.createElement(Icon, { name: "times", size: "md", id: `${item.value}-${index}-close-icon` })
67
- )
68
- );
64
+ return /* @__PURE__ */ React.createElement("div", {
65
+ className: cx(styles.basePill, styles.valuePill),
66
+ onClick: editMultiValuePill,
67
+ onKeyDown: editMultiValuePillWithKeyboard,
68
+ tabIndex: 0,
69
+ id: `${item.value}-${index}`
70
+ }, (_a = item.label) != null ? _a : item.value, /* @__PURE__ */ React.createElement(Button, {
71
+ onClick: removePillHandler,
72
+ onKeyDownCapture: removePillHandlerWithKeyboard,
73
+ fill: "text",
74
+ size: "sm",
75
+ variant: "secondary",
76
+ className: styles.removeButton,
77
+ tooltip: `Remove filter value - ${(_b = item.label) != null ? _b : item.value}`
78
+ }, /* @__PURE__ */ React.createElement(Icon, {
79
+ name: "times",
80
+ size: "md",
81
+ id: `${item.value}-${index}-close-icon`
82
+ })));
69
83
  };
70
84
  const getStyles = (theme) => ({
71
- basePill: css({
85
+ basePill: css(__spreadProps(__spreadValues({
72
86
  display: "flex",
73
87
  alignItems: "center",
74
88
  background: theme.colors.action.disabledBackground,
@@ -77,10 +91,10 @@ const getStyles = (theme) => ({
77
91
  color: theme.colors.text.primary,
78
92
  overflow: "hidden",
79
93
  whiteSpace: "nowrap",
80
- minHeight: theme.spacing(2.75),
81
- ...theme.typography.bodySmall,
94
+ minHeight: theme.spacing(2.75)
95
+ }, theme.typography.bodySmall), {
82
96
  cursor: "pointer"
83
- }),
97
+ })),
84
98
  valuePill: css({
85
99
  background: theme.colors.action.selected,
86
100
  padding: theme.spacing(0.125, 0, 0.125, 1)
@@ -1 +1 @@
1
- {"version":3,"file":"MultiValuePill.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.tsx"],"sourcesContent":["import { cx, css } from '@emotion/css';\nimport { SelectableValue, GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, Button, Icon } from '@grafana/ui';\nimport React, { useCallback } from 'react';\n\ninterface MultiValuePillProps {\n item: SelectableValue<string>;\n handleRemoveMultiValue: (item: SelectableValue<string>) => void;\n index: number;\n handleEditMultiValuePill: (value: SelectableValue<string>) => void;\n}\nexport const MultiValuePill = ({\n item,\n handleRemoveMultiValue,\n index,\n handleEditMultiValuePill,\n}: MultiValuePillProps) => {\n const styles = useStyles2(getStyles);\n\n const editMultiValuePill = useCallback(\n (e: React.SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n handleEditMultiValuePill(item);\n },\n [handleEditMultiValuePill, item]\n );\n\n const editMultiValuePillWithKeyboard = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n editMultiValuePill(e);\n }\n },\n [editMultiValuePill]\n );\n\n const removePillHandler = useCallback(\n (e: React.SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n handleRemoveMultiValue(item);\n },\n [handleRemoveMultiValue, item]\n );\n\n const removePillHandlerWithKeyboard = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n removePillHandler(e);\n }\n },\n [removePillHandler]\n );\n\n return (\n <div\n className={cx(styles.basePill, styles.valuePill)}\n onClick={editMultiValuePill}\n onKeyDown={editMultiValuePillWithKeyboard}\n tabIndex={0}\n id={`${item.value}-${index}`}\n >\n {item.label ?? item.value}\n <Button\n onClick={removePillHandler}\n onKeyDownCapture={removePillHandlerWithKeyboard}\n fill=\"text\"\n size=\"sm\"\n variant=\"secondary\"\n className={styles.removeButton}\n tooltip={`Remove filter value - ${item.label ?? item.value}`}\n >\n <Icon name=\"times\" size=\"md\" id={`${item.value}-${index}-close-icon`} />\n </Button>\n </div>\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n basePill: css({\n display: 'flex',\n alignItems: 'center',\n background: theme.colors.action.disabledBackground,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: theme.spacing(0.125, 1, 0.125, 1),\n color: theme.colors.text.primary,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n minHeight: theme.spacing(2.75),\n ...theme.typography.bodySmall,\n cursor: 'pointer',\n }),\n valuePill: css({\n background: theme.colors.action.selected,\n padding: theme.spacing(0.125, 0, 0.125, 1),\n }),\n removeButton: css({\n marginInline: theme.spacing(0.5),\n height: '100%',\n padding: 0,\n cursor: 'pointer',\n '&:hover': {\n color: theme.colors.text.primary,\n },\n }),\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiValuePill.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.tsx"],"sourcesContent":["import { cx, css } from '@emotion/css';\nimport { SelectableValue, GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, Button, Icon } from '@grafana/ui';\nimport React, { useCallback } from 'react';\n\ninterface MultiValuePillProps {\n item: SelectableValue<string>;\n handleRemoveMultiValue: (item: SelectableValue<string>) => void;\n index: number;\n handleEditMultiValuePill: (value: SelectableValue<string>) => void;\n}\nexport const MultiValuePill = ({\n item,\n handleRemoveMultiValue,\n index,\n handleEditMultiValuePill,\n}: MultiValuePillProps) => {\n const styles = useStyles2(getStyles);\n\n const editMultiValuePill = useCallback(\n (e: React.SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n handleEditMultiValuePill(item);\n },\n [handleEditMultiValuePill, item]\n );\n\n const editMultiValuePillWithKeyboard = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n editMultiValuePill(e);\n }\n },\n [editMultiValuePill]\n );\n\n const removePillHandler = useCallback(\n (e: React.SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n handleRemoveMultiValue(item);\n },\n [handleRemoveMultiValue, item]\n );\n\n const removePillHandlerWithKeyboard = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n removePillHandler(e);\n }\n },\n [removePillHandler]\n );\n\n return (\n <div\n className={cx(styles.basePill, styles.valuePill)}\n onClick={editMultiValuePill}\n onKeyDown={editMultiValuePillWithKeyboard}\n tabIndex={0}\n id={`${item.value}-${index}`}\n >\n {item.label ?? item.value}\n <Button\n onClick={removePillHandler}\n onKeyDownCapture={removePillHandlerWithKeyboard}\n fill=\"text\"\n size=\"sm\"\n variant=\"secondary\"\n className={styles.removeButton}\n tooltip={`Remove filter value - ${item.label ?? item.value}`}\n >\n <Icon name=\"times\" size=\"md\" id={`${item.value}-${index}-close-icon`} />\n </Button>\n </div>\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n basePill: css({\n display: 'flex',\n alignItems: 'center',\n background: theme.colors.action.disabledBackground,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: theme.spacing(0.125, 1, 0.125, 1),\n color: theme.colors.text.primary,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n minHeight: theme.spacing(2.75),\n ...theme.typography.bodySmall,\n cursor: 'pointer',\n }),\n valuePill: css({\n background: theme.colors.action.selected,\n padding: theme.spacing(0.125, 0, 0.125, 1),\n }),\n removeButton: css({\n marginInline: theme.spacing(0.5),\n height: '100%',\n padding: 0,\n cursor: 'pointer',\n '&:hover': {\n color: theme.colors.text.primary,\n },\n }),\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,IAAA;AAAA,EACA,sBAAA;AAAA,EACA,KAAA;AAAA,EACA,wBAAA;AACF,CAA2B,KAAA;AAhB3B,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAiBE,EAAM,MAAA,MAAA,GAAS,WAAW,SAAS,CAAA,CAAA;AAEnC,EAAA,MAAM,kBAAqB,GAAA,WAAA;AAAA,IACzB,CAAC,CAA4B,KAAA;AAC3B,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,MAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,MAAA,wBAAA,CAAyB,IAAI,CAAA,CAAA;AAAA,KAC/B;AAAA,IACA,CAAC,0BAA0B,IAAI,CAAA;AAAA,GACjC,CAAA;AAEA,EAAA,MAAM,8BAAiC,GAAA,WAAA;AAAA,IACrC,CAAC,CAA2B,KAAA;AAC1B,MAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,QAAA,kBAAA,CAAmB,CAAC,CAAA,CAAA;AAAA,OACtB;AAAA,KACF;AAAA,IACA,CAAC,kBAAkB,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,MAAM,iBAAoB,GAAA,WAAA;AAAA,IACxB,CAAC,CAA4B,KAAA;AAC3B,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,MAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,MAAA,sBAAA,CAAuB,IAAI,CAAA,CAAA;AAAA,KAC7B;AAAA,IACA,CAAC,wBAAwB,IAAI,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAA,MAAM,6BAAgC,GAAA,WAAA;AAAA,IACpC,CAAC,CAA2B,KAAA;AAC1B,MAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,QAAA,iBAAA,CAAkB,CAAC,CAAA,CAAA;AAAA,OACrB;AAAA,KACF;AAAA,IACA,CAAC,iBAAiB,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAW,EAAA,EAAA,CAAG,MAAO,CAAA,QAAA,EAAU,OAAO,SAAS,CAAA;AAAA,IAC/C,OAAS,EAAA,kBAAA;AAAA,IACT,SAAW,EAAA,8BAAA;AAAA,IACX,QAAU,EAAA,CAAA;AAAA,IACV,EAAA,EAAI,CAAG,EAAA,IAAA,CAAK,KAAS,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GAAA,EAAA,CAEpB,EAAK,GAAA,IAAA,CAAA,KAAA,KAAL,IAAc,GAAA,EAAA,GAAA,IAAA,CAAK,uBACnB,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,IACC,OAAS,EAAA,iBAAA;AAAA,IACT,gBAAkB,EAAA,6BAAA;AAAA,IAClB,IAAK,EAAA,MAAA;AAAA,IACL,IAAK,EAAA,IAAA;AAAA,IACL,OAAQ,EAAA,WAAA;AAAA,IACR,WAAW,MAAO,CAAA,YAAA;AAAA,IAClB,OAAS,EAAA,CAAA,sBAAA,EAAA,CAAyB,EAAK,GAAA,IAAA,CAAA,KAAA,KAAL,YAAc,IAAK,CAAA,KAAA,CAAA,CAAA;AAAA,GAAA,kBAEpD,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAA,IAAK,IAAK,EAAA,OAAA;AAAA,IAAQ,IAAK,EAAA,IAAA;AAAA,IAAK,EAAA,EAAI,CAAG,EAAA,IAAA,CAAK,KAAS,CAAA,CAAA,EAAA,KAAA,CAAA,WAAA,CAAA;AAAA,GAAoB,CACxE,CACF,CAAA,CAAA;AAEJ,EAAA;AAEA,MAAM,SAAA,GAAY,CAAC,KAA0B,MAAA;AAAA,EAC3C,UAAU,GAAI,CAAA,aAAA,CAAA,cAAA,CAAA;AAAA,IACZ,OAAS,EAAA,MAAA;AAAA,IACT,UAAY,EAAA,QAAA;AAAA,IACZ,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,kBAAA;AAAA,IAChC,MAAQ,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAA,CAAA;AAAA,IACzC,SAAS,KAAM,CAAA,OAAA,CAAQ,KAAO,EAAA,CAAA,EAAG,OAAO,CAAC,CAAA;AAAA,IACzC,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,OAAA;AAAA,IACzB,QAAU,EAAA,QAAA;AAAA,IACV,UAAY,EAAA,QAAA;AAAA,IACZ,SAAA,EAAW,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,GAC1B,EAAA,KAAA,CAAM,WAAW,SAVR,CAAA,EAAA;AAAA,IAWZ,MAAQ,EAAA,SAAA;AAAA,GACT,CAAA,CAAA;AAAA,EACD,WAAW,GAAI,CAAA;AAAA,IACb,UAAA,EAAY,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,QAAA;AAAA,IAChC,SAAS,KAAM,CAAA,OAAA,CAAQ,KAAO,EAAA,CAAA,EAAG,OAAO,CAAC,CAAA;AAAA,GAC1C,CAAA;AAAA,EACD,cAAc,GAAI,CAAA;AAAA,IAChB,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC/B,MAAQ,EAAA,MAAA;AAAA,IACR,OAAS,EAAA,CAAA;AAAA,IACT,MAAQ,EAAA,SAAA;AAAA,IACR,SAAW,EAAA;AAAA,MACT,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,OAAA;AAAA,KAC3B;AAAA,GACD,CAAA;AACH,CAAA,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { useFloating, offset, flip, size, autoUpdate, useRole, useDismiss, useListNavigation, useInteractions } from '@floating-ui/react';
1
+ import { useFloating, autoUpdate, offset, flip, size, useRole, useDismiss, useListNavigation, useInteractions } from '@floating-ui/react';
2
2
 
3
3
  const MAX_MENU_HEIGHT = 300;
4
4
  const useFloatingInteractions = ({
@@ -30,7 +30,6 @@ const useFloatingInteractions = ({
30
30
  });
31
31
  const role = useRole(context, { role: "listbox" });
32
32
  const dismiss = useDismiss(context, {
33
- // if outside click lands on operator pill, then ignore outside click
34
33
  outsidePress: (event) => {
35
34
  var _a;
36
35
  if (event.currentTarget instanceof Element) {
@@ -1 +1 @@
1
- {"version":3,"file":"useFloatingInteractions.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.ts"],"sourcesContent":["import {\n useFloating,\n autoUpdate,\n offset,\n useRole,\n useDismiss,\n useListNavigation,\n UseFloatingOptions,\n flip,\n size,\n UseListNavigationProps,\n useInteractions,\n} from '@floating-ui/react';\n\ntype useFloatingInteractionsProps = {\n open: UseFloatingOptions['open'];\n onOpenChange: UseFloatingOptions['onOpenChange'];\n activeIndex: UseListNavigationProps['activeIndex'];\n setActiveIndex: UseListNavigationProps['onNavigate'];\n outsidePressIdsToIgnore: string[];\n listRef: React.MutableRefObject<Array<HTMLElement | null>>;\n disabledIndicesRef: React.MutableRefObject<number[]>;\n};\n\nexport const MAX_MENU_HEIGHT = 300;\n\nexport const useFloatingInteractions = ({\n open,\n onOpenChange,\n activeIndex,\n setActiveIndex,\n outsidePressIdsToIgnore,\n listRef,\n disabledIndicesRef,\n}: useFloatingInteractionsProps) => {\n const { refs, floatingStyles, context } = useFloating<HTMLInputElement>({\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange,\n placement: 'bottom-start',\n middleware: [\n offset(10),\n flip({ padding: 10 }),\n size({\n apply({ availableHeight, availableWidth, elements }) {\n // limit maxHeight and maxWidth of dropdown\n elements.floating.style.maxHeight = `${Math.min(MAX_MENU_HEIGHT, availableHeight)}px`;\n elements.floating.style.maxWidth = `${availableWidth}px`;\n },\n padding: 10,\n }),\n ],\n strategy: 'fixed',\n });\n\n const role = useRole(context, { role: 'listbox' });\n const dismiss = useDismiss(context, {\n // if outside click lands on operator pill, then ignore outside click\n outsidePress: (event) => {\n if (event.currentTarget instanceof Element) {\n const target = event.currentTarget;\n let idToCompare = target.id;\n if (target.nodeName === 'path') {\n idToCompare = target.parentElement?.id || '';\n }\n\n if (outsidePressIdsToIgnore.includes(idToCompare)) {\n return false;\n }\n }\n return true;\n },\n });\n const listNav = useListNavigation(context, {\n listRef,\n activeIndex,\n onNavigate: setActiveIndex,\n virtual: true,\n loop: true,\n disabledIndices: disabledIndicesRef.current,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([role, dismiss, listNav]);\n\n return {\n refs,\n floatingStyles,\n context,\n getReferenceProps,\n getFloatingProps,\n getItemProps,\n };\n};\n"],"names":[],"mappings":";;AAwBO,MAAM,eAAkB,GAAA;AAExB,MAAM,0BAA0B,CAAC;AAAA,EACtC,IAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,uBAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAoC,KAAA;AAClC,EAAA,MAAM,EAAE,IAAA,EAAM,cAAgB,EAAA,OAAA,KAAY,WAA8B,CAAA;AAAA,IACtE,oBAAsB,EAAA,UAAA;AAAA,IACtB,IAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAW,EAAA,cAAA;AAAA,IACX,UAAY,EAAA;AAAA,MACV,OAAO,EAAE,CAAA;AAAA,MACT,IAAK,CAAA,EAAE,OAAS,EAAA,EAAA,EAAI,CAAA;AAAA,MACpB,IAAK,CAAA;AAAA,QACH,KAAM,CAAA,EAAE,eAAiB,EAAA,cAAA,EAAgB,UAAY,EAAA;AAEnD,UAAS,QAAA,CAAA,QAAA,CAAS,MAAM,SAAY,GAAA,CAAA,EAAG,KAAK,GAAI,CAAA,eAAA,EAAiB,eAAe,CAAC,CAAA,EAAA,CAAA;AACjF,UAAA,QAAA,CAAS,QAAS,CAAA,KAAA,CAAM,QAAW,GAAA,CAAA,EAAG,cAAc,CAAA,EAAA,CAAA;AAAA,SACtD;AAAA,QACA,OAAS,EAAA;AAAA,OACV;AAAA,KACH;AAAA,IACA,QAAU,EAAA;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAO,OAAQ,CAAA,OAAA,EAAS,EAAE,IAAA,EAAM,WAAW,CAAA;AACjD,EAAM,MAAA,OAAA,GAAU,WAAW,OAAS,EAAA;AAAA;AAAA,IAElC,YAAA,EAAc,CAAC,KAAU,KAAA;AA1D7B,MAAA,IAAA,EAAA;AA2DM,MAAI,IAAA,KAAA,CAAM,yBAAyB,OAAS,EAAA;AAC1C,QAAA,MAAM,SAAS,KAAM,CAAA,aAAA;AACrB,QAAA,IAAI,cAAc,MAAO,CAAA,EAAA;AACzB,QAAI,IAAA,MAAA,CAAO,aAAa,MAAQ,EAAA;AAC9B,UAAc,WAAA,GAAA,CAAA,CAAA,EAAA,GAAA,MAAA,CAAO,aAAP,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAsB,EAAM,KAAA,EAAA;AAAA;AAG5C,QAAI,IAAA,uBAAA,CAAwB,QAAS,CAAA,WAAW,CAAG,EAAA;AACjD,UAAO,OAAA,KAAA;AAAA;AACT;AAEF,MAAO,OAAA,IAAA;AAAA;AACT,GACD,CAAA;AACD,EAAM,MAAA,OAAA,GAAU,kBAAkB,OAAS,EAAA;AAAA,IACzC,OAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAY,EAAA,cAAA;AAAA,IACZ,OAAS,EAAA,IAAA;AAAA,IACT,IAAM,EAAA,IAAA;AAAA,IACN,iBAAiB,kBAAmB,CAAA;AAAA,GACrC,CAAA;AAED,EAAM,MAAA,EAAE,iBAAmB,EAAA,gBAAA,EAAkB,YAAa,EAAA,GAAI,gBAAgB,CAAC,IAAA,EAAM,OAAS,EAAA,OAAO,CAAC,CAAA;AAEtG,EAAO,OAAA;AAAA,IACL,IAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,iBAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useFloatingInteractions.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.ts"],"sourcesContent":["import {\n useFloating,\n autoUpdate,\n offset,\n useRole,\n useDismiss,\n useListNavigation,\n UseFloatingOptions,\n flip,\n size,\n UseListNavigationProps,\n useInteractions,\n} from '@floating-ui/react';\n\ntype useFloatingInteractionsProps = {\n open: UseFloatingOptions['open'];\n onOpenChange: UseFloatingOptions['onOpenChange'];\n activeIndex: UseListNavigationProps['activeIndex'];\n setActiveIndex: UseListNavigationProps['onNavigate'];\n outsidePressIdsToIgnore: string[];\n listRef: React.MutableRefObject<Array<HTMLElement | null>>;\n disabledIndicesRef: React.MutableRefObject<number[]>;\n};\n\nexport const MAX_MENU_HEIGHT = 300;\n\nexport const useFloatingInteractions = ({\n open,\n onOpenChange,\n activeIndex,\n setActiveIndex,\n outsidePressIdsToIgnore,\n listRef,\n disabledIndicesRef,\n}: useFloatingInteractionsProps) => {\n const { refs, floatingStyles, context } = useFloating<HTMLInputElement>({\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange,\n placement: 'bottom-start',\n middleware: [\n offset(10),\n flip({ padding: 10 }),\n size({\n apply({ availableHeight, availableWidth, elements }) {\n // limit maxHeight and maxWidth of dropdown\n elements.floating.style.maxHeight = `${Math.min(MAX_MENU_HEIGHT, availableHeight)}px`;\n elements.floating.style.maxWidth = `${availableWidth}px`;\n },\n padding: 10,\n }),\n ],\n strategy: 'fixed',\n });\n\n const role = useRole(context, { role: 'listbox' });\n const dismiss = useDismiss(context, {\n // if outside click lands on operator pill, then ignore outside click\n outsidePress: (event) => {\n if (event.currentTarget instanceof Element) {\n const target = event.currentTarget;\n let idToCompare = target.id;\n if (target.nodeName === 'path') {\n idToCompare = target.parentElement?.id || '';\n }\n\n if (outsidePressIdsToIgnore.includes(idToCompare)) {\n return false;\n }\n }\n return true;\n },\n });\n const listNav = useListNavigation(context, {\n listRef,\n activeIndex,\n onNavigate: setActiveIndex,\n virtual: true,\n loop: true,\n disabledIndices: disabledIndicesRef.current,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([role, dismiss, listNav]);\n\n return {\n refs,\n floatingStyles,\n context,\n getReferenceProps,\n getFloatingProps,\n getItemProps,\n };\n};\n"],"names":[],"mappings":";;AAwBO,MAAM,eAAkB,GAAA,IAAA;AAExB,MAAM,0BAA0B,CAAC;AAAA,EACtC,IAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,uBAAA;AAAA,EACA,OAAA;AAAA,EACA,kBAAA;AACF,CAAoC,KAAA;AAClC,EAAA,MAAM,EAAE,IAAA,EAAM,cAAgB,EAAA,OAAA,KAAY,WAA8B,CAAA;AAAA,IACtE,oBAAsB,EAAA,UAAA;AAAA,IACtB,IAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAW,EAAA,cAAA;AAAA,IACX,UAAY,EAAA;AAAA,MACV,OAAO,EAAE,CAAA;AAAA,MACT,IAAK,CAAA,EAAE,OAAS,EAAA,EAAA,EAAI,CAAA;AAAA,MACpB,IAAK,CAAA;AAAA,QACH,KAAM,CAAA,EAAE,eAAiB,EAAA,cAAA,EAAgB,UAAY,EAAA;AAEnD,UAAA,QAAA,CAAS,SAAS,KAAM,CAAA,SAAA,GAAY,GAAG,IAAK,CAAA,GAAA,CAAI,iBAAiB,eAAe,CAAA,CAAA,EAAA,CAAA,CAAA;AAChF,UAAS,QAAA,CAAA,QAAA,CAAS,KAAM,CAAA,QAAA,GAAW,CAAG,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SACxC;AAAA,QACA,OAAS,EAAA,EAAA;AAAA,OACV,CAAA;AAAA,KACH;AAAA,IACA,QAAU,EAAA,OAAA;AAAA,GACX,CAAA,CAAA;AAED,EAAA,MAAM,OAAO,OAAQ,CAAA,OAAA,EAAS,EAAE,IAAA,EAAM,WAAW,CAAA,CAAA;AACjD,EAAM,MAAA,OAAA,GAAU,WAAW,OAAS,EAAA;AAAA,IAElC,YAAA,EAAc,CAAC,KAAU,KAAA;AA1D7B,MAAA,IAAA,EAAA,CAAA;AA2DM,MAAI,IAAA,KAAA,CAAM,yBAAyB,OAAS,EAAA;AAC1C,QAAA,MAAM,SAAS,KAAM,CAAA,aAAA,CAAA;AACrB,QAAA,IAAI,cAAc,MAAO,CAAA,EAAA,CAAA;AACzB,QAAI,IAAA,MAAA,CAAO,aAAa,MAAQ,EAAA;AAC9B,UAAc,WAAA,GAAA,CAAA,CAAA,EAAA,GAAA,MAAA,CAAO,aAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,EAAM,KAAA,EAAA,CAAA;AAAA,SAC5C;AAEA,QAAI,IAAA,uBAAA,CAAwB,QAAS,CAAA,WAAW,CAAG,EAAA;AACjD,UAAO,OAAA,KAAA,CAAA;AAAA,SACT;AAAA,OACF;AACA,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAAA,GACD,CAAA,CAAA;AACD,EAAM,MAAA,OAAA,GAAU,kBAAkB,OAAS,EAAA;AAAA,IACzC,OAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAY,EAAA,cAAA;AAAA,IACZ,OAAS,EAAA,IAAA;AAAA,IACT,IAAM,EAAA,IAAA;AAAA,IACN,iBAAiB,kBAAmB,CAAA,OAAA;AAAA,GACrC,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,iBAAmB,EAAA,gBAAA,EAAkB,YAAa,EAAA,GAAI,gBAAgB,CAAC,IAAA,EAAM,OAAS,EAAA,OAAO,CAAC,CAAA,CAAA;AAEtG,EAAO,OAAA;AAAA,IACL,IAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,iBAAA;AAAA,IACA,gBAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/utils.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\nimport { AdHocInputType } from './AdHocFiltersCombobox';\nimport { AdHocFilterWithLabels, isMultiValueOperator, OnAddCustomValueFn } from '../AdHocFiltersVariable';\n\nconst VIRTUAL_LIST_WIDTH_ESTIMATE_MULTIPLIER = 8;\nconst VIRTUAL_LIST_DESCRIPTION_WIDTH_ESTIMATE_MULTIPLIER = 6;\nconst VIRTUAL_LIST_PADDING = 8;\nexport const VIRTUAL_LIST_OVERSCAN = 5;\nexport const VIRTUAL_LIST_ITEM_HEIGHT = 38;\nexport const VIRTUAL_LIST_ITEM_HEIGHT_WITH_DESCRIPTION = 60;\nexport const ERROR_STATE_DROPDOWN_WIDTH = 366;\n\nexport const flattenOptionGroups = (options: Array<SelectableValue<string>>) =>\n options.flatMap<SelectableValue<string>>((option) => (option.options ? [option, ...option.options] : [option]));\n\nexport const setupDropdownAccessibility = (\n options: Array<SelectableValue<string>>,\n listRef: React.MutableRefObject<Array<HTMLElement | null>>,\n disabledIndicesRef: React.MutableRefObject<number[]>\n) => {\n let maxOptionWidth = 182;\n const listRefArr = [];\n const disabledIndices = [];\n\n for (let i = 0; i < options.length; i++) {\n // listRefArr should be filled with nulls for amount of dropdown items so that\n // useNavigationList sets activeIndex correctly when navigating with arrow keys\n listRefArr.push(null);\n\n // disabledIndices are used to skip unselectable group items in dropdown when\n // navigating with arrow keys\n if (options[i]?.options) {\n disabledIndices.push(i);\n }\n let label = options[i].label ?? options[i].value ?? '';\n let multiplierToUse = VIRTUAL_LIST_WIDTH_ESTIMATE_MULTIPLIER;\n if (\n label.length * VIRTUAL_LIST_WIDTH_ESTIMATE_MULTIPLIER <\n (options[i].description?.length || 0) * VIRTUAL_LIST_DESCRIPTION_WIDTH_ESTIMATE_MULTIPLIER\n ) {\n label = options[i].description!;\n multiplierToUse = VIRTUAL_LIST_DESCRIPTION_WIDTH_ESTIMATE_MULTIPLIER;\n }\n\n // rough widthEstimate\n const widthEstimate =\n (options[i].isCustom ? label.length + 18 : label.length) * multiplierToUse + VIRTUAL_LIST_PADDING * 2;\n if (widthEstimate > maxOptionWidth) {\n maxOptionWidth = widthEstimate;\n }\n }\n\n listRef.current = [...listRefArr];\n disabledIndicesRef.current = [...disabledIndices];\n return maxOptionWidth;\n};\n\nconst nextInputTypeMap = {\n key: 'operator',\n operator: 'value',\n value: 'key',\n} as const;\n\nexport const switchToNextInputType = (\n filterInputType: AdHocInputType,\n setInputType: React.Dispatch<React.SetStateAction<AdHocInputType>>,\n handleChangeViewMode: ((event?: React.MouseEvent, shouldFocusOnFilterPill?: boolean) => void) | undefined,\n element: HTMLInputElement | null,\n shouldFocusOnPillWrapperOverride?: boolean\n) =>\n switchInputType(\n nextInputTypeMap[filterInputType],\n setInputType,\n filterInputType === 'value' ? handleChangeViewMode : undefined,\n element,\n shouldFocusOnPillWrapperOverride\n );\n\nexport const switchInputType = (\n filterInputType: AdHocInputType,\n setInputType: React.Dispatch<React.SetStateAction<AdHocInputType>>,\n handleChangeViewMode?: (event?: React.MouseEvent, shouldFocusOnFilterPill?: boolean) => void,\n element?: HTMLInputElement | null,\n shouldFocusOnPillWrapperOverride?: boolean\n) => {\n setInputType(filterInputType);\n\n handleChangeViewMode?.(undefined, shouldFocusOnPillWrapperOverride);\n\n setTimeout(() => element?.focus());\n};\n\nexport const generateFilterUpdatePayload = ({\n filterInputType,\n item,\n filter,\n setFilterMultiValues,\n onAddCustomValue,\n}: {\n filterInputType: AdHocInputType;\n item: SelectableValue<string>;\n filter: AdHocFilterWithLabels;\n setFilterMultiValues: (value: React.SetStateAction<Array<SelectableValue<string>>>) => void;\n onAddCustomValue?: OnAddCustomValueFn;\n}): Partial<AdHocFilterWithLabels> => {\n if (filterInputType === 'key') {\n return {\n key: item.value,\n keyLabel: item.label ? item.label : item.value,\n meta: item?.meta,\n };\n }\n if (filterInputType === 'value') {\n if (item.isCustom && onAddCustomValue) {\n return onAddCustomValue(item, filter);\n }\n return {\n value: item.value,\n valueLabels: [item.label ? item.label : item.value!],\n };\n }\n\n if (filterInputType === 'operator') {\n // handle values/valueLabels when switching from multi to single value operator\n if (isMultiValueOperator(filter.operator) && !isMultiValueOperator(item.value!)) {\n // reset local multi values state\n setFilterMultiValues([]);\n // update operator and reset values and valueLabels\n return {\n operator: item.value,\n valueLabels: [filter.valueLabels?.[0] || filter.values?.[0] || filter.value],\n values: undefined,\n };\n }\n\n // handle values/valueLabels when switching from single to multi value operator\n if (isMultiValueOperator(item.value!) && !isMultiValueOperator(filter.operator)) {\n const valueLabels = [filter.valueLabels?.[0] || filter.values?.[0] || filter.value];\n const values = [filter.value];\n\n // populate local multi values state\n if (values[0]) {\n setFilterMultiValues([\n {\n value: values[0],\n label: valueLabels?.[0] ?? values[0],\n },\n ]);\n }\n\n // update operator and default values and valueLabels\n return {\n operator: item.value,\n valueLabels: valueLabels,\n values: values,\n };\n }\n }\n\n // default operator update of same multi/single type\n return {\n [filterInputType]: item.value,\n };\n};\n\nconst INPUT_PLACEHOLDER = 'Filter by label values';\n\nexport const generatePlaceholder = (\n filter: AdHocFilterWithLabels,\n filterInputType: AdHocInputType,\n isMultiValueEdit: boolean,\n isAlwaysWip?: boolean\n) => {\n if (filterInputType === 'key') {\n return INPUT_PLACEHOLDER;\n }\n if (filterInputType === 'value') {\n if (isMultiValueEdit) {\n return 'Edit values';\n }\n return filter.valueLabels?.[0] || '';\n }\n\n return filter[filterInputType] && !isAlwaysWip ? `${filter[filterInputType]}` : INPUT_PLACEHOLDER;\n};\n\nexport const populateInputValueOnInputTypeSwitch = ({\n populateInputOnEdit,\n item,\n filterInputType,\n setInputValue,\n filter,\n}: {\n populateInputOnEdit: boolean | undefined;\n item: SelectableValue<string>;\n filterInputType: AdHocInputType;\n setInputValue: (value: React.SetStateAction<string>) => void;\n filter: AdHocFilterWithLabels | undefined;\n}) => {\n if (populateInputOnEdit && !isMultiValueOperator(item.value || '') && nextInputTypeMap[filterInputType] === 'value') {\n setInputValue(filter?.valueLabels?.[0] ?? filter?.value ?? '');\n } else {\n setInputValue('');\n }\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/variables/adhoc/AdHocFiltersCombobox/utils.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\nimport { AdHocInputType } from './AdHocFiltersCombobox';\nimport { AdHocFilterWithLabels, isMultiValueOperator, OnAddCustomValueFn } from '../AdHocFiltersVariable';\n\nconst VIRTUAL_LIST_WIDTH_ESTIMATE_MULTIPLIER = 8;\nconst VIRTUAL_LIST_DESCRIPTION_WIDTH_ESTIMATE_MULTIPLIER = 6;\nconst VIRTUAL_LIST_PADDING = 8;\nexport const VIRTUAL_LIST_OVERSCAN = 5;\nexport const VIRTUAL_LIST_ITEM_HEIGHT = 38;\nexport const VIRTUAL_LIST_ITEM_HEIGHT_WITH_DESCRIPTION = 60;\nexport const ERROR_STATE_DROPDOWN_WIDTH = 366;\n\nexport const flattenOptionGroups = (options: Array<SelectableValue<string>>) =>\n options.flatMap<SelectableValue<string>>((option) => (option.options ? [option, ...option.options] : [option]));\n\nexport const setupDropdownAccessibility = (\n options: Array<SelectableValue<string>>,\n listRef: React.MutableRefObject<Array<HTMLElement | null>>,\n disabledIndicesRef: React.MutableRefObject<number[]>\n) => {\n let maxOptionWidth = 182;\n const listRefArr = [];\n const disabledIndices = [];\n\n for (let i = 0; i < options.length; i++) {\n // listRefArr should be filled with nulls for amount of dropdown items so that\n // useNavigationList sets activeIndex correctly when navigating with arrow keys\n listRefArr.push(null);\n\n // disabledIndices are used to skip unselectable group items in dropdown when\n // navigating with arrow keys\n if (options[i]?.options) {\n disabledIndices.push(i);\n }\n let label = options[i].label ?? options[i].value ?? '';\n let multiplierToUse = VIRTUAL_LIST_WIDTH_ESTIMATE_MULTIPLIER;\n if (\n label.length * VIRTUAL_LIST_WIDTH_ESTIMATE_MULTIPLIER <\n (options[i].description?.length || 0) * VIRTUAL_LIST_DESCRIPTION_WIDTH_ESTIMATE_MULTIPLIER\n ) {\n label = options[i].description!;\n multiplierToUse = VIRTUAL_LIST_DESCRIPTION_WIDTH_ESTIMATE_MULTIPLIER;\n }\n\n // rough widthEstimate\n const widthEstimate =\n (options[i].isCustom ? label.length + 18 : label.length) * multiplierToUse + VIRTUAL_LIST_PADDING * 2;\n if (widthEstimate > maxOptionWidth) {\n maxOptionWidth = widthEstimate;\n }\n }\n\n listRef.current = [...listRefArr];\n disabledIndicesRef.current = [...disabledIndices];\n return maxOptionWidth;\n};\n\nconst nextInputTypeMap = {\n key: 'operator',\n operator: 'value',\n value: 'key',\n} as const;\n\nexport const switchToNextInputType = (\n filterInputType: AdHocInputType,\n setInputType: React.Dispatch<React.SetStateAction<AdHocInputType>>,\n handleChangeViewMode: ((event?: React.MouseEvent, shouldFocusOnFilterPill?: boolean) => void) | undefined,\n element: HTMLInputElement | null,\n shouldFocusOnPillWrapperOverride?: boolean\n) =>\n switchInputType(\n nextInputTypeMap[filterInputType],\n setInputType,\n filterInputType === 'value' ? handleChangeViewMode : undefined,\n element,\n shouldFocusOnPillWrapperOverride\n );\n\nexport const switchInputType = (\n filterInputType: AdHocInputType,\n setInputType: React.Dispatch<React.SetStateAction<AdHocInputType>>,\n handleChangeViewMode?: (event?: React.MouseEvent, shouldFocusOnFilterPill?: boolean) => void,\n element?: HTMLInputElement | null,\n shouldFocusOnPillWrapperOverride?: boolean\n) => {\n setInputType(filterInputType);\n\n handleChangeViewMode?.(undefined, shouldFocusOnPillWrapperOverride);\n\n setTimeout(() => element?.focus());\n};\n\nexport const generateFilterUpdatePayload = ({\n filterInputType,\n item,\n filter,\n setFilterMultiValues,\n onAddCustomValue,\n}: {\n filterInputType: AdHocInputType;\n item: SelectableValue<string>;\n filter: AdHocFilterWithLabels;\n setFilterMultiValues: (value: React.SetStateAction<Array<SelectableValue<string>>>) => void;\n onAddCustomValue?: OnAddCustomValueFn;\n}): Partial<AdHocFilterWithLabels> => {\n if (filterInputType === 'key') {\n return {\n key: item.value,\n keyLabel: item.label ? item.label : item.value,\n meta: item?.meta,\n };\n }\n if (filterInputType === 'value') {\n if (item.isCustom && onAddCustomValue) {\n return onAddCustomValue(item, filter);\n }\n return {\n value: item.value,\n valueLabels: [item.label ? item.label : item.value!],\n };\n }\n\n if (filterInputType === 'operator') {\n // handle values/valueLabels when switching from multi to single value operator\n if (isMultiValueOperator(filter.operator) && !isMultiValueOperator(item.value!)) {\n // reset local multi values state\n setFilterMultiValues([]);\n // update operator and reset values and valueLabels\n return {\n operator: item.value,\n valueLabels: [filter.valueLabels?.[0] || filter.values?.[0] || filter.value],\n values: undefined,\n };\n }\n\n // handle values/valueLabels when switching from single to multi value operator\n if (isMultiValueOperator(item.value!) && !isMultiValueOperator(filter.operator)) {\n const valueLabels = [filter.valueLabels?.[0] || filter.values?.[0] || filter.value];\n const values = [filter.value];\n\n // populate local multi values state\n if (values[0]) {\n setFilterMultiValues([\n {\n value: values[0],\n label: valueLabels?.[0] ?? values[0],\n },\n ]);\n }\n\n // update operator and default values and valueLabels\n return {\n operator: item.value,\n valueLabels: valueLabels,\n values: values,\n };\n }\n }\n\n // default operator update of same multi/single type\n return {\n [filterInputType]: item.value,\n };\n};\n\nconst INPUT_PLACEHOLDER = 'Filter by label values';\n\nexport const generatePlaceholder = (\n filter: AdHocFilterWithLabels,\n filterInputType: AdHocInputType,\n isMultiValueEdit: boolean,\n isAlwaysWip?: boolean\n) => {\n if (filterInputType === 'key') {\n return INPUT_PLACEHOLDER;\n }\n if (filterInputType === 'value') {\n if (isMultiValueEdit) {\n return 'Edit values';\n }\n return filter.valueLabels?.[0] || '';\n }\n\n return filter[filterInputType] && !isAlwaysWip ? `${filter[filterInputType]}` : INPUT_PLACEHOLDER;\n};\n\nexport const populateInputValueOnInputTypeSwitch = ({\n populateInputOnEdit,\n item,\n filterInputType,\n setInputValue,\n filter,\n}: {\n populateInputOnEdit: boolean | undefined;\n item: SelectableValue<string>;\n filterInputType: AdHocInputType;\n setInputValue: (value: React.SetStateAction<string>) => void;\n filter: AdHocFilterWithLabels | undefined;\n}) => {\n if (populateInputOnEdit && !isMultiValueOperator(item.value || '') && nextInputTypeMap[filterInputType] === 'value') {\n setInputValue(filter?.valueLabels?.[0] ?? filter?.value ?? '');\n } else {\n setInputValue('');\n }\n};\n"],"names":[],"mappings":"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"}
@@ -16,6 +16,25 @@ import { wrapInSafeSerializableSceneObject } from '../../utils/wrapInSafeSeriali
16
16
  import { isEqual } from 'lodash';
17
17
  import { getAdHocFiltersFromScopes } from './getAdHocFiltersFromScopes.js';
18
18
 
19
+ var __defProp = Object.defineProperty;
20
+ var __defProps = Object.defineProperties;
21
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
22
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
23
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
24
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
25
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
26
+ var __spreadValues = (a, b) => {
27
+ for (var prop in b || (b = {}))
28
+ if (__hasOwnProp.call(b, prop))
29
+ __defNormalProp(a, prop, b[prop]);
30
+ if (__getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(b)) {
32
+ if (__propIsEnum.call(b, prop))
33
+ __defNormalProp(a, prop, b[prop]);
34
+ }
35
+ return a;
36
+ };
37
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
19
38
  var FilterOrigin = /* @__PURE__ */ ((FilterOrigin2) => {
20
39
  FilterOrigin2["Scopes"] = "scopes";
21
40
  FilterOrigin2["Dashboards"] = "dashboards";
@@ -62,7 +81,7 @@ const OPERATORS = [
62
81
  class AdHocFiltersVariable extends SceneObjectBase {
63
82
  constructor(state) {
64
83
  var _a, _b, _c, _d, _e;
65
- super({
84
+ super(__spreadValues({
66
85
  type: "adhoc",
67
86
  name: (_a = state.name) != null ? _a : "Filters",
68
87
  filters: [],
@@ -71,9 +90,8 @@ class AdHocFiltersVariable extends SceneObjectBase {
71
90
  filterExpression: (_e = state.filterExpression) != null ? _e : renderExpression(state.expressionBuilder, [
72
91
  ...(_c = (_b = state.baseFilters) == null ? void 0 : _b.filter((filter) => filter.origin)) != null ? _c : [],
73
92
  ...(_d = state.filters) != null ? _d : []
74
- ]),
75
- ...state
76
- });
93
+ ])
94
+ }, state));
77
95
  this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
78
96
  this._dataSourceSrv = getDataSourceSrv();
79
97
  this._urlSync = new AdHocFiltersVariableUrlSyncHandler(this);
@@ -93,7 +111,13 @@ class AdHocFiltersVariable extends SceneObjectBase {
93
111
  };
94
112
  };
95
113
  this._updateScopesFilters = (scopes, areScopesLoading) => {
96
- var _a;
114
+ var _a, _b;
115
+ if (!scopes.length) {
116
+ this.setState({
117
+ baseFilters: (_a = this.state.baseFilters) == null ? void 0 : _a.filter((filter) => filter.origin !== "scopes" /* Scopes */)
118
+ });
119
+ return;
120
+ }
97
121
  const scopeFilters = getAdHocFiltersFromScopes(scopes);
98
122
  if (!scopeFilters.length) {
99
123
  this._overwriteScopes = areScopesLoading;
@@ -102,7 +126,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
102
126
  let finalFilters = scopeFilters;
103
127
  const scopeInjectedFilters = [];
104
128
  const remainingFilters = [];
105
- (_a = this.state.baseFilters) == null ? void 0 : _a.forEach((filter) => {
129
+ (_b = this.state.baseFilters) == null ? void 0 : _b.forEach((filter) => {
106
130
  if (filter.origin === "scopes" /* Scopes */) {
107
131
  scopeInjectedFilters.push(filter);
108
132
  } else {
@@ -147,11 +171,6 @@ class AdHocFiltersVariable extends SceneObjectBase {
147
171
  this.publishEvent(new SceneVariableValueChangedEvent(this), true);
148
172
  }
149
173
  }
150
- /**
151
- * Updates the variable's `filters` and `filterExpression` state.
152
- * If `skipPublish` option is true, this will not emit the `SceneVariableValueChangedEvent`,
153
- * allowing consumers to update the filters without triggering dependent data providers.
154
- */
155
174
  updateFilters(filters, options) {
156
175
  var _a, _b;
157
176
  let filterExpressionChanged = false;
@@ -200,21 +219,21 @@ class AdHocFiltersVariable extends SceneObjectBase {
200
219
  update.originalValue = void 0;
201
220
  }
202
221
  const updatedBaseFilters = (_a = baseFilters == null ? void 0 : baseFilters.map((f) => {
203
- return f === filter ? { ...f, ...update } : f;
222
+ return f === filter ? __spreadValues(__spreadValues({}, f), update) : f;
204
223
  })) != null ? _a : [];
205
224
  this.setState({ baseFilters: updatedBaseFilters });
206
225
  return;
207
226
  }
208
227
  if (filter === _wip) {
209
228
  if ("value" in update && update["value"] !== "") {
210
- this.setState({ filters: [...filters, { ..._wip, ...update }], _wip: void 0 });
229
+ this.setState({ filters: [...filters, __spreadValues(__spreadValues({}, _wip), update)], _wip: void 0 });
211
230
  } else {
212
- this.setState({ _wip: { ...filter, ...update } });
231
+ this.setState({ _wip: __spreadValues(__spreadValues({}, filter), update) });
213
232
  }
214
233
  return;
215
234
  }
216
235
  const updatedFilters = this.state.filters.map((f) => {
217
- return f === filter ? { ...f, ...update } : f;
236
+ return f === filter ? __spreadValues(__spreadValues({}, f), update) : f;
218
237
  });
219
238
  this.setState({ filters: updatedFilters });
220
239
  }
@@ -243,10 +262,9 @@ class AdHocFiltersVariable extends SceneObjectBase {
243
262
  if (index === filterToForceIndex) {
244
263
  return [
245
264
  ...acc,
246
- {
247
- ...f,
265
+ __spreadProps(__spreadValues({}, f), {
248
266
  forceEdit: true
249
- }
267
+ })
250
268
  ];
251
269
  }
252
270
  if (f === filter) {
@@ -265,10 +283,9 @@ class AdHocFiltersVariable extends SceneObjectBase {
265
283
  if (index === filterToForceIndex) {
266
284
  return [
267
285
  ...acc,
268
- {
269
- ...f,
286
+ __spreadProps(__spreadValues({}, f), {
270
287
  forceEdit: true
271
- }
288
+ })
272
289
  ];
273
290
  }
274
291
  if (f === filter) {
@@ -279,9 +296,6 @@ class AdHocFiltersVariable extends SceneObjectBase {
279
296
  });
280
297
  }
281
298
  }
282
- /**
283
- * Get possible keys given current filters. Do not call from plugins directly
284
- */
285
299
  async _getKeys(currentKey) {
286
300
  var _a, _b, _c, _d;
287
301
  const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, currentKey));
@@ -298,13 +312,12 @@ class AdHocFiltersVariable extends SceneObjectBase {
298
312
  const otherFilters = this.state.filters.filter((f) => f.key !== currentKey).concat((_c = this.state.baseFilters) != null ? _c : []);
299
313
  const timeRange = sceneGraph.getTimeRange(this).state.value;
300
314
  const queries = this.state.useQueriesAsFilterForOptions ? getQueriesForVariables(this) : void 0;
301
- const response = await ds.getTagKeys({
315
+ const response = await ds.getTagKeys(__spreadValues({
302
316
  filters: otherFilters,
303
317
  queries,
304
318
  timeRange,
305
- scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue(),
306
- ...getEnrichedFiltersRequest(this)
307
- });
319
+ scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
320
+ }, getEnrichedFiltersRequest(this)));
308
321
  if (responseHasError(response)) {
309
322
  this.setState({ error: response.error.message });
310
323
  }
@@ -318,9 +331,6 @@ class AdHocFiltersVariable extends SceneObjectBase {
318
331
  }
319
332
  return keys.map(toSelectableValue);
320
333
  }
321
- /**
322
- * Get possible key values for a specific key given current filters. Do not call from plugins directly
323
- */
324
334
  async _getValuesFor(filter) {
325
335
  var _a, _b, _c, _d, _e;
326
336
  const override = await ((_b = (_a = this.state).getTagValuesProvider) == null ? void 0 : _b.call(_a, this, filter));
@@ -338,23 +348,20 @@ class AdHocFiltersVariable extends SceneObjectBase {
338
348
  let scopes = (_e = this._scopesBridge) == null ? void 0 : _e.getValue();
339
349
  if (filter.origin === "scopes" /* Scopes */) {
340
350
  scopes = scopes == null ? void 0 : scopes.map((scope) => {
341
- return {
342
- ...scope,
343
- spec: {
344
- ...scope.spec,
351
+ return __spreadProps(__spreadValues({}, scope), {
352
+ spec: __spreadProps(__spreadValues({}, scope.spec), {
345
353
  filters: scope.spec.filters.filter((f) => f.key !== filter.key)
346
- }
347
- };
354
+ })
355
+ });
348
356
  });
349
357
  }
350
- const response = await ds.getTagValues({
358
+ const response = await ds.getTagValues(__spreadValues({
351
359
  key: filter.key,
352
360
  filters: otherFilters,
353
361
  timeRange,
354
362
  queries,
355
- scopes,
356
- ...getEnrichedFiltersRequest(this)
357
- });
363
+ scopes
364
+ }, getEnrichedFiltersRequest(this)));
358
365
  if (responseHasError(response)) {
359
366
  this.setState({ error: response.error.message });
360
367
  }
@@ -394,9 +401,22 @@ function AdHocFiltersVariableRenderer({ model }) {
394
401
  const { filters, readOnly, addFilterButtonText } = model.useState();
395
402
  const styles = useStyles2(getStyles);
396
403
  if (model.state.layout === "combobox") {
397
- return /* @__PURE__ */ React.createElement(AdHocFiltersComboboxRenderer, { model });
404
+ return /* @__PURE__ */ React.createElement(AdHocFiltersComboboxRenderer, {
405
+ model
406
+ });
398
407
  }
399
- return /* @__PURE__ */ React.createElement("div", { className: styles.wrapper }, filters.filter((filter) => !filter.hidden).map((filter, index) => /* @__PURE__ */ React.createElement(React.Fragment, { key: index }, /* @__PURE__ */ React.createElement(AdHocFilterRenderer, { filter, model }))), !readOnly && /* @__PURE__ */ React.createElement(AdHocFilterBuilder, { model, key: "'builder", addFilterButtonText }));
408
+ return /* @__PURE__ */ React.createElement("div", {
409
+ className: styles.wrapper
410
+ }, filters.filter((filter) => !filter.hidden).map((filter, index) => /* @__PURE__ */ React.createElement(React.Fragment, {
411
+ key: index
412
+ }, /* @__PURE__ */ React.createElement(AdHocFilterRenderer, {
413
+ filter,
414
+ model
415
+ }))), !readOnly && /* @__PURE__ */ React.createElement(AdHocFilterBuilder, {
416
+ model,
417
+ key: "'builder",
418
+ addFilterButtonText
419
+ }));
400
420
  }
401
421
  const getStyles = (theme) => ({
402
422
  wrapper: css({
@@ -410,8 +430,6 @@ const getStyles = (theme) => ({
410
430
  function toSelectableValue(input) {
411
431
  const { text, value } = input;
412
432
  const result = {
413
- // converting text to string due to some edge cases where it can be a number
414
- // TODO: remove once https://github.com/grafana/grafana/issues/99021 is closed
415
433
  label: String(text),
416
434
  value: String(value != null ? value : text)
417
435
  };