@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/Image/Image.d.ts CHANGED
@@ -6,7 +6,9 @@ type useIconPlaceholder = (dataSources: {
6
6
  }, loading: boolean, options: Record<string, unknown>) => boolean;
7
7
  export declare const shouldShowPlaceholder: useIconPlaceholder;
8
8
  export declare const toImageDimensions: (props: any) => string;
9
- declare const Image: React.FunctionComponent<import("../common/interfaces").DashboardVizProps> | React.ComponentClass<import("../common/interfaces").DashboardVizProps, any>;
9
+ declare const Image: React.ComponentType<import("../common/interfaces").DashboardVizProps> & {
10
+ config: import("../common/interfaces").VizConfig;
11
+ };
10
12
  declare const themes: any;
11
13
  export { themes, config };
12
14
  export default Image;
@@ -1 +1 @@
1
- {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../src/Image/Image.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAgC7D,KAAK,kBAAkB,GAAG,CACtB,WAAW,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,EAC3C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,OAAO,CAAC;AAEb,eAAO,MAAM,qBAAqB,EAAE,kBAKnC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAG,UAAK,WAUrC,CAAC;AAoFF,QAAA,MAAM,KAAK,yJAKT,CAAC;AACH,QAAA,MAAM,MAAM,KAAO,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../src/Image/Image.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAgC7D,KAAK,kBAAkB,GAAG,CACtB,WAAW,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,EAC3C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,OAAO,CAAC;AAEb,eAAO,MAAM,qBAAqB,EAAE,kBAKnC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAG,UAAK,WAUrC,CAAC;AAoFF,QAAA,MAAM,KAAK;;CAKT,CAAC;AACH,QAAA,MAAM,MAAM,KAAO,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1B,eAAe,KAAK,CAAC"}
package/Image.js CHANGED
@@ -475,7 +475,10 @@ var useSortingParams = ({ requestParams, onRequestParamsChange }) => {
475
475
  onSort = (e, { sortKey, sortDir }) => {
476
476
  if (typeof sortKey === "string") {
477
477
  const nextSortDir = (0, lodash_exports.has)(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : "none";
478
- onRequestParamsChange(__spreadValues(__spreadValues({}, requestParams), { offset: 0, sort: { [sortKey]: nextSortDir } }));
478
+ onRequestParamsChange(__spreadProps(__spreadValues({}, requestParams), {
479
+ offset: 0,
480
+ sort: { [sortKey]: nextSortDir }
481
+ }));
479
482
  } else {
480
483
  onRequestParamsChange(requestParams);
481
484
  }
@@ -610,7 +613,7 @@ var Cover = styled_components_default.div`
610
613
  bottom: 0;
611
614
  `;
612
615
  var Blocker = styled_components_default.div.attrs({
613
- "data-splunk-visualization-version": "28.8.0 - 633c53372"
616
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
614
617
  })`
615
618
  position: relative;
616
619
  width: 100%;
@@ -645,6 +648,15 @@ var defaultImport24 = __toESM(require("@splunk/themes/variables"));
645
648
  __reExport(variables_exports, require("@splunk/themes/variables"));
646
649
  var variables_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
647
650
 
651
+ // esm-externals:@splunk/themes
652
+ var themes_exports = {};
653
+ __export(themes_exports, {
654
+ default: () => themes_default
655
+ });
656
+ var defaultImport25 = __toESM(require("@splunk/themes"));
657
+ __reExport(themes_exports, require("@splunk/themes"));
658
+ var themes_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
659
+
648
660
  // src/common/hocs/FixedSizeContainer.tsx
649
661
  var Item = styled_components_default.div.attrs(({ width }) => ({
650
662
  style: {
@@ -700,7 +712,7 @@ var withFixedSizeContainer = (Viz) => {
700
712
  FixSizeItem,
701
713
  {
702
714
  "data-test": "fix-size-item",
703
- "data-splunk-visualization-version": "28.8.0 - 633c53372",
715
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
704
716
  width,
705
717
  height,
706
718
  backgroundColor
@@ -721,6 +733,14 @@ var shouldShowIconPlaceholder = (dataSources, loading = false) => {
721
733
  const noFields = fields === void 0;
722
734
  return loading || noData || noFields;
723
735
  };
736
+ var PlaceholderContainer = styled_components_default.div`
737
+ /* The inline token color wins when supported. Older browsers discard an
738
+ unsupported oklch value and retain this inherited fallback instead. */
739
+ color: ${(0, themes_exports.pick)({
740
+ dark: "#fafafa",
741
+ light: "#2c2c2c"
742
+ })};
743
+ `;
724
744
  var IconPlaceholder = (props) => {
725
745
  const {
726
746
  width = SplunkVisualization_default.defaults.width,
@@ -735,7 +755,6 @@ var IconPlaceholder = (props) => {
735
755
  style: {
736
756
  left: "50%",
737
757
  top: "50%",
738
- color: iconColor,
739
758
  opacity: 0.15,
740
759
  position: "absolute",
741
760
  transform: "translate(-50%, -50%)"
@@ -745,7 +764,14 @@ var IconPlaceholder = (props) => {
745
764
  "data-test": "icon-placeholder"
746
765
  });
747
766
  }
748
- return /* @__PURE__ */ react_exports.createElement("div", { style: { width, height, background: backgroundColor } }, content);
767
+ return /* @__PURE__ */ react_exports.createElement(
768
+ PlaceholderContainer,
769
+ {
770
+ "data-test": "icon-placeholder-container",
771
+ style: { width, height, background: backgroundColor, color: iconColor }
772
+ },
773
+ content
774
+ );
749
775
  };
750
776
  var IconPlaceholder_default = FixedSizeContainer_default(IconPlaceholder);
751
777
 
@@ -791,9 +817,9 @@ var numberUtils_exports = {};
791
817
  __export(numberUtils_exports, {
792
818
  default: () => numberUtils_default
793
819
  });
794
- var defaultImport25 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
820
+ var defaultImport26 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
795
821
  __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUtils"));
796
- var numberUtils_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
822
+ var numberUtils_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
797
823
 
798
824
  // src/common/utils/dataUtils.ts
799
825
  var getFieldName = (field) => typeof field === "string" ? field : field.name;
@@ -819,7 +845,7 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
819
845
  let avgY = 0;
820
846
  let avgRangeStart = Math.floor((i + 1) * every) + 1;
821
847
  let avgRangeEnd = Math.floor((i + 2) * every) + 1;
822
- avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
848
+ avgRangeEnd = Math.min(avgRangeEnd, dataLength);
823
849
  const avgRangeLength = avgRangeEnd - avgRangeStart;
824
850
  for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
825
851
  avgX += Number(data[avgRangeStart][0]);
@@ -854,9 +880,9 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
854
880
  };
855
881
  var strictlyCoerceYColumn = (column, options) => {
856
882
  const isNullCoercionEnabled = options.nullValueDisplay === "zero";
857
- const canLooselyCoerceSomeValues = column.findIndex(
883
+ const canLooselyCoerceSomeValues = column.some(
858
884
  (value) => (0, numberUtils_exports.startsWithNumber)(`${value}`) || isNullCoercionEnabled && value === null
859
- ) >= 0;
885
+ );
860
886
  const coercedColumn = [];
861
887
  const canDownsampleColumn = !column.some((value) => {
862
888
  const coercedValue = Number(value);
@@ -875,7 +901,7 @@ var strictlyCoerceYColumn = (column, options) => {
875
901
  };
876
902
  var strictlyCoerceXColumn = (column, fieldType) => {
877
903
  if (fieldType === "number") {
878
- const coercedXColumn = column.map((xValue) => Number(xValue));
904
+ const coercedXColumn = column.map(Number);
879
905
  if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {
880
906
  return coercedXColumn;
881
907
  }
@@ -1174,16 +1200,16 @@ var FeatureFlags_exports = {};
1174
1200
  __export(FeatureFlags_exports, {
1175
1201
  default: () => FeatureFlags_default
1176
1202
  });
1177
- var defaultImport26 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1203
+ var defaultImport27 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1178
1204
  __reExport(FeatureFlags_exports, require("@splunk/visualization-context/FeatureFlags"));
1179
- var FeatureFlags_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1205
+ var FeatureFlags_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1180
1206
 
1181
1207
  // src/common/utils/featureFlagUtils.ts
1182
1208
  var getFeatureFlag = (context, flagName) => {
1183
- if (context && Object.keys(context).find((key) => key === flagName)) {
1209
+ if (context && Object.keys(context).includes(flagName)) {
1184
1210
  return context[flagName];
1185
1211
  }
1186
- if (Object.keys(FeatureFlags_default).find((key) => key === flagName)) {
1212
+ if (Object.keys(FeatureFlags_default).includes(flagName)) {
1187
1213
  return FeatureFlags_default[flagName];
1188
1214
  }
1189
1215
  return false;
@@ -1194,9 +1220,9 @@ var trellisUtils_exports = {};
1194
1220
  __export(trellisUtils_exports, {
1195
1221
  default: () => trellisUtils_default
1196
1222
  });
1197
- var defaultImport27 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1223
+ var defaultImport28 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1198
1224
  __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisUtils"));
1199
- var trellisUtils_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1225
+ var trellisUtils_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1200
1226
 
1201
1227
  // src/common/utils/trellisUtils.ts
1202
1228
  var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
@@ -1213,9 +1239,9 @@ var visualization_canvas_exports = {};
1213
1239
  __export(visualization_canvas_exports, {
1214
1240
  default: () => visualization_canvas_default
1215
1241
  });
1216
- var defaultImport28 = __toESM(require("@splunk/visualization-canvas"));
1242
+ var defaultImport29 = __toESM(require("@splunk/visualization-canvas"));
1217
1243
  __reExport(visualization_canvas_exports, require("@splunk/visualization-canvas"));
1218
- var visualization_canvas_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1244
+ var visualization_canvas_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1219
1245
 
1220
1246
  // src/common/components/VizStyleWrapper.jsx
1221
1247
  var VizStyleWrapper = styled_components_default.div.attrs(({ dataTestKey }) => ({
@@ -1237,27 +1263,27 @@ var Triangle_exports = {};
1237
1263
  __export(Triangle_exports, {
1238
1264
  default: () => Triangle_default
1239
1265
  });
1240
- var defaultImport29 = __toESM(require("@splunk/react-icons/Triangle"));
1266
+ var defaultImport30 = __toESM(require("@splunk/react-icons/Triangle"));
1241
1267
  __reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
1242
- var Triangle_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1268
+ var Triangle_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1243
1269
 
1244
1270
  // esm-externals:@splunk/visualizations-shared/propUtils
1245
1271
  var propUtils_exports = {};
1246
1272
  __export(propUtils_exports, {
1247
1273
  default: () => propUtils_default
1248
1274
  });
1249
- var defaultImport30 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1275
+ var defaultImport31 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1250
1276
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
1251
- var propUtils_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1277
+ var propUtils_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
1252
1278
 
1253
1279
  // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
1254
1280
  var simpleXMLOptions_exports = {};
1255
1281
  __export(simpleXMLOptions_exports, {
1256
1282
  default: () => simpleXMLOptions_default
1257
1283
  });
1258
- var defaultImport31 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1284
+ var defaultImport32 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1259
1285
  __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
1260
- var simpleXMLOptions_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
1286
+ var simpleXMLOptions_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
1261
1287
 
1262
1288
  // src/common/chartingUtils.ts
1263
1289
  var DEFAULT_LINE_WIDTH = 2;
@@ -1296,9 +1322,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
1296
1322
  const xAxisIsTime = xField === "_time";
1297
1323
  return !!rangeSelectEventHandler && xAxisIsTime;
1298
1324
  };
1299
- var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
1325
+ var canvasSupportedTimeSeriesCharts = /* @__PURE__ */ new Set(["splunk.line", "splunk.area"]);
1300
1326
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
1301
- return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
1327
+ return canvasSupportedTimeSeriesCharts.has(vizConfigKey);
1302
1328
  };
1303
1329
  var filterChartDataFromInternalFields = (chartData) => {
1304
1330
  const { fields, columns } = chartData;
@@ -1314,7 +1340,7 @@ var filterChartDataFromInternalFields = (chartData) => {
1314
1340
  return { fields: filteredFields, columns: filteredColumns };
1315
1341
  };
1316
1342
  var convert2DArrayToNumbers = (arr) => {
1317
- return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
1343
+ return arr.map((subArray) => subArray.map((element) => Number.parseFloat(element)));
1318
1344
  };
1319
1345
  var parseAxisValue = (val) => {
1320
1346
  if (val === void 0 || val === null || val === "auto" || val === "") {
@@ -1352,6 +1378,7 @@ var getLegend = (props) => {
1352
1378
  return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
1353
1379
  wrap: true
1354
1380
  }, commonLegendProps));
1381
+ // Note: By default, use right legend
1355
1382
  default:
1356
1383
  return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
1357
1384
  }
@@ -1484,10 +1511,10 @@ var getSeriesOverrides = (opts) => {
1484
1511
  let spanGaps;
1485
1512
  if (nullValueMode === "gaps") {
1486
1513
  spanGaps = false;
1487
- } else if (nullValueMode != null) {
1488
- spanGaps = true;
1489
- } else {
1514
+ } else if (nullValueMode == null) {
1490
1515
  spanGaps = void 0;
1516
+ } else {
1517
+ spanGaps = true;
1491
1518
  }
1492
1519
  const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
1493
1520
  const isAreaChart = type === "area";
@@ -1918,11 +1945,11 @@ var TimeSeriesChartWrapper = (props) => {
1918
1945
  y2AxisMajorUnitFromSimpleXML,
1919
1946
  y2AxisMajorTickInterval
1920
1947
  );
1921
- const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
1922
- const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
1923
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
1924
- const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
1925
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
1948
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize == null ? void 0 : Number(xAxisMajorTickSize);
1949
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize == null ? void 0 : Number(yAxisMajorTickSize);
1950
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize == null ? void 0 : Number(y2AxisMajorTickSize);
1951
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize == null ? void 0 : Number(yAxisMinorTickSize);
1952
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize == null ? void 0 : Number(y2AxisMinorTickSize);
1926
1953
  const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
1927
1954
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
1928
1955
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
@@ -2334,6 +2361,76 @@ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTr
2334
2361
  });
2335
2362
  return result;
2336
2363
  };
2364
+ var buildAllEventCallbackProps = (events, evaluatedOptionsToUse, onEventTrigger, { supportsEvents, hasEventHandlers, mode }) => {
2365
+ if (!supportsEvents) return {};
2366
+ const defaultEvents = {};
2367
+ const userEvents = {};
2368
+ Object.entries(events || {}).forEach(([eventKey, eventConfig]) => {
2369
+ (eventConfig.source === "default" ? defaultEvents : userEvents)[eventKey] = eventConfig;
2370
+ });
2371
+ const userProps = hasEventHandlers && mode === "view" ? buildEventCallbackProps(userEvents, evaluatedOptionsToUse, onEventTrigger) : {};
2372
+ return __spreadValues(__spreadValues({}, userProps), buildEventCallbackProps(defaultEvents, evaluatedOptionsToUse, onEventTrigger));
2373
+ };
2374
+ var applyContextTimezone = (localeContext) => {
2375
+ if (localeContext.serializedTimezone && !moment_default.getDefaultSplunkTimezone()) {
2376
+ moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2377
+ }
2378
+ };
2379
+ var getAsyncOptionsEvaluationParams = ({
2380
+ visualizationID,
2381
+ props,
2382
+ optionsToEvaluate,
2383
+ downsampledDataSources,
2384
+ vizConfig,
2385
+ bypassCloneDeepOptionScope,
2386
+ lazyLoadingDataFrame
2387
+ }) => {
2388
+ return {
2389
+ visualizationID,
2390
+ props,
2391
+ options: __spreadValues({}, optionsToEvaluate),
2392
+ dataSources: downsampledDataSources,
2393
+ theme: vizConfig.themes,
2394
+ bypassCloneDeepOptionScope,
2395
+ lazyLoadingDataFrame
2396
+ };
2397
+ };
2398
+ var evaluateOptionsSync = ({
2399
+ optionsToEvaluate,
2400
+ downsampledDataSources,
2401
+ dataSourcesInState,
2402
+ dataFramesInState,
2403
+ setDataSourcesInState,
2404
+ setDataFramesInState,
2405
+ computeDataFrames,
2406
+ featureFlagContext,
2407
+ themeFunc
2408
+ }) => {
2409
+ let dataFrames = dataFramesInState;
2410
+ if (downsampledDataSources !== dataSourcesInState) {
2411
+ setDataSourcesInState(downsampledDataSources);
2412
+ dataFrames = Options_exports.Options.dataFrameFromDataSource(
2413
+ downsampledDataSources,
2414
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2415
+ );
2416
+ setDataFramesInState(dataFrames);
2417
+ }
2418
+ let mergedFrames = dataFrames;
2419
+ if (computeDataFrames && dataFrames) {
2420
+ const derivedFrames = computeDataFrames({
2421
+ dataSources: downsampledDataSources,
2422
+ options: optionsToEvaluate.options
2423
+ });
2424
+ mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2425
+ }
2426
+ return Options_exports.Options.evaluate(
2427
+ optionsToEvaluate,
2428
+ downsampledDataSources,
2429
+ themeFunc,
2430
+ mergedFrames,
2431
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2432
+ );
2433
+ };
2337
2434
  var withDashboardViz = (opts) => {
2338
2435
  const {
2339
2436
  ReactViz,
@@ -2365,11 +2462,7 @@ var withDashboardViz = (opts) => {
2365
2462
  onRequestParamsChange = lodash_exports.noop
2366
2463
  } = props;
2367
2464
  const localeContext = react_exports.useContext(TimezoneContext_default);
2368
- if (localeContext.serializedTimezone) {
2369
- if (!moment_default.getDefaultSplunkTimezone()) {
2370
- moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2371
- }
2372
- }
2465
+ applyContextTimezone(localeContext);
2373
2466
  const themeFunc = (themeVar) => {
2374
2467
  var _a2, _b;
2375
2468
  return (_b = (_a2 = vizConfig.themes)[themeVar]) == null ? void 0 : _b.call(_a2, props);
@@ -2397,7 +2490,12 @@ var withDashboardViz = (opts) => {
2397
2490
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
2398
2491
  );
2399
2492
  const isAcceleratedRenderOn = isAcceleratedRenderFeatureFlagOn && isTimeSeriesCanvasRenderSupported(vizConfig.key) && (options == null ? void 0 : options.acceleratedRender) === true;
2400
- const isMounted = react_exports.useRef(true);
2493
+ const bypassCloneDeepOptionScope = Boolean(
2494
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2495
+ );
2496
+ const lazyLoadingDataFrame = Boolean(
2497
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2498
+ );
2401
2499
  const optionsToEvaluate = react_exports.useMemo(() => {
2402
2500
  var _a2;
2403
2501
  const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
@@ -2436,63 +2534,74 @@ var withDashboardViz = (opts) => {
2436
2534
  threshold,
2437
2535
  isDownsamplingEnabled
2438
2536
  });
2439
- evaluatedOptions = useDeepMemo(() => {
2537
+ const asyncOptionsEvaluationParams = useDeepMemo(
2538
+ () => getAsyncOptionsEvaluationParams({
2539
+ visualizationID,
2540
+ props,
2541
+ optionsToEvaluate,
2542
+ downsampledDataSources,
2543
+ vizConfig,
2544
+ bypassCloneDeepOptionScope,
2545
+ lazyLoadingDataFrame
2546
+ }),
2547
+ [
2548
+ visualizationID,
2549
+ optionsToEvaluate,
2550
+ downsampledDataSources,
2551
+ vizConfig,
2552
+ bypassCloneDeepOptionScope,
2553
+ lazyLoadingDataFrame,
2554
+ currentThemeFamily,
2555
+ currentThemeColorScheme,
2556
+ currentThemeDensity,
2557
+ localeContext.serializedTimezone
2558
+ ]
2559
+ );
2560
+ react_exports.useEffect(() => {
2561
+ if (!useAsyncEvaluatedOptions) {
2562
+ return void 0;
2563
+ }
2564
+ let ownsEvaluation = true;
2440
2565
  try {
2441
- if (useAsyncEvaluatedOptions) {
2442
- const asyncDynamicOptionsEvaluatorParams = {
2443
- visualizationID,
2444
- props,
2445
- options: optionsToEvaluate,
2446
- dataSources: downsampledDataSources,
2447
- theme: vizConfig.themes,
2448
- bypassCloneDeepOptionScope: Boolean(
2449
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2450
- ),
2451
- lazyLoadingDataFrame: Boolean(
2452
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2453
- )
2454
- };
2455
- async_dynamic_options_evaluator_default.evaluate(asyncDynamicOptionsEvaluatorParams).then((results) => {
2566
+ async_dynamic_options_evaluator_default.evaluate(asyncOptionsEvaluationParams).then((results) => {
2567
+ if (ownsEvaluation) {
2456
2568
  setEvaluatedOptionsAsync(results.results);
2457
- }).catch(() => {
2458
- if (isMounted.current) {
2459
- setUseAsyncEvaluatedOptions(false);
2460
- }
2461
- });
2462
- } else {
2463
- let dataFrames = dataFramesInState;
2464
- if (downsampledDataSources !== dataSourcesInState) {
2465
- setDataSourcesInState(downsampledDataSources);
2466
- dataFrames = Options_exports.Options.dataFrameFromDataSource(
2467
- downsampledDataSources,
2468
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2469
- );
2470
- setDataFramesInState(dataFrames);
2471
2569
  }
2472
- let mergedFrames = dataFrames;
2473
- if (computeDataFrames && dataFrames) {
2474
- const derivedFrames = computeDataFrames({
2475
- dataSources: downsampledDataSources,
2476
- options: optionsToEvaluate.options
2477
- });
2478
- mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2570
+ }).catch(() => {
2571
+ if (ownsEvaluation) {
2572
+ setUseAsyncEvaluatedOptions(false);
2479
2573
  }
2480
- const result = Options_exports.Options.evaluate(
2481
- optionsToEvaluate,
2482
- downsampledDataSources,
2483
- themeFunc,
2484
- mergedFrames,
2485
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2486
- );
2487
- return result;
2574
+ });
2575
+ } catch (e) {
2576
+ setUseAsyncEvaluatedOptions(false);
2577
+ }
2578
+ return () => {
2579
+ ownsEvaluation = false;
2580
+ async_dynamic_options_evaluator_default.reset(visualizationID);
2581
+ };
2582
+ }, [asyncOptionsEvaluationParams, useAsyncEvaluatedOptions, visualizationID]);
2583
+ evaluatedOptions = useDeepMemo(() => {
2584
+ try {
2585
+ if (useAsyncEvaluatedOptions) {
2586
+ return {};
2488
2587
  }
2588
+ return evaluateOptionsSync({
2589
+ optionsToEvaluate,
2590
+ downsampledDataSources,
2591
+ dataSourcesInState,
2592
+ dataFramesInState,
2593
+ setDataSourcesInState,
2594
+ setDataFramesInState,
2595
+ computeDataFrames,
2596
+ featureFlagContext,
2597
+ themeFunc
2598
+ });
2489
2599
  } catch (e) {
2490
2600
  if (e instanceof Error) {
2491
2601
  console.error(`unexpected error evaluating options: ${e.message}`);
2492
2602
  }
2493
2603
  return {};
2494
2604
  }
2495
- return {};
2496
2605
  }, [
2497
2606
  currentThemeFamily,
2498
2607
  currentThemeColorScheme,
@@ -2502,7 +2611,7 @@ var withDashboardViz = (opts) => {
2502
2611
  localeContext.serializedTimezone,
2503
2612
  useAsyncEvaluatedOptions
2504
2613
  ]);
2505
- const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
2614
+ const evaluatedOptionsToUse = useAsyncEvaluatedOptions ? evaluatedOptionsAsync : evaluatedOptions;
2506
2615
  let dataSourceMetadata = {};
2507
2616
  const OptionKey = "paginateDataSourceKey";
2508
2617
  const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
@@ -2524,7 +2633,7 @@ var withDashboardViz = (opts) => {
2524
2633
  sortParams,
2525
2634
  paginatorParams
2526
2635
  };
2527
- if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) === -1 && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2636
+ if (!vizConfig.supports.includes("page-and-sort" /* PAGE_AND_SORT */) && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2528
2637
  dataSourceMetadata = {};
2529
2638
  }
2530
2639
  const clonedEvaluatedOptions = __spreadValues({}, evaluatedOptionsToUse);
@@ -2534,14 +2643,6 @@ var withDashboardViz = (opts) => {
2534
2643
  react_exports.useEffect(() => {
2535
2644
  onComputedProps(clonedEvaluatedOptions);
2536
2645
  });
2537
- react_exports.useEffect(() => {
2538
- return () => {
2539
- if (useAsyncEvaluatedOptions) {
2540
- isMounted.current = false;
2541
- async_dynamic_options_evaluator_default.reset(visualizationID);
2542
- }
2543
- };
2544
- }, []);
2545
2646
  const { requiredProps = [], supports } = vizConfig;
2546
2647
  const missing = missingKeys(requiredProps, evaluatedOptionsToUse);
2547
2648
  if (missing.length > 0 && supports.includes("placeholder" /* PLACEHOLDER */) && vizConfig.key !== "splunk.singlevalue") {
@@ -2556,7 +2657,16 @@ var withDashboardViz = (opts) => {
2556
2657
  }
2557
2658
  );
2558
2659
  }
2559
- const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
2660
+ const eventCallbackProps = buildAllEventCallbackProps(
2661
+ vizConfig.events,
2662
+ evaluatedOptionsToUse,
2663
+ onEventTrigger,
2664
+ {
2665
+ supportsEvents: vizConfig.supports.includes("events" /* EVENTS */),
2666
+ hasEventHandlers,
2667
+ mode
2668
+ }
2669
+ );
2560
2670
  const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
2561
2671
  // Align option transformation with the actual renderer selected below.
2562
2672
  // This prevents canvas-only option preservation from leaking into Highcharts mode.
@@ -2584,8 +2694,9 @@ var withDashboardViz = (opts) => {
2584
2694
  onEventTrigger: SplunkVisualization_default.defaults.onEventTrigger
2585
2695
  });
2586
2696
  DashboardViz.config = vizConfig;
2587
- return (0, styled_components_exports.withTheme)(
2588
- withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)
2697
+ return Object.assign(
2698
+ (0, styled_components_exports.withTheme)(withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)),
2699
+ { config: vizConfig }
2589
2700
  );
2590
2701
  };
2591
2702
  var withDashboardViz_default = withDashboardViz;
@@ -2612,7 +2723,7 @@ var ImageApi = class {
2612
2723
  var ImageApi_default = ImageApi;
2613
2724
 
2614
2725
  // src/Image/Image.tsx
2615
- var { useEffect: useEffect5, useRef: useRef7 } = react_exports;
2726
+ var { useEffect: useEffect5, useRef: useRef6 } = react_exports;
2616
2727
  var validOptions = Object.keys(config_default.optionsSchema);
2617
2728
  var Container = styled_components_default.div.attrs(() => ({
2618
2729
  "data-test": "image-container"
@@ -2672,8 +2783,8 @@ var ImageVisualization = ({
2672
2783
  onImageClick = lodash_exports.noop
2673
2784
  }) => {
2674
2785
  const { src, preserveAspectRatio } = options;
2675
- const remoteImage = useRef7(null);
2676
- const api = useRef7(new ImageApi_default({ options: { src, preserveAspectRatio }, remoteImage }));
2786
+ const remoteImage = useRef6(null);
2787
+ const api = useRef6(new ImageApi_default({ options: { src, preserveAspectRatio }, remoteImage }));
2677
2788
  const isRemote = (0, RemoteImage_exports.isRemoteImage)(src);
2678
2789
  useEffect5(() => {
2679
2790
  visualizationApiRef(api.current);
@@ -2684,11 +2795,11 @@ var ImageVisualization = ({
2684
2795
  return /* @__PURE__ */ react_exports.createElement(
2685
2796
  Container,
2686
2797
  {
2687
- as: onImageClick !== lodash_exports.noop ? "button" : "div",
2798
+ as: onImageClick === lodash_exports.noop ? "div" : "button",
2688
2799
  isButton: onImageClick !== lodash_exports.noop,
2689
2800
  width,
2690
2801
  height,
2691
- onClick: onImageClick !== lodash_exports.noop ? onImageClick : void 0,
2802
+ onClick: onImageClick === lodash_exports.noop ? void 0 : onImageClick,
2692
2803
  "aria-label": title || (0, i18n_exports._)("Image visualization")
2693
2804
  },
2694
2805
  isRemote ? /* @__PURE__ */ react_exports.createElement(