@splunk/visualizations 28.5.2 → 28.6.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 (359) 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 -8
  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/config.d.ts.map +1 -1
  37. package/Events.config.js +13 -3
  38. package/Events.config.js.map +2 -2
  39. package/Events.js +330 -194
  40. package/Events.js.map +4 -4
  41. package/FillerGauge/FillerGauge.d.ts.map +1 -1
  42. package/FillerGauge/config.d.ts.map +1 -1
  43. package/FillerGauge.config.js +76 -24
  44. package/FillerGauge.config.js.map +2 -2
  45. package/FillerGauge.js +512 -271
  46. package/FillerGauge.js.map +4 -4
  47. package/Image/config.d.ts.map +1 -1
  48. package/Image.config.js +7 -0
  49. package/Image.config.js.map +2 -2
  50. package/Image.js +282 -149
  51. package/Image.js.map +4 -4
  52. package/LICENSE +13 -0
  53. package/Line/Line.d.ts.map +1 -1
  54. package/Line/config.d.ts.map +1 -1
  55. package/Line/lineUtils.d.ts.map +1 -1
  56. package/Line/mockdata/LineData.d.ts +21 -0
  57. package/Line/mockdata/LineData.d.ts.map +1 -1
  58. package/Line.config.js +86 -25
  59. package/Line.config.js.map +3 -3
  60. package/Line.js +638 -382
  61. package/Line.js.map +4 -4
  62. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts +47 -73
  63. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts.map +1 -1
  64. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts +11 -2
  65. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -1
  66. package/LinkGraph/PureLinkGraph/components/Graph.d.ts +5 -5
  67. package/LinkGraph/PureLinkGraph/components/Node.d.ts +2 -2
  68. package/LinkGraph/PureLinkGraph/components/Nodes.d.ts +2 -2
  69. package/LinkGraph.js +886 -759
  70. package/LinkGraph.js.map +4 -4
  71. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  72. package/Map/PureMap/Tooltip.d.ts.map +1 -1
  73. package/Map/config.d.ts.map +1 -1
  74. package/Map.config.js +4 -1
  75. package/Map.config.js.map +2 -2
  76. package/Map.js +296 -169
  77. package/Map.js.map +4 -4
  78. package/Markdown/Markdown.d.ts.map +1 -1
  79. package/Markdown.config.js.map +1 -1
  80. package/Markdown.js +283 -157
  81. package/Markdown.js.map +4 -4
  82. package/MarkerGauge/MarkerGauge.d.ts +1 -47
  83. package/MarkerGauge/MarkerGauge.d.ts.map +1 -1
  84. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts +22 -68
  85. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts.map +1 -1
  86. package/MarkerGauge/config.d.ts.map +1 -1
  87. package/MarkerGauge.config.js +75 -23
  88. package/MarkerGauge.config.js.map +2 -2
  89. package/MarkerGauge.js +560 -375
  90. package/MarkerGauge.js.map +4 -4
  91. package/NetworkGraph/NetworkGraph.d.ts +2 -1
  92. package/NetworkGraph/NetworkGraph.d.ts.map +1 -1
  93. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -1
  94. package/NetworkGraph.config.js.map +2 -2
  95. package/NetworkGraph.js +628 -434
  96. package/NetworkGraph.js.map +4 -4
  97. package/ParallelCoordinates.config.js.map +1 -1
  98. package/ParallelCoordinates.js +288 -172
  99. package/ParallelCoordinates.js.map +4 -4
  100. package/Pie/Pie.d.ts.map +1 -1
  101. package/Pie/pieUtils.d.ts +2 -2
  102. package/Pie.config.js +74 -22
  103. package/Pie.config.js.map +2 -2
  104. package/Pie.js +522 -296
  105. package/Pie.js.map +4 -4
  106. package/ProcessTree/ProcessTree.d.ts +21 -0
  107. package/ProcessTree/ProcessTree.d.ts.map +1 -0
  108. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts +32 -0
  109. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts.map +1 -0
  110. package/ProcessTree/PureProcessTree/components/DirectionalBytes.d.ts +8 -0
  111. package/ProcessTree/PureProcessTree/components/DirectionalBytes.d.ts.map +1 -0
  112. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts +44 -0
  113. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts.map +1 -0
  114. package/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.d.ts +20 -0
  115. package/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.d.ts.map +1 -0
  116. package/ProcessTree/PureProcessTree/hooks/useProcessTreeExpansionState.d.ts +20 -0
  117. package/ProcessTree/PureProcessTree/hooks/useProcessTreeExpansionState.d.ts.map +1 -0
  118. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts +44 -0
  119. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts.map +1 -0
  120. package/ProcessTree/PureProcessTree/hooks/useProcessTreeLinkOverlay.d.ts +23 -0
  121. package/ProcessTree/PureProcessTree/hooks/useProcessTreeLinkOverlay.d.ts.map +1 -0
  122. package/ProcessTree/PureProcessTree/mockdata/data.d.ts +235 -0
  123. package/ProcessTree/PureProcessTree/mockdata/data.d.ts.map +1 -0
  124. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts +9 -0
  125. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts.map +1 -0
  126. package/ProcessTree/PureProcessTree/utils/processTreeLinkOverlayUtils.d.ts +36 -0
  127. package/ProcessTree/PureProcessTree/utils/processTreeLinkOverlayUtils.d.ts.map +1 -0
  128. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts +80 -0
  129. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts.map +1 -0
  130. package/ProcessTree/config.d.ts +4 -0
  131. package/ProcessTree/config.d.ts.map +1 -0
  132. package/ProcessTree/index.d.ts +3 -0
  133. package/ProcessTree/index.d.ts.map +1 -0
  134. package/ProcessTree.config.js +192 -0
  135. package/ProcessTree.config.js.map +7 -0
  136. package/ProcessTree.js +5058 -0
  137. package/ProcessTree.js.map +7 -0
  138. package/Punchcard/Punchcard.d.ts +1 -5
  139. package/Punchcard/Punchcard.d.ts.map +1 -1
  140. package/Punchcard/PurePunchcard/Punchcard.d.ts +28 -32
  141. package/Punchcard/PurePunchcard/Punchcard.d.ts.map +1 -1
  142. package/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts +7 -12
  143. package/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts.map +1 -1
  144. package/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts +14 -19
  145. package/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts.map +1 -1
  146. package/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts +22 -27
  147. package/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts.map +1 -1
  148. package/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts +3 -8
  149. package/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts.map +1 -1
  150. package/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts +9 -14
  151. package/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts.map +1 -1
  152. package/Punchcard/PurePunchcard/src/PunchcardRow.d.ts.map +1 -1
  153. package/Punchcard.config.js.map +1 -1
  154. package/Punchcard.js +444 -631
  155. package/Punchcard.js.map +4 -4
  156. package/Rectangle.config.js +1 -1
  157. package/Rectangle.config.js.map +2 -2
  158. package/Rectangle.js +289 -173
  159. package/Rectangle.js.map +4 -4
  160. package/RichText/PureRichText/Editor/EditorPanel.d.ts +20 -0
  161. package/RichText/PureRichText/Editor/EditorPanel.d.ts.map +1 -0
  162. package/RichText/PureRichText/Editor/EditorPanelStyles.d.ts +17 -0
  163. package/RichText/PureRichText/Editor/EditorPanelStyles.d.ts.map +1 -0
  164. package/RichText/PureRichText/Editor/FontSelector.d.ts +15 -0
  165. package/RichText/PureRichText/Editor/FontSelector.d.ts.map +1 -0
  166. package/RichText/PureRichText/Editor/FormatButton.d.ts +23 -0
  167. package/RichText/PureRichText/Editor/FormatButton.d.ts.map +1 -0
  168. package/RichText/PureRichText/Editor/editorPanelUtils.d.ts +19 -0
  169. package/RichText/PureRichText/Editor/editorPanelUtils.d.ts.map +1 -0
  170. package/RichText/PureRichText/Editor/hooks/useLineSpacing.d.ts +11 -0
  171. package/RichText/PureRichText/Editor/hooks/useLineSpacing.d.ts.map +1 -0
  172. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts +26 -0
  173. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts.map +1 -0
  174. package/RichText/PureRichText/Editor/index.d.ts +9 -0
  175. package/RichText/PureRichText/Editor/index.d.ts.map +1 -0
  176. package/RichText/PureRichText/InnerEditor.d.ts +41 -0
  177. package/RichText/PureRichText/InnerEditor.d.ts.map +1 -0
  178. package/RichText/PureRichText/PureRichText.d.ts +19 -0
  179. package/RichText/PureRichText/PureRichText.d.ts.map +1 -0
  180. package/RichText/PureRichText/PureRichTextContext.d.ts +64 -0
  181. package/RichText/PureRichText/PureRichTextContext.d.ts.map +1 -0
  182. package/RichText/PureRichText/RichTextStyles.d.ts +25 -0
  183. package/RichText/PureRichText/RichTextStyles.d.ts.map +1 -0
  184. package/RichText/PureRichText/activeInstance.d.ts +23 -0
  185. package/RichText/PureRichText/activeInstance.d.ts.map +1 -0
  186. package/RichText/PureRichText/config.d.ts +17 -0
  187. package/RichText/PureRichText/config.d.ts.map +1 -0
  188. package/RichText/PureRichText/hooks/index.d.ts +12 -0
  189. package/RichText/PureRichText/hooks/index.d.ts.map +1 -0
  190. package/RichText/PureRichText/hooks/useContentSave.d.ts +25 -0
  191. package/RichText/PureRichText/hooks/useContentSave.d.ts.map +1 -0
  192. package/RichText/PureRichText/hooks/useContentSync.d.ts +28 -0
  193. package/RichText/PureRichText/hooks/useContentSync.d.ts.map +1 -0
  194. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts +33 -0
  195. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts.map +1 -0
  196. package/RichText/PureRichText/hooks/useEditModeEffect.d.ts +10 -0
  197. package/RichText/PureRichText/hooks/useEditModeEffect.d.ts.map +1 -0
  198. package/RichText/PureRichText/hooks/useEditorSetup.d.ts +36 -0
  199. package/RichText/PureRichText/hooks/useEditorSetup.d.ts.map +1 -0
  200. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts +33 -0
  201. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts.map +1 -0
  202. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts +35 -0
  203. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts.map +1 -0
  204. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts +18 -0
  205. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  206. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts +24 -0
  207. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts.map +1 -0
  208. package/RichText/PureRichText/hooks/useRichTextState.d.ts +38 -0
  209. package/RichText/PureRichText/hooks/useRichTextState.d.ts.map +1 -0
  210. package/RichText/PureRichText/hooks/useStepFontSize.d.ts +17 -0
  211. package/RichText/PureRichText/hooks/useStepFontSize.d.ts.map +1 -0
  212. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts +18 -0
  213. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts.map +1 -0
  214. package/RichText/PureRichText/hooks/useTokenMap.d.ts +45 -0
  215. package/RichText/PureRichText/hooks/useTokenMap.d.ts.map +1 -0
  216. package/RichText/PureRichText/index.d.ts +16 -0
  217. package/RichText/PureRichText/index.d.ts.map +1 -0
  218. package/RichText/PureRichText/renderers/ElementRenderer.d.ts +8 -0
  219. package/RichText/PureRichText/renderers/ElementRenderer.d.ts.map +1 -0
  220. package/RichText/PureRichText/renderers/LeafRenderer.d.ts +8 -0
  221. package/RichText/PureRichText/renderers/LeafRenderer.d.ts.map +1 -0
  222. package/RichText/PureRichText/types.d.ts +111 -0
  223. package/RichText/PureRichText/types.d.ts.map +1 -0
  224. package/RichText/PureRichText/utils/a11yUtils.d.ts +9 -0
  225. package/RichText/PureRichText/utils/a11yUtils.d.ts.map +1 -0
  226. package/RichText/PureRichText/utils/fontSize.d.ts +6 -0
  227. package/RichText/PureRichText/utils/fontSize.d.ts.map +1 -0
  228. package/RichText/PureRichText/utils/slateUtils.d.ts +99 -0
  229. package/RichText/PureRichText/utils/slateUtils.d.ts.map +1 -0
  230. package/RichText/RichText.d.ts +17 -0
  231. package/RichText/RichText.d.ts.map +1 -0
  232. package/RichText/config.d.ts +4 -0
  233. package/RichText/config.d.ts.map +1 -0
  234. package/RichText/index.d.ts +7 -0
  235. package/RichText/index.d.ts.map +1 -0
  236. package/RichText.config.js +268 -0
  237. package/RichText.config.js.map +7 -0
  238. package/RichText.js +7674 -0
  239. package/RichText.js.map +7 -0
  240. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  241. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  242. package/Sankey/PureSankey/SankeyNode.d.ts +10 -3
  243. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  244. package/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -1
  245. package/Sankey/PureSankey/SankeyUtils.d.ts +10 -0
  246. package/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -1
  247. package/Sankey.config.js.map +1 -1
  248. package/Sankey.js +562 -290
  249. package/Sankey.js.map +4 -4
  250. package/Scatter/Scatter.d.ts.map +1 -1
  251. package/Scatter.config.js +81 -24
  252. package/Scatter.config.js.map +3 -3
  253. package/Scatter.js +528 -297
  254. package/Scatter.js.map +4 -4
  255. package/SingleValue/SingleValue.d.ts.map +1 -1
  256. package/SingleValue/config.d.ts.map +1 -1
  257. package/SingleValue.config.js +76 -24
  258. package/SingleValue.config.js.map +2 -2
  259. package/SingleValue.js +534 -314
  260. package/SingleValue.js.map +4 -4
  261. package/SingleValueBasic.js.map +1 -1
  262. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -1
  263. package/SingleValueIcon/config.d.ts.map +1 -1
  264. package/SingleValueIcon.config.js +76 -24
  265. package/SingleValueIcon.config.js.map +2 -2
  266. package/SingleValueIcon.js +512 -287
  267. package/SingleValueIcon.js.map +4 -4
  268. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts +0 -8
  269. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts.map +1 -1
  270. package/SingleValueRadial/SingleValueRadial.d.ts.map +1 -1
  271. package/SingleValueRadial/config.d.ts.map +1 -1
  272. package/SingleValueRadial.config.js +76 -24
  273. package/SingleValueRadial.config.js.map +2 -2
  274. package/SingleValueRadial.js +543 -326
  275. package/SingleValueRadial.js.map +4 -4
  276. package/TRELLIS.md +48 -0
  277. package/Table/PureTable.d.ts +1 -0
  278. package/Table/PureTable.d.ts.map +1 -1
  279. package/Table/Table.d.ts.map +1 -1
  280. package/Table/cells/ArrayCell.d.ts.map +1 -1
  281. package/Table/config.d.ts.map +1 -1
  282. package/Table/hooks.d.ts.map +1 -1
  283. package/Table/tableUtils.d.ts +14 -0
  284. package/Table/tableUtils.d.ts.map +1 -0
  285. package/Table.config.js +4 -10
  286. package/Table.config.js.map +2 -2
  287. package/Table.js +769 -355
  288. package/Table.js.map +4 -4
  289. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -1
  290. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +5 -0
  291. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -1
  292. package/Timeline/Timeline.d.ts +2 -0
  293. package/Timeline/Timeline.d.ts.map +1 -1
  294. package/Timeline/config.d.ts.map +1 -1
  295. package/Timeline/mockdata/timelineDataSource.d.ts +34 -0
  296. package/Timeline/mockdata/timelineDataSource.d.ts.map +1 -1
  297. package/Timeline.config.js +15 -0
  298. package/Timeline.config.js.map +2 -2
  299. package/Timeline.js +348 -186
  300. package/Timeline.js.map +4 -4
  301. package/common/Charting.d.ts.map +1 -1
  302. package/common/Charting.js +50 -28
  303. package/common/Charting.js.map +2 -2
  304. package/common/ChartingApi.d.ts +1 -1
  305. package/common/ChartingApi.d.ts.map +1 -1
  306. package/common/ChartingApi.js.map +2 -2
  307. package/common/DocExampleWithVizSandbox.js.map +1 -1
  308. package/common/OptionsDoc.js.map +1 -1
  309. package/common/OverviewDoc.js.map +1 -1
  310. package/common/SplunkVisualization.d.ts +1 -1
  311. package/common/SplunkVisualization.d.ts.map +1 -1
  312. package/common/SplunkVisualization.js +6 -4
  313. package/common/SplunkVisualization.js.map +2 -2
  314. package/common/StyledSkipLink.d.ts +2 -0
  315. package/common/StyledSkipLink.d.ts.map +1 -0
  316. package/common/StyledSkipLink.js +81 -0
  317. package/common/StyledSkipLink.js.map +7 -0
  318. package/common/TimeSeriesChartWrapper.d.ts.map +1 -1
  319. package/common/TimeSeriesChartWrapper.js +228 -107
  320. package/common/TimeSeriesChartWrapper.js.map +4 -4
  321. package/common/chartingUtils.d.ts +32 -6
  322. package/common/chartingUtils.d.ts.map +1 -1
  323. package/common/chartingUtils.js +166 -39
  324. package/common/chartingUtils.js.map +4 -4
  325. package/common/components/TrellisTitle.d.ts.map +1 -1
  326. package/common/docUtils.js +1 -1
  327. package/common/docUtils.js.map +2 -2
  328. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  329. package/common/editorConfig/AxesChartYGridAndLabels.d.ts.map +1 -1
  330. package/common/editorConfig/BackgroundColor.d.ts +2 -2
  331. package/common/editorConfig/TrellisEditors.d.ts +33 -5
  332. package/common/editorConfig/TrellisEditors.d.ts.map +1 -1
  333. package/common/hocs/mockdata/trellisData.d.ts +54 -0
  334. package/common/hocs/mockdata/trellisData.d.ts.map +1 -1
  335. package/common/hocs/withTrellis.d.ts +9 -0
  336. package/common/hocs/withTrellis.d.ts.map +1 -1
  337. package/common/hooks/useSorting.d.ts +2 -2
  338. package/common/hooks/useSorting.d.ts.map +1 -1
  339. package/common/shapeUtils.d.ts +1 -1
  340. package/common/shapeUtils.d.ts.map +1 -1
  341. package/common/shapeUtils.js.map +2 -2
  342. package/common/utils/dataUtils.js +2 -1
  343. package/common/utils/dataUtils.js.map +2 -2
  344. package/common/utils/focusUtils.d.ts +4 -0
  345. package/common/utils/focusUtils.d.ts.map +1 -0
  346. package/common/utils/focusUtils.js +101 -0
  347. package/common/utils/focusUtils.js.map +7 -0
  348. package/common/utils/mapUtils.js +2 -6
  349. package/common/utils/mapUtils.js.map +2 -2
  350. package/common/utils/singleValueUtils.js +14 -26
  351. package/common/utils/singleValueUtils.js.map +2 -2
  352. package/common/utils/trellisUtils.d.ts.map +1 -1
  353. package/common/utils/trellisUtils.js +76 -70
  354. package/common/utils/trellisUtils.js.map +2 -2
  355. package/common/withDashboardViz.d.ts.map +1 -1
  356. package/common/withDashboardViz.js +276 -151
  357. package/common/withDashboardViz.js.map +4 -4
  358. package/package.json +32 -27
  359. package/LICENSE.md +0 -449
package/Timeline.js CHANGED
@@ -12,6 +12,7 @@ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
12
  var __getProtoOf = Object.getPrototypeOf;
13
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
14
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
15
+ var __pow = Math.pow;
15
16
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16
17
  var __spreadValues = (a, b) => {
17
18
  for (var prop in b || (b = {}))
@@ -59,6 +60,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
59
60
  mod
60
61
  ));
61
62
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
63
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
62
64
 
63
65
  // src/Timeline/index.ts
64
66
  var Timeline_exports = {};
@@ -284,6 +286,21 @@ var editorConfig = [
284
286
  }
285
287
  }
286
288
  ],
289
+ [
290
+ {
291
+ label: (0, i18n_exports._)("Duration unit"),
292
+ option: "durationUnit",
293
+ editor: "editor.select",
294
+ editorProps: {
295
+ values: [
296
+ { label: (0, i18n_exports._)("Milliseconds"), value: "milliseconds" },
297
+ { label: (0, i18n_exports._)("Seconds"), value: "seconds" },
298
+ { label: (0, i18n_exports._)("Minutes"), value: "minutes" },
299
+ { label: (0, i18n_exports._)("Hours"), value: "hours" }
300
+ ]
301
+ }
302
+ }
303
+ ],
287
304
  [
288
305
  {
289
306
  label: (0, i18n_exports._)("Category"),
@@ -599,7 +616,7 @@ var DefaultVizActionHandler = class {
599
616
  var INITIAL_HEIGHT = 250;
600
617
  var SplunkVisualization = class {
601
618
  };
602
- SplunkVisualization.propTypes = {
619
+ __publicField(SplunkVisualization, "propTypes", {
603
620
  /**
604
621
  * display mode
605
622
  */
@@ -675,11 +692,11 @@ SplunkVisualization.propTypes = {
675
692
  * A callback to request new data with updated request params
676
693
  */
677
694
  onRequestParamsChange: prop_types_exports.func
678
- };
695
+ });
679
696
  /**
680
697
  *
681
698
  */
682
- SplunkVisualization.defaults = {
699
+ __publicField(SplunkVisualization, "defaults", {
683
700
  // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height
684
701
  width: "100%",
685
702
  height: INITIAL_HEIGHT,
@@ -694,7 +711,7 @@ SplunkVisualization.defaults = {
694
711
  onComputedProps: () => ({}),
695
712
  loading: false,
696
713
  onRequestParamsChange: lodash_exports.noop
697
- };
714
+ });
698
715
  var SplunkVisualization_default = SplunkVisualization;
699
716
 
700
717
  // src/common/interfaces/DataSource.ts
@@ -748,9 +765,9 @@ var usePaginationParams = ({
748
765
  meta,
749
766
  onRequestParamsChange
750
767
  }) => {
751
- const totalCount = meta && meta.totalCount || 0;
752
- const offset = requestParams && requestParams.offset || 0;
753
- const count = requestParams && requestParams.count;
768
+ const totalCount = (meta == null ? void 0 : meta.totalCount) || 0;
769
+ const offset = (requestParams == null ? void 0 : requestParams.offset) || 0;
770
+ const count = requestParams == null ? void 0 : requestParams.count;
754
771
  const totalPages = typeof count === "number" && count > 0 ? Math.ceil(totalCount / count) : 0;
755
772
  const current = typeof count === "number" && count > 0 ? Math.floor(offset / count) + 1 : 0;
756
773
  const isPaging = totalPages > 1 && typeof onRequestParamsChange === "function";
@@ -858,7 +875,7 @@ var Cover = styled_components_default.div`
858
875
  bottom: 0;
859
876
  `;
860
877
  var Blocker = styled_components_default.div.attrs({
861
- "data-splunk-visualization-version": "28.5.2 - fd77ce608"
878
+ "data-splunk-visualization-version": "28.6.0 - 92427899a"
862
879
  })`
863
880
  position: relative;
864
881
  width: 100%;
@@ -939,7 +956,7 @@ var withFixedSizeContainer = (Viz) => {
939
956
  FixSizeItem,
940
957
  {
941
958
  "data-test": "fix-size-item",
942
- "data-splunk-visualization-version": "28.5.2 - fd77ce608",
959
+ "data-splunk-visualization-version": "28.6.0 - 92427899a",
943
960
  width,
944
961
  height,
945
962
  backgroundColor
@@ -1480,6 +1497,24 @@ var defaultImport33 = __toESM(require("@splunk/react-icons/Triangle"));
1480
1497
  __reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
1481
1498
  var Triangle_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
1482
1499
 
1500
+ // esm-externals:@splunk/visualizations-shared/propUtils
1501
+ var propUtils_exports = {};
1502
+ __export(propUtils_exports, {
1503
+ default: () => propUtils_default
1504
+ });
1505
+ var defaultImport34 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1506
+ __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
1507
+ var propUtils_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
1508
+
1509
+ // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
1510
+ var simpleXMLOptions_exports = {};
1511
+ __export(simpleXMLOptions_exports, {
1512
+ default: () => simpleXMLOptions_default
1513
+ });
1514
+ var defaultImport35 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1515
+ __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
1516
+ var simpleXMLOptions_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
1517
+
1483
1518
  // src/common/chartingUtils.ts
1484
1519
  var DEFAULT_LINE_WIDTH = 2;
1485
1520
  var getAnnotationsForCanvas = ({
@@ -1517,9 +1552,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
1517
1552
  const xAxisIsTime = xField === "_time";
1518
1553
  return !!rangeSelectEventHandler && xAxisIsTime;
1519
1554
  };
1520
- var canvasSupportedTimeSeriesCharts = ["splunk.line"];
1555
+ var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
1521
1556
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
1522
- return canvasSupportedTimeSeriesCharts.indexOf(vizConfigKey) > -1;
1557
+ return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
1523
1558
  };
1524
1559
  var filterChartDataFromInternalFields = (chartData) => {
1525
1560
  const { fields, columns } = chartData;
@@ -1674,46 +1709,66 @@ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInt
1674
1709
  }
1675
1710
  return y2Config;
1676
1711
  };
1677
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
1712
+ var getSeriesType = (isOverlay, isAreaChart, isStacked) => {
1713
+ if (isOverlay) return "line";
1714
+ if (!isAreaChart) return void 0;
1715
+ return isStacked ? "stacked-area" : "area";
1716
+ };
1717
+ var getY2Scale = (field, y2fields, overlayFields) => {
1718
+ 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));
1719
+ return assignToY2 ? "y2" : "y";
1720
+ };
1721
+ var getSeriesOverrides = (opts) => {
1722
+ var _a;
1723
+ const {
1724
+ yfields,
1725
+ y2fields,
1726
+ lineWidth,
1727
+ overlayFields,
1728
+ y2Enabled,
1729
+ nullValueMode,
1730
+ markerDisplay,
1731
+ lineDashStyle,
1732
+ lineDashStylesByField,
1733
+ stepPosition,
1734
+ stepPositionsByField,
1735
+ type,
1736
+ stackMode,
1737
+ showLines
1738
+ } = opts;
1678
1739
  const seriesConfig = {};
1679
1740
  let spanGaps;
1680
- let replaceNullsWithZero;
1681
1741
  if (nullValueMode === "gaps") {
1682
1742
  spanGaps = false;
1683
- } else if (nullValueMode === "connect" || nullValueMode === "zero") {
1743
+ } else if (nullValueMode != null) {
1684
1744
  spanGaps = true;
1685
- if (nullValueMode === "zero") {
1686
- replaceNullsWithZero = true;
1687
- }
1745
+ } else {
1746
+ spanGaps = void 0;
1688
1747
  }
1689
- yfields.forEach((field) => {
1748
+ const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
1749
+ const isAreaChart = type === "area";
1750
+ const isStacked = isAreaChart && (stackMode === "stacked" || stackMode === "stacked100");
1751
+ const areaFields = isAreaChart ? yfields.filter((f) => !(overlayFields == null ? void 0 : overlayFields.includes(f))) : yfields;
1752
+ const overlayFieldsInOrder = (_a = overlayFields == null ? void 0 : overlayFields.filter((f) => yfields.includes(f))) != null ? _a : [];
1753
+ const orderedFields = isAreaChart ? [...areaFields, ...overlayFieldsInOrder] : yfields;
1754
+ orderedFields.forEach((field) => {
1755
+ var _a2;
1756
+ const isOverlay = (_a2 = overlayFields == null ? void 0 : overlayFields.includes(field)) != null ? _a2 : false;
1757
+ const isPercent = isAreaChart && stackMode === "stacked100" && !isOverlay;
1758
+ const shouldHideAreaOutline = isAreaChart && showLines === false && !isOverlay;
1690
1759
  seriesConfig[field] = {
1691
- overrides: { width: lineWidth != null ? lineWidth : DEFAULT_LINE_WIDTH }
1760
+ overrides: __spreadValues({
1761
+ width: shouldHideAreaOutline ? 0 : lineWidth != null ? lineWidth : DEFAULT_LINE_WIDTH
1762
+ }, isPercent ? { stacking: { mode: "percent", group: "A" } } : {})
1692
1763
  };
1693
- if (spanGaps !== void 0) {
1694
- seriesConfig[field].overrides.spanGaps = spanGaps;
1695
- }
1696
- if (y2Enabled) {
1697
- const shouldAssignToY2 = (
1698
- // If y2Fields are present, assign all y2Fields to y2 scale
1699
- (y2fields == null ? void 0 : y2fields.length) > 0 && y2fields.includes(field) || // Else, assign all overlayFields to y2 scale
1700
- (!y2fields || y2fields.length === 0) && (overlayFields == null ? void 0 : overlayFields.includes(field))
1701
- );
1702
- if (shouldAssignToY2) {
1703
- seriesConfig[field].overrides.scale = "y2";
1704
- } else {
1705
- seriesConfig[field].overrides.scale = "y";
1706
- }
1707
- }
1708
- if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
1709
- seriesConfig[field].type = "line";
1710
- }
1711
- if (markerDisplay !== void 0) {
1712
- seriesConfig[field].markerDisplay = markerDisplay;
1713
- }
1714
- const fieldDashStyle = (lineDashStylesByField == null ? void 0 : lineDashStylesByField[field]) || lineDashStyle;
1715
- if (fieldDashStyle) {
1716
- seriesConfig[field].lineDashStyle = fieldDashStyle;
1764
+ const seriesType = getSeriesType(isOverlay, isAreaChart, isStacked);
1765
+ if (seriesType !== void 0) seriesConfig[field].type = seriesType;
1766
+ if (spanGaps !== void 0) seriesConfig[field].overrides.spanGaps = spanGaps;
1767
+ if (y2Enabled) seriesConfig[field].overrides.scale = getY2Scale(field, y2fields, overlayFields);
1768
+ if (markerDisplay !== void 0) seriesConfig[field].markerDisplay = markerDisplay;
1769
+ if (!isAreaChart || isOverlay) {
1770
+ const fieldDashStyle = (lineDashStylesByField == null ? void 0 : lineDashStylesByField[field]) || lineDashStyle;
1771
+ if (fieldDashStyle) seriesConfig[field].lineDashStyle = fieldDashStyle;
1717
1772
  }
1718
1773
  const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
1719
1774
  const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
@@ -1784,8 +1839,27 @@ var TrellisTitleDiv = styled_components_default.div`
1784
1839
  background-color: ${(props) => props.backgroundColor};
1785
1840
  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.
1786
1841
  `;
1842
+ var formatTrellisKey = (value) => {
1843
+ if (value === null || value === void 0) {
1844
+ return "";
1845
+ }
1846
+ if (typeof value === "string") {
1847
+ return value;
1848
+ }
1849
+ if (typeof value === "number" || typeof value === "boolean") {
1850
+ return value.toString();
1851
+ }
1852
+ if (typeof value === "symbol") {
1853
+ return value.toString();
1854
+ }
1855
+ try {
1856
+ return JSON.stringify(value);
1857
+ } catch (e) {
1858
+ return typeof value === "bigint" ? value.toString() : "";
1859
+ }
1860
+ };
1787
1861
  var TrellisTitle = (props) => {
1788
- const titleText = String(props.trellisKey).toString();
1862
+ const titleText = formatTrellisKey(props.trellisKey);
1789
1863
  return /* @__PURE__ */ react_exports.createElement(
1790
1864
  TrellisTitleDiv,
1791
1865
  {
@@ -1921,6 +1995,38 @@ var parseArrayOption = (value) => {
1921
1995
  }
1922
1996
  return void 0;
1923
1997
  };
1998
+ var getAreaOpacityForCanvas = (areaOpacity) => (
1999
+ // Preserve legacy visualizations behavior where area opacity is squared to match charting output.
2000
+ areaOpacity !== void 0 && areaOpacity !== null ? __pow(areaOpacity, 2) : areaOpacity
2001
+ );
2002
+ var parseTickIntervalOption = (simpleXMLValue, canvasValue) => {
2003
+ if (simpleXMLValue) return Number(simpleXMLValue);
2004
+ if (canvasValue) return Number(canvasValue);
2005
+ return void 0;
2006
+ };
2007
+ var getYAxisTitles = ({
2008
+ y2Enabled,
2009
+ yFields,
2010
+ y2Fields,
2011
+ overlayFields,
2012
+ yAxisTitleText,
2013
+ yAxisTitleVisibility,
2014
+ y2AxisTitleText,
2015
+ y2AxisTitleVisibility,
2016
+ containerHeight
2017
+ }) => {
2018
+ const yFieldsForTitle = y2Enabled ? yFields.filter((field) => !y2Fields.includes(field)) : yFields;
2019
+ const fieldsForY2Axis = y2Fields.length > 0 ? y2Fields : overlayFields;
2020
+ const yAxisTitle = ellipsisAxisTitle(
2021
+ getComputedAxisTitles(yAxisTitleText, yFieldsForTitle, yAxisTitleVisibility),
2022
+ containerHeight
2023
+ );
2024
+ const y2AxisTitle = ellipsisAxisTitle(
2025
+ getComputedAxisTitles(y2AxisTitleText, fieldsForY2Axis, y2AxisTitleVisibility),
2026
+ containerHeight
2027
+ );
2028
+ return { yAxisTitle, y2AxisTitle };
2029
+ };
1924
2030
  var TimeSeriesChartWrapper = (props) => {
1925
2031
  var _b, _c, _d;
1926
2032
  const _a = props, {
@@ -2010,6 +2116,8 @@ var TimeSeriesChartWrapper = (props) => {
2010
2116
  "chart.overlayFields": overlayFieldsStr,
2011
2117
  "chart.nullValueMode": nullValueMode,
2012
2118
  "chart.showDataLabels": showDataLabels,
2119
+ "chart.showLines": showLines,
2120
+ "chart.stackMode": stackMode,
2013
2121
  lineWidth,
2014
2122
  lineDashStyle,
2015
2123
  fieldDashStyles: lineDashStylesByFieldStr,
@@ -2038,7 +2146,10 @@ var TimeSeriesChartWrapper = (props) => {
2038
2146
  yAxisMinorTickSize,
2039
2147
  y2AxisMinorTickSize,
2040
2148
  showYAxisWithZero: showYAxisWithZeroFromOptions,
2041
- showY2AxisWithZero: showY2AxisWithZeroFromOptions
2149
+ showY2AxisWithZero: showY2AxisWithZeroFromOptions,
2150
+ // area only props
2151
+ areaFillOpacity: areaOpacity,
2152
+ chart: chartType
2042
2153
  } = options;
2043
2154
  const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
2044
2155
  const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
@@ -2055,13 +2166,11 @@ var TimeSeriesChartWrapper = (props) => {
2055
2166
  const yAxisMax = parseAxisValue(yAxisMaxRaw);
2056
2167
  const y2AxisMin = parseAxisValue(y2AxisMinRaw);
2057
2168
  const y2AxisMax = parseAxisValue(y2AxisMaxRaw);
2058
- const parseTickInterval = (simpleXMLValue, canvasValue) => {
2059
- if (simpleXMLValue) return Number(simpleXMLValue);
2060
- if (canvasValue) return Number(canvasValue);
2061
- return void 0;
2062
- };
2063
- const yAxisMajorTickIntervalNum = parseTickInterval(yAxisMajorUnitFromSimpleXML, yAxisMajorTickInterval);
2064
- const y2AxisMajorTickIntervalNum = parseTickInterval(
2169
+ const yAxisMajorTickIntervalNum = parseTickIntervalOption(
2170
+ yAxisMajorUnitFromSimpleXML,
2171
+ yAxisMajorTickInterval
2172
+ );
2173
+ const y2AxisMajorTickIntervalNum = parseTickIntervalOption(
2065
2174
  y2AxisMajorUnitFromSimpleXML,
2066
2175
  y2AxisMajorTickInterval
2067
2176
  );
@@ -2070,6 +2179,7 @@ var TimeSeriesChartWrapper = (props) => {
2070
2179
  const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
2071
2180
  const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
2072
2181
  const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
2182
+ const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
2073
2183
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
2074
2184
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
2075
2185
  const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
@@ -2100,26 +2210,40 @@ var TimeSeriesChartWrapper = (props) => {
2100
2210
  );
2101
2211
  let xAxisTitle = getComputedAxisTitles(xAxisTitleText, [xField], xAxisTitleVisibility);
2102
2212
  xAxisTitle = ellipsisAxisTitle(xAxisTitle, containerWidth);
2103
- const yFieldsForTitle = y2Enabled ? yFields.filter((field) => !y2Fields.includes(field)) : yFields;
2104
- let yAxisTitle = getComputedAxisTitles(yAxisTitleText, yFieldsForTitle, yAxisTitleVisibility);
2105
- yAxisTitle = ellipsisAxisTitle(yAxisTitle, containerHeight);
2106
- const fieldsForY2Axis = y2Fields.length > 0 ? y2Fields : overlayFields;
2107
- let y2AxisTitle = getComputedAxisTitles(y2AxisTitleText, fieldsForY2Axis, y2AxisTitleVisibility);
2108
- y2AxisTitle = ellipsisAxisTitle(y2AxisTitle, containerHeight);
2213
+ const { yAxisTitle, y2AxisTitle } = getYAxisTitles({
2214
+ y2Enabled,
2215
+ yFields,
2216
+ y2Fields,
2217
+ overlayFields,
2218
+ yAxisTitleText,
2219
+ yAxisTitleVisibility,
2220
+ y2AxisTitleText,
2221
+ y2AxisTitleVisibility,
2222
+ containerHeight
2223
+ });
2109
2224
  const xScaleConfig = (0, react_exports.useMemo)(
2110
2225
  () => getXScaleConfig(xAxisTitle, xAxisLabelVisibility, xAxisLabelRotation),
2111
2226
  [xAxisTitle, xAxisLabelVisibility, xAxisLabelRotation]
2112
2227
  );
2228
+ const isStacked100 = stackMode === "stacked100";
2113
2229
  const yScaleConfig = (0, react_exports.useMemo)(
2114
- () => getYScaleConfig(
2115
- yAxisTitle,
2116
- yAxisAbbreviation,
2117
- yAxisScale,
2118
- yAxisLabelVisibility,
2119
- yAxisMin,
2120
- yAxisMax
2121
- ),
2122
- [yAxisTitle, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility, yAxisMin, yAxisMax]
2230
+ () => {
2231
+ const config3 = getYScaleConfig(
2232
+ yAxisTitle,
2233
+ yAxisAbbreviation,
2234
+ yAxisScale,
2235
+ yAxisLabelVisibility,
2236
+ yAxisMin,
2237
+ yAxisMax
2238
+ );
2239
+ if (isStacked100) {
2240
+ config3.y.tickFmt = (v) => `${Math.round(v * 100)}%`;
2241
+ config3.y.range = () => [0, 1];
2242
+ }
2243
+ return config3;
2244
+ },
2245
+ // eslint-disable-next-line react-hooks/exhaustive-deps
2246
+ [yAxisTitle, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility, yAxisMin, yAxisMax, isStacked100]
2123
2247
  );
2124
2248
  const y2ScaleConfig = (0, react_exports.useMemo)(() => {
2125
2249
  if (y2Enabled) {
@@ -2151,10 +2275,11 @@ var TimeSeriesChartWrapper = (props) => {
2151
2275
  ];
2152
2276
  chartData.fields = filteredChartData.fields;
2153
2277
  chartData.columns = seriesDataFormatted;
2278
+ const normalizedStackMode = stackMode === "stacked" || stackMode === "stacked100" ? stackMode : "auto";
2154
2279
  const seriesOverrides = (0, react_exports.useMemo)(
2155
- () => getSeriesOverrides(
2156
- yFields,
2157
- y2Fields,
2280
+ () => getSeriesOverrides({
2281
+ yfields: yFields,
2282
+ y2fields: y2Fields,
2158
2283
  lineWidth,
2159
2284
  overlayFields,
2160
2285
  y2Enabled,
@@ -2163,8 +2288,11 @@ var TimeSeriesChartWrapper = (props) => {
2163
2288
  lineDashStyle,
2164
2289
  lineDashStylesByField,
2165
2290
  stepPosition,
2166
- stepPositionsByField
2167
- ),
2291
+ stepPositionsByField,
2292
+ type: chartType,
2293
+ stackMode: normalizedStackMode,
2294
+ showLines
2295
+ }),
2168
2296
  [
2169
2297
  yFields,
2170
2298
  y2Fields,
@@ -2176,7 +2304,10 @@ var TimeSeriesChartWrapper = (props) => {
2176
2304
  lineDashStyle,
2177
2305
  lineDashStylesByField,
2178
2306
  stepPosition,
2179
- stepPositionsByField
2307
+ stepPositionsByField,
2308
+ chartType,
2309
+ normalizedStackMode,
2310
+ showLines
2180
2311
  ]
2181
2312
  );
2182
2313
  const chartingEventAnnotations = (0, react_exports.useMemo)(
@@ -2244,50 +2375,54 @@ var TimeSeriesChartWrapper = (props) => {
2244
2375
  react_exports.useEffect(() => {
2245
2376
  additionalTooltipValuesRef.current = additionalTooltipValues;
2246
2377
  }, [additionalTooltipValues]);
2378
+ const handleCrosshairMouseout = react_exports.useCallback(() => {
2379
+ if (onPointMouseOut && lastPayloadRef.current) {
2380
+ onPointMouseOut({
2381
+ type: "point.mouseout",
2382
+ originalEvent: lastOriginalEventRef.current,
2383
+ payload: lastPayloadRef.current
2384
+ });
2385
+ }
2386
+ previousMouseoverPayloadRef.current = null;
2387
+ }, [onPointMouseOut]);
2247
2388
  const handleChartCrosshairChange = react_exports.useCallback(
2248
2389
  (event) => {
2249
- if (onPointMouseOver || onPointMouseOut) {
2250
- if (!event) {
2251
- if (onPointMouseOut && lastPayloadRef.current) {
2252
- onPointMouseOut({
2253
- type: "point.mouseout",
2254
- originalEvent: lastOriginalEventRef.current,
2255
- payload: lastPayloadRef.current
2256
- });
2257
- }
2258
- previousMouseoverPayloadRef.current = null;
2259
- return;
2260
- }
2261
- const payload = __spreadProps(__spreadValues({}, (0, lodash_exports.pick)(event, "value", "seriesKey", "time", "index", "seriesIndex")), {
2262
- name: event.seriesKey
2390
+ if (!onPointMouseOver && !onPointMouseOut) {
2391
+ return;
2392
+ }
2393
+ if (!event) {
2394
+ handleCrosshairMouseout();
2395
+ return;
2396
+ }
2397
+ const payload = __spreadProps(__spreadValues({}, (0, lodash_exports.pick)(event, "value", "seriesKey", "time", "index", "seriesIndex")), {
2398
+ name: event.seriesKey
2399
+ });
2400
+ delete payload.seriesKey;
2401
+ if (event.rowContext) {
2402
+ Object.assign(
2403
+ payload,
2404
+ Object.keys(event.rowContext).reduce((acc, fieldName) => {
2405
+ acc[`row.${fieldName}.value`] = event.rowContext[fieldName];
2406
+ return acc;
2407
+ }, {})
2408
+ );
2409
+ }
2410
+ const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
2411
+ if (!hasMouseoverPayloadChanged(updatedPayload, previousMouseoverPayloadRef.current)) {
2412
+ return;
2413
+ }
2414
+ lastPayloadRef.current = updatedPayload;
2415
+ lastOriginalEventRef.current = event;
2416
+ previousMouseoverPayloadRef.current = __spreadValues({}, updatedPayload);
2417
+ if (onPointMouseOver) {
2418
+ onPointMouseOver({
2419
+ type: "point.mouseover",
2420
+ originalEvent: event,
2421
+ payload: updatedPayload
2263
2422
  });
2264
- delete payload.seriesKey;
2265
- if (event.rowContext) {
2266
- Object.assign(
2267
- payload,
2268
- Object.keys(event.rowContext).reduce((acc, fieldName) => {
2269
- acc[`row.${fieldName}.value`] = event.rowContext[fieldName];
2270
- return acc;
2271
- }, {})
2272
- );
2273
- }
2274
- const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
2275
- if (!hasMouseoverPayloadChanged(updatedPayload, previousMouseoverPayloadRef.current)) {
2276
- return;
2277
- }
2278
- lastPayloadRef.current = updatedPayload;
2279
- lastOriginalEventRef.current = event;
2280
- previousMouseoverPayloadRef.current = __spreadValues({}, updatedPayload);
2281
- if (onPointMouseOver) {
2282
- onPointMouseOver({
2283
- type: "point.mouseover",
2284
- originalEvent: event,
2285
- payload: updatedPayload
2286
- });
2287
- }
2288
2423
  }
2289
2424
  },
2290
- [onPointMouseOver, onPointMouseOut, trellisKey, trellisSplitBy]
2425
+ [onPointMouseOver, onPointMouseOut, trellisKey, trellisSplitBy, handleCrosshairMouseout]
2291
2426
  );
2292
2427
  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}`;
2293
2428
  const memoizedChart = (0, react_exports.useMemo)(() => {
@@ -2342,7 +2477,8 @@ var TimeSeriesChartWrapper = (props) => {
2342
2477
  showXAxisLine,
2343
2478
  showYAxisLine,
2344
2479
  showY2AxisLine,
2345
- xAxisMaxLabelParts
2480
+ xAxisMaxLabelParts,
2481
+ areaOpacity: areaOpacityForCanvas
2346
2482
  }
2347
2483
  ));
2348
2484
  }, [
@@ -2394,7 +2530,8 @@ var TimeSeriesChartWrapper = (props) => {
2394
2530
  showYAxisLine,
2395
2531
  showY2AxisLine,
2396
2532
  legendMode,
2397
- xAxisMaxLabelParts
2533
+ xAxisMaxLabelParts,
2534
+ areaOpacityForCanvas
2398
2535
  ]);
2399
2536
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
2400
2537
  return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);
@@ -2422,6 +2559,37 @@ var TimeSeriesChartWrapper_default = TimeSeriesChartWrapper;
2422
2559
 
2423
2560
  // src/common/withDashboardViz.tsx
2424
2561
  var SanitizedTimeSeriesChartWrapper = (0, SanitizeProps_exports.withSanitizedProps)(TimeSeriesChartWrapper_default);
2562
+ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTrigger) => {
2563
+ const result = {};
2564
+ Object.keys(supportedEvents).forEach((eventName) => {
2565
+ const { parentKeys, payloadKeys } = supportedEvents[eventName];
2566
+ const eventCallbackPropName = (0, lodash_exports.camelCase)(`on.${eventName}`);
2567
+ let payload = {};
2568
+ if (Array.isArray(payloadKeys) && payloadKeys.length) {
2569
+ payloadKeys.forEach((p) => {
2570
+ payload[p] = evaluatedOptionsToUse[p];
2571
+ });
2572
+ }
2573
+ result[eventCallbackPropName] = (ev) => {
2574
+ if (ev == null ? void 0 : ev.payload) {
2575
+ payload = __spreadValues({}, ev.payload);
2576
+ }
2577
+ return onEventTrigger({
2578
+ originalEvent: ev,
2579
+ payload,
2580
+ type: eventName
2581
+ });
2582
+ };
2583
+ if (parentKeys) {
2584
+ for (let i = parentKeys.length - 1; i >= 0; i -= 1) {
2585
+ const newObject = {};
2586
+ newObject[parentKeys[i]] = result[eventCallbackPropName];
2587
+ result[eventCallbackPropName] = newObject;
2588
+ }
2589
+ }
2590
+ });
2591
+ return result;
2592
+ };
2425
2593
  var withDashboardViz = (opts) => {
2426
2594
  const {
2427
2595
  ReactViz,
@@ -2479,9 +2647,7 @@ var withDashboardViz = (opts) => {
2479
2647
  const isDownsamplingEnabledByFeatureFlag = Boolean(
2480
2648
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableDownsampling
2481
2649
  );
2482
- const isTrellisFeatureFlagOn = Boolean(
2483
- featureFlagContext && featureFlagContext.visualizations_enableTrellis
2484
- );
2650
+ const isTrellisFeatureFlagOn = Boolean(featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableTrellis);
2485
2651
  const isTrellisOn = isTrellisFeatureFlagOn && ((_a = vizConfig == null ? void 0 : vizConfig.supports) == null ? void 0 : _a.includes("trellis" /* TRELLIS */)) && (options == null ? void 0 : options.splitByLayout) === "trellis" /* TRELLIS */;
2486
2652
  const isAcceleratedRenderFeatureFlagOn = Boolean(
2487
2653
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
@@ -2646,38 +2812,12 @@ var withDashboardViz = (opts) => {
2646
2812
  }
2647
2813
  );
2648
2814
  }
2649
- const eventCallbackProps = {};
2650
- if (hasEventHandlers && mode === "view" && vizConfig.supports.indexOf("events" /* EVENTS */) > -1) {
2651
- const supportedEvents = vizConfig.events;
2652
- Object.keys(supportedEvents).forEach((eventName) => {
2653
- const { parentKeys, payloadKeys } = supportedEvents[eventName];
2654
- const eventCallbackPropName = (0, lodash_exports.camelCase)(`on.${eventName}`);
2655
- let payload = {};
2656
- if (Array.isArray(payloadKeys) && payloadKeys.length) {
2657
- payloadKeys.forEach((p) => {
2658
- payload[p] = evaluatedOptionsToUse[p];
2659
- });
2660
- }
2661
- eventCallbackProps[eventCallbackPropName] = (ev) => {
2662
- if (ev == null ? void 0 : ev.payload) {
2663
- payload = __spreadValues({}, ev.payload);
2664
- }
2665
- return onEventTrigger({
2666
- originalEvent: ev,
2667
- payload,
2668
- type: eventName
2669
- });
2670
- };
2671
- if (parentKeys) {
2672
- for (let i = parentKeys.length - 1; i >= 0; i -= 1) {
2673
- const newObject = {};
2674
- newObject[parentKeys[i]] = eventCallbackProps[eventCallbackPropName];
2675
- eventCallbackProps[eventCallbackPropName] = newObject;
2676
- }
2677
- }
2678
- });
2679
- }
2680
- const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), eventCallbackProps), {
2815
+ const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
2816
+ const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
2817
+ // Align option transformation with the actual renderer selected below.
2818
+ // This prevents canvas-only option preservation from leaking into Highcharts mode.
2819
+ isAcceleratedRenderOn
2820
+ }), eventCallbackProps), {
2681
2821
  themeFunc
2682
2822
  }));
2683
2823
  if (useAsyncEvaluatedOptions && Object.keys(evaluatedOptionsToUse).length === 0) {
@@ -2711,18 +2851,18 @@ var config_exports = {};
2711
2851
  __export(config_exports, {
2712
2852
  default: () => config_default2
2713
2853
  });
2714
- var defaultImport34 = __toESM(require("@splunk/splunk-utils/config"));
2854
+ var defaultImport36 = __toESM(require("@splunk/splunk-utils/config"));
2715
2855
  __reExport(config_exports, require("@splunk/splunk-utils/config"));
2716
- var config_default2 = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
2856
+ var config_default2 = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
2717
2857
 
2718
2858
  // esm-externals:@splunk/themes
2719
2859
  var themes_exports = {};
2720
2860
  __export(themes_exports, {
2721
2861
  default: () => themes_default
2722
2862
  });
2723
- var defaultImport35 = __toESM(require("@splunk/themes"));
2863
+ var defaultImport37 = __toESM(require("@splunk/themes"));
2724
2864
  __reExport(themes_exports, require("@splunk/themes"));
2725
- var themes_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2865
+ var themes_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
2726
2866
 
2727
2867
  // src/common/utils/textUtils.ts
2728
2868
  var VIZ_FONT_FAMILY = "'Splunk Platform Sans', 'Splunk Data Sans', Roboto, Droid, 'Helvetica Neue', Helvetica, Arial, sans-serif";
@@ -2773,28 +2913,16 @@ function hexToRgba(hex, opacity = 1) {
2773
2913
  const alpha = Math.max(0, Math.min(opacity, 1));
2774
2914
  return `rgba(${r}, ${g}, ${b}, ${alpha})`;
2775
2915
  }
2776
- function getAlternateColor(hex, percent) {
2777
- const cleanedHex = typeof hex === "string" ? hex.replace("#", "") : "#009CEB";
2916
+ function computeLuminance(hex) {
2917
+ const cleanedHex = typeof hex === "string" ? hex.replace("#", "") : "000000";
2778
2918
  const bigint = Number.parseInt(cleanedHex, 16);
2779
2919
  const r = bigint >> 16 & 255;
2780
2920
  const g = bigint >> 8 & 255;
2781
2921
  const b = bigint & 255;
2782
- const luminance = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
2783
- const darken = (channel, factor) => {
2784
- return Math.floor(channel * factor);
2785
- };
2786
- if (luminance > 0.8) {
2787
- const darkenFactor = 0.95;
2788
- const rDark = darken(r, darkenFactor);
2789
- const gDark = darken(g, darkenFactor);
2790
- const bDark = darken(b, darkenFactor);
2791
- return `rgba(${rDark}, ${gDark}, ${bDark}, 1)`;
2792
- }
2793
- const lighten = (channel) => Math.min(255, Math.floor(channel + (255 - channel) * percent));
2794
- const rLight = lighten(r);
2795
- const gLight = lighten(g);
2796
- const bLight = lighten(b);
2797
- return `rgba(${rLight}, ${gLight}, ${bLight}, 1)`;
2922
+ return (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
2923
+ }
2924
+ function getAlternateColor(hex, percent) {
2925
+ return computeLuminance(hex) < 0.5 ? "rgba(35,36,41,0.4)" : "rgba(240,240,240,0.6)";
2798
2926
  }
2799
2927
  function assignCategoryColor(categoryValue, categoricalColors, seriesColors, defaultColor) {
2800
2928
  if (categoryValue && !categoricalColors.has(categoryValue)) {
@@ -3020,18 +3148,18 @@ var uplot_react_exports = {};
3020
3148
  __export(uplot_react_exports, {
3021
3149
  default: () => uplot_react_default
3022
3150
  });
3023
- var defaultImport36 = __toESM(require("uplot-react"));
3151
+ var defaultImport38 = __toESM(require("uplot-react"));
3024
3152
  __reExport(uplot_react_exports, require("uplot-react"));
3025
- var uplot_react_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
3153
+ var uplot_react_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
3026
3154
 
3027
3155
  // esm-externals:@splunk/visualization-context/ZoomContext
3028
3156
  var ZoomContext_exports = {};
3029
3157
  __export(ZoomContext_exports, {
3030
3158
  default: () => ZoomContext_default
3031
3159
  });
3032
- var defaultImport37 = __toESM(require("@splunk/visualization-context/ZoomContext"));
3160
+ var defaultImport39 = __toESM(require("@splunk/visualization-context/ZoomContext"));
3033
3161
  __reExport(ZoomContext_exports, require("@splunk/visualization-context/ZoomContext"));
3034
- var ZoomContext_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
3162
+ var ZoomContext_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
3035
3163
 
3036
3164
  // src/Timeline/PureTimeline/src/CursorPlugin.tsx
3037
3165
  var FIXED_LANE_HEIGHT = 32;
@@ -3399,7 +3527,8 @@ var TimelinePlugin = ({
3399
3527
  theme
3400
3528
  }) => {
3401
3529
  const FIXED_LANE_HEIGHT2 = 32;
3402
- const AXIS_COLOR = backgroundColor;
3530
+ const isDarkMode = computeLuminance(backgroundColor) < 0.5;
3531
+ const AXIS_COLOR = isDarkMode ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.6)";
3403
3532
  const ALTERNATE_COLOR = getAlternateColor(backgroundColor, 0.1);
3404
3533
  const MIN_BAR_WIDTH2 = 1;
3405
3534
  const LANE_SCALE_FACTOR = 0.85;
@@ -3622,6 +3751,12 @@ var YAxisContainer = styled_components_default.div`
3622
3751
  margin-right: -1px;
3623
3752
  z-index: 100;
3624
3753
  `;
3754
+ function getLaneBackground(isEven, backgroundColor) {
3755
+ if (!isEven) {
3756
+ return getAlternateColor(backgroundColor, 0.1);
3757
+ }
3758
+ return computeLuminance(backgroundColor) < 0.5 ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.6)";
3759
+ }
3625
3760
  var YAxisLane = styled_components_default.div`
3626
3761
  overflow: hidden;
3627
3762
  white-space: nowrap;
@@ -3634,7 +3769,7 @@ var YAxisLane = styled_components_default.div`
3634
3769
  text-align: left;
3635
3770
  font-size: 14px;
3636
3771
  border-right: 1px solid ${themes_exports.variables.borderColorWeak};
3637
- background-color: ${({ isEven, backgroundColor }) => isEven ? hexToRgba(backgroundColor) : getAlternateColor(backgroundColor, 0.1)};
3772
+ background-color: ${({ isEven, backgroundColor }) => getLaneBackground(isEven, backgroundColor)};
3638
3773
  box-sizing: border-box;
3639
3774
  color: ${({ color }) => `${color}`};
3640
3775
  cursor: ${({ clickable }) => clickable ? "default" : "inherit"};
@@ -3834,9 +3969,9 @@ var useSplunkTheme_exports = {};
3834
3969
  __export(useSplunkTheme_exports, {
3835
3970
  default: () => useSplunkTheme_default
3836
3971
  });
3837
- var defaultImport38 = __toESM(require("@splunk/themes/useSplunkTheme"));
3972
+ var defaultImport40 = __toESM(require("@splunk/themes/useSplunkTheme"));
3838
3973
  __reExport(useSplunkTheme_exports, require("@splunk/themes/useSplunkTheme"));
3839
- var useSplunkTheme_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
3974
+ var useSplunkTheme_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
3840
3975
 
3841
3976
  // src/Timeline/PureTimeline/src/TimelineTooltip.tsx
3842
3977
  var TooltipContainer = styled_components_default.div`
@@ -3926,9 +4061,9 @@ var uPlot_min_exports = {};
3926
4061
  __export(uPlot_min_exports, {
3927
4062
  default: () => uPlot_min_default
3928
4063
  });
3929
- var defaultImport39 = __toESM(require("uplot/dist/uPlot.min.css"));
4064
+ var defaultImport41 = __toESM(require("uplot/dist/uPlot.min.css"));
3930
4065
  __reExport(uPlot_min_exports, require("uplot/dist/uPlot.min.css"));
3931
- var uPlot_min_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
4066
+ var uPlot_min_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
3932
4067
 
3933
4068
  // src/Timeline/PureTimeline/src/TimelineUplot.tsx
3934
4069
  var TimelineUplotContainer = styled_components_default.div`
@@ -4329,6 +4464,18 @@ var PureTimeline_default = PureTimeline;
4329
4464
 
4330
4465
  // src/Timeline/Timeline.tsx
4331
4466
  var validOptions = Object.keys(visualization_schemas_exports.timelineOptionsSchema);
4467
+ var DURATION_UNIT_TO_MS = {
4468
+ milliseconds: 1,
4469
+ seconds: 1e3,
4470
+ minutes: 6e4,
4471
+ hours: 36e5
4472
+ };
4473
+ var DURATION_UNIT_SHORT_LABEL = {
4474
+ milliseconds: "ms",
4475
+ seconds: "s",
4476
+ minutes: "min",
4477
+ hours: "h"
4478
+ };
4332
4479
  var computeVizProps = (_a) => {
4333
4480
  var props = __objRest(_a, []);
4334
4481
  var _b, _c, _d, _e;
@@ -4336,6 +4483,7 @@ var computeVizProps = (_a) => {
4336
4483
  x,
4337
4484
  y,
4338
4485
  duration,
4486
+ durationUnit = "milliseconds",
4339
4487
  category,
4340
4488
  dataSources,
4341
4489
  dataColors,
@@ -4347,6 +4495,7 @@ var computeVizProps = (_a) => {
4347
4495
  "x",
4348
4496
  "y",
4349
4497
  "duration",
4498
+ "durationUnit",
4350
4499
  "category",
4351
4500
  "dataSources",
4352
4501
  "dataColors",
@@ -4359,9 +4508,19 @@ var computeVizProps = (_a) => {
4359
4508
  const columns = ((_c = (_b = dataSources == null ? void 0 : dataSources.primary) == null ? void 0 : _b.data) == null ? void 0 : _c.columns) || [];
4360
4509
  const fields = ((_e = (_d = dataSources == null ? void 0 : dataSources.primary) == null ? void 0 : _d.data) == null ? void 0 : _e.fields) || [];
4361
4510
  const additionalTooltipValues = (pickedOptions == null ? void 0 : pickedOptions.additionalTooltipFields) ? extractAdditionalTooltipValues(columns, fields, pickedOptions == null ? void 0 : pickedOptions.additionalTooltipFields) : [];
4511
+ const durationFieldName = pickedOptions == null ? void 0 : pickedOptions.durationField;
4512
+ if (durationFieldName && additionalTooltipValues.length > 0) {
4513
+ additionalTooltipValues.forEach((obj, index) => {
4514
+ if (obj[durationFieldName] !== void 0 && obj[durationFieldName] !== null) {
4515
+ additionalTooltipValues[index] = __spreadProps(__spreadValues({}, obj), {
4516
+ [durationFieldName]: `${obj[durationFieldName]} ${DURATION_UNIT_SHORT_LABEL[durationUnit]}`
4517
+ });
4518
+ }
4519
+ });
4520
+ }
4362
4521
  const timelineSeriesColors = normalizeSeriesColors(seriesColors);
4363
4522
  const timelineDataColors = normalizeDataColors(dataColors);
4364
- const durationValues = normalizeDuration(duration);
4523
+ const durationValues = normalizeDuration(duration, durationUnit);
4365
4524
  return __spreadValues({
4366
4525
  x,
4367
4526
  y,
@@ -4409,11 +4568,14 @@ function normalizeDataColors(dataColors) {
4409
4568
  }
4410
4569
  return dataColors;
4411
4570
  }
4412
- function normalizeDuration(duration) {
4413
- if ((duration == null ? void 0 : duration.length) > 0 && typeof duration[0] === "string") {
4414
- return convertToNumbers(duration);
4571
+ function normalizeDuration(duration, durationUnit) {
4572
+ var _a;
4573
+ const multiplier = (_a = DURATION_UNIT_TO_MS[durationUnit]) != null ? _a : 1;
4574
+ const numericDuration = (duration == null ? void 0 : duration.length) > 0 && typeof duration[0] === "string" ? convertToNumbers(duration) : duration;
4575
+ if (!numericDuration || multiplier === 1) {
4576
+ return numericDuration;
4415
4577
  }
4416
- return duration;
4578
+ return numericDuration.map((val) => typeof val === "number" ? val * multiplier : 0);
4417
4579
  }
4418
4580
  function extractAdditionalTooltipValues(columns, fields, additionalTooltipFields) {
4419
4581
  var _a;