@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
@@ -60,6 +60,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
60
60
  mod
61
61
  ));
62
62
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
63
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
63
64
 
64
65
  // src/SingleValueRadial/index.ts
65
66
  var SingleValueRadial_exports = {};
@@ -187,8 +188,27 @@ var TrellisTitleDiv = styled_components_default.div`
187
188
  background-color: ${(props) => props.backgroundColor};
188
189
  box-shadow: 0 1px ${(props) => props.backgroundColor}; // this is added to avoid a 1px gap between title and viz divs that showed up intermittently because of pixel rounding error in chrome.
189
190
  `;
191
+ var formatTrellisKey = (value) => {
192
+ if (value === null || value === void 0) {
193
+ return "";
194
+ }
195
+ if (typeof value === "string") {
196
+ return value;
197
+ }
198
+ if (typeof value === "number" || typeof value === "boolean") {
199
+ return value.toString();
200
+ }
201
+ if (typeof value === "symbol") {
202
+ return value.toString();
203
+ }
204
+ try {
205
+ return JSON.stringify(value);
206
+ } catch (e) {
207
+ return typeof value === "bigint" ? value.toString() : "";
208
+ }
209
+ };
190
210
  var TrellisTitle = (props) => {
191
- const titleText = String(props.trellisKey).toString();
211
+ const titleText = formatTrellisKey(props.trellisKey);
192
212
  return /* @__PURE__ */ react_exports.createElement(
193
213
  TrellisTitleDiv,
194
214
  {
@@ -314,7 +334,7 @@ var computeColors = (props, defaultColors) => {
314
334
  trendDisplay: props.trendDisplay,
315
335
  defaultColors
316
336
  });
317
- const underLabelColor = majorColor;
337
+ const underLabelColor = getFormattedColor(props.underLabelColor, majorColor);
318
338
  return {
319
339
  backgroundColor,
320
340
  backgroundEnabled,
@@ -570,6 +590,15 @@ var adjustRGB = (rgb, delta) => {
570
590
  }
571
591
  return rgb;
572
592
  };
593
+ var getUnchangedColorDelta = (r, g, b, ratio) => {
594
+ if (r === 0 && g === 0 && b === 0) {
595
+ return ratio > 1 ? 80 : 40;
596
+ }
597
+ if (r === 255 && g === 255 && b === 255) {
598
+ return ratio > 1 ? 20 : 80;
599
+ }
600
+ return 20;
601
+ };
573
602
  var changeColor = (color, ratio) => {
574
603
  const hex = color.replace(/(0x|#)/, "");
575
604
  const r = parseInt(hex.substr(0, 2), 16);
@@ -579,31 +608,10 @@ var changeColor = (color, ratio) => {
579
608
  let newG = Math.max(Math.min(Math.floor(g * ratio), 255), 0);
580
609
  let newB = Math.max(Math.min(Math.floor(b * ratio), 255), 0);
581
610
  if (newR === r && newG === g && newB === b) {
582
- if (newR === 0 && newG === 0 && newB === 0) {
583
- if (ratio > 1) {
584
- newR = adjustRGB(newR, 80);
585
- newG = adjustRGB(newG, 80);
586
- newB = adjustRGB(newB, 80);
587
- } else {
588
- newR = adjustRGB(newR, 40);
589
- newG = adjustRGB(newG, 40);
590
- newB = adjustRGB(newB, 40);
591
- }
592
- } else if (newR === 255 && newG === 255 && newB === 255) {
593
- if (ratio > 1) {
594
- newR = adjustRGB(newR, 20);
595
- newG = adjustRGB(newG, 20);
596
- newB = adjustRGB(newB, 20);
597
- } else {
598
- newR = adjustRGB(newR, 80);
599
- newG = adjustRGB(newG, 80);
600
- newB = adjustRGB(newB, 80);
601
- }
602
- } else {
603
- newR = adjustRGB(newR, 20);
604
- newG = adjustRGB(newG, 20);
605
- newB = adjustRGB(newB, 20);
606
- }
611
+ const delta = getUnchangedColorDelta(newR, newG, newB, ratio);
612
+ newR = adjustRGB(newR, delta);
613
+ newG = adjustRGB(newG, delta);
614
+ newB = adjustRGB(newB, delta);
607
615
  }
608
616
  return `#${newR.toString(16).padStart(2, 0)}${newG.toString(16).padStart(2, 0)}${newB.toString(16).padStart(2, 0)}`;
609
617
  };
@@ -1063,39 +1071,37 @@ var getSortedGaugeRanges = (gaugeRanges) => {
1063
1071
  });
1064
1072
  return gaugeRanges;
1065
1073
  };
1074
+ var clampFirstRange = (range2, minValue, maxValue) => ({
1075
+ from: minValue,
1076
+ to: Math.min(range2.to, maxValue),
1077
+ value: range2.value
1078
+ });
1079
+ var clampLastRange = (range2, minValue, maxValue) => ({
1080
+ from: Math.max(range2.from, minValue),
1081
+ to: maxValue,
1082
+ value: range2.value
1083
+ });
1084
+ var clampMiddleRange = (range2, minValue, maxValue) => {
1085
+ const newRange = __spreadValues({}, range2);
1086
+ if (minValue > range2.from && minValue < range2.to) {
1087
+ newRange.from = minValue;
1088
+ }
1089
+ if (maxValue > range2.from && maxValue < range2.to) {
1090
+ newRange.to = maxValue;
1091
+ }
1092
+ return newRange;
1093
+ };
1066
1094
  var getFormattedGaugeRanges = (gaugeRanges, minValue, maxValue) => {
1067
1095
  const formattedGaugeRanges = [];
1068
1096
  gaugeRanges.forEach((range2, index) => {
1069
1097
  if (index === 0 && minValue < range2.to) {
1070
- const newRange = {
1071
- from: minValue,
1072
- to: range2.to,
1073
- value: range2.value
1074
- };
1075
- if (maxValue < range2.to) {
1076
- newRange.to = maxValue;
1077
- }
1078
- formattedGaugeRanges.push(newRange);
1098
+ formattedGaugeRanges.push(clampFirstRange(range2, minValue, maxValue));
1079
1099
  }
1080
1100
  if (index === gaugeRanges.length - 1 && maxValue > range2.from) {
1081
- const newRange = {
1082
- from: range2.from,
1083
- to: maxValue,
1084
- value: range2.value
1085
- };
1086
- if (minValue > range2.from) {
1087
- newRange.from = minValue;
1088
- }
1089
- formattedGaugeRanges.push(newRange);
1101
+ formattedGaugeRanges.push(clampLastRange(range2, minValue, maxValue));
1090
1102
  }
1091
1103
  if (Object.keys(range2).includes("from") && Object.keys(range2).includes("to")) {
1092
- const newRange = __spreadValues({}, range2);
1093
- if (minValue > range2.from && minValue < range2.to) {
1094
- newRange.from = minValue;
1095
- }
1096
- if (maxValue > range2.from && maxValue < range2.to) {
1097
- newRange.to = maxValue;
1098
- }
1104
+ const newRange = clampMiddleRange(range2, minValue, maxValue);
1099
1105
  if (minValue < range2.to && maxValue > range2.from) {
1100
1106
  formattedGaugeRanges.push(newRange);
1101
1107
  }
@@ -1866,7 +1872,7 @@ var DefaultVizActionHandler = class {
1866
1872
  var INITIAL_HEIGHT = 250;
1867
1873
  var SplunkVisualization = class {
1868
1874
  };
1869
- SplunkVisualization.propTypes = {
1875
+ __publicField(SplunkVisualization, "propTypes", {
1870
1876
  /**
1871
1877
  * display mode
1872
1878
  */
@@ -1942,11 +1948,11 @@ SplunkVisualization.propTypes = {
1942
1948
  * A callback to request new data with updated request params
1943
1949
  */
1944
1950
  onRequestParamsChange: prop_types_exports.func
1945
- };
1951
+ });
1946
1952
  /**
1947
1953
  *
1948
1954
  */
1949
- SplunkVisualization.defaults = {
1955
+ __publicField(SplunkVisualization, "defaults", {
1950
1956
  // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height
1951
1957
  width: "100%",
1952
1958
  height: INITIAL_HEIGHT,
@@ -1961,7 +1967,7 @@ SplunkVisualization.defaults = {
1961
1967
  onComputedProps: () => ({}),
1962
1968
  loading: false,
1963
1969
  onRequestParamsChange: lodash_exports.noop
1964
- };
1970
+ });
1965
1971
  var SplunkVisualization_default = SplunkVisualization;
1966
1972
 
1967
1973
  // src/common/interfaces/DataSource.ts
@@ -2015,9 +2021,9 @@ var usePaginationParams = ({
2015
2021
  meta,
2016
2022
  onRequestParamsChange
2017
2023
  }) => {
2018
- const totalCount = meta && meta.totalCount || 0;
2019
- const offset = requestParams && requestParams.offset || 0;
2020
- const count = requestParams && requestParams.count;
2024
+ const totalCount = (meta == null ? void 0 : meta.totalCount) || 0;
2025
+ const offset = (requestParams == null ? void 0 : requestParams.offset) || 0;
2026
+ const count = requestParams == null ? void 0 : requestParams.count;
2021
2027
  const totalPages = typeof count === "number" && count > 0 ? Math.ceil(totalCount / count) : 0;
2022
2028
  const current = typeof count === "number" && count > 0 ? Math.floor(offset / count) + 1 : 0;
2023
2029
  const isPaging = totalPages > 1 && typeof onRequestParamsChange === "function";
@@ -2116,7 +2122,7 @@ var Cover = styled_components_default.div`
2116
2122
  bottom: 0;
2117
2123
  `;
2118
2124
  var Blocker = styled_components_default.div.attrs({
2119
- "data-splunk-visualization-version": "28.5.3 - 657435b86"
2125
+ "data-splunk-visualization-version": "28.7.0 - d7b18cab6"
2120
2126
  })`
2121
2127
  position: relative;
2122
2128
  width: 100%;
@@ -2197,7 +2203,7 @@ var withFixedSizeContainer = (Viz) => {
2197
2203
  FixSizeItem,
2198
2204
  {
2199
2205
  "data-test": "fix-size-item",
2200
- "data-splunk-visualization-version": "28.5.3 - 657435b86",
2206
+ "data-splunk-visualization-version": "28.7.0 - d7b18cab6",
2201
2207
  width,
2202
2208
  height,
2203
2209
  backgroundColor
@@ -2694,7 +2700,7 @@ var dataSourcesSplitByAggregationsUnknown = (dataSource) => {
2694
2700
  const columns = (_d = (_c = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _c.data) == null ? void 0 : _d.columns;
2695
2701
  let splitDataSources = null;
2696
2702
  let errorCode = null;
2697
- if (fields && fields.length) {
2703
+ if (fields == null ? void 0 : fields.length) {
2698
2704
  splitDataSources = {};
2699
2705
  for (let i = 0; i < fields.length; i += 1) {
2700
2706
  const fieldName = fields[i].name;
@@ -2745,7 +2751,7 @@ var dataSourcesSplitByAggregationsTimechartAndChart = (dataSource) => {
2745
2751
  }
2746
2752
  });
2747
2753
  });
2748
- } else if ((!splitByFields || !splitByFields.length) && fields.length > 1) {
2754
+ } else if (!(splitByFields == null ? void 0 : splitByFields.length) && fields.length > 1) {
2749
2755
  splitDataSources = {};
2750
2756
  for (let i = 1; i < fields.length; i += 1) {
2751
2757
  const fieldName = fields[i].name;
@@ -2801,7 +2807,7 @@ var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
2801
2807
  if (fields.length > 0) {
2802
2808
  splitByFields = (0, trellisUtils_exports.extractSplitByFieldsChartFields)(fields);
2803
2809
  }
2804
- if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
2810
+ if (splitByFields == null ? void 0 : splitByFields.includes(splitBy)) {
2805
2811
  splitDataSources = {};
2806
2812
  const dataSourceKeys = (0, trellisUtils_exports.extractDataSourceAggregationKeysChart)(fields);
2807
2813
  const valueKeys = [];
@@ -2832,6 +2838,68 @@ var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
2832
2838
  }
2833
2839
  return { splitDataSources, errorCode };
2834
2840
  };
2841
+ var splitRowWise = (dataSource, columns, fields, otherSplitBy, dataSourceKeys, nonDataSourceAggregations) => {
2842
+ const splitDataSources = {};
2843
+ const valueKeys = (0, lodash_exports.cloneDeep)(columns[0]);
2844
+ valueKeys.forEach((val, idx) => {
2845
+ splitDataSources[val] = (0, lodash_exports.cloneDeep)((0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"]));
2846
+ splitDataSources[val].primary.data.fields = [];
2847
+ if (otherSplitBy.length) {
2848
+ splitDataSources[val].primary.data.fields = [{ name: otherSplitBy[0] }];
2849
+ }
2850
+ if (dataSourceKeys.length) {
2851
+ const columnValues = [[]];
2852
+ splitDataSources[val].primary.data.fields = [
2853
+ ...splitDataSources[val].primary.data.fields,
2854
+ ...dataSourceKeys.map((k) => ({ name: k }))
2855
+ ];
2856
+ dataSourceKeys.forEach(() => {
2857
+ columnValues.push([]);
2858
+ });
2859
+ for (let i = 1; i <= Math.ceil((fields.length - 1) / dataSourceKeys.length); i += 1) {
2860
+ columnValues[0].push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);
2861
+ dataSourceKeys.forEach((dskey, dsIndx) => {
2862
+ const mul = (fields.length - 1) / dataSourceKeys.length;
2863
+ columnValues[dsIndx + 1].push(columns[i + dsIndx * mul][idx]);
2864
+ });
2865
+ }
2866
+ splitDataSources[val].primary.data.columns = columnValues;
2867
+ } else if (nonDataSourceAggregations.length) {
2868
+ const columnValues = [];
2869
+ fields.forEach((aggregationField, fieldIdx) => {
2870
+ if (fieldIdx > 0) {
2871
+ splitDataSources[val].primary.data.fields.push(aggregationField);
2872
+ columnValues.push([columns[fieldIdx][idx]]);
2873
+ }
2874
+ });
2875
+ splitDataSources[val].primary.data.columns = columnValues;
2876
+ }
2877
+ });
2878
+ return splitDataSources;
2879
+ };
2880
+ var splitColumnWise = (dataSource, columns, fields, otherSplitBy, dataSourceKeys) => {
2881
+ const splitDataSources = {};
2882
+ const valueKeys = [];
2883
+ for (let i = 1; i < fields.length; i += 1) {
2884
+ valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);
2885
+ }
2886
+ valueKeys.forEach((val) => {
2887
+ splitDataSources[val] = (0, lodash_exports.cloneDeep)((0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"]));
2888
+ splitDataSources[val].primary.data.fields = [
2889
+ { name: otherSplitBy[0] },
2890
+ ...dataSourceKeys.map((k) => ({ name: k }))
2891
+ ];
2892
+ splitDataSources[val].primary.data.columns = [[...columns[0]]];
2893
+ dataSourceKeys.forEach((dsKey) => {
2894
+ fields.forEach((field, idx) => {
2895
+ if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
2896
+ splitDataSources[val].primary.data.columns.push([...columns[idx]]);
2897
+ }
2898
+ });
2899
+ });
2900
+ });
2901
+ return splitDataSources;
2902
+ };
2835
2903
  var dataSourcesSplitByModeChart = (dataSource, splitBy) => {
2836
2904
  var _a, _b, _c, _d;
2837
2905
  const fields = toFieldEntries((_b = (_a = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _a.data) == null ? void 0 : _b.fields);
@@ -2842,8 +2910,7 @@ var dataSourcesSplitByModeChart = (dataSource, splitBy) => {
2842
2910
  if (fields.length > 0) {
2843
2911
  splitByFields = (0, trellisUtils_exports.extractSplitByFieldsChartFields)(fields);
2844
2912
  }
2845
- if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
2846
- splitDataSources = {};
2913
+ if (splitByFields == null ? void 0 : splitByFields.includes(splitBy)) {
2847
2914
  const splitByFieldIdx = splitByFields.findIndex((f) => f === splitBy);
2848
2915
  const otherSplitBy = splitByFields.filter((f) => f !== splitBy);
2849
2916
  const dataSourceKeys = (0, trellisUtils_exports.extractDataSourceAggregationKeysChart)(fields);
@@ -2854,71 +2921,16 @@ var dataSourcesSplitByModeChart = (dataSource, splitBy) => {
2854
2921
  }
2855
2922
  }
2856
2923
  if (splitByFieldIdx === 0) {
2857
- const valueKeys = (0, lodash_exports.cloneDeep)(columns[0]);
2858
- valueKeys.forEach((val, idx) => {
2859
- splitDataSources[val] = (0, lodash_exports.cloneDeep)(
2860
- (0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
2861
- );
2862
- splitDataSources[val].primary.data.fields = [];
2863
- if (otherSplitBy.length) {
2864
- splitDataSources[val].primary.data.fields = [{ name: otherSplitBy[0] }];
2865
- }
2866
- if (dataSourceKeys.length) {
2867
- const columnValues = [[]];
2868
- splitDataSources[val].primary.data.fields = [
2869
- ...splitDataSources[val].primary.data.fields,
2870
- ...dataSourceKeys.map((k) => ({
2871
- name: k
2872
- }))
2873
- ];
2874
- dataSourceKeys.forEach(() => {
2875
- columnValues.push([]);
2876
- });
2877
- for (let i = 1; i <= Math.ceil((fields.length - 1) / dataSourceKeys.length); i += 1) {
2878
- columnValues[0].push(
2879
- fields[i].splitby_value ? fields[i].splitby_value : fields[i].name
2880
- );
2881
- dataSourceKeys.forEach((dskey, dsIndx) => {
2882
- const mul = (fields.length - 1) / dataSourceKeys.length;
2883
- columnValues[dsIndx + 1].push(columns[i + dsIndx * mul][idx]);
2884
- });
2885
- }
2886
- splitDataSources[val].primary.data.columns = columnValues;
2887
- } else if (nonDataSourceAggregations.length) {
2888
- const columnValues = [];
2889
- fields.forEach((aggregationField, fieldIdx) => {
2890
- if (fieldIdx > 0) {
2891
- splitDataSources[val].primary.data.fields.push(aggregationField);
2892
- columnValues.push([columns[fieldIdx][idx]]);
2893
- }
2894
- });
2895
- splitDataSources[val].primary.data.columns = columnValues;
2896
- }
2897
- });
2924
+ splitDataSources = splitRowWise(
2925
+ dataSource,
2926
+ columns,
2927
+ fields,
2928
+ otherSplitBy,
2929
+ dataSourceKeys,
2930
+ nonDataSourceAggregations
2931
+ );
2898
2932
  } else {
2899
- const valueKeys = [];
2900
- for (let i = 1; i < fields.length; i += 1) {
2901
- valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);
2902
- }
2903
- valueKeys.forEach((val) => {
2904
- splitDataSources[val] = (0, lodash_exports.cloneDeep)(
2905
- (0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
2906
- );
2907
- splitDataSources[val].primary.data.fields = [
2908
- { name: otherSplitBy[0] },
2909
- ...dataSourceKeys.map((k) => ({
2910
- name: k
2911
- }))
2912
- ];
2913
- splitDataSources[val].primary.data.columns = [[...columns[0]]];
2914
- dataSourceKeys.forEach((dsKey) => {
2915
- fields.forEach((field, idx) => {
2916
- if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
2917
- splitDataSources[val].primary.data.columns.push([...columns[idx]]);
2918
- }
2919
- });
2920
- });
2921
- });
2933
+ splitDataSources = splitColumnWise(dataSource, columns, fields, otherSplitBy, dataSourceKeys);
2922
2934
  }
2923
2935
  } else {
2924
2936
  errorCode = "INVALID_SPLIT_BY_FIELD";
@@ -2936,7 +2948,7 @@ var dataSourcesSplitByModeStatsorUnknown = (dataSource, splitBy, splitMode) => {
2936
2948
  splitByFields = splitMode !== trellisUtils_exports.UNKNOWN ? (0, trellisUtils_exports.extractSplitByFieldsForStats)(fields) : (0, trellisUtils_exports.extractSplitByFieldsForUnknown)(fields);
2937
2949
  }
2938
2950
  const splitByIndex = fields.findIndex((field) => field.name === splitBy);
2939
- if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
2951
+ if (splitByFields == null ? void 0 : splitByFields.includes(splitBy)) {
2940
2952
  const splitByColumn = (_f = (_e = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _e.data) == null ? void 0 : _f.columns[splitByIndex];
2941
2953
  splitDataSources = {};
2942
2954
  splitByColumn.forEach((val, idx) => {
@@ -3043,6 +3055,15 @@ var defaultImport35 = __toESM(require("@splunk/react-icons/Triangle"));
3043
3055
  __reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
3044
3056
  var Triangle_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
3045
3057
 
3058
+ // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
3059
+ var simpleXMLOptions_exports = {};
3060
+ __export(simpleXMLOptions_exports, {
3061
+ default: () => simpleXMLOptions_default
3062
+ });
3063
+ var defaultImport36 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
3064
+ __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
3065
+ var simpleXMLOptions_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
3066
+
3046
3067
  // src/common/chartingUtils.ts
3047
3068
  var DEFAULT_LINE_WIDTH = 2;
3048
3069
  var getAnnotationsForCanvas = ({
@@ -3080,9 +3101,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
3080
3101
  const xAxisIsTime = xField === "_time";
3081
3102
  return !!rangeSelectEventHandler && xAxisIsTime;
3082
3103
  };
3083
- var canvasSupportedTimeSeriesCharts = ["splunk.line"];
3104
+ var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
3084
3105
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
3085
- return canvasSupportedTimeSeriesCharts.indexOf(vizConfigKey) > -1;
3106
+ return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
3086
3107
  };
3087
3108
  var filterChartDataFromInternalFields = (chartData) => {
3088
3109
  const { fields, columns } = chartData;
@@ -3237,46 +3258,66 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
3237
3258
  }
3238
3259
  return y2Config;
3239
3260
  };
3240
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
3261
+ var getSeriesType = (isOverlay, isAreaChart, isStacked) => {
3262
+ if (isOverlay) return "line";
3263
+ if (!isAreaChart) return void 0;
3264
+ return isStacked ? "stacked-area" : "area";
3265
+ };
3266
+ var getY2Scale = (field, y2fields, overlayFields) => {
3267
+ const assignToY2 = (y2fields == null ? void 0 : y2fields.length) > 0 && y2fields.includes(field) || !(y2fields == null ? void 0 : y2fields.length) && (overlayFields == null ? void 0 : overlayFields.includes(field));
3268
+ return assignToY2 ? "y2" : "y";
3269
+ };
3270
+ var getSeriesOverrides = (opts) => {
3271
+ var _a;
3272
+ const {
3273
+ yfields,
3274
+ y2fields,
3275
+ lineWidth,
3276
+ overlayFields,
3277
+ y2Enabled,
3278
+ nullValueMode,
3279
+ markerDisplay,
3280
+ lineDashStyle,
3281
+ lineDashStylesByField,
3282
+ stepPosition,
3283
+ stepPositionsByField,
3284
+ type,
3285
+ stackMode,
3286
+ showLines
3287
+ } = opts;
3241
3288
  const seriesConfig = {};
3242
3289
  let spanGaps;
3243
- let replaceNullsWithZero;
3244
3290
  if (nullValueMode === "gaps") {
3245
3291
  spanGaps = false;
3246
- } else if (nullValueMode === "connect" || nullValueMode === "zero") {
3292
+ } else if (nullValueMode != null) {
3247
3293
  spanGaps = true;
3248
- if (nullValueMode === "zero") {
3249
- replaceNullsWithZero = true;
3250
- }
3294
+ } else {
3295
+ spanGaps = void 0;
3251
3296
  }
3252
- yfields.forEach((field) => {
3297
+ const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
3298
+ const isAreaChart = type === "area";
3299
+ const isStacked = isAreaChart && (stackMode === "stacked" || stackMode === "stacked100");
3300
+ const areaFields = isAreaChart ? yfields.filter((f) => !(overlayFields == null ? void 0 : overlayFields.includes(f))) : yfields;
3301
+ const overlayFieldsInOrder = (_a = overlayFields == null ? void 0 : overlayFields.filter((f) => yfields.includes(f))) != null ? _a : [];
3302
+ const orderedFields = isAreaChart ? [...areaFields, ...overlayFieldsInOrder] : yfields;
3303
+ orderedFields.forEach((field) => {
3304
+ var _a2;
3305
+ const isOverlay = (_a2 = overlayFields == null ? void 0 : overlayFields.includes(field)) != null ? _a2 : false;
3306
+ const isPercent = isAreaChart && stackMode === "stacked100" && !isOverlay;
3307
+ const shouldHideAreaOutline = isAreaChart && showLines === false && !isOverlay;
3253
3308
  seriesConfig[field] = {
3254
- overrides: { width: lineWidth != null ? lineWidth : DEFAULT_LINE_WIDTH }
3309
+ overrides: __spreadValues({
3310
+ width: shouldHideAreaOutline ? 0 : lineWidth != null ? lineWidth : DEFAULT_LINE_WIDTH
3311
+ }, isPercent ? { stacking: { mode: "percent", group: "A" } } : {})
3255
3312
  };
3256
- if (spanGaps !== void 0) {
3257
- seriesConfig[field].overrides.spanGaps = spanGaps;
3258
- }
3259
- if (y2Enabled) {
3260
- const shouldAssignToY2 = (
3261
- // If y2Fields are present, assign all y2Fields to y2 scale
3262
- (y2fields == null ? void 0 : y2fields.length) > 0 && y2fields.includes(field) || // Else, assign all overlayFields to y2 scale
3263
- (!y2fields || y2fields.length === 0) && (overlayFields == null ? void 0 : overlayFields.includes(field))
3264
- );
3265
- if (shouldAssignToY2) {
3266
- seriesConfig[field].overrides.scale = "y2";
3267
- } else {
3268
- seriesConfig[field].overrides.scale = "y";
3269
- }
3270
- }
3271
- if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
3272
- seriesConfig[field].type = "line";
3273
- }
3274
- if (markerDisplay !== void 0) {
3275
- seriesConfig[field].markerDisplay = markerDisplay;
3276
- }
3277
- const fieldDashStyle = (lineDashStylesByField == null ? void 0 : lineDashStylesByField[field]) || lineDashStyle;
3278
- if (fieldDashStyle) {
3279
- seriesConfig[field].lineDashStyle = fieldDashStyle;
3313
+ const seriesType = getSeriesType(isOverlay, isAreaChart, isStacked);
3314
+ if (seriesType !== void 0) seriesConfig[field].type = seriesType;
3315
+ if (spanGaps !== void 0) seriesConfig[field].overrides.spanGaps = spanGaps;
3316
+ if (y2Enabled) seriesConfig[field].overrides.scale = getY2Scale(field, y2fields, overlayFields);
3317
+ if (markerDisplay !== void 0) seriesConfig[field].markerDisplay = markerDisplay;
3318
+ if (!isAreaChart || isOverlay) {
3319
+ const fieldDashStyle = (lineDashStylesByField == null ? void 0 : lineDashStylesByField[field]) || lineDashStyle;
3320
+ if (fieldDashStyle) seriesConfig[field].lineDashStyle = fieldDashStyle;
3280
3321
  }
3281
3322
  const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
3282
3323
  const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
@@ -3442,6 +3483,38 @@ var parseArrayOption = (value) => {
3442
3483
  }
3443
3484
  return void 0;
3444
3485
  };
3486
+ var getAreaOpacityForCanvas = (areaOpacity) => (
3487
+ // Preserve legacy visualizations behavior where area opacity is squared to match charting output.
3488
+ areaOpacity !== void 0 && areaOpacity !== null ? __pow(areaOpacity, 2) : areaOpacity
3489
+ );
3490
+ var parseTickIntervalOption = (simpleXMLValue, canvasValue) => {
3491
+ if (simpleXMLValue) return Number(simpleXMLValue);
3492
+ if (canvasValue) return Number(canvasValue);
3493
+ return void 0;
3494
+ };
3495
+ var getYAxisTitles = ({
3496
+ y2Enabled,
3497
+ yFields,
3498
+ y2Fields,
3499
+ overlayFields,
3500
+ yAxisTitleText,
3501
+ yAxisTitleVisibility,
3502
+ y2AxisTitleText,
3503
+ y2AxisTitleVisibility,
3504
+ containerHeight
3505
+ }) => {
3506
+ const yFieldsForTitle = y2Enabled ? yFields.filter((field) => !y2Fields.includes(field)) : yFields;
3507
+ const fieldsForY2Axis = y2Fields.length > 0 ? y2Fields : overlayFields;
3508
+ const yAxisTitle = ellipsisAxisTitle(
3509
+ getComputedAxisTitles(yAxisTitleText, yFieldsForTitle, yAxisTitleVisibility),
3510
+ containerHeight
3511
+ );
3512
+ const y2AxisTitle = ellipsisAxisTitle(
3513
+ getComputedAxisTitles(y2AxisTitleText, fieldsForY2Axis, y2AxisTitleVisibility),
3514
+ containerHeight
3515
+ );
3516
+ return { yAxisTitle, y2AxisTitle };
3517
+ };
3445
3518
  var TimeSeriesChartWrapper = (props) => {
3446
3519
  var _b, _c, _d;
3447
3520
  const _a = props, {
@@ -3531,6 +3604,8 @@ var TimeSeriesChartWrapper = (props) => {
3531
3604
  "chart.overlayFields": overlayFieldsStr,
3532
3605
  "chart.nullValueMode": nullValueMode,
3533
3606
  "chart.showDataLabels": showDataLabels,
3607
+ "chart.showLines": showLines,
3608
+ "chart.stackMode": stackMode,
3534
3609
  lineWidth,
3535
3610
  lineDashStyle,
3536
3611
  fieldDashStyles: lineDashStylesByFieldStr,
@@ -3559,7 +3634,10 @@ var TimeSeriesChartWrapper = (props) => {
3559
3634
  yAxisMinorTickSize,
3560
3635
  y2AxisMinorTickSize,
3561
3636
  showYAxisWithZero: showYAxisWithZeroFromOptions,
3562
- showY2AxisWithZero: showY2AxisWithZeroFromOptions
3637
+ showY2AxisWithZero: showY2AxisWithZeroFromOptions,
3638
+ // area only props
3639
+ areaFillOpacity: areaOpacity,
3640
+ chart: chartType
3563
3641
  } = options;
3564
3642
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
3565
3643
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
@@ -3576,13 +3654,11 @@ var TimeSeriesChartWrapper = (props) => {
3576
3654
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
3577
3655
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
3578
3656
  const y2AxisMax = parseAxisValue(y2AxisMaxRaw);
3579
- const parseTickInterval = (simpleXMLValue, canvasValue) => {
3580
- if (simpleXMLValue) return Number(simpleXMLValue);
3581
- if (canvasValue) return Number(canvasValue);
3582
- return void 0;
3583
- };
3584
- const yAxisMajorTickIntervalNum = parseTickInterval(yAxisMajorUnitFromSimpleXML, yAxisMajorTickInterval);
3585
- const y2AxisMajorTickIntervalNum = parseTickInterval(
3657
+ const yAxisMajorTickIntervalNum = parseTickIntervalOption(
3658
+ yAxisMajorUnitFromSimpleXML,
3659
+ yAxisMajorTickInterval
3660
+ );
3661
+ const y2AxisMajorTickIntervalNum = parseTickIntervalOption(
3586
3662
  y2AxisMajorUnitFromSimpleXML,
3587
3663
  y2AxisMajorTickInterval
3588
3664
  );
@@ -3591,6 +3667,7 @@ var TimeSeriesChartWrapper = (props) => {
3591
3667
  const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
3592
3668
  const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
3593
3669
  const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
3670
+ const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
3594
3671
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
3595
3672
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
3596
3673
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
@@ -3621,26 +3698,40 @@ var TimeSeriesChartWrapper = (props) => {
3621
3698
  );
3622
3699
  let xAxisTitle = getComputedAxisTitles(xAxisTitleText, [xField], xAxisTitleVisibility);
3623
3700
  xAxisTitle = ellipsisAxisTitle(xAxisTitle, containerWidth);
3624
- const yFieldsForTitle = y2Enabled ? yFields.filter((field) => !y2Fields.includes(field)) : yFields;
3625
- let yAxisTitle = getComputedAxisTitles(yAxisTitleText, yFieldsForTitle, yAxisTitleVisibility);
3626
- yAxisTitle = ellipsisAxisTitle(yAxisTitle, containerHeight);
3627
- const fieldsForY2Axis = y2Fields.length > 0 ? y2Fields : overlayFields;
3628
- let y2AxisTitle = getComputedAxisTitles(y2AxisTitleText, fieldsForY2Axis, y2AxisTitleVisibility);
3629
- y2AxisTitle = ellipsisAxisTitle(y2AxisTitle, containerHeight);
3701
+ const { yAxisTitle, y2AxisTitle } = getYAxisTitles({
3702
+ y2Enabled,
3703
+ yFields,
3704
+ y2Fields,
3705
+ overlayFields,
3706
+ yAxisTitleText,
3707
+ yAxisTitleVisibility,
3708
+ y2AxisTitleText,
3709
+ y2AxisTitleVisibility,
3710
+ containerHeight
3711
+ });
3630
3712
  const xScaleConfig = (0, react_exports.useMemo)(
3631
3713
  () => getXScaleConfig(xAxisTitle, xAxisLabelVisibility, xAxisLabelRotation),
3632
3714
  [xAxisTitle, xAxisLabelVisibility, xAxisLabelRotation]
3633
3715
  );
3716
+ const isStacked100 = stackMode === "stacked100";
3634
3717
  const yScaleConfig = (0, react_exports.useMemo)(
3635
- () => getYScaleConfig(
3636
- yAxisTitle,
3637
- yAxisAbbreviation,
3638
- yAxisScale,
3639
- yAxisLabelVisibility,
3640
- yAxisMin,
3641
- yAxisMax
3642
- ),
3643
- [yAxisTitle, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility, yAxisMin, yAxisMax]
3718
+ () => {
3719
+ const config3 = getYScaleConfig(
3720
+ yAxisTitle,
3721
+ yAxisAbbreviation,
3722
+ yAxisScale,
3723
+ yAxisLabelVisibility,
3724
+ yAxisMin,
3725
+ yAxisMax
3726
+ );
3727
+ if (isStacked100) {
3728
+ config3.y.tickFmt = (v) => `${Math.round(v * 100)}%`;
3729
+ config3.y.range = () => [0, 1];
3730
+ }
3731
+ return config3;
3732
+ },
3733
+ // eslint-disable-next-line react-hooks/exhaustive-deps
3734
+ [yAxisTitle, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility, yAxisMin, yAxisMax, isStacked100]
3644
3735
  );
3645
3736
  const y2ScaleConfig = (0, react_exports.useMemo)(() => {
3646
3737
  if (y2Enabled) {
@@ -3672,10 +3763,11 @@ var TimeSeriesChartWrapper = (props) => {
3672
3763
  ];
3673
3764
  chartData.fields = filteredChartData.fields;
3674
3765
  chartData.columns = seriesDataFormatted;
3766
+ const normalizedStackMode = stackMode === "stacked" || stackMode === "stacked100" ? stackMode : "auto";
3675
3767
  const seriesOverrides = (0, react_exports.useMemo)(
3676
- () => getSeriesOverrides(
3677
- yFields,
3678
- y2Fields,
3768
+ () => getSeriesOverrides({
3769
+ yfields: yFields,
3770
+ y2fields: y2Fields,
3679
3771
  lineWidth,
3680
3772
  overlayFields,
3681
3773
  y2Enabled,
@@ -3684,8 +3776,11 @@ var TimeSeriesChartWrapper = (props) => {
3684
3776
  lineDashStyle,
3685
3777
  lineDashStylesByField,
3686
3778
  stepPosition,
3687
- stepPositionsByField
3688
- ),
3779
+ stepPositionsByField,
3780
+ type: chartType,
3781
+ stackMode: normalizedStackMode,
3782
+ showLines
3783
+ }),
3689
3784
  [
3690
3785
  yFields,
3691
3786
  y2Fields,
@@ -3697,7 +3792,10 @@ var TimeSeriesChartWrapper = (props) => {
3697
3792
  lineDashStyle,
3698
3793
  lineDashStylesByField,
3699
3794
  stepPosition,
3700
- stepPositionsByField
3795
+ stepPositionsByField,
3796
+ chartType,
3797
+ normalizedStackMode,
3798
+ showLines
3701
3799
  ]
3702
3800
  );
3703
3801
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -3765,50 +3863,54 @@ var TimeSeriesChartWrapper = (props) => {
3765
3863
  react_exports.useEffect(() => {
3766
3864
  additionalTooltipValuesRef.current = additionalTooltipValues;
3767
3865
  }, [additionalTooltipValues]);
3866
+ const handleCrosshairMouseout = react_exports.useCallback(() => {
3867
+ if (onPointMouseOut && lastPayloadRef.current) {
3868
+ onPointMouseOut({
3869
+ type: "point.mouseout",
3870
+ originalEvent: lastOriginalEventRef.current,
3871
+ payload: lastPayloadRef.current
3872
+ });
3873
+ }
3874
+ previousMouseoverPayloadRef.current = null;
3875
+ }, [onPointMouseOut]);
3768
3876
  const handleChartCrosshairChange = react_exports.useCallback(
3769
3877
  (event) => {
3770
- if (onPointMouseOver || onPointMouseOut) {
3771
- if (!event) {
3772
- if (onPointMouseOut && lastPayloadRef.current) {
3773
- onPointMouseOut({
3774
- type: "point.mouseout",
3775
- originalEvent: lastOriginalEventRef.current,
3776
- payload: lastPayloadRef.current
3777
- });
3778
- }
3779
- previousMouseoverPayloadRef.current = null;
3780
- return;
3781
- }
3782
- const payload = __spreadProps(__spreadValues({}, (0, lodash_exports.pick)(event, "value", "seriesKey", "time", "index", "seriesIndex")), {
3783
- name: event.seriesKey
3878
+ if (!onPointMouseOver && !onPointMouseOut) {
3879
+ return;
3880
+ }
3881
+ if (!event) {
3882
+ handleCrosshairMouseout();
3883
+ return;
3884
+ }
3885
+ const payload = __spreadProps(__spreadValues({}, (0, lodash_exports.pick)(event, "value", "seriesKey", "time", "index", "seriesIndex")), {
3886
+ name: event.seriesKey
3887
+ });
3888
+ delete payload.seriesKey;
3889
+ if (event.rowContext) {
3890
+ Object.assign(
3891
+ payload,
3892
+ Object.keys(event.rowContext).reduce((acc, fieldName) => {
3893
+ acc[`row.${fieldName}.value`] = event.rowContext[fieldName];
3894
+ return acc;
3895
+ }, {})
3896
+ );
3897
+ }
3898
+ const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
3899
+ if (!hasMouseoverPayloadChanged(updatedPayload, previousMouseoverPayloadRef.current)) {
3900
+ return;
3901
+ }
3902
+ lastPayloadRef.current = updatedPayload;
3903
+ lastOriginalEventRef.current = event;
3904
+ previousMouseoverPayloadRef.current = __spreadValues({}, updatedPayload);
3905
+ if (onPointMouseOver) {
3906
+ onPointMouseOver({
3907
+ type: "point.mouseover",
3908
+ originalEvent: event,
3909
+ payload: updatedPayload
3784
3910
  });
3785
- delete payload.seriesKey;
3786
- if (event.rowContext) {
3787
- Object.assign(
3788
- payload,
3789
- Object.keys(event.rowContext).reduce((acc, fieldName) => {
3790
- acc[`row.${fieldName}.value`] = event.rowContext[fieldName];
3791
- return acc;
3792
- }, {})
3793
- );
3794
- }
3795
- const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
3796
- if (!hasMouseoverPayloadChanged(updatedPayload, previousMouseoverPayloadRef.current)) {
3797
- return;
3798
- }
3799
- lastPayloadRef.current = updatedPayload;
3800
- lastOriginalEventRef.current = event;
3801
- previousMouseoverPayloadRef.current = __spreadValues({}, updatedPayload);
3802
- if (onPointMouseOver) {
3803
- onPointMouseOver({
3804
- type: "point.mouseover",
3805
- originalEvent: event,
3806
- payload: updatedPayload
3807
- });
3808
- }
3809
3911
  }
3810
3912
  },
3811
- [onPointMouseOver, onPointMouseOut, trellisKey, trellisSplitBy]
3913
+ [onPointMouseOver, onPointMouseOut, trellisKey, trellisSplitBy, handleCrosshairMouseout]
3812
3914
  );
3813
3915
  const dataKey = `${(_b = chartData.columns[0]) == null ? void 0 : _b[0]}-${(_c = chartData.columns[0]) == null ? void 0 : _c[chartData.columns[0].length - 1]}-${(_d = chartData.columns[0]) == null ? void 0 : _d.length}`;
3814
3916
  const memoizedChart = (0, react_exports.useMemo)(() => {
@@ -3863,7 +3965,8 @@ var TimeSeriesChartWrapper = (props) => {
3863
3965
  showXAxisLine,
3864
3966
  showYAxisLine,
3865
3967
  showY2AxisLine,
3866
- xAxisMaxLabelParts
3968
+ xAxisMaxLabelParts,
3969
+ areaOpacity: areaOpacityForCanvas
3867
3970
  }
3868
3971
  ));
3869
3972
  }, [
@@ -3915,7 +4018,8 @@ var TimeSeriesChartWrapper = (props) => {
3915
4018
  showYAxisLine,
3916
4019
  showY2AxisLine,
3917
4020
  legendMode,
3918
- xAxisMaxLabelParts
4021
+ xAxisMaxLabelParts,
4022
+ areaOpacityForCanvas
3919
4023
  ]);
3920
4024
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
3921
4025
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);
@@ -3943,6 +4047,37 @@ var TimeSeriesChartWrapper_default = TimeSeriesChartWrapper;
3943
4047
 
3944
4048
  // src/common/withDashboardViz.tsx
3945
4049
  var SanitizedTimeSeriesChartWrapper = (0, SanitizeProps_exports.withSanitizedProps)(TimeSeriesChartWrapper_default);
4050
+ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTrigger) => {
4051
+ const result = {};
4052
+ Object.keys(supportedEvents).forEach((eventName) => {
4053
+ const { parentKeys, payloadKeys } = supportedEvents[eventName];
4054
+ const eventCallbackPropName = (0, lodash_exports.camelCase)(`on.${eventName}`);
4055
+ let payload = {};
4056
+ if (Array.isArray(payloadKeys) && payloadKeys.length) {
4057
+ payloadKeys.forEach((p) => {
4058
+ payload[p] = evaluatedOptionsToUse[p];
4059
+ });
4060
+ }
4061
+ result[eventCallbackPropName] = (ev) => {
4062
+ if (ev == null ? void 0 : ev.payload) {
4063
+ payload = __spreadValues({}, ev.payload);
4064
+ }
4065
+ return onEventTrigger({
4066
+ originalEvent: ev,
4067
+ payload,
4068
+ type: eventName
4069
+ });
4070
+ };
4071
+ if (parentKeys) {
4072
+ for (let i = parentKeys.length - 1; i >= 0; i -= 1) {
4073
+ const newObject = {};
4074
+ newObject[parentKeys[i]] = result[eventCallbackPropName];
4075
+ result[eventCallbackPropName] = newObject;
4076
+ }
4077
+ }
4078
+ });
4079
+ return result;
4080
+ };
3946
4081
  var withDashboardViz = (opts) => {
3947
4082
  const {
3948
4083
  ReactViz,
@@ -4000,9 +4135,7 @@ var withDashboardViz = (opts) => {
4000
4135
  const isDownsamplingEnabledByFeatureFlag = Boolean(
4001
4136
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableDownsampling
4002
4137
  );
4003
- const isTrellisFeatureFlagOn2 = Boolean(
4004
- featureFlagContext && featureFlagContext.visualizations_enableTrellis
4005
- );
4138
+ const isTrellisFeatureFlagOn2 = Boolean(featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableTrellis);
4006
4139
  const isTrellisOn = isTrellisFeatureFlagOn2 && ((_a = vizConfig == null ? void 0 : vizConfig.supports) == null ? void 0 : _a.includes("trellis" /* TRELLIS */)) && (options == null ? void 0 : options.splitByLayout) === "trellis" /* TRELLIS */;
4007
4140
  const isAcceleratedRenderFeatureFlagOn = Boolean(
4008
4141
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
@@ -4167,38 +4300,12 @@ var withDashboardViz = (opts) => {
4167
4300
  }
4168
4301
  );
4169
4302
  }
4170
- const eventCallbackProps = {};
4171
- if (hasEventHandlers && mode === "view" && vizConfig.supports.indexOf("events" /* EVENTS */) > -1) {
4172
- const supportedEvents = vizConfig.events;
4173
- Object.keys(supportedEvents).forEach((eventName) => {
4174
- const { parentKeys, payloadKeys } = supportedEvents[eventName];
4175
- const eventCallbackPropName = (0, lodash_exports.camelCase)(`on.${eventName}`);
4176
- let payload = {};
4177
- if (Array.isArray(payloadKeys) && payloadKeys.length) {
4178
- payloadKeys.forEach((p) => {
4179
- payload[p] = evaluatedOptionsToUse[p];
4180
- });
4181
- }
4182
- eventCallbackProps[eventCallbackPropName] = (ev) => {
4183
- if (ev == null ? void 0 : ev.payload) {
4184
- payload = __spreadValues({}, ev.payload);
4185
- }
4186
- return onEventTrigger({
4187
- originalEvent: ev,
4188
- payload,
4189
- type: eventName
4190
- });
4191
- };
4192
- if (parentKeys) {
4193
- for (let i = parentKeys.length - 1; i >= 0; i -= 1) {
4194
- const newObject = {};
4195
- newObject[parentKeys[i]] = eventCallbackProps[eventCallbackPropName];
4196
- eventCallbackProps[eventCallbackPropName] = newObject;
4197
- }
4198
- }
4199
- });
4200
- }
4201
- const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), eventCallbackProps), {
4303
+ const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
4304
+ const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
4305
+ // Align option transformation with the actual renderer selected below.
4306
+ // This prevents canvas-only option preservation from leaking into Highcharts mode.
4307
+ isAcceleratedRenderOn
4308
+ }), eventCallbackProps), {
4202
4309
  themeFunc
4203
4310
  }));
4204
4311
  if (useAsyncEvaluatedOptions && Object.keys(evaluatedOptionsToUse).length === 0) {
@@ -4232,36 +4339,36 @@ var PresetPalettes_exports = {};
4232
4339
  __export(PresetPalettes_exports, {
4233
4340
  default: () => PresetPalettes_default
4234
4341
  });
4235
- var defaultImport36 = __toESM(require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
4342
+ var defaultImport37 = __toESM(require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
4236
4343
  __reExport(PresetPalettes_exports, require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
4237
- var PresetPalettes_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
4344
+ var PresetPalettes_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
4238
4345
 
4239
4346
  // esm-externals:@splunk/visualization-icons
4240
4347
  var visualization_icons_exports = {};
4241
4348
  __export(visualization_icons_exports, {
4242
4349
  default: () => visualization_icons_default
4243
4350
  });
4244
- var defaultImport37 = __toESM(require("@splunk/visualization-icons"));
4351
+ var defaultImport38 = __toESM(require("@splunk/visualization-icons"));
4245
4352
  __reExport(visualization_icons_exports, require("@splunk/visualization-icons"));
4246
- var visualization_icons_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
4353
+ var visualization_icons_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
4247
4354
 
4248
4355
  // esm-externals:@splunk/visualization-icons/placeholders
4249
4356
  var placeholders_exports = {};
4250
4357
  __export(placeholders_exports, {
4251
4358
  default: () => placeholders_default
4252
4359
  });
4253
- var defaultImport38 = __toESM(require("@splunk/visualization-icons/placeholders"));
4360
+ var defaultImport39 = __toESM(require("@splunk/visualization-icons/placeholders"));
4254
4361
  __reExport(placeholders_exports, require("@splunk/visualization-icons/placeholders"));
4255
- var placeholders_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
4362
+ var placeholders_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
4256
4363
 
4257
4364
  // esm-externals:@splunk/visualizations-shared/configUtils
4258
4365
  var configUtils_exports = {};
4259
4366
  __export(configUtils_exports, {
4260
4367
  default: () => configUtils_default
4261
4368
  });
4262
- var defaultImport39 = __toESM(require("@splunk/visualizations-shared/configUtils"));
4369
+ var defaultImport40 = __toESM(require("@splunk/visualizations-shared/configUtils"));
4263
4370
  __reExport(configUtils_exports, require("@splunk/visualizations-shared/configUtils"));
4264
- var configUtils_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
4371
+ var configUtils_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
4265
4372
 
4266
4373
  // src/common/editorConfig/StaticMajorAndTrendLayout.js
4267
4374
  var StaticMajorAndTrendLayout = [
@@ -4480,26 +4587,59 @@ var isTrellisEnabled = ({ options, featureFlags }) => {
4480
4587
  const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
4481
4588
  return isTrellisFeatureFlagOn({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
4482
4589
  };
4483
- var TrellisEditorConfig = [
4484
- [
4485
- {
4486
- label: (0, i18n_exports._)("Trellis layout"),
4487
- option: "splitByLayout",
4488
- editor: "editor.toggle",
4489
- showEditor: isTrellisFeatureFlagOn
4490
- }
4491
- ],
4492
- [
4493
- {
4494
- label: (0, i18n_exports._)("Split by"),
4495
- option: "trellisSplitBy",
4496
- editor: "editor.trellisSplitBy",
4497
- editorProps: {
4498
- dataSourceKey: "primary"
4499
- },
4500
- showEditor: isTrellisEnabled
4501
- }
4502
- ],
4590
+ var sortByValuesBase = [
4591
+ { label: (0, i18n_exports._)("Result"), value: "result" },
4592
+ { label: (0, i18n_exports._)("Name"), value: "name" }
4593
+ ];
4594
+ var sortByValuesWithValue = [...sortByValuesBase, { label: (0, i18n_exports._)("Value"), value: "value" }];
4595
+ var sortByValuesWithValueAndTrend = [
4596
+ ...sortByValuesBase,
4597
+ { label: (0, i18n_exports._)("Value"), value: "value" },
4598
+ { label: (0, i18n_exports._)("Trend"), value: "trend" }
4599
+ ];
4600
+ var makeSortRow = (sortByValues) => [
4601
+ {
4602
+ label: (0, i18n_exports._)("Sort by"),
4603
+ option: "trellisSortBy",
4604
+ editor: "editor.select",
4605
+ editorProps: {
4606
+ values: sortByValues
4607
+ },
4608
+ showEditor: isTrellisEnabled
4609
+ },
4610
+ {
4611
+ label: (0, i18n_exports._)("Sort order"),
4612
+ option: "trellisSortOrder",
4613
+ editor: "editor.select",
4614
+ editorProps: {
4615
+ values: [
4616
+ { label: (0, i18n_exports._)("Ascending"), value: "ascending" },
4617
+ { label: (0, i18n_exports._)("Descending"), value: "descending" }
4618
+ ]
4619
+ },
4620
+ showEditor: isTrellisEnabled
4621
+ }
4622
+ ];
4623
+ var trellisLayoutRow = [
4624
+ {
4625
+ label: (0, i18n_exports._)("Trellis layout"),
4626
+ option: "splitByLayout",
4627
+ editor: "editor.toggle",
4628
+ showEditor: isTrellisFeatureFlagOn
4629
+ }
4630
+ ];
4631
+ var trellisSplitByRow = [
4632
+ {
4633
+ label: (0, i18n_exports._)("Split by"),
4634
+ option: "trellisSplitBy",
4635
+ editor: "editor.trellisSplitBy",
4636
+ editorProps: {
4637
+ dataSourceKey: "primary"
4638
+ },
4639
+ showEditor: isTrellisEnabled
4640
+ }
4641
+ ];
4642
+ var trellisLayoutRows = [
4503
4643
  [
4504
4644
  {
4505
4645
  label: (0, i18n_exports._)("Number of columns"),
@@ -4543,6 +4683,24 @@ var TrellisEditorConfig = [
4543
4683
  }
4544
4684
  ]
4545
4685
  ];
4686
+ var TrellisEditorConfig = [
4687
+ trellisLayoutRow,
4688
+ trellisSplitByRow,
4689
+ makeSortRow(sortByValuesBase),
4690
+ ...trellisLayoutRows
4691
+ ];
4692
+ var GaugeTrellisEditorConfig = [
4693
+ trellisLayoutRow,
4694
+ trellisSplitByRow,
4695
+ makeSortRow(sortByValuesWithValue),
4696
+ ...trellisLayoutRows
4697
+ ];
4698
+ var SingleValueTrellisEditorConfig = [
4699
+ trellisLayoutRow,
4700
+ trellisSplitByRow,
4701
+ makeSortRow(sortByValuesWithValueAndTrend),
4702
+ ...trellisLayoutRows
4703
+ ];
4546
4704
  var TimechartTrellisEditorConfig = [
4547
4705
  [
4548
4706
  {
@@ -4550,7 +4708,6 @@ var TimechartTrellisEditorConfig = [
4550
4708
  option: "splitByLayout",
4551
4709
  editor: "editor.toggle",
4552
4710
  showEditor: isTrellisFeatureFlagOn,
4553
- // add help text for timecharts
4554
4711
  editorProps: {
4555
4712
  help: (0, i18n_exports._)(
4556
4713
  "Y2-axis and overlay field configurations are not supported when trellis is enabled."
@@ -4559,7 +4716,9 @@ var TimechartTrellisEditorConfig = [
4559
4716
  }
4560
4717
  }
4561
4718
  ],
4562
- ...TrellisEditorConfig.slice(1),
4719
+ trellisSplitByRow,
4720
+ makeSortRow(sortByValuesBase),
4721
+ ...trellisLayoutRows,
4563
4722
  [
4564
4723
  {
4565
4724
  label: (0, i18n_exports._)("Shared y-axis scale"),
@@ -4769,7 +4928,7 @@ var editorConfig = [
4769
4928
  editor: "editor.number"
4770
4929
  }
4771
4930
  ],
4772
- ...TrellisEditorConfig
4931
+ ...SingleValueTrellisEditorConfig
4773
4932
  ]
4774
4933
  },
4775
4934
  {
@@ -4784,7 +4943,7 @@ var editorConfig = [
4784
4943
  presets,
4785
4944
  value: ({ context, options }) => {
4786
4945
  const initialPreset = getInitialPreset(context, options, presets);
4787
- return initialPreset && initialPreset.label || null;
4946
+ return (initialPreset == null ? void 0 : initialPreset.label) || null;
4788
4947
  }
4789
4948
  }
4790
4949
  }
@@ -4897,29 +5056,76 @@ var Paginator_exports = {};
4897
5056
  __export(Paginator_exports, {
4898
5057
  default: () => Paginator_default
4899
5058
  });
4900
- var defaultImport40 = __toESM(require("@splunk/react-ui/Paginator"));
5059
+ var defaultImport41 = __toESM(require("@splunk/react-ui/Paginator"));
4901
5060
  __reExport(Paginator_exports, require("@splunk/react-ui/Paginator"));
4902
- var Paginator_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
5061
+ var Paginator_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
4903
5062
 
4904
5063
  // esm-externals:@splunk/themes
4905
5064
  var themes_exports = {};
4906
5065
  __export(themes_exports, {
4907
5066
  default: () => themes_default
4908
5067
  });
4909
- var defaultImport41 = __toESM(require("@splunk/themes"));
5068
+ var defaultImport42 = __toESM(require("@splunk/themes"));
4910
5069
  __reExport(themes_exports, require("@splunk/themes"));
4911
- var themes_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
5070
+ var themes_default = "default" in defaultImport42 ? defaultImport42.default : defaultImport42;
4912
5071
 
4913
5072
  // esm-externals:@splunk/themes/useSplunkTheme
4914
5073
  var useSplunkTheme_exports = {};
4915
5074
  __export(useSplunkTheme_exports, {
4916
5075
  default: () => useSplunkTheme_default
4917
5076
  });
4918
- var defaultImport42 = __toESM(require("@splunk/themes/useSplunkTheme"));
5077
+ var defaultImport43 = __toESM(require("@splunk/themes/useSplunkTheme"));
4919
5078
  __reExport(useSplunkTheme_exports, require("@splunk/themes/useSplunkTheme"));
4920
- var useSplunkTheme_default = "default" in defaultImport42 ? defaultImport42.default : defaultImport42;
5079
+ var useSplunkTheme_default = "default" in defaultImport43 ? defaultImport43.default : defaultImport43;
4921
5080
 
4922
5081
  // src/common/hocs/withTrellis.tsx
5082
+ var evaluatePanelOption = (panelDataSources, allOptions, optionKey, vizContext) => {
5083
+ try {
5084
+ const evaluated = Options_exports.Options.evaluate({ context: vizContext, options: allOptions }, panelDataSources);
5085
+ const num = Number(evaluated == null ? void 0 : evaluated[optionKey]);
5086
+ return Number.isNaN(num) ? Number.NaN : num;
5087
+ } catch (e) {
5088
+ return Number.NaN;
5089
+ }
5090
+ };
5091
+ var sortTrellisKeys = (keys, trellisSortBy, trellisSortOrder, modifiedDataSourceBySplitBy, mergedOptions, vizContext) => {
5092
+ if (trellisSortBy === "name") {
5093
+ keys.sort((a, b) => {
5094
+ const cmp = a.localeCompare(b, void 0, { numeric: true, sensitivity: "base" });
5095
+ return trellisSortOrder === "descending" ? -cmp : cmp;
5096
+ });
5097
+ } else if (trellisSortBy === "value" || trellisSortBy === "trend") {
5098
+ let optionKey;
5099
+ if (trellisSortBy === "trend") {
5100
+ optionKey = "trendValue";
5101
+ } else {
5102
+ optionKey = mergedOptions.value !== void 0 ? "value" : "majorValue";
5103
+ }
5104
+ keys.sort((a, b) => {
5105
+ const valA = evaluatePanelOption(
5106
+ modifiedDataSourceBySplitBy[a],
5107
+ mergedOptions,
5108
+ optionKey,
5109
+ vizContext
5110
+ );
5111
+ const valB = evaluatePanelOption(
5112
+ modifiedDataSourceBySplitBy[b],
5113
+ mergedOptions,
5114
+ optionKey,
5115
+ vizContext
5116
+ );
5117
+ const nanA = Number.isNaN(valA);
5118
+ const nanB = Number.isNaN(valB);
5119
+ if (nanA && nanB) return 0;
5120
+ if (nanA) return 1;
5121
+ if (nanB) return -1;
5122
+ const cmp = valA - valB;
5123
+ return trellisSortOrder === "descending" ? -cmp : cmp;
5124
+ });
5125
+ } else if (trellisSortOrder === "descending") {
5126
+ keys.reverse();
5127
+ }
5128
+ };
4923
5129
  var TrellisContainer = styled_components_default.div`
4924
5130
  overflow: hidden;
4925
5131
  display: flex;
@@ -4964,6 +5170,14 @@ var showErrorMessage = (errorCode, width, height) => {
4964
5170
  }
4965
5171
  return /* @__PURE__ */ react_exports.createElement(Message_default, { width, height, message: (0, i18n_exports._)("Error render in trellis"), level: "info" });
4966
5172
  };
5173
+ var resolveTrellisSplitBy = (trellisSplitBy, fields) => {
5174
+ var _a;
5175
+ if (trellisSplitBy && trellisSplitBy.length > 0) {
5176
+ return trellisSplitBy;
5177
+ }
5178
+ const splitByPossibleFields = (0, trellisUtils_exports.getAllPossibleSplitByFields)(fields);
5179
+ return ((_a = splitByPossibleFields.fields) == null ? void 0 : _a.length) ? splitByPossibleFields.fields[0] : AGGREGATIONS;
5180
+ };
4967
5181
  var withTrellis = (Viz) => {
4968
5182
  const VizWithTrellis = (opts) => {
4969
5183
  const cachedHandleResize = react_exports.useCallback((w, h) => {
@@ -4972,7 +5186,7 @@ var withTrellis = (Viz) => {
4972
5186
  }, []);
4973
5187
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(opts.width));
4974
5188
  const [containerHeight, setContainerHeight] = react_exports.useState(Number(opts.height));
4975
- const _a = opts, { options = {}, height, width } = _a, otherProps = __objRest(_a, ["options", "height", "width"]);
5189
+ const _a = opts, { options = {}, context = {}, height, width } = _a, otherProps = __objRest(_a, ["options", "context", "height", "width"]);
4976
5190
  const defaultOptions = (0, JSONSchemaUtils_exports.pickFieldFromJSONSchema)(Viz.config.optionsSchema, "default");
4977
5191
  const mergedOptions = (0, hocUtils_exports.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions);
4978
5192
  const {
@@ -4982,6 +5196,8 @@ var withTrellis = (Viz) => {
4982
5196
  trellisRowHeight,
4983
5197
  splitByLayout,
4984
5198
  trellisSplitBy,
5199
+ trellisSortBy,
5200
+ trellisSortOrder,
4985
5201
  trellisSharedScale,
4986
5202
  stackMode,
4987
5203
  yAxisMin,
@@ -5050,7 +5266,7 @@ var withTrellis = (Viz) => {
5050
5266
  }, [pageCount, trellisSplitBy]);
5051
5267
  (0, react_exports.useEffect)(() => {
5052
5268
  updateDataDisplay(pageNum);
5053
- }, [columns, fields, trellisSplitBy, pageNum, splitByLayout]);
5269
+ }, [columns, fields, trellisSplitBy, trellisSortBy, trellisSortOrder, pageNum, splitByLayout]);
5054
5270
  const handlePageChange = (0, react_exports.useCallback)(
5055
5271
  (event, { page }) => {
5056
5272
  setPageNum(page);
@@ -5058,9 +5274,7 @@ var withTrellis = (Viz) => {
5058
5274
  [pageNum, pagedData]
5059
5275
  );
5060
5276
  const featureFlagContext = react_exports.useContext(FeatureFlagContext_default);
5061
- const isTrellisFeatureFlagOn2 = Boolean(
5062
- featureFlagContext && featureFlagContext.visualizations_enableTrellis
5063
- );
5277
+ const isTrellisFeatureFlagOn2 = Boolean(featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableTrellis);
5064
5278
  if (!isTrellisFeatureFlagOn2 || !splitByLayout || splitByLayout !== visualization_schemas_exports.LAYOUT_TYPE.Trellis) {
5065
5279
  return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({}, opts));
5066
5280
  }
@@ -5068,14 +5282,9 @@ var withTrellis = (Viz) => {
5068
5282
  if (noColumns || noFields) {
5069
5283
  return /* @__PURE__ */ react_exports.createElement(Message_default, { width, height, message: (0, i18n_exports._)("Loading"), level: "info" });
5070
5284
  }
5071
- let currTrellisSplitBy = trellisSplitBy;
5072
- if (!trellisSplitBy || trellisSplitBy.length === 0) {
5073
- const splitByPossibleFields = (0, trellisUtils_exports.getAllPossibleSplitByFields)(fields);
5074
- currTrellisSplitBy = splitByPossibleFields.fields && splitByPossibleFields.fields.length ? splitByPossibleFields.fields[0] : AGGREGATIONS;
5075
- }
5076
- const splitMode = (0, trellisUtils_exports.getTrellisDataSplitterMode)(fields);
5285
+ const currTrellisSplitBy = resolveTrellisSplitBy(trellisSplitBy, fields);
5077
5286
  const dataSplitResult = getTrellisDataSourcesBySplitMode(
5078
- splitMode,
5287
+ (0, trellisUtils_exports.getTrellisDataSplitterMode)(fields),
5079
5288
  dataSources,
5080
5289
  currTrellisSplitBy
5081
5290
  );
@@ -5084,12 +5293,19 @@ var withTrellis = (Viz) => {
5084
5293
  if (!modifiedDataSourceBySplitBy || Object.keys(modifiedDataSourceBySplitBy).length === 0 || dataSplitErrorCode) {
5085
5294
  return showErrorMessage(dataSplitErrorCode, width, height);
5086
5295
  }
5087
- const splitByKeysModified = modifiedDataSourceBySplitBy ? Object.keys(modifiedDataSourceBySplitBy) : [];
5088
- if (splitByKeysModified) {
5089
- showPaginator = splitByKeysModified.length > pageCount;
5090
- splitByKeys = splitByKeysModified;
5091
- totalPages = splitByKeysModified ? Math.ceil(splitByKeysModified.length / pageCount) : 0;
5092
- }
5296
+ const splitByKeysModified = Object.keys(modifiedDataSourceBySplitBy);
5297
+ const vizContext = (0, lodash_exports.defaultsDeep)({}, context, Viz.config.defaultContext);
5298
+ sortTrellisKeys(
5299
+ splitByKeysModified,
5300
+ trellisSortBy,
5301
+ trellisSortOrder,
5302
+ modifiedDataSourceBySplitBy,
5303
+ mergedOptions,
5304
+ vizContext
5305
+ );
5306
+ showPaginator = splitByKeysModified.length > pageCount;
5307
+ splitByKeys = splitByKeysModified;
5308
+ totalPages = Math.ceil(splitByKeysModified.length / pageCount);
5093
5309
  const [calculatedMin, calculatedMax] = determineMinMax(
5094
5310
  modifiedDataSourceBySplitBy,
5095
5311
  trellisSharedScale,
@@ -5123,6 +5339,7 @@ var withTrellis = (Viz) => {
5123
5339
  /* @__PURE__ */ react_exports.createElement(
5124
5340
  Viz,
5125
5341
  __spreadProps(__spreadValues({}, otherProps), {
5342
+ context,
5126
5343
  trellisKey: splitByKey,
5127
5344
  trellisSplitBy: currTrellisSplitBy,
5128
5345
  dataSources: modifiedDataSourceBySplitBy[splitByKey],