@splunk/visualizations 28.5.3 → 28.7.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 (663) hide show
  1. package/Area/Area.d.ts.map +1 -1
  2. package/Area/areaUtils.d.ts +1 -1
  3. package/Area/areaUtils.d.ts.map +1 -1
  4. package/Area/config.d.ts.map +1 -1
  5. package/Area.config.js +93 -25
  6. package/Area.config.js.map +3 -3
  7. package/Area.js +708 -319
  8. package/Area.js.map +4 -4
  9. package/Bar/Bar.d.ts.map +1 -1
  10. package/Bar.config.js +81 -24
  11. package/Bar.config.js.map +3 -3
  12. package/Bar.js +528 -297
  13. package/Bar.js.map +4 -4
  14. package/Bubble.config.js +80 -23
  15. package/Bubble.config.js.map +2 -2
  16. package/Bubble.js +375 -208
  17. package/Bubble.js.map +4 -4
  18. package/CHANGELOG.external.md +75 -60
  19. package/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts +1 -0
  20. package/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts.map +1 -1
  21. package/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts +12 -25
  22. package/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts.map +1 -1
  23. package/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts +11 -4
  24. package/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts.map +1 -1
  25. package/ChoroplethSvg.js +1133 -253
  26. package/ChoroplethSvg.js.map +4 -4
  27. package/Column/Column.d.ts.map +1 -1
  28. package/Column.config.js +81 -24
  29. package/Column.config.js.map +3 -3
  30. package/Column.js +531 -300
  31. package/Column.js.map +4 -4
  32. package/Ellipse.config.js +1 -1
  33. package/Ellipse.config.js.map +2 -2
  34. package/Ellipse.js +277 -161
  35. package/Ellipse.js.map +4 -4
  36. package/Events/PureEvents/FieldSummaryTooltip.d.ts +8 -31
  37. package/Events/PureEvents/FieldSummaryTooltip.d.ts.map +1 -1
  38. package/Events/PureEvents/PureEvents.d.ts.map +1 -1
  39. package/Events/PureEvents/TimeControlsPopover.d.ts +6 -25
  40. package/Events/PureEvents/TimeControlsPopover.d.ts.map +1 -1
  41. package/Events/config.d.ts.map +1 -1
  42. package/Events.config.js +13 -3
  43. package/Events.config.js.map +2 -2
  44. package/Events.js +355 -293
  45. package/Events.js.map +4 -4
  46. package/FillerGauge/FillerGauge.d.ts.map +1 -1
  47. package/FillerGauge/config.d.ts.map +1 -1
  48. package/FillerGauge.config.js +76 -24
  49. package/FillerGauge.config.js.map +2 -2
  50. package/FillerGauge.js +512 -271
  51. package/FillerGauge.js.map +4 -4
  52. package/Image/config.d.ts.map +1 -1
  53. package/Image.config.js +7 -0
  54. package/Image.config.js.map +2 -2
  55. package/Image.js +282 -149
  56. package/Image.js.map +4 -4
  57. package/LICENSE +13 -0
  58. package/Line/Line.d.ts.map +1 -1
  59. package/Line/config.d.ts.map +1 -1
  60. package/Line/lineUtils.d.ts.map +1 -1
  61. package/Line/mockdata/LineData.d.ts +21 -0
  62. package/Line/mockdata/LineData.d.ts.map +1 -1
  63. package/Line.config.js +86 -25
  64. package/Line.config.js.map +3 -3
  65. package/Line.js +638 -382
  66. package/Line.js.map +4 -4
  67. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts +47 -73
  68. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts.map +1 -1
  69. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts +11 -2
  70. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -1
  71. package/LinkGraph/PureLinkGraph/components/Graph.d.ts +5 -5
  72. package/LinkGraph/PureLinkGraph/components/Node.d.ts +2 -2
  73. package/LinkGraph/PureLinkGraph/components/Nodes.d.ts +2 -2
  74. package/LinkGraph.js +886 -759
  75. package/LinkGraph.js.map +4 -4
  76. package/Map/Map.d.ts +1 -0
  77. package/Map/Map.d.ts.map +1 -1
  78. package/Map/PureMap/BubbleLayer.d.ts +22 -4
  79. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  80. package/Map/PureMap/ChoroplethLayer.d.ts +9 -1
  81. package/Map/PureMap/ChoroplethLayer.d.ts.map +1 -1
  82. package/Map/PureMap/ClusterLayer.d.ts +3 -1
  83. package/Map/PureMap/ClusterLayer.d.ts.map +1 -1
  84. package/Map/PureMap/LocalChoroplethLayer.d.ts +1 -0
  85. package/Map/PureMap/LocalChoroplethLayer.d.ts.map +1 -1
  86. package/Map/PureMap/MapContext.d.ts +13 -0
  87. package/Map/PureMap/MapContext.d.ts.map +1 -0
  88. package/Map/PureMap/MarkerLayer.d.ts +19 -2
  89. package/Map/PureMap/MarkerLayer.d.ts.map +1 -1
  90. package/Map/PureMap/MarkerWrapper.d.ts +3 -2
  91. package/Map/PureMap/MarkerWrapper.d.ts.map +1 -1
  92. package/Map/PureMap/PureMap.d.ts +1 -0
  93. package/Map/PureMap/PureMap.d.ts.map +1 -1
  94. package/Map/PureMap/PureMapContainer.d.ts.map +1 -1
  95. package/Map/PureMap/Tooltip.d.ts +6 -1
  96. package/Map/PureMap/Tooltip.d.ts.map +1 -1
  97. package/Map/PureMap/keyboardConstants.d.ts +11 -0
  98. package/Map/PureMap/keyboardConstants.d.ts.map +1 -0
  99. package/Map/PureMap/useRovingTabindex.d.ts +18 -0
  100. package/Map/PureMap/useRovingTabindex.d.ts.map +1 -0
  101. package/Map/config.d.ts.map +1 -1
  102. package/Map.config.js +4 -1
  103. package/Map.config.js.map +2 -2
  104. package/Map.js +1594 -628
  105. package/Map.js.map +4 -4
  106. package/Markdown/Markdown.d.ts.map +1 -1
  107. package/Markdown.config.js.map +1 -1
  108. package/Markdown.js +304 -161
  109. package/Markdown.js.map +4 -4
  110. package/MarkerGauge/MarkerGauge.d.ts +1 -47
  111. package/MarkerGauge/MarkerGauge.d.ts.map +1 -1
  112. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts +22 -68
  113. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts.map +1 -1
  114. package/MarkerGauge/config.d.ts.map +1 -1
  115. package/MarkerGauge.config.js +75 -23
  116. package/MarkerGauge.config.js.map +2 -2
  117. package/MarkerGauge.js +560 -375
  118. package/MarkerGauge.js.map +4 -4
  119. package/NetworkGraph/NetworkGraph.d.ts +2 -5
  120. package/NetworkGraph/NetworkGraph.d.ts.map +1 -1
  121. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts.map +1 -1
  122. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts +1 -0
  123. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts.map +1 -1
  124. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts +1 -0
  125. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts.map +1 -1
  126. package/NetworkGraph/PureNetworkGraph/components/Tooltip.d.ts +1 -1
  127. package/NetworkGraph/PureNetworkGraph/components/Tooltip.d.ts.map +1 -1
  128. package/NetworkGraph/PureNetworkGraph/components/ZoomControls.d.ts +1 -0
  129. package/NetworkGraph/PureNetworkGraph/components/ZoomControls.d.ts.map +1 -1
  130. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts +23 -0
  131. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -1
  132. package/NetworkGraph.config.js +2 -0
  133. package/NetworkGraph.config.js.map +2 -2
  134. package/NetworkGraph.js +895 -455
  135. package/NetworkGraph.js.map +4 -4
  136. package/ParallelCoordinates.config.js.map +1 -1
  137. package/ParallelCoordinates.js +288 -172
  138. package/ParallelCoordinates.js.map +4 -4
  139. package/Pie/Pie.d.ts.map +1 -1
  140. package/Pie/pieUtils.d.ts +2 -2
  141. package/Pie.config.js +74 -22
  142. package/Pie.config.js.map +2 -2
  143. package/Pie.js +522 -296
  144. package/Pie.js.map +4 -4
  145. package/ProcessTree/ProcessTree.d.ts +23 -0
  146. package/ProcessTree/ProcessTree.d.ts.map +1 -0
  147. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts +33 -0
  148. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts.map +1 -0
  149. package/ProcessTree/PureProcessTree/components/DirectionalBytes.d.ts +8 -0
  150. package/ProcessTree/PureProcessTree/components/DirectionalBytes.d.ts.map +1 -0
  151. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts +46 -0
  152. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts.map +1 -0
  153. package/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.d.ts +20 -0
  154. package/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.d.ts.map +1 -0
  155. package/ProcessTree/PureProcessTree/hooks/useProcessTreeExpansionState.d.ts +20 -0
  156. package/ProcessTree/PureProcessTree/hooks/useProcessTreeExpansionState.d.ts.map +1 -0
  157. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts +46 -0
  158. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts.map +1 -0
  159. package/ProcessTree/PureProcessTree/hooks/useProcessTreeLinkOverlay.d.ts +23 -0
  160. package/ProcessTree/PureProcessTree/hooks/useProcessTreeLinkOverlay.d.ts.map +1 -0
  161. package/ProcessTree/PureProcessTree/mockdata/data.d.ts +235 -0
  162. package/ProcessTree/PureProcessTree/mockdata/data.d.ts.map +1 -0
  163. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts +9 -0
  164. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts.map +1 -0
  165. package/ProcessTree/PureProcessTree/utils/processTreeLinkOverlayUtils.d.ts +36 -0
  166. package/ProcessTree/PureProcessTree/utils/processTreeLinkOverlayUtils.d.ts.map +1 -0
  167. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts +82 -0
  168. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts.map +1 -0
  169. package/ProcessTree/config.d.ts +4 -0
  170. package/ProcessTree/config.d.ts.map +1 -0
  171. package/ProcessTree/index.d.ts +3 -0
  172. package/ProcessTree/index.d.ts.map +1 -0
  173. package/ProcessTree.config.js +192 -0
  174. package/ProcessTree.config.js.map +7 -0
  175. package/ProcessTree.js +5128 -0
  176. package/ProcessTree.js.map +7 -0
  177. package/Punchcard/Punchcard.d.ts +1 -5
  178. package/Punchcard/Punchcard.d.ts.map +1 -1
  179. package/Punchcard/PurePunchcard/Punchcard.d.ts +28 -32
  180. package/Punchcard/PurePunchcard/Punchcard.d.ts.map +1 -1
  181. package/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts +7 -12
  182. package/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts.map +1 -1
  183. package/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts +14 -19
  184. package/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts.map +1 -1
  185. package/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts +22 -27
  186. package/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts.map +1 -1
  187. package/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts +3 -8
  188. package/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts.map +1 -1
  189. package/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts +9 -14
  190. package/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts.map +1 -1
  191. package/Punchcard/PurePunchcard/src/PunchcardRow.d.ts.map +1 -1
  192. package/Punchcard.config.js.map +1 -1
  193. package/Punchcard.js +444 -631
  194. package/Punchcard.js.map +4 -4
  195. package/README.md +2 -0
  196. package/Rectangle.config.js +1 -1
  197. package/Rectangle.config.js.map +2 -2
  198. package/Rectangle.js +289 -173
  199. package/Rectangle.js.map +4 -4
  200. package/RichText/PureRichText/Editor/EditorPanel.d.ts +20 -0
  201. package/RichText/PureRichText/Editor/EditorPanel.d.ts.map +1 -0
  202. package/RichText/PureRichText/Editor/EditorPanelStyles.d.ts +17 -0
  203. package/RichText/PureRichText/Editor/EditorPanelStyles.d.ts.map +1 -0
  204. package/RichText/PureRichText/Editor/FontSelector.d.ts +15 -0
  205. package/RichText/PureRichText/Editor/FontSelector.d.ts.map +1 -0
  206. package/RichText/PureRichText/Editor/FormatButton.d.ts +23 -0
  207. package/RichText/PureRichText/Editor/FormatButton.d.ts.map +1 -0
  208. package/RichText/PureRichText/Editor/editorPanelUtils.d.ts +19 -0
  209. package/RichText/PureRichText/Editor/editorPanelUtils.d.ts.map +1 -0
  210. package/RichText/PureRichText/Editor/hooks/useLineSpacing.d.ts +11 -0
  211. package/RichText/PureRichText/Editor/hooks/useLineSpacing.d.ts.map +1 -0
  212. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts +26 -0
  213. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts.map +1 -0
  214. package/RichText/PureRichText/Editor/index.d.ts +9 -0
  215. package/RichText/PureRichText/Editor/index.d.ts.map +1 -0
  216. package/RichText/PureRichText/InnerEditor.d.ts +41 -0
  217. package/RichText/PureRichText/InnerEditor.d.ts.map +1 -0
  218. package/RichText/PureRichText/PureRichText.d.ts +19 -0
  219. package/RichText/PureRichText/PureRichText.d.ts.map +1 -0
  220. package/RichText/PureRichText/PureRichTextContext.d.ts +64 -0
  221. package/RichText/PureRichText/PureRichTextContext.d.ts.map +1 -0
  222. package/RichText/PureRichText/RichTextStyles.d.ts +25 -0
  223. package/RichText/PureRichText/RichTextStyles.d.ts.map +1 -0
  224. package/RichText/PureRichText/activeInstance.d.ts +23 -0
  225. package/RichText/PureRichText/activeInstance.d.ts.map +1 -0
  226. package/RichText/PureRichText/config.d.ts +17 -0
  227. package/RichText/PureRichText/config.d.ts.map +1 -0
  228. package/RichText/PureRichText/hooks/index.d.ts +12 -0
  229. package/RichText/PureRichText/hooks/index.d.ts.map +1 -0
  230. package/RichText/PureRichText/hooks/useContentSave.d.ts +25 -0
  231. package/RichText/PureRichText/hooks/useContentSave.d.ts.map +1 -0
  232. package/RichText/PureRichText/hooks/useContentSync.d.ts +28 -0
  233. package/RichText/PureRichText/hooks/useContentSync.d.ts.map +1 -0
  234. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts +33 -0
  235. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts.map +1 -0
  236. package/RichText/PureRichText/hooks/useEditModeEffect.d.ts +10 -0
  237. package/RichText/PureRichText/hooks/useEditModeEffect.d.ts.map +1 -0
  238. package/RichText/PureRichText/hooks/useEditorSetup.d.ts +36 -0
  239. package/RichText/PureRichText/hooks/useEditorSetup.d.ts.map +1 -0
  240. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts +33 -0
  241. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts.map +1 -0
  242. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts +35 -0
  243. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts.map +1 -0
  244. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts +18 -0
  245. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  246. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts +24 -0
  247. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts.map +1 -0
  248. package/RichText/PureRichText/hooks/useRichTextState.d.ts +38 -0
  249. package/RichText/PureRichText/hooks/useRichTextState.d.ts.map +1 -0
  250. package/RichText/PureRichText/hooks/useStepFontSize.d.ts +17 -0
  251. package/RichText/PureRichText/hooks/useStepFontSize.d.ts.map +1 -0
  252. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts +18 -0
  253. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts.map +1 -0
  254. package/RichText/PureRichText/hooks/useTokenMap.d.ts +45 -0
  255. package/RichText/PureRichText/hooks/useTokenMap.d.ts.map +1 -0
  256. package/RichText/PureRichText/index.d.ts +16 -0
  257. package/RichText/PureRichText/index.d.ts.map +1 -0
  258. package/RichText/PureRichText/renderers/ElementRenderer.d.ts +8 -0
  259. package/RichText/PureRichText/renderers/ElementRenderer.d.ts.map +1 -0
  260. package/RichText/PureRichText/renderers/LeafRenderer.d.ts +8 -0
  261. package/RichText/PureRichText/renderers/LeafRenderer.d.ts.map +1 -0
  262. package/RichText/PureRichText/types.d.ts +111 -0
  263. package/RichText/PureRichText/types.d.ts.map +1 -0
  264. package/RichText/PureRichText/utils/a11yUtils.d.ts +9 -0
  265. package/RichText/PureRichText/utils/a11yUtils.d.ts.map +1 -0
  266. package/RichText/PureRichText/utils/fontSize.d.ts +6 -0
  267. package/RichText/PureRichText/utils/fontSize.d.ts.map +1 -0
  268. package/RichText/PureRichText/utils/slateUtils.d.ts +99 -0
  269. package/RichText/PureRichText/utils/slateUtils.d.ts.map +1 -0
  270. package/RichText/RichText.d.ts +17 -0
  271. package/RichText/RichText.d.ts.map +1 -0
  272. package/RichText/config.d.ts +4 -0
  273. package/RichText/config.d.ts.map +1 -0
  274. package/RichText/index.d.ts +7 -0
  275. package/RichText/index.d.ts.map +1 -0
  276. package/RichText.config.js +268 -0
  277. package/RichText.config.js.map +7 -0
  278. package/RichText.js +7674 -0
  279. package/RichText.js.map +7 -0
  280. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  281. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  282. package/Sankey/PureSankey/SankeyNode.d.ts +10 -3
  283. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  284. package/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -1
  285. package/Sankey/PureSankey/SankeyUtils.d.ts +10 -0
  286. package/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -1
  287. package/Sankey.config.js.map +1 -1
  288. package/Sankey.js +562 -290
  289. package/Sankey.js.map +4 -4
  290. package/Scatter/Scatter.d.ts.map +1 -1
  291. package/Scatter.config.js +81 -24
  292. package/Scatter.config.js.map +3 -3
  293. package/Scatter.js +528 -297
  294. package/Scatter.js.map +4 -4
  295. package/SingleValue/SingleValue.d.ts.map +1 -1
  296. package/SingleValue/config.d.ts.map +1 -1
  297. package/SingleValue.config.js +76 -24
  298. package/SingleValue.config.js.map +2 -2
  299. package/SingleValue.js +896 -779
  300. package/SingleValue.js.map +4 -4
  301. package/SingleValueBasic.js.map +1 -1
  302. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -1
  303. package/SingleValueIcon/config.d.ts.map +1 -1
  304. package/SingleValueIcon.config.js +76 -24
  305. package/SingleValueIcon.config.js.map +2 -2
  306. package/SingleValueIcon.js +512 -287
  307. package/SingleValueIcon.js.map +4 -4
  308. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts +0 -8
  309. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts.map +1 -1
  310. package/SingleValueRadial/SingleValueRadial.d.ts.map +1 -1
  311. package/SingleValueRadial/config.d.ts.map +1 -1
  312. package/SingleValueRadial.config.js +76 -24
  313. package/SingleValueRadial.config.js.map +2 -2
  314. package/SingleValueRadial.js +543 -326
  315. package/SingleValueRadial.js.map +4 -4
  316. package/SparkLine/SparkLine.d.ts +57 -0
  317. package/SparkLine/SparkLine.d.ts.map +1 -0
  318. package/SparkLine/index.d.ts +1 -1
  319. package/SparkLine/index.d.ts.map +1 -1
  320. package/SparkLine.js +384 -485
  321. package/SparkLine.js.map +4 -4
  322. package/TRELLIS.md +48 -0
  323. package/Table/PureTable.d.ts +1 -0
  324. package/Table/PureTable.d.ts.map +1 -1
  325. package/Table/Table.d.ts.map +1 -1
  326. package/Table/cells/ArrayCell.d.ts.map +1 -1
  327. package/Table/config.d.ts.map +1 -1
  328. package/Table/hooks.d.ts +1 -1
  329. package/Table/hooks.d.ts.map +1 -1
  330. package/Table/tableUtils.d.ts +14 -0
  331. package/Table/tableUtils.d.ts.map +1 -0
  332. package/Table.config.js +4 -10
  333. package/Table.config.js.map +2 -2
  334. package/Table.js +1158 -846
  335. package/Table.js.map +4 -4
  336. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -1
  337. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +5 -0
  338. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -1
  339. package/Timeline/Timeline.d.ts +2 -0
  340. package/Timeline/Timeline.d.ts.map +1 -1
  341. package/Timeline/config.d.ts.map +1 -1
  342. package/Timeline/mockdata/timelineDataSource.d.ts +34 -0
  343. package/Timeline/mockdata/timelineDataSource.d.ts.map +1 -1
  344. package/Timeline.config.js +15 -0
  345. package/Timeline.config.js.map +2 -2
  346. package/Timeline.js +348 -186
  347. package/Timeline.js.map +4 -4
  348. package/common/Charting.d.ts.map +1 -1
  349. package/common/Charting.js +50 -28
  350. package/common/Charting.js.map +2 -2
  351. package/common/ChartingApi.d.ts +1 -1
  352. package/common/ChartingApi.d.ts.map +1 -1
  353. package/common/ChartingApi.js.map +2 -2
  354. package/common/DocExampleWithVizSandbox.js.map +1 -1
  355. package/common/OptionsDoc.js.map +1 -1
  356. package/common/OverviewDoc.js.map +1 -1
  357. package/common/SplunkVisualization.d.ts +1 -1
  358. package/common/SplunkVisualization.d.ts.map +1 -1
  359. package/common/SplunkVisualization.js +6 -4
  360. package/common/SplunkVisualization.js.map +2 -2
  361. package/common/StyledSkipLink.d.ts +2 -0
  362. package/common/StyledSkipLink.d.ts.map +1 -0
  363. package/common/StyledSkipLink.js +81 -0
  364. package/common/StyledSkipLink.js.map +7 -0
  365. package/common/TimeSeriesChartWrapper.d.ts.map +1 -1
  366. package/common/TimeSeriesChartWrapper.js +228 -107
  367. package/common/TimeSeriesChartWrapper.js.map +4 -4
  368. package/common/chartingUtils.d.ts +32 -6
  369. package/common/chartingUtils.d.ts.map +1 -1
  370. package/common/chartingUtils.js +166 -39
  371. package/common/chartingUtils.js.map +4 -4
  372. package/common/components/TrellisTitle.d.ts.map +1 -1
  373. package/common/docUtils.js +1 -1
  374. package/common/docUtils.js.map +2 -2
  375. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  376. package/common/editorConfig/AxesChartYGridAndLabels.d.ts.map +1 -1
  377. package/common/editorConfig/BackgroundColor.d.ts +2 -2
  378. package/common/editorConfig/TrellisEditors.d.ts +33 -5
  379. package/common/editorConfig/TrellisEditors.d.ts.map +1 -1
  380. package/common/hocs/mockdata/trellisData.d.ts +54 -0
  381. package/common/hocs/mockdata/trellisData.d.ts.map +1 -1
  382. package/common/hocs/withTrellis.d.ts +9 -0
  383. package/common/hocs/withTrellis.d.ts.map +1 -1
  384. package/common/hooks/useSorting.d.ts +2 -2
  385. package/common/hooks/useSorting.d.ts.map +1 -1
  386. package/common/shapeUtils.d.ts +1 -1
  387. package/common/shapeUtils.d.ts.map +1 -1
  388. package/common/shapeUtils.js.map +2 -2
  389. package/common/utils/dataUtils.js +2 -1
  390. package/common/utils/dataUtils.js.map +2 -2
  391. package/common/utils/focusUtils.d.ts +4 -0
  392. package/common/utils/focusUtils.d.ts.map +1 -0
  393. package/common/utils/focusUtils.js +101 -0
  394. package/common/utils/focusUtils.js.map +7 -0
  395. package/common/utils/mapUtils.js +513 -184
  396. package/common/utils/mapUtils.js.map +4 -4
  397. package/common/utils/shadowDomUtils.d.ts +2 -0
  398. package/common/utils/shadowDomUtils.d.ts.map +1 -0
  399. package/common/utils/shadowDomUtils.js +39 -0
  400. package/common/utils/shadowDomUtils.js.map +7 -0
  401. package/common/utils/singleValueUtils.js +14 -26
  402. package/common/utils/singleValueUtils.js.map +2 -2
  403. package/common/utils/trellisUtils.d.ts.map +1 -1
  404. package/common/utils/trellisUtils.js +76 -70
  405. package/common/utils/trellisUtils.js.map +2 -2
  406. package/common/withDashboardViz.d.ts.map +1 -1
  407. package/common/withDashboardViz.js +276 -151
  408. package/common/withDashboardViz.js.map +4 -4
  409. package/docs-llm/INDEX.md +118 -0
  410. package/docs-llm/area/examples-json.md +3854 -0
  411. package/docs-llm/area/examples-react.md +2816 -0
  412. package/docs-llm/area/options.md +97 -0
  413. package/docs-llm/area/overview.md +27 -0
  414. package/docs-llm/bar/examples-json.md +3380 -0
  415. package/docs-llm/bar/examples-react.md +2352 -0
  416. package/docs-llm/bar/options.md +89 -0
  417. package/docs-llm/bar/overview.md +25 -0
  418. package/docs-llm/bubble/examples-json.md +4082 -0
  419. package/docs-llm/bubble/examples-react.md +3977 -0
  420. package/docs-llm/bubble/options.md +62 -0
  421. package/docs-llm/bubble/overview.md +26 -0
  422. package/docs-llm/choropleth-svg/examples-json.md +397 -0
  423. package/docs-llm/choropleth-svg/examples-react.md +389 -0
  424. package/docs-llm/choropleth-svg/options.md +15 -0
  425. package/docs-llm/choropleth-svg/overview.md +23 -0
  426. package/docs-llm/column/examples-json.md +3898 -0
  427. package/docs-llm/column/examples-react.md +2653 -0
  428. package/docs-llm/column/options.md +94 -0
  429. package/docs-llm/column/overview.md +31 -0
  430. package/docs-llm/dsl/examples-json.md +43 -0
  431. package/docs-llm/dsl/examples-react.md +78 -0
  432. package/docs-llm/dsl/formatters/format-by-type-examples-json.md +58 -0
  433. package/docs-llm/dsl/formatters/format-by-type-examples-react.md +43 -0
  434. package/docs-llm/dsl/formatters/format-by-type.md +38 -0
  435. package/docs-llm/dsl/formatters/frame-examples-json.md +42 -0
  436. package/docs-llm/dsl/formatters/frame-examples-react.md +24 -0
  437. package/docs-llm/dsl/formatters/frame.md +6 -0
  438. package/docs-llm/dsl/formatters/gradient-examples-json.md +98 -0
  439. package/docs-llm/dsl/formatters/gradient-examples-react.md +44 -0
  440. package/docs-llm/dsl/formatters/gradient.md +23 -0
  441. package/docs-llm/dsl/formatters/lerp-examples-json.md +40 -0
  442. package/docs-llm/dsl/formatters/lerp-examples-react.md +28 -0
  443. package/docs-llm/dsl/formatters/lerp.md +19 -0
  444. package/docs-llm/dsl/formatters/match-value-examples-json.md +65 -0
  445. package/docs-llm/dsl/formatters/match-value-examples-react.md +37 -0
  446. package/docs-llm/dsl/formatters/match-value.md +13 -0
  447. package/docs-llm/dsl/formatters/max-contrast-examples-json.md +39 -0
  448. package/docs-llm/dsl/formatters/max-contrast-examples-react.md +27 -0
  449. package/docs-llm/dsl/formatters/max-contrast.md +9 -0
  450. package/docs-llm/dsl/formatters/multi-format-examples-json.md +67 -0
  451. package/docs-llm/dsl/formatters/multi-format-examples-react.md +49 -0
  452. package/docs-llm/dsl/formatters/multi-format.md +12 -0
  453. package/docs-llm/dsl/formatters/objects-examples-json.md +49 -0
  454. package/docs-llm/dsl/formatters/objects-examples-react.md +37 -0
  455. package/docs-llm/dsl/formatters/objects.md +3 -0
  456. package/docs-llm/dsl/formatters/pick-examples-json.md +59 -0
  457. package/docs-llm/dsl/formatters/pick-examples-react.md +30 -0
  458. package/docs-llm/dsl/formatters/pick.md +9 -0
  459. package/docs-llm/dsl/formatters/prefix-examples-json.md +29 -0
  460. package/docs-llm/dsl/formatters/prefix-examples-react.md +19 -0
  461. package/docs-llm/dsl/formatters/prefix.md +3 -0
  462. package/docs-llm/dsl/formatters/prepend-examples-json.md +51 -0
  463. package/docs-llm/dsl/formatters/prepend-examples-react.md +33 -0
  464. package/docs-llm/dsl/formatters/prepend.md +9 -0
  465. package/docs-llm/dsl/formatters/range-value-examples-json.md +48 -0
  466. package/docs-llm/dsl/formatters/range-value-examples-react.md +34 -0
  467. package/docs-llm/dsl/formatters/range-value.md +15 -0
  468. package/docs-llm/dsl/formatters/set-color-channel-examples-json.md +40 -0
  469. package/docs-llm/dsl/formatters/set-color-channel-examples-react.md +31 -0
  470. package/docs-llm/dsl/formatters/set-color-channel.md +9 -0
  471. package/docs-llm/dsl/formatters/suffix-examples-json.md +29 -0
  472. package/docs-llm/dsl/formatters/suffix-examples-react.md +19 -0
  473. package/docs-llm/dsl/formatters/suffix.md +3 -0
  474. package/docs-llm/dsl/formatters/type-examples-json.md +37 -0
  475. package/docs-llm/dsl/formatters/type-examples-react.md +20 -0
  476. package/docs-llm/dsl/formatters/type.md +3 -0
  477. package/docs-llm/dsl/overview.md +41 -0
  478. package/docs-llm/dsl/selectors/abs.md +7 -0
  479. package/docs-llm/dsl/selectors/ceil.md +7 -0
  480. package/docs-llm/dsl/selectors/data-frame-average-examples-json.md +41 -0
  481. package/docs-llm/dsl/selectors/data-frame-average-examples-react.md +36 -0
  482. package/docs-llm/dsl/selectors/data-frame-average.md +7 -0
  483. package/docs-llm/dsl/selectors/data-frame-count-examples-json.md +41 -0
  484. package/docs-llm/dsl/selectors/data-frame-count-examples-react.md +36 -0
  485. package/docs-llm/dsl/selectors/data-frame-count.md +7 -0
  486. package/docs-llm/dsl/selectors/data-frame-examples-json.md +830 -0
  487. package/docs-llm/dsl/selectors/data-frame-examples-react.md +929 -0
  488. package/docs-llm/dsl/selectors/data-frame-get-field-examples-json.md +89 -0
  489. package/docs-llm/dsl/selectors/data-frame-get-field-examples-react.md +124 -0
  490. package/docs-llm/dsl/selectors/data-frame-get-field.md +5 -0
  491. package/docs-llm/dsl/selectors/data-frame-get-raw-value.md +5 -0
  492. package/docs-llm/dsl/selectors/data-frame-get-type.md +5 -0
  493. package/docs-llm/dsl/selectors/data-frame-get-value.md +5 -0
  494. package/docs-llm/dsl/selectors/data-frame-max-examples-json.md +51 -0
  495. package/docs-llm/dsl/selectors/data-frame-max-examples-react.md +41 -0
  496. package/docs-llm/dsl/selectors/data-frame-max.md +7 -0
  497. package/docs-llm/dsl/selectors/data-frame-min-examples-json.md +51 -0
  498. package/docs-llm/dsl/selectors/data-frame-min-examples-react.md +41 -0
  499. package/docs-llm/dsl/selectors/data-frame-min.md +7 -0
  500. package/docs-llm/dsl/selectors/data-frame-percentile-examples-json.md +41 -0
  501. package/docs-llm/dsl/selectors/data-frame-percentile-examples-react.md +36 -0
  502. package/docs-llm/dsl/selectors/data-frame-percentile.md +8 -0
  503. package/docs-llm/dsl/selectors/data-frame-set-value.md +5 -0
  504. package/docs-llm/dsl/selectors/data-frame-sum-examples-json.md +51 -0
  505. package/docs-llm/dsl/selectors/data-frame-sum-examples-react.md +41 -0
  506. package/docs-llm/dsl/selectors/data-frame-sum.md +7 -0
  507. package/docs-llm/dsl/selectors/data-frame.md +4 -0
  508. package/docs-llm/dsl/selectors/data-point-get-field.md +5 -0
  509. package/docs-llm/dsl/selectors/data-point-get-raw-value.md +4 -0
  510. package/docs-llm/dsl/selectors/data-point-get-type.md +5 -0
  511. package/docs-llm/dsl/selectors/data-point-get-value.md +5 -0
  512. package/docs-llm/dsl/selectors/data-point-set-value.md +4 -0
  513. package/docs-llm/dsl/selectors/data-point.md +5 -0
  514. package/docs-llm/dsl/selectors/data-series-average.md +22 -0
  515. package/docs-llm/dsl/selectors/data-series-count.md +14 -0
  516. package/docs-llm/dsl/selectors/data-series-get-field.md +5 -0
  517. package/docs-llm/dsl/selectors/data-series-get-raw-value.md +4 -0
  518. package/docs-llm/dsl/selectors/data-series-get-type.md +5 -0
  519. package/docs-llm/dsl/selectors/data-series-get-value.md +4 -0
  520. package/docs-llm/dsl/selectors/data-series-max.md +5 -0
  521. package/docs-llm/dsl/selectors/data-series-min.md +5 -0
  522. package/docs-llm/dsl/selectors/data-series-percentile.md +17 -0
  523. package/docs-llm/dsl/selectors/data-series-set-value.md +4 -0
  524. package/docs-llm/dsl/selectors/data-series-sum.md +24 -0
  525. package/docs-llm/dsl/selectors/data-series.md +4 -0
  526. package/docs-llm/dsl/selectors/delta.md +7 -0
  527. package/docs-llm/dsl/selectors/divide.md +8 -0
  528. package/docs-llm/dsl/selectors/first-point.md +5 -0
  529. package/docs-llm/dsl/selectors/floor.md +7 -0
  530. package/docs-llm/dsl/selectors/frame-by-series-index-range-examples-json.md +89 -0
  531. package/docs-llm/dsl/selectors/frame-by-series-index-range-examples-react.md +88 -0
  532. package/docs-llm/dsl/selectors/frame-by-series-index-range.md +10 -0
  533. package/docs-llm/dsl/selectors/frame-by-series-indexes-examples-json.md +88 -0
  534. package/docs-llm/dsl/selectors/frame-by-series-indexes-examples-react.md +87 -0
  535. package/docs-llm/dsl/selectors/frame-by-series-indexes.md +9 -0
  536. package/docs-llm/dsl/selectors/frame-by-series-names-examples-json.md +89 -0
  537. package/docs-llm/dsl/selectors/frame-by-series-names-examples-react.md +88 -0
  538. package/docs-llm/dsl/selectors/frame-by-series-names-or-indexes-examples-json.md +89 -0
  539. package/docs-llm/dsl/selectors/frame-by-series-names-or-indexes-examples-react.md +88 -0
  540. package/docs-llm/dsl/selectors/frame-by-series-names-or-indexes.md +9 -0
  541. package/docs-llm/dsl/selectors/frame-by-series-names.md +9 -0
  542. package/docs-llm/dsl/selectors/frame-by-series-types-examples-json.md +89 -0
  543. package/docs-llm/dsl/selectors/frame-by-series-types-examples-react.md +88 -0
  544. package/docs-llm/dsl/selectors/frame-by-series-types.md +9 -0
  545. package/docs-llm/dsl/selectors/frame-without-internal-fields-examples-json.md +137 -0
  546. package/docs-llm/dsl/selectors/frame-without-internal-fields-examples-react.md +135 -0
  547. package/docs-llm/dsl/selectors/frame-without-internal-fields-except-examples-json.md +157 -0
  548. package/docs-llm/dsl/selectors/frame-without-internal-fields-except-examples-react.md +155 -0
  549. package/docs-llm/dsl/selectors/frame-without-internal-fields-except.md +21 -0
  550. package/docs-llm/dsl/selectors/frame-without-internal-fields.md +17 -0
  551. package/docs-llm/dsl/selectors/frame-without-series-names.md +8 -0
  552. package/docs-llm/dsl/selectors/last-point.md +5 -0
  553. package/docs-llm/dsl/selectors/minus.md +8 -0
  554. package/docs-llm/dsl/selectors/multiply.md +8 -0
  555. package/docs-llm/dsl/selectors/plus.md +8 -0
  556. package/docs-llm/dsl/selectors/point-by-index.md +6 -0
  557. package/docs-llm/dsl/selectors/points-by-indexes.md +6 -0
  558. package/docs-llm/dsl/selectors/round.md +7 -0
  559. package/docs-llm/dsl/selectors/series-by-index-examples-json.md +49 -0
  560. package/docs-llm/dsl/selectors/series-by-index-examples-react.md +39 -0
  561. package/docs-llm/dsl/selectors/series-by-index.md +8 -0
  562. package/docs-llm/dsl/selectors/series-by-name-examples-json.md +49 -0
  563. package/docs-llm/dsl/selectors/series-by-name-examples-react.md +39 -0
  564. package/docs-llm/dsl/selectors/series-by-name.md +8 -0
  565. package/docs-llm/dsl/selectors/series-by-prioritized-types-examples-json.md +47 -0
  566. package/docs-llm/dsl/selectors/series-by-prioritized-types-examples-react.md +39 -0
  567. package/docs-llm/dsl/selectors/series-by-prioritized-types.md +10 -0
  568. package/docs-llm/dsl/selectors/series-by-type-examples-json.md +49 -0
  569. package/docs-llm/dsl/selectors/series-by-type-examples-react.md +39 -0
  570. package/docs-llm/dsl/selectors/series-by-type.md +10 -0
  571. package/docs-llm/dsl/selectors/series-by-types.md +6 -0
  572. package/docs-llm/ellipse/examples-json.md +5 -0
  573. package/docs-llm/ellipse/examples-react.md +5 -0
  574. package/docs-llm/ellipse/options.md +16 -0
  575. package/docs-llm/ellipse/overview.md +5 -0
  576. package/docs-llm/events/examples-json.md +705 -0
  577. package/docs-llm/events/examples-react.md +536 -0
  578. package/docs-llm/events/options.md +18 -0
  579. package/docs-llm/events/overview.md +5 -0
  580. package/docs-llm/filler-gauge/examples-json.md +376 -0
  581. package/docs-llm/filler-gauge/examples-react.md +274 -0
  582. package/docs-llm/filler-gauge/options.md +26 -0
  583. package/docs-llm/filler-gauge/overview.md +5 -0
  584. package/docs-llm/image/examples-json.md +39 -0
  585. package/docs-llm/image/examples-react.md +65 -0
  586. package/docs-llm/image/options.md +13 -0
  587. package/docs-llm/image/overview.md +5 -0
  588. package/docs-llm/line/examples-json.md +3724 -0
  589. package/docs-llm/line/examples-react.md +2683 -0
  590. package/docs-llm/line/options.md +95 -0
  591. package/docs-llm/line/overview.md +29 -0
  592. package/docs-llm/link-graph/examples-json.md +5 -0
  593. package/docs-llm/link-graph/examples-react.md +5 -0
  594. package/docs-llm/link-graph/options.md +26 -0
  595. package/docs-llm/link-graph/overview.md +16 -0
  596. package/docs-llm/map/examples-json.md +13973 -0
  597. package/docs-llm/map/examples-react.md +6154 -0
  598. package/docs-llm/map/options.md +22 -0
  599. package/docs-llm/map/overview.md +32 -0
  600. package/docs-llm/markdown/examples-json.md +63 -0
  601. package/docs-llm/markdown/examples-react.md +98 -0
  602. package/docs-llm/markdown/options.md +17 -0
  603. package/docs-llm/markdown/overview.md +5 -0
  604. package/docs-llm/marker-gauge/examples-json.md +436 -0
  605. package/docs-llm/marker-gauge/examples-react.md +367 -0
  606. package/docs-llm/marker-gauge/options.md +26 -0
  607. package/docs-llm/marker-gauge/overview.md +5 -0
  608. package/docs-llm/network-graph/examples-json.md +8843 -0
  609. package/docs-llm/network-graph/examples-react.md +7339 -0
  610. package/docs-llm/network-graph/options.md +50 -0
  611. package/docs-llm/network-graph/overview.md +28 -0
  612. package/docs-llm/parallel-coordinates/examples-json.md +8376 -0
  613. package/docs-llm/parallel-coordinates/examples-react.md +2771 -0
  614. package/docs-llm/parallel-coordinates/options.md +14 -0
  615. package/docs-llm/parallel-coordinates/overview.md +22 -0
  616. package/docs-llm/pie/examples-json.md +851 -0
  617. package/docs-llm/pie/examples-react.md +606 -0
  618. package/docs-llm/pie/options.md +34 -0
  619. package/docs-llm/pie/overview.md +23 -0
  620. package/docs-llm/process-tree/options.md +32 -0
  621. package/docs-llm/punchcard/examples-json.md +6134 -0
  622. package/docs-llm/punchcard/examples-react.md +4562 -0
  623. package/docs-llm/punchcard/options.md +33 -0
  624. package/docs-llm/punchcard/overview.md +5 -0
  625. package/docs-llm/pure-rich-text/options.md +28 -0
  626. package/docs-llm/rectangle/examples-json.md +5 -0
  627. package/docs-llm/rectangle/examples-react.md +5 -0
  628. package/docs-llm/rectangle/options.md +19 -0
  629. package/docs-llm/rectangle/overview.md +5 -0
  630. package/docs-llm/rich-text/examples-json.md +96 -0
  631. package/docs-llm/rich-text/examples-react.md +119 -0
  632. package/docs-llm/rich-text/options.md +28 -0
  633. package/docs-llm/rich-text/overview.md +5 -0
  634. package/docs-llm/sankey/examples-json.md +844 -0
  635. package/docs-llm/sankey/examples-react.md +546 -0
  636. package/docs-llm/sankey/options.md +19 -0
  637. package/docs-llm/sankey/overview.md +24 -0
  638. package/docs-llm/scatter/examples-json.md +4012 -0
  639. package/docs-llm/scatter/examples-react.md +3914 -0
  640. package/docs-llm/scatter/options.md +68 -0
  641. package/docs-llm/scatter/overview.md +25 -0
  642. package/docs-llm/single-value/examples-json.md +2613 -0
  643. package/docs-llm/single-value/examples-react.md +2296 -0
  644. package/docs-llm/single-value/options.md +49 -0
  645. package/docs-llm/single-value/overview.md +23 -0
  646. package/docs-llm/single-value-icon/examples-json.md +1686 -0
  647. package/docs-llm/single-value-icon/examples-react.md +1573 -0
  648. package/docs-llm/single-value-icon/options.md +43 -0
  649. package/docs-llm/single-value-icon/overview.md +5 -0
  650. package/docs-llm/single-value-radial/examples-json.md +1178 -0
  651. package/docs-llm/single-value-radial/examples-react.md +1028 -0
  652. package/docs-llm/single-value-radial/options.md +41 -0
  653. package/docs-llm/single-value-radial/overview.md +5 -0
  654. package/docs-llm/table/examples-json.md +5 -0
  655. package/docs-llm/table/examples-react.md +5 -0
  656. package/docs-llm/table/options.md +25 -0
  657. package/docs-llm/table/overview.md +24 -0
  658. package/docs-llm/timeline/examples-json.md +5 -0
  659. package/docs-llm/timeline/examples-react.md +5 -0
  660. package/docs-llm/timeline/options.md +27 -0
  661. package/docs-llm/timeline/overview.md +24 -0
  662. package/package.json +39 -30
  663. package/LICENSE.md +0 -449
@@ -166,102 +166,74 @@ var defaultImport11 = __toESM(require("@splunk/visualization-context/FeatureFlag
166
166
  __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
167
167
  var FeatureFlagContext_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
168
168
 
169
- // esm-externals:@splunk/ui-utils/id
170
- var id_exports = {};
171
- __export(id_exports, {
172
- default: () => id_default
173
- });
174
- var defaultImport12 = __toESM(require("@splunk/ui-utils/id"));
175
- __reExport(id_exports, require("@splunk/ui-utils/id"));
176
- var id_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
177
-
178
- // esm-externals:d3-scale
179
- var d3_scale_exports = {};
180
- __export(d3_scale_exports, {
181
- default: () => d3_scale_default
182
- });
183
- var defaultImport13 = __toESM(require("d3-scale"));
184
- __reExport(d3_scale_exports, require("d3-scale"));
185
- var d3_scale_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
186
-
187
- // esm-externals:chroma-js
188
- var chroma_js_exports = {};
189
- __export(chroma_js_exports, {
190
- default: () => chroma_js_default
191
- });
192
- var defaultImport14 = __toESM(require("chroma-js"));
193
- __reExport(chroma_js_exports, require("chroma-js"));
194
- var chroma_js_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
195
-
196
- // esm-externals:@splunk/visualization-color-palettes
197
- var visualization_color_palettes_exports = {};
198
- __export(visualization_color_palettes_exports, {
199
- default: () => visualization_color_palettes_default
169
+ // esm-externals:@splunk/ui-utils/i18n
170
+ var i18n_exports = {};
171
+ __export(i18n_exports, {
172
+ default: () => i18n_default
200
173
  });
201
- var defaultImport15 = __toESM(require("@splunk/visualization-color-palettes"));
202
- __reExport(visualization_color_palettes_exports, require("@splunk/visualization-color-palettes"));
203
- var visualization_color_palettes_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
174
+ var defaultImport12 = __toESM(require("@splunk/ui-utils/i18n"));
175
+ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
176
+ var i18n_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
204
177
 
205
- // esm-externals:@splunk/visualization-schemas
206
- var visualization_schemas_exports = {};
207
- __export(visualization_schemas_exports, {
208
- default: () => visualization_schemas_default
178
+ // esm-externals:@splunk/ui-utils/format
179
+ var format_exports = {};
180
+ __export(format_exports, {
181
+ default: () => format_default
209
182
  });
210
- var defaultImport16 = __toESM(require("@splunk/visualization-schemas"));
211
- __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
212
- var visualization_schemas_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
183
+ var defaultImport13 = __toESM(require("@splunk/ui-utils/format"));
184
+ __reExport(format_exports, require("@splunk/ui-utils/format"));
185
+ var format_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
213
186
 
214
- // src/Map/PureMap/MapUtils.ts
215
- var MIN_BUBBLE_RADIUS = 7.11;
216
- var MAX_BUBBLE_RADIUS = 45.26;
217
- var matchBubbleSize = (dataRange, data) => {
218
- const size = (0, d3_scale_exports.scalePow)().exponent(0.2).domain(dataRange).range([MIN_BUBBLE_RADIUS, MAX_BUBBLE_RADIUS])(
219
- data
220
- );
221
- if (size > MAX_BUBBLE_RADIUS) {
222
- return MAX_BUBBLE_RADIUS;
223
- }
224
- if (size < MIN_BUBBLE_RADIUS) {
225
- return MIN_BUBBLE_RADIUS;
226
- }
227
- return size;
187
+ // src/Map/PureMap/keyboardConstants.ts
188
+ var KEYBOARD_KEYS = {
189
+ ARROW_RIGHT: "ArrowRight",
190
+ ARROW_LEFT: "ArrowLeft",
191
+ ARROW_UP: "ArrowUp",
192
+ ARROW_DOWN: "ArrowDown",
193
+ HOME: "Home",
194
+ END: "End",
195
+ ENTER: "Enter",
196
+ SPACE: " "
228
197
  };
229
198
 
230
- // esm-externals:maplibre-gl
231
- var maplibre_gl_exports = {};
232
- __export(maplibre_gl_exports, {
233
- default: () => maplibre_gl_default
234
- });
235
- var defaultImport17 = __toESM(require("maplibre-gl"));
236
- __reExport(maplibre_gl_exports, require("maplibre-gl"));
237
- var maplibre_gl_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
238
-
239
199
  // esm-externals:@splunk/react-ui/Popover
240
200
  var Popover_exports = {};
241
201
  __export(Popover_exports, {
242
202
  default: () => Popover_default
243
203
  });
244
- var defaultImport18 = __toESM(require("@splunk/react-ui/Popover"));
204
+ var defaultImport14 = __toESM(require("@splunk/react-ui/Popover"));
245
205
  __reExport(Popover_exports, require("@splunk/react-ui/Popover"));
246
- var Popover_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
247
-
248
- // esm-externals:@splunk/ui-utils/i18n
249
- var i18n_exports = {};
250
- __export(i18n_exports, {
251
- default: () => i18n_default
252
- });
253
- var defaultImport19 = __toESM(require("@splunk/ui-utils/i18n"));
254
- __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
255
- var i18n_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
206
+ var Popover_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
256
207
 
257
208
  // esm-externals:@splunk/themes
258
209
  var themes_exports = {};
259
210
  __export(themes_exports, {
260
211
  default: () => themes_default
261
212
  });
262
- var defaultImport20 = __toESM(require("@splunk/themes"));
213
+ var defaultImport15 = __toESM(require("@splunk/themes"));
263
214
  __reExport(themes_exports, require("@splunk/themes"));
264
- var themes_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
215
+ var themes_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
216
+
217
+ // esm-externals:@splunk/ui-utils/id
218
+ var id_exports = {};
219
+ __export(id_exports, {
220
+ default: () => id_default
221
+ });
222
+ var defaultImport16 = __toESM(require("@splunk/ui-utils/id"));
223
+ __reExport(id_exports, require("@splunk/ui-utils/id"));
224
+ var id_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
225
+
226
+ // src/common/utils/shadowDomUtils.ts
227
+ var getFloatingLayerStyleTarget = (anchor) => {
228
+ if (!anchor || typeof anchor.getRootNode !== "function") {
229
+ return void 0;
230
+ }
231
+ const rootNode = anchor.getRootNode();
232
+ if (typeof ShadowRoot !== "undefined" && rootNode instanceof ShadowRoot) {
233
+ return anchor.ownerDocument.head;
234
+ }
235
+ return void 0;
236
+ };
265
237
 
266
238
  // src/Map/PureMap/Tooltip.tsx
267
239
  var StyledPopover = styled_components_default(Popover_default)`
@@ -336,6 +308,7 @@ var convertDegToDMS = (decimalDegree, type) => {
336
308
  return `${degrees}\xB0 ${minutes}' ${seconds}" ${direction}`;
337
309
  };
338
310
  var Tooltip = ({
311
+ id,
339
312
  open,
340
313
  anchor,
341
314
  latitude,
@@ -344,26 +317,105 @@ var Tooltip = ({
344
317
  areaValue,
345
318
  additionalFields = [],
346
319
  showCoordinates = true,
347
- tooltipHeader = null
320
+ tooltipHeader = null,
321
+ stylesManagedExternally = false,
322
+ onMouseEnter,
323
+ onMouseLeave
348
324
  }) => {
349
325
  const featureFlagContext = react_exports.useContext(FeatureFlagContext_default);
350
- const isTooltipIconFlagEnabled = Boolean(
351
- featureFlagContext && featureFlagContext.visualizations_enableTooltipIcon
352
- );
353
- return /* @__PURE__ */ react_exports.createElement(
326
+ const isTooltipIconFlagEnabled = Boolean(featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableTooltipIcon);
327
+ const styleTarget = stylesManagedExternally ? void 0 : getFloatingLayerStyleTarget(anchor);
328
+ const popover = /* @__PURE__ */ react_exports.createElement(
354
329
  StyledPopover,
355
330
  {
331
+ id,
332
+ role: "tooltip",
356
333
  open,
357
334
  animation: false,
358
335
  anchor,
359
336
  "data-test": "map-marker-tooltip",
360
- defaultPlacement: "above"
337
+ defaultPlacement: "above",
338
+ onMouseEnter,
339
+ onMouseLeave
361
340
  },
362
341
  /* @__PURE__ */ react_exports.createElement(StyledTable, null, tooltipHeader && /* @__PURE__ */ react_exports.createElement(StyledTooltipHeader, { "data-test": "tooltip-header" }, /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement("th", { colSpan: 2 }, /* @__PURE__ */ react_exports.createElement("span", { "data-test": "tooltip-header-value" }, tooltipHeader)))), /* @__PURE__ */ react_exports.createElement("tbody", null, Boolean(areaId && areaValue) && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, { "data-test": "area-id" }, areaId), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "area-value" }, areaValue)), Boolean(showCoordinates && latitude) && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, null, (0, i18n_exports._)("Latitude")), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "latitude" }, convertDegToDMS(latitude, "latitude"))), Boolean(showCoordinates && longitude) && /* @__PURE__ */ react_exports.createElement("tr", null, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, null, (0, i18n_exports._)("Longitude")), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "longitude" }, convertDegToDMS(longitude, "longitude"))), additionalFields.filter(({ value }) => value && String(value) !== "0").map(({ name, value, color, icon }) => /* @__PURE__ */ react_exports.createElement("tr", { key: (0, id_exports.createDOMID)() }, /* @__PURE__ */ react_exports.createElement(StyledTitleColumn, { "data-test": "field-title" }, color ? /* @__PURE__ */ react_exports.createElement(StyledColorBlock, { "data-test": "field-color", color }) : null, /* @__PURE__ */ react_exports.createElement("span", null, name, isTooltipIconFlagEnabled && icon && ((0, iconUtils_exports.isRemoteIcon)(icon) || (0, iconUtils_exports.isDataURI)(icon)) ? /* @__PURE__ */ react_exports.createElement(StyledIconWrapper, { "data-test": "field-icon" }, /* @__PURE__ */ react_exports.createElement(RemoteIcon_default, { iconURL: icon, width: 16, height: 16 })) : null)), /* @__PURE__ */ react_exports.createElement(StyledValueColumn, { "data-test": "field-value" }, value)))))
363
342
  );
343
+ return styleTarget ? /* @__PURE__ */ react_exports.createElement(styled_components_exports.StyleSheetManager, { target: styleTarget }, popover) : popover;
364
344
  };
365
345
  var Tooltip_default = Tooltip;
366
346
 
347
+ // esm-externals:d3-scale
348
+ var d3_scale_exports = {};
349
+ __export(d3_scale_exports, {
350
+ default: () => d3_scale_default
351
+ });
352
+ var defaultImport17 = __toESM(require("d3-scale"));
353
+ __reExport(d3_scale_exports, require("d3-scale"));
354
+ var d3_scale_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
355
+
356
+ // esm-externals:chroma-js
357
+ var chroma_js_exports = {};
358
+ __export(chroma_js_exports, {
359
+ default: () => chroma_js_default
360
+ });
361
+ var defaultImport18 = __toESM(require("chroma-js"));
362
+ __reExport(chroma_js_exports, require("chroma-js"));
363
+ var chroma_js_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
364
+
365
+ // esm-externals:@splunk/visualization-color-palettes
366
+ var visualization_color_palettes_exports = {};
367
+ __export(visualization_color_palettes_exports, {
368
+ default: () => visualization_color_palettes_default
369
+ });
370
+ var defaultImport19 = __toESM(require("@splunk/visualization-color-palettes"));
371
+ __reExport(visualization_color_palettes_exports, require("@splunk/visualization-color-palettes"));
372
+ var visualization_color_palettes_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
373
+
374
+ // esm-externals:@splunk/visualization-schemas
375
+ var visualization_schemas_exports = {};
376
+ __export(visualization_schemas_exports, {
377
+ default: () => visualization_schemas_default
378
+ });
379
+ var defaultImport20 = __toESM(require("@splunk/visualization-schemas"));
380
+ __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
381
+ var visualization_schemas_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
382
+
383
+ // src/Map/PureMap/MapUtils.ts
384
+ var MIN_BUBBLE_RADIUS = 7.11;
385
+ var MAX_BUBBLE_RADIUS = 45.26;
386
+ var matchBubbleSize = (dataRange, data) => {
387
+ const size = (0, d3_scale_exports.scalePow)().exponent(0.2).domain(dataRange).range([MIN_BUBBLE_RADIUS, MAX_BUBBLE_RADIUS])(
388
+ data
389
+ );
390
+ if (size > MAX_BUBBLE_RADIUS) {
391
+ return MAX_BUBBLE_RADIUS;
392
+ }
393
+ if (size < MIN_BUBBLE_RADIUS) {
394
+ return MIN_BUBBLE_RADIUS;
395
+ }
396
+ return size;
397
+ };
398
+
399
+ // esm-externals:maplibre-gl
400
+ var maplibre_gl_exports = {};
401
+ __export(maplibre_gl_exports, {
402
+ default: () => maplibre_gl_default
403
+ });
404
+ var defaultImport21 = __toESM(require("maplibre-gl"));
405
+ __reExport(maplibre_gl_exports, require("maplibre-gl"));
406
+ var maplibre_gl_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
407
+
408
+ // src/Map/PureMap/MapContext.tsx
409
+ var MapContext = react_exports.createContext({
410
+ activeTooltipId: null,
411
+ setActiveTooltipId: () => {
412
+ },
413
+ activeChoroplethId: null,
414
+ setActiveChoroplethId: () => {
415
+ }
416
+ });
417
+ var useMapContext = () => react_exports.useContext(MapContext);
418
+
367
419
  // src/Map/PureMap/MarkerWrapper.tsx
368
420
  var MarkerWrapper = (_a) => {
369
421
  var _b = _a, {
@@ -374,9 +426,10 @@ var MarkerWrapper = (_a) => {
374
426
  additionalFields = [],
375
427
  tooltipHeader = null,
376
428
  map,
377
- isChoroplethTooltipOpen,
378
429
  children,
379
- showCoordinates = true
430
+ showCoordinates = true,
431
+ stylesManagedExternally = false,
432
+ customMarkerId
380
433
  } = _b, otherProps = __objRest(_b, [
381
434
  "longitude",
382
435
  "latitude",
@@ -385,19 +438,120 @@ var MarkerWrapper = (_a) => {
385
438
  "additionalFields",
386
439
  "tooltipHeader",
387
440
  "map",
388
- "isChoroplethTooltipOpen",
389
441
  "children",
390
- "showCoordinates"
442
+ "showCoordinates",
443
+ "stylesManagedExternally",
444
+ "customMarkerId"
391
445
  ]);
392
446
  const container = react_exports.useRef();
393
447
  const marker = react_exports.useRef();
394
448
  const [isTooltipOpen, setTooltipOpenStatus] = react_exports.useState(false);
395
- const isChoroplethTooltip = react_exports.useCallback(
396
- () => isChoroplethTooltipOpen !== void 0,
397
- [isChoroplethTooltipOpen]
449
+ const [isFocused, setIsFocused] = react_exports.useState(false);
450
+ const [isHovered, setIsHovered] = react_exports.useState(false);
451
+ const [isPopoverHovered, setIsPopoverHovered] = react_exports.useState(false);
452
+ const tooltipId = react_exports.useMemo(() => (0, id_exports.createDOMID)(), []);
453
+ const pendingMoveEndHandler = react_exports.useRef(null);
454
+ const closeTimeoutRef = react_exports.useRef(null);
455
+ const generatedMarkerId = react_exports.useMemo(() => (0, id_exports.createDOMID)(), []);
456
+ const markerId = customMarkerId || generatedMarkerId;
457
+ const { activeTooltipId, setActiveTooltipId } = useMapContext();
458
+ const mapMoveHandlerRef = react_exports.useRef(null);
459
+ const openTooltip = react_exports.useCallback(() => {
460
+ setActiveTooltipId(markerId);
461
+ setTooltipOpenStatus(true);
462
+ }, [markerId, setActiveTooltipId]);
463
+ const cleanupPendingMoveEnd = react_exports.useCallback(() => {
464
+ if (pendingMoveEndHandler.current && map.current && typeof map.current.off === "function") {
465
+ map.current.off("moveend", pendingMoveEndHandler.current);
466
+ pendingMoveEndHandler.current = null;
467
+ }
468
+ }, [map]);
469
+ const cleanupMapMoveHandler = react_exports.useCallback(() => {
470
+ if (mapMoveHandlerRef.current && map.current && typeof map.current.off === "function") {
471
+ map.current.off("move", mapMoveHandlerRef.current);
472
+ mapMoveHandlerRef.current = null;
473
+ }
474
+ }, [map]);
475
+ const shouldCloseTooltip = react_exports.useCallback(
476
+ (focused, hovered, popoverHovered) => {
477
+ return !focused && !hovered && !popoverHovered;
478
+ },
479
+ []
480
+ );
481
+ const cancelCloseTimeout = react_exports.useCallback(() => {
482
+ if (closeTimeoutRef.current) {
483
+ clearTimeout(closeTimeoutRef.current);
484
+ closeTimeoutRef.current = null;
485
+ }
486
+ }, []);
487
+ const closeTooltipIfShould = react_exports.useCallback(
488
+ (focused, hovered, popoverHovered) => {
489
+ cancelCloseTimeout();
490
+ if (shouldCloseTooltip(focused, hovered, popoverHovered)) {
491
+ closeTimeoutRef.current = setTimeout(() => {
492
+ setTooltipOpenStatus(false);
493
+ setActiveTooltipId((currentId) => currentId === markerId ? null : currentId);
494
+ closeTimeoutRef.current = null;
495
+ }, 100);
496
+ }
497
+ },
498
+ [shouldCloseTooltip, markerId, setActiveTooltipId, cancelCloseTimeout]
499
+ );
500
+ const handleMouseEnter = react_exports.useCallback(() => {
501
+ cancelCloseTimeout();
502
+ setIsHovered(true);
503
+ openTooltip();
504
+ }, [openTooltip, cancelCloseTimeout]);
505
+ const handleMouseLeave = react_exports.useCallback(() => {
506
+ setIsHovered(false);
507
+ closeTooltipIfShould(isFocused, false, isPopoverHovered);
508
+ }, [isFocused, isPopoverHovered, closeTooltipIfShould]);
509
+ const handlePopoverMouseEnter = react_exports.useCallback(() => {
510
+ cancelCloseTimeout();
511
+ setIsPopoverHovered(true);
512
+ }, [cancelCloseTimeout]);
513
+ const handlePopoverMouseLeave = react_exports.useCallback(() => {
514
+ setIsPopoverHovered(false);
515
+ closeTooltipIfShould(isFocused, isHovered, false);
516
+ }, [isFocused, isHovered, closeTooltipIfShould]);
517
+ const handleBlur = react_exports.useCallback(() => {
518
+ setIsFocused(false);
519
+ cleanupPendingMoveEnd();
520
+ closeTooltipIfShould(false, isHovered, isPopoverHovered);
521
+ }, [isHovered, isPopoverHovered, cleanupPendingMoveEnd, closeTooltipIfShould]);
522
+ const handleEscapeKey = react_exports.useCallback(
523
+ (e) => {
524
+ if (e.key === "Escape" && activeTooltipId === markerId) {
525
+ cancelCloseTimeout();
526
+ setIsFocused(false);
527
+ setIsHovered(false);
528
+ setIsPopoverHovered(false);
529
+ cleanupPendingMoveEnd();
530
+ setTooltipOpenStatus(false);
531
+ setActiveTooltipId(null);
532
+ }
533
+ },
534
+ [activeTooltipId, markerId, cleanupPendingMoveEnd, setActiveTooltipId, cancelCloseTimeout]
398
535
  );
399
- const openTooltip = react_exports.useCallback(() => setTooltipOpenStatus(true), []);
400
- const closeTooltip = react_exports.useCallback(() => setTooltipOpenStatus(false), []);
536
+ const handleFocus = react_exports.useCallback(() => {
537
+ cleanupPendingMoveEnd();
538
+ if (map.current && longitude !== void 0 && latitude !== void 0 && typeof map.current.once === "function") {
539
+ const bounds = map.current.getBounds();
540
+ if (!bounds.contains([longitude, latitude])) {
541
+ const moveEndHandler = () => {
542
+ pendingMoveEndHandler.current = null;
543
+ setIsFocused(true);
544
+ openTooltip();
545
+ };
546
+ pendingMoveEndHandler.current = moveEndHandler;
547
+ map.current.once("moveend", moveEndHandler);
548
+ map.current.panTo([longitude, latitude]);
549
+ return;
550
+ }
551
+ }
552
+ setIsFocused(true);
553
+ openTooltip();
554
+ }, [openTooltip, map, longitude, latitude, cleanupPendingMoveEnd]);
401
555
  const cleanupMarker = react_exports.useCallback(() => {
402
556
  if (marker.current) {
403
557
  marker.current.remove();
@@ -418,35 +572,102 @@ var MarkerWrapper = (_a) => {
418
572
  cleanupMarker();
419
573
  }
420
574
  }, [latitude, longitude, map]);
421
- react_exports.useEffect(() => cleanupMarker, []);
575
+ react_exports.useEffect(() => {
576
+ if (isTooltipOpen && activeTooltipId === markerId) {
577
+ document.addEventListener("keydown", handleEscapeKey);
578
+ return () => {
579
+ document.removeEventListener("keydown", handleEscapeKey);
580
+ };
581
+ }
582
+ return void 0;
583
+ }, [isTooltipOpen, activeTooltipId, markerId, handleEscapeKey]);
584
+ react_exports.useEffect(() => {
585
+ if (isTooltipOpen && activeTooltipId !== markerId && activeTooltipId !== null) {
586
+ setTooltipOpenStatus(false);
587
+ }
588
+ }, [activeTooltipId, markerId, isTooltipOpen]);
589
+ react_exports.useEffect(() => {
590
+ if (!isTooltipOpen && activeTooltipId === null && (isFocused || isHovered || isPopoverHovered)) {
591
+ openTooltip();
592
+ }
593
+ }, [activeTooltipId, isTooltipOpen, isFocused, isHovered, isPopoverHovered, openTooltip]);
594
+ react_exports.useEffect(() => {
595
+ if (!customMarkerId) return;
596
+ if (activeTooltipId === markerId) {
597
+ setTooltipOpenStatus(true);
598
+ } else {
599
+ setTooltipOpenStatus(false);
600
+ }
601
+ }, [customMarkerId, activeTooltipId, markerId]);
602
+ const [, forceUpdate] = react_exports.useReducer((x) => x + 1, 0);
603
+ react_exports.useEffect(() => {
604
+ if (!isTooltipOpen || !map.current || typeof map.current.on !== "function") {
605
+ return void 0;
606
+ }
607
+ let rafId = null;
608
+ const handleMapMove = () => {
609
+ if (rafId === null) {
610
+ rafId = requestAnimationFrame(() => {
611
+ forceUpdate();
612
+ rafId = null;
613
+ });
614
+ }
615
+ };
616
+ mapMoveHandlerRef.current = handleMapMove;
617
+ map.current.on("move", handleMapMove);
618
+ return () => {
619
+ if (rafId !== null) {
620
+ cancelAnimationFrame(rafId);
621
+ }
622
+ cleanupMapMoveHandler();
623
+ };
624
+ }, [isTooltipOpen, map, cleanupMapMoveHandler]);
625
+ react_exports.useEffect(
626
+ () => () => {
627
+ cancelCloseTimeout();
628
+ cleanupPendingMoveEnd();
629
+ cleanupMapMoveHandler();
630
+ cleanupMarker();
631
+ },
632
+ [cancelCloseTimeout, cleanupPendingMoveEnd, cleanupMapMoveHandler, cleanupMarker]
633
+ );
422
634
  const filteredAdditionalFields = additionalFields.filter(({ value }) => value && String(value) !== "0");
423
- const showTooltip = showCoordinates || filteredAdditionalFields.length || areaId && areaValue;
424
- return /* @__PURE__ */ react_exports.createElement("div", { style: { visibility: isChoroplethTooltip() ? "hidden" : "visible" } }, /* @__PURE__ */ react_exports.createElement(
635
+ const showTooltip = showCoordinates || filteredAdditionalFields.length || areaId && !Number.isNaN(areaValue);
636
+ const isTooltipVisible = activeTooltipId === markerId && (isTooltipOpen || customMarkerId !== void 0);
637
+ const childrenWithTooltipId = react_exports.useMemo(() => {
638
+ if (!children) return null;
639
+ if (!react_exports.isValidElement(children)) return children;
640
+ return react_exports.cloneElement(children, {
641
+ "aria-describedby": tooltipId
642
+ });
643
+ }, [children, tooltipId]);
644
+ return /* @__PURE__ */ react_exports.createElement("div", null, /* @__PURE__ */ react_exports.createElement(
425
645
  "div",
426
646
  __spreadValues({
427
- style: {
428
- visibility: isChoroplethTooltip() ? "hidden" : "visible"
429
- },
430
647
  ref: container,
431
648
  "data-test": "map-marker",
432
- onMouseOver: openTooltip,
433
- onMouseLeave: closeTooltip,
434
- onFocus: openTooltip,
435
- onBlur: closeTooltip
649
+ onMouseEnter: handleMouseEnter,
650
+ onMouseLeave: handleMouseLeave,
651
+ onFocus: handleFocus,
652
+ onBlur: handleBlur
436
653
  }, otherProps),
437
- children
654
+ childrenWithTooltipId
438
655
  ), /* @__PURE__ */ react_exports.createElement("div", null, showTooltip && /* @__PURE__ */ react_exports.createElement(
439
656
  Tooltip_default,
440
657
  {
441
- open: isChoroplethTooltip() ? isChoroplethTooltipOpen : isTooltipOpen,
658
+ id: tooltipId,
659
+ open: isTooltipVisible,
442
660
  anchor: container.current,
443
- latitude: isChoroplethTooltip() ? null : latitude,
444
- longitude: isChoroplethTooltip() ? null : longitude,
661
+ latitude: showCoordinates ? latitude : null,
662
+ longitude: showCoordinates ? longitude : null,
445
663
  areaId,
446
664
  areaValue,
447
665
  additionalFields,
448
666
  showCoordinates,
449
- tooltipHeader
667
+ tooltipHeader,
668
+ stylesManagedExternally,
669
+ onMouseEnter: handlePopoverMouseEnter,
670
+ onMouseLeave: handlePopoverMouseLeave
450
671
  }
451
672
  )));
452
673
  };
@@ -463,21 +684,51 @@ var PieSegment = react_exports.memo(
463
684
  color,
464
685
  themeColor,
465
686
  segmentMetadata,
466
- handleBubbleClick
687
+ handleBubbleClick,
688
+ ariaLabel,
689
+ "aria-describedby": ariaDescribedBy,
690
+ onKeyDown,
691
+ onFocus,
692
+ onBlur,
693
+ elementRef,
694
+ hasEventHandlers
467
695
  }) => {
468
696
  const { name, value } = segmentMetadata != null ? segmentMetadata : {};
469
- const handleSegmentClick = react_exports.useCallback(
697
+ const handleInteraction = react_exports.useCallback(
470
698
  (e) => {
699
+ if ("key" in e && e.key !== KEYBOARD_KEYS.ENTER && e.key !== KEYBOARD_KEYS.SPACE) {
700
+ return;
701
+ }
702
+ e.preventDefault();
471
703
  handleBubbleClick(e, name, value);
472
704
  },
473
705
  [name, value, handleBubbleClick]
474
706
  );
707
+ const handleKeyDown = react_exports.useCallback(
708
+ (e) => {
709
+ if (hasEventHandlers && (e.key === KEYBOARD_KEYS.ENTER || e.key === KEYBOARD_KEYS.SPACE)) {
710
+ handleInteraction(e);
711
+ }
712
+ if (onKeyDown) {
713
+ onKeyDown(e);
714
+ }
715
+ },
716
+ [hasEventHandlers, handleInteraction, onKeyDown]
717
+ );
475
718
  if (end - start === 1) {
476
719
  return /* @__PURE__ */ react_exports.createElement(
477
720
  BubbleSegment,
478
721
  {
722
+ $hasEventHandlers: hasEventHandlers,
723
+ ref: elementRef,
479
724
  as: "circle",
480
- onClick: handleSegmentClick,
725
+ role: hasEventHandlers ? "button" : "graphics-symbol",
726
+ "aria-label": ariaLabel,
727
+ "aria-describedby": ariaDescribedBy,
728
+ onClick: hasEventHandlers ? handleInteraction : void 0,
729
+ onKeyDown: handleKeyDown,
730
+ onFocus,
731
+ onBlur,
481
732
  cx: radius,
482
733
  cy: radius,
483
734
  r: radius,
@@ -498,8 +749,16 @@ var PieSegment = react_exports.memo(
498
749
  return /* @__PURE__ */ react_exports.createElement(
499
750
  BubbleSegment,
500
751
  {
752
+ $hasEventHandlers: hasEventHandlers,
753
+ ref: elementRef,
501
754
  as: "path",
502
- onClick: handleSegmentClick,
755
+ role: hasEventHandlers ? "button" : "graphics-symbol",
756
+ "aria-label": ariaLabel,
757
+ "aria-describedby": ariaDescribedBy,
758
+ onClick: hasEventHandlers ? handleInteraction : void 0,
759
+ onKeyDown: handleKeyDown,
760
+ onFocus,
761
+ onBlur,
503
762
  d: `M ${radius} ${radius} L ${radius + radius * x0} ${radius + radius * y0} A ${radius} ${radius} 0 ${arc} 1 ${radius + radius * x1} ${radius + radius * y1} L ${radius} ${radius} A 0 0 0 ${arc} 0 ${radius} ${radius}`,
504
763
  fill: color,
505
764
  fillOpacity: 0.8,
@@ -514,10 +773,118 @@ PieSegment.displayName = "MapBubblePieSegment";
514
773
  var BubbleSegment = styled_components_default.path`
515
774
  transition: 0.2s ease-in-out;
516
775
  transition-property: fill, stroke;
776
+ ${({ $hasEventHandlers }) => $hasEventHandlers && "cursor: pointer;"}
777
+
778
+ &:focus {
779
+ outline: none;
780
+ }
517
781
  `;
518
- var StyledMarkerWrapper = styled_components_default(MarkerWrapper_default)`
519
- cursor: pointer;
520
- `;
782
+ var BubbleSvg = react_exports.memo(
783
+ ({
784
+ values,
785
+ valueRange,
786
+ tooltipHeader,
787
+ latitude,
788
+ longitude,
789
+ icon,
790
+ isPie,
791
+ themeColor,
792
+ segmentStartIndex,
793
+ colors,
794
+ bubbleSize,
795
+ onClick,
796
+ "aria-describedby": ariaDescribedBy,
797
+ onKeyDown,
798
+ onFocus,
799
+ onBlur,
800
+ setElementRef,
801
+ hasEventHandlers
802
+ }) => {
803
+ const featureFlagContext = react_exports.useContext(FeatureFlagContext_default);
804
+ const isBubbleMapIconFlagEnabled = Boolean(featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableBubbleMapIcon);
805
+ const total = values.reduce((totalValue, v) => totalValue + v, 0);
806
+ const radius = matchBubbleSize(valueRange, total);
807
+ const getAriaLabel = react_exports.useCallback(
808
+ (segmentName, segmentValue) => {
809
+ let segmentLabel = (0, i18n_exports._)("Map marker");
810
+ if (tooltipHeader) {
811
+ segmentLabel = tooltipHeader;
812
+ } else if (latitude !== void 0 && longitude !== void 0) {
813
+ segmentLabel = (0, format_exports.sprintf)((0, i18n_exports._)("Location: %(lat)s, %(lng)s"), {
814
+ lat: convertDegToDMS(latitude, "latitude"),
815
+ lng: convertDegToDMS(longitude, "longitude")
816
+ });
817
+ }
818
+ if (segmentName != null && segmentValue != null) {
819
+ segmentLabel = (0, format_exports.sprintf)((0, i18n_exports._)("%(locationLabel)s, %(segmentName)s: %(segmentValue)s"), {
820
+ locationLabel: segmentLabel,
821
+ segmentName,
822
+ segmentValue: segmentValue.toString()
823
+ });
824
+ }
825
+ if (hasEventHandlers) {
826
+ segmentLabel = (0, format_exports.sprintf)((0, i18n_exports._)("%(label)s, Click for drilldown"), { label: segmentLabel });
827
+ }
828
+ return segmentLabel;
829
+ },
830
+ [tooltipHeader, latitude, longitude, hasEventHandlers]
831
+ );
832
+ const offsets = [];
833
+ let runningTotal = 0;
834
+ values.forEach((count) => {
835
+ offsets.push(runningTotal);
836
+ runningTotal += count;
837
+ });
838
+ const width = radius * 2;
839
+ const showIcon = isBubbleMapIconFlagEnabled && radius >= ICON_DISPLAY_CUTOFF && icon && ((0, iconUtils_exports.isRemoteIcon)(icon) || (0, iconUtils_exports.isDataURI)(icon));
840
+ return /* @__PURE__ */ react_exports.createElement("svg", { width, height: width, viewBox: `-3 -3 ${width + 6} ${width + 6}` }, isPie && /* @__PURE__ */ react_exports.createElement(
841
+ "circle",
842
+ {
843
+ cx: radius,
844
+ cy: radius,
845
+ r: radius,
846
+ fill: "none",
847
+ strokeWidth: 2,
848
+ stroke: themeColor,
849
+ strokeOpacity: 0.3
850
+ }
851
+ ), values.map((v, i) => {
852
+ var _a, _b;
853
+ const globalIndex = segmentStartIndex + i;
854
+ return /* @__PURE__ */ react_exports.createElement(
855
+ PieSegment,
856
+ {
857
+ key: globalIndex,
858
+ start: offsets[i] / total,
859
+ end: (offsets[i] + v) / total,
860
+ radius,
861
+ color: colors[i],
862
+ themeColor,
863
+ segmentMetadata: bubbleSize[i],
864
+ handleBubbleClick: onClick,
865
+ ariaLabel: getAriaLabel((_a = bubbleSize[i]) == null ? void 0 : _a.name, (_b = bubbleSize[i]) == null ? void 0 : _b.value),
866
+ "aria-describedby": ariaDescribedBy,
867
+ onKeyDown,
868
+ onFocus,
869
+ onBlur,
870
+ elementRef: setElementRef ? (element) => setElementRef(globalIndex, element) : void 0,
871
+ hasEventHandlers
872
+ }
873
+ );
874
+ }), showIcon && /* @__PURE__ */ react_exports.createElement(
875
+ "foreignObject",
876
+ {
877
+ x: radius - radius * 0.8 / 2,
878
+ y: radius - radius * 0.8 / 2,
879
+ width: radius * 0.8,
880
+ height: radius * 0.8,
881
+ style: { pointerEvents: "none" },
882
+ "data-test": "bubble-icon-wrapper"
883
+ },
884
+ /* @__PURE__ */ react_exports.createElement(RemoteIcon_default, { iconURL: icon, width: radius * 0.8, height: radius * 0.8 })
885
+ ));
886
+ }
887
+ );
521
888
  var Bubble = react_exports.memo(
522
889
  ({
523
890
  originalValues,
@@ -533,12 +900,15 @@ var Bubble = react_exports.memo(
533
900
  map,
534
901
  handleMapClick,
535
902
  icon,
536
- showCoordinates
903
+ showCoordinates,
904
+ stylesManagedExternally,
905
+ segmentStartIndex = 0,
906
+ onKeyDown,
907
+ onFocus,
908
+ onBlur,
909
+ setElementRef,
910
+ hasEventHandlers
537
911
  }) => {
538
- const featureFlagContext = react_exports.useContext(FeatureFlagContext_default);
539
- const isBubbleMapIconFlagEnabled = Boolean(
540
- featureFlagContext && featureFlagContext.visualizations_enableBubbleMapIcon
541
- );
542
912
  const onBubbleClick = react_exports.useCallback(
543
913
  (e, name, value) => {
544
914
  handleMapClick(e, name, value);
@@ -548,58 +918,9 @@ var Bubble = react_exports.memo(
548
918
  );
549
919
  const allZeros = originalValues.every((v) => v === 0);
550
920
  const values = originalValues.map((v) => v > 0 ? v : 0);
551
- const total = values.reduce((totalValue, v) => totalValue + v, 0);
552
- const radius = matchBubbleSize(valueRange, total);
553
- const bubble = react_exports.useMemo(() => {
554
- if (allZeros || !originalValues.length) return null;
555
- const offsets = [];
556
- let runningTotal = 0;
557
- values.forEach((count) => {
558
- offsets.push(runningTotal);
559
- runningTotal += count;
560
- });
561
- const width = radius * 2;
562
- return /* @__PURE__ */ react_exports.createElement("svg", { width, height: width, viewBox: `-3 -3 ${width + 6} ${width + 6}` }, isPie && /* @__PURE__ */ react_exports.createElement(
563
- "circle",
564
- {
565
- cx: radius,
566
- cy: radius,
567
- r: radius,
568
- fill: "none",
569
- strokeWidth: 2,
570
- stroke: themeColor,
571
- strokeOpacity: 0.3
572
- }
573
- ), values.map((v, i) => /* @__PURE__ */ react_exports.createElement(
574
- PieSegment,
575
- {
576
- key: (0, id_exports.createDOMID)(),
577
- start: offsets[i] / total,
578
- end: (offsets[i] + v) / total,
579
- radius,
580
- color: colors[i],
581
- themeColor,
582
- segmentMetadata: bubbleSize[i],
583
- handleBubbleClick: onBubbleClick
584
- }
585
- )));
586
- }, [
587
- bubbleSize,
588
- colors,
589
- isPie,
590
- onBubbleClick,
591
- originalValues,
592
- themeColor,
593
- allZeros,
594
- radius,
595
- total,
596
- values
597
- ]);
598
- if (!bubble) {
599
- return null;
600
- }
921
+ if (allZeros || !originalValues.length) return null;
601
922
  return /* @__PURE__ */ react_exports.createElement(
602
- StyledMarkerWrapper,
923
+ MarkerWrapper_default,
603
924
  {
604
925
  longitude,
605
926
  latitude,
@@ -607,22 +928,30 @@ var Bubble = react_exports.memo(
607
928
  tooltipHeader,
608
929
  map,
609
930
  "data-test-type": "bubble",
610
- showCoordinates
931
+ showCoordinates,
932
+ stylesManagedExternally
611
933
  },
612
- bubble,
613
- isBubbleMapIconFlagEnabled && radius >= ICON_DISPLAY_CUTOFF && icon && ((0, iconUtils_exports.isRemoteIcon)(icon) || (0, iconUtils_exports.isDataURI)(icon)) && /* @__PURE__ */ react_exports.createElement(
614
- "div",
934
+ /* @__PURE__ */ react_exports.createElement(
935
+ BubbleSvg,
615
936
  {
616
- "data-test": "bubble-icon-wrapper",
617
- style: {
618
- position: "absolute",
619
- top: `${radius}px`,
620
- left: `${radius}px`,
621
- transform: "translate(-50%, -50%)",
622
- pointerEvents: "none"
623
- }
624
- },
625
- /* @__PURE__ */ react_exports.createElement(RemoteIcon_default, { iconURL: icon, width: radius * 0.8, height: radius * 0.8 })
937
+ values,
938
+ valueRange,
939
+ colors,
940
+ bubbleSize,
941
+ isPie,
942
+ themeColor,
943
+ segmentStartIndex,
944
+ latitude,
945
+ longitude,
946
+ tooltipHeader,
947
+ icon,
948
+ onClick: onBubbleClick,
949
+ onKeyDown,
950
+ onFocus,
951
+ onBlur,
952
+ setElementRef,
953
+ hasEventHandlers
954
+ }
626
955
  )
627
956
  );
628
957
  }