@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/Punchcard.js CHANGED
@@ -620,7 +620,10 @@ var useSortingParams = ({ requestParams, onRequestParamsChange }) => {
620
620
  onSort = (e, { sortKey, sortDir }) => {
621
621
  if (typeof sortKey === "string") {
622
622
  const nextSortDir = (0, lodash_exports.has)(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : "none";
623
- onRequestParamsChange(__spreadValues(__spreadValues({}, requestParams), { offset: 0, sort: { [sortKey]: nextSortDir } }));
623
+ onRequestParamsChange(__spreadProps(__spreadValues({}, requestParams), {
624
+ offset: 0,
625
+ sort: { [sortKey]: nextSortDir }
626
+ }));
624
627
  } else {
625
628
  onRequestParamsChange(requestParams);
626
629
  }
@@ -755,7 +758,7 @@ var Cover = styled_components_default.div`
755
758
  bottom: 0;
756
759
  `;
757
760
  var Blocker = styled_components_default.div.attrs({
758
- "data-splunk-visualization-version": "28.8.0 - 633c53372"
761
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
759
762
  })`
760
763
  position: relative;
761
764
  width: 100%;
@@ -781,14 +784,23 @@ var defaultImport25 = __toESM(require("@splunk/visualizations-shared/colorUtils"
781
784
  __reExport(colorUtils_exports, require("@splunk/visualizations-shared/colorUtils"));
782
785
  var colorUtils_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
783
786
 
787
+ // esm-externals:@splunk/themes
788
+ var themes_exports = {};
789
+ __export(themes_exports, {
790
+ default: () => themes_default
791
+ });
792
+ var defaultImport26 = __toESM(require("@splunk/themes"));
793
+ __reExport(themes_exports, require("@splunk/themes"));
794
+ var themes_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
795
+
784
796
  // esm-externals:@splunk/visualizations-shared/style
785
797
  var style_exports = {};
786
798
  __export(style_exports, {
787
799
  default: () => style_default
788
800
  });
789
- var defaultImport26 = __toESM(require("@splunk/visualizations-shared/style"));
801
+ var defaultImport27 = __toESM(require("@splunk/visualizations-shared/style"));
790
802
  __reExport(style_exports, require("@splunk/visualizations-shared/style"));
791
- var style_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
803
+ var style_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
792
804
 
793
805
  // src/common/hocs/FixedSizeContainer.tsx
794
806
  var Item = styled_components_default.div.attrs(({ width }) => ({
@@ -845,7 +857,7 @@ var withFixedSizeContainer = (Viz) => {
845
857
  FixSizeItem,
846
858
  {
847
859
  "data-test": "fix-size-item",
848
- "data-splunk-visualization-version": "28.8.0 - 633c53372",
860
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
849
861
  width,
850
862
  height,
851
863
  backgroundColor
@@ -866,6 +878,14 @@ var shouldShowIconPlaceholder = (dataSources, loading = false) => {
866
878
  const noFields = fields === void 0;
867
879
  return loading || noData || noFields;
868
880
  };
881
+ var PlaceholderContainer = styled_components_default.div`
882
+ /* The inline token color wins when supported. Older browsers discard an
883
+ unsupported oklch value and retain this inherited fallback instead. */
884
+ color: ${(0, themes_exports.pick)({
885
+ dark: "#fafafa",
886
+ light: "#2c2c2c"
887
+ })};
888
+ `;
869
889
  var IconPlaceholder = (props) => {
870
890
  const {
871
891
  width = SplunkVisualization_default.defaults.width,
@@ -880,7 +900,6 @@ var IconPlaceholder = (props) => {
880
900
  style: {
881
901
  left: "50%",
882
902
  top: "50%",
883
- color: iconColor,
884
903
  opacity: 0.15,
885
904
  position: "absolute",
886
905
  transform: "translate(-50%, -50%)"
@@ -890,7 +909,14 @@ var IconPlaceholder = (props) => {
890
909
  "data-test": "icon-placeholder"
891
910
  });
892
911
  }
893
- return /* @__PURE__ */ react_exports.createElement("div", { style: { width, height, background: backgroundColor } }, content);
912
+ return /* @__PURE__ */ react_exports.createElement(
913
+ PlaceholderContainer,
914
+ {
915
+ "data-test": "icon-placeholder-container",
916
+ style: { width, height, background: backgroundColor, color: iconColor }
917
+ },
918
+ content
919
+ );
894
920
  };
895
921
  var IconPlaceholder_default = FixedSizeContainer_default(IconPlaceholder);
896
922
 
@@ -936,9 +962,9 @@ var numberUtils_exports = {};
936
962
  __export(numberUtils_exports, {
937
963
  default: () => numberUtils_default
938
964
  });
939
- var defaultImport27 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
965
+ var defaultImport28 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
940
966
  __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUtils"));
941
- var numberUtils_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
967
+ var numberUtils_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
942
968
 
943
969
  // src/common/utils/dataUtils.ts
944
970
  var getFieldName = (field) => typeof field === "string" ? field : field.name;
@@ -964,7 +990,7 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
964
990
  let avgY = 0;
965
991
  let avgRangeStart = Math.floor((i + 1) * every2) + 1;
966
992
  let avgRangeEnd = Math.floor((i + 2) * every2) + 1;
967
- avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
993
+ avgRangeEnd = Math.min(avgRangeEnd, dataLength);
968
994
  const avgRangeLength = avgRangeEnd - avgRangeStart;
969
995
  for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
970
996
  avgX += Number(data[avgRangeStart][0]);
@@ -999,9 +1025,9 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
999
1025
  };
1000
1026
  var strictlyCoerceYColumn = (column, options) => {
1001
1027
  const isNullCoercionEnabled = options.nullValueDisplay === "zero";
1002
- const canLooselyCoerceSomeValues = column.findIndex(
1028
+ const canLooselyCoerceSomeValues = column.some(
1003
1029
  (value) => (0, numberUtils_exports.startsWithNumber)(`${value}`) || isNullCoercionEnabled && value === null
1004
- ) >= 0;
1030
+ );
1005
1031
  const coercedColumn = [];
1006
1032
  const canDownsampleColumn = !column.some((value) => {
1007
1033
  const coercedValue = Number(value);
@@ -1020,7 +1046,7 @@ var strictlyCoerceYColumn = (column, options) => {
1020
1046
  };
1021
1047
  var strictlyCoerceXColumn = (column, fieldType) => {
1022
1048
  if (fieldType === "number") {
1023
- const coercedXColumn = column.map((xValue) => Number(xValue));
1049
+ const coercedXColumn = column.map(Number);
1024
1050
  if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {
1025
1051
  return coercedXColumn;
1026
1052
  }
@@ -1319,16 +1345,16 @@ var FeatureFlags_exports = {};
1319
1345
  __export(FeatureFlags_exports, {
1320
1346
  default: () => FeatureFlags_default
1321
1347
  });
1322
- var defaultImport28 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1348
+ var defaultImport29 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1323
1349
  __reExport(FeatureFlags_exports, require("@splunk/visualization-context/FeatureFlags"));
1324
- var FeatureFlags_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1350
+ var FeatureFlags_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1325
1351
 
1326
1352
  // src/common/utils/featureFlagUtils.ts
1327
1353
  var getFeatureFlag = (context, flagName) => {
1328
- if (context && Object.keys(context).find((key) => key === flagName)) {
1354
+ if (context && Object.keys(context).includes(flagName)) {
1329
1355
  return context[flagName];
1330
1356
  }
1331
- if (Object.keys(FeatureFlags_default).find((key) => key === flagName)) {
1357
+ if (Object.keys(FeatureFlags_default).includes(flagName)) {
1332
1358
  return FeatureFlags_default[flagName];
1333
1359
  }
1334
1360
  return false;
@@ -1339,9 +1365,9 @@ var trellisUtils_exports = {};
1339
1365
  __export(trellisUtils_exports, {
1340
1366
  default: () => trellisUtils_default
1341
1367
  });
1342
- var defaultImport29 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1368
+ var defaultImport30 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1343
1369
  __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisUtils"));
1344
- var trellisUtils_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1370
+ var trellisUtils_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1345
1371
 
1346
1372
  // src/common/utils/trellisUtils.ts
1347
1373
  var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
@@ -1358,9 +1384,9 @@ var visualization_canvas_exports = {};
1358
1384
  __export(visualization_canvas_exports, {
1359
1385
  default: () => visualization_canvas_default
1360
1386
  });
1361
- var defaultImport30 = __toESM(require("@splunk/visualization-canvas"));
1387
+ var defaultImport31 = __toESM(require("@splunk/visualization-canvas"));
1362
1388
  __reExport(visualization_canvas_exports, require("@splunk/visualization-canvas"));
1363
- var visualization_canvas_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1389
+ var visualization_canvas_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
1364
1390
 
1365
1391
  // src/common/components/VizStyleWrapper.jsx
1366
1392
  var VizStyleWrapper = styled_components_default.div.attrs(({ dataTestKey }) => ({
@@ -1382,27 +1408,27 @@ var Triangle_exports = {};
1382
1408
  __export(Triangle_exports, {
1383
1409
  default: () => Triangle_default
1384
1410
  });
1385
- var defaultImport31 = __toESM(require("@splunk/react-icons/Triangle"));
1411
+ var defaultImport32 = __toESM(require("@splunk/react-icons/Triangle"));
1386
1412
  __reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
1387
- var Triangle_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
1413
+ var Triangle_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
1388
1414
 
1389
1415
  // esm-externals:@splunk/visualizations-shared/propUtils
1390
1416
  var propUtils_exports = {};
1391
1417
  __export(propUtils_exports, {
1392
1418
  default: () => propUtils_default
1393
1419
  });
1394
- var defaultImport32 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1420
+ var defaultImport33 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1395
1421
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
1396
- var propUtils_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
1422
+ var propUtils_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
1397
1423
 
1398
1424
  // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
1399
1425
  var simpleXMLOptions_exports = {};
1400
1426
  __export(simpleXMLOptions_exports, {
1401
1427
  default: () => simpleXMLOptions_default
1402
1428
  });
1403
- var defaultImport33 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1429
+ var defaultImport34 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1404
1430
  __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
1405
- var simpleXMLOptions_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
1431
+ var simpleXMLOptions_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
1406
1432
 
1407
1433
  // src/common/chartingUtils.ts
1408
1434
  var DEFAULT_LINE_WIDTH = 2;
@@ -1453,9 +1479,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
1453
1479
  const xAxisIsTime = xField === "_time";
1454
1480
  return !!rangeSelectEventHandler && xAxisIsTime;
1455
1481
  };
1456
- var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
1482
+ var canvasSupportedTimeSeriesCharts = /* @__PURE__ */ new Set(["splunk.line", "splunk.area"]);
1457
1483
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
1458
- return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
1484
+ return canvasSupportedTimeSeriesCharts.has(vizConfigKey);
1459
1485
  };
1460
1486
  var filterChartDataFromInternalFields = (chartData) => {
1461
1487
  const { fields, columns } = chartData;
@@ -1471,7 +1497,7 @@ var filterChartDataFromInternalFields = (chartData) => {
1471
1497
  return { fields: filteredFields, columns: filteredColumns };
1472
1498
  };
1473
1499
  var convert2DArrayToNumbers = (arr) => {
1474
- return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
1500
+ return arr.map((subArray) => subArray.map((element) => Number.parseFloat(element)));
1475
1501
  };
1476
1502
  var parseAxisValue = (val) => {
1477
1503
  if (val === void 0 || val === null || val === "auto" || val === "") {
@@ -1509,6 +1535,7 @@ var getLegend = (props) => {
1509
1535
  return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
1510
1536
  wrap: true
1511
1537
  }, commonLegendProps));
1538
+ // Note: By default, use right legend
1512
1539
  default:
1513
1540
  return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
1514
1541
  }
@@ -1641,10 +1668,10 @@ var getSeriesOverrides = (opts) => {
1641
1668
  let spanGaps;
1642
1669
  if (nullValueMode === "gaps") {
1643
1670
  spanGaps = false;
1644
- } else if (nullValueMode != null) {
1645
- spanGaps = true;
1646
- } else {
1671
+ } else if (nullValueMode == null) {
1647
1672
  spanGaps = void 0;
1673
+ } else {
1674
+ spanGaps = true;
1648
1675
  }
1649
1676
  const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
1650
1677
  const isAreaChart = type === "area";
@@ -2075,11 +2102,11 @@ var TimeSeriesChartWrapper = (props) => {
2075
2102
  y2AxisMajorUnitFromSimpleXML,
2076
2103
  y2AxisMajorTickInterval
2077
2104
  );
2078
- const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
2079
- const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
2080
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
2081
- const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
2082
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
2105
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize == null ? void 0 : Number(xAxisMajorTickSize);
2106
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize == null ? void 0 : Number(yAxisMajorTickSize);
2107
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize == null ? void 0 : Number(y2AxisMajorTickSize);
2108
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize == null ? void 0 : Number(yAxisMinorTickSize);
2109
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize == null ? void 0 : Number(y2AxisMinorTickSize);
2083
2110
  const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
2084
2111
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
2085
2112
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
@@ -2491,6 +2518,76 @@ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTr
2491
2518
  });
2492
2519
  return result;
2493
2520
  };
2521
+ var buildAllEventCallbackProps = (events, evaluatedOptionsToUse, onEventTrigger, { supportsEvents, hasEventHandlers, mode }) => {
2522
+ if (!supportsEvents) return {};
2523
+ const defaultEvents = {};
2524
+ const userEvents = {};
2525
+ Object.entries(events || {}).forEach(([eventKey, eventConfig]) => {
2526
+ (eventConfig.source === "default" ? defaultEvents : userEvents)[eventKey] = eventConfig;
2527
+ });
2528
+ const userProps = hasEventHandlers && mode === "view" ? buildEventCallbackProps(userEvents, evaluatedOptionsToUse, onEventTrigger) : {};
2529
+ return __spreadValues(__spreadValues({}, userProps), buildEventCallbackProps(defaultEvents, evaluatedOptionsToUse, onEventTrigger));
2530
+ };
2531
+ var applyContextTimezone = (localeContext) => {
2532
+ if (localeContext.serializedTimezone && !moment_default.getDefaultSplunkTimezone()) {
2533
+ moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2534
+ }
2535
+ };
2536
+ var getAsyncOptionsEvaluationParams = ({
2537
+ visualizationID,
2538
+ props,
2539
+ optionsToEvaluate,
2540
+ downsampledDataSources,
2541
+ vizConfig,
2542
+ bypassCloneDeepOptionScope,
2543
+ lazyLoadingDataFrame
2544
+ }) => {
2545
+ return {
2546
+ visualizationID,
2547
+ props,
2548
+ options: __spreadValues({}, optionsToEvaluate),
2549
+ dataSources: downsampledDataSources,
2550
+ theme: vizConfig.themes,
2551
+ bypassCloneDeepOptionScope,
2552
+ lazyLoadingDataFrame
2553
+ };
2554
+ };
2555
+ var evaluateOptionsSync = ({
2556
+ optionsToEvaluate,
2557
+ downsampledDataSources,
2558
+ dataSourcesInState,
2559
+ dataFramesInState,
2560
+ setDataSourcesInState,
2561
+ setDataFramesInState,
2562
+ computeDataFrames,
2563
+ featureFlagContext,
2564
+ themeFunc
2565
+ }) => {
2566
+ let dataFrames = dataFramesInState;
2567
+ if (downsampledDataSources !== dataSourcesInState) {
2568
+ setDataSourcesInState(downsampledDataSources);
2569
+ dataFrames = Options_exports.Options.dataFrameFromDataSource(
2570
+ downsampledDataSources,
2571
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2572
+ );
2573
+ setDataFramesInState(dataFrames);
2574
+ }
2575
+ let mergedFrames = dataFrames;
2576
+ if (computeDataFrames && dataFrames) {
2577
+ const derivedFrames = computeDataFrames({
2578
+ dataSources: downsampledDataSources,
2579
+ options: optionsToEvaluate.options
2580
+ });
2581
+ mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2582
+ }
2583
+ return Options_exports.Options.evaluate(
2584
+ optionsToEvaluate,
2585
+ downsampledDataSources,
2586
+ themeFunc,
2587
+ mergedFrames,
2588
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2589
+ );
2590
+ };
2494
2591
  var withDashboardViz = (opts) => {
2495
2592
  const {
2496
2593
  ReactViz,
@@ -2522,11 +2619,7 @@ var withDashboardViz = (opts) => {
2522
2619
  onRequestParamsChange = lodash_exports.noop
2523
2620
  } = props;
2524
2621
  const localeContext = react_exports.useContext(TimezoneContext_default);
2525
- if (localeContext.serializedTimezone) {
2526
- if (!moment_default.getDefaultSplunkTimezone()) {
2527
- moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2528
- }
2529
- }
2622
+ applyContextTimezone(localeContext);
2530
2623
  const themeFunc = (themeVar) => {
2531
2624
  var _a2, _b;
2532
2625
  return (_b = (_a2 = vizConfig.themes)[themeVar]) == null ? void 0 : _b.call(_a2, props);
@@ -2554,7 +2647,12 @@ var withDashboardViz = (opts) => {
2554
2647
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
2555
2648
  );
2556
2649
  const isAcceleratedRenderOn = isAcceleratedRenderFeatureFlagOn && isTimeSeriesCanvasRenderSupported(vizConfig.key) && (options == null ? void 0 : options.acceleratedRender) === true;
2557
- const isMounted = react_exports.useRef(true);
2650
+ const bypassCloneDeepOptionScope = Boolean(
2651
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2652
+ );
2653
+ const lazyLoadingDataFrame = Boolean(
2654
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2655
+ );
2558
2656
  const optionsToEvaluate = react_exports.useMemo(() => {
2559
2657
  var _a2;
2560
2658
  const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
@@ -2593,63 +2691,74 @@ var withDashboardViz = (opts) => {
2593
2691
  threshold,
2594
2692
  isDownsamplingEnabled
2595
2693
  });
2596
- evaluatedOptions = useDeepMemo(() => {
2694
+ const asyncOptionsEvaluationParams = useDeepMemo(
2695
+ () => getAsyncOptionsEvaluationParams({
2696
+ visualizationID,
2697
+ props,
2698
+ optionsToEvaluate,
2699
+ downsampledDataSources,
2700
+ vizConfig,
2701
+ bypassCloneDeepOptionScope,
2702
+ lazyLoadingDataFrame
2703
+ }),
2704
+ [
2705
+ visualizationID,
2706
+ optionsToEvaluate,
2707
+ downsampledDataSources,
2708
+ vizConfig,
2709
+ bypassCloneDeepOptionScope,
2710
+ lazyLoadingDataFrame,
2711
+ currentThemeFamily,
2712
+ currentThemeColorScheme,
2713
+ currentThemeDensity,
2714
+ localeContext.serializedTimezone
2715
+ ]
2716
+ );
2717
+ react_exports.useEffect(() => {
2718
+ if (!useAsyncEvaluatedOptions) {
2719
+ return void 0;
2720
+ }
2721
+ let ownsEvaluation = true;
2597
2722
  try {
2598
- if (useAsyncEvaluatedOptions) {
2599
- const asyncDynamicOptionsEvaluatorParams = {
2600
- visualizationID,
2601
- props,
2602
- options: optionsToEvaluate,
2603
- dataSources: downsampledDataSources,
2604
- theme: vizConfig.themes,
2605
- bypassCloneDeepOptionScope: Boolean(
2606
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2607
- ),
2608
- lazyLoadingDataFrame: Boolean(
2609
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2610
- )
2611
- };
2612
- async_dynamic_options_evaluator_default.evaluate(asyncDynamicOptionsEvaluatorParams).then((results) => {
2723
+ async_dynamic_options_evaluator_default.evaluate(asyncOptionsEvaluationParams).then((results) => {
2724
+ if (ownsEvaluation) {
2613
2725
  setEvaluatedOptionsAsync(results.results);
2614
- }).catch(() => {
2615
- if (isMounted.current) {
2616
- setUseAsyncEvaluatedOptions(false);
2617
- }
2618
- });
2619
- } else {
2620
- let dataFrames = dataFramesInState;
2621
- if (downsampledDataSources !== dataSourcesInState) {
2622
- setDataSourcesInState(downsampledDataSources);
2623
- dataFrames = Options_exports.Options.dataFrameFromDataSource(
2624
- downsampledDataSources,
2625
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2626
- );
2627
- setDataFramesInState(dataFrames);
2628
2726
  }
2629
- let mergedFrames = dataFrames;
2630
- if (computeDataFrames && dataFrames) {
2631
- const derivedFrames = computeDataFrames({
2632
- dataSources: downsampledDataSources,
2633
- options: optionsToEvaluate.options
2634
- });
2635
- mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2727
+ }).catch(() => {
2728
+ if (ownsEvaluation) {
2729
+ setUseAsyncEvaluatedOptions(false);
2636
2730
  }
2637
- const result = Options_exports.Options.evaluate(
2638
- optionsToEvaluate,
2639
- downsampledDataSources,
2640
- themeFunc,
2641
- mergedFrames,
2642
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2643
- );
2644
- return result;
2731
+ });
2732
+ } catch (e) {
2733
+ setUseAsyncEvaluatedOptions(false);
2734
+ }
2735
+ return () => {
2736
+ ownsEvaluation = false;
2737
+ async_dynamic_options_evaluator_default.reset(visualizationID);
2738
+ };
2739
+ }, [asyncOptionsEvaluationParams, useAsyncEvaluatedOptions, visualizationID]);
2740
+ evaluatedOptions = useDeepMemo(() => {
2741
+ try {
2742
+ if (useAsyncEvaluatedOptions) {
2743
+ return {};
2645
2744
  }
2745
+ return evaluateOptionsSync({
2746
+ optionsToEvaluate,
2747
+ downsampledDataSources,
2748
+ dataSourcesInState,
2749
+ dataFramesInState,
2750
+ setDataSourcesInState,
2751
+ setDataFramesInState,
2752
+ computeDataFrames,
2753
+ featureFlagContext,
2754
+ themeFunc
2755
+ });
2646
2756
  } catch (e) {
2647
2757
  if (e instanceof Error) {
2648
2758
  console.error(`unexpected error evaluating options: ${e.message}`);
2649
2759
  }
2650
2760
  return {};
2651
2761
  }
2652
- return {};
2653
2762
  }, [
2654
2763
  currentThemeFamily,
2655
2764
  currentThemeColorScheme,
@@ -2659,7 +2768,7 @@ var withDashboardViz = (opts) => {
2659
2768
  localeContext.serializedTimezone,
2660
2769
  useAsyncEvaluatedOptions
2661
2770
  ]);
2662
- const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
2771
+ const evaluatedOptionsToUse = useAsyncEvaluatedOptions ? evaluatedOptionsAsync : evaluatedOptions;
2663
2772
  let dataSourceMetadata = {};
2664
2773
  const OptionKey = "paginateDataSourceKey";
2665
2774
  const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
@@ -2681,7 +2790,7 @@ var withDashboardViz = (opts) => {
2681
2790
  sortParams,
2682
2791
  paginatorParams
2683
2792
  };
2684
- if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) === -1 && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2793
+ if (!vizConfig.supports.includes("page-and-sort" /* PAGE_AND_SORT */) && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2685
2794
  dataSourceMetadata = {};
2686
2795
  }
2687
2796
  const clonedEvaluatedOptions = __spreadValues({}, evaluatedOptionsToUse);
@@ -2691,14 +2800,6 @@ var withDashboardViz = (opts) => {
2691
2800
  react_exports.useEffect(() => {
2692
2801
  onComputedProps(clonedEvaluatedOptions);
2693
2802
  });
2694
- react_exports.useEffect(() => {
2695
- return () => {
2696
- if (useAsyncEvaluatedOptions) {
2697
- isMounted.current = false;
2698
- async_dynamic_options_evaluator_default.reset(visualizationID);
2699
- }
2700
- };
2701
- }, []);
2702
2803
  const { requiredProps = [], supports } = vizConfig;
2703
2804
  const missing = missingKeys(requiredProps, evaluatedOptionsToUse);
2704
2805
  if (missing.length > 0 && supports.includes("placeholder" /* PLACEHOLDER */) && vizConfig.key !== "splunk.singlevalue") {
@@ -2713,7 +2814,16 @@ var withDashboardViz = (opts) => {
2713
2814
  }
2714
2815
  );
2715
2816
  }
2716
- const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
2817
+ const eventCallbackProps = buildAllEventCallbackProps(
2818
+ vizConfig.events,
2819
+ evaluatedOptionsToUse,
2820
+ onEventTrigger,
2821
+ {
2822
+ supportsEvents: vizConfig.supports.includes("events" /* EVENTS */),
2823
+ hasEventHandlers,
2824
+ mode
2825
+ }
2826
+ );
2717
2827
  const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
2718
2828
  // Align option transformation with the actual renderer selected below.
2719
2829
  // This prevents canvas-only option preservation from leaking into Highcharts mode.
@@ -2741,8 +2851,9 @@ var withDashboardViz = (opts) => {
2741
2851
  onEventTrigger: SplunkVisualization_default.defaults.onEventTrigger
2742
2852
  });
2743
2853
  DashboardViz.config = vizConfig;
2744
- return (0, styled_components_exports.withTheme)(
2745
- withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)
2854
+ return Object.assign(
2855
+ (0, styled_components_exports.withTheme)(withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)),
2856
+ { config: vizConfig }
2746
2857
  );
2747
2858
  };
2748
2859
  var withDashboardViz_default = withDashboardViz;
@@ -2752,18 +2863,18 @@ var types_exports = {};
2752
2863
  __export(types_exports, {
2753
2864
  default: () => types_default
2754
2865
  });
2755
- var defaultImport34 = __toESM(require("@splunk/visualization-encoding/utils/types"));
2866
+ var defaultImport35 = __toESM(require("@splunk/visualization-encoding/utils/types"));
2756
2867
  __reExport(types_exports, require("@splunk/visualization-encoding/utils/types"));
2757
- var types_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
2868
+ var types_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2758
2869
 
2759
2870
  // esm-externals:d3-scale
2760
2871
  var d3_scale_exports = {};
2761
2872
  __export(d3_scale_exports, {
2762
2873
  default: () => d3_scale_default
2763
2874
  });
2764
- var defaultImport35 = __toESM(require("d3-scale"));
2875
+ var defaultImport36 = __toESM(require("d3-scale"));
2765
2876
  __reExport(d3_scale_exports, require("d3-scale"));
2766
- var d3_scale_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2877
+ var d3_scale_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
2767
2878
 
2768
2879
  // src/Punchcard/PurePunchcard/src/utils/punchcardUtils.ts
2769
2880
  var GRAYSCALE_FILTER_ID = `punchcard-grayscale-filter-id-${Math.floor(Math.random() * 1e3)}`;
@@ -3034,10 +3145,10 @@ var getElementToFocus = ({
3034
3145
  function calculateLuminance(fg, bg) {
3035
3146
  const hexToRgb = (hex) => {
3036
3147
  const clean = hex == null ? void 0 : hex.replace("#", "");
3037
- const r2 = parseInt(clean.slice(0, 2), 16);
3038
- const g2 = parseInt(clean.slice(2, 4), 16);
3039
- const b2 = parseInt(clean.slice(4, 6), 16);
3040
- const a = clean.length === 8 ? parseInt(clean.slice(6, 8), 16) / 255 : 1;
3148
+ const r2 = Number.parseInt(clean.slice(0, 2), 16);
3149
+ const g2 = Number.parseInt(clean.slice(2, 4), 16);
3150
+ const b2 = Number.parseInt(clean.slice(4, 6), 16);
3151
+ const a = clean.length === 8 ? Number.parseInt(clean.slice(6, 8), 16) / 255 : 1;
3041
3152
  return { r: r2, g: g2, b: b2, a };
3042
3153
  };
3043
3154
  const { r: fr, g: fgG, b: fb, a: opacity } = hexToRgb(fg);
@@ -3061,36 +3172,36 @@ var findIndex_exports = {};
3061
3172
  __export(findIndex_exports, {
3062
3173
  default: () => findIndex_default
3063
3174
  });
3064
- var defaultImport36 = __toESM(require("lodash/findIndex"));
3175
+ var defaultImport37 = __toESM(require("lodash/findIndex"));
3065
3176
  __reExport(findIndex_exports, require("lodash/findIndex"));
3066
- var findIndex_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
3177
+ var findIndex_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
3067
3178
 
3068
3179
  // esm-externals:lodash/find
3069
3180
  var find_exports = {};
3070
3181
  __export(find_exports, {
3071
3182
  default: () => find_default
3072
3183
  });
3073
- var defaultImport37 = __toESM(require("lodash/find"));
3184
+ var defaultImport38 = __toESM(require("lodash/find"));
3074
3185
  __reExport(find_exports, require("lodash/find"));
3075
- var find_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
3186
+ var find_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
3076
3187
 
3077
3188
  // esm-externals:lodash/sortBy
3078
3189
  var sortBy_exports = {};
3079
3190
  __export(sortBy_exports, {
3080
3191
  default: () => sortBy_default
3081
3192
  });
3082
- var defaultImport38 = __toESM(require("lodash/sortBy"));
3193
+ var defaultImport39 = __toESM(require("lodash/sortBy"));
3083
3194
  __reExport(sortBy_exports, require("lodash/sortBy"));
3084
- var sortBy_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
3195
+ var sortBy_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
3085
3196
 
3086
3197
  // esm-externals:lodash/flattenDeep
3087
3198
  var flattenDeep_exports = {};
3088
3199
  __export(flattenDeep_exports, {
3089
3200
  default: () => flattenDeep_default
3090
3201
  });
3091
- var defaultImport39 = __toESM(require("lodash/flattenDeep"));
3202
+ var defaultImport40 = __toESM(require("lodash/flattenDeep"));
3092
3203
  __reExport(flattenDeep_exports, require("lodash/flattenDeep"));
3093
- var flattenDeep_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
3204
+ var flattenDeep_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
3094
3205
 
3095
3206
  // src/Punchcard/PurePunchcard/src/utils/sortUtils.js
3096
3207
  var TIME_RANGES = {
@@ -3215,7 +3326,14 @@ var sortByDigitOrAlpha = (axis) => {
3215
3326
  if ((0, lodash_exports.every)(axis, coercedIsFinite)) {
3216
3327
  return axis.sort((a, b) => Number(a) - Number(b));
3217
3328
  }
3218
- return axis.sort();
3329
+ return axis.sort((a, b) => {
3330
+ const strA = `${a}`;
3331
+ const strB = `${b}`;
3332
+ if (strA < strB) {
3333
+ return -1;
3334
+ }
3335
+ return strA > strB ? 1 : 0;
3336
+ });
3219
3337
  };
3220
3338
  var sortAxis = (axis) => {
3221
3339
  const sortedTimeAxis = sortedByDTime(axis);
@@ -3282,15 +3400,6 @@ var PunchcardAxis = ({
3282
3400
  };
3283
3401
  var PunchcardAxis_default = PunchcardAxis;
3284
3402
 
3285
- // esm-externals:@splunk/themes
3286
- var themes_exports = {};
3287
- __export(themes_exports, {
3288
- default: () => themes_default
3289
- });
3290
- var defaultImport40 = __toESM(require("@splunk/themes"));
3291
- __reExport(themes_exports, require("@splunk/themes"));
3292
- var themes_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
3293
-
3294
3403
  // src/Punchcard/PurePunchcard/src/PunchcardBubble.tsx
3295
3404
  var BubbleCircle = styled_components_default.circle`
3296
3405
  fill: ${(props) => props.outline ? themes_exports.variables.contentColorActive : props.color};