@splunk/visualizations 28.8.0 → 28.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) 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 +31 -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/ClusterLayer.d.ts.map +1 -1
  57. package/Map/PureMap/MapUtils.d.ts.map +1 -1
  58. package/Map/PureMap/MarkerWrapper.d.ts.map +1 -1
  59. package/Map/PureMap/PureMap.d.ts +8 -65
  60. package/Map/PureMap/PureMap.d.ts.map +1 -1
  61. package/Map.config.js +1 -1
  62. package/Map.config.js.map +2 -2
  63. package/Map.js +363 -313
  64. package/Map.js.map +4 -4
  65. package/Markdown/Markdown.d.ts +9 -1
  66. package/Markdown/Markdown.d.ts.map +1 -1
  67. package/Markdown/config.d.ts.map +1 -1
  68. package/Markdown.config.js +5 -0
  69. package/Markdown.config.js.map +2 -2
  70. package/Markdown.js +225 -94
  71. package/Markdown.js.map +3 -3
  72. package/MarkerGauge.js +239 -134
  73. package/MarkerGauge.js.map +4 -4
  74. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts.map +1 -1
  75. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts +1 -0
  76. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts.map +1 -1
  77. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts +1 -0
  78. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts.map +1 -1
  79. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts +3 -5
  80. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -1
  81. package/NetworkGraph.config.js +4 -2
  82. package/NetworkGraph.config.js.map +2 -2
  83. package/NetworkGraph.js +327 -188
  84. package/NetworkGraph.js.map +4 -4
  85. package/ParallelCoordinates/ParallelCoordinates.d.ts +3 -1
  86. package/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -1
  87. package/ParallelCoordinates.js +239 -128
  88. package/ParallelCoordinates.js.map +4 -4
  89. package/Pie/config.d.ts.map +1 -1
  90. package/Pie/pieUtils.d.ts.map +1 -1
  91. package/Pie.config.js +4 -2
  92. package/Pie.config.js.map +2 -2
  93. package/Pie.js +228 -125
  94. package/Pie.js.map +3 -3
  95. package/ProcessTree/ProcessTree.d.ts +3 -1
  96. package/ProcessTree/ProcessTree.d.ts.map +1 -1
  97. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts +1 -0
  98. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts.map +1 -1
  99. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts +1 -0
  100. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts.map +1 -1
  101. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts +2 -1
  102. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts.map +1 -1
  103. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts +2 -0
  104. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts.map +1 -1
  105. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts +5 -1
  106. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts.map +1 -1
  107. package/ProcessTree.js +435 -192
  108. package/ProcessTree.js.map +4 -4
  109. package/Punchcard/Punchcard.d.ts +3 -1
  110. package/Punchcard/Punchcard.d.ts.map +1 -1
  111. package/Punchcard.js +238 -129
  112. package/Punchcard.js.map +4 -4
  113. package/Rectangle/Rectangle.d.ts +3 -1
  114. package/Rectangle/Rectangle.d.ts.map +1 -1
  115. package/Rectangle.js +218 -116
  116. package/Rectangle.js.map +4 -4
  117. package/RichText/PureRichText/Editor/EditorPanel.d.ts +1 -4
  118. package/RichText/PureRichText/Editor/EditorPanel.d.ts.map +1 -1
  119. package/RichText/PureRichText/Editor/hooks/useConfigPanelFocus.d.ts +14 -0
  120. package/RichText/PureRichText/Editor/hooks/useConfigPanelFocus.d.ts.map +1 -0
  121. package/RichText/PureRichText/Editor/hooks/useEditorPanelSync.d.ts +15 -0
  122. package/RichText/PureRichText/Editor/hooks/useEditorPanelSync.d.ts.map +1 -0
  123. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts.map +1 -1
  124. package/RichText/PureRichText/Editor/hooks/usePortalTarget.d.ts +9 -0
  125. package/RichText/PureRichText/Editor/hooks/usePortalTarget.d.ts.map +1 -0
  126. package/RichText/PureRichText/InnerEditor.d.ts +15 -9
  127. package/RichText/PureRichText/InnerEditor.d.ts.map +1 -1
  128. package/RichText/PureRichText/PureRichText.d.ts +5 -10
  129. package/RichText/PureRichText/PureRichText.d.ts.map +1 -1
  130. package/RichText/PureRichText/PureRichTextContext.d.ts +3 -6
  131. package/RichText/PureRichText/PureRichTextContext.d.ts.map +1 -1
  132. package/RichText/PureRichText/RichTextStyles.d.ts +5 -4
  133. package/RichText/PureRichText/RichTextStyles.d.ts.map +1 -1
  134. package/RichText/PureRichText/activeInstance.d.ts +6 -7
  135. package/RichText/PureRichText/activeInstance.d.ts.map +1 -1
  136. package/RichText/PureRichText/config.d.ts.map +1 -1
  137. package/RichText/PureRichText/hooks/useContentSync.d.ts +9 -9
  138. package/RichText/PureRichText/hooks/useContentSync.d.ts.map +1 -1
  139. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts +2 -7
  140. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts.map +1 -1
  141. package/RichText/PureRichText/hooks/useEditorSetup.d.ts +8 -4
  142. package/RichText/PureRichText/hooks/useEditorSetup.d.ts.map +1 -1
  143. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts +2 -4
  144. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts.map +1 -1
  145. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  146. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts +3 -7
  147. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts.map +1 -1
  148. package/RichText/PureRichText/hooks/useStepFontSize.d.ts +2 -2
  149. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts +2 -3
  150. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts.map +1 -1
  151. package/RichText/PureRichText/hooks/useTokenMap.d.ts +13 -24
  152. package/RichText/PureRichText/hooks/useTokenMap.d.ts.map +1 -1
  153. package/RichText/PureRichText/renderers/ElementRenderer.d.ts +2 -5
  154. package/RichText/PureRichText/renderers/ElementRenderer.d.ts.map +1 -1
  155. package/RichText/PureRichText/types.d.ts +6 -0
  156. package/RichText/PureRichText/types.d.ts.map +1 -1
  157. package/RichText/PureRichText/utils/slateUtils.d.ts +26 -2
  158. package/RichText/PureRichText/utils/slateUtils.d.ts.map +1 -1
  159. package/RichText/RichText.d.ts +3 -1
  160. package/RichText/RichText.d.ts.map +1 -1
  161. package/RichText/config.d.ts.map +1 -1
  162. package/RichText.config.js +5 -0
  163. package/RichText.config.js.map +2 -2
  164. package/RichText.js +1848 -842
  165. package/RichText.js.map +4 -4
  166. package/Sankey/PureSankey/PureSankey.d.ts +2 -0
  167. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  168. package/Sankey/PureSankey/SankeyLink.d.ts +3 -1
  169. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  170. package/Sankey/PureSankey/SankeyNode.d.ts +5 -2
  171. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  172. package/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -1
  173. package/Sankey/Sankey.d.ts +3 -1
  174. package/Sankey/Sankey.d.ts.map +1 -1
  175. package/Sankey.js +508 -219
  176. package/Sankey.js.map +4 -4
  177. package/Scatter.config.js +3 -5
  178. package/Scatter.config.js.map +2 -2
  179. package/Scatter.js +244 -146
  180. package/Scatter.js.map +4 -4
  181. package/SingleValue/SingleValue.d.ts.map +1 -1
  182. package/SingleValue.js +273 -173
  183. package/SingleValue.js.map +4 -4
  184. package/SingleValueBasic.js +4 -4
  185. package/SingleValueBasic.js.map +2 -2
  186. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -1
  187. package/SingleValueIcon.js +264 -164
  188. package/SingleValueIcon.js.map +4 -4
  189. package/SingleValueRadial.js +267 -167
  190. package/SingleValueRadial.js.map +4 -4
  191. package/SparkLine/SparkLine.d.ts.map +1 -1
  192. package/SparkLine.js.map +2 -2
  193. package/Table/PureTable.d.ts.map +1 -1
  194. package/Table/Table.d.ts +2 -5
  195. package/Table/Table.d.ts.map +1 -1
  196. package/Table/hooks.d.ts.map +1 -1
  197. package/Table.config.js +1 -1
  198. package/Table.config.js.map +2 -2
  199. package/Table.js +293 -271
  200. package/Table.js.map +4 -4
  201. package/Timeline/Timeline.d.ts +3 -1
  202. package/Timeline/Timeline.d.ts.map +1 -1
  203. package/Timeline.config.js +2 -2
  204. package/Timeline.config.js.map +2 -2
  205. package/Timeline.js +266 -142
  206. package/Timeline.js.map +4 -4
  207. package/Treemap/Treemap.d.ts +3 -1
  208. package/Treemap/Treemap.d.ts.map +1 -1
  209. package/Treemap.js +263 -147
  210. package/Treemap.js.map +4 -4
  211. package/common/Charting.js +8 -10
  212. package/common/Charting.js.map +2 -2
  213. package/common/ChartingApi.d.ts.map +1 -1
  214. package/common/ChartingApi.js +5 -2
  215. package/common/ChartingApi.js.map +2 -2
  216. package/common/DocExampleWithVizSandbox.js +3 -3
  217. package/common/DocExampleWithVizSandbox.js.map +2 -2
  218. package/common/GaugeMajorTicks.js.map +2 -2
  219. package/common/GaugeValueMarker.js.map +2 -2
  220. package/common/OptionsDoc.js +1 -1
  221. package/common/OptionsDoc.js.map +2 -2
  222. package/common/OverviewDoc.js +3 -3
  223. package/common/OverviewDoc.js.map +2 -2
  224. package/common/ThemesDoc.js.map +2 -2
  225. package/common/TimeSeriesChartWrapper.js +10 -9
  226. package/common/TimeSeriesChartWrapper.js.map +2 -2
  227. package/common/chartingUtils.d.ts.map +1 -1
  228. package/common/chartingUtils.js +12 -11
  229. package/common/chartingUtils.js.map +2 -2
  230. package/common/components/IconPlaceholder.d.ts.map +1 -1
  231. package/common/docUtils.d.ts.map +1 -1
  232. package/common/docUtils.js +15 -6
  233. package/common/docUtils.js.map +2 -2
  234. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  235. package/common/gaugeUtils.d.ts.map +1 -1
  236. package/common/gaugeUtils.js +4 -2
  237. package/common/gaugeUtils.js.map +2 -2
  238. package/common/hooks/useSorting.d.ts.map +1 -1
  239. package/common/interfaces/VizEvent.d.ts +7 -0
  240. package/common/interfaces/VizEvent.d.ts.map +1 -1
  241. package/common/utils/dataUtils.d.ts.map +1 -1
  242. package/common/utils/dataUtils.js +6 -10
  243. package/common/utils/dataUtils.js.map +2 -2
  244. package/common/utils/featureFlagUtils.js +2 -2
  245. package/common/utils/featureFlagUtils.js.map +2 -2
  246. package/common/utils/focusUtils.js +1 -1
  247. package/common/utils/focusUtils.js.map +2 -2
  248. package/common/utils/mapUtils.d.ts.map +1 -1
  249. package/common/utils/mapUtils.js +14 -18
  250. package/common/utils/mapUtils.js.map +2 -2
  251. package/common/utils/singleValueUtils.js +22 -25
  252. package/common/utils/singleValueUtils.js.map +2 -2
  253. package/common/utils/textUtils.d.ts.map +1 -1
  254. package/common/utils/textUtils.js +37 -23
  255. package/common/utils/textUtils.js.map +2 -2
  256. package/common/utils/trellisUtils.d.ts.map +1 -1
  257. package/common/utils/trellisUtils.js +18 -17
  258. package/common/utils/trellisUtils.js.map +2 -2
  259. package/common/utils/urlUtils.js.map +2 -2
  260. package/common/utils/visualizationTheme.d.ts +15 -0
  261. package/common/utils/visualizationTheme.d.ts.map +1 -0
  262. package/common/utils/visualizationTheme.js +72 -0
  263. package/common/utils/visualizationTheme.js.map +7 -0
  264. package/common/withDashboardViz.d.ts +3 -1
  265. package/common/withDashboardViz.d.ts.map +1 -1
  266. package/common/withDashboardViz.js +216 -105
  267. package/common/withDashboardViz.js.map +4 -4
  268. package/docs-llm/network-graph/options.md +2 -2
  269. package/docs-llm/pie/examples-json.md +195 -0
  270. package/docs-llm/pie/examples-react.md +123 -0
  271. package/docs-llm/pie/options.md +1 -1
  272. package/docs-llm/process-tree/options.md +3 -2
  273. package/package.json +24 -24
package/Table.js CHANGED
@@ -437,7 +437,7 @@ var themes = {
437
437
  prisma: variables_default.contentColorInverted(props)
438
438
  })(props)
439
439
  };
440
- var backgroundColorPaletteSet = /* @__PURE__ */ new Set([...colorConstants_exports.COLOR_EDITOR_PALETTE]);
440
+ var backgroundColorPaletteSet = new Set(colorConstants_exports.COLOR_EDITOR_PALETTE);
441
441
  var EDITOR_LABEL_WIDTH = 100;
442
442
  var editorConfig = [
443
443
  {
@@ -1068,7 +1068,10 @@ var useSortingParams = ({ requestParams, onRequestParamsChange }) => {
1068
1068
  onSort = (e, { sortKey, sortDir }) => {
1069
1069
  if (typeof sortKey === "string") {
1070
1070
  const nextSortDir = (0, lodash_exports.has)(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : "none";
1071
- onRequestParamsChange(__spreadValues(__spreadValues({}, requestParams), { offset: 0, sort: { [sortKey]: nextSortDir } }));
1071
+ onRequestParamsChange(__spreadProps(__spreadValues({}, requestParams), {
1072
+ offset: 0,
1073
+ sort: { [sortKey]: nextSortDir }
1074
+ }));
1072
1075
  } else {
1073
1076
  onRequestParamsChange(requestParams);
1074
1077
  }
@@ -1203,7 +1206,7 @@ var Cover = styled_components_default.div`
1203
1206
  bottom: 0;
1204
1207
  `;
1205
1208
  var Blocker = styled_components_default.div.attrs({
1206
- "data-splunk-visualization-version": "28.8.0 - 633c53372"
1209
+ "data-splunk-visualization-version": "28.9.0 - 96b03188d"
1207
1210
  })`
1208
1211
  position: relative;
1209
1212
  width: 100%;
@@ -1220,14 +1223,23 @@ var withEditModeCover = (Visualization, disableEditModeCover) => {
1220
1223
  };
1221
1224
  var withEditModeCover_default = withEditModeCover;
1222
1225
 
1226
+ // esm-externals:@splunk/themes
1227
+ var themes_exports = {};
1228
+ __export(themes_exports, {
1229
+ default: () => themes_default
1230
+ });
1231
+ var defaultImport30 = __toESM(require("@splunk/themes"));
1232
+ __reExport(themes_exports, require("@splunk/themes"));
1233
+ var themes_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1234
+
1223
1235
  // esm-externals:@splunk/visualizations-shared/style
1224
1236
  var style_exports = {};
1225
1237
  __export(style_exports, {
1226
1238
  default: () => style_default
1227
1239
  });
1228
- var defaultImport30 = __toESM(require("@splunk/visualizations-shared/style"));
1240
+ var defaultImport31 = __toESM(require("@splunk/visualizations-shared/style"));
1229
1241
  __reExport(style_exports, require("@splunk/visualizations-shared/style"));
1230
- var style_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1242
+ var style_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
1231
1243
 
1232
1244
  // src/common/hocs/FixedSizeContainer.tsx
1233
1245
  var Item = styled_components_default.div.attrs(({ width }) => ({
@@ -1284,7 +1296,7 @@ var withFixedSizeContainer = (Viz) => {
1284
1296
  FixSizeItem,
1285
1297
  {
1286
1298
  "data-test": "fix-size-item",
1287
- "data-splunk-visualization-version": "28.8.0 - 633c53372",
1299
+ "data-splunk-visualization-version": "28.9.0 - 96b03188d",
1288
1300
  width,
1289
1301
  height,
1290
1302
  backgroundColor
@@ -1305,6 +1317,14 @@ var shouldShowIconPlaceholder = (dataSources, loading = false) => {
1305
1317
  const noFields = fields === void 0;
1306
1318
  return loading || noData || noFields;
1307
1319
  };
1320
+ var PlaceholderContainer = styled_components_default.div`
1321
+ /* The inline token color wins when supported. Older browsers discard an
1322
+ unsupported oklch value and retain this inherited fallback instead. */
1323
+ color: ${(0, themes_exports.pick)({
1324
+ dark: "#fafafa",
1325
+ light: "#2c2c2c"
1326
+ })};
1327
+ `;
1308
1328
  var IconPlaceholder = (props) => {
1309
1329
  const {
1310
1330
  width = SplunkVisualization_default.defaults.width,
@@ -1319,7 +1339,6 @@ var IconPlaceholder = (props) => {
1319
1339
  style: {
1320
1340
  left: "50%",
1321
1341
  top: "50%",
1322
- color: iconColor,
1323
1342
  opacity: 0.15,
1324
1343
  position: "absolute",
1325
1344
  transform: "translate(-50%, -50%)"
@@ -1329,7 +1348,14 @@ var IconPlaceholder = (props) => {
1329
1348
  "data-test": "icon-placeholder"
1330
1349
  });
1331
1350
  }
1332
- return /* @__PURE__ */ react_exports.createElement("div", { style: { width, height, background: backgroundColor } }, content);
1351
+ return /* @__PURE__ */ react_exports.createElement(
1352
+ PlaceholderContainer,
1353
+ {
1354
+ "data-test": "icon-placeholder-container",
1355
+ style: { width, height, background: backgroundColor, color: iconColor }
1356
+ },
1357
+ content
1358
+ );
1333
1359
  };
1334
1360
  var IconPlaceholder_default = FixedSizeContainer_default(IconPlaceholder);
1335
1361
 
@@ -1375,9 +1401,9 @@ var numberUtils_exports = {};
1375
1401
  __export(numberUtils_exports, {
1376
1402
  default: () => numberUtils_default
1377
1403
  });
1378
- var defaultImport31 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
1404
+ var defaultImport32 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
1379
1405
  __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUtils"));
1380
- var numberUtils_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
1406
+ var numberUtils_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
1381
1407
 
1382
1408
  // src/common/utils/dataUtils.ts
1383
1409
  var getFieldName = (field) => typeof field === "string" ? field : field.name;
@@ -1403,7 +1429,7 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
1403
1429
  let avgY = 0;
1404
1430
  let avgRangeStart = Math.floor((i + 1) * every) + 1;
1405
1431
  let avgRangeEnd = Math.floor((i + 2) * every) + 1;
1406
- avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
1432
+ avgRangeEnd = Math.min(avgRangeEnd, dataLength);
1407
1433
  const avgRangeLength = avgRangeEnd - avgRangeStart;
1408
1434
  for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
1409
1435
  avgX += Number(data[avgRangeStart][0]);
@@ -1438,9 +1464,9 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
1438
1464
  };
1439
1465
  var strictlyCoerceYColumn = (column, options) => {
1440
1466
  const isNullCoercionEnabled = options.nullValueDisplay === "zero";
1441
- const canLooselyCoerceSomeValues = column.findIndex(
1467
+ const canLooselyCoerceSomeValues = column.some(
1442
1468
  (value) => (0, numberUtils_exports.startsWithNumber)(`${value}`) || isNullCoercionEnabled && value === null
1443
- ) >= 0;
1469
+ );
1444
1470
  const coercedColumn = [];
1445
1471
  const canDownsampleColumn = !column.some((value) => {
1446
1472
  const coercedValue = Number(value);
@@ -1459,7 +1485,7 @@ var strictlyCoerceYColumn = (column, options) => {
1459
1485
  };
1460
1486
  var strictlyCoerceXColumn = (column, fieldType) => {
1461
1487
  if (fieldType === "number") {
1462
- const coercedXColumn = column.map((xValue) => Number(xValue));
1488
+ const coercedXColumn = column.map(Number);
1463
1489
  if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {
1464
1490
  return coercedXColumn;
1465
1491
  }
@@ -1758,16 +1784,16 @@ var FeatureFlags_exports = {};
1758
1784
  __export(FeatureFlags_exports, {
1759
1785
  default: () => FeatureFlags_default
1760
1786
  });
1761
- var defaultImport32 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1787
+ var defaultImport33 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1762
1788
  __reExport(FeatureFlags_exports, require("@splunk/visualization-context/FeatureFlags"));
1763
- var FeatureFlags_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
1789
+ var FeatureFlags_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
1764
1790
 
1765
1791
  // src/common/utils/featureFlagUtils.ts
1766
1792
  var getFeatureFlag = (context, flagName) => {
1767
- if (context && Object.keys(context).find((key) => key === flagName)) {
1793
+ if (context && Object.keys(context).includes(flagName)) {
1768
1794
  return context[flagName];
1769
1795
  }
1770
- if (Object.keys(FeatureFlags_default).find((key) => key === flagName)) {
1796
+ if (Object.keys(FeatureFlags_default).includes(flagName)) {
1771
1797
  return FeatureFlags_default[flagName];
1772
1798
  }
1773
1799
  return false;
@@ -1778,9 +1804,9 @@ var trellisUtils_exports = {};
1778
1804
  __export(trellisUtils_exports, {
1779
1805
  default: () => trellisUtils_default
1780
1806
  });
1781
- var defaultImport33 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1807
+ var defaultImport34 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1782
1808
  __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisUtils"));
1783
- var trellisUtils_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
1809
+ var trellisUtils_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
1784
1810
 
1785
1811
  // src/common/utils/trellisUtils.ts
1786
1812
  var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
@@ -1797,9 +1823,9 @@ var visualization_canvas_exports = {};
1797
1823
  __export(visualization_canvas_exports, {
1798
1824
  default: () => visualization_canvas_default
1799
1825
  });
1800
- var defaultImport34 = __toESM(require("@splunk/visualization-canvas"));
1826
+ var defaultImport35 = __toESM(require("@splunk/visualization-canvas"));
1801
1827
  __reExport(visualization_canvas_exports, require("@splunk/visualization-canvas"));
1802
- var visualization_canvas_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
1828
+ var visualization_canvas_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
1803
1829
 
1804
1830
  // src/common/components/VizStyleWrapper.jsx
1805
1831
  var VizStyleWrapper = styled_components_default.div.attrs(({ dataTestKey }) => ({
@@ -1821,27 +1847,27 @@ var Triangle_exports = {};
1821
1847
  __export(Triangle_exports, {
1822
1848
  default: () => Triangle_default
1823
1849
  });
1824
- var defaultImport35 = __toESM(require("@splunk/react-icons/Triangle"));
1850
+ var defaultImport36 = __toESM(require("@splunk/react-icons/Triangle"));
1825
1851
  __reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
1826
- var Triangle_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
1852
+ var Triangle_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
1827
1853
 
1828
1854
  // esm-externals:@splunk/visualizations-shared/propUtils
1829
1855
  var propUtils_exports = {};
1830
1856
  __export(propUtils_exports, {
1831
1857
  default: () => propUtils_default
1832
1858
  });
1833
- var defaultImport36 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1859
+ var defaultImport37 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1834
1860
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
1835
- var propUtils_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
1861
+ var propUtils_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
1836
1862
 
1837
1863
  // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
1838
1864
  var simpleXMLOptions_exports = {};
1839
1865
  __export(simpleXMLOptions_exports, {
1840
1866
  default: () => simpleXMLOptions_default
1841
1867
  });
1842
- var defaultImport37 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1868
+ var defaultImport38 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1843
1869
  __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
1844
- var simpleXMLOptions_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
1870
+ var simpleXMLOptions_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
1845
1871
 
1846
1872
  // src/common/chartingUtils.ts
1847
1873
  var DEFAULT_LINE_WIDTH = 2;
@@ -1880,9 +1906,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
1880
1906
  const xAxisIsTime = xField === "_time";
1881
1907
  return !!rangeSelectEventHandler && xAxisIsTime;
1882
1908
  };
1883
- var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
1909
+ var canvasSupportedTimeSeriesCharts = /* @__PURE__ */ new Set(["splunk.line", "splunk.area"]);
1884
1910
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
1885
- return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
1911
+ return canvasSupportedTimeSeriesCharts.has(vizConfigKey);
1886
1912
  };
1887
1913
  var filterChartDataFromInternalFields = (chartData) => {
1888
1914
  const { fields, columns } = chartData;
@@ -1898,7 +1924,7 @@ var filterChartDataFromInternalFields = (chartData) => {
1898
1924
  return { fields: filteredFields, columns: filteredColumns };
1899
1925
  };
1900
1926
  var convert2DArrayToNumbers = (arr) => {
1901
- return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
1927
+ return arr.map((subArray) => subArray.map((element) => Number.parseFloat(element)));
1902
1928
  };
1903
1929
  var parseAxisValue = (val) => {
1904
1930
  if (val === void 0 || val === null || val === "auto" || val === "") {
@@ -1936,6 +1962,7 @@ var getLegend = (props) => {
1936
1962
  return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
1937
1963
  wrap: true
1938
1964
  }, commonLegendProps));
1965
+ // Note: By default, use right legend
1939
1966
  default:
1940
1967
  return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
1941
1968
  }
@@ -2068,10 +2095,10 @@ var getSeriesOverrides = (opts) => {
2068
2095
  let spanGaps;
2069
2096
  if (nullValueMode === "gaps") {
2070
2097
  spanGaps = false;
2071
- } else if (nullValueMode != null) {
2072
- spanGaps = true;
2073
- } else {
2098
+ } else if (nullValueMode == null) {
2074
2099
  spanGaps = void 0;
2100
+ } else {
2101
+ spanGaps = true;
2075
2102
  }
2076
2103
  const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
2077
2104
  const isAreaChart = type === "area";
@@ -2502,11 +2529,11 @@ var TimeSeriesChartWrapper = (props) => {
2502
2529
  y2AxisMajorUnitFromSimpleXML,
2503
2530
  y2AxisMajorTickInterval
2504
2531
  );
2505
- const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
2506
- const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
2507
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
2508
- const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
2509
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
2532
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize == null ? void 0 : Number(xAxisMajorTickSize);
2533
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize == null ? void 0 : Number(yAxisMajorTickSize);
2534
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize == null ? void 0 : Number(y2AxisMajorTickSize);
2535
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize == null ? void 0 : Number(yAxisMinorTickSize);
2536
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize == null ? void 0 : Number(y2AxisMinorTickSize);
2510
2537
  const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
2511
2538
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
2512
2539
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
@@ -2918,6 +2945,76 @@ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTr
2918
2945
  });
2919
2946
  return result;
2920
2947
  };
2948
+ var buildAllEventCallbackProps = (events, evaluatedOptionsToUse, onEventTrigger, { supportsEvents, hasEventHandlers, mode }) => {
2949
+ if (!supportsEvents) return {};
2950
+ const defaultEvents = {};
2951
+ const userEvents = {};
2952
+ Object.entries(events || {}).forEach(([eventKey, eventConfig]) => {
2953
+ (eventConfig.source === "default" ? defaultEvents : userEvents)[eventKey] = eventConfig;
2954
+ });
2955
+ const userProps = hasEventHandlers && mode === "view" ? buildEventCallbackProps(userEvents, evaluatedOptionsToUse, onEventTrigger) : {};
2956
+ return __spreadValues(__spreadValues({}, userProps), buildEventCallbackProps(defaultEvents, evaluatedOptionsToUse, onEventTrigger));
2957
+ };
2958
+ var applyContextTimezone = (localeContext) => {
2959
+ if (localeContext.serializedTimezone && !moment_default.getDefaultSplunkTimezone()) {
2960
+ moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2961
+ }
2962
+ };
2963
+ var getAsyncOptionsEvaluationParams = ({
2964
+ visualizationID,
2965
+ props,
2966
+ optionsToEvaluate,
2967
+ downsampledDataSources,
2968
+ vizConfig,
2969
+ bypassCloneDeepOptionScope,
2970
+ lazyLoadingDataFrame
2971
+ }) => {
2972
+ return {
2973
+ visualizationID,
2974
+ props,
2975
+ options: __spreadValues({}, optionsToEvaluate),
2976
+ dataSources: downsampledDataSources,
2977
+ theme: vizConfig.themes,
2978
+ bypassCloneDeepOptionScope,
2979
+ lazyLoadingDataFrame
2980
+ };
2981
+ };
2982
+ var evaluateOptionsSync = ({
2983
+ optionsToEvaluate,
2984
+ downsampledDataSources,
2985
+ dataSourcesInState,
2986
+ dataFramesInState,
2987
+ setDataSourcesInState,
2988
+ setDataFramesInState,
2989
+ computeDataFrames,
2990
+ featureFlagContext,
2991
+ themeFunc
2992
+ }) => {
2993
+ let dataFrames = dataFramesInState;
2994
+ if (downsampledDataSources !== dataSourcesInState) {
2995
+ setDataSourcesInState(downsampledDataSources);
2996
+ dataFrames = Options_exports.Options.dataFrameFromDataSource(
2997
+ downsampledDataSources,
2998
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2999
+ );
3000
+ setDataFramesInState(dataFrames);
3001
+ }
3002
+ let mergedFrames = dataFrames;
3003
+ if (computeDataFrames && dataFrames) {
3004
+ const derivedFrames = computeDataFrames({
3005
+ dataSources: downsampledDataSources,
3006
+ options: optionsToEvaluate.options
3007
+ });
3008
+ mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
3009
+ }
3010
+ return Options_exports.Options.evaluate(
3011
+ optionsToEvaluate,
3012
+ downsampledDataSources,
3013
+ themeFunc,
3014
+ mergedFrames,
3015
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
3016
+ );
3017
+ };
2921
3018
  var withDashboardViz = (opts) => {
2922
3019
  const {
2923
3020
  ReactViz,
@@ -2949,11 +3046,7 @@ var withDashboardViz = (opts) => {
2949
3046
  onRequestParamsChange = lodash_exports.noop
2950
3047
  } = props;
2951
3048
  const localeContext = react_exports.useContext(TimezoneContext_default);
2952
- if (localeContext.serializedTimezone) {
2953
- if (!moment_default.getDefaultSplunkTimezone()) {
2954
- moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2955
- }
2956
- }
3049
+ applyContextTimezone(localeContext);
2957
3050
  const themeFunc = (themeVar) => {
2958
3051
  var _a2, _b;
2959
3052
  return (_b = (_a2 = vizConfig.themes)[themeVar]) == null ? void 0 : _b.call(_a2, props);
@@ -2981,7 +3074,12 @@ var withDashboardViz = (opts) => {
2981
3074
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
2982
3075
  );
2983
3076
  const isAcceleratedRenderOn = isAcceleratedRenderFeatureFlagOn && isTimeSeriesCanvasRenderSupported(vizConfig.key) && (options == null ? void 0 : options.acceleratedRender) === true;
2984
- const isMounted = react_exports.useRef(true);
3077
+ const bypassCloneDeepOptionScope = Boolean(
3078
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
3079
+ );
3080
+ const lazyLoadingDataFrame = Boolean(
3081
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
3082
+ );
2985
3083
  const optionsToEvaluate = react_exports.useMemo(() => {
2986
3084
  var _a2;
2987
3085
  const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
@@ -3020,63 +3118,74 @@ var withDashboardViz = (opts) => {
3020
3118
  threshold,
3021
3119
  isDownsamplingEnabled
3022
3120
  });
3023
- evaluatedOptions = useDeepMemo(() => {
3121
+ const asyncOptionsEvaluationParams = useDeepMemo(
3122
+ () => getAsyncOptionsEvaluationParams({
3123
+ visualizationID,
3124
+ props,
3125
+ optionsToEvaluate,
3126
+ downsampledDataSources,
3127
+ vizConfig,
3128
+ bypassCloneDeepOptionScope,
3129
+ lazyLoadingDataFrame
3130
+ }),
3131
+ [
3132
+ visualizationID,
3133
+ optionsToEvaluate,
3134
+ downsampledDataSources,
3135
+ vizConfig,
3136
+ bypassCloneDeepOptionScope,
3137
+ lazyLoadingDataFrame,
3138
+ currentThemeFamily,
3139
+ currentThemeColorScheme,
3140
+ currentThemeDensity,
3141
+ localeContext.serializedTimezone
3142
+ ]
3143
+ );
3144
+ react_exports.useEffect(() => {
3145
+ if (!useAsyncEvaluatedOptions) {
3146
+ return void 0;
3147
+ }
3148
+ let ownsEvaluation = true;
3024
3149
  try {
3025
- if (useAsyncEvaluatedOptions) {
3026
- const asyncDynamicOptionsEvaluatorParams = {
3027
- visualizationID,
3028
- props,
3029
- options: optionsToEvaluate,
3030
- dataSources: downsampledDataSources,
3031
- theme: vizConfig.themes,
3032
- bypassCloneDeepOptionScope: Boolean(
3033
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
3034
- ),
3035
- lazyLoadingDataFrame: Boolean(
3036
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
3037
- )
3038
- };
3039
- async_dynamic_options_evaluator_default.evaluate(asyncDynamicOptionsEvaluatorParams).then((results) => {
3150
+ async_dynamic_options_evaluator_default.evaluate(asyncOptionsEvaluationParams).then((results) => {
3151
+ if (ownsEvaluation) {
3040
3152
  setEvaluatedOptionsAsync(results.results);
3041
- }).catch(() => {
3042
- if (isMounted.current) {
3043
- setUseAsyncEvaluatedOptions(false);
3044
- }
3045
- });
3046
- } else {
3047
- let dataFrames = dataFramesInState;
3048
- if (downsampledDataSources !== dataSourcesInState) {
3049
- setDataSourcesInState(downsampledDataSources);
3050
- dataFrames = Options_exports.Options.dataFrameFromDataSource(
3051
- downsampledDataSources,
3052
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
3053
- );
3054
- setDataFramesInState(dataFrames);
3055
3153
  }
3056
- let mergedFrames = dataFrames;
3057
- if (computeDataFrames && dataFrames) {
3058
- const derivedFrames = computeDataFrames({
3059
- dataSources: downsampledDataSources,
3060
- options: optionsToEvaluate.options
3061
- });
3062
- mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
3154
+ }).catch(() => {
3155
+ if (ownsEvaluation) {
3156
+ setUseAsyncEvaluatedOptions(false);
3063
3157
  }
3064
- const result = Options_exports.Options.evaluate(
3065
- optionsToEvaluate,
3066
- downsampledDataSources,
3067
- themeFunc,
3068
- mergedFrames,
3069
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
3070
- );
3071
- return result;
3158
+ });
3159
+ } catch (e) {
3160
+ setUseAsyncEvaluatedOptions(false);
3161
+ }
3162
+ return () => {
3163
+ ownsEvaluation = false;
3164
+ async_dynamic_options_evaluator_default.reset(visualizationID);
3165
+ };
3166
+ }, [asyncOptionsEvaluationParams, useAsyncEvaluatedOptions, visualizationID]);
3167
+ evaluatedOptions = useDeepMemo(() => {
3168
+ try {
3169
+ if (useAsyncEvaluatedOptions) {
3170
+ return {};
3072
3171
  }
3172
+ return evaluateOptionsSync({
3173
+ optionsToEvaluate,
3174
+ downsampledDataSources,
3175
+ dataSourcesInState,
3176
+ dataFramesInState,
3177
+ setDataSourcesInState,
3178
+ setDataFramesInState,
3179
+ computeDataFrames,
3180
+ featureFlagContext,
3181
+ themeFunc
3182
+ });
3073
3183
  } catch (e) {
3074
3184
  if (e instanceof Error) {
3075
3185
  console.error(`unexpected error evaluating options: ${e.message}`);
3076
3186
  }
3077
3187
  return {};
3078
3188
  }
3079
- return {};
3080
3189
  }, [
3081
3190
  currentThemeFamily,
3082
3191
  currentThemeColorScheme,
@@ -3086,7 +3195,7 @@ var withDashboardViz = (opts) => {
3086
3195
  localeContext.serializedTimezone,
3087
3196
  useAsyncEvaluatedOptions
3088
3197
  ]);
3089
- const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
3198
+ const evaluatedOptionsToUse = useAsyncEvaluatedOptions ? evaluatedOptionsAsync : evaluatedOptions;
3090
3199
  let dataSourceMetadata = {};
3091
3200
  const OptionKey = "paginateDataSourceKey";
3092
3201
  const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
@@ -3108,7 +3217,7 @@ var withDashboardViz = (opts) => {
3108
3217
  sortParams,
3109
3218
  paginatorParams
3110
3219
  };
3111
- if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) === -1 && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
3220
+ if (!vizConfig.supports.includes("page-and-sort" /* PAGE_AND_SORT */) && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
3112
3221
  dataSourceMetadata = {};
3113
3222
  }
3114
3223
  const clonedEvaluatedOptions = __spreadValues({}, evaluatedOptionsToUse);
@@ -3118,14 +3227,6 @@ var withDashboardViz = (opts) => {
3118
3227
  react_exports.useEffect(() => {
3119
3228
  onComputedProps(clonedEvaluatedOptions);
3120
3229
  });
3121
- react_exports.useEffect(() => {
3122
- return () => {
3123
- if (useAsyncEvaluatedOptions) {
3124
- isMounted.current = false;
3125
- async_dynamic_options_evaluator_default.reset(visualizationID);
3126
- }
3127
- };
3128
- }, []);
3129
3230
  const { requiredProps = [], supports } = vizConfig;
3130
3231
  const missing = missingKeys(requiredProps, evaluatedOptionsToUse);
3131
3232
  if (missing.length > 0 && supports.includes("placeholder" /* PLACEHOLDER */) && vizConfig.key !== "splunk.singlevalue") {
@@ -3140,7 +3241,16 @@ var withDashboardViz = (opts) => {
3140
3241
  }
3141
3242
  );
3142
3243
  }
3143
- const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
3244
+ const eventCallbackProps = buildAllEventCallbackProps(
3245
+ vizConfig.events,
3246
+ evaluatedOptionsToUse,
3247
+ onEventTrigger,
3248
+ {
3249
+ supportsEvents: vizConfig.supports.includes("events" /* EVENTS */),
3250
+ hasEventHandlers,
3251
+ mode
3252
+ }
3253
+ );
3144
3254
  const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
3145
3255
  // Align option transformation with the actual renderer selected below.
3146
3256
  // This prevents canvas-only option preservation from leaking into Highcharts mode.
@@ -3168,8 +3278,9 @@ var withDashboardViz = (opts) => {
3168
3278
  onEventTrigger: SplunkVisualization_default.defaults.onEventTrigger
3169
3279
  });
3170
3280
  DashboardViz.config = vizConfig;
3171
- return (0, styled_components_exports.withTheme)(
3172
- withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)
3281
+ return Object.assign(
3282
+ (0, styled_components_exports.withTheme)(withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)),
3283
+ { config: vizConfig }
3173
3284
  );
3174
3285
  };
3175
3286
  var withDashboardViz_default = withDashboardViz;
@@ -3179,45 +3290,45 @@ var debounce_exports = {};
3179
3290
  __export(debounce_exports, {
3180
3291
  default: () => debounce_default
3181
3292
  });
3182
- var defaultImport38 = __toESM(require("lodash/debounce"));
3293
+ var defaultImport39 = __toESM(require("lodash/debounce"));
3183
3294
  __reExport(debounce_exports, require("lodash/debounce"));
3184
- var debounce_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
3295
+ var debounce_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
3185
3296
 
3186
3297
  // esm-externals:@splunk/react-ui/Table
3187
3298
  var Table_exports = {};
3188
3299
  __export(Table_exports, {
3189
3300
  default: () => Table_default
3190
3301
  });
3191
- var defaultImport39 = __toESM(require("@splunk/react-ui/Table"));
3302
+ var defaultImport40 = __toESM(require("@splunk/react-ui/Table"));
3192
3303
  __reExport(Table_exports, require("@splunk/react-ui/Table"));
3193
- var Table_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
3304
+ var Table_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
3194
3305
 
3195
3306
  // esm-externals:@splunk/react-ui/Paginator
3196
3307
  var Paginator_exports = {};
3197
3308
  __export(Paginator_exports, {
3198
3309
  default: () => Paginator_default
3199
3310
  });
3200
- var defaultImport40 = __toESM(require("@splunk/react-ui/Paginator"));
3311
+ var defaultImport41 = __toESM(require("@splunk/react-ui/Paginator"));
3201
3312
  __reExport(Paginator_exports, require("@splunk/react-ui/Paginator"));
3202
- var Paginator_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
3313
+ var Paginator_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
3203
3314
 
3204
3315
  // esm-externals:@splunk/react-ui/Message
3205
3316
  var Message_exports2 = {};
3206
3317
  __export(Message_exports2, {
3207
3318
  default: () => Message_default2
3208
3319
  });
3209
- var defaultImport41 = __toESM(require("@splunk/react-ui/Message"));
3320
+ var defaultImport42 = __toESM(require("@splunk/react-ui/Message"));
3210
3321
  __reExport(Message_exports2, require("@splunk/react-ui/Message"));
3211
- var Message_default2 = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
3322
+ var Message_default2 = "default" in defaultImport42 ? defaultImport42.default : defaultImport42;
3212
3323
 
3213
3324
  // esm-externals:@splunk/react-ui/JSONTree
3214
3325
  var JSONTree_exports = {};
3215
3326
  __export(JSONTree_exports, {
3216
3327
  default: () => JSONTree_default
3217
3328
  });
3218
- var defaultImport42 = __toESM(require("@splunk/react-ui/JSONTree"));
3329
+ var defaultImport43 = __toESM(require("@splunk/react-ui/JSONTree"));
3219
3330
  __reExport(JSONTree_exports, require("@splunk/react-ui/JSONTree"));
3220
- var JSONTree_default = "default" in defaultImport42 ? defaultImport42.default : defaultImport42;
3331
+ var JSONTree_default = "default" in defaultImport43 ? defaultImport43.default : defaultImport43;
3221
3332
 
3222
3333
  // src/Table/hooks.tsx
3223
3334
  var isArray2 = (v) => Array.isArray(v);
@@ -3263,7 +3374,7 @@ var generateHeader = (value, columnId, i, columnFormat, tableFormat, showInterna
3263
3374
  sortKey: value,
3264
3375
  showCell: true
3265
3376
  };
3266
- if (!showInternalFields && value.charAt(0) === "_" && value !== "_time") {
3377
+ if (!showInternalFields && value.startsWith("_") && value !== "_time") {
3267
3378
  ret.showCell = false;
3268
3379
  }
3269
3380
  const headerAlign = getColumnFormatHeaderAlign(columnFormat, columnId, value) || getTableFormatHeaderAlign(tableFormat) || "left";
@@ -3287,7 +3398,7 @@ var getColumnFormatAlign = (columnFormat, currentColumn, currentRow) => {
3287
3398
  align = void 0;
3288
3399
  } else if (typeof alignOption === "string" && (0, lodash_exports.includes)(visualization_schemas_exports.validAlignments, alignOption)) {
3289
3400
  align = alignOption;
3290
- } else if (typeof alignOption !== "undefined") {
3401
+ } else if (alignOption !== void 0) {
3291
3402
  console.warn(
3292
3403
  `columnFormat.${currentColumn.columnId}.align should be a string or an array containing (${visualization_schemas_exports.validAlignments.join(
3293
3404
  " | "
@@ -3306,7 +3417,7 @@ var getColumnFormatCellType = (columnFormat, currentColumn, currentRow) => {
3306
3417
  );
3307
3418
  if (isArray2(cellTypes) && (0, lodash_exports.includes)(visualization_schemas_exports.validCellRenderers, cellTypes[currentRow])) {
3308
3419
  cellType = cellTypes[currentRow];
3309
- } else if (typeof cellTypes !== "undefined") {
3420
+ } else if (cellTypes !== void 0) {
3310
3421
  console.warn(
3311
3422
  `columnFormat.${currentColumn.value}.cellType should be an array containing (${visualization_schemas_exports.validCellRenderers.join(" | ")}). ${JSON.stringify(
3312
3423
  cellTypes
@@ -3325,7 +3436,7 @@ var getColumnFormatSparklineType = (columnFormat, currentColumn, currentRow) =>
3325
3436
  );
3326
3437
  if (isArray2(types) && (0, lodash_exports.includes)(visualization_schemas_exports.validSparklineTypes, types[currentRow])) {
3327
3438
  sparklineType = types[currentRow];
3328
- } else if (typeof types !== "undefined") {
3439
+ } else if (types !== void 0) {
3329
3440
  console.warn(
3330
3441
  `columnFormat.${currentColumn.value}.sparklineTypes should be one of (${visualization_schemas_exports.validSparklineTypes.join(
3331
3442
  " | "
@@ -3344,7 +3455,7 @@ var getColumnFormatData = (columnFormat, currentColumn, currentRow) => {
3344
3455
  );
3345
3456
  if (isArray2(data)) {
3346
3457
  datum = data[currentRow];
3347
- } else if (typeof data !== "undefined") {
3458
+ } else if (data !== void 0) {
3348
3459
  console.warn(
3349
3460
  `columnFormat.${currentColumn.value}.data should be an array containing formatted data. ${typeof data} provided`
3350
3461
  );
@@ -3397,7 +3508,7 @@ var getColumnFormatHeaderAlign = (columnFormat, columnId, columnValue) => {
3397
3508
  }
3398
3509
  if (typeof alignOption === "string" && (0, lodash_exports.includes)(visualization_schemas_exports.validAlignments, alignOption)) {
3399
3510
  headerAlign = alignOption;
3400
- } else if (typeof alignOption !== "undefined") {
3511
+ } else if (alignOption !== void 0) {
3401
3512
  console.warn(
3402
3513
  `columnFormat.${columnId}.headerAlign should be a string containing (${visualization_schemas_exports.validAlignments.join(
3403
3514
  " | "
@@ -3413,7 +3524,7 @@ var getTableFormatAlign = (tableFormat, currentColumn, currentRow) => {
3413
3524
  align = alignOption[currentColumn][currentRow];
3414
3525
  } else if (typeof alignOption === "string" && (0, lodash_exports.includes)(visualization_schemas_exports.validAlignments, alignOption)) {
3415
3526
  align = alignOption;
3416
- } else if (typeof alignOption !== "undefined") {
3527
+ } else if (alignOption !== void 0) {
3417
3528
  console.warn(
3418
3529
  `tableFormat.align should be a string or a 2 dimensional array containing (${visualization_schemas_exports.validAlignments.join(
3419
3530
  " | "
@@ -3427,7 +3538,7 @@ var getTableFormatCellType = (tableFormat, currentColumn, currentRow) => {
3427
3538
  let cellType;
3428
3539
  if (isArray2(cellTypes) && isArray2(cellTypes[currentColumn]) && (0, lodash_exports.includes)(visualization_schemas_exports.validCellRenderers, cellTypes[currentColumn][currentRow])) {
3429
3540
  cellType = cellTypes[currentColumn][currentRow];
3430
- } else if (typeof cellTypes !== "undefined") {
3541
+ } else if (cellTypes !== void 0) {
3431
3542
  console.warn(
3432
3543
  `tableFormat.cellType should be a 2 dimensional array containing (${visualization_schemas_exports.validCellRenderers.join(
3433
3544
  " | "
@@ -3441,7 +3552,7 @@ var getTableFormatSparklineType = (tableFormat, currentColumn, currentRow) => {
3441
3552
  let sparklineType;
3442
3553
  if (isArray2(types) && isArray2(types[currentColumn]) && (0, lodash_exports.includes)(visualization_schemas_exports.validSparklineTypes, types[currentColumn][currentRow])) {
3443
3554
  sparklineType = types[currentColumn][currentRow];
3444
- } else if (typeof types !== "undefined") {
3555
+ } else if (types !== void 0) {
3445
3556
  console.warn(
3446
3557
  `tableFormat.sparklineTypes should be a 2 dimensional array containing one of (${visualization_schemas_exports.validSparklineTypes.join(
3447
3558
  " | "
@@ -3457,7 +3568,7 @@ var getTableFormatColor = (tableFormat, currentColumn, currentRow, field) => {
3457
3568
  color = colors[currentColumn][currentRow];
3458
3569
  } else if (isArray2(colors) && (0, colorUtils_exports.isColor)(colors[currentRow])) {
3459
3570
  color = colors[currentRow];
3460
- } else if (typeof colors !== "undefined" && isArray2(colors) && isArray2(colors[currentColumn]) && colors[currentColumn][currentRow] !== void 0) {
3571
+ } else if (colors !== void 0 && isArray2(colors) && isArray2(colors[currentColumn]) && colors[currentColumn][currentRow] !== void 0) {
3461
3572
  console.warn(
3462
3573
  `tableFormat.${field} needs to be an array of colors, provided ${JSON.stringify(
3463
3574
  colors
@@ -3499,7 +3610,7 @@ var getTableFormatData = (tableFormat, currentCol, currentRow) => {
3499
3610
  let datum;
3500
3611
  if (isArray2(data) && isArray2(data[currentCol])) {
3501
3612
  datum = data[currentCol][currentRow];
3502
- } else if (typeof data !== "undefined") {
3613
+ } else if (data !== void 0) {
3503
3614
  console.warn(
3504
3615
  `tableFormat.data should be a 2 dimensional array containing formatted data to be displayed. ${typeof data} provided`
3505
3616
  );
@@ -3511,7 +3622,7 @@ var getTableFormatHeaderAlign = (tableFormat) => {
3511
3622
  let headerAlign;
3512
3623
  if (typeof alignOption === "string" && visualization_schemas_exports.validAlignments.includes(alignOption)) {
3513
3624
  headerAlign = alignOption;
3514
- } else if (typeof alignOption !== "undefined") {
3625
+ } else if (alignOption !== void 0) {
3515
3626
  console.warn(
3516
3627
  `tableFormat.headerAlign should be a string containing (${visualization_schemas_exports.validAlignments.join(
3517
3628
  " | "
@@ -3522,14 +3633,14 @@ var getTableFormatHeaderAlign = (tableFormat) => {
3522
3633
  };
3523
3634
  var getAttributeFromColumnFormat = (attribute, columnFormat, columnId, columnValue) => (0, lodash_exports.get)(columnFormat, [columnId, attribute]) || (0, lodash_exports.get)(columnFormat, [columnValue, attribute]);
3524
3635
  var validValueSelector = (v1, v2, v3, defaultValue) => {
3525
- const validTypes = ["string", "number"];
3526
- if (validTypes.includes(typeof v1) || isArray2(v1)) {
3636
+ const validTypes = /* @__PURE__ */ new Set(["string", "number"]);
3637
+ if (validTypes.has(typeof v1) || isArray2(v1)) {
3527
3638
  return v1;
3528
3639
  }
3529
- if (validTypes.includes(typeof v2) || isArray2(v2)) {
3640
+ if (validTypes.has(typeof v2) || isArray2(v2)) {
3530
3641
  return v2;
3531
3642
  }
3532
- if (validTypes.includes(typeof v3) || isArray2(v3)) {
3643
+ if (validTypes.has(typeof v3) || isArray2(v3)) {
3533
3644
  return v3;
3534
3645
  }
3535
3646
  return defaultValue;
@@ -3683,7 +3794,7 @@ var useTable = (tableArgs = {}) => {
3683
3794
  ));
3684
3795
  }
3685
3796
  const tableHeader = {
3686
- visibility: visualization_schemas_exports.validHeaderVisibilities.indexOf(headerVisibility) >= 0 ? headerVisibility : "inline",
3797
+ visibility: visualization_schemas_exports.validHeaderVisibilities.includes(headerVisibility) ? headerVisibility : "inline",
3687
3798
  cells: table.map((f, i) => {
3688
3799
  if (i < headers.length) {
3689
3800
  return generateHeader(
@@ -3739,12 +3850,10 @@ var useTable = (tableArgs = {}) => {
3739
3850
  let displayValue = "";
3740
3851
  if (Array.isArray(columnFooterRaw)) {
3741
3852
  displayValue = key === "footer-percentages" ? (_d = columnFooterRaw[1]) != null ? _d : "" : (_e = columnFooterRaw[0]) != null ? _e : "";
3742
- } else if (typeof columnFooterRaw !== "undefined") {
3853
+ } else if (columnFooterRaw !== void 0) {
3743
3854
  displayValue = key === "footer-percentages" ? "" : columnFooterRaw;
3744
- } else {
3745
- displayValue = "";
3746
3855
  }
3747
- const derivedAlign = computeDerivedAlign(colMeta, colIdx, void 0);
3856
+ const derivedAlign = computeDerivedAlign(colMeta, colIdx);
3748
3857
  row.cells.push({
3749
3858
  key: `${key}-${colIdx}`,
3750
3859
  value: displayValue,
@@ -3778,18 +3887,9 @@ var Link_exports = {};
3778
3887
  __export(Link_exports, {
3779
3888
  default: () => Link_default
3780
3889
  });
3781
- var defaultImport43 = __toESM(require("@splunk/react-ui/Link"));
3890
+ var defaultImport44 = __toESM(require("@splunk/react-ui/Link"));
3782
3891
  __reExport(Link_exports, require("@splunk/react-ui/Link"));
3783
- var Link_default = "default" in defaultImport43 ? defaultImport43.default : defaultImport43;
3784
-
3785
- // esm-externals:@splunk/themes
3786
- var themes_exports = {};
3787
- __export(themes_exports, {
3788
- default: () => themes_default
3789
- });
3790
- var defaultImport44 = __toESM(require("@splunk/themes"));
3791
- __reExport(themes_exports, require("@splunk/themes"));
3792
- var themes_default = "default" in defaultImport44 ? defaultImport44.default : defaultImport44;
3892
+ var Link_default = "default" in defaultImport44 ? defaultImport44.default : defaultImport44;
3793
3893
 
3794
3894
  // src/common/StyledSkipLink.tsx
3795
3895
  var StyledSkipLink = styled_components_default(Link_default)`
@@ -4567,7 +4667,7 @@ var getFocusableElements = () => {
4567
4667
  return Array.from(document.querySelectorAll(DEFAULT_FOCUSABLE_SELECTORS));
4568
4668
  };
4569
4669
  var isElementHidden = (element) => {
4570
- const computedStyle = window.getComputedStyle(element);
4670
+ const computedStyle = globalThis.getComputedStyle(element);
4571
4671
  return element.hasAttribute("hidden") || element.getAttribute("aria-hidden") === "true" || computedStyle.display === "none" || computedStyle.visibility === "hidden";
4572
4672
  };
4573
4673
  var isVisibleFocusableElement = (element) => {
@@ -4758,7 +4858,7 @@ var SUITableContainer = styled_components_default.div`
4758
4858
 
4759
4859
  ${({ width, height, isPaging, theme }) => {
4760
4860
  const padding = variables_default.spacingSmall({ theme });
4761
- const paddingOffset = parseInt(padding, 10) * 2;
4861
+ const paddingOffset = Number.parseInt(padding, 10) * 2;
4762
4862
  const calculatedHeight = isPaging ? height - PAGINATOR_CONTAINER_HEIGHT - PAGINATOR_SPACING - paddingOffset : height - paddingOffset;
4763
4863
  const finalHeight = Math.max(calculatedHeight, 1);
4764
4864
  return (0, style_exports.toDimension)({
@@ -4935,32 +5035,37 @@ var getUseMouseOverEffect = (props, header) => {
4935
5035
  return handlerFields.includes(header);
4936
5036
  });
4937
5037
  };
4938
- var PureTable = (props) => {
4939
- const _a = props, {
5038
+ var PureTable = (_a) => {
5039
+ var _b = _a, {
4940
5040
  count,
4941
- width,
4942
- height,
5041
+ width = 300,
5042
+ height = 300,
4943
5043
  backgroundColor,
4944
5044
  tableHeader,
4945
5045
  tableBody,
4946
5046
  tableFooter,
4947
- showRowNumbers,
4948
- showFooterTotals,
4949
- showFooterPercentages,
4950
- sortParams: { currentSortKey, currentSortDir, onSort },
4951
- paginatorParams: _b
4952
- } = _a, _c = _b, { isPaging, onChange: paginatorOnChange } = _c, paginatorProps = __objRest(_c, ["isPaging", "onChange"]), {
4953
- onCellClick,
4954
- onColumnFormatChange,
4955
- columnFormat,
4956
- mode,
4957
- headerVisibility,
5047
+ showRowNumbers = false,
5048
+ showFooterTotals = false,
5049
+ showFooterPercentages = false,
5050
+ sortParams: { currentSortKey, currentSortDir, onSort } = { onSort: lodash_exports.noop },
5051
+ paginatorParams: _c = {
5052
+ isPaging: false,
5053
+ onChange: lodash_exports.noop
5054
+ }
5055
+ } = _b, _d = _c, { isPaging, onChange: paginatorOnChange } = _d, paginatorProps = __objRest(_d, ["isPaging", "onChange"]), {
5056
+ onCellClick = null,
5057
+ onColumnFormatChange = lodash_exports.noop,
5058
+ columnFormat = {},
5059
+ mode = "view",
5060
+ headerVisibility = "inline",
4958
5061
  font,
4959
5062
  fontSize,
4960
- showColumnAsExpandedJson,
4961
- dynamicHeight,
4962
- onRequestHeight
4963
- } = _a;
5063
+ showColumnAsExpandedJson = [],
5064
+ dynamicHeight = false,
5065
+ onRequestHeight,
5066
+ hasEventHandlers,
5067
+ eventHandlers
5068
+ } = _b;
4964
5069
  const [columns, setColumns] = react_exports.useState(columnFormat);
4965
5070
  const [isResizing, setResizing] = react_exports.useState(false);
4966
5071
  const firstRenderCount = react_exports.useRef(count);
@@ -4998,7 +5103,7 @@ var PureTable = (props) => {
4998
5103
  const TableHead = useTableHead(headerVisibility);
4999
5104
  const debouncedDrilldown = react_exports.useMemo(
5000
5105
  () => debounce_default((e, payload) => {
5001
- if (window.getSelection().toString() === "" || (e == null ? void 0 : e.ctrlKey) || (e == null ? void 0 : e.metaKey)) {
5106
+ if (globalThis.getSelection().toString() === "" || (e == null ? void 0 : e.ctrlKey) || (e == null ? void 0 : e.metaKey)) {
5002
5107
  if (typeof onCellClick === "function") {
5003
5108
  onCellClick({ e, payload });
5004
5109
  }
@@ -5013,9 +5118,9 @@ var PureTable = (props) => {
5013
5118
  if (!element) {
5014
5119
  return;
5015
5120
  }
5016
- const row = element.getAttribute("data-row-index");
5017
- const col = element.getAttribute("data-col-index");
5018
- const arrayIndex = element.getAttribute("data-array-index") || -1;
5121
+ const row = element.dataset.rowIndex;
5122
+ const col = element.dataset.colIndex;
5123
+ const arrayIndex = element.dataset.arrayIndex || -1;
5019
5124
  if (row && col) {
5020
5125
  const cellRefIndex = +col;
5021
5126
  let cellIndex = cellRefIndex;
@@ -5115,7 +5220,7 @@ var PureTable = (props) => {
5115
5220
  };
5116
5221
  const footerVisibleHeaderCells = tableHeader.cells.filter((c) => c.showCell !== false);
5117
5222
  const renderFooterRow = (key, dataAttr) => {
5118
- const rows = ((tableFooter == null ? void 0 : tableFooter.rows) || []).filter((r) => r && r.key === key);
5223
+ const rows = ((tableFooter == null ? void 0 : tableFooter.rows) || []).filter((r) => (r == null ? void 0 : r.key) === key);
5119
5224
  if (rows.length === 0) return null;
5120
5225
  return rows.map((row) => /* @__PURE__ */ react_exports.createElement(
5121
5226
  Table_default.Row,
@@ -5125,7 +5230,7 @@ var PureTable = (props) => {
5125
5230
  "data-row-index": key === "footer-totals" ? "0" : "1"
5126
5231
  },
5127
5232
  (row.cells || []).filter((c) => c.showCell !== false).map((c, idx) => {
5128
- var _a2, _b2, _c2, _d;
5233
+ var _a2, _b2, _c2, _d2;
5129
5234
  const headerCell = footerVisibleHeaderCells[idx];
5130
5235
  const explicitWidth = headerCell && ((_a2 = columns[headerCell.value]) == null ? void 0 : _a2.width);
5131
5236
  const colWidth = explicitWidth && explicitWidth !== "auto" ? explicitWidth : void 0;
@@ -5139,7 +5244,7 @@ var PureTable = (props) => {
5139
5244
  }), colWidth !== void 0 && { width: colWidth }),
5140
5245
  align: c.align || "right"
5141
5246
  },
5142
- (_d = c.value) != null ? _d : ""
5247
+ (_d2 = c.value) != null ? _d2 : ""
5143
5248
  );
5144
5249
  })
5145
5250
  ));
@@ -5180,15 +5285,15 @@ var PureTable = (props) => {
5180
5285
  onRequestResizeColumn: handleResizeColumn
5181
5286
  },
5182
5287
  /* @__PURE__ */ react_exports.createElement(TableHead, null, visibleHeaderCells.map(
5183
- (_d) => {
5184
- var _e = _d, {
5288
+ (_a2) => {
5289
+ var _b2 = _a2, {
5185
5290
  key,
5186
5291
  value,
5187
5292
  sortKey,
5188
5293
  style,
5189
5294
  align,
5190
5295
  textOverflowType
5191
- } = _e, rest = __objRest(_e, [
5296
+ } = _b2, rest = __objRest(_b2, [
5192
5297
  "key",
5193
5298
  "value",
5194
5299
  "sortKey",
@@ -5196,7 +5301,7 @@ var PureTable = (props) => {
5196
5301
  "align",
5197
5302
  "textOverflowType"
5198
5303
  ]);
5199
- var _a2, _b2;
5304
+ var _a3, _b3;
5200
5305
  return /* @__PURE__ */ react_exports.createElement(
5201
5306
  HeadCell,
5202
5307
  __spreadProps(__spreadValues({}, __spreadValues({ sortKey }, rest)), {
@@ -5206,7 +5311,7 @@ var PureTable = (props) => {
5206
5311
  key,
5207
5312
  columnId: value,
5208
5313
  sortDir: sortKey === currentSortKey ? currentSortDir : "none",
5209
- width: (_b2 = (_a2 = columns[value]) == null ? void 0 : _a2.width) != null ? _b2 : INITIAL_UNSET_COLUMN_WIDTH,
5314
+ width: (_b3 = (_a3 = columns[value]) == null ? void 0 : _a3.width) != null ? _b3 : INITIAL_UNSET_COLUMN_WIDTH,
5210
5315
  onMouseDown: handleEventHeadCellMouseDown,
5211
5316
  value,
5212
5317
  onSort: showRowNumbers && value === "#" || isHeaderHidden ? null : onSortToUse,
@@ -5251,7 +5356,7 @@ var PureTable = (props) => {
5251
5356
  {
5252
5357
  cell,
5253
5358
  useMouseOverEffect: getUseMouseOverEffect(
5254
- props,
5359
+ { hasEventHandlers, mode, eventHandlers },
5255
5360
  cell.header
5256
5361
  )
5257
5362
  }
@@ -5260,7 +5365,7 @@ var PureTable = (props) => {
5260
5365
  {
5261
5366
  cell,
5262
5367
  useMouseOverEffect: getUseMouseOverEffect(
5263
- props,
5368
+ { hasEventHandlers, mode, eventHandlers },
5264
5369
  cell.header
5265
5370
  ),
5266
5371
  width: (_b2 = (_a3 = columns[cell.header]) == null ? void 0 : _a3.width) != null ? _b2 : "auto"
@@ -5270,7 +5375,7 @@ var PureTable = (props) => {
5270
5375
  {
5271
5376
  cell,
5272
5377
  useMouseOverEffect: getUseMouseOverEffect(
5273
- props,
5378
+ { hasEventHandlers, mode, eventHandlers },
5274
5379
  cell.header
5275
5380
  )
5276
5381
  }
@@ -5300,82 +5405,6 @@ var PureTable = (props) => {
5300
5405
  }, paginatorProps)
5301
5406
  )) : null);
5302
5407
  };
5303
- var cellDataType = prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number, prop_types_exports.arrayOf(prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]))]);
5304
- PureTable.propTypes = {
5305
- backgroundColor: prop_types_exports.string,
5306
- count: prop_types_exports.number,
5307
- columnFormat: prop_types_exports.objectOf(
5308
- prop_types_exports.shape({
5309
- align: prop_types_exports.oneOfType([prop_types_exports.arrayOf(prop_types_exports.oneOf(visualization_schemas_exports.validColumnAlignments)), prop_types_exports.oneOf(visualization_schemas_exports.validColumnAlignments)]),
5310
- cellTypes: prop_types_exports.arrayOf(prop_types_exports.oneOf(visualization_schemas_exports.validCellRenderers)),
5311
- data: prop_types_exports.arrayOf(cellDataType),
5312
- headerAlign: prop_types_exports.oneOf(visualization_schemas_exports.validColumnAlignments),
5313
- rowBackgroundColors: prop_types_exports.arrayOf(prop_types_exports.string),
5314
- rowColors: prop_types_exports.arrayOf(prop_types_exports.string),
5315
- sparklineAreaColors: prop_types_exports.arrayOf(prop_types_exports.string),
5316
- sparklineColors: prop_types_exports.arrayOf(prop_types_exports.string),
5317
- sparklineTypes: prop_types_exports.arrayOf(prop_types_exports.oneOf(visualization_schemas_exports.validSparklineTypes))
5318
- })
5319
- ),
5320
- headers: prop_types_exports.arrayOf(prop_types_exports.string),
5321
- headerVisibility: prop_types_exports.oneOf(visualization_schemas_exports.validHeaderVisibilities),
5322
- height: prop_types_exports.oneOfType([prop_types_exports.number]),
5323
- mode: prop_types_exports.string,
5324
- onCellClick: prop_types_exports.func,
5325
- paginatorParams: PaginatorParamsPropTypes,
5326
- showColumnAsExpandedJson: prop_types_exports.arrayOf(prop_types_exports.string),
5327
- showRowNumbers: prop_types_exports.bool,
5328
- showFooterTotals: prop_types_exports.bool,
5329
- sortParams: SortParamsPropTypes,
5330
- table: prop_types_exports.arrayOf(prop_types_exports.arrayOf(cellDataType)),
5331
- tableFormat: prop_types_exports.shape({
5332
- align: prop_types_exports.oneOfType([prop_types_exports.arrayOf(prop_types_exports.arrayOf(prop_types_exports.oneOf(visualization_schemas_exports.validAlignments))), prop_types_exports.oneOf(visualization_schemas_exports.validAlignments)]),
5333
- cellTypes: prop_types_exports.arrayOf(prop_types_exports.arrayOf(prop_types_exports.oneOf(visualization_schemas_exports.validCellRenderers))),
5334
- data: prop_types_exports.arrayOf(prop_types_exports.arrayOf(cellDataType)),
5335
- headerAlign: prop_types_exports.oneOf(visualization_schemas_exports.validAlignments),
5336
- headerBackgroundColor: prop_types_exports.string,
5337
- headerColor: prop_types_exports.string,
5338
- rowBackgroundColors: prop_types_exports.oneOfType([prop_types_exports.arrayOf(prop_types_exports.string), prop_types_exports.arrayOf(prop_types_exports.arrayOf(prop_types_exports.string))]),
5339
- rowColors: prop_types_exports.oneOfType([prop_types_exports.arrayOf(prop_types_exports.string), prop_types_exports.arrayOf(prop_types_exports.arrayOf(prop_types_exports.string))]),
5340
- sparklineAreaColors: prop_types_exports.arrayOf(prop_types_exports.arrayOf(prop_types_exports.string)),
5341
- sparklineColors: prop_types_exports.arrayOf(prop_types_exports.arrayOf(prop_types_exports.string)),
5342
- sparklineTypes: prop_types_exports.arrayOf(prop_types_exports.arrayOf(prop_types_exports.oneOf(visualization_schemas_exports.validSparklineTypes)))
5343
- }),
5344
- theme: prop_types_exports.any,
5345
- width: prop_types_exports.oneOfType([prop_types_exports.number]),
5346
- onColumnFormatChange: prop_types_exports.func,
5347
- font: prop_types_exports.string,
5348
- fontSize: prop_types_exports.string,
5349
- dynamicHeight: prop_types_exports.bool,
5350
- onRequestHeight: prop_types_exports.func
5351
- };
5352
- PureTable.defaultProps = {
5353
- columnFormat: {},
5354
- headers: [],
5355
- headerVisibility: "inline",
5356
- height: 300,
5357
- mode: "view",
5358
- onCellClick: null,
5359
- paginatorParams: {
5360
- isPaging: false,
5361
- onChange: lodash_exports.noop
5362
- },
5363
- showColumnAsExpandedJson: [],
5364
- showRowNumbers: false,
5365
- showFooterTotals: false,
5366
- showFooterPercentages: false,
5367
- sortParams: {
5368
- onSort: lodash_exports.noop
5369
- },
5370
- table: [],
5371
- tableFormat: {},
5372
- theme: {},
5373
- width: 300,
5374
- onColumnFormatChange: lodash_exports.noop,
5375
- font: fontMap.proportional,
5376
- fontSize: fontSizeMap.default,
5377
- dynamicHeight: false
5378
- };
5379
5408
  PureTable.displayName = "VizTable";
5380
5409
  var PureTable_default = withEmptyTableMessage(FixedSizeContainer_default(PureTable));
5381
5410
 
@@ -5411,7 +5440,7 @@ var computeVizProps = (_a) => {
5411
5440
  if (vizProps.onOptionsChange) {
5412
5441
  const handleColumnFormatChange = (updatedColumnFormat) => {
5413
5442
  var _a3;
5414
- const cloneOfExistingColumnFormat = __spreadValues({}, ((_a3 = vizProps == null ? void 0 : vizProps.options) == null ? void 0 : _a3.columnFormat) || {});
5443
+ const cloneOfExistingColumnFormat = __spreadValues({}, (_a3 = vizProps == null ? void 0 : vizProps.options) == null ? void 0 : _a3.columnFormat);
5415
5444
  const keys = Object.keys(updatedColumnFormat);
5416
5445
  const values = Object.values(updatedColumnFormat);
5417
5446
  keys.forEach((key, index) => {
@@ -5433,13 +5462,7 @@ var computeVizProps = (_a) => {
5433
5462
  };
5434
5463
  var withTableFooter = (Viz) => {
5435
5464
  const VizWithTableFooter = (_a) => {
5436
- var _b = _a, {
5437
- dataSources,
5438
- options = {}
5439
- } = _b, otherProps = __objRest(_b, [
5440
- "dataSources",
5441
- "options"
5442
- ]);
5465
+ var _b = _a, { dataSources, options = {} } = _b, otherProps = __objRest(_b, ["dataSources", "options"]);
5443
5466
  var _a2, _b2, _c;
5444
5467
  const footerKeyRef = react_exports.useRef(null);
5445
5468
  if (footerKeyRef.current === null) {
@@ -5472,13 +5495,13 @@ var withTableFooter = (Viz) => {
5472
5495
  if (!showFooterTotals && !showFooterPercentages) {
5473
5496
  return options;
5474
5497
  }
5475
- const columnFormat = __spreadValues({}, (options == null ? void 0 : options.columnFormat) || {});
5498
+ const columnFormat = __spreadValues({}, options == null ? void 0 : options.columnFormat);
5476
5499
  const fieldNames = (fieldsMeta || []).map((f) => f && (f.name || f)).filter(Boolean);
5477
5500
  fieldNames.forEach((fieldName) => {
5478
5501
  var _a3, _b3;
5479
5502
  if (!fieldName || fieldName === "#") return;
5480
5503
  const existingFooter = (_a3 = columnFormat == null ? void 0 : columnFormat[fieldName]) == null ? void 0 : _a3.footer;
5481
- if (typeof existingFooter === "undefined") {
5504
+ if (existingFooter === void 0) {
5482
5505
  const dataDsl = (_b3 = columnFormat == null ? void 0 : columnFormat[fieldName]) == null ? void 0 : _b3.data;
5483
5506
  let configToken = null;
5484
5507
  if (typeof dataDsl === "string") {
@@ -5487,13 +5510,13 @@ var withTableFooter = (Viz) => {
5487
5510
  }
5488
5511
  let footerDsl = `> ${footerKey} | seriesByName("${fieldName}")`;
5489
5512
  if (configToken) footerDsl += ` | formatByType(${configToken})`;
5490
- columnFormat[fieldName] = __spreadProps(__spreadValues({}, columnFormat[fieldName] || {}), {
5513
+ columnFormat[fieldName] = __spreadProps(__spreadValues({}, columnFormat[fieldName]), {
5491
5514
  footer: footerDsl
5492
5515
  });
5493
5516
  } else if (typeof existingFooter === "string") {
5494
5517
  const updatedFooterDsl = existingFooter.replaceAll(/>\s*footer\w*/g, `> ${footerKey}`);
5495
5518
  if (updatedFooterDsl !== existingFooter) {
5496
- columnFormat[fieldName] = __spreadProps(__spreadValues({}, columnFormat[fieldName] || {}), {
5519
+ columnFormat[fieldName] = __spreadProps(__spreadValues({}, columnFormat[fieldName]), {
5497
5520
  footer: updatedFooterDsl
5498
5521
  });
5499
5522
  }
@@ -5506,7 +5529,6 @@ var withTableFooter = (Viz) => {
5506
5529
  }
5507
5530
  return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({ dataSources: newDataSources, options: newOptions }, otherProps));
5508
5531
  };
5509
- VizWithTableFooter.defaultProps = Viz.defaultProps;
5510
5532
  VizWithTableFooter.config = Viz.config;
5511
5533
  return VizWithTableFooter;
5512
5534
  };