@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/Map.js CHANGED
@@ -148,77 +148,68 @@ var defaultImport6 = __toESM(require("lodash"));
148
148
  __reExport(lodash_exports, require("lodash"));
149
149
  var lodash_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
150
150
 
151
- // esm-externals:prop-types
152
- var prop_types_exports = {};
153
- __export(prop_types_exports, {
154
- default: () => prop_types_default
155
- });
156
- var defaultImport7 = __toESM(require("prop-types"));
157
- __reExport(prop_types_exports, require("prop-types"));
158
- var prop_types_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
159
-
160
151
  // esm-externals:chroma-js
161
152
  var chroma_js_exports = {};
162
153
  __export(chroma_js_exports, {
163
154
  default: () => chroma_js_default
164
155
  });
165
- var defaultImport8 = __toESM(require("chroma-js"));
156
+ var defaultImport7 = __toESM(require("chroma-js"));
166
157
  __reExport(chroma_js_exports, require("chroma-js"));
167
- var chroma_js_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
158
+ var chroma_js_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
168
159
 
169
160
  // esm-externals:maplibre-gl
170
161
  var maplibre_gl_exports = {};
171
162
  __export(maplibre_gl_exports, {
172
163
  default: () => maplibre_gl_default
173
164
  });
174
- var defaultImport9 = __toESM(require("maplibre-gl"));
165
+ var defaultImport8 = __toESM(require("maplibre-gl"));
175
166
  __reExport(maplibre_gl_exports, require("maplibre-gl"));
176
- var maplibre_gl_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
167
+ var maplibre_gl_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
177
168
 
178
169
  // esm-externals:@splunk/ui-utils/i18n
179
170
  var i18n_exports = {};
180
171
  __export(i18n_exports, {
181
172
  default: () => i18n_default
182
173
  });
183
- var defaultImport10 = __toESM(require("@splunk/ui-utils/i18n"));
174
+ var defaultImport9 = __toESM(require("@splunk/ui-utils/i18n"));
184
175
  __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
185
- var i18n_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
176
+ var i18n_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
186
177
 
187
178
  // esm-externals:@splunk/react-ui/Button
188
179
  var Button_exports = {};
189
180
  __export(Button_exports, {
190
181
  default: () => Button_default
191
182
  });
192
- var defaultImport11 = __toESM(require("@splunk/react-ui/Button"));
183
+ var defaultImport10 = __toESM(require("@splunk/react-ui/Button"));
193
184
  __reExport(Button_exports, require("@splunk/react-ui/Button"));
194
- var Button_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
185
+ var Button_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
195
186
 
196
187
  // esm-externals:@splunk/react-ui/Tooltip
197
188
  var Tooltip_exports = {};
198
189
  __export(Tooltip_exports, {
199
190
  default: () => Tooltip_default
200
191
  });
201
- var defaultImport12 = __toESM(require("@splunk/react-ui/Tooltip"));
192
+ var defaultImport11 = __toESM(require("@splunk/react-ui/Tooltip"));
202
193
  __reExport(Tooltip_exports, require("@splunk/react-ui/Tooltip"));
203
- var Tooltip_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
194
+ var Tooltip_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
204
195
 
205
196
  // esm-externals:@splunk/visualization-context/MapContext
206
197
  var MapContext_exports = {};
207
198
  __export(MapContext_exports, {
208
199
  default: () => MapContext_default
209
200
  });
210
- var defaultImport13 = __toESM(require("@splunk/visualization-context/MapContext"));
201
+ var defaultImport12 = __toESM(require("@splunk/visualization-context/MapContext"));
211
202
  __reExport(MapContext_exports, require("@splunk/visualization-context/MapContext"));
212
- var MapContext_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
203
+ var MapContext_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
213
204
 
214
205
  // esm-externals:@splunk/visualization-schemas
215
206
  var visualization_schemas_exports = {};
216
207
  __export(visualization_schemas_exports, {
217
208
  default: () => visualization_schemas_default
218
209
  });
219
- var defaultImport14 = __toESM(require("@splunk/visualization-schemas"));
210
+ var defaultImport13 = __toESM(require("@splunk/visualization-schemas"));
220
211
  __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
221
- var visualization_schemas_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
212
+ var visualization_schemas_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
222
213
 
223
214
  // src/common/utils/shadowDomUtils.ts
224
215
  var getFloatingLayerStyleTarget = (anchor) => {
@@ -237,54 +228,54 @@ var style_exports = {};
237
228
  __export(style_exports, {
238
229
  default: () => style_default
239
230
  });
240
- var defaultImport15 = __toESM(require("@splunk/visualizations-shared/style"));
231
+ var defaultImport14 = __toESM(require("@splunk/visualizations-shared/style"));
241
232
  __reExport(style_exports, require("@splunk/visualizations-shared/style"));
242
- var style_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
233
+ var style_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
243
234
 
244
235
  // esm-externals:maplibre-gl/dist/maplibre-gl.css
245
236
  var maplibre_gl_exports2 = {};
246
237
  __export(maplibre_gl_exports2, {
247
238
  default: () => maplibre_gl_default2
248
239
  });
249
- var defaultImport16 = __toESM(require("maplibre-gl/dist/maplibre-gl.css"));
240
+ var defaultImport15 = __toESM(require("maplibre-gl/dist/maplibre-gl.css"));
250
241
  __reExport(maplibre_gl_exports2, require("maplibre-gl/dist/maplibre-gl.css"));
251
- var maplibre_gl_default2 = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
242
+ var maplibre_gl_default2 = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
252
243
 
253
244
  // esm-externals:@splunk/visualizations-shared/iconUtils
254
245
  var iconUtils_exports = {};
255
246
  __export(iconUtils_exports, {
256
247
  default: () => iconUtils_default
257
248
  });
258
- var defaultImport17 = __toESM(require("@splunk/visualizations-shared/iconUtils"));
249
+ var defaultImport16 = __toESM(require("@splunk/visualizations-shared/iconUtils"));
259
250
  __reExport(iconUtils_exports, require("@splunk/visualizations-shared/iconUtils"));
260
- var iconUtils_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
251
+ var iconUtils_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
261
252
 
262
253
  // esm-externals:@splunk/visualizations-shared/RemoteIcon
263
254
  var RemoteIcon_exports = {};
264
255
  __export(RemoteIcon_exports, {
265
256
  default: () => RemoteIcon_default
266
257
  });
267
- var defaultImport18 = __toESM(require("@splunk/visualizations-shared/RemoteIcon"));
258
+ var defaultImport17 = __toESM(require("@splunk/visualizations-shared/RemoteIcon"));
268
259
  __reExport(RemoteIcon_exports, require("@splunk/visualizations-shared/RemoteIcon"));
269
- var RemoteIcon_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
260
+ var RemoteIcon_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
270
261
 
271
262
  // esm-externals:@splunk/visualization-context/FeatureFlagContext
272
263
  var FeatureFlagContext_exports = {};
273
264
  __export(FeatureFlagContext_exports, {
274
265
  default: () => FeatureFlagContext_default
275
266
  });
276
- var defaultImport19 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
267
+ var defaultImport18 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
277
268
  __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
278
- var FeatureFlagContext_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
269
+ var FeatureFlagContext_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
279
270
 
280
271
  // esm-externals:@splunk/ui-utils/format
281
272
  var format_exports = {};
282
273
  __export(format_exports, {
283
274
  default: () => format_default
284
275
  });
285
- var defaultImport20 = __toESM(require("@splunk/ui-utils/format"));
276
+ var defaultImport19 = __toESM(require("@splunk/ui-utils/format"));
286
277
  __reExport(format_exports, require("@splunk/ui-utils/format"));
287
- var format_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
278
+ var format_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
288
279
 
289
280
  // src/Map/PureMap/keyboardConstants.ts
290
281
  var KEYBOARD_KEYS = {
@@ -303,27 +294,27 @@ var Popover_exports = {};
303
294
  __export(Popover_exports, {
304
295
  default: () => Popover_default
305
296
  });
306
- var defaultImport21 = __toESM(require("@splunk/react-ui/Popover"));
297
+ var defaultImport20 = __toESM(require("@splunk/react-ui/Popover"));
307
298
  __reExport(Popover_exports, require("@splunk/react-ui/Popover"));
308
- var Popover_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
299
+ var Popover_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
309
300
 
310
301
  // esm-externals:@splunk/themes
311
302
  var themes_exports = {};
312
303
  __export(themes_exports, {
313
304
  default: () => themes_default
314
305
  });
315
- var defaultImport22 = __toESM(require("@splunk/themes"));
306
+ var defaultImport21 = __toESM(require("@splunk/themes"));
316
307
  __reExport(themes_exports, require("@splunk/themes"));
317
- var themes_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
308
+ var themes_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
318
309
 
319
310
  // esm-externals:@splunk/ui-utils/id
320
311
  var id_exports = {};
321
312
  __export(id_exports, {
322
313
  default: () => id_default
323
314
  });
324
- var defaultImport23 = __toESM(require("@splunk/ui-utils/id"));
315
+ var defaultImport22 = __toESM(require("@splunk/ui-utils/id"));
325
316
  __reExport(id_exports, require("@splunk/ui-utils/id"));
326
- var id_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
317
+ var id_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
327
318
 
328
319
  // src/Map/PureMap/Tooltip.tsx
329
320
  var StyledPopover = styled_components_default(Popover_default)`
@@ -439,27 +430,27 @@ var d3_scale_exports = {};
439
430
  __export(d3_scale_exports, {
440
431
  default: () => d3_scale_default
441
432
  });
442
- var defaultImport24 = __toESM(require("d3-scale"));
433
+ var defaultImport23 = __toESM(require("d3-scale"));
443
434
  __reExport(d3_scale_exports, require("d3-scale"));
444
- var d3_scale_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
435
+ var d3_scale_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
445
436
 
446
437
  // esm-externals:@splunk/visualization-color-palettes
447
438
  var visualization_color_palettes_exports = {};
448
439
  __export(visualization_color_palettes_exports, {
449
440
  default: () => visualization_color_palettes_default
450
441
  });
451
- var defaultImport25 = __toESM(require("@splunk/visualization-color-palettes"));
442
+ var defaultImport24 = __toESM(require("@splunk/visualization-color-palettes"));
452
443
  __reExport(visualization_color_palettes_exports, require("@splunk/visualization-color-palettes"));
453
- var visualization_color_palettes_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
444
+ var visualization_color_palettes_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
454
445
 
455
446
  // esm-externals:@splunk/visualization-encoding/utils/types
456
447
  var types_exports = {};
457
448
  __export(types_exports, {
458
449
  default: () => types_default
459
450
  });
460
- var defaultImport26 = __toESM(require("@splunk/visualization-encoding/utils/types"));
451
+ var defaultImport25 = __toESM(require("@splunk/visualization-encoding/utils/types"));
461
452
  __reExport(types_exports, require("@splunk/visualization-encoding/utils/types"));
462
- var types_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
453
+ var types_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
463
454
 
464
455
  // src/Map/PureMap/MapUtils.ts
465
456
  var MAX_LATITUDE = 90;
@@ -613,16 +604,16 @@ var getZoomLevelFromGeobin = (geobinStr) => {
613
604
  }
614
605
  const geobinPattern = /bin_id_zl_(\d{1,2})_y_/g;
615
606
  const match = geobinPattern.exec(geobinStr);
616
- return (_a = (match == null ? void 0 : match.length) && parseInt(match[1], 10)) != null ? _a : null;
607
+ return (_a = (match == null ? void 0 : match.length) && Number.parseInt(match[1], 10)) != null ? _a : null;
617
608
  };
618
609
  var getStaticColors = (colorCount, colorArray) => {
619
610
  if (colorCount < 0 || !colorCount) {
620
611
  return [DEFAULT_CLUSTER_COLOR];
621
612
  }
622
613
  if (!(colorArray == null ? void 0 : colorArray.length)) {
623
- return [...Array(colorCount).keys()].map((i) => DEFAULT_SERIES_COLORS[i]);
614
+ return [...new Array(colorCount).keys()].map((i) => DEFAULT_SERIES_COLORS[i]);
624
615
  }
625
- return [...Array(colorCount).keys()].map(
616
+ return [...new Array(colorCount).keys()].map(
626
617
  (i) => (0, colorUtils_exports.isColor)(colorArray[i % colorArray.length]) ? colorArray[i % colorArray.length] : DEFAULT_CLUSTER_COLOR
627
618
  );
628
619
  };
@@ -650,7 +641,7 @@ var sanitizeValues = (values) => {
650
641
  return 0;
651
642
  }
652
643
  if (!Array.isArray(values)) {
653
- return values > 0 ? values : 0;
644
+ return Math.max(values, 0);
654
645
  }
655
646
  return values.map((arr) => sanitizeValues(arr));
656
647
  };
@@ -698,8 +689,8 @@ var bakeBubbleData = (layer) => {
698
689
  let max = min;
699
690
  transposedSanitizedBubbleSize.forEach((row) => {
700
691
  const bubbleSize = (0, lodash_exports.sum)(row);
701
- max = bubbleSize > max ? bubbleSize : max;
702
- min = bubbleSize < min ? bubbleSize : min;
692
+ max = Math.max(bubbleSize, max);
693
+ min = Math.min(bubbleSize, min);
703
694
  });
704
695
  return {
705
696
  data,
@@ -1036,12 +1027,10 @@ var MarkerWrapper = (_a) => {
1036
1027
  }
1037
1028
  let rafId = null;
1038
1029
  const handleMapMove = () => {
1039
- if (rafId === null) {
1040
- rafId = requestAnimationFrame(() => {
1041
- forceUpdate();
1042
- rafId = null;
1043
- });
1044
- }
1030
+ rafId != null ? rafId : rafId = requestAnimationFrame(() => {
1031
+ forceUpdate();
1032
+ rafId = null;
1033
+ });
1045
1034
  };
1046
1035
  mapMoveHandlerRef.current = handleMapMove;
1047
1036
  map.current.on("move", handleMapMove);
@@ -1120,16 +1109,16 @@ var useRovingTabindex = (map) => {
1120
1109
  if (nextIndex !== void 0) {
1121
1110
  replacementIndex = nextIndex;
1122
1111
  } else if (indices.length > 0) {
1123
- replacementIndex = indices[indices.length - 1];
1112
+ replacementIndex = indices.at(-1);
1124
1113
  }
1125
- if (replacementIndex !== null) {
1114
+ if (replacementIndex === null) {
1115
+ focusedIndexRef.current = 0;
1116
+ } else {
1126
1117
  focusedIndexRef.current = replacementIndex;
1127
1118
  const replacementElement = elementRefsRef.current.get(replacementIndex);
1128
1119
  if (replacementElement) {
1129
1120
  replacementElement.setAttribute("tabindex", "0");
1130
1121
  }
1131
- } else {
1132
- focusedIndexRef.current = 0;
1133
1122
  }
1134
1123
  }
1135
1124
  }, []);
@@ -1476,7 +1465,7 @@ var Bubble = react_exports.memo(
1476
1465
  [handleMapClick]
1477
1466
  );
1478
1467
  const allZeros = originalValues.every((v) => v === 0);
1479
- const values = originalValues.map((v) => v > 0 ? v : 0);
1468
+ const values = originalValues.map((v) => Math.max(v, 0));
1480
1469
  if (allZeros || !originalValues.length) return null;
1481
1470
  return /* @__PURE__ */ react_exports.createElement(
1482
1471
  MarkerWrapper_default,
@@ -1598,7 +1587,7 @@ var BubbleLayer = (props) => {
1598
1587
  return /* @__PURE__ */ react_exports.createElement(
1599
1588
  Bubble,
1600
1589
  {
1601
- key: String(i),
1590
+ key: String(datum.idx),
1602
1591
  originalValues: datum.data.values,
1603
1592
  valueRange: dataRange,
1604
1593
  colors,
@@ -2267,7 +2256,7 @@ var ChoroplethLayer = (props) => {
2267
2256
  );
2268
2257
  const { handleKeyDown, handleFocus, handleBlur, setElementRef } = useRovingTabindex(map);
2269
2258
  const areaIdSliced = (_h = (_g = choroplethLayer == null ? void 0 : choroplethLayer.areaIds) == null ? void 0 : _g.slice(0, limit)) != null ? _h : [];
2270
- const uniqueAreaIdSliced = (0, lodash_exports.uniq)(areaIdSliced).length !== areaIdSliced.length ? areaIdSliced.map((id, i) => `${id}${i}`) : areaIdSliced;
2259
+ const uniqueAreaIdSliced = (0, lodash_exports.uniq)(areaIdSliced).length === areaIdSliced.length ? areaIdSliced : areaIdSliced.map((id, i) => `${id}${i}`);
2271
2260
  const additionalFields = (choroplethLayer == null ? void 0 : choroplethLayer.metadata) ? choroplethLayer.metadata.map((choroplethMetadata) => {
2272
2261
  if (choroplethLayer.additionalTooltipFields) {
2273
2262
  return choroplethLayer.additionalTooltipFields.map((field) => ({
@@ -2324,27 +2313,27 @@ var Message_exports = {};
2324
2313
  __export(Message_exports, {
2325
2314
  default: () => Message_default
2326
2315
  });
2327
- var defaultImport27 = __toESM(require("@splunk/visualizations-shared/Message"));
2316
+ var defaultImport26 = __toESM(require("@splunk/visualizations-shared/Message"));
2328
2317
  __reExport(Message_exports, require("@splunk/visualizations-shared/Message"));
2329
- var Message_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
2318
+ var Message_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
2330
2319
 
2331
2320
  // esm-externals:@splunk/visualization-context/GeoRegistry
2332
2321
  var GeoRegistry_exports = {};
2333
2322
  __export(GeoRegistry_exports, {
2334
2323
  default: () => GeoRegistry_default
2335
2324
  });
2336
- var defaultImport28 = __toESM(require("@splunk/visualization-context/GeoRegistry"));
2325
+ var defaultImport27 = __toESM(require("@splunk/visualization-context/GeoRegistry"));
2337
2326
  __reExport(GeoRegistry_exports, require("@splunk/visualization-context/GeoRegistry"));
2338
- var GeoRegistry_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
2327
+ var GeoRegistry_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
2339
2328
 
2340
2329
  // esm-externals:@splunk/visualization-context/GeoJsonProvider
2341
2330
  var GeoJsonProvider_exports = {};
2342
2331
  __export(GeoJsonProvider_exports, {
2343
2332
  default: () => GeoJsonProvider_default
2344
2333
  });
2345
- var defaultImport29 = __toESM(require("@splunk/visualization-context/GeoJsonProvider"));
2334
+ var defaultImport28 = __toESM(require("@splunk/visualization-context/GeoJsonProvider"));
2346
2335
  __reExport(GeoJsonProvider_exports, require("@splunk/visualization-context/GeoJsonProvider"));
2347
- var GeoJsonProvider_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
2336
+ var GeoJsonProvider_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
2348
2337
 
2349
2338
  // src/Map/PureMap/LocalChoroplethLayer.tsx
2350
2339
  var LocalChoroplethLayer = (props) => {
@@ -2380,7 +2369,7 @@ var LocalChoroplethLayer = (props) => {
2380
2369
  let isMounted = true;
2381
2370
  const geoRegistry = GeoRegistry_default.create();
2382
2371
  geoRegistry.addDefaultProvider(new GeoJsonProvider_default());
2383
- const loadGeoJson = () => __async(void 0, null, function* () {
2372
+ const loadGeoJson = () => __async(null, null, function* () {
2384
2373
  try {
2385
2374
  const geoJsonData = yield geoRegistry.getByURL(choroplethLayer.source);
2386
2375
  if (!isMounted) {
@@ -2392,7 +2381,7 @@ var LocalChoroplethLayer = (props) => {
2392
2381
  if (!isMounted) {
2393
2382
  return;
2394
2383
  }
2395
- setGeoJsonError(e);
2384
+ setGeoJsonError({ message: e instanceof Error ? e.message : "" });
2396
2385
  setValidGeoJson(false);
2397
2386
  }
2398
2387
  });
@@ -2429,13 +2418,13 @@ var LocalChoroplethLayer = (props) => {
2429
2418
  if (choroplethLayer.areaIds) {
2430
2419
  const lookupValue = choroplethData.name;
2431
2420
  const dataIdx = choroplethLayer.areaIds.indexOf(lookupValue);
2432
- if (dataIdx !== -1) {
2421
+ if (dataIdx === -1) {
2422
+ choroplethData.idx = choroplethLayer.areaIds.length;
2423
+ } else {
2433
2424
  choroplethData.color = colors[dataIdx];
2434
2425
  choroplethData.areaValue = choroplethLayer.areaValues[dataIdx];
2435
2426
  choroplethData.opacity = scaledOpacities[dataIdx];
2436
2427
  choroplethData.idx = dataIdx;
2437
- } else {
2438
- choroplethData.idx = choroplethLayer.areaIds.length;
2439
2428
  }
2440
2429
  }
2441
2430
  return choroplethData;
@@ -2579,30 +2568,31 @@ var StyledFitToDataButton = styled_components_default(ControlButton).attrs({
2579
2568
  background-image: url('data:image/svg+xml;charset=UTF-8,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="9" stroke="${(props) => props.controlIconColorEncoded.color}" stroke-width="2" stroke-linecap="round"/><path d="M12 3.5V6.5M12 20.5V17.5M3.5 12H6.5M20.5 12H17.5" stroke="${(props) => props.controlIconColorEncoded.color}" stroke-width="2" stroke-linecap="round"/></svg>');
2580
2569
  `;
2581
2570
  PureMapContainer_default.displayName = "PureMapContainer";
2582
- var PureMap = (props) => {
2583
- const {
2584
- width,
2585
- height,
2586
- backgroundColor,
2587
- baseLayerTileServer,
2588
- baseLayerTileServerType,
2589
- center,
2590
- controlBackgroundColor,
2591
- controlForegroundColor,
2592
- layers = [],
2593
- scaleUnit,
2594
- showScale,
2595
- showZoomControls,
2596
- showBaseLayer,
2597
- themeColorScheme,
2598
- zoom,
2599
- onMapLoad,
2600
- onMapClick,
2601
- onOptionsChange,
2602
- title,
2603
- showCoordinates,
2604
- hasEventHandlers = false
2605
- } = props;
2571
+ var DEFAULT_LAYERS = [];
2572
+ var DEFAULT_ON_MAP_LOAD = { exec: lodash_exports.noop };
2573
+ var PureMap = ({
2574
+ width = 800,
2575
+ height = 500,
2576
+ backgroundColor = "#0b0c0e",
2577
+ baseLayerTileServer,
2578
+ baseLayerTileServerType,
2579
+ center,
2580
+ controlBackgroundColor = DEFAULT_CONTROL_BACKGROUND_COLOR,
2581
+ controlForegroundColor = DEFAULT_CONTROL_FOREGROUND_COLOR,
2582
+ layers = DEFAULT_LAYERS,
2583
+ scaleUnit = DEFAULT_SCALE_UNIT,
2584
+ showScale = DEFAULT_SHOW_SCALE,
2585
+ showZoomControls = DEFAULT_SHOW_ZOOM_CONTROLS,
2586
+ showBaseLayer = DEFAULT_SHOW_BASELAYER,
2587
+ themeColorScheme = "dark",
2588
+ zoom,
2589
+ onMapLoad = DEFAULT_ON_MAP_LOAD,
2590
+ onMapClick = lodash_exports.noop,
2591
+ onOptionsChange = lodash_exports.noop,
2592
+ title,
2593
+ showCoordinates,
2594
+ hasEventHandlers = false
2595
+ }) => {
2606
2596
  const { defaultTileConfig, customTileConfig } = (0, react_exports.useContext)(MapContext_default);
2607
2597
  const basemapContainer = (0, react_exports.useRef)(null);
2608
2598
  const map = (0, react_exports.useRef)(null);
@@ -2921,7 +2911,7 @@ var PureMap = (props) => {
2921
2911
  showScale,
2922
2912
  showZoomControls
2923
2913
  },
2924
- showZoomControls && /* @__PURE__ */ react_exports.createElement(ZoomControlsContainer, { controlBackgroundColor }, /* @__PURE__ */ react_exports.createElement(Tooltip_default, { content: (0, i18n_exports._)("Zoom in"), contentRelationship: "label" }, /* @__PURE__ */ react_exports.createElement(
2914
+ showZoomControls && /* @__PURE__ */ react_exports.createElement(ZoomControlsContainer, { controlBackgroundColor }, /* @__PURE__ */ react_exports.createElement(Tooltip_default, { content: (0, i18n_exports._)("Zoom in"), contentRelationship: "label", defaultPlacement: "right" }, /* @__PURE__ */ react_exports.createElement(
2925
2915
  ZoomInButton,
2926
2916
  {
2927
2917
  onClick: handleZoomIn,
@@ -2929,7 +2919,7 @@ var PureMap = (props) => {
2929
2919
  controlForegroundColor,
2930
2920
  controlIconColorEncoded: formatColor(controlForegroundColor)
2931
2921
  }
2932
- )), /* @__PURE__ */ react_exports.createElement(Tooltip_default, { content: (0, i18n_exports._)("Zoom out"), contentRelationship: "label" }, /* @__PURE__ */ react_exports.createElement(
2922
+ )), /* @__PURE__ */ react_exports.createElement(Tooltip_default, { content: (0, i18n_exports._)("Zoom out"), contentRelationship: "label", defaultPlacement: "right" }, /* @__PURE__ */ react_exports.createElement(
2933
2923
  ZoomOutButton,
2934
2924
  {
2935
2925
  onClick: handleZoomOut,
@@ -2944,7 +2934,7 @@ var PureMap = (props) => {
2944
2934
  controlBackgroundColor,
2945
2935
  showZoomControls
2946
2936
  },
2947
- /* @__PURE__ */ react_exports.createElement(Tooltip_default, { content: (0, i18n_exports._)("Fit to data"), contentRelationship: "label" }, /* @__PURE__ */ react_exports.createElement(
2937
+ /* @__PURE__ */ react_exports.createElement(Tooltip_default, { content: (0, i18n_exports._)("Fit to data"), contentRelationship: "label", defaultPlacement: "right" }, /* @__PURE__ */ react_exports.createElement(
2948
2938
  StyledFitToDataButton,
2949
2939
  {
2950
2940
  onClick: handleResetClick,
@@ -2994,75 +2984,6 @@ var PureMap = (props) => {
2994
2984
  )
2995
2985
  );
2996
2986
  };
2997
- var isLatLng = (props, propName, componentName) => {
2998
- if (!props[propName]) {
2999
- return null;
3000
- }
3001
- const latAbs = Math.abs(props[propName][0]);
3002
- const lonAbs = Math.abs(props[propName][1]);
3003
- const latlon = props[propName];
3004
- if (latAbs > MAX_LATITUDE && lonAbs <= MAX_LATITUDE) {
3005
- throw new Error(`${componentName} ${propName} may have reversed [lat, lon] ranges.`);
3006
- }
3007
- if (!isValidLatLon(latlon)) {
3008
- throw new Error(`${componentName} ${propName} incorrect [lat, lon] ranges.`);
3009
- }
3010
- return null;
3011
- };
3012
- PureMap.propTypes = {
3013
- // eslint-disable-next-line react/no-unused-prop-types
3014
- mode: prop_types_exports.string,
3015
- width: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
3016
- height: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
3017
- backgroundColor: prop_types_exports.string,
3018
- baseLayerTileServer: prop_types_exports.string,
3019
- baseLayerTileServerType: prop_types_exports.string,
3020
- center: isLatLng,
3021
- controlBackgroundColor: prop_types_exports.string,
3022
- controlForegroundColor: prop_types_exports.string,
3023
- layers: prop_types_exports.arrayOf(
3024
- prop_types_exports.shape({
3025
- type: prop_types_exports.string,
3026
- latitude: prop_types_exports.arrayOf(prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number])),
3027
- longitude: prop_types_exports.arrayOf(prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number])),
3028
- label: prop_types_exports.string,
3029
- showInLegend: prop_types_exports.bool,
3030
- dataColors: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.arrayOf(prop_types_exports.string)]),
3031
- seriesColors: prop_types_exports.arrayOf(prop_types_exports.string),
3032
- additionalTooltipFields: prop_types_exports.arrayOf(prop_types_exports.string),
3033
- tooltipHeaderField: prop_types_exports.arrayOf(prop_types_exports.string),
3034
- resultLimit: prop_types_exports.number,
3035
- source: prop_types_exports.string,
3036
- choroplethEmptyAreaColor: prop_types_exports.string
3037
- })
3038
- ),
3039
- scaleUnit: prop_types_exports.string,
3040
- showScale: prop_types_exports.bool,
3041
- themeColorScheme: prop_types_exports.string,
3042
- zoom: prop_types_exports.number,
3043
- onMapLoad: prop_types_exports.shape({
3044
- exec: prop_types_exports.func
3045
- }),
3046
- onMapClick: prop_types_exports.func,
3047
- onOptionsChange: prop_types_exports.func
3048
- };
3049
- PureMap.defaultProps = {
3050
- mode: "view",
3051
- width: 800,
3052
- height: 500,
3053
- backgroundColor: "#0b0c0e",
3054
- controlBackgroundColor: DEFAULT_CONTROL_BACKGROUND_COLOR,
3055
- controlForegroundColor: DEFAULT_CONTROL_FOREGROUND_COLOR,
3056
- scaleUnit: DEFAULT_SCALE_UNIT,
3057
- showScale: DEFAULT_SHOW_SCALE,
3058
- showZoomControls: DEFAULT_SHOW_ZOOM_CONTROLS,
3059
- showBaseLayer: DEFAULT_SHOW_BASELAYER,
3060
- layers: [],
3061
- themeColorScheme: "dark",
3062
- onMapLoad: { exec: lodash_exports.noop },
3063
- onMapClick: lodash_exports.noop,
3064
- onOptionsChange: lodash_exports.noop
3065
- };
3066
2987
  var PureMap_default = PureMap;
3067
2988
 
3068
2989
  // esm-externals:@splunk/visualization-color-palettes/editors/PresetPalettes
@@ -3070,36 +2991,36 @@ var PresetPalettes_exports = {};
3070
2991
  __export(PresetPalettes_exports, {
3071
2992
  default: () => PresetPalettes_default
3072
2993
  });
3073
- var defaultImport30 = __toESM(require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
2994
+ var defaultImport29 = __toESM(require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
3074
2995
  __reExport(PresetPalettes_exports, require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
3075
- var PresetPalettes_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
2996
+ var PresetPalettes_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
3076
2997
 
3077
2998
  // esm-externals:@splunk/visualization-icons
3078
2999
  var visualization_icons_exports = {};
3079
3000
  __export(visualization_icons_exports, {
3080
3001
  default: () => visualization_icons_default
3081
3002
  });
3082
- var defaultImport31 = __toESM(require("@splunk/visualization-icons"));
3003
+ var defaultImport30 = __toESM(require("@splunk/visualization-icons"));
3083
3004
  __reExport(visualization_icons_exports, require("@splunk/visualization-icons"));
3084
- var visualization_icons_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
3005
+ var visualization_icons_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
3085
3006
 
3086
3007
  // esm-externals:@splunk/visualization-icons/placeholders
3087
3008
  var placeholders_exports = {};
3088
3009
  __export(placeholders_exports, {
3089
3010
  default: () => placeholders_default
3090
3011
  });
3091
- var defaultImport32 = __toESM(require("@splunk/visualization-icons/placeholders"));
3012
+ var defaultImport31 = __toESM(require("@splunk/visualization-icons/placeholders"));
3092
3013
  __reExport(placeholders_exports, require("@splunk/visualization-icons/placeholders"));
3093
- var placeholders_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
3014
+ var placeholders_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
3094
3015
 
3095
3016
  // esm-externals:@splunk/visualizations-shared/configUtils
3096
3017
  var configUtils_exports = {};
3097
3018
  __export(configUtils_exports, {
3098
3019
  default: () => configUtils_default
3099
3020
  });
3100
- var defaultImport33 = __toESM(require("@splunk/visualizations-shared/configUtils"));
3021
+ var defaultImport32 = __toESM(require("@splunk/visualizations-shared/configUtils"));
3101
3022
  __reExport(configUtils_exports, require("@splunk/visualizations-shared/configUtils"));
3102
- var configUtils_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
3023
+ var configUtils_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
3103
3024
 
3104
3025
  // src/common/utils/configUtils.ts
3105
3026
  function enhanceConfig(vizConfig) {
@@ -3133,18 +3054,18 @@ var pick_exports = {};
3133
3054
  __export(pick_exports, {
3134
3055
  default: () => pick_default
3135
3056
  });
3136
- var defaultImport34 = __toESM(require("@splunk/themes/pick"));
3057
+ var defaultImport33 = __toESM(require("@splunk/themes/pick"));
3137
3058
  __reExport(pick_exports, require("@splunk/themes/pick"));
3138
- var pick_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
3059
+ var pick_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
3139
3060
 
3140
3061
  // esm-externals:@splunk/themes/variables
3141
3062
  var variables_exports = {};
3142
3063
  __export(variables_exports, {
3143
3064
  default: () => variables_default
3144
3065
  });
3145
- var defaultImport35 = __toESM(require("@splunk/themes/variables"));
3066
+ var defaultImport34 = __toESM(require("@splunk/themes/variables"));
3146
3067
  __reExport(variables_exports, require("@splunk/themes/variables"));
3147
- var variables_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
3068
+ var variables_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
3148
3069
 
3149
3070
  // src/common/ThemedDefaults.tsx
3150
3071
  var defaultBackgroundColor = (props) => pick_default({
@@ -3606,7 +3527,7 @@ var editorConfig = [
3606
3527
  label: (0, i18n_exports._)("Base layer tile server type"),
3607
3528
  option: "baseLayerTileServerType",
3608
3529
  editor: "editor.radioBar",
3609
- showEditor: ({ options }) => options.showBaseLayer === false ? false : !(typeof options.baseLayerTileServer === "undefined" || options.baseLayerTileServer === ""),
3530
+ showEditor: ({ options }) => options.showBaseLayer === false ? false : !(options.baseLayerTileServer === void 0 || options.baseLayerTileServer === ""),
3610
3531
  editorProps: {
3611
3532
  values: [
3612
3533
  { label: (0, i18n_exports._)("Vector"), value: "vector" },
@@ -3659,54 +3580,63 @@ var getSettingsFromThemedProps_exports = {};
3659
3580
  __export(getSettingsFromThemedProps_exports, {
3660
3581
  default: () => getSettingsFromThemedProps_default
3661
3582
  });
3662
- var defaultImport36 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
3583
+ var defaultImport35 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
3663
3584
  __reExport(getSettingsFromThemedProps_exports, require("@splunk/themes/getSettingsFromThemedProps"));
3664
- var getSettingsFromThemedProps_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
3585
+ var getSettingsFromThemedProps_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
3665
3586
 
3666
3587
  // esm-externals:@splunk/visualization-encoding/Options
3667
3588
  var Options_exports = {};
3668
3589
  __export(Options_exports, {
3669
3590
  default: () => Options_default
3670
3591
  });
3671
- var defaultImport37 = __toESM(require("@splunk/visualization-encoding/Options"));
3592
+ var defaultImport36 = __toESM(require("@splunk/visualization-encoding/Options"));
3672
3593
  __reExport(Options_exports, require("@splunk/visualization-encoding/Options"));
3673
- var Options_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
3594
+ var Options_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
3674
3595
 
3675
3596
  // esm-externals:@splunk/visualizations-shared/SanitizeProps
3676
3597
  var SanitizeProps_exports = {};
3677
3598
  __export(SanitizeProps_exports, {
3678
3599
  default: () => SanitizeProps_default
3679
3600
  });
3680
- var defaultImport38 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
3601
+ var defaultImport37 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
3681
3602
  __reExport(SanitizeProps_exports, require("@splunk/visualizations-shared/SanitizeProps"));
3682
- var SanitizeProps_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
3603
+ var SanitizeProps_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
3683
3604
 
3684
3605
  // esm-externals:@splunk/visualization-context/TimezoneContext
3685
3606
  var TimezoneContext_exports = {};
3686
3607
  __export(TimezoneContext_exports, {
3687
3608
  default: () => TimezoneContext_default
3688
3609
  });
3689
- var defaultImport39 = __toESM(require("@splunk/visualization-context/TimezoneContext"));
3610
+ var defaultImport38 = __toESM(require("@splunk/visualization-context/TimezoneContext"));
3690
3611
  __reExport(TimezoneContext_exports, require("@splunk/visualization-context/TimezoneContext"));
3691
- var TimezoneContext_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
3612
+ var TimezoneContext_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
3692
3613
 
3693
3614
  // esm-externals:@splunk/moment
3694
3615
  var moment_exports = {};
3695
3616
  __export(moment_exports, {
3696
3617
  default: () => moment_default
3697
3618
  });
3698
- var defaultImport40 = __toESM(require("@splunk/moment"));
3619
+ var defaultImport39 = __toESM(require("@splunk/moment"));
3699
3620
  __reExport(moment_exports, require("@splunk/moment"));
3700
- var moment_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
3621
+ var moment_default = "default" in defaultImport39 ? defaultImport39.default : defaultImport39;
3701
3622
 
3702
3623
  // esm-externals:@splunk/async-dynamic-options-evaluator
3703
3624
  var async_dynamic_options_evaluator_exports = {};
3704
3625
  __export(async_dynamic_options_evaluator_exports, {
3705
3626
  default: () => async_dynamic_options_evaluator_default
3706
3627
  });
3707
- var defaultImport41 = __toESM(require("@splunk/async-dynamic-options-evaluator"));
3628
+ var defaultImport40 = __toESM(require("@splunk/async-dynamic-options-evaluator"));
3708
3629
  __reExport(async_dynamic_options_evaluator_exports, require("@splunk/async-dynamic-options-evaluator"));
3709
- var async_dynamic_options_evaluator_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
3630
+ var async_dynamic_options_evaluator_default = "default" in defaultImport40 ? defaultImport40.default : defaultImport40;
3631
+
3632
+ // esm-externals:prop-types
3633
+ var prop_types_exports = {};
3634
+ __export(prop_types_exports, {
3635
+ default: () => prop_types_default
3636
+ });
3637
+ var defaultImport41 = __toESM(require("prop-types"));
3638
+ __reExport(prop_types_exports, require("prop-types"));
3639
+ var prop_types_default = "default" in defaultImport41 ? defaultImport41.default : defaultImport41;
3710
3640
 
3711
3641
  // src/common/interfaces/VizActionHandler.ts
3712
3642
  var DefaultVizActionHandler = class {
@@ -3845,7 +3775,10 @@ var useSortingParams = ({ requestParams, onRequestParamsChange }) => {
3845
3775
  onSort = (e, { sortKey, sortDir }) => {
3846
3776
  if (typeof sortKey === "string") {
3847
3777
  const nextSortDir = (0, lodash_exports.has)(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : "none";
3848
- onRequestParamsChange(__spreadValues(__spreadValues({}, requestParams), { offset: 0, sort: { [sortKey]: nextSortDir } }));
3778
+ onRequestParamsChange(__spreadProps(__spreadValues({}, requestParams), {
3779
+ offset: 0,
3780
+ sort: { [sortKey]: nextSortDir }
3781
+ }));
3849
3782
  } else {
3850
3783
  onRequestParamsChange(requestParams);
3851
3784
  }
@@ -3971,7 +3904,7 @@ var Cover = styled_components_default.div`
3971
3904
  bottom: 0;
3972
3905
  `;
3973
3906
  var Blocker = styled_components_default.div.attrs({
3974
- "data-splunk-visualization-version": "28.8.0 - 633c53372"
3907
+ "data-splunk-visualization-version": "28.9.0 - 96b03188d"
3975
3908
  })`
3976
3909
  position: relative;
3977
3910
  width: 100%;
@@ -4043,7 +3976,7 @@ var withFixedSizeContainer = (Viz) => {
4043
3976
  FixSizeItem,
4044
3977
  {
4045
3978
  "data-test": "fix-size-item",
4046
- "data-splunk-visualization-version": "28.8.0 - 633c53372",
3979
+ "data-splunk-visualization-version": "28.9.0 - 96b03188d",
4047
3980
  width,
4048
3981
  height,
4049
3982
  backgroundColor
@@ -4064,6 +3997,14 @@ var shouldShowIconPlaceholder = (dataSources, loading = false) => {
4064
3997
  const noFields = fields === void 0;
4065
3998
  return loading || noData || noFields;
4066
3999
  };
4000
+ var PlaceholderContainer = styled_components_default.div`
4001
+ /* The inline token color wins when supported. Older browsers discard an
4002
+ unsupported oklch value and retain this inherited fallback instead. */
4003
+ color: ${(0, themes_exports.pick)({
4004
+ dark: "#fafafa",
4005
+ light: "#2c2c2c"
4006
+ })};
4007
+ `;
4067
4008
  var IconPlaceholder = (props) => {
4068
4009
  const {
4069
4010
  width = SplunkVisualization_default.defaults.width,
@@ -4078,7 +4019,6 @@ var IconPlaceholder = (props) => {
4078
4019
  style: {
4079
4020
  left: "50%",
4080
4021
  top: "50%",
4081
- color: iconColor,
4082
4022
  opacity: 0.15,
4083
4023
  position: "absolute",
4084
4024
  transform: "translate(-50%, -50%)"
@@ -4088,7 +4028,14 @@ var IconPlaceholder = (props) => {
4088
4028
  "data-test": "icon-placeholder"
4089
4029
  });
4090
4030
  }
4091
- return /* @__PURE__ */ react_exports.createElement("div", { style: { width, height, background: backgroundColor } }, content);
4031
+ return /* @__PURE__ */ react_exports.createElement(
4032
+ PlaceholderContainer,
4033
+ {
4034
+ "data-test": "icon-placeholder-container",
4035
+ style: { width, height, background: backgroundColor, color: iconColor }
4036
+ },
4037
+ content
4038
+ );
4092
4039
  };
4093
4040
  var IconPlaceholder_default = FixedSizeContainer_default(IconPlaceholder);
4094
4041
 
@@ -4180,7 +4127,7 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
4180
4127
  let avgY = 0;
4181
4128
  let avgRangeStart = Math.floor((i + 1) * every) + 1;
4182
4129
  let avgRangeEnd = Math.floor((i + 2) * every) + 1;
4183
- avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
4130
+ avgRangeEnd = Math.min(avgRangeEnd, dataLength);
4184
4131
  const avgRangeLength = avgRangeEnd - avgRangeStart;
4185
4132
  for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
4186
4133
  avgX += Number(data[avgRangeStart][0]);
@@ -4215,9 +4162,9 @@ var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices)
4215
4162
  };
4216
4163
  var strictlyCoerceYColumn = (column, options) => {
4217
4164
  const isNullCoercionEnabled = options.nullValueDisplay === "zero";
4218
- const canLooselyCoerceSomeValues = column.findIndex(
4165
+ const canLooselyCoerceSomeValues = column.some(
4219
4166
  (value) => (0, numberUtils_exports.startsWithNumber)(`${value}`) || isNullCoercionEnabled && value === null
4220
- ) >= 0;
4167
+ );
4221
4168
  const coercedColumn = [];
4222
4169
  const canDownsampleColumn = !column.some((value) => {
4223
4170
  const coercedValue = Number(value);
@@ -4236,7 +4183,7 @@ var strictlyCoerceYColumn = (column, options) => {
4236
4183
  };
4237
4184
  var strictlyCoerceXColumn = (column, fieldType) => {
4238
4185
  if (fieldType === "number") {
4239
- const coercedXColumn = column.map((xValue) => Number(xValue));
4186
+ const coercedXColumn = column.map(Number);
4240
4187
  if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {
4241
4188
  return coercedXColumn;
4242
4189
  }
@@ -4541,10 +4488,10 @@ var FeatureFlags_default = "default" in defaultImport44 ? defaultImport44.defaul
4541
4488
 
4542
4489
  // src/common/utils/featureFlagUtils.ts
4543
4490
  var getFeatureFlag = (context, flagName) => {
4544
- if (context && Object.keys(context).find((key) => key === flagName)) {
4491
+ if (context && Object.keys(context).includes(flagName)) {
4545
4492
  return context[flagName];
4546
4493
  }
4547
- if (Object.keys(FeatureFlags_default).find((key) => key === flagName)) {
4494
+ if (Object.keys(FeatureFlags_default).includes(flagName)) {
4548
4495
  return FeatureFlags_default[flagName];
4549
4496
  }
4550
4497
  return false;
@@ -4657,9 +4604,9 @@ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
4657
4604
  const xAxisIsTime = xField === "_time";
4658
4605
  return !!rangeSelectEventHandler && xAxisIsTime;
4659
4606
  };
4660
- var canvasSupportedTimeSeriesCharts = ["splunk.line", "splunk.area"];
4607
+ var canvasSupportedTimeSeriesCharts = /* @__PURE__ */ new Set(["splunk.line", "splunk.area"]);
4661
4608
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
4662
- return canvasSupportedTimeSeriesCharts.includes(vizConfigKey);
4609
+ return canvasSupportedTimeSeriesCharts.has(vizConfigKey);
4663
4610
  };
4664
4611
  var filterChartDataFromInternalFields = (chartData) => {
4665
4612
  const { fields, columns } = chartData;
@@ -4675,7 +4622,7 @@ var filterChartDataFromInternalFields = (chartData) => {
4675
4622
  return { fields: filteredFields, columns: filteredColumns };
4676
4623
  };
4677
4624
  var convert2DArrayToNumbers = (arr) => {
4678
- return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
4625
+ return arr.map((subArray) => subArray.map((element) => Number.parseFloat(element)));
4679
4626
  };
4680
4627
  var parseAxisValue = (val) => {
4681
4628
  if (val === void 0 || val === null || val === "auto" || val === "") {
@@ -4713,6 +4660,7 @@ var getLegend = (props) => {
4713
4660
  return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
4714
4661
  wrap: true
4715
4662
  }, commonLegendProps));
4663
+ // Note: By default, use right legend
4716
4664
  default:
4717
4665
  return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
4718
4666
  }
@@ -4845,10 +4793,10 @@ var getSeriesOverrides = (opts) => {
4845
4793
  let spanGaps;
4846
4794
  if (nullValueMode === "gaps") {
4847
4795
  spanGaps = false;
4848
- } else if (nullValueMode != null) {
4849
- spanGaps = true;
4850
- } else {
4796
+ } else if (nullValueMode == null) {
4851
4797
  spanGaps = void 0;
4798
+ } else {
4799
+ spanGaps = true;
4852
4800
  }
4853
4801
  const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
4854
4802
  const isAreaChart = type === "area";
@@ -5279,11 +5227,11 @@ var TimeSeriesChartWrapper = (props) => {
5279
5227
  y2AxisMajorUnitFromSimpleXML,
5280
5228
  y2AxisMajorTickInterval
5281
5229
  );
5282
- const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
5283
- const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
5284
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
5285
- const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
5286
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
5230
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize == null ? void 0 : Number(xAxisMajorTickSize);
5231
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize == null ? void 0 : Number(yAxisMajorTickSize);
5232
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize == null ? void 0 : Number(y2AxisMajorTickSize);
5233
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize == null ? void 0 : Number(yAxisMinorTickSize);
5234
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize == null ? void 0 : Number(y2AxisMinorTickSize);
5287
5235
  const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
5288
5236
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
5289
5237
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
@@ -5695,6 +5643,76 @@ var buildEventCallbackProps = (supportedEvents, evaluatedOptionsToUse, onEventTr
5695
5643
  });
5696
5644
  return result;
5697
5645
  };
5646
+ var buildAllEventCallbackProps = (events, evaluatedOptionsToUse, onEventTrigger, { supportsEvents, hasEventHandlers, mode }) => {
5647
+ if (!supportsEvents) return {};
5648
+ const defaultEvents = {};
5649
+ const userEvents = {};
5650
+ Object.entries(events || {}).forEach(([eventKey, eventConfig]) => {
5651
+ (eventConfig.source === "default" ? defaultEvents : userEvents)[eventKey] = eventConfig;
5652
+ });
5653
+ const userProps = hasEventHandlers && mode === "view" ? buildEventCallbackProps(userEvents, evaluatedOptionsToUse, onEventTrigger) : {};
5654
+ return __spreadValues(__spreadValues({}, userProps), buildEventCallbackProps(defaultEvents, evaluatedOptionsToUse, onEventTrigger));
5655
+ };
5656
+ var applyContextTimezone = (localeContext) => {
5657
+ if (localeContext.serializedTimezone && !moment_default.getDefaultSplunkTimezone()) {
5658
+ moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
5659
+ }
5660
+ };
5661
+ var getAsyncOptionsEvaluationParams = ({
5662
+ visualizationID,
5663
+ props,
5664
+ optionsToEvaluate,
5665
+ downsampledDataSources,
5666
+ vizConfig,
5667
+ bypassCloneDeepOptionScope,
5668
+ lazyLoadingDataFrame
5669
+ }) => {
5670
+ return {
5671
+ visualizationID,
5672
+ props,
5673
+ options: __spreadValues({}, optionsToEvaluate),
5674
+ dataSources: downsampledDataSources,
5675
+ theme: vizConfig.themes,
5676
+ bypassCloneDeepOptionScope,
5677
+ lazyLoadingDataFrame
5678
+ };
5679
+ };
5680
+ var evaluateOptionsSync = ({
5681
+ optionsToEvaluate,
5682
+ downsampledDataSources,
5683
+ dataSourcesInState,
5684
+ dataFramesInState,
5685
+ setDataSourcesInState,
5686
+ setDataFramesInState,
5687
+ computeDataFrames,
5688
+ featureFlagContext,
5689
+ themeFunc
5690
+ }) => {
5691
+ let dataFrames = dataFramesInState;
5692
+ if (downsampledDataSources !== dataSourcesInState) {
5693
+ setDataSourcesInState(downsampledDataSources);
5694
+ dataFrames = Options_exports.Options.dataFrameFromDataSource(
5695
+ downsampledDataSources,
5696
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
5697
+ );
5698
+ setDataFramesInState(dataFrames);
5699
+ }
5700
+ let mergedFrames = dataFrames;
5701
+ if (computeDataFrames && dataFrames) {
5702
+ const derivedFrames = computeDataFrames({
5703
+ dataSources: downsampledDataSources,
5704
+ options: optionsToEvaluate.options
5705
+ });
5706
+ mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
5707
+ }
5708
+ return Options_exports.Options.evaluate(
5709
+ optionsToEvaluate,
5710
+ downsampledDataSources,
5711
+ themeFunc,
5712
+ mergedFrames,
5713
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
5714
+ );
5715
+ };
5698
5716
  var withDashboardViz = (opts) => {
5699
5717
  const {
5700
5718
  ReactViz,
@@ -5726,11 +5744,7 @@ var withDashboardViz = (opts) => {
5726
5744
  onRequestParamsChange = lodash_exports.noop
5727
5745
  } = props;
5728
5746
  const localeContext = react_exports.useContext(TimezoneContext_default);
5729
- if (localeContext.serializedTimezone) {
5730
- if (!moment_default.getDefaultSplunkTimezone()) {
5731
- moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
5732
- }
5733
- }
5747
+ applyContextTimezone(localeContext);
5734
5748
  const themeFunc = (themeVar) => {
5735
5749
  var _a2, _b;
5736
5750
  return (_b = (_a2 = vizConfig.themes)[themeVar]) == null ? void 0 : _b.call(_a2, props);
@@ -5758,7 +5772,12 @@ var withDashboardViz = (opts) => {
5758
5772
  featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
5759
5773
  );
5760
5774
  const isAcceleratedRenderOn = isAcceleratedRenderFeatureFlagOn && isTimeSeriesCanvasRenderSupported(vizConfig.key) && (options == null ? void 0 : options.acceleratedRender) === true;
5761
- const isMounted = react_exports.useRef(true);
5775
+ const bypassCloneDeepOptionScope = Boolean(
5776
+ getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
5777
+ );
5778
+ const lazyLoadingDataFrame = Boolean(
5779
+ getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
5780
+ );
5762
5781
  const optionsToEvaluate = react_exports.useMemo(() => {
5763
5782
  var _a2;
5764
5783
  const legendDisplay = turnOffLegendDisplayWhenTrellisIsOn(isTrellisOn, options);
@@ -5797,63 +5816,74 @@ var withDashboardViz = (opts) => {
5797
5816
  threshold,
5798
5817
  isDownsamplingEnabled
5799
5818
  });
5800
- evaluatedOptions = useDeepMemo(() => {
5819
+ const asyncOptionsEvaluationParams = useDeepMemo(
5820
+ () => getAsyncOptionsEvaluationParams({
5821
+ visualizationID,
5822
+ props,
5823
+ optionsToEvaluate,
5824
+ downsampledDataSources,
5825
+ vizConfig,
5826
+ bypassCloneDeepOptionScope,
5827
+ lazyLoadingDataFrame
5828
+ }),
5829
+ [
5830
+ visualizationID,
5831
+ optionsToEvaluate,
5832
+ downsampledDataSources,
5833
+ vizConfig,
5834
+ bypassCloneDeepOptionScope,
5835
+ lazyLoadingDataFrame,
5836
+ currentThemeFamily,
5837
+ currentThemeColorScheme,
5838
+ currentThemeDensity,
5839
+ localeContext.serializedTimezone
5840
+ ]
5841
+ );
5842
+ react_exports.useEffect(() => {
5843
+ if (!useAsyncEvaluatedOptions) {
5844
+ return void 0;
5845
+ }
5846
+ let ownsEvaluation = true;
5801
5847
  try {
5802
- if (useAsyncEvaluatedOptions) {
5803
- const asyncDynamicOptionsEvaluatorParams = {
5804
- visualizationID,
5805
- props,
5806
- options: optionsToEvaluate,
5807
- dataSources: downsampledDataSources,
5808
- theme: vizConfig.themes,
5809
- bypassCloneDeepOptionScope: Boolean(
5810
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
5811
- ),
5812
- lazyLoadingDataFrame: Boolean(
5813
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
5814
- )
5815
- };
5816
- async_dynamic_options_evaluator_default.evaluate(asyncDynamicOptionsEvaluatorParams).then((results) => {
5848
+ async_dynamic_options_evaluator_default.evaluate(asyncOptionsEvaluationParams).then((results) => {
5849
+ if (ownsEvaluation) {
5817
5850
  setEvaluatedOptionsAsync(results.results);
5818
- }).catch(() => {
5819
- if (isMounted.current) {
5820
- setUseAsyncEvaluatedOptions(false);
5821
- }
5822
- });
5823
- } else {
5824
- let dataFrames = dataFramesInState;
5825
- if (downsampledDataSources !== dataSourcesInState) {
5826
- setDataSourcesInState(downsampledDataSources);
5827
- dataFrames = Options_exports.Options.dataFrameFromDataSource(
5828
- downsampledDataSources,
5829
- getFeatureFlag(featureFlagContext, "visualizations_lazyLoadingDataFrame")
5830
- );
5831
- setDataFramesInState(dataFrames);
5832
5851
  }
5833
- let mergedFrames = dataFrames;
5834
- if (computeDataFrames && dataFrames) {
5835
- const derivedFrames = computeDataFrames({
5836
- dataSources: downsampledDataSources,
5837
- options: optionsToEvaluate.options
5838
- });
5839
- mergedFrames = __spreadValues(__spreadValues({}, dataFrames), derivedFrames);
5852
+ }).catch(() => {
5853
+ if (ownsEvaluation) {
5854
+ setUseAsyncEvaluatedOptions(false);
5840
5855
  }
5841
- const result = Options_exports.Options.evaluate(
5842
- optionsToEvaluate,
5843
- downsampledDataSources,
5844
- themeFunc,
5845
- mergedFrames,
5846
- getFeatureFlag(featureFlagContext, "visualizations_bypassCloneDeepOptionScope")
5847
- );
5848
- return result;
5856
+ });
5857
+ } catch (e) {
5858
+ setUseAsyncEvaluatedOptions(false);
5859
+ }
5860
+ return () => {
5861
+ ownsEvaluation = false;
5862
+ async_dynamic_options_evaluator_default.reset(visualizationID);
5863
+ };
5864
+ }, [asyncOptionsEvaluationParams, useAsyncEvaluatedOptions, visualizationID]);
5865
+ evaluatedOptions = useDeepMemo(() => {
5866
+ try {
5867
+ if (useAsyncEvaluatedOptions) {
5868
+ return {};
5849
5869
  }
5870
+ return evaluateOptionsSync({
5871
+ optionsToEvaluate,
5872
+ downsampledDataSources,
5873
+ dataSourcesInState,
5874
+ dataFramesInState,
5875
+ setDataSourcesInState,
5876
+ setDataFramesInState,
5877
+ computeDataFrames,
5878
+ featureFlagContext,
5879
+ themeFunc
5880
+ });
5850
5881
  } catch (e) {
5851
5882
  if (e instanceof Error) {
5852
5883
  console.error(`unexpected error evaluating options: ${e.message}`);
5853
5884
  }
5854
5885
  return {};
5855
5886
  }
5856
- return {};
5857
5887
  }, [
5858
5888
  currentThemeFamily,
5859
5889
  currentThemeColorScheme,
@@ -5863,7 +5893,7 @@ var withDashboardViz = (opts) => {
5863
5893
  localeContext.serializedTimezone,
5864
5894
  useAsyncEvaluatedOptions
5865
5895
  ]);
5866
- const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
5896
+ const evaluatedOptionsToUse = useAsyncEvaluatedOptions ? evaluatedOptionsAsync : evaluatedOptions;
5867
5897
  let dataSourceMetadata = {};
5868
5898
  const OptionKey = "paginateDataSourceKey";
5869
5899
  const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
@@ -5885,7 +5915,7 @@ var withDashboardViz = (opts) => {
5885
5915
  sortParams,
5886
5916
  paginatorParams
5887
5917
  };
5888
- if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) === -1 && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
5918
+ if (!vizConfig.supports.includes("page-and-sort" /* PAGE_AND_SORT */) && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
5889
5919
  dataSourceMetadata = {};
5890
5920
  }
5891
5921
  const clonedEvaluatedOptions = __spreadValues({}, evaluatedOptionsToUse);
@@ -5895,14 +5925,6 @@ var withDashboardViz = (opts) => {
5895
5925
  react_exports.useEffect(() => {
5896
5926
  onComputedProps(clonedEvaluatedOptions);
5897
5927
  });
5898
- react_exports.useEffect(() => {
5899
- return () => {
5900
- if (useAsyncEvaluatedOptions) {
5901
- isMounted.current = false;
5902
- async_dynamic_options_evaluator_default.reset(visualizationID);
5903
- }
5904
- };
5905
- }, []);
5906
5928
  const { requiredProps = [], supports } = vizConfig;
5907
5929
  const missing = missingKeys(requiredProps, evaluatedOptionsToUse);
5908
5930
  if (missing.length > 0 && supports.includes("placeholder" /* PLACEHOLDER */) && vizConfig.key !== "splunk.singlevalue") {
@@ -5917,7 +5939,16 @@ var withDashboardViz = (opts) => {
5917
5939
  }
5918
5940
  );
5919
5941
  }
5920
- const eventCallbackProps = hasEventHandlers && mode === "view" && vizConfig.supports.includes("events" /* EVENTS */) ? buildEventCallbackProps(vizConfig.events, evaluatedOptionsToUse, onEventTrigger) : {};
5942
+ const eventCallbackProps = buildAllEventCallbackProps(
5943
+ vizConfig.events,
5944
+ evaluatedOptionsToUse,
5945
+ onEventTrigger,
5946
+ {
5947
+ supportsEvents: vizConfig.supports.includes("events" /* EVENTS */),
5948
+ hasEventHandlers,
5949
+ mode
5950
+ }
5951
+ );
5921
5952
  const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), {
5922
5953
  // Align option transformation with the actual renderer selected below.
5923
5954
  // This prevents canvas-only option preservation from leaking into Highcharts mode.
@@ -5945,8 +5976,9 @@ var withDashboardViz = (opts) => {
5945
5976
  onEventTrigger: SplunkVisualization_default.defaults.onEventTrigger
5946
5977
  });
5947
5978
  DashboardViz.config = vizConfig;
5948
- return (0, styled_components_exports.withTheme)(
5949
- withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder2)
5979
+ return Object.assign(
5980
+ (0, styled_components_exports.withTheme)(withPlaceholder_default(withEditModeCover_default(DashboardViz, disableEditModeCover), useIconPlaceholder2)),
5981
+ { config: vizConfig }
5950
5982
  );
5951
5983
  };
5952
5984
  var withDashboardViz_default = withDashboardViz;
@@ -5975,20 +6007,18 @@ var columnsNullToZeros = (config2, dataSources, options) => {
5975
6007
  const latitudeField = (0, dsl_exports.getFieldsFromDSL)(mergedOptions.layers[0].latitude, dataSources)[0] || "";
5976
6008
  const longitudeField = (0, dsl_exports.getFieldsFromDSL)(mergedOptions.layers[0].longitude, dataSources)[0] || "";
5977
6009
  const stringsFields = (0, dsl_exports.getFieldsFromDSL)("> primary | frameBySeriesTypes('string')", dataSources);
5978
- const excludedFields = Array.from(
5979
- /* @__PURE__ */ new Set([
5980
- latitudeField,
5981
- longitudeField,
5982
- "geobin",
5983
- "name",
5984
- ...stringsFields,
5985
- ...GEO_LAT_AND_LONG_FIELD
5986
- ])
5987
- );
6010
+ const excludedFields = /* @__PURE__ */ new Set([
6011
+ latitudeField,
6012
+ longitudeField,
6013
+ "geobin",
6014
+ "name",
6015
+ ...stringsFields,
6016
+ ...GEO_LAT_AND_LONG_FIELD
6017
+ ]);
5988
6018
  const indicesToEvaluate = new Set(
5989
6019
  fields.reduce((arr, e, i) => {
5990
6020
  const field = typeof e === "string" ? e : e.name.toString();
5991
- if (!excludedFields.includes(field)) {
6021
+ if (!excludedFields.has(field)) {
5992
6022
  arr.push(i);
5993
6023
  }
5994
6024
  return arr;
@@ -6076,24 +6106,36 @@ var withTooltipFields = (Viz) => {
6076
6106
  const { fields } = dataSources.primary.data;
6077
6107
  if (Array.isArray(mergedOptions.layers[0].additionalTooltipFields) && Array.isArray(fields) && fields.length) {
6078
6108
  const { bubbleSizeFields = [] } = mergedOptions.layers[0];
6109
+ const fieldNames = new Set(
6110
+ fields.map(
6111
+ (field) => typeof field === "string" ? field : field.name
6112
+ )
6113
+ );
6079
6114
  mergedOptions.layers[0].additionalTooltipFields = mergedOptions.layers[0].additionalTooltipFields.filter(
6080
- (field) => (typeof fields[0] === "string" ? fields.includes(field) : fields.map((f) => f.name).includes(field)) && !bubbleSizeFields.includes(field)
6115
+ (field) => fieldNames.has(field) && !bubbleSizeFields.includes(field)
6081
6116
  );
6082
6117
  }
6083
6118
  }
6084
6119
  return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({ dataSources, options: mergedOptions }, otherProps));
6085
6120
  };
6086
- VizWithTooltipFields.propTypes = Viz.propTypes;
6087
- VizWithTooltipFields.defaultProps = Viz.defaultProps;
6088
- VizWithTooltipFields.config = Viz.config;
6089
- return VizWithTooltipFields;
6121
+ return Object.assign(VizWithTooltipFields, { config: Viz.config });
6090
6122
  };
6091
6123
  var withoutInternalFields = (Viz) => {
6092
6124
  const VizWithoutInternalFields = (_a) => {
6093
- var _b = _a, { dataSources } = _b, otherProps = __objRest(_b, ["dataSources"]);
6125
+ var _b = _a, {
6126
+ dataSources,
6127
+ mode = "view",
6128
+ width = 800,
6129
+ height = 500
6130
+ } = _b, otherProps = __objRest(_b, [
6131
+ "dataSources",
6132
+ "mode",
6133
+ "width",
6134
+ "height"
6135
+ ]);
6094
6136
  var _a2;
6095
6137
  if (!((_a2 = dataSources == null ? void 0 : dataSources.primary) == null ? void 0 : _a2.data)) {
6096
- return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({}, otherProps));
6138
+ return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({ mode, width, height }, otherProps));
6097
6139
  }
6098
6140
  const { primary } = dataSources;
6099
6141
  const { columns, fields } = primary.data;
@@ -6120,16 +6162,27 @@ var withoutInternalFields = (Viz) => {
6120
6162
  })
6121
6163
  })
6122
6164
  });
6123
- return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({ dataSources: modifiedDatasources }, otherProps));
6165
+ return /* @__PURE__ */ react_exports.createElement(
6166
+ Viz,
6167
+ __spreadValues({
6168
+ dataSources: modifiedDatasources,
6169
+ mode,
6170
+ width,
6171
+ height
6172
+ }, otherProps)
6173
+ );
6124
6174
  };
6125
- VizWithoutInternalFields.propTypes = Viz.propTypes;
6126
- VizWithoutInternalFields.defaultProps = Viz.defaultProps;
6127
- VizWithoutInternalFields.config = Viz.config;
6128
- return VizWithoutInternalFields;
6175
+ return Object.assign(VizWithoutInternalFields, { config: Viz.config });
6129
6176
  };
6130
6177
  var withNullToZeros = (Viz) => {
6131
6178
  const VizWithColumnsNullToZeros = (_a) => {
6132
- var _b = _a, { dataSources, options } = _b, otherProps = __objRest(_b, ["dataSources", "options"]);
6179
+ var _b = _a, {
6180
+ dataSources,
6181
+ options
6182
+ } = _b, otherProps = __objRest(_b, [
6183
+ "dataSources",
6184
+ "options"
6185
+ ]);
6133
6186
  var _a2;
6134
6187
  if (!((_a2 = dataSources == null ? void 0 : dataSources.primary) == null ? void 0 : _a2.data)) {
6135
6188
  return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({ options }, otherProps));
@@ -6137,10 +6190,7 @@ var withNullToZeros = (Viz) => {
6137
6190
  const modifiedDatasources = columnsNullToZeros(config_default, dataSources, options);
6138
6191
  return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({ dataSources: modifiedDatasources, options }, otherProps));
6139
6192
  };
6140
- VizWithColumnsNullToZeros.propTypes = Viz.propTypes;
6141
- VizWithColumnsNullToZeros.defaultProps = Viz.defaultProps;
6142
- VizWithColumnsNullToZeros.config = Viz.config;
6143
- return VizWithColumnsNullToZeros;
6193
+ return Object.assign(VizWithColumnsNullToZeros, { config: Viz.config });
6144
6194
  };
6145
6195
  function useIconPlaceholder(dataSources, loading) {
6146
6196
  return loading;