@splunk/visualizations 28.8.0 → 28.9.1

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 (279) hide show
  1. package/Area.config.js +2 -4
  2. package/Area.config.js.map +2 -2
  3. package/Area.js +245 -147
  4. package/Area.js.map +4 -4
  5. package/Bar.config.js +2 -4
  6. package/Bar.config.js.map +2 -2
  7. package/Bar.js +246 -148
  8. package/Bar.js.map +4 -4
  9. package/Bubble/Bubble.d.ts +3 -1
  10. package/Bubble/Bubble.d.ts.map +1 -1
  11. package/Bubble.js +216 -108
  12. package/Bubble.js.map +4 -4
  13. package/CHANGELOG.external.md +43 -1
  14. package/ChoroplethSvg/ChoroplethSvg.d.ts +3 -1
  15. package/ChoroplethSvg/ChoroplethSvg.d.ts.map +1 -1
  16. package/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts.map +1 -1
  17. package/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts.map +1 -1
  18. package/ChoroplethSvg.js +638 -209
  19. package/ChoroplethSvg.js.map +4 -4
  20. package/Column.config.js +2 -4
  21. package/Column.config.js.map +2 -2
  22. package/Column.js +246 -148
  23. package/Column.js.map +4 -4
  24. package/Ellipse/Ellipse.d.ts +3 -1
  25. package/Ellipse/Ellipse.d.ts.map +1 -1
  26. package/Ellipse.js +216 -105
  27. package/Ellipse.js.map +4 -4
  28. package/Events/Events.d.ts +5 -3
  29. package/Events/Events.d.ts.map +1 -1
  30. package/Events/PureEvents/FieldSummaryTooltip.d.ts.map +1 -1
  31. package/Events/PureEvents/PureEvents.d.ts +0 -1
  32. package/Events/PureEvents/PureEvents.d.ts.map +1 -1
  33. package/Events.js +270 -157
  34. package/Events.js.map +4 -4
  35. package/FillerGauge.js +243 -140
  36. package/FillerGauge.js.map +4 -4
  37. package/Image/Image.d.ts +3 -1
  38. package/Image/Image.d.ts.map +1 -1
  39. package/Image.js +217 -106
  40. package/Image.js.map +4 -4
  41. package/Line.config.js +2 -4
  42. package/Line.config.js.map +2 -2
  43. package/Line.js +246 -148
  44. package/Line.js.map +4 -4
  45. package/LinkGraph/LinkGraph.d.ts +3 -1
  46. package/LinkGraph/LinkGraph.d.ts.map +1 -1
  47. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -1
  48. package/LinkGraph/PureLinkGraph/components/Node.d.ts.map +1 -1
  49. package/LinkGraph.config.js +1 -1
  50. package/LinkGraph.config.js.map +2 -2
  51. package/LinkGraph.js +802 -682
  52. package/LinkGraph.js.map +4 -4
  53. package/Map/Map.d.ts +10 -9
  54. package/Map/Map.d.ts.map +1 -1
  55. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  56. package/Map/PureMap/ChoroplethLayer.d.ts.map +1 -1
  57. package/Map/PureMap/ClusterLayer.d.ts.map +1 -1
  58. package/Map/PureMap/MapUtils.d.ts.map +1 -1
  59. package/Map/PureMap/MarkerWrapper.d.ts.map +1 -1
  60. package/Map/PureMap/PureMap.d.ts +8 -65
  61. package/Map/PureMap/PureMap.d.ts.map +1 -1
  62. package/Map/PureMap/mapWorker.d.ts +2 -0
  63. package/Map/PureMap/mapWorker.d.ts.map +1 -0
  64. package/Map.config.js +1 -1
  65. package/Map.config.js.map +2 -2
  66. package/Map.js +439 -336
  67. package/Map.js.map +4 -4
  68. package/Markdown/Markdown.d.ts +9 -1
  69. package/Markdown/Markdown.d.ts.map +1 -1
  70. package/Markdown/config.d.ts.map +1 -1
  71. package/Markdown.config.js +5 -0
  72. package/Markdown.config.js.map +2 -2
  73. package/Markdown.js +225 -94
  74. package/Markdown.js.map +3 -3
  75. package/MarkerGauge.js +239 -134
  76. package/MarkerGauge.js.map +4 -4
  77. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts.map +1 -1
  78. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts +1 -0
  79. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts.map +1 -1
  80. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts +1 -0
  81. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts.map +1 -1
  82. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts +3 -5
  83. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -1
  84. package/NetworkGraph.config.js +4 -2
  85. package/NetworkGraph.config.js.map +2 -2
  86. package/NetworkGraph.js +327 -188
  87. package/NetworkGraph.js.map +4 -4
  88. package/ParallelCoordinates/ParallelCoordinates.d.ts +3 -1
  89. package/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -1
  90. package/ParallelCoordinates.js +239 -128
  91. package/ParallelCoordinates.js.map +4 -4
  92. package/Pie/config.d.ts.map +1 -1
  93. package/Pie/pieUtils.d.ts.map +1 -1
  94. package/Pie.config.js +4 -2
  95. package/Pie.config.js.map +2 -2
  96. package/Pie.js +228 -125
  97. package/Pie.js.map +3 -3
  98. package/ProcessTree/ProcessTree.d.ts +3 -1
  99. package/ProcessTree/ProcessTree.d.ts.map +1 -1
  100. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts +1 -0
  101. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts.map +1 -1
  102. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts +1 -0
  103. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts.map +1 -1
  104. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts +2 -1
  105. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts.map +1 -1
  106. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts +2 -0
  107. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts.map +1 -1
  108. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts +5 -1
  109. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts.map +1 -1
  110. package/ProcessTree.js +435 -192
  111. package/ProcessTree.js.map +4 -4
  112. package/Punchcard/Punchcard.d.ts +3 -1
  113. package/Punchcard/Punchcard.d.ts.map +1 -1
  114. package/Punchcard.js +238 -129
  115. package/Punchcard.js.map +4 -4
  116. package/Rectangle/Rectangle.d.ts +3 -1
  117. package/Rectangle/Rectangle.d.ts.map +1 -1
  118. package/Rectangle.js +218 -116
  119. package/Rectangle.js.map +4 -4
  120. package/RichText/PureRichText/Editor/EditorPanel.d.ts +1 -4
  121. package/RichText/PureRichText/Editor/EditorPanel.d.ts.map +1 -1
  122. package/RichText/PureRichText/Editor/hooks/useConfigPanelFocus.d.ts +14 -0
  123. package/RichText/PureRichText/Editor/hooks/useConfigPanelFocus.d.ts.map +1 -0
  124. package/RichText/PureRichText/Editor/hooks/useEditorPanelSync.d.ts +15 -0
  125. package/RichText/PureRichText/Editor/hooks/useEditorPanelSync.d.ts.map +1 -0
  126. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts.map +1 -1
  127. package/RichText/PureRichText/Editor/hooks/usePortalTarget.d.ts +9 -0
  128. package/RichText/PureRichText/Editor/hooks/usePortalTarget.d.ts.map +1 -0
  129. package/RichText/PureRichText/InnerEditor.d.ts +15 -9
  130. package/RichText/PureRichText/InnerEditor.d.ts.map +1 -1
  131. package/RichText/PureRichText/PureRichText.d.ts +5 -10
  132. package/RichText/PureRichText/PureRichText.d.ts.map +1 -1
  133. package/RichText/PureRichText/PureRichTextContext.d.ts +3 -6
  134. package/RichText/PureRichText/PureRichTextContext.d.ts.map +1 -1
  135. package/RichText/PureRichText/RichTextStyles.d.ts +5 -4
  136. package/RichText/PureRichText/RichTextStyles.d.ts.map +1 -1
  137. package/RichText/PureRichText/activeInstance.d.ts +6 -7
  138. package/RichText/PureRichText/activeInstance.d.ts.map +1 -1
  139. package/RichText/PureRichText/config.d.ts.map +1 -1
  140. package/RichText/PureRichText/hooks/useContentSync.d.ts +9 -9
  141. package/RichText/PureRichText/hooks/useContentSync.d.ts.map +1 -1
  142. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts +2 -7
  143. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts.map +1 -1
  144. package/RichText/PureRichText/hooks/useEditorSetup.d.ts +8 -4
  145. package/RichText/PureRichText/hooks/useEditorSetup.d.ts.map +1 -1
  146. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts +2 -4
  147. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts.map +1 -1
  148. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  149. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts +3 -7
  150. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts.map +1 -1
  151. package/RichText/PureRichText/hooks/useStepFontSize.d.ts +2 -2
  152. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts +2 -3
  153. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts.map +1 -1
  154. package/RichText/PureRichText/hooks/useTokenMap.d.ts +13 -24
  155. package/RichText/PureRichText/hooks/useTokenMap.d.ts.map +1 -1
  156. package/RichText/PureRichText/renderers/ElementRenderer.d.ts +2 -5
  157. package/RichText/PureRichText/renderers/ElementRenderer.d.ts.map +1 -1
  158. package/RichText/PureRichText/types.d.ts +6 -0
  159. package/RichText/PureRichText/types.d.ts.map +1 -1
  160. package/RichText/PureRichText/utils/slateUtils.d.ts +26 -2
  161. package/RichText/PureRichText/utils/slateUtils.d.ts.map +1 -1
  162. package/RichText/RichText.d.ts +3 -1
  163. package/RichText/RichText.d.ts.map +1 -1
  164. package/RichText/config.d.ts.map +1 -1
  165. package/RichText.config.js +5 -0
  166. package/RichText.config.js.map +2 -2
  167. package/RichText.js +1848 -842
  168. package/RichText.js.map +4 -4
  169. package/Sankey/PureSankey/PureSankey.d.ts +2 -0
  170. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  171. package/Sankey/PureSankey/SankeyLink.d.ts +3 -1
  172. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  173. package/Sankey/PureSankey/SankeyNode.d.ts +5 -2
  174. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  175. package/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -1
  176. package/Sankey/Sankey.d.ts +3 -1
  177. package/Sankey/Sankey.d.ts.map +1 -1
  178. package/Sankey.js +508 -219
  179. package/Sankey.js.map +4 -4
  180. package/Scatter.config.js +3 -5
  181. package/Scatter.config.js.map +2 -2
  182. package/Scatter.js +244 -146
  183. package/Scatter.js.map +4 -4
  184. package/SingleValue/SingleValue.d.ts.map +1 -1
  185. package/SingleValue.js +273 -173
  186. package/SingleValue.js.map +4 -4
  187. package/SingleValueBasic.js +4 -4
  188. package/SingleValueBasic.js.map +2 -2
  189. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -1
  190. package/SingleValueIcon.js +264 -164
  191. package/SingleValueIcon.js.map +4 -4
  192. package/SingleValueRadial.js +267 -167
  193. package/SingleValueRadial.js.map +4 -4
  194. package/SparkLine/SparkLine.d.ts.map +1 -1
  195. package/SparkLine.js.map +2 -2
  196. package/Table/PureTable.d.ts.map +1 -1
  197. package/Table/Table.d.ts +2 -5
  198. package/Table/Table.d.ts.map +1 -1
  199. package/Table/hooks.d.ts.map +1 -1
  200. package/Table.config.js +1 -1
  201. package/Table.config.js.map +2 -2
  202. package/Table.js +293 -271
  203. package/Table.js.map +4 -4
  204. package/Timeline/Timeline.d.ts +3 -1
  205. package/Timeline/Timeline.d.ts.map +1 -1
  206. package/Timeline.config.js +2 -2
  207. package/Timeline.config.js.map +2 -2
  208. package/Timeline.js +266 -142
  209. package/Timeline.js.map +4 -4
  210. package/Treemap/Treemap.d.ts +3 -1
  211. package/Treemap/Treemap.d.ts.map +1 -1
  212. package/Treemap.js +263 -147
  213. package/Treemap.js.map +4 -4
  214. package/common/Charting.js +8 -10
  215. package/common/Charting.js.map +2 -2
  216. package/common/ChartingApi.d.ts.map +1 -1
  217. package/common/ChartingApi.js +5 -2
  218. package/common/ChartingApi.js.map +2 -2
  219. package/common/DocExampleWithVizSandbox.d.ts +2 -0
  220. package/common/DocExampleWithVizSandbox.d.ts.map +1 -1
  221. package/common/DocExampleWithVizSandbox.js +54 -6
  222. package/common/DocExampleWithVizSandbox.js.map +2 -2
  223. package/common/GaugeMajorTicks.js.map +2 -2
  224. package/common/GaugeValueMarker.js.map +2 -2
  225. package/common/OptionsDoc.js +1 -1
  226. package/common/OptionsDoc.js.map +2 -2
  227. package/common/OverviewDoc.js +54 -6
  228. package/common/OverviewDoc.js.map +2 -2
  229. package/common/ThemesDoc.js.map +2 -2
  230. package/common/TimeSeriesChartWrapper.js +10 -9
  231. package/common/TimeSeriesChartWrapper.js.map +2 -2
  232. package/common/chartingUtils.d.ts.map +1 -1
  233. package/common/chartingUtils.js +12 -11
  234. package/common/chartingUtils.js.map +2 -2
  235. package/common/components/IconPlaceholder.d.ts.map +1 -1
  236. package/common/docUtils.d.ts.map +1 -1
  237. package/common/docUtils.js +15 -6
  238. package/common/docUtils.js.map +2 -2
  239. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  240. package/common/gaugeUtils.d.ts.map +1 -1
  241. package/common/gaugeUtils.js +4 -2
  242. package/common/gaugeUtils.js.map +2 -2
  243. package/common/hooks/useSorting.d.ts.map +1 -1
  244. package/common/interfaces/VizEvent.d.ts +7 -0
  245. package/common/interfaces/VizEvent.d.ts.map +1 -1
  246. package/common/utils/dataUtils.d.ts.map +1 -1
  247. package/common/utils/dataUtils.js +6 -10
  248. package/common/utils/dataUtils.js.map +2 -2
  249. package/common/utils/featureFlagUtils.js +2 -2
  250. package/common/utils/featureFlagUtils.js.map +2 -2
  251. package/common/utils/focusUtils.js +1 -1
  252. package/common/utils/focusUtils.js.map +2 -2
  253. package/common/utils/mapUtils.d.ts.map +1 -1
  254. package/common/utils/mapUtils.js +17 -21
  255. package/common/utils/mapUtils.js.map +3 -3
  256. package/common/utils/singleValueUtils.js +22 -25
  257. package/common/utils/singleValueUtils.js.map +2 -2
  258. package/common/utils/textUtils.d.ts.map +1 -1
  259. package/common/utils/textUtils.js +37 -23
  260. package/common/utils/textUtils.js.map +2 -2
  261. package/common/utils/trellisUtils.d.ts.map +1 -1
  262. package/common/utils/trellisUtils.js +18 -17
  263. package/common/utils/trellisUtils.js.map +2 -2
  264. package/common/utils/urlUtils.js.map +2 -2
  265. package/common/utils/visualizationTheme.d.ts +15 -0
  266. package/common/utils/visualizationTheme.d.ts.map +1 -0
  267. package/common/utils/visualizationTheme.js +72 -0
  268. package/common/utils/visualizationTheme.js.map +7 -0
  269. package/common/withDashboardViz.d.ts +3 -1
  270. package/common/withDashboardViz.d.ts.map +1 -1
  271. package/common/withDashboardViz.js +216 -105
  272. package/common/withDashboardViz.js.map +4 -4
  273. package/docs-llm/map/examples-react.md +39 -39
  274. package/docs-llm/network-graph/options.md +2 -2
  275. package/docs-llm/pie/examples-json.md +195 -0
  276. package/docs-llm/pie/examples-react.md +123 -0
  277. package/docs-llm/pie/options.md +1 -1
  278. package/docs-llm/process-tree/options.md +3 -2
  279. package/package.json +32 -29
package/Treemap.js CHANGED
@@ -346,7 +346,10 @@ var useSortingParams = ({ requestParams, onRequestParamsChange }) => {
346
346
  onSort = (e, { sortKey, sortDir }) => {
347
347
  if (typeof sortKey === "string") {
348
348
  const nextSortDir = (0, lodash_exports.has)(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : "none";
349
- onRequestParamsChange(__spreadValues(__spreadValues({}, requestParams), { offset: 0, sort: { [sortKey]: nextSortDir } }));
349
+ onRequestParamsChange(__spreadProps(__spreadValues({}, requestParams), {
350
+ offset: 0,
351
+ sort: { [sortKey]: nextSortDir }
352
+ }));
350
353
  } else {
351
354
  onRequestParamsChange(requestParams);
352
355
  }
@@ -490,7 +493,7 @@ var Cover = styled_components_default.div`
490
493
  bottom: 0;
491
494
  `;
492
495
  var Blocker = styled_components_default.div.attrs({
493
- "data-splunk-visualization-version": "28.8.0 - 633c53372"
496
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
494
497
  })`
495
498
  position: relative;
496
499
  width: 100%;
@@ -525,14 +528,23 @@ var defaultImport20 = __toESM(require("@splunk/themes/variables"));
525
528
  __reExport(variables_exports, require("@splunk/themes/variables"));
526
529
  var variables_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
527
530
 
531
+ // esm-externals:@splunk/themes
532
+ var themes_exports = {};
533
+ __export(themes_exports, {
534
+ default: () => themes_default
535
+ });
536
+ var defaultImport21 = __toESM(require("@splunk/themes"));
537
+ __reExport(themes_exports, require("@splunk/themes"));
538
+ var themes_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
539
+
528
540
  // esm-externals:@splunk/visualizations-shared/style
529
541
  var style_exports = {};
530
542
  __export(style_exports, {
531
543
  default: () => style_default
532
544
  });
533
- var defaultImport21 = __toESM(require("@splunk/visualizations-shared/style"));
545
+ var defaultImport22 = __toESM(require("@splunk/visualizations-shared/style"));
534
546
  __reExport(style_exports, require("@splunk/visualizations-shared/style"));
535
- var style_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
547
+ var style_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
536
548
 
537
549
  // src/common/hocs/FixedSizeContainer.tsx
538
550
  var Item = styled_components_default.div.attrs(({ width }) => ({
@@ -589,7 +601,7 @@ var withFixedSizeContainer = (Viz) => {
589
601
  FixSizeItem,
590
602
  {
591
603
  "data-test": "fix-size-item",
592
- "data-splunk-visualization-version": "28.8.0 - 633c53372",
604
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
593
605
  width,
594
606
  height,
595
607
  backgroundColor
@@ -610,6 +622,14 @@ var shouldShowIconPlaceholder = (dataSources, loading = false) => {
610
622
  const noFields = fields === void 0;
611
623
  return loading || noData || noFields;
612
624
  };
625
+ var PlaceholderContainer = styled_components_default.div`
626
+ /* The inline token color wins when supported. Older browsers discard an
627
+ unsupported oklch value and retain this inherited fallback instead. */
628
+ color: ${(0, themes_exports.pick)({
629
+ dark: "#fafafa",
630
+ light: "#2c2c2c"
631
+ })};
632
+ `;
613
633
  var IconPlaceholder = (props) => {
614
634
  const {
615
635
  width = SplunkVisualization_default.defaults.width,
@@ -624,7 +644,6 @@ var IconPlaceholder = (props) => {
624
644
  style: {
625
645
  left: "50%",
626
646
  top: "50%",
627
- color: iconColor,
628
647
  opacity: 0.15,
629
648
  position: "absolute",
630
649
  transform: "translate(-50%, -50%)"
@@ -634,7 +653,14 @@ var IconPlaceholder = (props) => {
634
653
  "data-test": "icon-placeholder"
635
654
  });
636
655
  }
637
- return /* @__PURE__ */ react_exports.createElement("div", { style: { width, height, background: backgroundColor } }, content);
656
+ return /* @__PURE__ */ react_exports.createElement(
657
+ PlaceholderContainer,
658
+ {
659
+ "data-test": "icon-placeholder-container",
660
+ style: { width, height, background: backgroundColor, color: iconColor }
661
+ },
662
+ content
663
+ );
638
664
  };
639
665
  var IconPlaceholder_default = FixedSizeContainer_default(IconPlaceholder);
640
666
 
@@ -680,9 +706,9 @@ var numberUtils_exports = {};
680
706
  __export(numberUtils_exports, {
681
707
  default: () => numberUtils_default
682
708
  });
683
- var defaultImport22 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
709
+ var defaultImport23 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
684
710
  __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUtils"));
685
- var numberUtils_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
711
+ var numberUtils_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
686
712
 
687
713
  // src/common/utils/dataUtils.ts
688
714
  var convertToArrOfObjects = (columns, fields) => {
@@ -726,7 +752,7 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
726
752
  let avgY = 0;
727
753
  let avgRangeStart = Math.floor((i + 1) * every) + 1;
728
754
  let avgRangeEnd = Math.floor((i + 2) * every) + 1;
729
- avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
755
+ avgRangeEnd = Math.min(avgRangeEnd, dataLength);
730
756
  const avgRangeLength = avgRangeEnd - avgRangeStart;
731
757
  for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
732
758
  avgX += Number(data[avgRangeStart][0]);
@@ -761,9 +787,9 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
761
787
  };
762
788
  var strictlyCoerceYColumn = (column, options) => {
763
789
  const isNullCoercionEnabled = options.nullValueDisplay === "zero";
764
- const canLooselyCoerceSomeValues = column.findIndex(
790
+ const canLooselyCoerceSomeValues = column.some(
765
791
  (value) => (0, numberUtils_exports.startsWithNumber)(`${value}`) || isNullCoercionEnabled && value === null
766
- ) >= 0;
792
+ );
767
793
  const coercedColumn = [];
768
794
  const canDownsampleColumn = !column.some((value) => {
769
795
  const coercedValue = Number(value);
@@ -782,7 +808,7 @@ var strictlyCoerceYColumn = (column, options) => {
782
808
  };
783
809
  var strictlyCoerceXColumn = (column, fieldType) => {
784
810
  if (fieldType === "number") {
785
- const coercedXColumn = column.map((xValue) => Number(xValue));
811
+ const coercedXColumn = column.map(Number);
786
812
  if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {
787
813
  return coercedXColumn;
788
814
  }
@@ -1081,16 +1107,16 @@ var FeatureFlags_exports = {};
1081
1107
  __export(FeatureFlags_exports, {
1082
1108
  default: () => FeatureFlags_default
1083
1109
  });
1084
- var defaultImport23 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1110
+ var defaultImport24 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1085
1111
  __reExport(FeatureFlags_exports, require("@splunk/visualization-context/FeatureFlags"));
1086
- var FeatureFlags_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
1112
+ var FeatureFlags_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
1087
1113
 
1088
1114
  // src/common/utils/featureFlagUtils.ts
1089
1115
  var getFeatureFlag = (context, flagName) => {
1090
- if (context && Object.keys(context).find((key) => key === flagName)) {
1116
+ if (context && Object.keys(context).includes(flagName)) {
1091
1117
  return context[flagName];
1092
1118
  }
1093
- if (Object.keys(FeatureFlags_default).find((key) => key === flagName)) {
1119
+ if (Object.keys(FeatureFlags_default).includes(flagName)) {
1094
1120
  return FeatureFlags_default[flagName];
1095
1121
  }
1096
1122
  return false;
@@ -1101,9 +1127,9 @@ var trellisUtils_exports = {};
1101
1127
  __export(trellisUtils_exports, {
1102
1128
  default: () => trellisUtils_default
1103
1129
  });
1104
- var defaultImport24 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1130
+ var defaultImport25 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1105
1131
  __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisUtils"));
1106
- var trellisUtils_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
1132
+ var trellisUtils_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
1107
1133
 
1108
1134
  // src/common/utils/trellisUtils.ts
1109
1135
  var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
@@ -1120,9 +1146,9 @@ var visualization_canvas_exports = {};
1120
1146
  __export(visualization_canvas_exports, {
1121
1147
  default: () => visualization_canvas_default
1122
1148
  });
1123
- var defaultImport25 = __toESM(require("@splunk/visualization-canvas"));
1149
+ var defaultImport26 = __toESM(require("@splunk/visualization-canvas"));
1124
1150
  __reExport(visualization_canvas_exports, require("@splunk/visualization-canvas"));
1125
- var visualization_canvas_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
1151
+ var visualization_canvas_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1126
1152
 
1127
1153
  // src/common/components/VizStyleWrapper.jsx
1128
1154
  var VizStyleWrapper = styled_components_default.div.attrs(({ dataTestKey }) => ({
@@ -1144,27 +1170,27 @@ var Triangle_exports = {};
1144
1170
  __export(Triangle_exports, {
1145
1171
  default: () => Triangle_default
1146
1172
  });
1147
- var defaultImport26 = __toESM(require("@splunk/react-icons/Triangle"));
1173
+ var defaultImport27 = __toESM(require("@splunk/react-icons/Triangle"));
1148
1174
  __reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
1149
- var Triangle_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1175
+ var Triangle_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1150
1176
 
1151
1177
  // esm-externals:@splunk/visualizations-shared/propUtils
1152
1178
  var propUtils_exports = {};
1153
1179
  __export(propUtils_exports, {
1154
1180
  default: () => propUtils_default
1155
1181
  });
1156
- var defaultImport27 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1182
+ var defaultImport28 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1157
1183
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
1158
- var propUtils_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1184
+ var propUtils_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1159
1185
 
1160
1186
  // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
1161
1187
  var simpleXMLOptions_exports = {};
1162
1188
  __export(simpleXMLOptions_exports, {
1163
1189
  default: () => simpleXMLOptions_default
1164
1190
  });
1165
- var defaultImport28 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1191
+ var defaultImport29 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1166
1192
  __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
1167
- var simpleXMLOptions_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1193
+ var simpleXMLOptions_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1168
1194
 
1169
1195
  // src/common/chartingUtils.ts
1170
1196
  var DEFAULT_LINE_WIDTH = 2;
@@ -1203,9 +1229,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
1203
1229
  const xAxisIsTime = xField === "_time";
1204
1230
  return !!rangeSelectEventHandler && xAxisIsTime;
1205
1231
  };
1206
- var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
1232
+ var canvasSupportedTimeSeriesCharts = /* @__PURE__ */ new Set(["splunk.line", "splunk.area"]);
1207
1233
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
1208
- return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
1234
+ return canvasSupportedTimeSeriesCharts.has(vizConfigKey);
1209
1235
  };
1210
1236
  var filterChartDataFromInternalFields = (chartData) => {
1211
1237
  const { fields, columns } = chartData;
@@ -1221,7 +1247,7 @@ var filterChartDataFromInternalFields = (chartData) => {
1221
1247
  return { fields: filteredFields, columns: filteredColumns };
1222
1248
  };
1223
1249
  var convert2DArrayToNumbers = (arr) => {
1224
- return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
1250
+ return arr.map((subArray) => subArray.map((element) => Number.parseFloat(element)));
1225
1251
  };
1226
1252
  var parseAxisValue = (val) => {
1227
1253
  if (val === void 0 || val === null || val === "auto" || val === "") {
@@ -1259,6 +1285,7 @@ var getLegend = (props) => {
1259
1285
  return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
1260
1286
  wrap: true
1261
1287
  }, commonLegendProps));
1288
+ // Note: By default, use right legend
1262
1289
  default:
1263
1290
  return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
1264
1291
  }
@@ -1391,10 +1418,10 @@ var getSeriesOverrides = (opts) => {
1391
1418
  let spanGaps;
1392
1419
  if (nullValueMode === "gaps") {
1393
1420
  spanGaps = false;
1394
- } else if (nullValueMode != null) {
1395
- spanGaps = true;
1396
- } else {
1421
+ } else if (nullValueMode == null) {
1397
1422
  spanGaps = void 0;
1423
+ } else {
1424
+ spanGaps = true;
1398
1425
  }
1399
1426
  const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
1400
1427
  const isAreaChart = type === "area";
@@ -1467,9 +1494,9 @@ var visualization_schemas_exports = {};
1467
1494
  __export(visualization_schemas_exports, {
1468
1495
  default: () => visualization_schemas_default
1469
1496
  });
1470
- var defaultImport29 = __toESM(require("@splunk/visualization-schemas"));
1497
+ var defaultImport30 = __toESM(require("@splunk/visualization-schemas"));
1471
1498
  __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
1472
- var visualization_schemas_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1499
+ var visualization_schemas_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1473
1500
 
1474
1501
  // src/common/hooks/useTrellisEnabled.ts
1475
1502
  var useTrellisFeatureFlagOn = () => {
@@ -1834,11 +1861,11 @@ var TimeSeriesChartWrapper = (props) => {
1834
1861
  y2AxisMajorUnitFromSimpleXML,
1835
1862
  y2AxisMajorTickInterval
1836
1863
  );
1837
- const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
1838
- const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
1839
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
1840
- const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
1841
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
1864
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize == null ? void 0 : Number(xAxisMajorTickSize);
1865
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize == null ? void 0 : Number(yAxisMajorTickSize);
1866
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize == null ? void 0 : Number(y2AxisMajorTickSize);
1867
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize == null ? void 0 : Number(yAxisMinorTickSize);
1868
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize == null ? void 0 : Number(y2AxisMinorTickSize);
1842
1869
  const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
1843
1870
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
1844
1871
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
@@ -2250,6 +2277,76 @@ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTr
2250
2277
  });
2251
2278
  return result;
2252
2279
  };
2280
+ var buildAllEventCallbackProps = (events, evaluatedOptionsToUse, onEventTrigger, { supportsEvents, hasEventHandlers, mode }) => {
2281
+ if (!supportsEvents) return {};
2282
+ const defaultEvents = {};
2283
+ const userEvents = {};
2284
+ Object.entries(events || {}).forEach(([eventKey, eventConfig]) => {
2285
+ (eventConfig.source === "default" ? defaultEvents : userEvents)[eventKey] = eventConfig;
2286
+ });
2287
+ const userProps = hasEventHandlers && mode === "view" ? buildEventCallbackProps(userEvents, evaluatedOptionsToUse, onEventTrigger) : {};
2288
+ return __spreadValues(__spreadValues({}, userProps), buildEventCallbackProps(defaultEvents, evaluatedOptionsToUse, onEventTrigger));
2289
+ };
2290
+ var applyContextTimezone = (localeContext) => {
2291
+ if (localeContext.serializedTimezone && !moment_default.getDefaultSplunkTimezone()) {
2292
+ moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2293
+ }
2294
+ };
2295
+ var getAsyncOptionsEvaluationParams = ({
2296
+ visualizationID,
2297
+ props,
2298
+ optionsToEvaluate,
2299
+ downsampledDataSources,
2300
+ vizConfig,
2301
+ bypassCloneDeepOptionScope,
2302
+ lazyLoadingDataFrame
2303
+ }) => {
2304
+ return {
2305
+ visualizationID,
2306
+ props,
2307
+ options: __spreadValues({}, optionsToEvaluate),
2308
+ dataSources: downsampledDataSources,
2309
+ theme: vizConfig.themes,
2310
+ bypassCloneDeepOptionScope,
2311
+ lazyLoadingDataFrame
2312
+ };
2313
+ };
2314
+ var evaluateOptionsSync = ({
2315
+ optionsToEvaluate,
2316
+ downsampledDataSources,
2317
+ dataSourcesInState,
2318
+ dataFramesInState,
2319
+ setDataSourcesInState,
2320
+ setDataFramesInState,
2321
+ computeDataFrames,
2322
+ featureFlagContext,
2323
+ themeFunc
2324
+ }) => {
2325
+ let dataFrames = dataFramesInState;
2326
+ if (downsampledDataSources !== dataSourcesInState) {
2327
+ setDataSourcesInState(downsampledDataSources);
2328
+ dataFrames = Options_exports.Options.dataFrameFromDataSource(
2329
+ downsampledDataSources,
2330
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2331
+ );
2332
+ setDataFramesInState(dataFrames);
2333
+ }
2334
+ let mergedFrames = dataFrames;
2335
+ if (computeDataFrames && dataFrames) {
2336
+ const derivedFrames = computeDataFrames({
2337
+ dataSources: downsampledDataSources,
2338
+ options: optionsToEvaluate.options
2339
+ });
2340
+ mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2341
+ }
2342
+ return Options_exports.Options.evaluate(
2343
+ optionsToEvaluate,
2344
+ downsampledDataSources,
2345
+ themeFunc,
2346
+ mergedFrames,
2347
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2348
+ );
2349
+ };
2253
2350
  var withDashboardViz = (opts) => {
2254
2351
  const {
2255
2352
  ReactViz,
@@ -2281,11 +2378,7 @@ var withDashboardViz = (opts) => {
2281
2378
  onRequestParamsChange = lodash_exports.noop
2282
2379
  } = props;
2283
2380
  const localeContext = react_exports.useContext(TimezoneContext_default);
2284
- if (localeContext.serializedTimezone) {
2285
- if (!moment_default.getDefaultSplunkTimezone()) {
2286
- moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2287
- }
2288
- }
2381
+ applyContextTimezone(localeContext);
2289
2382
  const themeFunc = (themeVar) => {
2290
2383
  var _a2, _b;
2291
2384
  return (_b = (_a2 = vizConfig.themes)[themeVar]) == null ? void 0 : _b.call(_a2, props);
@@ -2313,7 +2406,12 @@ var withDashboardViz = (opts) => {
2313
2406
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
2314
2407
  );
2315
2408
  const isAcceleratedRenderOn = isAcceleratedRenderFeatureFlagOn && isTimeSeriesCanvasRenderSupported(vizConfig.key) && (options == null ? void 0 : options.acceleratedRender) === true;
2316
- const isMounted = react_exports.useRef(true);
2409
+ const bypassCloneDeepOptionScope = Boolean(
2410
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2411
+ );
2412
+ const lazyLoadingDataFrame = Boolean(
2413
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2414
+ );
2317
2415
  const optionsToEvaluate = react_exports.useMemo(() => {
2318
2416
  var _a2;
2319
2417
  const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
@@ -2352,63 +2450,74 @@ var withDashboardViz = (opts) => {
2352
2450
  threshold,
2353
2451
  isDownsamplingEnabled
2354
2452
  });
2355
- evaluatedOptions = useDeepMemo(() => {
2453
+ const asyncOptionsEvaluationParams = useDeepMemo(
2454
+ () => getAsyncOptionsEvaluationParams({
2455
+ visualizationID,
2456
+ props,
2457
+ optionsToEvaluate,
2458
+ downsampledDataSources,
2459
+ vizConfig,
2460
+ bypassCloneDeepOptionScope,
2461
+ lazyLoadingDataFrame
2462
+ }),
2463
+ [
2464
+ visualizationID,
2465
+ optionsToEvaluate,
2466
+ downsampledDataSources,
2467
+ vizConfig,
2468
+ bypassCloneDeepOptionScope,
2469
+ lazyLoadingDataFrame,
2470
+ currentThemeFamily,
2471
+ currentThemeColorScheme,
2472
+ currentThemeDensity,
2473
+ localeContext.serializedTimezone
2474
+ ]
2475
+ );
2476
+ react_exports.useEffect(() => {
2477
+ if (!useAsyncEvaluatedOptions) {
2478
+ return void 0;
2479
+ }
2480
+ let ownsEvaluation = true;
2356
2481
  try {
2357
- if (useAsyncEvaluatedOptions) {
2358
- const asyncDynamicOptionsEvaluatorParams = {
2359
- visualizationID,
2360
- props,
2361
- options: optionsToEvaluate,
2362
- dataSources: downsampledDataSources,
2363
- theme: vizConfig.themes,
2364
- bypassCloneDeepOptionScope: Boolean(
2365
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2366
- ),
2367
- lazyLoadingDataFrame: Boolean(
2368
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2369
- )
2370
- };
2371
- async_dynamic_options_evaluator_default.evaluate(asyncDynamicOptionsEvaluatorParams).then((results) => {
2482
+ async_dynamic_options_evaluator_default.evaluate(asyncOptionsEvaluationParams).then((results) => {
2483
+ if (ownsEvaluation) {
2372
2484
  setEvaluatedOptionsAsync(results.results);
2373
- }).catch(() => {
2374
- if (isMounted.current) {
2375
- setUseAsyncEvaluatedOptions(false);
2376
- }
2377
- });
2378
- } else {
2379
- let dataFrames = dataFramesInState;
2380
- if (downsampledDataSources !== dataSourcesInState) {
2381
- setDataSourcesInState(downsampledDataSources);
2382
- dataFrames = Options_exports.Options.dataFrameFromDataSource(
2383
- downsampledDataSources,
2384
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2385
- );
2386
- setDataFramesInState(dataFrames);
2387
2485
  }
2388
- let mergedFrames = dataFrames;
2389
- if (computeDataFrames && dataFrames) {
2390
- const derivedFrames = computeDataFrames({
2391
- dataSources: downsampledDataSources,
2392
- options: optionsToEvaluate.options
2393
- });
2394
- mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2486
+ }).catch(() => {
2487
+ if (ownsEvaluation) {
2488
+ setUseAsyncEvaluatedOptions(false);
2395
2489
  }
2396
- const result = Options_exports.Options.evaluate(
2397
- optionsToEvaluate,
2398
- downsampledDataSources,
2399
- themeFunc,
2400
- mergedFrames,
2401
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2402
- );
2403
- return result;
2490
+ });
2491
+ } catch (e) {
2492
+ setUseAsyncEvaluatedOptions(false);
2493
+ }
2494
+ return () => {
2495
+ ownsEvaluation = false;
2496
+ async_dynamic_options_evaluator_default.reset(visualizationID);
2497
+ };
2498
+ }, [asyncOptionsEvaluationParams, useAsyncEvaluatedOptions, visualizationID]);
2499
+ evaluatedOptions = useDeepMemo(() => {
2500
+ try {
2501
+ if (useAsyncEvaluatedOptions) {
2502
+ return {};
2404
2503
  }
2504
+ return evaluateOptionsSync({
2505
+ optionsToEvaluate,
2506
+ downsampledDataSources,
2507
+ dataSourcesInState,
2508
+ dataFramesInState,
2509
+ setDataSourcesInState,
2510
+ setDataFramesInState,
2511
+ computeDataFrames,
2512
+ featureFlagContext,
2513
+ themeFunc
2514
+ });
2405
2515
  } catch (e) {
2406
2516
  if (e instanceof Error) {
2407
2517
  console.error(`unexpected error evaluating options: ${e.message}`);
2408
2518
  }
2409
2519
  return {};
2410
2520
  }
2411
- return {};
2412
2521
  }, [
2413
2522
  currentThemeFamily,
2414
2523
  currentThemeColorScheme,
@@ -2418,7 +2527,7 @@ var withDashboardViz = (opts) => {
2418
2527
  localeContext.serializedTimezone,
2419
2528
  useAsyncEvaluatedOptions
2420
2529
  ]);
2421
- const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
2530
+ const evaluatedOptionsToUse = useAsyncEvaluatedOptions ? evaluatedOptionsAsync : evaluatedOptions;
2422
2531
  let dataSourceMetadata = {};
2423
2532
  const OptionKey = "paginateDataSourceKey";
2424
2533
  const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
@@ -2440,7 +2549,7 @@ var withDashboardViz = (opts) => {
2440
2549
  sortParams,
2441
2550
  paginatorParams
2442
2551
  };
2443
- if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) === -1 && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2552
+ if (!vizConfig.supports.includes("page-and-sort" /* PAGE_AND_SORT */) && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2444
2553
  dataSourceMetadata = {};
2445
2554
  }
2446
2555
  const clonedEvaluatedOptions = __spreadValues({}, evaluatedOptionsToUse);
@@ -2450,14 +2559,6 @@ var withDashboardViz = (opts) => {
2450
2559
  react_exports.useEffect(() => {
2451
2560
  onComputedProps(clonedEvaluatedOptions);
2452
2561
  });
2453
- react_exports.useEffect(() => {
2454
- return () => {
2455
- if (useAsyncEvaluatedOptions) {
2456
- isMounted.current = false;
2457
- async_dynamic_options_evaluator_default.reset(visualizationID);
2458
- }
2459
- };
2460
- }, []);
2461
2562
  const { requiredProps = [], supports } = vizConfig;
2462
2563
  const missing = missingKeys(requiredProps, evaluatedOptionsToUse);
2463
2564
  if (missing.length > 0 && supports.includes("placeholder" /* PLACEHOLDER */) && vizConfig.key !== "splunk.singlevalue") {
@@ -2472,7 +2573,16 @@ var withDashboardViz = (opts) => {
2472
2573
  }
2473
2574
  );
2474
2575
  }
2475
- const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
2576
+ const eventCallbackProps = buildAllEventCallbackProps(
2577
+ vizConfig.events,
2578
+ evaluatedOptionsToUse,
2579
+ onEventTrigger,
2580
+ {
2581
+ supportsEvents: vizConfig.supports.includes("events" /* EVENTS */),
2582
+ hasEventHandlers,
2583
+ mode
2584
+ }
2585
+ );
2476
2586
  const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
2477
2587
  // Align option transformation with the actual renderer selected below.
2478
2588
  // This prevents canvas-only option preservation from leaking into Highcharts mode.
@@ -2500,8 +2610,9 @@ var withDashboardViz = (opts) => {
2500
2610
  onEventTrigger: SplunkVisualization_default.defaults.onEventTrigger
2501
2611
  });
2502
2612
  DashboardViz.config = vizConfig;
2503
- return (0, styled_components_exports.withTheme)(
2504
- withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)
2613
+ return Object.assign(
2614
+ (0, styled_components_exports.withTheme)(withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)),
2615
+ { config: vizConfig }
2505
2616
  );
2506
2617
  };
2507
2618
  var withDashboardViz_default = withDashboardViz;
@@ -2511,9 +2622,9 @@ var visualization_color_palettes_exports = {};
2511
2622
  __export(visualization_color_palettes_exports, {
2512
2623
  default: () => visualization_color_palettes_default
2513
2624
  });
2514
- var defaultImport30 = __toESM(require("@splunk/visualization-color-palettes"));
2625
+ var defaultImport31 = __toESM(require("@splunk/visualization-color-palettes"));
2515
2626
  __reExport(visualization_color_palettes_exports, require("@splunk/visualization-color-palettes"));
2516
- var visualization_color_palettes_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
2627
+ var visualization_color_palettes_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
2517
2628
 
2518
2629
  // src/Treemap/PureTreemap/utils/treemapDataUtils.ts
2519
2630
  var PARENT_VALUE_LESS_THAN_CHILDREN_ERROR = "Error: The given parent values is less than the sum of its children. Set sumFromLeafNodes true to generate parent values from children.";
@@ -2749,9 +2860,9 @@ var d3_hierarchy_exports = {};
2749
2860
  __export(d3_hierarchy_exports, {
2750
2861
  default: () => d3_hierarchy_default
2751
2862
  });
2752
- var defaultImport31 = __toESM(require("d3-hierarchy"));
2863
+ var defaultImport32 = __toESM(require("d3-hierarchy"));
2753
2864
  __reExport(d3_hierarchy_exports, require("d3-hierarchy"));
2754
- var d3_hierarchy_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
2865
+ var d3_hierarchy_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
2755
2866
 
2756
2867
  // src/Treemap/PureTreemap/utils/treemapLayout.ts
2757
2868
  var GAP = 4;
@@ -3053,9 +3164,9 @@ var chroma_js_exports = {};
3053
3164
  __export(chroma_js_exports, {
3054
3165
  default: () => chroma_js_default
3055
3166
  });
3056
- var defaultImport32 = __toESM(require("chroma-js"));
3167
+ var defaultImport33 = __toESM(require("chroma-js"));
3057
3168
  __reExport(chroma_js_exports, require("chroma-js"));
3058
- var chroma_js_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
3169
+ var chroma_js_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
3059
3170
 
3060
3171
  // src/Treemap/PureTreemap/utils/treemapColorUtils.ts
3061
3172
  var WCAG_LUMINANCE_THRESHOLD = 0.182;
@@ -3657,40 +3768,54 @@ var computeTextWidth = (text, font) => {
3657
3768
  const measure = context.measureText(text);
3658
3769
  return measure.width;
3659
3770
  };
3771
+ var truncateEnd = (text, context, maxWidth, ellipsis) => {
3772
+ for (let i = text.length - 1; i > 0; i -= 1) {
3773
+ const truncatedText = text.slice(0, i) + ellipsis;
3774
+ if (context.measureText(truncatedText).width <= maxWidth) {
3775
+ return truncatedText;
3776
+ }
3777
+ }
3778
+ return ellipsis;
3779
+ };
3780
+ var truncateStart = (text, context, maxWidth, ellipsis) => {
3781
+ for (let i = 0; i < text.length; i += 1) {
3782
+ const truncatedText = ellipsis + text.slice(i);
3783
+ if (context.measureText(truncatedText).width <= maxWidth) {
3784
+ return truncatedText;
3785
+ }
3786
+ }
3787
+ return ellipsis;
3788
+ };
3789
+ var truncateMiddle = (text, context, maxWidth, ellipsis) => {
3790
+ const ellipsisWidth = context.measureText(ellipsis).width;
3791
+ for (let i = 0; i < text.length / 2; i += 1) {
3792
+ const left = text.slice(0, Math.floor(text.length / 2) - i);
3793
+ const right = text.slice(Math.ceil(text.length / 2) + i);
3794
+ const truncatedText = left + ellipsis + right;
3795
+ if (context.measureText(left).width + ellipsisWidth + context.measureText(right).width <= maxWidth) {
3796
+ return truncatedText;
3797
+ }
3798
+ }
3799
+ return ellipsis;
3800
+ };
3660
3801
  var truncateText = (text, maxWidth, truncationType, font = `10px ${VIZ_FONT_FAMILY}`) => {
3661
3802
  const canvas = document.createElement("canvas");
3662
3803
  const context = canvas.getContext("2d");
3663
3804
  if (!context) return text;
3664
3805
  context.font = font;
3665
3806
  const ellipsis = "...";
3666
- const ellipsisWidth = context.measureText(ellipsis).width;
3667
3807
  const fullTextWidth = context.measureText(text).width;
3668
3808
  if (fullTextWidth <= maxWidth) {
3669
3809
  return text;
3670
3810
  }
3671
3811
  if (truncationType === "ellipsisEnd") {
3672
- for (let i = text.length - 1; i > 0; i -= 1) {
3673
- const truncatedText = text.slice(0, i) + ellipsis;
3674
- if (context.measureText(truncatedText).width <= maxWidth) {
3675
- return truncatedText;
3676
- }
3677
- }
3678
- } else if (truncationType === "ellipsisStart") {
3679
- for (let i = 0; i < text.length; i += 1) {
3680
- const truncatedText = ellipsis + text.slice(i);
3681
- if (context.measureText(truncatedText).width <= maxWidth) {
3682
- return truncatedText;
3683
- }
3684
- }
3685
- } else if (truncationType === "ellipsisMiddle") {
3686
- for (let i = 0; i < text.length / 2; i += 1) {
3687
- const left = text.slice(0, Math.floor(text.length / 2) - i);
3688
- const right = text.slice(Math.ceil(text.length / 2) + i);
3689
- const truncatedText = left + ellipsis + right;
3690
- if (context.measureText(left).width + ellipsisWidth + context.measureText(right).width <= maxWidth) {
3691
- return truncatedText;
3692
- }
3693
- }
3812
+ return truncateEnd(text, context, maxWidth, ellipsis);
3813
+ }
3814
+ if (truncationType === "ellipsisStart") {
3815
+ return truncateStart(text, context, maxWidth, ellipsis);
3816
+ }
3817
+ if (truncationType === "ellipsisMiddle") {
3818
+ return truncateMiddle(text, context, maxWidth, ellipsis);
3694
3819
  }
3695
3820
  return ellipsis;
3696
3821
  };
@@ -5160,9 +5285,9 @@ var Popover_exports = {};
5160
5285
  __export(Popover_exports, {
5161
5286
  default: () => Popover_default
5162
5287
  });
5163
- var defaultImport33 = __toESM(require("@splunk/react-ui/Popover"));
5288
+ var defaultImport34 = __toESM(require("@splunk/react-ui/Popover"));
5164
5289
  __reExport(Popover_exports, require("@splunk/react-ui/Popover"));
5165
- var Popover_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
5290
+ var Popover_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
5166
5291
 
5167
5292
  // src/Treemap/PureTreemap/components/TreemapTooltip.tsx
5168
5293
  var StyledPopover = styled_components_default(Popover_default)`
@@ -5806,18 +5931,9 @@ var PresetPalettes_exports = {};
5806
5931
  __export(PresetPalettes_exports, {
5807
5932
  default: () => PresetPalettes_default
5808
5933
  });
5809
- var defaultImport34 = __toESM(require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
5934
+ var defaultImport35 = __toESM(require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
5810
5935
  __reExport(PresetPalettes_exports, require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
5811
- var PresetPalettes_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
5812
-
5813
- // esm-externals:@splunk/themes
5814
- var themes_exports = {};
5815
- __export(themes_exports, {
5816
- default: () => themes_default
5817
- });
5818
- var defaultImport35 = __toESM(require("@splunk/themes"));
5819
- __reExport(themes_exports, require("@splunk/themes"));
5820
- var themes_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
5936
+ var PresetPalettes_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
5821
5937
 
5822
5938
  // esm-externals:@splunk/react-icons/Treemap
5823
5939
  var Treemap_exports = {};