@splunk/visualizations 28.3.0 → 28.5.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 (285) hide show
  1. package/Area/Area.d.ts.map +1 -1
  2. package/Area.config.js +28 -8
  3. package/Area.config.js.map +2 -2
  4. package/Area.js +583 -120
  5. package/Area.js.map +3 -3
  6. package/Bar/Bar.d.ts.map +1 -1
  7. package/Bar.config.js +28 -8
  8. package/Bar.config.js.map +2 -2
  9. package/Bar.js +593 -120
  10. package/Bar.js.map +3 -3
  11. package/Bubble.config.js +4 -5
  12. package/Bubble.config.js.map +2 -2
  13. package/Bubble.js +554 -98
  14. package/Bubble.js.map +3 -3
  15. package/CHANGELOG.external.md +165 -0
  16. package/ChoroplethSvg/ChoroplethSvg.d.ts +4 -3
  17. package/ChoroplethSvg/ChoroplethSvg.d.ts.map +1 -1
  18. package/ChoroplethSvg.config.js +1 -3
  19. package/ChoroplethSvg.config.js.map +2 -2
  20. package/ChoroplethSvg.js +595 -111
  21. package/ChoroplethSvg.js.map +4 -4
  22. package/Column/Column.d.ts.map +1 -1
  23. package/Column.config.js +28 -8
  24. package/Column.config.js.map +2 -2
  25. package/Column.js +583 -120
  26. package/Column.js.map +3 -3
  27. package/Ellipse/config.d.ts.map +1 -1
  28. package/Ellipse.config.js +14 -5
  29. package/Ellipse.config.js.map +4 -4
  30. package/Ellipse.js +640 -159
  31. package/Ellipse.js.map +4 -4
  32. package/Events/PureEvents/PureEvents.d.ts.map +1 -1
  33. package/Events.js +668 -157
  34. package/Events.js.map +4 -4
  35. package/FillerGauge/FillerGauge.d.ts.map +1 -1
  36. package/FillerGauge/PureFillerGauge/FillerGauge.d.ts.map +1 -1
  37. package/FillerGauge.js +751 -169
  38. package/FillerGauge.js.map +4 -4
  39. package/Image/Image.d.ts.map +1 -1
  40. package/Image.js +620 -116
  41. package/Image.js.map +4 -4
  42. package/Line/Line.d.ts.map +1 -1
  43. package/Line/lineUtils.d.ts.map +1 -1
  44. package/Line/mockdata/LineData.d.ts +154 -0
  45. package/Line/mockdata/LineData.d.ts.map +1 -1
  46. package/Line.config.js +28 -8
  47. package/Line.config.js.map +2 -2
  48. package/Line.js +704 -122
  49. package/Line.js.map +3 -3
  50. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts +5 -0
  51. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts.map +1 -1
  52. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -1
  53. package/LinkGraph/PureLinkGraph/components/Graph.d.ts +9 -1
  54. package/LinkGraph/PureLinkGraph/components/Graph.d.ts.map +1 -1
  55. package/LinkGraph/PureLinkGraph/components/GraphStyles.d.ts.map +1 -1
  56. package/LinkGraph/PureLinkGraph/components/Node.d.ts +1 -0
  57. package/LinkGraph/PureLinkGraph/components/Node.d.ts.map +1 -1
  58. package/LinkGraph/PureLinkGraph/components/Nodes.d.ts +1 -0
  59. package/LinkGraph/PureLinkGraph/components/Nodes.d.ts.map +1 -1
  60. package/LinkGraph/PureLinkGraph/measurementUtils.d.ts +16 -0
  61. package/LinkGraph/PureLinkGraph/measurementUtils.d.ts.map +1 -0
  62. package/LinkGraph/PureLinkGraph/utils/iconLoader.d.ts.map +1 -1
  63. package/LinkGraph/config.d.ts.map +1 -1
  64. package/LinkGraph.config.js +15 -1
  65. package/LinkGraph.config.js.map +2 -2
  66. package/LinkGraph.js +1411 -662
  67. package/LinkGraph.js.map +4 -4
  68. package/Map/Map.d.ts +2 -2
  69. package/Map/Map.d.ts.map +1 -1
  70. package/Map/PureMap/BubbleLayer.d.ts +5 -0
  71. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  72. package/Map/PureMap/ClusterLayer.d.ts.map +1 -1
  73. package/Map/PureMap/LocalChoroplethLayer.d.ts.map +1 -1
  74. package/Map/PureMap/MapUtils.d.ts +2 -2
  75. package/Map/PureMap/MapUtils.d.ts.map +1 -1
  76. package/Map/PureMap/PureMap.d.ts.map +1 -1
  77. package/Map/PureMap/PureMapContainer.d.ts.map +1 -1
  78. package/Map/PureMap/Tooltip.d.ts.map +1 -1
  79. package/Map/config.d.ts.map +1 -1
  80. package/Map.config.js +0 -1
  81. package/Map.config.js.map +2 -2
  82. package/Map.js +831 -247
  83. package/Map.js.map +4 -4
  84. package/Markdown/Markdown.d.ts.map +1 -1
  85. package/Markdown/config.d.ts.map +1 -1
  86. package/Markdown.config.js +14 -5
  87. package/Markdown.config.js.map +4 -4
  88. package/Markdown.js +619 -109
  89. package/Markdown.js.map +4 -4
  90. package/MarkerGauge/MarkerGauge.d.ts +5 -1
  91. package/MarkerGauge/MarkerGauge.d.ts.map +1 -1
  92. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts +4 -0
  93. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts.map +1 -1
  94. package/MarkerGauge/config.d.ts.map +1 -1
  95. package/MarkerGauge.config.js +121 -3
  96. package/MarkerGauge.config.js.map +3 -3
  97. package/MarkerGauge.js +1535 -172
  98. package/MarkerGauge.js.map +4 -4
  99. package/NetworkGraph/NetworkGraph.d.ts +22 -0
  100. package/NetworkGraph/NetworkGraph.d.ts.map +1 -0
  101. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts +60 -0
  102. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts.map +1 -0
  103. package/NetworkGraph/PureNetworkGraph/components/Link.d.ts +19 -0
  104. package/NetworkGraph/PureNetworkGraph/components/Link.d.ts.map +1 -0
  105. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts +29 -0
  106. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts.map +1 -0
  107. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts +27 -0
  108. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts.map +1 -0
  109. package/NetworkGraph/PureNetworkGraph/components/Tooltip.d.ts +12 -0
  110. package/NetworkGraph/PureNetworkGraph/components/Tooltip.d.ts.map +1 -0
  111. package/NetworkGraph/PureNetworkGraph/components/ZoomControls.d.ts +13 -0
  112. package/NetworkGraph/PureNetworkGraph/components/ZoomControls.d.ts.map +1 -0
  113. package/NetworkGraph/PureNetworkGraph/mockdata/data.d.ts +140 -0
  114. package/NetworkGraph/PureNetworkGraph/mockdata/data.d.ts.map +1 -0
  115. package/NetworkGraph/PureNetworkGraph/mockdata/datasource.d.ts +89 -0
  116. package/NetworkGraph/PureNetworkGraph/mockdata/datasource.d.ts.map +1 -0
  117. package/NetworkGraph/PureNetworkGraph/utils/dragUtils.d.ts +78 -0
  118. package/NetworkGraph/PureNetworkGraph/utils/dragUtils.d.ts.map +1 -0
  119. package/NetworkGraph/PureNetworkGraph/utils/forceLayout.d.ts +47 -0
  120. package/NetworkGraph/PureNetworkGraph/utils/forceLayout.d.ts.map +1 -0
  121. package/NetworkGraph/PureNetworkGraph/utils/iconLoader.d.ts +78 -0
  122. package/NetworkGraph/PureNetworkGraph/utils/iconLoader.d.ts.map +1 -0
  123. package/NetworkGraph/PureNetworkGraph/utils/networkGraphShared.d.ts +111 -0
  124. package/NetworkGraph/PureNetworkGraph/utils/networkGraphShared.d.ts.map +1 -0
  125. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts +122 -0
  126. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -0
  127. package/NetworkGraph/config.d.ts +4 -0
  128. package/NetworkGraph/config.d.ts.map +1 -0
  129. package/NetworkGraph/index.d.ts +3 -0
  130. package/NetworkGraph/index.d.ts.map +1 -0
  131. package/NetworkGraph.config.js +938 -0
  132. package/NetworkGraph.config.js.map +7 -0
  133. package/NetworkGraph.js +7053 -0
  134. package/NetworkGraph.js.map +7 -0
  135. package/PERFORMANCE.md +23 -0
  136. package/ParallelCoordinates/ParallelCoordinates.d.ts +1 -46
  137. package/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -1
  138. package/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts +12 -58
  139. package/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts.map +1 -1
  140. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts +1 -0
  141. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts.map +1 -1
  142. package/ParallelCoordinates.js +664 -228
  143. package/ParallelCoordinates.js.map +4 -4
  144. package/Pie/Pie.d.ts.map +1 -1
  145. package/Pie/config.d.ts.map +1 -1
  146. package/Pie/pieUtils.d.ts +4 -0
  147. package/Pie/pieUtils.d.ts.map +1 -1
  148. package/Pie.config.js +16 -0
  149. package/Pie.config.js.map +2 -2
  150. package/Pie.js +610 -118
  151. package/Pie.js.map +3 -3
  152. package/Punchcard.js +579 -92
  153. package/Punchcard.js.map +4 -4
  154. package/Rectangle/config.d.ts.map +1 -1
  155. package/Rectangle.config.js +14 -5
  156. package/Rectangle.config.js.map +4 -4
  157. package/Rectangle.js +611 -130
  158. package/Rectangle.js.map +4 -4
  159. package/Sankey/PureSankey/PureSankey.d.ts +26 -72
  160. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  161. package/Sankey/PureSankey/SankeyLink.d.ts +3 -19
  162. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  163. package/Sankey/PureSankey/SankeyNode.d.ts +3 -20
  164. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  165. package/Sankey/PureSankey/SankeyTooltip.d.ts +3 -24
  166. package/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -1
  167. package/Sankey.js +814 -429
  168. package/Sankey.js.map +4 -4
  169. package/Scatter/Scatter.d.ts.map +1 -1
  170. package/Scatter.config.js +168 -148
  171. package/Scatter.config.js.map +4 -4
  172. package/Scatter.js +733 -260
  173. package/Scatter.js.map +4 -4
  174. package/SingleValue/SingleValue.d.ts.map +1 -1
  175. package/SingleValue/config.d.ts.map +1 -1
  176. package/SingleValue.config.js +15 -2
  177. package/SingleValue.config.js.map +2 -2
  178. package/SingleValue.js +733 -229
  179. package/SingleValue.js.map +3 -3
  180. package/SingleValueBasic.js.map +1 -1
  181. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -1
  182. package/SingleValueIcon/config.d.ts.map +1 -1
  183. package/SingleValueIcon.config.js +14 -6
  184. package/SingleValueIcon.config.js.map +4 -4
  185. package/SingleValueIcon.js +612 -182
  186. package/SingleValueIcon.js.map +4 -4
  187. package/SingleValueRadial/PureSingleValueRadial/GaugeGraph.d.ts.map +1 -1
  188. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts +0 -8
  189. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts.map +1 -1
  190. package/SingleValueRadial/SingleValueRadial.d.ts.map +1 -1
  191. package/SingleValueRadial.config.js +0 -1
  192. package/SingleValueRadial.config.js.map +2 -2
  193. package/SingleValueRadial.js +594 -182
  194. package/SingleValueRadial.js.map +4 -4
  195. package/SparkLine.js +46 -8
  196. package/SparkLine.js.map +2 -2
  197. package/Table/PureTable.d.ts +10 -0
  198. package/Table/PureTable.d.ts.map +1 -1
  199. package/Table/Table.d.ts.map +1 -1
  200. package/Table/cells/SparklineCell.d.ts.map +1 -1
  201. package/Table/config.d.ts.map +1 -1
  202. package/Table/hooks.d.ts +6 -0
  203. package/Table/hooks.d.ts.map +1 -1
  204. package/Table.config.js +1 -1
  205. package/Table.config.js.map +2 -2
  206. package/Table.js +836 -253
  207. package/Table.js.map +4 -4
  208. package/Timeline/PureTimeline/PureTimeline.d.ts.map +1 -1
  209. package/Timeline/PureTimeline/src/CursorPlugin.d.ts.map +1 -1
  210. package/Timeline/PureTimeline/src/TimelineLegend.d.ts.map +1 -1
  211. package/Timeline/PureTimeline/src/TimelinePlugin.d.ts.map +1 -1
  212. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -1
  213. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +2 -1
  214. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -1
  215. package/Timeline/config.d.ts.map +1 -1
  216. package/Timeline.config.js +31 -12
  217. package/Timeline.config.js.map +4 -4
  218. package/Timeline.js +785 -247
  219. package/Timeline.js.map +4 -4
  220. package/common/Charting.d.ts +5 -0
  221. package/common/Charting.d.ts.map +1 -1
  222. package/common/Charting.js +12 -0
  223. package/common/Charting.js.map +2 -2
  224. package/common/GaugeMajorTicks.js +150 -13
  225. package/common/GaugeMajorTicks.js.map +4 -4
  226. package/common/GaugeValueMarker.js +84 -17
  227. package/common/GaugeValueMarker.js.map +4 -4
  228. package/common/OptionsDoc.js.map +1 -1
  229. package/common/OverviewDoc.d.ts.map +1 -1
  230. package/common/OverviewDoc.js +2 -2
  231. package/common/OverviewDoc.js.map +2 -2
  232. package/common/ThemesDoc.js +0 -1
  233. package/common/ThemesDoc.js.map +2 -2
  234. package/common/TimeSeriesChartWrapper.d.ts +24 -11
  235. package/common/TimeSeriesChartWrapper.d.ts.map +1 -1
  236. package/common/TimeSeriesChartWrapper.js +617 -91
  237. package/common/TimeSeriesChartWrapper.js.map +4 -4
  238. package/common/chartingUtils.d.ts +52 -6
  239. package/common/chartingUtils.d.ts.map +1 -1
  240. package/common/chartingUtils.js +116 -17
  241. package/common/chartingUtils.js.map +3 -3
  242. package/common/editorConfig/AxesChartDataConfig.d.ts +3 -3
  243. package/common/editorConfig/AxesChartDataConfig.d.ts.map +1 -1
  244. package/common/editorConfig/AxesChartDataDisplay.d.ts +4 -0
  245. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  246. package/common/editorConfig/AxesChartLegend.d.ts.map +1 -1
  247. package/common/gaugeUtils.d.ts +37 -0
  248. package/common/gaugeUtils.d.ts.map +1 -1
  249. package/common/gaugeUtils.js +152 -2
  250. package/common/gaugeUtils.js.map +4 -4
  251. package/common/hocs/mockdata/trellisData.d.ts +119 -0
  252. package/common/hocs/mockdata/trellisData.d.ts.map +1 -1
  253. package/common/hocs/withTrellis.d.ts.map +1 -1
  254. package/common/interfaces/DashboardVizProps.d.ts +0 -3
  255. package/common/interfaces/DashboardVizProps.d.ts.map +1 -1
  256. package/common/interfaces/DataSource.d.ts +1 -1
  257. package/common/interfaces/DataSource.d.ts.map +1 -1
  258. package/common/interfaces/Overview.d.ts +1 -0
  259. package/common/interfaces/Overview.d.ts.map +1 -1
  260. package/common/interfaces/VizConfig.d.ts +2 -1
  261. package/common/interfaces/VizConfig.d.ts.map +1 -1
  262. package/common/shapeUtils.js +5 -20
  263. package/common/shapeUtils.js.map +2 -2
  264. package/common/utils/dataUtils.d.ts.map +1 -1
  265. package/common/utils/dataUtils.js +5 -4
  266. package/common/utils/dataUtils.js.map +2 -2
  267. package/common/utils/mapUtils.js +16 -9
  268. package/common/utils/mapUtils.js.map +2 -2
  269. package/common/utils/singleValueUtils.js +17 -18
  270. package/common/utils/singleValueUtils.js.map +2 -2
  271. package/common/utils/textUtils.d.ts +20 -0
  272. package/common/utils/textUtils.d.ts.map +1 -0
  273. package/common/utils/textUtils.js +76 -0
  274. package/common/utils/textUtils.js.map +7 -0
  275. package/common/utils/trellisUtils.d.ts.map +1 -1
  276. package/common/utils/trellisUtils.js +16 -20
  277. package/common/utils/trellisUtils.js.map +2 -2
  278. package/common/withDashboardViz.d.ts.map +1 -1
  279. package/common/withDashboardViz.js +600 -92
  280. package/common/withDashboardViz.js.map +4 -4
  281. package/package.json +46 -39
  282. package/common/utils/styleUtils.d.ts +0 -2
  283. package/common/utils/styleUtils.d.ts.map +0 -1
  284. package/common/utils/styleUtils.js +0 -30
  285. package/common/utils/styleUtils.js.map +0 -7
@@ -98,95 +98,86 @@ var defaultImport3 = __toESM(require("d3-scale"));
98
98
  __reExport(d3_scale_exports, require("d3-scale"));
99
99
  var d3_scale_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
100
100
 
101
- // esm-externals:prop-types
102
- var prop_types_exports = {};
103
- __export(prop_types_exports, {
104
- default: () => prop_types_default
105
- });
106
- var defaultImport4 = __toESM(require("prop-types"));
107
- __reExport(prop_types_exports, require("prop-types"));
108
- var prop_types_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
109
-
110
101
  // esm-externals:@splunk/ui-utils/i18n
111
102
  var i18n_exports = {};
112
103
  __export(i18n_exports, {
113
104
  default: () => i18n_default
114
105
  });
115
- var defaultImport5 = __toESM(require("@splunk/ui-utils/i18n"));
106
+ var defaultImport4 = __toESM(require("@splunk/ui-utils/i18n"));
116
107
  __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
117
- var i18n_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
108
+ var i18n_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
118
109
 
119
110
  // esm-externals:@splunk/visualizations-shared/Message
120
111
  var Message_exports = {};
121
112
  __export(Message_exports, {
122
113
  default: () => Message_default
123
114
  });
124
- var defaultImport6 = __toESM(require("@splunk/visualizations-shared/Message"));
115
+ var defaultImport5 = __toESM(require("@splunk/visualizations-shared/Message"));
125
116
  __reExport(Message_exports, require("@splunk/visualizations-shared/Message"));
126
- var Message_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
117
+ var Message_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
127
118
 
128
119
  // esm-externals:@splunk/visualizations-shared/colorUtils
129
120
  var colorUtils_exports = {};
130
121
  __export(colorUtils_exports, {
131
122
  default: () => colorUtils_default
132
123
  });
133
- var defaultImport7 = __toESM(require("@splunk/visualizations-shared/colorUtils"));
124
+ var defaultImport6 = __toESM(require("@splunk/visualizations-shared/colorUtils"));
134
125
  __reExport(colorUtils_exports, require("@splunk/visualizations-shared/colorUtils"));
135
- var colorUtils_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
126
+ var colorUtils_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
136
127
 
137
128
  // esm-externals:styled-components
138
129
  var styled_components_exports = {};
139
130
  __export(styled_components_exports, {
140
131
  default: () => styled_components_default
141
132
  });
142
- var defaultImport8 = __toESM(require("styled-components"));
133
+ var defaultImport7 = __toESM(require("styled-components"));
143
134
  __reExport(styled_components_exports, require("styled-components"));
144
- var styled_components_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
135
+ var styled_components_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
145
136
 
146
137
  // esm-externals:d3-selection
147
138
  var d3_selection_exports = {};
148
139
  __export(d3_selection_exports, {
149
140
  default: () => d3_selection_default
150
141
  });
151
- var defaultImport9 = __toESM(require("d3-selection"));
142
+ var defaultImport8 = __toESM(require("d3-selection"));
152
143
  __reExport(d3_selection_exports, require("d3-selection"));
153
- var d3_selection_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
144
+ var d3_selection_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
154
145
 
155
146
  // esm-externals:d3-brush
156
147
  var d3_brush_exports = {};
157
148
  __export(d3_brush_exports, {
158
149
  default: () => d3_brush_default
159
150
  });
160
- var defaultImport10 = __toESM(require("d3-brush"));
151
+ var defaultImport9 = __toESM(require("d3-brush"));
161
152
  __reExport(d3_brush_exports, require("d3-brush"));
162
- var d3_brush_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
153
+ var d3_brush_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
163
154
 
164
155
  // esm-externals:d3-axis
165
156
  var d3_axis_exports = {};
166
157
  __export(d3_axis_exports, {
167
158
  default: () => d3_axis_default
168
159
  });
169
- var defaultImport11 = __toESM(require("d3-axis"));
160
+ var defaultImport10 = __toESM(require("d3-axis"));
170
161
  __reExport(d3_axis_exports, require("d3-axis"));
171
- var d3_axis_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
162
+ var d3_axis_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
172
163
 
173
164
  // esm-externals:d3-drag
174
165
  var d3_drag_exports = {};
175
166
  __export(d3_drag_exports, {
176
167
  default: () => d3_drag_default
177
168
  });
178
- var defaultImport12 = __toESM(require("d3-drag"));
169
+ var defaultImport11 = __toESM(require("d3-drag"));
179
170
  __reExport(d3_drag_exports, require("d3-drag"));
180
- var d3_drag_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
171
+ var d3_drag_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
181
172
 
182
173
  // esm-externals:chroma-js
183
174
  var chroma_js_exports = {};
184
175
  __export(chroma_js_exports, {
185
176
  default: () => chroma_js_default
186
177
  });
187
- var defaultImport13 = __toESM(require("chroma-js"));
178
+ var defaultImport12 = __toESM(require("chroma-js"));
188
179
  __reExport(chroma_js_exports, require("chroma-js"));
189
- var chroma_js_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
180
+ var chroma_js_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
190
181
 
191
182
  // src/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesCanvas.tsx
192
183
  var ParallelCoordinatesCanvas = (_a) => {
@@ -397,6 +388,10 @@ var ParallelCoordinatesPrompt = ({
397
388
  var ParallelCoordinatesPrompt_default = ParallelCoordinatesPrompt;
398
389
 
399
390
  // src/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.tsx
391
+ var isDataPointActive = (d, yPositionScale, selections) => Array.from(selections).every(([activeKey, [max, min]]) => {
392
+ const newP = yPositionScale[activeKey].ticks ? d[activeKey] : yPositionScale[activeKey](d[activeKey]);
393
+ return newP >= min && newP <= max;
394
+ });
400
395
  var ChartDiv = styled_components_default.div`
401
396
  background-color: ${(props) => props.backgroundColor};
402
397
  width: ${(props) => props.width + props.margin.left + props.margin.right}px;
@@ -550,17 +545,7 @@ var ParallelCoordinatesChart = (_a) => {
550
545
  } else {
551
546
  selections.set(key, [selection[1], selection[0]]);
552
547
  }
553
- const selected = [];
554
- data.forEach((d) => {
555
- const active = Array.from(selections).every(([activeKey, [max, min]]) => {
556
- const newP = yPositionScale[activeKey].ticks ? d[activeKey] : yPositionScale[activeKey](d[activeKey]);
557
- return newP >= min && newP <= max;
558
- });
559
- if (active) {
560
- selected.push(d);
561
- }
562
- });
563
- setSelectedData(selected);
548
+ setSelectedData(data.filter((d) => isDataPointActive(d, yPositionScale, selections)));
564
549
  };
565
550
  brush.on("start", brushStart).on("brush end", brushed);
566
551
  g.append("g").attr("class", "brush").each((_d, i, nodes) => {
@@ -645,29 +630,27 @@ var ParallelCoordinatesChart = (_a) => {
645
630
  var ParallelCoordinatesChart_default = ParallelCoordinatesChart;
646
631
 
647
632
  // src/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.tsx
648
- var PureParallelCoordinates = (_a) => {
649
- var props = __objRest(_a, []);
650
- const {
651
- width,
652
- height,
653
- columns,
654
- fields,
655
- showNullAxis,
656
- lineColor,
657
- backgroundColor,
658
- axisLineHighlightColor,
659
- axisLineColor,
660
- axisTitleColor,
661
- axisLabelColor,
662
- lineOpacity,
663
- filterButtonDisabledColor,
664
- filterButtonActiveColor,
665
- filterTextColor,
666
- truncatedTextColor,
667
- filterSelectionColor,
668
- textShadowColor,
669
- mode
670
- } = props;
633
+ var PureParallelCoordinates = ({
634
+ width = 700,
635
+ height = 400,
636
+ columns = [],
637
+ fields = null,
638
+ showNullAxis = true,
639
+ lineColor = "#7B56DB",
640
+ backgroundColor = "#0b0c0e",
641
+ axisLineHighlightColor = "rgba(255, 255, 255, 0.98)",
642
+ axisLineColor = "rgb(129, 130, 133)",
643
+ axisTitleColor = "rgba(255, 255, 255, 0.7)",
644
+ axisLabelColor = "rgba(255, 255, 255, 0.7)",
645
+ lineOpacity = 0.5,
646
+ filterButtonDisabledColor = "rgba(255, 255, 255, 0.3)",
647
+ filterButtonActiveColor = "#3993FF",
648
+ filterTextColor = "rgba(255, 255, 255, 0.7)",
649
+ truncatedTextColor = "rgba(255, 255, 255, 0.5)",
650
+ filterSelectionColor = "#FFFFFF",
651
+ textShadowColor = "#111215",
652
+ mode
653
+ }) => {
671
654
  const minWidth = 200;
672
655
  const minHeight = 150;
673
656
  if (Number(width) < minWidth || Number(height) < minHeight) {
@@ -733,7 +716,7 @@ var PureParallelCoordinates = (_a) => {
733
716
  showNullAxis,
734
717
  nullOffsetHeight,
735
718
  nullAxisScale,
736
- lineColor: (0, colorUtils_exports.isColor)(lineColor) ? lineColor : PureParallelCoordinates.defaultProps.lineColor,
719
+ lineColor: (0, colorUtils_exports.isColor)(lineColor) ? lineColor : "#7B56DB",
737
720
  lineOpacity,
738
721
  axisLineHighlightColor,
739
722
  axisLineColor,
@@ -750,49 +733,6 @@ var PureParallelCoordinates = (_a) => {
750
733
  }
751
734
  );
752
735
  };
753
- PureParallelCoordinates.propTypes = {
754
- backgroundColor: prop_types_exports.string,
755
- width: prop_types_exports.number,
756
- height: prop_types_exports.number,
757
- fields: prop_types_exports.array,
758
- columns: prop_types_exports.array,
759
- lineColor: prop_types_exports.string,
760
- lineOpacity: prop_types_exports.number,
761
- showNullAxis: prop_types_exports.bool,
762
- axisLineHighlightColor: prop_types_exports.string,
763
- axisLineColor: prop_types_exports.string,
764
- axisTitleColor: prop_types_exports.string,
765
- axisLabelColor: prop_types_exports.string,
766
- filterButtonDisabledColor: prop_types_exports.string,
767
- filterButtonActiveColor: prop_types_exports.string,
768
- filterTextColor: prop_types_exports.string,
769
- filterSelectionColor: prop_types_exports.string,
770
- truncatedCategoriesFlag: prop_types_exports.bool,
771
- truncatedTextColor: prop_types_exports.string,
772
- textShadowColor: prop_types_exports.string,
773
- mode: prop_types_exports.string
774
- };
775
- PureParallelCoordinates.defaultProps = {
776
- backgroundColor: "#0b0c0e",
777
- width: 700,
778
- height: 400,
779
- fields: null,
780
- columns: [],
781
- lineColor: "#7B56DB",
782
- lineOpacity: 0.5,
783
- showNullAxis: true,
784
- axisLineHighlightColor: "rgba(255, 255, 255, 0.98)",
785
- axisLineColor: "rgb(129, 130, 133)",
786
- axisTitleColor: "rgba(255, 255, 255, 0.7)",
787
- axisLabelColor: "rgba(255, 255, 255, 0.7)",
788
- filterButtonDisabledColor: "rgba(255, 255, 255, 0.3)",
789
- filterButtonActiveColor: "#3993FF",
790
- filterTextColor: "rgba(255, 255, 255, 0.7)",
791
- filterSelectionColor: "#FFFFFF",
792
- truncatedTextColor: "rgba(255, 255, 255, 0.5)",
793
- textShadowColor: "#111215",
794
- truncatedCategoriesFlag: false
795
- };
796
736
  var PureParallelCoordinates_default = PureParallelCoordinates;
797
737
 
798
738
  // esm-externals:lodash
@@ -800,99 +740,108 @@ var lodash_exports = {};
800
740
  __export(lodash_exports, {
801
741
  default: () => lodash_default
802
742
  });
803
- var defaultImport14 = __toESM(require("lodash"));
743
+ var defaultImport13 = __toESM(require("lodash"));
804
744
  __reExport(lodash_exports, require("lodash"));
805
- var lodash_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
745
+ var lodash_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
806
746
 
807
747
  // esm-externals:@splunk/themes/getSettingsFromThemedProps
808
748
  var getSettingsFromThemedProps_exports = {};
809
749
  __export(getSettingsFromThemedProps_exports, {
810
750
  default: () => getSettingsFromThemedProps_default
811
751
  });
812
- var defaultImport15 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
752
+ var defaultImport14 = __toESM(require("@splunk/themes/getSettingsFromThemedProps"));
813
753
  __reExport(getSettingsFromThemedProps_exports, require("@splunk/themes/getSettingsFromThemedProps"));
814
- var getSettingsFromThemedProps_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
754
+ var getSettingsFromThemedProps_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
815
755
 
816
756
  // esm-externals:@splunk/visualization-encoding/Options
817
757
  var Options_exports = {};
818
758
  __export(Options_exports, {
819
759
  default: () => Options_default
820
760
  });
821
- var defaultImport16 = __toESM(require("@splunk/visualization-encoding/Options"));
761
+ var defaultImport15 = __toESM(require("@splunk/visualization-encoding/Options"));
822
762
  __reExport(Options_exports, require("@splunk/visualization-encoding/Options"));
823
- var Options_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
763
+ var Options_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
824
764
 
825
765
  // esm-externals:@splunk/visualizations-shared/SanitizeProps
826
766
  var SanitizeProps_exports = {};
827
767
  __export(SanitizeProps_exports, {
828
768
  default: () => SanitizeProps_default
829
769
  });
830
- var defaultImport17 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
770
+ var defaultImport16 = __toESM(require("@splunk/visualizations-shared/SanitizeProps"));
831
771
  __reExport(SanitizeProps_exports, require("@splunk/visualizations-shared/SanitizeProps"));
832
- var SanitizeProps_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
772
+ var SanitizeProps_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
833
773
 
834
774
  // esm-externals:@splunk/visualization-context/TimezoneContext
835
775
  var TimezoneContext_exports = {};
836
776
  __export(TimezoneContext_exports, {
837
777
  default: () => TimezoneContext_default
838
778
  });
839
- var defaultImport18 = __toESM(require("@splunk/visualization-context/TimezoneContext"));
779
+ var defaultImport17 = __toESM(require("@splunk/visualization-context/TimezoneContext"));
840
780
  __reExport(TimezoneContext_exports, require("@splunk/visualization-context/TimezoneContext"));
841
- var TimezoneContext_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
781
+ var TimezoneContext_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
842
782
 
843
783
  // esm-externals:@splunk/moment
844
784
  var moment_exports = {};
845
785
  __export(moment_exports, {
846
786
  default: () => moment_default
847
787
  });
848
- var defaultImport19 = __toESM(require("@splunk/moment"));
788
+ var defaultImport18 = __toESM(require("@splunk/moment"));
849
789
  __reExport(moment_exports, require("@splunk/moment"));
850
- var moment_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
790
+ var moment_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
851
791
 
852
792
  // esm-externals:@splunk/visualization-context/FeatureFlagContext
853
793
  var FeatureFlagContext_exports = {};
854
794
  __export(FeatureFlagContext_exports, {
855
795
  default: () => FeatureFlagContext_default
856
796
  });
857
- var defaultImport20 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
797
+ var defaultImport19 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
858
798
  __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
859
- var FeatureFlagContext_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
799
+ var FeatureFlagContext_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
860
800
 
861
801
  // esm-externals:@splunk/visualizations-shared/hocUtils
862
802
  var hocUtils_exports = {};
863
803
  __export(hocUtils_exports, {
864
804
  default: () => hocUtils_default
865
805
  });
866
- var defaultImport21 = __toESM(require("@splunk/visualizations-shared/hocUtils"));
806
+ var defaultImport20 = __toESM(require("@splunk/visualizations-shared/hocUtils"));
867
807
  __reExport(hocUtils_exports, require("@splunk/visualizations-shared/hocUtils"));
868
- var hocUtils_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
808
+ var hocUtils_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
869
809
 
870
810
  // esm-externals:@splunk/visualizations-shared/JSONSchemaUtils
871
811
  var JSONSchemaUtils_exports = {};
872
812
  __export(JSONSchemaUtils_exports, {
873
813
  default: () => JSONSchemaUtils_default
874
814
  });
875
- var defaultImport22 = __toESM(require("@splunk/visualizations-shared/JSONSchemaUtils"));
815
+ var defaultImport21 = __toESM(require("@splunk/visualizations-shared/JSONSchemaUtils"));
876
816
  __reExport(JSONSchemaUtils_exports, require("@splunk/visualizations-shared/JSONSchemaUtils"));
877
- var JSONSchemaUtils_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
817
+ var JSONSchemaUtils_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
878
818
 
879
819
  // esm-externals:@splunk/async-dynamic-options-evaluator
880
820
  var async_dynamic_options_evaluator_exports = {};
881
821
  __export(async_dynamic_options_evaluator_exports, {
882
822
  default: () => async_dynamic_options_evaluator_default
883
823
  });
884
- var defaultImport23 = __toESM(require("@splunk/async-dynamic-options-evaluator"));
824
+ var defaultImport22 = __toESM(require("@splunk/async-dynamic-options-evaluator"));
885
825
  __reExport(async_dynamic_options_evaluator_exports, require("@splunk/async-dynamic-options-evaluator"));
886
- var async_dynamic_options_evaluator_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
826
+ var async_dynamic_options_evaluator_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
887
827
 
888
828
  // esm-externals:@splunk/ui-utils/id
889
829
  var id_exports = {};
890
830
  __export(id_exports, {
891
831
  default: () => id_default
892
832
  });
893
- var defaultImport24 = __toESM(require("@splunk/ui-utils/id"));
833
+ var defaultImport23 = __toESM(require("@splunk/ui-utils/id"));
894
834
  __reExport(id_exports, require("@splunk/ui-utils/id"));
895
- var id_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
835
+ var id_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
836
+
837
+ // esm-externals:prop-types
838
+ var prop_types_exports = {};
839
+ __export(prop_types_exports, {
840
+ default: () => prop_types_default
841
+ });
842
+ var defaultImport24 = __toESM(require("prop-types"));
843
+ __reExport(prop_types_exports, require("prop-types"));
844
+ var prop_types_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
896
845
 
897
846
  // src/common/interfaces/VizActionHandler.ts
898
847
  var DefaultVizActionHandler = class {
@@ -1157,7 +1106,7 @@ var Cover = styled_components_default.div`
1157
1106
  bottom: 0;
1158
1107
  `;
1159
1108
  var Blocker = styled_components_default.div.attrs({
1160
- "data-splunk-visualization-version": "28.3.0 - 843e0f60b"
1109
+ "data-splunk-visualization-version": "28.5.0 - b192418b7"
1161
1110
  })`
1162
1111
  position: relative;
1163
1112
  width: 100%;
@@ -1247,7 +1196,7 @@ var withFixedSizeContainer = (Viz) => {
1247
1196
  FixSizeItem,
1248
1197
  {
1249
1198
  "data-test": "fix-size-item",
1250
- "data-splunk-visualization-version": "28.3.0 - 843e0f60b",
1199
+ "data-splunk-visualization-version": "28.5.0 - b192418b7",
1251
1200
  width,
1252
1201
  height,
1253
1202
  backgroundColor
@@ -1343,6 +1292,7 @@ __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUti
1343
1292
  var numberUtils_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1344
1293
 
1345
1294
  // src/common/utils/dataUtils.ts
1295
+ var getFieldName = (field) => typeof field === "string" ? field : field.name;
1346
1296
  var largestTriangleThreeBuckets = (data, threshold, preferredDownsampleIndices) => {
1347
1297
  const dataLength = data.length;
1348
1298
  const downsampledIndices = [];
@@ -1459,9 +1409,9 @@ var tryToCoerceAllDisplayedFields = (ds, xField, yFields, fieldTypes, options) =
1459
1409
  let xColumn = [];
1460
1410
  const yColumns = [];
1461
1411
  const canDownsample = !ds.data.fields.some((field, index) => {
1462
- var _a, _b;
1463
- const fieldName = (_a = field.name) != null ? _a : field;
1464
- const fieldType = (_b = fieldTypes[index]) != null ? _b : "unknown";
1412
+ var _a;
1413
+ const fieldName = getFieldName(field);
1414
+ const fieldType = (_a = fieldTypes[index]) != null ? _a : "unknown";
1465
1415
  const column = ds.data.columns[index];
1466
1416
  let hasDisplayedColumnThatCantBeDownsampled = false;
1467
1417
  if (fieldName === xField) {
@@ -1814,6 +1764,16 @@ var triangleEventAnnotationRenderer = ({
1814
1764
  eventColor: eventWithColor.color
1815
1765
  });
1816
1766
  };
1767
+ var shouldEnableSearchZoom = (eventHandlers = [], xField = "") => {
1768
+ const rangeSelectEventHandler = eventHandlers.find(
1769
+ (eventHandler) => {
1770
+ var _a;
1771
+ return (_a = eventHandler.options.events) == null ? void 0 : _a.includes("range.select");
1772
+ }
1773
+ );
1774
+ const xAxisIsTime = xField === "_time";
1775
+ return !!rangeSelectEventHandler && xAxisIsTime;
1776
+ };
1817
1777
  var canvasSupportedTimeSeriesCharts = ["splunk.line"];
1818
1778
  var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
1819
1779
  return canvasSupportedTimeSeriesCharts.indexOf(vizConfigKey) > -1;
@@ -1834,17 +1794,34 @@ var filterChartDataFromInternalFields = (chartData) => {
1834
1794
  var convert2DArrayToNumbers = (arr) => {
1835
1795
  return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
1836
1796
  };
1837
- var SideLegendWidth = 75;
1838
- var commonLegendProps = { center: true, fontSize: 12, largerTiles: true, hideSeriesValue: true };
1797
+ var parseAxisValue = (val) => {
1798
+ if (val === void 0 || val === null || val === "auto" || val === "") {
1799
+ return void 0;
1800
+ }
1801
+ const num = typeof val === "number" ? val : Number.parseFloat(val);
1802
+ return Number.isNaN(num) ? void 0 : num;
1803
+ };
1804
+ var parseXAxisLineVisibility = (visibility) => {
1805
+ if (visibility === "hide") return false;
1806
+ if (visibility === "show") return true;
1807
+ return void 0;
1808
+ };
1839
1809
  var getLegend = (props) => {
1840
1810
  const legendPlacement = props == null ? void 0 : props.legendDisplay;
1811
+ const { isSeriesCompare, legendTruncation } = props;
1812
+ const commonLegendProps = {
1813
+ center: true,
1814
+ fontSize: 12,
1815
+ largerTiles: true,
1816
+ hideSeriesValue: !isSeriesCompare,
1817
+ // Show values if in seriesCompare mode
1818
+ legendTruncation
1819
+ };
1841
1820
  switch (legendPlacement) {
1842
1821
  case "off":
1843
1822
  return false;
1844
1823
  case "left":
1845
- return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
1846
- width: SideLegendWidth
1847
- }, commonLegendProps));
1824
+ return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({}, commonLegendProps));
1848
1825
  case "bottom":
1849
1826
  return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
1850
1827
  wrap: true
@@ -1854,9 +1831,7 @@ var getLegend = (props) => {
1854
1831
  wrap: true
1855
1832
  }, commonLegendProps));
1856
1833
  default:
1857
- return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
1858
- width: SideLegendWidth
1859
- }, commonLegendProps));
1834
+ return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
1860
1835
  }
1861
1836
  };
1862
1837
  var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
@@ -1891,22 +1866,25 @@ var ellipsisAxisTitle = (axisTitle, containerSpacing, fontSize = 12) => {
1891
1866
  const end = axisTitle.slice(-halfChars);
1892
1867
  return `${start}...${end}`;
1893
1868
  };
1894
- var getFieldName = (field) => {
1869
+ var getFieldName2 = (field) => {
1895
1870
  const fieldName = typeof field === "object" ? field == null ? void 0 : field.name : field;
1896
1871
  return fieldName;
1897
1872
  };
1898
1873
  var getFieldNames = (fields) => {
1899
- return fields.map((field) => getFieldName(field));
1874
+ return fields.map((field) => getFieldName2(field));
1900
1875
  };
1901
- var getXScaleConfig = (label, xAxisLabelVisibility) => {
1876
+ var getXScaleConfig = (label, xAxisLabelVisibility, xAxisLabelRotation) => {
1902
1877
  const xConfig = { x: {} };
1903
1878
  xConfig.x.label = label;
1904
1879
  if (xAxisLabelVisibility === "hide") {
1905
1880
  xConfig.x.hideLabels = true;
1906
1881
  }
1882
+ if (xAxisLabelRotation !== void 0) {
1883
+ xConfig.x.labelRotation = xAxisLabelRotation;
1884
+ }
1907
1885
  return xConfig;
1908
1886
  };
1909
- var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility) => {
1887
+ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility, yAxisMin, yAxisMax) => {
1910
1888
  const scaleType = yAxisScale != null ? yAxisScale : "linear";
1911
1889
  const yConfig = { y: {} };
1912
1890
  yConfig.y.label = label;
@@ -1914,34 +1892,46 @@ var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale, yAxisLabelVisibilit
1914
1892
  if (yAxisAbbreviation !== "none") {
1915
1893
  yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
1916
1894
  }
1917
- if (yAxisAbbreviation === "none") {
1918
- yConfig.y.width = 55;
1919
- } else {
1895
+ if (yAxisAbbreviation !== "none") {
1920
1896
  yConfig.y.width = label && label.length > 0 ? 30 : 10;
1921
1897
  }
1922
1898
  if (yAxisLabelVisibility === "hide") {
1923
1899
  yConfig.y.hideLabels = true;
1924
1900
  }
1901
+ if (yAxisMin !== void 0 || yAxisMax !== void 0) {
1902
+ yConfig.y.range = (u, dataMin, dataMax) => {
1903
+ const min = yAxisMin != null ? yAxisMin : dataMin;
1904
+ const max = yAxisMax != null ? yAxisMax : dataMax;
1905
+ return [min, max];
1906
+ };
1907
+ }
1925
1908
  return yConfig;
1926
1909
  };
1927
- var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInteger, y2AxisLabelVisibility) => {
1910
+ var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInteger, y2AxisLabelVisibility, y2AxisMin, y2AxisMax) => {
1928
1911
  const y2Config = { y2: {} };
1929
1912
  const scaleType = axisScale != null ? axisScale : "linear";
1930
1913
  y2Config.y2.label = label;
1931
1914
  y2Config.y2.side = "right";
1932
- y2Config.y2.showGrid = false;
1933
1915
  y2Config.y2.type = scaleType;
1934
1916
  if (axisAbbreviation !== "none") {
1935
1917
  y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
1918
+ y2Config.y2.width = label && label.length > 0 ? 50 : 10;
1936
1919
  } else if (roundAxisLabelsToInteger) {
1937
1920
  y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
1938
1921
  }
1939
1922
  if (y2AxisLabelVisibility === "hide") {
1940
1923
  y2Config.y2.hideLabels = true;
1941
1924
  }
1925
+ if (y2AxisMin !== void 0 || y2AxisMax !== void 0) {
1926
+ y2Config.y2.range = (u, dataMin, dataMax) => {
1927
+ const min = y2AxisMin != null ? y2AxisMin : dataMin;
1928
+ const max = y2AxisMax != null ? y2AxisMax : dataMax;
1929
+ return [min, max];
1930
+ };
1931
+ }
1942
1932
  return y2Config;
1943
1933
  };
1944
- var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay) => {
1934
+ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay, lineDashStyle, lineDashStylesByField, stepPosition, stepPositionsByField) => {
1945
1935
  const seriesConfig = {};
1946
1936
  let spanGaps;
1947
1937
  let replaceNullsWithZero;
@@ -1968,6 +1958,8 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
1968
1958
  );
1969
1959
  if (shouldAssignToY2) {
1970
1960
  seriesConfig[field].overrides.scale = "y2";
1961
+ } else {
1962
+ seriesConfig[field].overrides.scale = "y";
1971
1963
  }
1972
1964
  }
1973
1965
  if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
@@ -1976,12 +1968,101 @@ var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled
1976
1968
  if (markerDisplay !== void 0) {
1977
1969
  seriesConfig[field].markerDisplay = markerDisplay;
1978
1970
  }
1971
+ const fieldDashStyle = (lineDashStylesByField == null ? void 0 : lineDashStylesByField[field]) || lineDashStyle;
1972
+ if (fieldDashStyle) {
1973
+ seriesConfig[field].lineDashStyle = fieldDashStyle;
1974
+ }
1975
+ const hasFieldStepPosition = Object.hasOwn(stepPositionsByField || {}, field);
1976
+ const fieldStepPosition = hasFieldStepPosition ? stepPositionsByField == null ? void 0 : stepPositionsByField[field] : stepPosition;
1977
+ if (fieldStepPosition && fieldStepPosition !== "off") {
1978
+ seriesConfig[field].stepPosition = fieldStepPosition;
1979
+ }
1979
1980
  if (replaceNullsWithZero !== void 0) {
1980
1981
  seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
1981
1982
  }
1982
1983
  });
1983
1984
  return seriesConfig;
1984
1985
  };
1986
+ var findRangeIndices = (xData, startValue, endValue) => {
1987
+ let startXIndex = -1;
1988
+ let endXIndex = -1;
1989
+ const xDataEpoch = xData.map((val) => {
1990
+ if (typeof val === "string") {
1991
+ return new Date(val).getTime() / 1e3;
1992
+ }
1993
+ return val;
1994
+ });
1995
+ for (let i = 0; i < xDataEpoch.length; i += 1) {
1996
+ if (xDataEpoch[i] >= startValue) {
1997
+ startXIndex = i;
1998
+ break;
1999
+ }
2000
+ }
2001
+ if (startXIndex === -1 && xDataEpoch.length > 0) {
2002
+ startXIndex = xDataEpoch.length - 1;
2003
+ }
2004
+ for (let i = xDataEpoch.length - 1; i >= 0; i -= 1) {
2005
+ if (xDataEpoch[i] <= endValue) {
2006
+ endXIndex = i;
2007
+ break;
2008
+ }
2009
+ }
2010
+ if (endXIndex === -1 && xDataEpoch.length > 0) {
2011
+ endXIndex = 0;
2012
+ }
2013
+ return { startXIndex, endXIndex };
2014
+ };
2015
+
2016
+ // esm-externals:@splunk/visualization-schemas
2017
+ var visualization_schemas_exports = {};
2018
+ __export(visualization_schemas_exports, {
2019
+ default: () => visualization_schemas_default
2020
+ });
2021
+ var defaultImport33 = __toESM(require("@splunk/visualization-schemas"));
2022
+ __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
2023
+ var visualization_schemas_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
2024
+
2025
+ // src/common/hooks/useTrellisEnabled.ts
2026
+ var useTrellisFeatureFlagOn = () => {
2027
+ const context = (0, react_exports.useContext)(FeatureFlagContext_default);
2028
+ return Boolean(context == null ? void 0 : context.visualizations_enableTrellis);
2029
+ };
2030
+ var useTrellisEnabled = (layoutType = visualization_schemas_exports.LAYOUT_TYPE.Off) => {
2031
+ const trellisFeatureEnabled = useTrellisFeatureFlagOn();
2032
+ return trellisFeatureEnabled && layoutType === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
2033
+ };
2034
+
2035
+ // src/common/components/TrellisTitle.tsx
2036
+ var TRELLIS_TITLE_HEIGHT = 28;
2037
+ var TrellisTitleText = styled_components_default.div`
2038
+ margin-left: 10px;
2039
+ margin-right: 10px;
2040
+ padding-top: 8px;
2041
+ text-overflow: ellipsis;
2042
+ white-space: nowrap;
2043
+ overflow: hidden;
2044
+ `;
2045
+ var TrellisTitleDiv = styled_components_default.div`
2046
+ height: ${TRELLIS_TITLE_HEIGHT}px;
2047
+ font-size: 14px;
2048
+ font-weight: 700;
2049
+ color: ${(props) => props.fontColor};
2050
+ background-color: ${(props) => props.backgroundColor};
2051
+ box-shadow: 0 1px ${(props) => props.backgroundColor}; // this is added to avoid a 1px gap between title and viz divs that showed up intermittently because of pixel rounding error in chrome.
2052
+ `;
2053
+ var TrellisTitle = (props) => {
2054
+ const titleText = String(props.trellisKey).toString();
2055
+ return /* @__PURE__ */ react_exports.createElement(
2056
+ TrellisTitleDiv,
2057
+ {
2058
+ fontColor: props.fontColor,
2059
+ backgroundColor: props.backgroundColor,
2060
+ "data-test": "trellis-title",
2061
+ title: titleText
2062
+ },
2063
+ /* @__PURE__ */ react_exports.createElement(TrellisTitleText, null, titleText)
2064
+ );
2065
+ };
1985
2066
 
1986
2067
  // src/common/TimeSeriesChartWrapper.tsx
1987
2068
  var TimeSeriesChartContainer = styled_components_default.div`
@@ -1992,38 +2073,123 @@ var TimeSeriesChartContainer = styled_components_default.div`
1992
2073
  position: absolute !important; // This is needed for canvas element export pdf/png to work correctly
1993
2074
  }
1994
2075
  `;
1995
- var handleClick = (chartEvent, onClick) => {
2076
+ var appendTrellisToPayload = (payload, trellisKey, trellisSplitBy) => {
2077
+ const result = __spreadValues({}, payload);
2078
+ if (trellisSplitBy) {
2079
+ result["trellis.name"] = trellisSplitBy;
2080
+ }
2081
+ if (trellisKey) {
2082
+ result["trellis.value"] = trellisKey;
2083
+ }
2084
+ return result;
2085
+ };
2086
+ var hasMouseoverPayloadChanged = (currentPayload, previousPayload) => {
2087
+ if (!previousPayload) {
2088
+ return true;
2089
+ }
2090
+ if (currentPayload.index !== previousPayload.index) {
2091
+ return true;
2092
+ }
2093
+ if (currentPayload.seriesIndex !== previousPayload.seriesIndex) {
2094
+ return true;
2095
+ }
2096
+ if (currentPayload["trellis.name"] !== previousPayload["trellis.name"]) {
2097
+ return true;
2098
+ }
2099
+ if (currentPayload["trellis.value"] !== previousPayload["trellis.value"]) {
2100
+ return true;
2101
+ }
2102
+ return false;
2103
+ };
2104
+ var handleClick = (chartEvent, onClick, trellisKey, trellisSplitBy) => {
1996
2105
  const payload = __spreadProps(__spreadValues({}, (0, lodash_exports.pick)(chartEvent, "value", "seriesKey")), {
1997
2106
  name: chartEvent.seriesKey
1998
2107
  });
1999
2108
  delete payload.seriesKey;
2000
2109
  if (chartEvent.rowContext) {
2001
- Object.keys(chartEvent.rowContext).forEach((fieldName) => {
2002
- payload[`row.${fieldName}.value`] = chartEvent.rowContext[fieldName];
2003
- });
2110
+ Object.assign(
2111
+ payload,
2112
+ Object.keys(chartEvent.rowContext).reduce((acc, fieldName) => {
2113
+ acc[`row.${fieldName}.value`] = chartEvent.rowContext[fieldName];
2114
+ return acc;
2115
+ }, {})
2116
+ );
2004
2117
  }
2118
+ const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
2005
2119
  if (onClick) {
2006
2120
  onClick({
2007
2121
  type: "point.click",
2008
2122
  originalEvent: chartEvent,
2009
- payload
2123
+ payload: updatedPayload
2010
2124
  });
2011
2125
  }
2012
2126
  };
2013
- var handleLegendClick = (chartEvent, onClick) => {
2127
+ var handleLegendClick = (chartEvent, onClick, trellisKey, trellisSplitBy) => {
2014
2128
  const payload = {
2015
2129
  name: chartEvent
2016
2130
  };
2131
+ const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
2017
2132
  if (onClick) {
2018
2133
  onClick({
2019
2134
  type: "legend.click",
2020
2135
  originalEvent: chartEvent,
2021
- payload
2136
+ payload: updatedPayload
2022
2137
  });
2023
2138
  }
2024
2139
  };
2140
+ var handleRangeSelection = (rangeEvent, onSelect, chartData, trellisKey, trellisSplitBy) => {
2141
+ var _a;
2142
+ if (!rangeEvent) {
2143
+ return;
2144
+ }
2145
+ const xData = ((_a = chartData == null ? void 0 : chartData.columns) == null ? void 0 : _a[0]) || [];
2146
+ const { startXIndex, endXIndex } = findRangeIndices(xData, rangeEvent.start, rangeEvent.end);
2147
+ const payload = {
2148
+ startXIndex,
2149
+ startXValue: rangeEvent.start,
2150
+ endXIndex,
2151
+ endXValue: rangeEvent.end
2152
+ };
2153
+ const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
2154
+ if (onSelect) {
2155
+ onSelect({
2156
+ type: "range.selectBeforeZoom",
2157
+ originalEvent: rangeEvent,
2158
+ payload: updatedPayload
2159
+ });
2160
+ }
2161
+ };
2162
+ var handleRangeZoom = (rangeEvent, onSelect, chartData, trellisKey, trellisSplitBy) => {
2163
+ var _a;
2164
+ const xData = ((_a = chartData == null ? void 0 : chartData.columns) == null ? void 0 : _a[0]) || [];
2165
+ const { startXIndex, endXIndex } = findRangeIndices(xData, rangeEvent.start, rangeEvent.end);
2166
+ const payload = {
2167
+ startXIndex,
2168
+ startXValue: rangeEvent.start,
2169
+ endXIndex,
2170
+ endXValue: rangeEvent.end
2171
+ };
2172
+ const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
2173
+ if (onSelect) {
2174
+ onSelect({
2175
+ type: "range.select",
2176
+ originalEvent: rangeEvent,
2177
+ payload: updatedPayload
2178
+ });
2179
+ }
2180
+ };
2181
+ var parseArrayOption = (value) => {
2182
+ if (Array.isArray(value)) {
2183
+ return value;
2184
+ }
2185
+ if (value) {
2186
+ return JSON.parse(value);
2187
+ }
2188
+ return void 0;
2189
+ };
2025
2190
  var TimeSeriesChartWrapper = (props) => {
2026
- const {
2191
+ var _b, _c, _d;
2192
+ const _a = props, {
2027
2193
  width,
2028
2194
  height,
2029
2195
  chartData,
@@ -2036,12 +2202,57 @@ var TimeSeriesChartWrapper = (props) => {
2036
2202
  markerDisplay,
2037
2203
  onClick,
2038
2204
  onPointMouseOver,
2039
- onPointMouseOut
2040
- } = props;
2041
- const {
2205
+ onPointMouseOut,
2206
+ onSelect,
2207
+ splitByLayout,
2208
+ trellisKey,
2209
+ trellisSplitBy,
2042
2210
  backgroundColor,
2211
+ defaultFontColor,
2212
+ additionalTooltipValues,
2213
+ xAxisLineVisibility: xAxisLineVisibility,
2214
+ yAxisLineVisibility,
2215
+ y2AxisLineVisibility,
2216
+ showYAxisWithZero: showYAxisWithZeroFromProps,
2217
+ showY2AxisWithZero: showY2AxisWithZeroFromProps
2218
+ } = _a, otherOptions = __objRest(_a, [
2219
+ "width",
2220
+ "height",
2221
+ "chartData",
2222
+ "options",
2223
+ "userLocale",
2224
+ "annotationX",
2225
+ "annotationLabel",
2226
+ "annotationColor",
2227
+ "legendDisplay",
2228
+ "markerDisplay",
2229
+ "onClick",
2230
+ "onPointMouseOver",
2231
+ "onPointMouseOut",
2232
+ "onSelect",
2233
+ "splitByLayout",
2234
+ "trellisKey",
2235
+ "trellisSplitBy",
2236
+ "backgroundColor",
2237
+ "defaultFontColor",
2238
+ "additionalTooltipValues",
2239
+ // Extract axis line visibility options from props
2240
+ "xAxisLineVisibility",
2241
+ "yAxisLineVisibility",
2242
+ "y2AxisLineVisibility",
2243
+ // Extract showYAxisWithZero directly from props for accelerated render mode
2244
+ "showYAxisWithZero",
2245
+ "showY2AxisWithZero"
2246
+ ]);
2247
+ const { eventHandlers, xField: xFieldFromProps } = otherOptions;
2248
+ const trellisEnabled = useTrellisEnabled(splitByLayout);
2249
+ const {
2250
+ backgroundColor: bgColorFromOptions,
2043
2251
  seriesColors: seriesColorsStr,
2044
2252
  fieldColors,
2253
+ legendLabels: legendLabelsStr,
2254
+ legendMode,
2255
+ legendTruncation,
2045
2256
  "axisTitleX.text": xAxisTitleText,
2046
2257
  "axisTitleY.text": yAxisTitleText,
2047
2258
  "axisTitleY2.text": y2AxisTitleText,
@@ -2049,8 +2260,12 @@ var TimeSeriesChartWrapper = (props) => {
2049
2260
  "axisTitleY.visibility": yAxisTitleVisibility,
2050
2261
  "axisTitleY2.visibility": y2AxisTitleVisibility,
2051
2262
  "axisLabelsX.majorLabelVisibility": xAxisLabelVisibility,
2263
+ "axisLabelsX.majorLabelStyle.rotation": xAxisLabelRotation,
2264
+ "axisLabelsX.maxLabelParts": xAxisMaxLabelParts,
2052
2265
  "axisLabelsY.majorLabelVisibility": yAxisLabelVisibility,
2266
+ "axisLabelsY.majorUnit": yAxisMajorUnitFromSimpleXML,
2053
2267
  "axisLabelsY2.majorLabelVisibility": y2AxisLabelVisibility,
2268
+ "axisLabelsY2.majorUnit": y2AxisMajorUnitFromSimpleXML,
2054
2269
  "axisY.abbreviation": yAxisAbbreviation,
2055
2270
  "axisY.scale": yAxisScale,
2056
2271
  "axisY2.abbreviation": y2AxisAbbreviation,
@@ -2060,10 +2275,73 @@ var TimeSeriesChartWrapper = (props) => {
2060
2275
  "axisLabelsY2.integerUnits": y2IntegerUnits,
2061
2276
  "chart.overlayFields": overlayFieldsStr,
2062
2277
  "chart.nullValueMode": nullValueMode,
2063
- lineWidth
2278
+ "chart.showDataLabels": showDataLabels,
2279
+ lineWidth,
2280
+ lineDashStyle,
2281
+ fieldDashStyles: lineDashStylesByFieldStr,
2282
+ stepPosition,
2283
+ fieldStepPositions: stepPositionsByFieldStr,
2284
+ yAxisMin: yAxisMinRaw,
2285
+ yAxisMax: yAxisMaxRaw,
2286
+ y2AxisMin: y2AxisMinRaw,
2287
+ y2AxisMax: y2AxisMaxRaw,
2288
+ showXMajorGridLines,
2289
+ showYMajorGridLines,
2290
+ showY2MajorGridLines,
2291
+ showYMinorGridLines,
2292
+ showY2MinorGridLines,
2293
+ showLineSmoothing,
2294
+ xAxisMajorTickVisibility,
2295
+ xAxisMajorTickSize,
2296
+ yAxisMajorTickVisibility,
2297
+ y2AxisMajorTickVisibility,
2298
+ yAxisMajorTickSize,
2299
+ y2AxisMajorTickSize,
2300
+ yAxisMajorTickInterval,
2301
+ y2AxisMajorTickInterval,
2302
+ yAxisMinorTickVisibility,
2303
+ y2AxisMinorTickVisibility,
2304
+ yAxisMinorTickSize,
2305
+ y2AxisMinorTickSize,
2306
+ showYAxisWithZero: showYAxisWithZeroFromOptions,
2307
+ showY2AxisWithZero: showY2AxisWithZeroFromOptions
2064
2308
  } = options;
2309
+ const dataValuesDisplay = showDataLabels === "none" ? "off" : showDataLabels;
2310
+ const showYAxisWithZero = showYAxisWithZeroFromProps != null ? showYAxisWithZeroFromProps : showYAxisWithZeroFromOptions;
2311
+ const showY2AxisWithZero = showY2AxisWithZeroFromProps != null ? showY2AxisWithZeroFromProps : showY2AxisWithZeroFromOptions;
2312
+ const showXMajorTicks = xAxisMajorTickVisibility !== "hide";
2313
+ const showYMajorTicks = yAxisMajorTickVisibility === "show";
2314
+ const showY2MajorTicks = y2AxisMajorTickVisibility === "show";
2315
+ const showYMinorTicks = yAxisMinorTickVisibility === "show";
2316
+ const showY2MinorTicks = y2AxisMinorTickVisibility === "show";
2317
+ const showXAxisLine = parseXAxisLineVisibility(xAxisLineVisibility);
2318
+ const showYAxisLine = yAxisLineVisibility === "show";
2319
+ const showY2AxisLine = y2AxisLineVisibility === "show";
2320
+ const yAxisMin = parseAxisValue(yAxisMinRaw);
2321
+ const yAxisMax = parseAxisValue(yAxisMaxRaw);
2322
+ const y2AxisMin = parseAxisValue(y2AxisMinRaw);
2323
+ const y2AxisMax = parseAxisValue(y2AxisMaxRaw);
2324
+ const parseTickInterval = (simpleXMLValue, canvasValue) => {
2325
+ if (simpleXMLValue) return Number(simpleXMLValue);
2326
+ if (canvasValue) return Number(canvasValue);
2327
+ return void 0;
2328
+ };
2329
+ const yAxisMajorTickIntervalNum = parseTickInterval(yAxisMajorUnitFromSimpleXML, yAxisMajorTickInterval);
2330
+ const y2AxisMajorTickIntervalNum = parseTickInterval(
2331
+ y2AxisMajorUnitFromSimpleXML,
2332
+ y2AxisMajorTickInterval
2333
+ );
2334
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
2335
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
2336
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
2337
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
2338
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
2065
2339
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
2066
2340
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
2341
+ const lineDashStylesByField = lineDashStylesByFieldStr ? JSON.parse(lineDashStylesByFieldStr) : void 0;
2342
+ const stepPositionsByField = stepPositionsByFieldStr ? JSON.parse(stepPositionsByFieldStr) : void 0;
2343
+ const legendLabels = parseArrayOption(legendLabelsStr);
2344
+ const bgColor = backgroundColor || bgColorFromOptions;
2067
2345
  const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
2068
2346
  const [containerHeight, setContainerHeight] = react_exports.useState(Number(props.height));
2069
2347
  const cachedHandleResize = react_exports.useCallback((w, h) => {
@@ -2074,31 +2352,64 @@ var TimeSeriesChartWrapper = (props) => {
2074
2352
  fields: chartData.fields,
2075
2353
  columns: chartData.seriesList
2076
2354
  });
2077
- const xField = getFieldName(filteredChartData.fields[0]);
2355
+ const xField = getFieldName2(filteredChartData.fields[0]);
2078
2356
  const yFields = getFieldNames(
2079
2357
  filteredChartData.fields.length > 1 ? filteredChartData.fields.slice(1) : []
2080
2358
  );
2081
- const y2Fields = y2FieldsStr ? y2FieldsStr.split(",").map((f) => f.trim()) : [];
2082
- const overlayFields = overlayFieldsStr ? overlayFieldsStr.split(",").map((f) => f.trim()) : [];
2359
+ const y2Fields = (0, react_exports.useMemo)(
2360
+ () => y2FieldsStr ? y2FieldsStr.split(",").map((f) => f.trim()) : [],
2361
+ [y2FieldsStr]
2362
+ );
2363
+ const overlayFields = (0, react_exports.useMemo)(
2364
+ () => overlayFieldsStr ? overlayFieldsStr.split(",").map((f) => f.trim()) : [],
2365
+ [overlayFieldsStr]
2366
+ );
2083
2367
  let xAxisTitle = getComputedAxisTitles(xAxisTitleText, [xField], xAxisTitleVisibility);
2084
2368
  xAxisTitle = ellipsisAxisTitle(xAxisTitle, containerWidth);
2085
- let yAxisTitle = getComputedAxisTitles(yAxisTitleText, yFields, yAxisTitleVisibility);
2369
+ const yFieldsForTitle = y2Enabled ? yFields.filter((field) => !y2Fields.includes(field)) : yFields;
2370
+ let yAxisTitle = getComputedAxisTitles(yAxisTitleText, yFieldsForTitle, yAxisTitleVisibility);
2086
2371
  yAxisTitle = ellipsisAxisTitle(yAxisTitle, containerHeight);
2087
2372
  const fieldsForY2Axis = y2Fields.length > 0 ? y2Fields : overlayFields;
2088
2373
  let y2AxisTitle = getComputedAxisTitles(y2AxisTitleText, fieldsForY2Axis, y2AxisTitleVisibility);
2089
2374
  y2AxisTitle = ellipsisAxisTitle(y2AxisTitle, containerHeight);
2090
- const xScaleConfig = getXScaleConfig(xAxisTitle, xAxisLabelVisibility);
2091
- const yScaleConfig = getYScaleConfig(yAxisTitle, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility);
2092
- let y2ScaleConfig = {};
2093
- if (y2Enabled) {
2094
- y2ScaleConfig = getY2ScaleConfig(
2095
- y2AxisTitle,
2096
- y2AxisAbbreviation,
2097
- y2AxisScale,
2098
- y2IntegerUnits,
2099
- y2AxisLabelVisibility
2100
- );
2101
- }
2375
+ const xScaleConfig = (0, react_exports.useMemo)(
2376
+ () => getXScaleConfig(xAxisTitle, xAxisLabelVisibility, xAxisLabelRotation),
2377
+ [xAxisTitle, xAxisLabelVisibility, xAxisLabelRotation]
2378
+ );
2379
+ const yScaleConfig = (0, react_exports.useMemo)(
2380
+ () => getYScaleConfig(
2381
+ yAxisTitle,
2382
+ yAxisAbbreviation,
2383
+ yAxisScale,
2384
+ yAxisLabelVisibility,
2385
+ yAxisMin,
2386
+ yAxisMax
2387
+ ),
2388
+ [yAxisTitle, yAxisAbbreviation, yAxisScale, yAxisLabelVisibility, yAxisMin, yAxisMax]
2389
+ );
2390
+ const y2ScaleConfig = (0, react_exports.useMemo)(() => {
2391
+ if (y2Enabled) {
2392
+ return getY2ScaleConfig(
2393
+ y2AxisTitle,
2394
+ y2AxisAbbreviation,
2395
+ y2AxisScale,
2396
+ y2IntegerUnits,
2397
+ y2AxisLabelVisibility,
2398
+ y2AxisMin,
2399
+ y2AxisMax
2400
+ );
2401
+ }
2402
+ return {};
2403
+ }, [
2404
+ y2Enabled,
2405
+ y2AxisTitle,
2406
+ y2AxisAbbreviation,
2407
+ y2AxisScale,
2408
+ y2IntegerUnits,
2409
+ y2AxisLabelVisibility,
2410
+ y2AxisMin,
2411
+ y2AxisMax
2412
+ ]);
2102
2413
  const uplotContainerElement = (0, react_exports.useRef)(null);
2103
2414
  const seriesDataFormatted = [
2104
2415
  filteredChartData.columns[0],
@@ -2114,9 +2425,25 @@ var TimeSeriesChartWrapper = (props) => {
2114
2425
  overlayFields,
2115
2426
  y2Enabled,
2116
2427
  nullValueMode,
2117
- markerDisplay
2428
+ markerDisplay,
2429
+ lineDashStyle,
2430
+ lineDashStylesByField,
2431
+ stepPosition,
2432
+ stepPositionsByField
2118
2433
  ),
2119
- [yFields, y2Fields, lineWidth, overlayFields, y2Enabled, nullValueMode, markerDisplay]
2434
+ [
2435
+ yFields,
2436
+ y2Fields,
2437
+ lineWidth,
2438
+ overlayFields,
2439
+ y2Enabled,
2440
+ nullValueMode,
2441
+ markerDisplay,
2442
+ lineDashStyle,
2443
+ lineDashStylesByField,
2444
+ stepPosition,
2445
+ stepPositionsByField
2446
+ ]
2120
2447
  );
2121
2448
  const chartingEventAnnotations = (0, react_exports.useMemo)(
2122
2449
  () => getAnnotationsForCanvas({
@@ -2130,25 +2457,59 @@ var TimeSeriesChartWrapper = (props) => {
2130
2457
  () => __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig),
2131
2458
  [xScaleConfig, yScaleConfig, y2ScaleConfig]
2132
2459
  );
2133
- const legend = (0, react_exports.useMemo)(() => getLegend({ legendDisplay }), [legendDisplay]);
2460
+ const isSeriesCompare = legendMode === "seriesCompare";
2461
+ const legend = (0, react_exports.useMemo)(
2462
+ () => getLegend({
2463
+ legendDisplay: isSeriesCompare && legendDisplay !== "off" ? "right" : legendDisplay,
2464
+ isSeriesCompare,
2465
+ legendTruncation
2466
+ }),
2467
+ [legendDisplay, isSeriesCompare, legendTruncation]
2468
+ );
2134
2469
  const handleChartClick = react_exports.useCallback(
2135
2470
  (event) => {
2136
2471
  if (onClick) {
2137
- handleClick(event, onClick);
2472
+ handleClick(event, onClick, trellisKey, trellisSplitBy);
2138
2473
  }
2139
2474
  },
2140
- [onClick]
2475
+ [onClick, trellisKey, trellisSplitBy]
2141
2476
  );
2142
2477
  const handleChartLegendClick = react_exports.useCallback(
2143
2478
  (event) => {
2144
2479
  if (onClick) {
2145
- handleLegendClick(event, onClick);
2480
+ handleLegendClick(event, onClick, trellisKey, trellisSplitBy);
2481
+ }
2482
+ },
2483
+ [onClick, trellisKey, trellisSplitBy]
2484
+ );
2485
+ const handleChartRangeSelection = react_exports.useCallback(
2486
+ (range2) => {
2487
+ if (onSelect) {
2488
+ handleRangeSelection(range2, onSelect, chartData, trellisKey, trellisSplitBy);
2146
2489
  }
2147
2490
  },
2148
- [onClick]
2491
+ [onSelect, chartData, trellisKey, trellisSplitBy]
2492
+ );
2493
+ const handleChartRangeZoom = react_exports.useCallback(
2494
+ (range2) => {
2495
+ if (onSelect) {
2496
+ handleRangeZoom(range2, onSelect, chartData, trellisKey, trellisSplitBy);
2497
+ }
2498
+ },
2499
+ [onSelect, chartData, trellisKey, trellisSplitBy]
2500
+ );
2501
+ const xFieldToUse = xFieldFromProps || xField;
2502
+ const enableSearchZoom = react_exports.useMemo(
2503
+ () => shouldEnableSearchZoom(eventHandlers, xFieldToUse),
2504
+ [eventHandlers, xFieldToUse]
2149
2505
  );
2150
2506
  const lastPayloadRef = react_exports.useRef(null);
2151
2507
  const lastOriginalEventRef = react_exports.useRef(null);
2508
+ const previousMouseoverPayloadRef = react_exports.useRef(null);
2509
+ const additionalTooltipValuesRef = react_exports.useRef(additionalTooltipValues);
2510
+ react_exports.useEffect(() => {
2511
+ additionalTooltipValuesRef.current = additionalTooltipValues;
2512
+ }, [additionalTooltipValues]);
2152
2513
  const handleChartCrosshairChange = react_exports.useCallback(
2153
2514
  (event) => {
2154
2515
  if (onPointMouseOver || onPointMouseOut) {
@@ -2160,6 +2521,7 @@ var TimeSeriesChartWrapper = (props) => {
2160
2521
  payload: lastPayloadRef.current
2161
2522
  });
2162
2523
  }
2524
+ previousMouseoverPayloadRef.current = null;
2163
2525
  return;
2164
2526
  }
2165
2527
  const payload = __spreadProps(__spreadValues({}, (0, lodash_exports.pick)(event, "value", "seriesKey", "time", "index", "seriesIndex")), {
@@ -2167,25 +2529,36 @@ var TimeSeriesChartWrapper = (props) => {
2167
2529
  });
2168
2530
  delete payload.seriesKey;
2169
2531
  if (event.rowContext) {
2170
- Object.keys(event.rowContext).forEach((fieldName) => {
2171
- payload[`row.${fieldName}.value`] = event.rowContext[fieldName];
2172
- });
2532
+ Object.assign(
2533
+ payload,
2534
+ Object.keys(event.rowContext).reduce((acc, fieldName) => {
2535
+ acc[`row.${fieldName}.value`] = event.rowContext[fieldName];
2536
+ return acc;
2537
+ }, {})
2538
+ );
2173
2539
  }
2174
- lastPayloadRef.current = payload;
2540
+ const updatedPayload = appendTrellisToPayload(payload, trellisKey, trellisSplitBy);
2541
+ if (!hasMouseoverPayloadChanged(updatedPayload, previousMouseoverPayloadRef.current)) {
2542
+ return;
2543
+ }
2544
+ lastPayloadRef.current = updatedPayload;
2175
2545
  lastOriginalEventRef.current = event;
2546
+ previousMouseoverPayloadRef.current = __spreadValues({}, updatedPayload);
2176
2547
  if (onPointMouseOver) {
2177
2548
  onPointMouseOver({
2178
2549
  type: "point.mouseover",
2179
2550
  originalEvent: event,
2180
- payload
2551
+ payload: updatedPayload
2181
2552
  });
2182
2553
  }
2183
2554
  }
2184
2555
  },
2185
- [onPointMouseOver, onPointMouseOut]
2556
+ [onPointMouseOver, onPointMouseOut, trellisKey, trellisSplitBy]
2186
2557
  );
2187
- const memoizedChart = (0, react_exports.useMemo)(
2188
- () => /* @__PURE__ */ react_exports.createElement(
2558
+ const dataKey = `${(_b = chartData.columns[0]) == null ? void 0 : _b[0]}-${(_c = chartData.columns[0]) == null ? void 0 : _c[chartData.columns[0].length - 1]}-${(_d = chartData.columns[0]) == null ? void 0 : _d.length}`;
2559
+ const memoizedChart = (0, react_exports.useMemo)(() => {
2560
+ const computedOnRangeZoom = onSelect ? handleChartRangeZoom : void 0;
2561
+ return /* @__PURE__ */ react_exports.createElement(visualization_canvas_exports.RangeSelectionProvider, { key: dataKey }, /* @__PURE__ */ react_exports.createElement(
2189
2562
  visualization_canvas_exports.TimeSeriesChart,
2190
2563
  {
2191
2564
  data: chartData,
@@ -2195,49 +2568,121 @@ var TimeSeriesChartWrapper = (props) => {
2195
2568
  seriesColorsByField,
2196
2569
  seriesConfig: seriesOverrides,
2197
2570
  legend,
2571
+ legendLabels,
2572
+ legendTruncation,
2573
+ isSeriesCompare: legendMode === "seriesCompare",
2574
+ maxSeriesFocus: legendMode === "seriesCompare" ? 0 : void 0,
2198
2575
  scaleConfig,
2199
2576
  timestampFormat: "expanded",
2200
2577
  onCrosshairClick: onClick ? handleChartClick : void 0,
2201
2578
  onCrosshairChange: onPointMouseOver || onPointMouseOut ? handleChartCrosshairChange : void 0,
2202
2579
  onSeriesClick: onClick ? handleChartLegendClick : void 0,
2580
+ onRangeSelection: handleChartRangeSelection,
2581
+ onRangeZoom: computedOnRangeZoom,
2582
+ serverSideZoom: enableSearchZoom,
2203
2583
  userLocale,
2204
2584
  events: chartingEventAnnotations,
2205
- eventsConfig: { renderer: triangleEventAnnotationRenderer }
2585
+ eventsConfig: { renderer: triangleEventAnnotationRenderer },
2586
+ additionalTooltipValuesRef,
2587
+ showXMajorGridLines,
2588
+ showYMajorGridLines,
2589
+ showY2MajorGridLines,
2590
+ showYMinorGridLines,
2591
+ showY2MinorGridLines,
2592
+ showLineSmoothing,
2593
+ dataValuesDisplay,
2594
+ showXMajorTicks,
2595
+ xAxisMajorTickSize: xAxisMajorTickSizeNum,
2596
+ showYMajorTicks,
2597
+ showY2MajorTicks,
2598
+ yAxisMajorTickSize: yAxisMajorTickSizeNum,
2599
+ y2AxisMajorTickSize: y2AxisMajorTickSizeNum,
2600
+ yAxisMajorTickInterval: yAxisMajorTickIntervalNum,
2601
+ y2AxisMajorTickInterval: y2AxisMajorTickIntervalNum,
2602
+ showYMinorTicks,
2603
+ showY2MinorTicks,
2604
+ yAxisMinorTickSize: yAxisMinorTickSizeNum,
2605
+ y2AxisMinorTickSize: y2AxisMinorTickSizeNum,
2606
+ showYAxisWithZero,
2607
+ showY2AxisWithZero,
2608
+ showXAxisLine,
2609
+ showYAxisLine,
2610
+ showY2AxisLine,
2611
+ xAxisMaxLabelParts
2206
2612
  }
2207
- ),
2208
- [
2209
- chartData,
2210
- containerWidth,
2211
- containerHeight,
2212
- seriesColors,
2213
- seriesColorsByField,
2214
- seriesOverrides,
2215
- legend,
2216
- scaleConfig,
2217
- userLocale,
2218
- chartingEventAnnotations,
2219
- onClick,
2220
- handleChartClick,
2221
- onPointMouseOver,
2222
- onPointMouseOut,
2223
- handleChartCrosshairChange,
2224
- handleChartLegendClick
2225
- ]
2226
- );
2613
+ ));
2614
+ }, [
2615
+ onSelect,
2616
+ handleChartRangeZoom,
2617
+ dataKey,
2618
+ chartData,
2619
+ containerWidth,
2620
+ containerHeight,
2621
+ seriesColors,
2622
+ seriesColorsByField,
2623
+ seriesOverrides,
2624
+ legend,
2625
+ legendLabels,
2626
+ legendTruncation,
2627
+ scaleConfig,
2628
+ onClick,
2629
+ handleChartClick,
2630
+ onPointMouseOver,
2631
+ onPointMouseOut,
2632
+ handleChartCrosshairChange,
2633
+ handleChartLegendClick,
2634
+ handleChartRangeSelection,
2635
+ enableSearchZoom,
2636
+ userLocale,
2637
+ chartingEventAnnotations,
2638
+ showXMajorGridLines,
2639
+ showYMajorGridLines,
2640
+ showY2MajorGridLines,
2641
+ showYMinorGridLines,
2642
+ showY2MinorGridLines,
2643
+ showLineSmoothing,
2644
+ dataValuesDisplay,
2645
+ showXMajorTicks,
2646
+ xAxisMajorTickSizeNum,
2647
+ showYMajorTicks,
2648
+ showY2MajorTicks,
2649
+ yAxisMajorTickSizeNum,
2650
+ y2AxisMajorTickSizeNum,
2651
+ yAxisMajorTickIntervalNum,
2652
+ y2AxisMajorTickIntervalNum,
2653
+ showYMinorTicks,
2654
+ showY2MinorTicks,
2655
+ yAxisMinorTickSizeNum,
2656
+ y2AxisMinorTickSizeNum,
2657
+ showYAxisWithZero,
2658
+ showY2AxisWithZero,
2659
+ showXAxisLine,
2660
+ showYAxisLine,
2661
+ showY2AxisLine,
2662
+ legendMode,
2663
+ xAxisMaxLabelParts
2664
+ ]);
2227
2665
  const memoizedVisualization = (0, react_exports.useMemo)(() => {
2228
- return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor }, memoizedChart);
2229
- }, [backgroundColor, memoizedChart]);
2230
- return /* @__PURE__ */ react_exports.createElement(
2666
+ return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor: bgColor }, memoizedChart);
2667
+ }, [bgColor, memoizedChart]);
2668
+ return /* @__PURE__ */ react_exports.createElement(react_exports.Fragment, null, trellisEnabled && /* @__PURE__ */ react_exports.createElement(
2669
+ TrellisTitle,
2670
+ {
2671
+ trellisKey,
2672
+ backgroundColor: bgColor,
2673
+ fontColor: defaultFontColor
2674
+ }
2675
+ ), /* @__PURE__ */ react_exports.createElement(
2231
2676
  TimeSeriesChartContainer,
2232
2677
  {
2233
- height,
2678
+ height: trellisEnabled ? Number(height) - TRELLIS_TITLE_HEIGHT : height,
2234
2679
  width,
2235
2680
  ref: uplotContainerElement,
2236
2681
  "data-test": "timeseries-chart-wrapper"
2237
2682
  },
2238
2683
  /* @__PURE__ */ react_exports.createElement(SizeAwareWrapper_default, { width, height, onResize: cachedHandleResize }),
2239
2684
  memoizedVisualization
2240
- );
2685
+ ));
2241
2686
  };
2242
2687
  var TimeSeriesChartWrapper_default = TimeSeriesChartWrapper;
2243
2688
 
@@ -2527,15 +2972,6 @@ var withDashboardViz = (opts) => {
2527
2972
  };
2528
2973
  var withDashboardViz_default = withDashboardViz;
2529
2974
 
2530
- // esm-externals:@splunk/visualization-schemas
2531
- var visualization_schemas_exports = {};
2532
- __export(visualization_schemas_exports, {
2533
- default: () => visualization_schemas_default
2534
- });
2535
- var defaultImport33 = __toESM(require("@splunk/visualization-schemas"));
2536
- __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
2537
- var visualization_schemas_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
2538
-
2539
2975
  // esm-externals:@splunk/themes/pick
2540
2976
  var pick_exports = {};
2541
2977
  __export(pick_exports, {