@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/ProcessTree.js CHANGED
@@ -38,8 +38,13 @@ var __objRest = (source, exclude) => {
38
38
  }
39
39
  return target;
40
40
  };
41
- var __esm = (fn, res) => function __init() {
42
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
41
+ var __esm = (fn, res, err) => function __init() {
42
+ if (err) throw err[0];
43
+ try {
44
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
45
+ } catch (e) {
46
+ throw err = [e], e;
47
+ }
43
48
  };
44
49
  var __export = (target, all) => {
45
50
  for (var name in all)
@@ -96,13 +101,13 @@ var Fire_exports = {};
96
101
  __export(Fire_exports, {
97
102
  default: () => Fire_default
98
103
  });
99
- var defaultImport37, Fire_default;
104
+ var defaultImport39, Fire_default;
100
105
  var init_Fire = __esm({
101
106
  "esm-externals:@splunk/react-icons/Fire.js"() {
102
107
  init_define_global();
103
- defaultImport37 = __toESM(require("@splunk/react-icons/Fire.js"));
108
+ defaultImport39 = __toESM(require("@splunk/react-icons/Fire.js"));
104
109
  __reExport(Fire_exports, require("@splunk/react-icons/Fire.js"));
105
- Fire_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
110
+ Fire_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
106
111
  }
107
112
  });
108
113
 
@@ -111,13 +116,13 @@ var RectangleDashed_exports = {};
111
116
  __export(RectangleDashed_exports, {
112
117
  default: () => RectangleDashed_default
113
118
  });
114
- var defaultImport38, RectangleDashed_default;
119
+ var defaultImport40, RectangleDashed_default;
115
120
  var init_RectangleDashed = __esm({
116
121
  "esm-externals:@splunk/react-icons/RectangleDashed.js"() {
117
122
  init_define_global();
118
- defaultImport38 = __toESM(require("@splunk/react-icons/RectangleDashed.js"));
123
+ defaultImport40 = __toESM(require("@splunk/react-icons/RectangleDashed.js"));
119
124
  __reExport(RectangleDashed_exports, require("@splunk/react-icons/RectangleDashed.js"));
120
- RectangleDashed_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
125
+ RectangleDashed_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
121
126
  }
122
127
  });
123
128
 
@@ -126,13 +131,13 @@ var Cube_exports = {};
126
131
  __export(Cube_exports, {
127
132
  default: () => Cube_default
128
133
  });
129
- var defaultImport39, Cube_default;
134
+ var defaultImport41, Cube_default;
130
135
  var init_Cube = __esm({
131
136
  "esm-externals:@splunk/react-icons/Cube.js"() {
132
137
  init_define_global();
133
- defaultImport39 = __toESM(require("@splunk/react-icons/Cube.js"));
138
+ defaultImport41 = __toESM(require("@splunk/react-icons/Cube.js"));
134
139
  __reExport(Cube_exports, require("@splunk/react-icons/Cube.js"));
135
- Cube_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
140
+ Cube_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
136
141
  }
137
142
  });
138
143
 
@@ -141,13 +146,13 @@ var Servers_exports = {};
141
146
  __export(Servers_exports, {
142
147
  default: () => Servers_default
143
148
  });
144
- var defaultImport40, Servers_default;
149
+ var defaultImport42, Servers_default;
145
150
  var init_Servers = __esm({
146
151
  "esm-externals:@splunk/react-icons/Servers.js"() {
147
152
  init_define_global();
148
- defaultImport40 = __toESM(require("@splunk/react-icons/Servers.js"));
153
+ defaultImport42 = __toESM(require("@splunk/react-icons/Servers.js"));
149
154
  __reExport(Servers_exports, require("@splunk/react-icons/Servers.js"));
150
- Servers_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
155
+ Servers_default = "default" in defaultImport42 ? defaultImport42.default : defaultImport42;
151
156
  }
152
157
  });
153
158
 
@@ -156,13 +161,43 @@ var Container_exports = {};
156
161
  __export(Container_exports, {
157
162
  default: () => Container_default
158
163
  });
159
- var defaultImport41, Container_default;
164
+ var defaultImport43, Container_default;
160
165
  var init_Container = __esm({
161
166
  "esm-externals:@splunk/react-icons/Container.js"() {
162
167
  init_define_global();
163
- defaultImport41 = __toESM(require("@splunk/react-icons/Container.js"));
168
+ defaultImport43 = __toESM(require("@splunk/react-icons/Container.js"));
164
169
  __reExport(Container_exports, require("@splunk/react-icons/Container.js"));
165
- Container_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
170
+ Container_default = "default" in defaultImport43 ? defaultImport43.default : defaultImport43;
171
+ }
172
+ });
173
+
174
+ // esm-externals:@splunk/react-icons/GeoTag.js
175
+ var GeoTag_exports = {};
176
+ __export(GeoTag_exports, {
177
+ default: () => GeoTag_default
178
+ });
179
+ var defaultImport44, GeoTag_default;
180
+ var init_GeoTag = __esm({
181
+ "esm-externals:@splunk/react-icons/GeoTag.js"() {
182
+ init_define_global();
183
+ defaultImport44 = __toESM(require("@splunk/react-icons/GeoTag.js"));
184
+ __reExport(GeoTag_exports, require("@splunk/react-icons/GeoTag.js"));
185
+ GeoTag_default = "default" in defaultImport44 ? defaultImport44.default : defaultImport44;
186
+ }
187
+ });
188
+
189
+ // esm-externals:@splunk/react-icons/LayersDoubleTransparent.js
190
+ var LayersDoubleTransparent_exports = {};
191
+ __export(LayersDoubleTransparent_exports, {
192
+ default: () => LayersDoubleTransparent_default
193
+ });
194
+ var defaultImport45, LayersDoubleTransparent_default;
195
+ var init_LayersDoubleTransparent = __esm({
196
+ "esm-externals:@splunk/react-icons/LayersDoubleTransparent.js"() {
197
+ init_define_global();
198
+ defaultImport45 = __toESM(require("@splunk/react-icons/LayersDoubleTransparent.js"));
199
+ __reExport(LayersDoubleTransparent_exports, require("@splunk/react-icons/LayersDoubleTransparent.js"));
200
+ LayersDoubleTransparent_default = "default" in defaultImport45 ? defaultImport45.default : defaultImport45;
166
201
  }
167
202
  });
168
203
 
@@ -493,7 +528,10 @@ var useSortingParams = ({ requestParams, onRequestParamsChange }) => {
493
528
  onSort = (e, { sortKey, sortDir }) => {
494
529
  if (typeof sortKey === "string") {
495
530
  const nextSortDir = (0, lodash_exports.has)(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : "none";
496
- onRequestParamsChange(__spreadValues(__spreadValues({}, requestParams), { offset: 0, sort: { [sortKey]: nextSortDir } }));
531
+ onRequestParamsChange(__spreadProps(__spreadValues({}, requestParams), {
532
+ offset: 0,
533
+ sort: { [sortKey]: nextSortDir }
534
+ }));
497
535
  } else {
498
536
  onRequestParamsChange(requestParams);
499
537
  }
@@ -649,7 +687,7 @@ var Cover = styled_components_default.div`
649
687
  bottom: 0;
650
688
  `;
651
689
  var Blocker = styled_components_default.div.attrs({
652
- "data-splunk-visualization-version": "28.8.0 - 633c53372"
690
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
653
691
  })`
654
692
  position: relative;
655
693
  width: 100%;
@@ -682,6 +720,16 @@ var variables_default = "default" in defaultImport20 ? defaultImport20.default :
682
720
  // src/common/components/IconPlaceholder.tsx
683
721
  init_define_global();
684
722
 
723
+ // esm-externals:@splunk/themes
724
+ var themes_exports = {};
725
+ __export(themes_exports, {
726
+ default: () => themes_default
727
+ });
728
+ init_define_global();
729
+ var defaultImport21 = __toESM(require("@splunk/themes"));
730
+ __reExport(themes_exports, require("@splunk/themes"));
731
+ var themes_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
732
+
685
733
  // src/common/hocs/FixedSizeContainer.tsx
686
734
  init_define_global();
687
735
 
@@ -691,9 +739,9 @@ __export(style_exports, {
691
739
  default: () => style_default
692
740
  });
693
741
  init_define_global();
694
- var defaultImport21 = __toESM(require("@splunk/visualizations-shared/style"));
742
+ var defaultImport22 = __toESM(require("@splunk/visualizations-shared/style"));
695
743
  __reExport(style_exports, require("@splunk/visualizations-shared/style"));
696
- var style_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
744
+ var style_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
697
745
 
698
746
  // src/common/hocs/FixedSizeContainer.tsx
699
747
  var Item = styled_components_default.div.attrs(({ width }) => ({
@@ -750,7 +798,7 @@ var withFixedSizeContainer = (Viz) => {
750
798
  FixSizeItem,
751
799
  {
752
800
  "data-test": "fix-size-item",
753
- "data-splunk-visualization-version": "28.8.0 - 633c53372",
801
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
754
802
  width,
755
803
  height,
756
804
  backgroundColor
@@ -771,6 +819,14 @@ var shouldShowIconPlaceholder = (dataSources, loading = false) => {
771
819
  const noFields = fields === void 0;
772
820
  return loading || noData || noFields;
773
821
  };
822
+ var PlaceholderContainer = styled_components_default.div`
823
+ /* The inline token color wins when supported. Older browsers discard an
824
+ unsupported oklch value and retain this inherited fallback instead. */
825
+ color: ${(0, themes_exports.pick)({
826
+ dark: "#fafafa",
827
+ light: "#2c2c2c"
828
+ })};
829
+ `;
774
830
  var IconPlaceholder = (props) => {
775
831
  const {
776
832
  width = SplunkVisualization_default.defaults.width,
@@ -785,7 +841,6 @@ var IconPlaceholder = (props) => {
785
841
  style: {
786
842
  left: "50%",
787
843
  top: "50%",
788
- color: iconColor,
789
844
  opacity: 0.15,
790
845
  position: "absolute",
791
846
  transform: "translate(-50%, -50%)"
@@ -795,7 +850,14 @@ var IconPlaceholder = (props) => {
795
850
  "data-test": "icon-placeholder"
796
851
  });
797
852
  }
798
- return /* @__PURE__ */ react_exports.createElement("div", { style: { width, height, background: backgroundColor } }, content);
853
+ return /* @__PURE__ */ react_exports.createElement(
854
+ PlaceholderContainer,
855
+ {
856
+ "data-test": "icon-placeholder-container",
857
+ style: { width, height, background: backgroundColor, color: iconColor }
858
+ },
859
+ content
860
+ );
799
861
  };
800
862
  var IconPlaceholder_default = FixedSizeContainer_default(IconPlaceholder);
801
863
 
@@ -848,9 +910,9 @@ __export(numberUtils_exports, {
848
910
  default: () => numberUtils_default
849
911
  });
850
912
  init_define_global();
851
- var defaultImport22 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
913
+ var defaultImport23 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
852
914
  __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUtils"));
853
- var numberUtils_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
915
+ var numberUtils_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
854
916
 
855
917
  // src/common/interfaces/index.ts
856
918
  init_define_global();
@@ -942,7 +1004,7 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
942
1004
  let avgY = 0;
943
1005
  let avgRangeStart = Math.floor((i + 1) * every) + 1;
944
1006
  let avgRangeEnd = Math.floor((i + 2) * every) + 1;
945
- avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
1007
+ avgRangeEnd = Math.min(avgRangeEnd, dataLength);
946
1008
  const avgRangeLength = avgRangeEnd - avgRangeStart;
947
1009
  for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
948
1010
  avgX += Number(data[avgRangeStart][0]);
@@ -977,9 +1039,9 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
977
1039
  };
978
1040
  var strictlyCoerceYColumn = (column, options) => {
979
1041
  const isNullCoercionEnabled = options.nullValueDisplay === "zero";
980
- const canLooselyCoerceSomeValues = column.findIndex(
1042
+ const canLooselyCoerceSomeValues = column.some(
981
1043
  (value) => (0, numberUtils_exports.startsWithNumber)(`${value}`) || isNullCoercionEnabled && value === null
982
- ) >= 0;
1044
+ );
983
1045
  const coercedColumn = [];
984
1046
  const canDownsampleColumn = !column.some((value) => {
985
1047
  const coercedValue = Number(value);
@@ -998,7 +1060,7 @@ var strictlyCoerceYColumn = (column, options) => {
998
1060
  };
999
1061
  var strictlyCoerceXColumn = (column, fieldType) => {
1000
1062
  if (fieldType === "number") {
1001
- const coercedXColumn = column.map((xValue) => Number(xValue));
1063
+ const coercedXColumn = column.map(Number);
1002
1064
  if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {
1003
1065
  return coercedXColumn;
1004
1066
  }
@@ -1303,16 +1365,16 @@ __export(FeatureFlags_exports, {
1303
1365
  default: () => FeatureFlags_default
1304
1366
  });
1305
1367
  init_define_global();
1306
- var defaultImport23 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1368
+ var defaultImport24 = __toESM(require("@splunk/visualization-context/FeatureFlags"));
1307
1369
  __reExport(FeatureFlags_exports, require("@splunk/visualization-context/FeatureFlags"));
1308
- var FeatureFlags_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
1370
+ var FeatureFlags_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
1309
1371
 
1310
1372
  // src/common/utils/featureFlagUtils.ts
1311
1373
  var getFeatureFlag = (context, flagName) => {
1312
- if (context && Object.keys(context).find((key) => key === flagName)) {
1374
+ if (context && Object.keys(context).includes(flagName)) {
1313
1375
  return context[flagName];
1314
1376
  }
1315
- if (Object.keys(FeatureFlags_default).find((key) => key === flagName)) {
1377
+ if (Object.keys(FeatureFlags_default).includes(flagName)) {
1316
1378
  return FeatureFlags_default[flagName];
1317
1379
  }
1318
1380
  return false;
@@ -1327,9 +1389,9 @@ __export(trellisUtils_exports, {
1327
1389
  default: () => trellisUtils_default
1328
1390
  });
1329
1391
  init_define_global();
1330
- var defaultImport24 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1392
+ var defaultImport25 = __toESM(require("@splunk/visualizations-shared/trellisUtils"));
1331
1393
  __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisUtils"));
1332
- var trellisUtils_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
1394
+ var trellisUtils_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
1333
1395
 
1334
1396
  // src/common/utils/trellisUtils.ts
1335
1397
  var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
@@ -1350,9 +1412,9 @@ __export(visualization_canvas_exports, {
1350
1412
  default: () => visualization_canvas_default
1351
1413
  });
1352
1414
  init_define_global();
1353
- var defaultImport25 = __toESM(require("@splunk/visualization-canvas"));
1415
+ var defaultImport26 = __toESM(require("@splunk/visualization-canvas"));
1354
1416
  __reExport(visualization_canvas_exports, require("@splunk/visualization-canvas"));
1355
- var visualization_canvas_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
1417
+ var visualization_canvas_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1356
1418
 
1357
1419
  // src/common/components/VizStyleWrapper.jsx
1358
1420
  init_define_global();
@@ -1379,9 +1441,9 @@ __export(Triangle_exports, {
1379
1441
  default: () => Triangle_default
1380
1442
  });
1381
1443
  init_define_global();
1382
- var defaultImport26 = __toESM(require("@splunk/react-icons/Triangle"));
1444
+ var defaultImport27 = __toESM(require("@splunk/react-icons/Triangle"));
1383
1445
  __reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
1384
- var Triangle_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
1446
+ var Triangle_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1385
1447
 
1386
1448
  // esm-externals:@splunk/visualizations-shared/propUtils
1387
1449
  var propUtils_exports = {};
@@ -1389,9 +1451,9 @@ __export(propUtils_exports, {
1389
1451
  default: () => propUtils_default
1390
1452
  });
1391
1453
  init_define_global();
1392
- var defaultImport27 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1454
+ var defaultImport28 = __toESM(require("@splunk/visualizations-shared/propUtils"));
1393
1455
  __reExport(propUtils_exports, require("@splunk/visualizations-shared/propUtils"));
1394
- var propUtils_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1456
+ var propUtils_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1395
1457
 
1396
1458
  // esm-externals:@splunk/visualizations-shared/simpleXMLOptions
1397
1459
  var simpleXMLOptions_exports = {};
@@ -1399,9 +1461,9 @@ __export(simpleXMLOptions_exports, {
1399
1461
  default: () => simpleXMLOptions_default
1400
1462
  });
1401
1463
  init_define_global();
1402
- var defaultImport28 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1464
+ var defaultImport29 = __toESM(require("@splunk/visualizations-shared/simpleXMLOptions"));
1403
1465
  __reExport(simpleXMLOptions_exports, require("@splunk/visualizations-shared/simpleXMLOptions"));
1404
- var simpleXMLOptions_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1466
+ var simpleXMLOptions_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1405
1467
 
1406
1468
  // src/common/chartingUtils.ts
1407
1469
  var DEFAULT_LINE_WIDTH = 2;
@@ -1440,9 +1502,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
1440
1502
  const xAxisIsTime = xField === "_time";
1441
1503
  return !!rangeSelectEventHandler && xAxisIsTime;
1442
1504
  };
1443
- var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
1505
+ var canvasSupportedTimeSeriesCharts = /* @__PURE__ */ new Set(["splunk.line", "splunk.area"]);
1444
1506
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
1445
- return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
1507
+ return canvasSupportedTimeSeriesCharts.has(vizConfigKey);
1446
1508
  };
1447
1509
  var filterChartDataFromInternalFields = (chartData) => {
1448
1510
  const { fields, columns } = chartData;
@@ -1458,7 +1520,7 @@ var filterChartDataFromInternalFields = (chartData) => {
1458
1520
  return { fields: filteredFields, columns: filteredColumns };
1459
1521
  };
1460
1522
  var convert2DArrayToNumbers = (arr) => {
1461
- return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
1523
+ return arr.map((subArray) => subArray.map((element) => Number.parseFloat(element)));
1462
1524
  };
1463
1525
  var parseAxisValue = (val) => {
1464
1526
  if (val === void 0 || val === null || val === "auto" || val === "") {
@@ -1496,6 +1558,7 @@ var getLegend = (props) => {
1496
1558
  return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
1497
1559
  wrap: true
1498
1560
  }, commonLegendProps));
1561
+ // Note: By default, use right legend
1499
1562
  default:
1500
1563
  return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
1501
1564
  }
@@ -1628,10 +1691,10 @@ var getSeriesOverrides = (opts) => {
1628
1691
  let spanGaps;
1629
1692
  if (nullValueMode === "gaps") {
1630
1693
  spanGaps = false;
1631
- } else if (nullValueMode != null) {
1632
- spanGaps = true;
1633
- } else {
1694
+ } else if (nullValueMode == null) {
1634
1695
  spanGaps = void 0;
1696
+ } else {
1697
+ spanGaps = true;
1635
1698
  }
1636
1699
  const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
1637
1700
  const isAreaChart = type === "area";
@@ -1708,9 +1771,9 @@ __export(visualization_schemas_exports, {
1708
1771
  default: () => visualization_schemas_default
1709
1772
  });
1710
1773
  init_define_global();
1711
- var defaultImport29 = __toESM(require("@splunk/visualization-schemas"));
1774
+ var defaultImport30 = __toESM(require("@splunk/visualization-schemas"));
1712
1775
  __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
1713
- var visualization_schemas_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1776
+ var visualization_schemas_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1714
1777
 
1715
1778
  // src/common/hooks/useTrellisEnabled.ts
1716
1779
  var useTrellisFeatureFlagOn = () => {
@@ -2076,11 +2139,11 @@ var TimeSeriesChartWrapper = (props) => {
2076
2139
  y2AxisMajorUnitFromSimpleXML,
2077
2140
  y2AxisMajorTickInterval
2078
2141
  );
2079
- const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
2080
- const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
2081
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
2082
- const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
2083
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
2142
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize == null ? void 0 : Number(xAxisMajorTickSize);
2143
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize == null ? void 0 : Number(yAxisMajorTickSize);
2144
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize == null ? void 0 : Number(y2AxisMajorTickSize);
2145
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize == null ? void 0 : Number(yAxisMinorTickSize);
2146
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize == null ? void 0 : Number(y2AxisMinorTickSize);
2084
2147
  const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
2085
2148
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
2086
2149
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
@@ -2492,6 +2555,76 @@ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTr
2492
2555
  });
2493
2556
  return result;
2494
2557
  };
2558
+ var buildAllEventCallbackProps = (events, evaluatedOptionsToUse, onEventTrigger, { supportsEvents, hasEventHandlers, mode }) => {
2559
+ if (!supportsEvents) return {};
2560
+ const defaultEvents = {};
2561
+ const userEvents = {};
2562
+ Object.entries(events || {}).forEach(([eventKey, eventConfig]) => {
2563
+ (eventConfig.source === "default" ? defaultEvents : userEvents)[eventKey] = eventConfig;
2564
+ });
2565
+ const userProps = hasEventHandlers && mode === "view" ? buildEventCallbackProps(userEvents, evaluatedOptionsToUse, onEventTrigger) : {};
2566
+ return __spreadValues(__spreadValues({}, userProps), buildEventCallbackProps(defaultEvents, evaluatedOptionsToUse, onEventTrigger));
2567
+ };
2568
+ var applyContextTimezone = (localeContext) => {
2569
+ if (localeContext.serializedTimezone && !moment_default.getDefaultSplunkTimezone()) {
2570
+ moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2571
+ }
2572
+ };
2573
+ var getAsyncOptionsEvaluationParams = ({
2574
+ visualizationID,
2575
+ props,
2576
+ optionsToEvaluate,
2577
+ downsampledDataSources,
2578
+ vizConfig,
2579
+ bypassCloneDeepOptionScope,
2580
+ lazyLoadingDataFrame
2581
+ }) => {
2582
+ return {
2583
+ visualizationID,
2584
+ props,
2585
+ options: __spreadValues({}, optionsToEvaluate),
2586
+ dataSources: downsampledDataSources,
2587
+ theme: vizConfig.themes,
2588
+ bypassCloneDeepOptionScope,
2589
+ lazyLoadingDataFrame
2590
+ };
2591
+ };
2592
+ var evaluateOptionsSync = ({
2593
+ optionsToEvaluate,
2594
+ downsampledDataSources,
2595
+ dataSourcesInState,
2596
+ dataFramesInState,
2597
+ setDataSourcesInState,
2598
+ setDataFramesInState,
2599
+ computeDataFrames,
2600
+ featureFlagContext,
2601
+ themeFunc
2602
+ }) => {
2603
+ let dataFrames = dataFramesInState;
2604
+ if (downsampledDataSources !== dataSourcesInState) {
2605
+ setDataSourcesInState(downsampledDataSources);
2606
+ dataFrames = Options_exports.Options.dataFrameFromDataSource(
2607
+ downsampledDataSources,
2608
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2609
+ );
2610
+ setDataFramesInState(dataFrames);
2611
+ }
2612
+ let mergedFrames = dataFrames;
2613
+ if (computeDataFrames && dataFrames) {
2614
+ const derivedFrames = computeDataFrames({
2615
+ dataSources: downsampledDataSources,
2616
+ options: optionsToEvaluate.options
2617
+ });
2618
+ mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2619
+ }
2620
+ return Options_exports.Options.evaluate(
2621
+ optionsToEvaluate,
2622
+ downsampledDataSources,
2623
+ themeFunc,
2624
+ mergedFrames,
2625
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2626
+ );
2627
+ };
2495
2628
  var withDashboardViz = (opts) => {
2496
2629
  const {
2497
2630
  ReactViz,
@@ -2523,11 +2656,7 @@ var withDashboardViz = (opts) => {
2523
2656
  onRequestParamsChange = lodash_exports.noop
2524
2657
  } = props;
2525
2658
  const localeContext = react_exports.useContext(TimezoneContext_default);
2526
- if (localeContext.serializedTimezone) {
2527
- if (!moment_default.getDefaultSplunkTimezone()) {
2528
- moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
2529
- }
2530
- }
2659
+ applyContextTimezone(localeContext);
2531
2660
  const themeFunc = (themeVar) => {
2532
2661
  var _a2, _b;
2533
2662
  return (_b = (_a2 = vizConfig.themes)[themeVar]) == null ? void 0 : _b.call(_a2, props);
@@ -2555,7 +2684,12 @@ var withDashboardViz = (opts) => {
2555
2684
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
2556
2685
  );
2557
2686
  const isAcceleratedRenderOn = isAcceleratedRenderFeatureFlagOn && isTimeSeriesCanvasRenderSupported(vizConfig.key) && (options == null ? void 0 : options.acceleratedRender) === true;
2558
- const isMounted = react_exports.useRef(true);
2687
+ const bypassCloneDeepOptionScope = Boolean(
2688
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2689
+ );
2690
+ const lazyLoadingDataFrame = Boolean(
2691
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2692
+ );
2559
2693
  const optionsToEvaluate = react_exports.useMemo(() => {
2560
2694
  var _a2;
2561
2695
  const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
@@ -2594,63 +2728,74 @@ var withDashboardViz = (opts) => {
2594
2728
  threshold,
2595
2729
  isDownsamplingEnabled
2596
2730
  });
2597
- evaluatedOptions = useDeepMemo(() => {
2731
+ const asyncOptionsEvaluationParams = useDeepMemo(
2732
+ () => getAsyncOptionsEvaluationParams({
2733
+ visualizationID,
2734
+ props,
2735
+ optionsToEvaluate,
2736
+ downsampledDataSources,
2737
+ vizConfig,
2738
+ bypassCloneDeepOptionScope,
2739
+ lazyLoadingDataFrame
2740
+ }),
2741
+ [
2742
+ visualizationID,
2743
+ optionsToEvaluate,
2744
+ downsampledDataSources,
2745
+ vizConfig,
2746
+ bypassCloneDeepOptionScope,
2747
+ lazyLoadingDataFrame,
2748
+ currentThemeFamily,
2749
+ currentThemeColorScheme,
2750
+ currentThemeDensity,
2751
+ localeContext.serializedTimezone
2752
+ ]
2753
+ );
2754
+ react_exports.useEffect(() => {
2755
+ if (!useAsyncEvaluatedOptions) {
2756
+ return void 0;
2757
+ }
2758
+ let ownsEvaluation = true;
2598
2759
  try {
2599
- if (useAsyncEvaluatedOptions) {
2600
- const asyncDynamicOptionsEvaluatorParams = {
2601
- visualizationID,
2602
- props,
2603
- options: optionsToEvaluate,
2604
- dataSources: downsampledDataSources,
2605
- theme: vizConfig.themes,
2606
- bypassCloneDeepOptionScope: Boolean(
2607
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2608
- ),
2609
- lazyLoadingDataFrame: Boolean(
2610
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2611
- )
2612
- };
2613
- async_dynamic_options_evaluator_default.evaluate(asyncDynamicOptionsEvaluatorParams).then((results) => {
2760
+ async_dynamic_options_evaluator_default.evaluate(asyncOptionsEvaluationParams).then((results) => {
2761
+ if (ownsEvaluation) {
2614
2762
  setEvaluatedOptionsAsync(results.results);
2615
- }).catch(() => {
2616
- if (isMounted.current) {
2617
- setUseAsyncEvaluatedOptions(false);
2618
- }
2619
- });
2620
- } else {
2621
- let dataFrames = dataFramesInState;
2622
- if (downsampledDataSources !== dataSourcesInState) {
2623
- setDataSourcesInState(downsampledDataSources);
2624
- dataFrames = Options_exports.Options.dataFrameFromDataSource(
2625
- downsampledDataSources,
2626
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
2627
- );
2628
- setDataFramesInState(dataFrames);
2629
2763
  }
2630
- let mergedFrames = dataFrames;
2631
- if (computeDataFrames && dataFrames) {
2632
- const derivedFrames = computeDataFrames({
2633
- dataSources: downsampledDataSources,
2634
- options: optionsToEvaluate.options
2635
- });
2636
- mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
2764
+ }).catch(() => {
2765
+ if (ownsEvaluation) {
2766
+ setUseAsyncEvaluatedOptions(false);
2637
2767
  }
2638
- const result = Options_exports.Options.evaluate(
2639
- optionsToEvaluate,
2640
- downsampledDataSources,
2641
- themeFunc,
2642
- mergedFrames,
2643
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
2644
- );
2645
- return result;
2768
+ });
2769
+ } catch (e) {
2770
+ setUseAsyncEvaluatedOptions(false);
2771
+ }
2772
+ return () => {
2773
+ ownsEvaluation = false;
2774
+ async_dynamic_options_evaluator_default.reset(visualizationID);
2775
+ };
2776
+ }, [asyncOptionsEvaluationParams, useAsyncEvaluatedOptions, visualizationID]);
2777
+ evaluatedOptions = useDeepMemo(() => {
2778
+ try {
2779
+ if (useAsyncEvaluatedOptions) {
2780
+ return {};
2646
2781
  }
2782
+ return evaluateOptionsSync({
2783
+ optionsToEvaluate,
2784
+ downsampledDataSources,
2785
+ dataSourcesInState,
2786
+ dataFramesInState,
2787
+ setDataSourcesInState,
2788
+ setDataFramesInState,
2789
+ computeDataFrames,
2790
+ featureFlagContext,
2791
+ themeFunc
2792
+ });
2647
2793
  } catch (e) {
2648
2794
  if (e instanceof Error) {
2649
2795
  console.error(`unexpected error evaluating options: ${e.message}`);
2650
2796
  }
2651
2797
  return {};
2652
2798
  }
2653
- return {};
2654
2799
  }, [
2655
2800
  currentThemeFamily,
2656
2801
  currentThemeColorScheme,
@@ -2660,7 +2805,7 @@ var withDashboardViz = (opts) => {
2660
2805
  localeContext.serializedTimezone,
2661
2806
  useAsyncEvaluatedOptions
2662
2807
  ]);
2663
- const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
2808
+ const evaluatedOptionsToUse = useAsyncEvaluatedOptions ? evaluatedOptionsAsync : evaluatedOptions;
2664
2809
  let dataSourceMetadata = {};
2665
2810
  const OptionKey = "paginateDataSourceKey";
2666
2811
  const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
@@ -2682,7 +2827,7 @@ var withDashboardViz = (opts) => {
2682
2827
  sortParams,
2683
2828
  paginatorParams
2684
2829
  };
2685
- if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) === -1 && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2830
+ if (!vizConfig.supports.includes("page-and-sort" /* PAGE_AND_SORT */) && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
2686
2831
  dataSourceMetadata = {};
2687
2832
  }
2688
2833
  const clonedEvaluatedOptions = __spreadValues({}, evaluatedOptionsToUse);
@@ -2692,14 +2837,6 @@ var withDashboardViz = (opts) => {
2692
2837
  react_exports.useEffect(() => {
2693
2838
  onComputedProps(clonedEvaluatedOptions);
2694
2839
  });
2695
- react_exports.useEffect(() => {
2696
- return () => {
2697
- if (useAsyncEvaluatedOptions) {
2698
- isMounted.current = false;
2699
- async_dynamic_options_evaluator_default.reset(visualizationID);
2700
- }
2701
- };
2702
- }, []);
2703
2840
  const { requiredProps = [], supports } = vizConfig;
2704
2841
  const missing = missingKeys(requiredProps, evaluatedOptionsToUse);
2705
2842
  if (missing.length > 0 && supports.includes("placeholder" /* PLACEHOLDER */) && vizConfig.key !== "splunk.singlevalue") {
@@ -2714,7 +2851,16 @@ var withDashboardViz = (opts) => {
2714
2851
  }
2715
2852
  );
2716
2853
  }
2717
- const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
2854
+ const eventCallbackProps = buildAllEventCallbackProps(
2855
+ vizConfig.events,
2856
+ evaluatedOptionsToUse,
2857
+ onEventTrigger,
2858
+ {
2859
+ supportsEvents: vizConfig.supports.includes("events" /* EVENTS */),
2860
+ hasEventHandlers,
2861
+ mode
2862
+ }
2863
+ );
2718
2864
  const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
2719
2865
  // Align option transformation with the actual renderer selected below.
2720
2866
  // This prevents canvas-only option preservation from leaking into Highcharts mode.
@@ -2742,8 +2888,9 @@ var withDashboardViz = (opts) => {
2742
2888
  onEventTrigger: SplunkVisualization_default.defaults.onEventTrigger
2743
2889
  });
2744
2890
  DashboardViz.config = vizConfig;
2745
- return (0, styled_components_exports.withTheme)(
2746
- withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)
2891
+ return Object.assign(
2892
+ (0, styled_components_exports.withTheme)(withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder)),
2893
+ { config: vizConfig }
2747
2894
  );
2748
2895
  };
2749
2896
  var withDashboardViz_default = withDashboardViz;
@@ -2760,9 +2907,9 @@ __export(ChevronDown_exports, {
2760
2907
  default: () => ChevronDown_default
2761
2908
  });
2762
2909
  init_define_global();
2763
- var defaultImport30 = __toESM(require("@splunk/react-icons/ChevronDown"));
2910
+ var defaultImport31 = __toESM(require("@splunk/react-icons/ChevronDown"));
2764
2911
  __reExport(ChevronDown_exports, require("@splunk/react-icons/ChevronDown"));
2765
- var ChevronDown_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
2912
+ var ChevronDown_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
2766
2913
 
2767
2914
  // esm-externals:@splunk/react-icons/ChevronRight
2768
2915
  var ChevronRight_exports = {};
@@ -2770,9 +2917,9 @@ __export(ChevronRight_exports, {
2770
2917
  default: () => ChevronRight_default
2771
2918
  });
2772
2919
  init_define_global();
2773
- var defaultImport31 = __toESM(require("@splunk/react-icons/ChevronRight"));
2920
+ var defaultImport32 = __toESM(require("@splunk/react-icons/ChevronRight"));
2774
2921
  __reExport(ChevronRight_exports, require("@splunk/react-icons/ChevronRight"));
2775
- var ChevronRight_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
2922
+ var ChevronRight_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
2776
2923
 
2777
2924
  // esm-externals:@splunk/react-ui/Chip
2778
2925
  var Chip_exports = {};
@@ -2780,9 +2927,19 @@ __export(Chip_exports, {
2780
2927
  default: () => Chip_default
2781
2928
  });
2782
2929
  init_define_global();
2783
- var defaultImport32 = __toESM(require("@splunk/react-ui/Chip"));
2930
+ var defaultImport33 = __toESM(require("@splunk/react-ui/Chip"));
2784
2931
  __reExport(Chip_exports, require("@splunk/react-ui/Chip"));
2785
- var Chip_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
2932
+ var Chip_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
2933
+
2934
+ // esm-externals:@splunk/react-ui/Tooltip
2935
+ var Tooltip_exports = {};
2936
+ __export(Tooltip_exports, {
2937
+ default: () => Tooltip_default
2938
+ });
2939
+ init_define_global();
2940
+ var defaultImport34 = __toESM(require("@splunk/react-ui/Tooltip"));
2941
+ __reExport(Tooltip_exports, require("@splunk/react-ui/Tooltip"));
2942
+ var Tooltip_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
2786
2943
 
2787
2944
  // esm-externals:@splunk/react-ui/Tree
2788
2945
  var Tree_exports = {};
@@ -2790,19 +2947,19 @@ __export(Tree_exports, {
2790
2947
  default: () => Tree_default
2791
2948
  });
2792
2949
  init_define_global();
2793
- var defaultImport33 = __toESM(require("@splunk/react-ui/Tree"));
2950
+ var defaultImport35 = __toESM(require("@splunk/react-ui/Tree"));
2794
2951
  __reExport(Tree_exports, require("@splunk/react-ui/Tree"));
2795
- var Tree_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
2952
+ var Tree_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2796
2953
 
2797
- // esm-externals:@splunk/themes
2798
- var themes_exports = {};
2799
- __export(themes_exports, {
2800
- default: () => themes_default
2954
+ // esm-externals:@splunk/ui-utils/format
2955
+ var format_exports = {};
2956
+ __export(format_exports, {
2957
+ default: () => format_default
2801
2958
  });
2802
2959
  init_define_global();
2803
- var defaultImport34 = __toESM(require("@splunk/themes"));
2804
- __reExport(themes_exports, require("@splunk/themes"));
2805
- var themes_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
2960
+ var defaultImport36 = __toESM(require("@splunk/ui-utils/format"));
2961
+ __reExport(format_exports, require("@splunk/ui-utils/format"));
2962
+ var format_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
2806
2963
 
2807
2964
  // src/ProcessTree/PureProcessTree/components/DirectionalBytes.tsx
2808
2965
  init_define_global();
@@ -2813,9 +2970,9 @@ __export(ArrowLeft_exports, {
2813
2970
  default: () => ArrowLeft_default
2814
2971
  });
2815
2972
  init_define_global();
2816
- var defaultImport35 = __toESM(require("@splunk/react-icons/enterprise/ArrowLeft"));
2973
+ var defaultImport37 = __toESM(require("@splunk/react-icons/enterprise/ArrowLeft"));
2817
2974
  __reExport(ArrowLeft_exports, require("@splunk/react-icons/enterprise/ArrowLeft"));
2818
- var ArrowLeft_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
2975
+ var ArrowLeft_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
2819
2976
 
2820
2977
  // esm-externals:@splunk/react-icons/enterprise/ArrowRight
2821
2978
  var ArrowRight_exports = {};
@@ -2823,9 +2980,9 @@ __export(ArrowRight_exports, {
2823
2980
  default: () => ArrowRight_default
2824
2981
  });
2825
2982
  init_define_global();
2826
- var defaultImport36 = __toESM(require("@splunk/react-icons/enterprise/ArrowRight"));
2983
+ var defaultImport38 = __toESM(require("@splunk/react-icons/enterprise/ArrowRight"));
2827
2984
  __reExport(ArrowRight_exports, require("@splunk/react-icons/enterprise/ArrowRight"));
2828
- var ArrowRight_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
2985
+ var ArrowRight_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
2829
2986
 
2830
2987
  // src/ProcessTree/PureProcessTree/utils/processTreeUtils.ts
2831
2988
  init_define_global();
@@ -2833,7 +2990,7 @@ var getString = (value) => {
2833
2990
  if (value === null || value === void 0) {
2834
2991
  return null;
2835
2992
  }
2836
- if (typeof value === "object" || typeof value === "function") {
2993
+ if (typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean") {
2837
2994
  return null;
2838
2995
  }
2839
2996
  const v = String(value).trim();
@@ -3080,6 +3237,41 @@ var sortChildren = (nodeMap, ids) => {
3080
3237
  return a.localeCompare(b);
3081
3238
  });
3082
3239
  };
3240
+ var limitProcessTreeSiblings = (nodeMap, processLimit, processNodeKeys) => {
3241
+ const limitedNodeMap = {};
3242
+ const visit = (key) => {
3243
+ const node = nodeMap[key];
3244
+ if (!node || limitedNodeMap[key]) {
3245
+ return;
3246
+ }
3247
+ let processCount = 0;
3248
+ const children = node.children.filter((childKey) => {
3249
+ const isProcess = processNodeKeys.has(childKey);
3250
+ processCount += Number(isProcess);
3251
+ return !isProcess || processCount <= processLimit;
3252
+ });
3253
+ const omittedProcessCount = node.children.length - children.length;
3254
+ limitedNodeMap[key] = omittedProcessCount === 0 ? node : __spreadProps(__spreadValues({}, node), { children, hasMoreProcesses: true, omittedProcessCount });
3255
+ children.forEach(visit);
3256
+ };
3257
+ Object.values(nodeMap).filter((node) => node.parents.length === 0).forEach((node) => visit(node.key));
3258
+ return limitedNodeMap;
3259
+ };
3260
+ var buildProcessNodeKeySet = (nodeMap, filteredNodeField) => {
3261
+ const keys = /* @__PURE__ */ new Set();
3262
+ Object.values(nodeMap).forEach((node) => {
3263
+ const row = node.row || {};
3264
+ const classifierValue = filteredNodeField ? getNodeFieldValue(row, filteredNodeField) : null;
3265
+ const nodeTypeValue = getNodeFieldValue(row, "node_type");
3266
+ const isProcess = [classifierValue, nodeTypeValue].some(
3267
+ (value) => String(value || "").trim().toLowerCase() === "process"
3268
+ );
3269
+ if (isProcess) {
3270
+ keys.add(node.key);
3271
+ }
3272
+ });
3273
+ return keys;
3274
+ };
3083
3275
  var buildNodeLabelPartsByKey = (nodeMap, treeNodeLabelFields, fieldsToShowAsChipSet, showFieldName) => {
3084
3276
  const map = /* @__PURE__ */ new Map();
3085
3277
  Object.values(nodeMap).forEach((node) => {
@@ -3194,6 +3386,10 @@ var normalizeProcessTreeIcon = (value) => {
3194
3386
  return "servers";
3195
3387
  case "container":
3196
3388
  return "container";
3389
+ case "geotag":
3390
+ return "geoTag";
3391
+ case "layersdoubletransparent":
3392
+ return "layersDoubleTransparent";
3197
3393
  default:
3198
3394
  return null;
3199
3395
  }
@@ -3469,7 +3665,9 @@ var iconLoader = {
3469
3665
  rectangleDashed: () => Promise.resolve().then(() => (init_RectangleDashed(), RectangleDashed_exports)),
3470
3666
  cube: () => Promise.resolve().then(() => (init_Cube(), Cube_exports)),
3471
3667
  servers: () => Promise.resolve().then(() => (init_Servers(), Servers_exports)),
3472
- container: () => Promise.resolve().then(() => (init_Container(), Container_exports))
3668
+ container: () => Promise.resolve().then(() => (init_Container(), Container_exports)),
3669
+ geoTag: () => Promise.resolve().then(() => (init_GeoTag(), GeoTag_exports)),
3670
+ layersDoubleTransparent: () => Promise.resolve().then(() => (init_LayersDoubleTransparent(), LayersDoubleTransparent_exports))
3473
3671
  };
3474
3672
  var iconLoader_default = iconLoader;
3475
3673
 
@@ -3567,13 +3765,16 @@ var RowContent = styled_components_default.div`
3567
3765
  var NodeLabel = styled_components_default.span`
3568
3766
  min-width: 0;
3569
3767
  flex: 1 1 auto;
3570
- display: block;
3768
+ display: flex;
3769
+ align-items: center;
3571
3770
  white-space: nowrap;
3572
3771
  overflow: hidden;
3573
- text-overflow: ellipsis;
3574
3772
  `;
3575
3773
  var NodeText = styled_components_default.span`
3576
- display: inline;
3774
+ flex: 0 1 auto;
3775
+ min-width: 0;
3776
+ overflow: hidden;
3777
+ text-overflow: ellipsis;
3577
3778
  `;
3578
3779
  var LeadingIndicatorSlot = styled_components_default.span`
3579
3780
  display: inline-flex;
@@ -3594,10 +3795,12 @@ var LeadingIndicatorSlot = styled_components_default.span`
3594
3795
  `;
3595
3796
  var NodeValueChip = styled_components_default(Chip_default)`
3596
3797
  && {
3597
- display: inline-flex;
3798
+ box-sizing: border-box;
3799
+ flex: 0 1 auto;
3598
3800
  margin-left: 8px;
3801
+ max-width: calc(100% - 8px);
3802
+ min-width: 48px;
3599
3803
  height: 24px;
3600
- vertical-align: middle;
3601
3804
  border-radius: 50px;
3602
3805
  background: #2a2f3a;
3603
3806
  color: #f3f5f8;
@@ -3605,6 +3808,13 @@ var NodeValueChip = styled_components_default(Chip_default)`
3605
3808
  font-size: 11px;
3606
3809
  }
3607
3810
  `;
3811
+ var TruncationIndicator = styled_components_default.span`
3812
+ display: inline-block;
3813
+ height: 32px;
3814
+ width: fit-content;
3815
+ color: ${themes_exports.variables.contentColorMuted};
3816
+ line-height: 32px;
3817
+ `;
3608
3818
  var FallbackCircleIndicator = styled_components_default.span`
3609
3819
  display: inline-block;
3610
3820
  width: 6px;
@@ -3697,7 +3907,7 @@ var getLeafRowBackground = ({
3697
3907
  };
3698
3908
  var loadedIconCache = /* @__PURE__ */ new Map();
3699
3909
  var loadingIconCache = /* @__PURE__ */ new Map();
3700
- var loadProcessTreeIcon = (iconName) => __async(void 0, null, function* () {
3910
+ var loadProcessTreeIcon = (iconName) => __async(null, null, function* () {
3701
3911
  var _a, _b;
3702
3912
  if (loadedIconCache.has(iconName)) {
3703
3913
  return (_a = loadedIconCache.get(iconName)) != null ? _a : null;
@@ -3759,6 +3969,7 @@ var TreeItemWithExpansion = ({
3759
3969
  content,
3760
3970
  expanded,
3761
3971
  expansionDisabled = false,
3972
+ hasTreeChildren,
3762
3973
  id,
3763
3974
  isHighlighted = false,
3764
3975
  isLeaf = false,
@@ -3768,7 +3979,7 @@ var TreeItemWithExpansion = ({
3768
3979
  onToggleExpansion
3769
3980
  }) => {
3770
3981
  const contentWithExpansion = react_exports.useMemo(() => {
3771
- const hasChildren = react_exports.Children.count(children) > 0;
3982
+ const hasChildren = hasTreeChildren != null ? hasTreeChildren : react_exports.Children.count(children) > 0;
3772
3983
  const leadingBackground = getLeafRowBackground({
3773
3984
  isHighlighted,
3774
3985
  highlightColor,
@@ -3783,27 +3994,20 @@ var TreeItemWithExpansion = ({
3783
3994
  nodeColor,
3784
3995
  leafBackground: nodeColor || LEAF_NODE_BACKGROUND_HOVER_COLOR
3785
3996
  });
3786
- return /* @__PURE__ */ react_exports.createElement(TreeItemContentWrapper, { $leadingHoverBackground: leadingHoverBackground }, /* @__PURE__ */ react_exports.createElement(
3787
- ExpansionToggleWrapper,
3997
+ return /* @__PURE__ */ react_exports.createElement(TreeItemContentWrapper, { $leadingHoverBackground: leadingHoverBackground }, /* @__PURE__ */ react_exports.createElement(ExpansionToggleWrapper, { $background: leadingBackground, $isLeaf: isLeaf }, hasChildren && !expansionDisabled ? /* @__PURE__ */ react_exports.createElement(
3998
+ ExpansionToggle,
3788
3999
  {
3789
- $background: leadingBackground,
3790
- $isLeaf: isLeaf,
3791
- $showToggle: hasChildren
3792
- },
3793
- hasChildren && !expansionDisabled ? /* @__PURE__ */ react_exports.createElement(
3794
- ExpansionToggle,
3795
- {
3796
- expanded: expanded || false,
3797
- onToggleExpansion,
3798
- treeItemId: id
3799
- }
3800
- ) : null
3801
- ), content);
4000
+ expanded: expanded || false,
4001
+ onToggleExpansion,
4002
+ treeItemId: id
4003
+ }
4004
+ ) : null), content);
3802
4005
  }, [
3803
4006
  children,
3804
4007
  content,
3805
4008
  expanded,
3806
4009
  expansionDisabled,
4010
+ hasTreeChildren,
3807
4011
  id,
3808
4012
  onToggleExpansion,
3809
4013
  isHighlighted,
@@ -3881,17 +4085,25 @@ var ProcessTreeLeftPanel = ({
3881
4085
  }
3882
4086
  const nextVisited = new Set(visited);
3883
4087
  nextVisited.add(nodeKeyToRender);
3884
- const childKeys = sortChildren(nodeMap, node.children).filter((childKey) => {
4088
+ const sortedChildKeys = sortChildren(nodeMap, node.children).filter((childKey) => {
3885
4089
  return !nextVisited.has(childKey) && !rightSideNodeKeys.has(childKey);
3886
4090
  });
3887
- const isLeaf = childKeys.length === 0;
3888
- const hasLeafChildren = childKeys.some((childKey) => {
4091
+ const leafChildKeys = [];
4092
+ const parentChildKeys = [];
4093
+ sortedChildKeys.forEach((childKey) => {
3889
4094
  const childNode = nodeMap[childKey];
3890
- if (!childNode) {
3891
- return false;
4095
+ const hasProcessSideChildren = childNode == null ? void 0 : childNode.children.some(
4096
+ (grandChildKey) => !rightSideNodeKeys.has(grandChildKey)
4097
+ );
4098
+ if (childNode && !hasProcessSideChildren) {
4099
+ leafChildKeys.push(childKey);
4100
+ } else {
4101
+ parentChildKeys.push(childKey);
3892
4102
  }
3893
- return childNode.children.filter((grandChildKey) => !rightSideNodeKeys.has(grandChildKey)).length === 0;
3894
4103
  });
4104
+ const childKeys = [...leafChildKeys, ...parentChildKeys];
4105
+ const isLeaf = childKeys.length === 0;
4106
+ const hasLeafChildren = leafChildKeys.length > 0;
3895
4107
  const indicatorColors = indicatorColorsByNodeKey.get(node.key) || [];
3896
4108
  const nodeColor = nodeColorByKey.get(node.key);
3897
4109
  const nodeIcon = nodeIconByKey.get(node.key) || null;
@@ -3923,6 +4135,7 @@ var ProcessTreeLeftPanel = ({
3923
4135
  key: node.key,
3924
4136
  expanded: expandedTreeItems.has(node.key),
3925
4137
  expansionDisabled,
4138
+ hasTreeChildren: childKeys.length > 0,
3926
4139
  isHighlighted,
3927
4140
  isLeaf,
3928
4141
  childGapTop: hasLeafChildren,
@@ -3948,7 +4161,14 @@ var ProcessTreeLeftPanel = ({
3948
4161
  const keyBase = `${part.text}-${part.isChip ? "chip" : "text"}`;
3949
4162
  const keyCount = partKeyCounts.get(keyBase) || 0;
3950
4163
  partKeyCounts.set(keyBase, keyCount + 1);
3951
- return /* @__PURE__ */ react_exports.createElement(react_exports.Fragment, { key: `${node.key}-${keyBase}-${keyCount}` }, partIndex > 0 && !((_a = nodeLabelParts[partIndex - 1]) == null ? void 0 : _a.text.endsWith("=")) ? " " : null, part.isChip ? /* @__PURE__ */ react_exports.createElement(NodeValueChip, { "data-test": "tree-node-label-chip" }, part.text) : /* @__PURE__ */ react_exports.createElement(NodeText, null, part.text));
4164
+ return /* @__PURE__ */ react_exports.createElement(react_exports.Fragment, { key: `${node.key}-${keyBase}-${keyCount}` }, partIndex > 0 && !((_a = nodeLabelParts[partIndex - 1]) == null ? void 0 : _a.text.endsWith("=")) ? " " : null, part.isChip ? /* @__PURE__ */ react_exports.createElement(
4165
+ NodeValueChip,
4166
+ {
4167
+ "data-test": "tree-node-label-chip",
4168
+ title: part.text
4169
+ },
4170
+ part.text
4171
+ ) : /* @__PURE__ */ react_exports.createElement(NodeText, null, part.text));
3952
4172
  })),
3953
4173
  showNodeLinkValues ? /* @__PURE__ */ react_exports.createElement(LinkValueText, null, /* @__PURE__ */ react_exports.createElement(
3954
4174
  DirectionalBytes_default,
@@ -3960,7 +4180,17 @@ var ProcessTreeLeftPanel = ({
3960
4180
  showDot ? /* @__PURE__ */ react_exports.createElement(DotGroup, null, indicatorColors.map((color) => /* @__PURE__ */ react_exports.createElement(Dot, { key: color, $color: color }))) : null
3961
4181
  )
3962
4182
  },
3963
- childKeys.map((childKey) => renderNode(childKey, nextVisited))
4183
+ leafChildKeys.map((childKey) => renderNode(childKey, nextVisited)),
4184
+ node.hasMoreProcesses && node.omittedProcessCount ? /* @__PURE__ */ react_exports.createElement(
4185
+ Tooltip_default,
4186
+ {
4187
+ content: (0, format_exports.sprintf)((0, i18n_exports._)("%s additional nodes"), node.omittedProcessCount),
4188
+ contentRelationship: "label",
4189
+ defaultPlacement: "right"
4190
+ },
4191
+ /* @__PURE__ */ react_exports.createElement(TruncationIndicator, { "data-test": "process-limit-indicator" }, "...")
4192
+ ) : null,
4193
+ parentChildKeys.map((childKey) => renderNode(childKey, nextVisited))
3964
4194
  );
3965
4195
  },
3966
4196
  [
@@ -3999,9 +4229,9 @@ __export(Checkbox_exports, {
3999
4229
  default: () => Checkbox_default
4000
4230
  });
4001
4231
  init_define_global();
4002
- var defaultImport42 = __toESM(require("@splunk/react-ui/Checkbox"));
4232
+ var defaultImport46 = __toESM(require("@splunk/react-ui/Checkbox"));
4003
4233
  __reExport(Checkbox_exports, require("@splunk/react-ui/Checkbox"));
4004
- var Checkbox_default = "default" in defaultImport42 ? defaultImport42.default : defaultImport42;
4234
+ var Checkbox_default = "default" in defaultImport46 ? defaultImport46.default : defaultImport46;
4005
4235
 
4006
4236
  // esm-externals:@splunk/react-ui/Search
4007
4237
  var Search_exports = {};
@@ -4009,9 +4239,9 @@ __export(Search_exports, {
4009
4239
  default: () => Search_default
4010
4240
  });
4011
4241
  init_define_global();
4012
- var defaultImport43 = __toESM(require("@splunk/react-ui/Search"));
4242
+ var defaultImport47 = __toESM(require("@splunk/react-ui/Search"));
4013
4243
  __reExport(Search_exports, require("@splunk/react-ui/Search"));
4014
- var Search_default = "default" in defaultImport43 ? defaultImport43.default : defaultImport43;
4244
+ var Search_default = "default" in defaultImport47 ? defaultImport47.default : defaultImport47;
4015
4245
 
4016
4246
  // src/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.tsx
4017
4247
  var RightPanel = styled_components_default.div`
@@ -4316,6 +4546,7 @@ var useProcessTreeGraphData = ({
4316
4546
  treeNodeLabelFields,
4317
4547
  fieldsToShowAsChipSet,
4318
4548
  showFieldName,
4549
+ processLimit,
4319
4550
  filteredNodeField,
4320
4551
  filteredNodeValueSet,
4321
4552
  filterButtonFields,
@@ -4329,7 +4560,7 @@ var useProcessTreeGraphData = ({
4329
4560
  activeButtonFilterIds,
4330
4561
  searchQuery
4331
4562
  }) => {
4332
- const { nodeMap, linkMap } = react_exports.useMemo(() => {
4563
+ const { nodeMap: completeNodeMap, linkMap } = react_exports.useMemo(() => {
4333
4564
  const builtLinks = buildLinkMap(source, target, linkRows, linkValues);
4334
4565
  const builtNodes = buildNodeMap(nodeId, nodeRows, builtLinks, treeNodeLabelFields, showFieldName);
4335
4566
  return {
@@ -4337,18 +4568,28 @@ var useProcessTreeGraphData = ({
4337
4568
  linkMap: builtLinks
4338
4569
  };
4339
4570
  }, [source, target, nodeId, linkRows, nodeRows, linkValues, treeNodeLabelFields, showFieldName]);
4571
+ const completeRightSideNodeKeys = react_exports.useMemo(() => {
4572
+ return buildRightSideNodeKeySet(completeNodeMap, filteredNodeField, filteredNodeValueSet);
4573
+ }, [completeNodeMap, filteredNodeField, filteredNodeValueSet]);
4574
+ const processNodeKeys = react_exports.useMemo(() => {
4575
+ return buildProcessNodeKeySet(completeNodeMap, filteredNodeField);
4576
+ }, [completeNodeMap, filteredNodeField]);
4577
+ const nodeMap = react_exports.useMemo(
4578
+ () => limitProcessTreeSiblings(completeNodeMap, processLimit, processNodeKeys),
4579
+ [completeNodeMap, processLimit, processNodeKeys]
4580
+ );
4340
4581
  const nodeLabelPartsByKey = react_exports.useMemo(() => {
4341
4582
  return buildNodeLabelPartsByKey(nodeMap, treeNodeLabelFields, fieldsToShowAsChipSet, showFieldName);
4342
4583
  }, [nodeMap, treeNodeLabelFields, fieldsToShowAsChipSet, showFieldName]);
4343
4584
  const rightSideNodeKeys = react_exports.useMemo(() => {
4344
- return buildRightSideNodeKeySet(nodeMap, filteredNodeField, filteredNodeValueSet);
4345
- }, [filteredNodeField, filteredNodeValueSet, nodeMap]);
4585
+ return new Set([...completeRightSideNodeKeys].filter((key) => nodeMap[key]));
4586
+ }, [completeRightSideNodeKeys, nodeMap]);
4346
4587
  const rootNodeIds = react_exports.useMemo(() => {
4347
4588
  return buildRootNodeIds(nodeMap, rightSideNodeKeys);
4348
4589
  }, [nodeMap, rightSideNodeKeys]);
4349
4590
  const processNetworkLinks = react_exports.useMemo(() => {
4350
- return buildProcessNetworkLinks(linkMap, rightSideNodeKeys);
4351
- }, [linkMap, rightSideNodeKeys]);
4591
+ return buildProcessNetworkLinks(linkMap, rightSideNodeKeys).filter((link) => nodeMap[link.processKey]);
4592
+ }, [linkMap, nodeMap, rightSideNodeKeys]);
4352
4593
  const buttonFilterConfigs = react_exports.useMemo(() => {
4353
4594
  return buildButtonFilterConfigs(
4354
4595
  filterButtonFields,
@@ -4576,7 +4817,7 @@ var useProcessTreeLinkOverlay = ({
4576
4817
  if (drawFrameRef.current !== null) {
4577
4818
  return;
4578
4819
  }
4579
- drawFrameRef.current = window.requestAnimationFrame(() => {
4820
+ drawFrameRef.current = globalThis.requestAnimationFrame(() => {
4580
4821
  drawFrameRef.current = null;
4581
4822
  drawConnections();
4582
4823
  });
@@ -4621,7 +4862,7 @@ var useProcessTreeLinkOverlay = ({
4621
4862
  react_exports.useEffect(() => {
4622
4863
  return () => {
4623
4864
  if (drawFrameRef.current !== null) {
4624
- window.cancelAnimationFrame(drawFrameRef.current);
4865
+ globalThis.cancelAnimationFrame(drawFrameRef.current);
4625
4866
  }
4626
4867
  };
4627
4868
  }, []);
@@ -4756,6 +4997,7 @@ var PureProcessTree = ({
4756
4997
  treeNodeLabelFields = EMPTY_ARRAY,
4757
4998
  fieldsToShowAsChip = EMPTY_ARRAY,
4758
4999
  showFieldName = false,
5000
+ processLimit = 100,
4759
5001
  disableExpansionPerNode = EMPTY_ARRAY,
4760
5002
  filterButtonFields = EMPTY_ARRAY,
4761
5003
  filterButtonMatchValues = EMPTY_ARRAY,
@@ -4811,6 +5053,7 @@ var PureProcessTree = ({
4811
5053
  treeNodeLabelFields,
4812
5054
  fieldsToShowAsChipSet,
4813
5055
  showFieldName,
5056
+ processLimit,
4814
5057
  filteredNodeField,
4815
5058
  filteredNodeValueSet,
4816
5059
  filterButtonFields,
@@ -4958,9 +5201,9 @@ __export(visualization_icons_exports, {
4958
5201
  default: () => visualization_icons_default
4959
5202
  });
4960
5203
  init_define_global();
4961
- var defaultImport44 = __toESM(require("@splunk/visualization-icons"));
5204
+ var defaultImport48 = __toESM(require("@splunk/visualization-icons"));
4962
5205
  __reExport(visualization_icons_exports, require("@splunk/visualization-icons"));
4963
- var visualization_icons_default = "default" in defaultImport44 ? defaultImport44.default : defaultImport44;
5206
+ var visualization_icons_default = "default" in defaultImport48 ? defaultImport48.default : defaultImport48;
4964
5207
 
4965
5208
  // esm-externals:@splunk/visualization-icons/placeholders
4966
5209
  var placeholders_exports = {};
@@ -4968,9 +5211,9 @@ __export(placeholders_exports, {
4968
5211
  default: () => placeholders_default
4969
5212
  });
4970
5213
  init_define_global();
4971
- var defaultImport45 = __toESM(require("@splunk/visualization-icons/placeholders"));
5214
+ var defaultImport49 = __toESM(require("@splunk/visualization-icons/placeholders"));
4972
5215
  __reExport(placeholders_exports, require("@splunk/visualization-icons/placeholders"));
4973
- var placeholders_default = "default" in defaultImport45 ? defaultImport45.default : defaultImport45;
5216
+ var placeholders_default = "default" in defaultImport49 ? defaultImport49.default : defaultImport49;
4974
5217
 
4975
5218
  // src/common/ThemedDefaults.tsx
4976
5219
  init_define_global();
@@ -4981,9 +5224,9 @@ __export(pick_exports, {
4981
5224
  default: () => pick_default
4982
5225
  });
4983
5226
  init_define_global();
4984
- var defaultImport46 = __toESM(require("@splunk/themes/pick"));
5227
+ var defaultImport50 = __toESM(require("@splunk/themes/pick"));
4985
5228
  __reExport(pick_exports, require("@splunk/themes/pick"));
4986
- var pick_default = "default" in defaultImport46 ? defaultImport46.default : defaultImport46;
5229
+ var pick_default = "default" in defaultImport50 ? defaultImport50.default : defaultImport50;
4987
5230
 
4988
5231
  // src/common/ThemedDefaults.tsx
4989
5232
  var defaultBackgroundColor = (props) => pick_default({
@@ -5003,9 +5246,9 @@ __export(configUtils_exports, {
5003
5246
  default: () => configUtils_default
5004
5247
  });
5005
5248
  init_define_global();
5006
- var defaultImport47 = __toESM(require("@splunk/visualizations-shared/configUtils"));
5249
+ var defaultImport51 = __toESM(require("@splunk/visualizations-shared/configUtils"));
5007
5250
  __reExport(configUtils_exports, require("@splunk/visualizations-shared/configUtils"));
5008
- var configUtils_default = "default" in defaultImport47 ? defaultImport47.default : defaultImport47;
5251
+ var configUtils_default = "default" in defaultImport51 ? defaultImport51.default : defaultImport51;
5009
5252
 
5010
5253
  // src/common/utils/configUtils.ts
5011
5254
  function enhanceConfig(vizConfig) {