@splunk/visualizations 28.6.0 → 28.8.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 (501) hide show
  1. package/Area.js +2 -2
  2. package/Area.js.map +2 -2
  3. package/Bar.js +2 -2
  4. package/Bar.js.map +2 -2
  5. package/Bubble.js +2 -2
  6. package/Bubble.js.map +2 -2
  7. package/CHANGELOG.external.md +45 -50
  8. package/ChoroplethSvg.js +2 -2
  9. package/ChoroplethSvg.js.map +2 -2
  10. package/Column.js +2 -2
  11. package/Column.js.map +2 -2
  12. package/Ellipse.js +2 -2
  13. package/Ellipse.js.map +2 -2
  14. package/Events/PureEvents/FieldSummaryTooltip.d.ts +8 -31
  15. package/Events/PureEvents/FieldSummaryTooltip.d.ts.map +1 -1
  16. package/Events/PureEvents/PureEvents.d.ts.map +1 -1
  17. package/Events/PureEvents/TimeControlsPopover.d.ts +6 -25
  18. package/Events/PureEvents/TimeControlsPopover.d.ts.map +1 -1
  19. package/Events.js +27 -101
  20. package/Events.js.map +2 -2
  21. package/FillerGauge.js +10 -5
  22. package/FillerGauge.js.map +2 -2
  23. package/Image.js +2 -2
  24. package/Image.js.map +2 -2
  25. package/Line.js +2 -2
  26. package/Line.js.map +2 -2
  27. package/LinkGraph.js +2 -2
  28. package/LinkGraph.js.map +2 -2
  29. package/Map/Map.d.ts +1 -0
  30. package/Map/Map.d.ts.map +1 -1
  31. package/Map/PureMap/BubbleLayer.d.ts +22 -4
  32. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  33. package/Map/PureMap/ChoroplethLayer.d.ts +9 -1
  34. package/Map/PureMap/ChoroplethLayer.d.ts.map +1 -1
  35. package/Map/PureMap/ClusterLayer.d.ts +3 -1
  36. package/Map/PureMap/ClusterLayer.d.ts.map +1 -1
  37. package/Map/PureMap/LocalChoroplethLayer.d.ts +1 -0
  38. package/Map/PureMap/LocalChoroplethLayer.d.ts.map +1 -1
  39. package/Map/PureMap/MapContext.d.ts +13 -0
  40. package/Map/PureMap/MapContext.d.ts.map +1 -0
  41. package/Map/PureMap/MarkerLayer.d.ts +19 -2
  42. package/Map/PureMap/MarkerLayer.d.ts.map +1 -1
  43. package/Map/PureMap/MarkerWrapper.d.ts +3 -2
  44. package/Map/PureMap/MarkerWrapper.d.ts.map +1 -1
  45. package/Map/PureMap/PureMap.d.ts +1 -0
  46. package/Map/PureMap/PureMap.d.ts.map +1 -1
  47. package/Map/PureMap/PureMapContainer.d.ts.map +1 -1
  48. package/Map/PureMap/Tooltip.d.ts +6 -1
  49. package/Map/PureMap/Tooltip.d.ts.map +1 -1
  50. package/Map/PureMap/keyboardConstants.d.ts +11 -0
  51. package/Map/PureMap/keyboardConstants.d.ts.map +1 -0
  52. package/Map/PureMap/useRovingTabindex.d.ts +18 -0
  53. package/Map/PureMap/useRovingTabindex.d.ts.map +1 -0
  54. package/Map.js +1317 -478
  55. package/Map.js.map +4 -4
  56. package/Markdown/Markdown.d.ts.map +1 -1
  57. package/Markdown.config.js +1 -1
  58. package/Markdown.config.js.map +1 -1
  59. package/Markdown.js +24 -7
  60. package/Markdown.js.map +2 -2
  61. package/MarkerGauge.js +10 -5
  62. package/MarkerGauge.js.map +2 -2
  63. package/NetworkGraph/NetworkGraph.d.ts +2 -5
  64. package/NetworkGraph/NetworkGraph.d.ts.map +1 -1
  65. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts.map +1 -1
  66. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts +1 -0
  67. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts.map +1 -1
  68. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts +1 -0
  69. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts.map +1 -1
  70. package/NetworkGraph/PureNetworkGraph/components/Tooltip.d.ts +1 -1
  71. package/NetworkGraph/PureNetworkGraph/components/Tooltip.d.ts.map +1 -1
  72. package/NetworkGraph/PureNetworkGraph/components/ZoomControls.d.ts +1 -0
  73. package/NetworkGraph/PureNetworkGraph/components/ZoomControls.d.ts.map +1 -1
  74. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts +23 -0
  75. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -1
  76. package/NetworkGraph.config.js +2 -0
  77. package/NetworkGraph.config.js.map +2 -2
  78. package/NetworkGraph.js +353 -40
  79. package/NetworkGraph.js.map +4 -4
  80. package/ParallelCoordinates.js +2 -2
  81. package/ParallelCoordinates.js.map +2 -2
  82. package/Pie.js +2 -2
  83. package/Pie.js.map +2 -2
  84. package/ProcessTree/ProcessTree.d.ts +3 -1
  85. package/ProcessTree/ProcessTree.d.ts.map +1 -1
  86. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts +1 -0
  87. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts.map +1 -1
  88. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts +2 -0
  89. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts.map +1 -1
  90. package/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.d.ts.map +1 -1
  91. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts +3 -1
  92. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts.map +1 -1
  93. package/ProcessTree/PureProcessTree/mockdata/data.d.ts.map +1 -1
  94. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts +3 -1
  95. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts.map +1 -1
  96. package/ProcessTree.js +101 -31
  97. package/ProcessTree.js.map +3 -3
  98. package/Punchcard.js +2 -2
  99. package/Punchcard.js.map +2 -2
  100. package/README.md +2 -0
  101. package/Rectangle.js +2 -2
  102. package/Rectangle.js.map +2 -2
  103. package/RichText/PureRichText/Editor/EditorPanel.d.ts.map +1 -1
  104. package/RichText/PureRichText/InnerEditor.d.ts +10 -0
  105. package/RichText/PureRichText/InnerEditor.d.ts.map +1 -1
  106. package/RichText/PureRichText/PureRichText.d.ts +17 -0
  107. package/RichText/PureRichText/PureRichText.d.ts.map +1 -1
  108. package/RichText/PureRichText/PureRichTextContext.d.ts.map +1 -1
  109. package/RichText/PureRichText/hooks/useContentSave.d.ts +6 -0
  110. package/RichText/PureRichText/hooks/useContentSave.d.ts.map +1 -1
  111. package/RichText/PureRichText/hooks/useContentSync.d.ts +13 -1
  112. package/RichText/PureRichText/hooks/useContentSync.d.ts.map +1 -1
  113. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts.map +1 -1
  114. package/RichText/PureRichText/hooks/useEditorSetup.d.ts.map +1 -1
  115. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts +1 -16
  116. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts.map +1 -1
  117. package/RichText/PureRichText/hooks/useTokenMap.d.ts +37 -35
  118. package/RichText/PureRichText/hooks/useTokenMap.d.ts.map +1 -1
  119. package/RichText/PureRichText/renderers/LeafRenderer.d.ts +0 -4
  120. package/RichText/PureRichText/renderers/LeafRenderer.d.ts.map +1 -1
  121. package/RichText/PureRichText/types.d.ts +15 -0
  122. package/RichText/PureRichText/types.d.ts.map +1 -1
  123. package/RichText/PureRichText/utils/slateUtils.d.ts.map +1 -1
  124. package/RichText/RichText.d.ts +2 -0
  125. package/RichText/RichText.d.ts.map +1 -1
  126. package/RichText/config.d.ts.map +1 -1
  127. package/RichText.config.js +14 -1
  128. package/RichText.config.js.map +2 -2
  129. package/RichText.js +733 -263
  130. package/RichText.js.map +4 -4
  131. package/Sankey.js +2 -2
  132. package/Sankey.js.map +2 -2
  133. package/Scatter.js +2 -2
  134. package/Scatter.js.map +2 -2
  135. package/SingleValue.js +368 -471
  136. package/SingleValue.js.map +4 -4
  137. package/SingleValueIcon.js +2 -2
  138. package/SingleValueIcon.js.map +2 -2
  139. package/SingleValueRadial.js +2 -2
  140. package/SingleValueRadial.js.map +2 -2
  141. package/SparkLine/SparkLine.d.ts +57 -0
  142. package/SparkLine/SparkLine.d.ts.map +1 -0
  143. package/SparkLine/index.d.ts +1 -1
  144. package/SparkLine/index.d.ts.map +1 -1
  145. package/SparkLine.js +384 -485
  146. package/SparkLine.js.map +4 -4
  147. package/Table/PureTable.d.ts +2 -0
  148. package/Table/PureTable.d.ts.map +1 -1
  149. package/Table/config.d.ts.map +1 -1
  150. package/Table/hooks.d.ts +1 -1
  151. package/Table/hooks.d.ts.map +1 -1
  152. package/Table.config.js +7 -0
  153. package/Table.config.js.map +2 -2
  154. package/Table.js +480 -500
  155. package/Table.js.map +4 -4
  156. package/Timeline/PureTimeline/PureTimeline.d.ts +6 -5
  157. package/Timeline/PureTimeline/PureTimeline.d.ts.map +1 -1
  158. package/Timeline/PureTimeline/src/CursorPlugin.d.ts +1 -0
  159. package/Timeline/PureTimeline/src/CursorPlugin.d.ts.map +1 -1
  160. package/Timeline/PureTimeline/src/TimelineLegend.d.ts +10 -7
  161. package/Timeline/PureTimeline/src/TimelineLegend.d.ts.map +1 -1
  162. package/Timeline/PureTimeline/src/TimelineTooltip.d.ts +5 -1
  163. package/Timeline/PureTimeline/src/TimelineTooltip.d.ts.map +1 -1
  164. package/Timeline/PureTimeline/src/TimelineUplot.d.ts +19 -2
  165. package/Timeline/PureTimeline/src/TimelineUplot.d.ts.map +1 -1
  166. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -1
  167. package/Timeline/PureTimeline/src/XAxisPlugin.d.ts +1 -0
  168. package/Timeline/PureTimeline/src/XAxisPlugin.d.ts.map +1 -1
  169. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +8 -0
  170. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -1
  171. package/Timeline.js +449 -211
  172. package/Timeline.js.map +4 -4
  173. package/Treemap/PureTreemap/components/PureTreemap.d.ts +42 -0
  174. package/Treemap/PureTreemap/components/PureTreemap.d.ts.map +1 -0
  175. package/Treemap/PureTreemap/components/TreemapBreadcrumb.d.ts +10 -0
  176. package/Treemap/PureTreemap/components/TreemapBreadcrumb.d.ts.map +1 -0
  177. package/Treemap/PureTreemap/components/TreemapChildCell.d.ts +28 -0
  178. package/Treemap/PureTreemap/components/TreemapChildCell.d.ts.map +1 -0
  179. package/Treemap/PureTreemap/components/TreemapHeader.d.ts +19 -0
  180. package/Treemap/PureTreemap/components/TreemapHeader.d.ts.map +1 -0
  181. package/Treemap/PureTreemap/components/TreemapHoverTarget.d.ts +17 -0
  182. package/Treemap/PureTreemap/components/TreemapHoverTarget.d.ts.map +1 -0
  183. package/Treemap/PureTreemap/components/TreemapLegend.d.ts +20 -0
  184. package/Treemap/PureTreemap/components/TreemapLegend.d.ts.map +1 -0
  185. package/Treemap/PureTreemap/components/TreemapNode.d.ts +5 -0
  186. package/Treemap/PureTreemap/components/TreemapNode.d.ts.map +1 -0
  187. package/Treemap/PureTreemap/components/TreemapParentNode.d.ts +10 -0
  188. package/Treemap/PureTreemap/components/TreemapParentNode.d.ts.map +1 -0
  189. package/Treemap/PureTreemap/components/TreemapStandaloneNode.d.ts +6 -0
  190. package/Treemap/PureTreemap/components/TreemapStandaloneNode.d.ts.map +1 -0
  191. package/Treemap/PureTreemap/components/TreemapTooltip.d.ts +17 -0
  192. package/Treemap/PureTreemap/components/TreemapTooltip.d.ts.map +1 -0
  193. package/Treemap/PureTreemap/mockdata/data.d.ts +90 -0
  194. package/Treemap/PureTreemap/mockdata/data.d.ts.map +1 -0
  195. package/Treemap/PureTreemap/utils/treemapColorUtils.d.ts +67 -0
  196. package/Treemap/PureTreemap/utils/treemapColorUtils.d.ts.map +1 -0
  197. package/Treemap/PureTreemap/utils/treemapDataColorUtils.d.ts +5 -0
  198. package/Treemap/PureTreemap/utils/treemapDataColorUtils.d.ts.map +1 -0
  199. package/Treemap/PureTreemap/utils/treemapDataUtils.d.ts +14 -0
  200. package/Treemap/PureTreemap/utils/treemapDataUtils.d.ts.map +1 -0
  201. package/Treemap/PureTreemap/utils/treemapLayout.d.ts +49 -0
  202. package/Treemap/PureTreemap/utils/treemapLayout.d.ts.map +1 -0
  203. package/Treemap/PureTreemap/utils/treemapNodeUtils.d.ts +81 -0
  204. package/Treemap/PureTreemap/utils/treemapNodeUtils.d.ts.map +1 -0
  205. package/Treemap/PureTreemap/utils/treemapTypes.d.ts +37 -0
  206. package/Treemap/PureTreemap/utils/treemapTypes.d.ts.map +1 -0
  207. package/Treemap/PureTreemap/utils/treemapUtils.d.ts +76 -0
  208. package/Treemap/PureTreemap/utils/treemapUtils.d.ts.map +1 -0
  209. package/Treemap/Treemap.d.ts +12 -0
  210. package/Treemap/Treemap.d.ts.map +1 -0
  211. package/Treemap/config.d.ts +4 -0
  212. package/Treemap/config.d.ts.map +1 -0
  213. package/Treemap/index.d.ts +3 -0
  214. package/Treemap/index.d.ts.map +1 -0
  215. package/Treemap.config.js +465 -0
  216. package/Treemap.config.js.map +7 -0
  217. package/Treemap.js +6233 -0
  218. package/Treemap.js.map +7 -0
  219. package/common/DocExampleWithVizSandbox.js.map +2 -2
  220. package/common/GaugeMajorTicks.js.map +2 -2
  221. package/common/GaugeValueMarker.js +1 -0
  222. package/common/GaugeValueMarker.js.map +2 -2
  223. package/common/OptionsDoc.js.map +1 -1
  224. package/common/OverviewDoc.js.map +2 -2
  225. package/common/docUtils.d.ts.map +1 -1
  226. package/common/docUtils.js +1 -8
  227. package/common/docUtils.js.map +2 -2
  228. package/common/gaugeUtils.d.ts.map +1 -1
  229. package/common/gaugeUtils.js +7 -3
  230. package/common/gaugeUtils.js.map +2 -2
  231. package/common/hocs/FixedSizeContainer.d.ts.map +1 -1
  232. package/common/hooks/useDynamicHeight.d.ts +67 -0
  233. package/common/hooks/useDynamicHeight.d.ts.map +1 -0
  234. package/common/interfaces/VizCategory.d.ts +2 -1
  235. package/common/interfaces/VizCategory.d.ts.map +1 -1
  236. package/common/utils/mapUtils.js +512 -179
  237. package/common/utils/mapUtils.js.map +4 -4
  238. package/common/utils/shadowDomUtils.d.ts +2 -0
  239. package/common/utils/shadowDomUtils.d.ts.map +1 -0
  240. package/common/utils/shadowDomUtils.js +39 -0
  241. package/common/utils/shadowDomUtils.js.map +7 -0
  242. package/common/withDashboardViz.js +2 -2
  243. package/common/withDashboardViz.js.map +2 -2
  244. package/docs-llm/INDEX.md +119 -0
  245. package/docs-llm/area/examples-json.md +3854 -0
  246. package/docs-llm/area/examples-react.md +2816 -0
  247. package/docs-llm/area/options.md +97 -0
  248. package/docs-llm/area/overview.md +27 -0
  249. package/docs-llm/bar/examples-json.md +3380 -0
  250. package/docs-llm/bar/examples-react.md +2352 -0
  251. package/docs-llm/bar/options.md +89 -0
  252. package/docs-llm/bar/overview.md +25 -0
  253. package/docs-llm/bubble/examples-json.md +4082 -0
  254. package/docs-llm/bubble/examples-react.md +3977 -0
  255. package/docs-llm/bubble/options.md +62 -0
  256. package/docs-llm/bubble/overview.md +26 -0
  257. package/docs-llm/choropleth-svg/examples-json.md +397 -0
  258. package/docs-llm/choropleth-svg/examples-react.md +389 -0
  259. package/docs-llm/choropleth-svg/options.md +15 -0
  260. package/docs-llm/choropleth-svg/overview.md +23 -0
  261. package/docs-llm/column/examples-json.md +3898 -0
  262. package/docs-llm/column/examples-react.md +2653 -0
  263. package/docs-llm/column/options.md +94 -0
  264. package/docs-llm/column/overview.md +31 -0
  265. package/docs-llm/dsl/examples-json.md +43 -0
  266. package/docs-llm/dsl/examples-react.md +78 -0
  267. package/docs-llm/dsl/formatters/format-by-type-examples-json.md +58 -0
  268. package/docs-llm/dsl/formatters/format-by-type-examples-react.md +43 -0
  269. package/docs-llm/dsl/formatters/format-by-type.md +38 -0
  270. package/docs-llm/dsl/formatters/frame-examples-json.md +42 -0
  271. package/docs-llm/dsl/formatters/frame-examples-react.md +24 -0
  272. package/docs-llm/dsl/formatters/frame.md +6 -0
  273. package/docs-llm/dsl/formatters/gradient-examples-json.md +98 -0
  274. package/docs-llm/dsl/formatters/gradient-examples-react.md +44 -0
  275. package/docs-llm/dsl/formatters/gradient.md +23 -0
  276. package/docs-llm/dsl/formatters/lerp-examples-json.md +40 -0
  277. package/docs-llm/dsl/formatters/lerp-examples-react.md +28 -0
  278. package/docs-llm/dsl/formatters/lerp.md +19 -0
  279. package/docs-llm/dsl/formatters/match-value-examples-json.md +65 -0
  280. package/docs-llm/dsl/formatters/match-value-examples-react.md +37 -0
  281. package/docs-llm/dsl/formatters/match-value.md +13 -0
  282. package/docs-llm/dsl/formatters/max-contrast-examples-json.md +39 -0
  283. package/docs-llm/dsl/formatters/max-contrast-examples-react.md +27 -0
  284. package/docs-llm/dsl/formatters/max-contrast.md +9 -0
  285. package/docs-llm/dsl/formatters/multi-format-examples-json.md +67 -0
  286. package/docs-llm/dsl/formatters/multi-format-examples-react.md +49 -0
  287. package/docs-llm/dsl/formatters/multi-format.md +12 -0
  288. package/docs-llm/dsl/formatters/objects-examples-json.md +49 -0
  289. package/docs-llm/dsl/formatters/objects-examples-react.md +37 -0
  290. package/docs-llm/dsl/formatters/objects.md +3 -0
  291. package/docs-llm/dsl/formatters/pick-examples-json.md +59 -0
  292. package/docs-llm/dsl/formatters/pick-examples-react.md +30 -0
  293. package/docs-llm/dsl/formatters/pick.md +9 -0
  294. package/docs-llm/dsl/formatters/prefix-examples-json.md +29 -0
  295. package/docs-llm/dsl/formatters/prefix-examples-react.md +19 -0
  296. package/docs-llm/dsl/formatters/prefix.md +3 -0
  297. package/docs-llm/dsl/formatters/prepend-examples-json.md +51 -0
  298. package/docs-llm/dsl/formatters/prepend-examples-react.md +33 -0
  299. package/docs-llm/dsl/formatters/prepend.md +9 -0
  300. package/docs-llm/dsl/formatters/range-value-examples-json.md +48 -0
  301. package/docs-llm/dsl/formatters/range-value-examples-react.md +34 -0
  302. package/docs-llm/dsl/formatters/range-value.md +15 -0
  303. package/docs-llm/dsl/formatters/set-color-channel-examples-json.md +40 -0
  304. package/docs-llm/dsl/formatters/set-color-channel-examples-react.md +31 -0
  305. package/docs-llm/dsl/formatters/set-color-channel.md +9 -0
  306. package/docs-llm/dsl/formatters/suffix-examples-json.md +29 -0
  307. package/docs-llm/dsl/formatters/suffix-examples-react.md +19 -0
  308. package/docs-llm/dsl/formatters/suffix.md +3 -0
  309. package/docs-llm/dsl/formatters/type-examples-json.md +37 -0
  310. package/docs-llm/dsl/formatters/type-examples-react.md +20 -0
  311. package/docs-llm/dsl/formatters/type.md +3 -0
  312. package/docs-llm/dsl/overview.md +41 -0
  313. package/docs-llm/dsl/selectors/abs.md +7 -0
  314. package/docs-llm/dsl/selectors/ceil.md +7 -0
  315. package/docs-llm/dsl/selectors/data-frame-average-examples-json.md +41 -0
  316. package/docs-llm/dsl/selectors/data-frame-average-examples-react.md +36 -0
  317. package/docs-llm/dsl/selectors/data-frame-average.md +7 -0
  318. package/docs-llm/dsl/selectors/data-frame-count-examples-json.md +41 -0
  319. package/docs-llm/dsl/selectors/data-frame-count-examples-react.md +36 -0
  320. package/docs-llm/dsl/selectors/data-frame-count.md +7 -0
  321. package/docs-llm/dsl/selectors/data-frame-examples-json.md +830 -0
  322. package/docs-llm/dsl/selectors/data-frame-examples-react.md +929 -0
  323. package/docs-llm/dsl/selectors/data-frame-get-field-examples-json.md +89 -0
  324. package/docs-llm/dsl/selectors/data-frame-get-field-examples-react.md +124 -0
  325. package/docs-llm/dsl/selectors/data-frame-get-field.md +5 -0
  326. package/docs-llm/dsl/selectors/data-frame-get-raw-value.md +5 -0
  327. package/docs-llm/dsl/selectors/data-frame-get-type.md +5 -0
  328. package/docs-llm/dsl/selectors/data-frame-get-value.md +5 -0
  329. package/docs-llm/dsl/selectors/data-frame-max-examples-json.md +51 -0
  330. package/docs-llm/dsl/selectors/data-frame-max-examples-react.md +41 -0
  331. package/docs-llm/dsl/selectors/data-frame-max.md +7 -0
  332. package/docs-llm/dsl/selectors/data-frame-min-examples-json.md +51 -0
  333. package/docs-llm/dsl/selectors/data-frame-min-examples-react.md +41 -0
  334. package/docs-llm/dsl/selectors/data-frame-min.md +7 -0
  335. package/docs-llm/dsl/selectors/data-frame-percentile-examples-json.md +41 -0
  336. package/docs-llm/dsl/selectors/data-frame-percentile-examples-react.md +36 -0
  337. package/docs-llm/dsl/selectors/data-frame-percentile.md +8 -0
  338. package/docs-llm/dsl/selectors/data-frame-set-value.md +5 -0
  339. package/docs-llm/dsl/selectors/data-frame-sum-examples-json.md +51 -0
  340. package/docs-llm/dsl/selectors/data-frame-sum-examples-react.md +41 -0
  341. package/docs-llm/dsl/selectors/data-frame-sum.md +7 -0
  342. package/docs-llm/dsl/selectors/data-frame.md +4 -0
  343. package/docs-llm/dsl/selectors/data-point-get-field.md +5 -0
  344. package/docs-llm/dsl/selectors/data-point-get-raw-value.md +4 -0
  345. package/docs-llm/dsl/selectors/data-point-get-type.md +5 -0
  346. package/docs-llm/dsl/selectors/data-point-get-value.md +5 -0
  347. package/docs-llm/dsl/selectors/data-point-set-value.md +4 -0
  348. package/docs-llm/dsl/selectors/data-point.md +5 -0
  349. package/docs-llm/dsl/selectors/data-series-average.md +22 -0
  350. package/docs-llm/dsl/selectors/data-series-count.md +14 -0
  351. package/docs-llm/dsl/selectors/data-series-get-field.md +5 -0
  352. package/docs-llm/dsl/selectors/data-series-get-raw-value.md +4 -0
  353. package/docs-llm/dsl/selectors/data-series-get-type.md +5 -0
  354. package/docs-llm/dsl/selectors/data-series-get-value.md +4 -0
  355. package/docs-llm/dsl/selectors/data-series-max.md +5 -0
  356. package/docs-llm/dsl/selectors/data-series-min.md +5 -0
  357. package/docs-llm/dsl/selectors/data-series-percentile.md +17 -0
  358. package/docs-llm/dsl/selectors/data-series-set-value.md +4 -0
  359. package/docs-llm/dsl/selectors/data-series-sum.md +24 -0
  360. package/docs-llm/dsl/selectors/data-series.md +4 -0
  361. package/docs-llm/dsl/selectors/delta.md +7 -0
  362. package/docs-llm/dsl/selectors/divide.md +8 -0
  363. package/docs-llm/dsl/selectors/first-point.md +5 -0
  364. package/docs-llm/dsl/selectors/floor.md +7 -0
  365. package/docs-llm/dsl/selectors/frame-by-series-index-range-examples-json.md +89 -0
  366. package/docs-llm/dsl/selectors/frame-by-series-index-range-examples-react.md +88 -0
  367. package/docs-llm/dsl/selectors/frame-by-series-index-range.md +10 -0
  368. package/docs-llm/dsl/selectors/frame-by-series-indexes-examples-json.md +88 -0
  369. package/docs-llm/dsl/selectors/frame-by-series-indexes-examples-react.md +87 -0
  370. package/docs-llm/dsl/selectors/frame-by-series-indexes.md +9 -0
  371. package/docs-llm/dsl/selectors/frame-by-series-names-examples-json.md +89 -0
  372. package/docs-llm/dsl/selectors/frame-by-series-names-examples-react.md +88 -0
  373. package/docs-llm/dsl/selectors/frame-by-series-names-or-indexes-examples-json.md +89 -0
  374. package/docs-llm/dsl/selectors/frame-by-series-names-or-indexes-examples-react.md +88 -0
  375. package/docs-llm/dsl/selectors/frame-by-series-names-or-indexes.md +9 -0
  376. package/docs-llm/dsl/selectors/frame-by-series-names.md +9 -0
  377. package/docs-llm/dsl/selectors/frame-by-series-types-examples-json.md +89 -0
  378. package/docs-llm/dsl/selectors/frame-by-series-types-examples-react.md +88 -0
  379. package/docs-llm/dsl/selectors/frame-by-series-types.md +9 -0
  380. package/docs-llm/dsl/selectors/frame-without-internal-fields-examples-json.md +137 -0
  381. package/docs-llm/dsl/selectors/frame-without-internal-fields-examples-react.md +135 -0
  382. package/docs-llm/dsl/selectors/frame-without-internal-fields-except-examples-json.md +157 -0
  383. package/docs-llm/dsl/selectors/frame-without-internal-fields-except-examples-react.md +155 -0
  384. package/docs-llm/dsl/selectors/frame-without-internal-fields-except.md +21 -0
  385. package/docs-llm/dsl/selectors/frame-without-internal-fields.md +17 -0
  386. package/docs-llm/dsl/selectors/frame-without-series-names.md +8 -0
  387. package/docs-llm/dsl/selectors/last-point.md +5 -0
  388. package/docs-llm/dsl/selectors/minus.md +8 -0
  389. package/docs-llm/dsl/selectors/multiply.md +8 -0
  390. package/docs-llm/dsl/selectors/plus.md +8 -0
  391. package/docs-llm/dsl/selectors/point-by-index.md +6 -0
  392. package/docs-llm/dsl/selectors/points-by-indexes.md +6 -0
  393. package/docs-llm/dsl/selectors/round.md +7 -0
  394. package/docs-llm/dsl/selectors/series-by-index-examples-json.md +49 -0
  395. package/docs-llm/dsl/selectors/series-by-index-examples-react.md +39 -0
  396. package/docs-llm/dsl/selectors/series-by-index.md +8 -0
  397. package/docs-llm/dsl/selectors/series-by-name-examples-json.md +49 -0
  398. package/docs-llm/dsl/selectors/series-by-name-examples-react.md +39 -0
  399. package/docs-llm/dsl/selectors/series-by-name.md +8 -0
  400. package/docs-llm/dsl/selectors/series-by-prioritized-types-examples-json.md +47 -0
  401. package/docs-llm/dsl/selectors/series-by-prioritized-types-examples-react.md +39 -0
  402. package/docs-llm/dsl/selectors/series-by-prioritized-types.md +10 -0
  403. package/docs-llm/dsl/selectors/series-by-type-examples-json.md +49 -0
  404. package/docs-llm/dsl/selectors/series-by-type-examples-react.md +39 -0
  405. package/docs-llm/dsl/selectors/series-by-type.md +10 -0
  406. package/docs-llm/dsl/selectors/series-by-types.md +6 -0
  407. package/docs-llm/ellipse/examples-json.md +5 -0
  408. package/docs-llm/ellipse/examples-react.md +5 -0
  409. package/docs-llm/ellipse/options.md +16 -0
  410. package/docs-llm/ellipse/overview.md +5 -0
  411. package/docs-llm/events/examples-json.md +705 -0
  412. package/docs-llm/events/examples-react.md +536 -0
  413. package/docs-llm/events/options.md +18 -0
  414. package/docs-llm/events/overview.md +5 -0
  415. package/docs-llm/filler-gauge/examples-json.md +376 -0
  416. package/docs-llm/filler-gauge/examples-react.md +274 -0
  417. package/docs-llm/filler-gauge/options.md +26 -0
  418. package/docs-llm/filler-gauge/overview.md +5 -0
  419. package/docs-llm/image/examples-json.md +39 -0
  420. package/docs-llm/image/examples-react.md +65 -0
  421. package/docs-llm/image/options.md +13 -0
  422. package/docs-llm/image/overview.md +5 -0
  423. package/docs-llm/line/examples-json.md +3724 -0
  424. package/docs-llm/line/examples-react.md +2683 -0
  425. package/docs-llm/line/options.md +95 -0
  426. package/docs-llm/line/overview.md +29 -0
  427. package/docs-llm/link-graph/examples-json.md +5 -0
  428. package/docs-llm/link-graph/examples-react.md +5 -0
  429. package/docs-llm/link-graph/options.md +26 -0
  430. package/docs-llm/link-graph/overview.md +16 -0
  431. package/docs-llm/map/examples-json.md +13973 -0
  432. package/docs-llm/map/examples-react.md +6154 -0
  433. package/docs-llm/map/options.md +22 -0
  434. package/docs-llm/map/overview.md +32 -0
  435. package/docs-llm/markdown/examples-json.md +63 -0
  436. package/docs-llm/markdown/examples-react.md +98 -0
  437. package/docs-llm/markdown/options.md +17 -0
  438. package/docs-llm/markdown/overview.md +5 -0
  439. package/docs-llm/marker-gauge/examples-json.md +436 -0
  440. package/docs-llm/marker-gauge/examples-react.md +367 -0
  441. package/docs-llm/marker-gauge/options.md +26 -0
  442. package/docs-llm/marker-gauge/overview.md +5 -0
  443. package/docs-llm/network-graph/examples-json.md +8843 -0
  444. package/docs-llm/network-graph/examples-react.md +7339 -0
  445. package/docs-llm/network-graph/options.md +50 -0
  446. package/docs-llm/network-graph/overview.md +28 -0
  447. package/docs-llm/parallel-coordinates/examples-json.md +8376 -0
  448. package/docs-llm/parallel-coordinates/examples-react.md +2771 -0
  449. package/docs-llm/parallel-coordinates/options.md +14 -0
  450. package/docs-llm/parallel-coordinates/overview.md +22 -0
  451. package/docs-llm/pie/examples-json.md +851 -0
  452. package/docs-llm/pie/examples-react.md +606 -0
  453. package/docs-llm/pie/options.md +34 -0
  454. package/docs-llm/pie/overview.md +23 -0
  455. package/docs-llm/process-tree/options.md +32 -0
  456. package/docs-llm/punchcard/examples-json.md +6134 -0
  457. package/docs-llm/punchcard/examples-react.md +4562 -0
  458. package/docs-llm/punchcard/options.md +33 -0
  459. package/docs-llm/punchcard/overview.md +5 -0
  460. package/docs-llm/pure-rich-text/options.md +29 -0
  461. package/docs-llm/rectangle/examples-json.md +5 -0
  462. package/docs-llm/rectangle/examples-react.md +5 -0
  463. package/docs-llm/rectangle/options.md +19 -0
  464. package/docs-llm/rectangle/overview.md +5 -0
  465. package/docs-llm/rich-text/examples-json.md +96 -0
  466. package/docs-llm/rich-text/examples-react.md +119 -0
  467. package/docs-llm/rich-text/options.md +29 -0
  468. package/docs-llm/rich-text/overview.md +5 -0
  469. package/docs-llm/sankey/examples-json.md +844 -0
  470. package/docs-llm/sankey/examples-react.md +546 -0
  471. package/docs-llm/sankey/options.md +19 -0
  472. package/docs-llm/sankey/overview.md +24 -0
  473. package/docs-llm/scatter/examples-json.md +4012 -0
  474. package/docs-llm/scatter/examples-react.md +3914 -0
  475. package/docs-llm/scatter/options.md +68 -0
  476. package/docs-llm/scatter/overview.md +25 -0
  477. package/docs-llm/single-value/examples-json.md +2613 -0
  478. package/docs-llm/single-value/examples-react.md +2296 -0
  479. package/docs-llm/single-value/options.md +49 -0
  480. package/docs-llm/single-value/overview.md +23 -0
  481. package/docs-llm/single-value-icon/examples-json.md +1686 -0
  482. package/docs-llm/single-value-icon/examples-react.md +1573 -0
  483. package/docs-llm/single-value-icon/options.md +43 -0
  484. package/docs-llm/single-value-icon/overview.md +5 -0
  485. package/docs-llm/single-value-radial/examples-json.md +1178 -0
  486. package/docs-llm/single-value-radial/examples-react.md +1028 -0
  487. package/docs-llm/single-value-radial/options.md +41 -0
  488. package/docs-llm/single-value-radial/overview.md +5 -0
  489. package/docs-llm/table/examples-json.md +5 -0
  490. package/docs-llm/table/examples-react.md +5 -0
  491. package/docs-llm/table/options.md +26 -0
  492. package/docs-llm/table/overview.md +24 -0
  493. package/docs-llm/timeline/examples-json.md +5 -0
  494. package/docs-llm/timeline/examples-react.md +5 -0
  495. package/docs-llm/timeline/options.md +27 -0
  496. package/docs-llm/timeline/overview.md +24 -0
  497. package/docs-llm/treemap/examples-json.md +5 -0
  498. package/docs-llm/treemap/examples-react.md +5 -0
  499. package/docs-llm/treemap/options.md +26 -0
  500. package/docs-llm/treemap/overview.md +27 -0
  501. package/package.json +33 -28
package/SingleValue.js CHANGED
@@ -978,7 +978,7 @@ var defaultImport20 = __toESM(require("@splunk/ui-utils/id"));
978
978
  __reExport(id_exports, require("@splunk/ui-utils/id"));
979
979
  var id_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
980
980
 
981
- // src/SparkLine/SparkLine.jsx
981
+ // src/SparkLine/SparkLine.tsx
982
982
  var StyledSvg = styled_components_default.svg`
983
983
  /* For fixing IE11 shows overflow part line issue */
984
984
  overflow: hidden;
@@ -990,233 +990,262 @@ var StyledTooltip = styled_components_default.div`
990
990
  min-width: 20px;
991
991
  `;
992
992
  var preventDefault = (e) => e.preventDefault();
993
- var _SparkLine = class _SparkLine extends react_exports.Component {
994
- constructor(props, ...rest) {
995
- super(props, ...rest);
996
- __publicField(this, "handleCursorMount", (el) => {
997
- this.setState({
998
- anchor: el
999
- });
1000
- });
1001
- this.state = {
1002
- anchor: null,
1003
- activeIndex: 0,
1004
- hoveredIndex: null,
1005
- componentIsFocused: false
1006
- };
1007
- this.titleId = (0, id_exports.createDOMID)("sparkline-title");
1008
- this.pointRefs = [];
1009
- this.containerRef = react_default.createRef();
1010
- this.handleKeyDown = this.handleKeyDown.bind(this);
1011
- this.handleMouseOver = this.handleMouseOver.bind(this);
1012
- this.handleMouseLeave = this.handleMouseLeave.bind(this);
1013
- this.handleFocus = this.handleFocus.bind(this);
1014
- this.handleBlur = this.handleBlur.bind(this);
1015
- }
1016
- handleFocus(event) {
1017
- const { target } = event;
1018
- const { pointIndex: pointIndexStr } = target.dataset || {};
1019
- const { activeIndex, componentIsFocused, hoveredIndex } = this.state;
1020
- if (pointIndexStr !== void 0) {
1021
- const pointIndex = Number.parseInt(pointIndexStr, 10);
1022
- if (activeIndex !== pointIndex || !componentIsFocused || hoveredIndex !== null) {
1023
- this.setState({
1024
- activeIndex: pointIndex,
1025
- hoveredIndex: null,
1026
- componentIsFocused: true
1027
- });
993
+ var PROP_KEYS = [
994
+ "acceptNull",
995
+ "data",
996
+ "elementRef",
997
+ "endDotCount",
998
+ "endDotFillColor",
999
+ "endDotRadius",
1000
+ "endDotStroke",
1001
+ "endDotStrokeWidth",
1002
+ "fillColor",
1003
+ "fillOpacity",
1004
+ "cursorStroke",
1005
+ "cursorStrokeWidth",
1006
+ "cursorStrokeLinecap",
1007
+ "cursorStrokeDasharray",
1008
+ "height",
1009
+ "isArea",
1010
+ "lineColor",
1011
+ "lineLength",
1012
+ "lineStrokeWidth",
1013
+ "showEndDot",
1014
+ "showTooltip",
1015
+ "yMax",
1016
+ "yMin",
1017
+ "width",
1018
+ "title"
1019
+ ];
1020
+ var SparkLineInner = (_a) => {
1021
+ var _b = _a, {
1022
+ acceptNull = false,
1023
+ data = [],
1024
+ elementRef,
1025
+ endDotCount = 0,
1026
+ endDotFillColor = "white",
1027
+ endDotRadius = 0,
1028
+ endDotStroke = "black",
1029
+ endDotStrokeWidth = 0,
1030
+ fillColor = "#65a637",
1031
+ fillOpacity = ".1",
1032
+ cursorStroke = "#5184AF",
1033
+ cursorStrokeWidth = 3,
1034
+ cursorStrokeLinecap = "square",
1035
+ cursorStrokeDasharray = "1, 5",
1036
+ height,
1037
+ isArea = false,
1038
+ lineColor = "#65a637",
1039
+ lineLength,
1040
+ lineStrokeWidth = 1,
1041
+ showEndDot = false,
1042
+ showTooltip = true,
1043
+ yMax,
1044
+ yMin,
1045
+ width,
1046
+ title
1047
+ } = _b, restProps = __objRest(_b, [
1048
+ "acceptNull",
1049
+ "data",
1050
+ "elementRef",
1051
+ "endDotCount",
1052
+ "endDotFillColor",
1053
+ "endDotRadius",
1054
+ "endDotStroke",
1055
+ "endDotStrokeWidth",
1056
+ "fillColor",
1057
+ "fillOpacity",
1058
+ "cursorStroke",
1059
+ "cursorStrokeWidth",
1060
+ "cursorStrokeLinecap",
1061
+ "cursorStrokeDasharray",
1062
+ "height",
1063
+ "isArea",
1064
+ "lineColor",
1065
+ "lineLength",
1066
+ "lineStrokeWidth",
1067
+ "showEndDot",
1068
+ "showTooltip",
1069
+ "yMax",
1070
+ "yMin",
1071
+ "width",
1072
+ "title"
1073
+ ]);
1074
+ const [anchor, setAnchor] = (0, react_exports.useState)(null);
1075
+ const [activeIndex, setActiveIndex] = (0, react_exports.useState)(0);
1076
+ const [hoveredIndex, setHoveredIndex] = (0, react_exports.useState)(null);
1077
+ const [componentIsFocused, setComponentIsFocused] = (0, react_exports.useState)(false);
1078
+ const titleId = (0, react_exports.useMemo)(() => (0, id_exports.createDOMID)("sparkline-title"), []);
1079
+ const pointRefs = (0, react_exports.useRef)([]);
1080
+ const containerRef = (0, react_exports.useRef)(null);
1081
+ const fillNull = (0, react_exports.useCallback)(() => data.map((value) => value != null ? value : 0), [data]);
1082
+ const getMax = (0, react_exports.useCallback)(() => {
1083
+ const dataMax = () => acceptNull ? (0, lodash_exports.max)(fillNull()) : (0, lodash_exports.max)(data);
1084
+ return yMax != null ? yMax : dataMax();
1085
+ }, [acceptNull, data, fillNull, yMax]);
1086
+ const getMin = (0, react_exports.useCallback)(() => {
1087
+ const dataMin = () => acceptNull ? (0, lodash_exports.min)(fillNull()) : (0, lodash_exports.min)(data);
1088
+ return yMin != null ? yMin : dataMin();
1089
+ }, [acceptNull, data, fillNull, yMin]);
1090
+ const getXUnit = (0, react_exports.useCallback)(
1091
+ (xMargin2) => {
1092
+ const xUnit = (width - xMargin2 * 2) / (data.length > 1 ? data.length - 1 : 1);
1093
+ return Math.max(0, xUnit);
1094
+ },
1095
+ [data.length, width]
1096
+ );
1097
+ const getYUnit = (0, react_exports.useCallback)(
1098
+ (yMargin2) => {
1099
+ const maxValue = getMax();
1100
+ const minValue = getMin();
1101
+ const yUnit = (height - yMargin2 * 2) / (maxValue - minValue || 2);
1102
+ return Math.max(0, yUnit);
1103
+ },
1104
+ [getMax, getMin, height]
1105
+ );
1106
+ const getSegmentSets = (0, react_exports.useCallback)(
1107
+ (segmentData, points2) => {
1108
+ const lines = [];
1109
+ const isolatedPoints = [];
1110
+ let currentLine = [];
1111
+ for (const [idx, p] of segmentData.entries()) {
1112
+ if (!acceptNull && (0, lodash_exports.isNull)(p)) {
1113
+ if (currentLine.length > 1) {
1114
+ lines.push(currentLine);
1115
+ } else if (currentLine.length === 1) {
1116
+ isolatedPoints.push(currentLine[0]);
1117
+ }
1118
+ currentLine = [];
1119
+ } else {
1120
+ currentLine.push(points2[idx]);
1121
+ }
1028
1122
  }
1029
- } else if (this.pointRefs.length > 0) {
1030
- const indexToFocus = activeIndex ? Math.min(this.pointRefs.length - 1, activeIndex) : 0;
1031
- this.pointRefs[indexToFocus].focus();
1032
- }
1033
- }
1034
- handleBlur(event) {
1035
- if (this.containerRef.current && !this.containerRef.current.contains(event.relatedTarget)) {
1036
- this.setState({ componentIsFocused: false });
1037
- }
1038
- }
1039
- handleKeyDown(event) {
1040
- const { data } = this.props;
1041
- const { activeIndex } = this.state;
1042
- const numPoints = data.length;
1043
- if (numPoints === 0) {
1044
- return;
1045
- }
1046
- const allowedKeys = ["ArrowLeft", "ArrowRight", "Home", "End"];
1047
- if (!allowedKeys.includes(event.key)) {
1048
- return;
1123
+ if (currentLine.length > 1) {
1124
+ lines.push(currentLine);
1125
+ } else if (currentLine.length === 1) {
1126
+ isolatedPoints.push(currentLine[0]);
1127
+ }
1128
+ return { lines, isolatedPoints };
1129
+ },
1130
+ [acceptNull]
1131
+ );
1132
+ const dataToPoints = (0, react_exports.useCallback)(
1133
+ (xMargin2, yMargin2) => {
1134
+ const xUnit = getXUnit(xMargin2);
1135
+ const yUnit = getYUnit(yMargin2);
1136
+ const maxValue = getMax();
1137
+ const minValue = getMin();
1138
+ return data.map((val, idx) => ({
1139
+ x: idx * xUnit + xMargin2,
1140
+ y: maxValue === minValue ? yUnit + yMargin2 : (maxValue - val) * yUnit + yMargin2
1141
+ })).map((p) => [p.x, p.y]);
1142
+ },
1143
+ [data, getMax, getMin, getXUnit, getYUnit]
1144
+ );
1145
+ const handleFocus = (0, react_exports.useCallback)(
1146
+ (event) => {
1147
+ const { target } = event;
1148
+ const { pointIndex: pointIndexStr } = target.dataset || {};
1149
+ if (pointIndexStr !== void 0) {
1150
+ const pointIndex = Number.parseInt(pointIndexStr, 10);
1151
+ if (activeIndex !== pointIndex || !componentIsFocused || hoveredIndex !== null) {
1152
+ setActiveIndex(pointIndex);
1153
+ setHoveredIndex(null);
1154
+ setComponentIsFocused(true);
1155
+ }
1156
+ } else if (pointRefs.current.length > 0) {
1157
+ const indexToFocus = activeIndex ? Math.min(pointRefs.current.length - 1, activeIndex) : 0;
1158
+ pointRefs.current[indexToFocus].focus();
1159
+ }
1160
+ },
1161
+ [activeIndex, componentIsFocused, hoveredIndex]
1162
+ );
1163
+ const handleBlur = (0, react_exports.useCallback)((event) => {
1164
+ if (containerRef.current && !containerRef.current.contains(event.relatedTarget)) {
1165
+ setComponentIsFocused(false);
1049
1166
  }
1050
- let newIndex;
1051
- switch (event.key) {
1052
- case "Home":
1167
+ }, []);
1168
+ const handleKeyDown = (0, react_exports.useCallback)(
1169
+ (event) => {
1170
+ const numPoints = data.length;
1171
+ const allowedKeys = ["ArrowLeft", "ArrowRight", "Home", "End"];
1172
+ if (!allowedKeys.includes(event.key)) {
1173
+ return;
1174
+ }
1175
+ let newIndex;
1176
+ if (event.key === "Home") {
1053
1177
  newIndex = 0;
1054
- break;
1055
- case "End":
1178
+ } else if (event.key === "End") {
1056
1179
  newIndex = numPoints - 1;
1057
- break;
1058
- case "ArrowLeft":
1180
+ } else if (event.key === "ArrowLeft") {
1059
1181
  newIndex = Math.max(0, activeIndex - 1);
1060
- break;
1061
- case "ArrowRight":
1182
+ } else {
1062
1183
  newIndex = Math.min(numPoints - 1, activeIndex + 1);
1063
- break;
1064
- default:
1065
- return;
1066
- }
1067
- if (newIndex !== activeIndex) {
1068
- event.preventDefault();
1069
- if (this.pointRefs[newIndex]) {
1070
- this.pointRefs[newIndex].focus();
1071
1184
  }
1072
- }
1073
- }
1074
- handleMouseOver(event) {
1075
- const pointIndexStr = event.target.dataset && event.target.dataset.pointIndex;
1076
- if (pointIndexStr !== void 0) {
1077
- const pointIndex = Number.parseInt(pointIndexStr, 10);
1078
- if (this.state.hoveredIndex !== pointIndex) {
1079
- this.setState({ hoveredIndex: pointIndex });
1185
+ if (newIndex !== activeIndex) {
1186
+ event.preventDefault();
1187
+ if (pointRefs.current[newIndex]) {
1188
+ pointRefs.current[newIndex].focus();
1189
+ }
1080
1190
  }
1081
- }
1082
- }
1083
- handleMouseLeave() {
1084
- if (this.state.hoveredIndex !== null) {
1085
- this.setState({ hoveredIndex: null });
1086
- }
1087
- }
1088
- getMax() {
1089
- const { data, acceptNull, yMax } = this.props;
1090
- const dataMax = () => acceptNull ? (0, lodash_exports.max)(this.fillNull()) : (0, lodash_exports.max)(data);
1091
- return yMax === void 0 ? dataMax() : yMax;
1092
- }
1093
- getMin() {
1094
- const { data, acceptNull, yMin } = this.props;
1095
- const dataMin = () => acceptNull ? (0, lodash_exports.min)(this.fillNull()) : (0, lodash_exports.min)(data);
1096
- return yMin === void 0 ? dataMin() : yMin;
1097
- }
1098
- /**
1099
- * Gets unit value of x axis.
1100
- * @param {Number} xMargin - margin of x axis.
1101
- * @return {Number} unit value of x axis.
1102
- * @private
1103
- */
1104
- getXUnit(xMargin) {
1105
- const { data, width } = this.props;
1106
- const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);
1107
- return Math.max(0, xUnit);
1108
- }
1109
- /**
1110
- * Gets unit value of y axis.
1111
- * @param {String} yMargin - margin of y axis.
1112
- * @return {Number} unit value of y axis.
1113
- * @private
1114
- */
1115
- getYUnit(yMargin) {
1116
- const { height } = this.props;
1117
- const maxValue = this.getMax();
1118
- const minValue = this.getMin();
1119
- const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);
1120
- return Math.max(0, yUnit);
1121
- }
1122
- /**
1123
- * Get a list of arrays of points for drawing lines, based on acceptNull property
1124
- * @method getSegmentSets
1125
- * @param {Array} data
1126
- * @param {Array} points
1127
- * @returns {Object} Object containing lines (arrays of points for polylines) and isolatedPoints (single points surrounded by nulls)
1128
- */
1129
- getSegmentSets(data, points) {
1130
- const { acceptNull } = this.props;
1131
- const lines = [];
1132
- const isolatedPoints = [];
1133
- let currentLine = [];
1134
- for (const [idx, p] of data.entries()) {
1135
- if (!acceptNull && (0, lodash_exports.isNull)(p)) {
1136
- if (currentLine.length > 1) {
1137
- lines.push(currentLine);
1138
- } else if (currentLine.length === 1) {
1139
- isolatedPoints.push(currentLine[0]);
1191
+ },
1192
+ [activeIndex, data.length]
1193
+ );
1194
+ const handleMouseOver = (0, react_exports.useCallback)(
1195
+ (event) => {
1196
+ var _a2;
1197
+ const pointIndexStr = (_a2 = event.target.dataset) == null ? void 0 : _a2.pointIndex;
1198
+ if (pointIndexStr !== void 0) {
1199
+ const pointIndex = Number.parseInt(pointIndexStr, 10);
1200
+ if (hoveredIndex !== pointIndex) {
1201
+ setHoveredIndex(pointIndex);
1140
1202
  }
1141
- currentLine = [];
1142
- } else {
1143
- currentLine.push(points[idx]);
1144
1203
  }
1204
+ },
1205
+ [hoveredIndex]
1206
+ );
1207
+ const handleMouseLeave = (0, react_exports.useCallback)(() => {
1208
+ if (hoveredIndex !== null) {
1209
+ setHoveredIndex(null);
1145
1210
  }
1146
- if (currentLine.length > 1) {
1147
- lines.push(currentLine);
1148
- } else if (currentLine.length === 1) {
1149
- isolatedPoints.push(currentLine[0]);
1150
- }
1151
- return { lines, isolatedPoints };
1152
- }
1153
- /**
1154
- * Utility for fill null value with number 0.
1155
- * @private
1156
- */
1157
- fillNull() {
1158
- const { data } = this.props;
1159
- return data.map((value) => value === null ? 0 : value);
1160
- }
1161
- /**
1162
- * Converts data to points in svg
1163
- * @param {Number} xMargin - margin of x axis.
1164
- * @param {Number} yMargin - margin of x axis.
1165
- * @return {Array} points coordination.
1166
- * @private
1167
- */
1168
- dataToPoints(xMargin, yMargin) {
1169
- const { data } = this.props;
1170
- const xUnit = this.getXUnit(xMargin);
1171
- const yUnit = this.getYUnit(yMargin);
1172
- const maxValue = this.getMax();
1173
- const minValue = this.getMin();
1174
- return data.map((val, idx) => ({
1175
- x: idx * xUnit + xMargin,
1176
- y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin
1177
- })).map((p) => [p.x, p.y]);
1178
- }
1179
- /**
1180
- * Renders rect area for each datapoint for interactions and screen reader support
1181
- * @param {Array} points - array of points coordination.
1182
- * @param {Number} xMargin - margin of x axis.
1183
- * @return {Array} array of svg rect objects
1184
- * @private
1185
- */
1186
- renderRect(points, xMargin) {
1187
- const { data, height, showTooltip } = this.props;
1188
- const xUnit = this.getXUnit(xMargin);
1189
- return points.map((p, i) => (
1190
- /* eslint-disable react/no-array-index-key */
1191
- /* @__PURE__ */ react_default.createElement(
1192
- "rect",
1193
- {
1194
- key: `${i}_${p[0]}`,
1195
- role: "graphics-symbol",
1196
- "aria-label": `Value: ${data[i] === null ? "N/A" : data[i]}, point ${i + 1} of ${data.length}`,
1197
- "data-test": `rect-${i}`,
1198
- "data-point-index": i,
1199
- tabIndex: showTooltip && this.state.activeIndex === i ? 0 : -1,
1200
- ref: (el) => {
1201
- this.pointRefs[i] = el;
1202
- },
1203
- x: Math.max(0, p[0] - xUnit / 2),
1204
- y: 0,
1205
- width: i === 0 && data.length !== 1 ? xUnit / 2 : xUnit,
1206
- height,
1207
- style: { fillOpacity: 0 },
1208
- onMouseDown: preventDefault
1209
- }
1210
- )
1211
- ));
1212
- }
1213
- // Renders area chart
1214
- renderArea(points) {
1215
- const { data, fillColor, fillOpacity, height, isArea } = this.props;
1216
- if (!isArea || points.length === 0) {
1211
+ }, [hoveredIndex]);
1212
+ const handleCursorMount = (0, react_exports.useCallback)((el) => {
1213
+ setAnchor(el);
1214
+ }, []);
1215
+ const renderRect = (points2, xMargin2) => {
1216
+ const xUnit = getXUnit(xMargin2);
1217
+ return points2.map((p, i) => {
1218
+ var _a2;
1219
+ return (
1220
+ /* eslint-disable react/no-array-index-key */
1221
+ /* @__PURE__ */ react_default.createElement(
1222
+ "rect",
1223
+ {
1224
+ key: `${i}_${p[0]}`,
1225
+ role: "graphics-symbol",
1226
+ "aria-label": `Value: ${(_a2 = data[i]) != null ? _a2 : "N/A"}, point ${i + 1} of ${data.length}`,
1227
+ "data-test": `rect-${i}`,
1228
+ "data-point-index": i,
1229
+ tabIndex: showTooltip && activeIndex === i ? 0 : -1,
1230
+ ref: (el) => {
1231
+ pointRefs.current[i] = el;
1232
+ },
1233
+ x: Math.max(0, p[0] - xUnit / 2),
1234
+ y: 0,
1235
+ width: i === 0 && data.length !== 1 ? xUnit / 2 : xUnit,
1236
+ height,
1237
+ style: { fillOpacity: 0 },
1238
+ onMouseDown: preventDefault
1239
+ }
1240
+ )
1241
+ );
1242
+ });
1243
+ };
1244
+ const renderArea = (points2) => {
1245
+ if (!isArea || points2.length === 0) {
1217
1246
  return null;
1218
1247
  }
1219
- const { lines } = this.getSegmentSets(data, points);
1248
+ const { lines } = getSegmentSets(data, points2);
1220
1249
  const segments = lines.map(
1221
1250
  (s) => s.concat([
1222
1251
  [s.at(-1)[0], height],
@@ -1240,80 +1269,56 @@ var _SparkLine = class _SparkLine extends react_exports.Component {
1240
1269
  }
1241
1270
  }
1242
1271
  )));
1243
- }
1244
- renderCursor(currentPointX, shouldRender) {
1245
- const { cursorStroke, cursorStrokeWidth, cursorStrokeLinecap, cursorStrokeDasharray, height } = this.props;
1246
- return shouldRender && /* @__PURE__ */ react_default.createElement(
1247
- "line",
1248
- {
1249
- "data-test": "cursor",
1250
- ref: this.handleCursorMount,
1251
- x1: currentPointX,
1252
- y1: 0,
1253
- x2: currentPointX,
1254
- y2: height,
1255
- style: {
1256
- stroke: cursorStroke,
1257
- strokeWidth: cursorStrokeWidth,
1258
- strokeLinecap: cursorStrokeLinecap,
1259
- strokeDasharray: cursorStrokeDasharray
1260
- }
1272
+ };
1273
+ const renderCursor = (currentPointX2, shouldRender) => shouldRender && /* @__PURE__ */ react_default.createElement(
1274
+ "line",
1275
+ {
1276
+ "data-test": "cursor",
1277
+ ref: handleCursorMount,
1278
+ x1: currentPointX2,
1279
+ y1: 0,
1280
+ x2: currentPointX2,
1281
+ y2: height,
1282
+ style: {
1283
+ stroke: cursorStroke,
1284
+ strokeWidth: cursorStrokeWidth,
1285
+ strokeLinecap: cursorStrokeLinecap,
1286
+ strokeDasharray: cursorStrokeDasharray
1261
1287
  }
1262
- );
1263
- }
1264
- renderTooltip(tooltipValue, isOpen) {
1265
- const { anchor } = this.state;
1266
- const displayValue = tooltipValue === null ? "-" : tooltipValue;
1288
+ }
1289
+ );
1290
+ const renderTooltip = (tooltipValue2, isOpen) => {
1291
+ const displayValue = tooltipValue2 === null ? "-" : tooltipValue2;
1267
1292
  return /* @__PURE__ */ react_default.createElement(
1268
1293
  Popover_default,
1269
1294
  {
1270
1295
  "data-test": "tooltip",
1271
1296
  open: isOpen,
1272
1297
  anchor,
1273
- "data-test-value": tooltipValue,
1298
+ "data-test-value": tooltipValue2,
1274
1299
  appearance: "inverted",
1275
1300
  defaultPlacement: "above",
1276
1301
  animation: false
1277
1302
  },
1278
1303
  /* @__PURE__ */ react_default.createElement(StyledTooltip, null, displayValue)
1279
1304
  );
1280
- }
1281
- /**
1282
- * Renders one or more svg circles to highlight values on the sparkline
1283
- * @method renderEndDots
1284
- * @param {Array[Array[Number]]} points // x,y coordinates of values
1285
- * @param {Number} dotsToShow // number of end dots to display
1286
- * @param {Number} xMargin // used when calculating the dot radius
1287
- * @returns {Object} React representation of SVG group
1288
- * @private
1289
- */
1290
- renderEndDots(points, dotsToShow, xMargin) {
1291
- const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;
1292
- return /* @__PURE__ */ react_default.createElement("g", null, points.slice(-dotsToShow).map((point) => /* @__PURE__ */ react_default.createElement(
1293
- "circle",
1294
- {
1295
- key: `end-dot${point[0]}${point[1]}`,
1296
- "data-test": "end-dot",
1297
- cx: point[0],
1298
- cy: point[1],
1299
- r: endDotRadius === 0 ? xMargin : endDotRadius,
1300
- style: {
1301
- fill: endDotFillColor,
1302
- stroke: endDotStroke,
1303
- strokeWidth: endDotStrokeWidth
1304
- }
1305
+ };
1306
+ const renderEndDots = (points2, dotsToShow2, xMargin2) => /* @__PURE__ */ react_default.createElement("g", null, points2.slice(-dotsToShow2).map((point) => /* @__PURE__ */ react_default.createElement(
1307
+ "circle",
1308
+ {
1309
+ key: `end-dot${point[0]}${point[1]}`,
1310
+ "data-test": "end-dot",
1311
+ cx: point[0],
1312
+ cy: point[1],
1313
+ r: endDotRadius === 0 ? xMargin2 : endDotRadius,
1314
+ style: {
1315
+ fill: endDotFillColor,
1316
+ stroke: endDotStroke,
1317
+ strokeWidth: endDotStrokeWidth
1305
1318
  }
1306
- )));
1307
- }
1308
- /**
1309
- * Renders circles for isolated points (single data points surrounded by nulls)
1310
- * These would otherwise be invisible since a line requires at least 2 points
1311
- * @method renderIsolatedPoints
1312
- * @param {Array} isolatedPoints - Array of [x, y] coordinates for isolated points
1313
- * @returns {Object} SVG Group of circles
1314
- */
1315
- renderIsolatedPoints(isolatedPoints) {
1316
- const { lineColor, lineStrokeWidth } = this.props;
1319
+ }
1320
+ )));
1321
+ const renderIsolatedPoints = (isolatedPoints) => {
1317
1322
  if (!isolatedPoints || isolatedPoints.length === 0) {
1318
1323
  return null;
1319
1324
  }
@@ -1331,20 +1336,10 @@ var _SparkLine = class _SparkLine extends react_exports.Component {
1331
1336
  }
1332
1337
  }
1333
1338
  )));
1334
- }
1335
- /**
1336
- * Renders the line(s) above the area graph
1337
- * @method renderPolyline
1338
- * @param {Array} points
1339
- * @returns {Object} SVG Group of polylines and isolated points
1340
- */
1341
- renderPolyline(points) {
1342
- const { data, lineColor, lineLength, lineStrokeWidth } = this.props;
1343
- const linePoints = (0, lodash_exports.isFinite)(lineLength) && lineLength > 0 ? lineLength : points.length;
1344
- const { lines, isolatedPoints } = this.getSegmentSets(
1345
- data.slice(-linePoints),
1346
- points.slice(-linePoints)
1347
- );
1339
+ };
1340
+ const renderPolyline = (points2) => {
1341
+ const linePoints = (0, lodash_exports.isFinite)(lineLength) && lineLength > 0 ? lineLength : points2.length;
1342
+ const { lines, isolatedPoints } = getSegmentSets(data.slice(-linePoints), points2.slice(-linePoints));
1348
1343
  return /* @__PURE__ */ react_default.createElement("g", { "data-test": "sparkline" }, lines.map((lineData) => /* @__PURE__ */ react_default.createElement(
1349
1344
  "polyline",
1350
1345
  {
@@ -1359,10 +1354,18 @@ var _SparkLine = class _SparkLine extends react_exports.Component {
1359
1354
  },
1360
1355
  points: lineData.join(" ")
1361
1356
  }
1362
- )), this.renderIsolatedPoints(isolatedPoints));
1363
- }
1364
- getInteractionState({ data, points, showTooltip, activeIndex, hoveredIndex, componentIsFocused }) {
1365
- if (!showTooltip) {
1357
+ )), renderIsolatedPoints(isolatedPoints));
1358
+ };
1359
+ const getInteractionState = ({
1360
+ interactionData,
1361
+ points: interactionPoints,
1362
+ interactionShowTooltip,
1363
+ interactionActiveIndex,
1364
+ interactionHoveredIndex,
1365
+ interactionComponentIsFocused
1366
+ }) => {
1367
+ var _a2;
1368
+ if (!interactionShowTooltip) {
1366
1369
  return {
1367
1370
  currentPointX: null,
1368
1371
  tooltipValue: null,
@@ -1370,200 +1373,94 @@ var _SparkLine = class _SparkLine extends react_exports.Component {
1370
1373
  interactiveProps: {}
1371
1374
  };
1372
1375
  }
1373
- const interactiveProps = {
1374
- onKeyDown: this.handleKeyDown,
1375
- onMouseOver: this.handleMouseOver,
1376
- onMouseLeave: this.handleMouseLeave,
1377
- onFocus: this.handleFocus,
1378
- onBlur: this.handleBlur
1376
+ const interactiveProps2 = {
1377
+ onKeyDown: handleKeyDown,
1378
+ onMouseOver: handleMouseOver,
1379
+ onMouseLeave: handleMouseLeave,
1380
+ onFocus: handleFocus,
1381
+ onBlur: handleBlur
1379
1382
  };
1380
- const isHovered = hoveredIndex !== null;
1381
- const shouldDisplayInteractiveElements = (isHovered || componentIsFocused) && data.length > 0;
1383
+ const isHovered = interactionHoveredIndex !== null;
1384
+ const shouldDisplayInteractiveElements = (isHovered || interactionComponentIsFocused) && interactionData.length > 0;
1382
1385
  if (!shouldDisplayInteractiveElements) {
1383
1386
  return {
1384
1387
  currentPointX: null,
1385
1388
  tooltipValue: null,
1386
1389
  showCursorAndTooltip: false,
1387
- interactiveProps
1390
+ interactiveProps: interactiveProps2
1388
1391
  };
1389
1392
  }
1390
- const displayIndex = isHovered ? hoveredIndex : activeIndex;
1393
+ const displayIndex = isHovered ? interactionHoveredIndex : interactionActiveIndex;
1391
1394
  const isValidIndex = displayIndex !== null && displayIndex >= 0;
1392
- const withinBounds = isValidIndex && displayIndex < data.length && displayIndex < points.length;
1395
+ const withinBounds = isValidIndex && displayIndex < interactionData.length && displayIndex < interactionPoints.length;
1393
1396
  if (!withinBounds) {
1394
1397
  return {
1395
1398
  currentPointX: null,
1396
1399
  tooltipValue: null,
1397
1400
  showCursorAndTooltip: false,
1398
- interactiveProps
1401
+ interactiveProps: interactiveProps2
1399
1402
  };
1400
1403
  }
1401
- const displayPointCoords = points[displayIndex];
1402
- const currentPointX = displayPointCoords ? displayPointCoords[0] : null;
1403
- const tooltipValue = data[displayIndex];
1404
+ const displayPointCoords = interactionPoints[displayIndex];
1405
+ const currentPointX2 = (_a2 = displayPointCoords == null ? void 0 : displayPointCoords[0]) != null ? _a2 : null;
1406
+ const tooltipValue2 = interactionData[displayIndex];
1404
1407
  return {
1405
- currentPointX,
1406
- tooltipValue,
1407
- showCursorAndTooltip: currentPointX !== null,
1408
- interactiveProps
1408
+ currentPointX: currentPointX2,
1409
+ tooltipValue: tooltipValue2,
1410
+ showCursorAndTooltip: currentPointX2 !== null,
1411
+ interactiveProps: interactiveProps2
1409
1412
  };
1413
+ };
1414
+ if (data.length === 0) {
1415
+ return null;
1410
1416
  }
1411
- render() {
1412
- const {
1413
- data,
1414
- elementRef,
1415
- showTooltip,
1416
- showEndDot,
1417
- endDotRadius,
1418
- endDotStrokeWidth,
1419
- endDotCount,
1420
- height,
1421
- isArea,
1422
- lineStrokeWidth,
1423
- width,
1424
- title
1425
- } = this.props;
1426
- const { activeIndex, hoveredIndex, componentIsFocused } = this.state;
1427
- if (data.length === 0) {
1417
+ if (pointRefs.current.length !== data.length) {
1418
+ pointRefs.current.length = data.length;
1419
+ }
1420
+ const xMargin = endDotRadius + endDotStrokeWidth / 2;
1421
+ const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);
1422
+ const points = dataToPoints(xMargin, yMargin);
1423
+ const dotsToShow = Math.max(showEndDot && 1, (0, lodash_exports.isFinite)(endDotCount) && endDotCount > 0 && endDotCount);
1424
+ const { currentPointX, tooltipValue, showCursorAndTooltip, interactiveProps } = getInteractionState({
1425
+ interactionData: data,
1426
+ points,
1427
+ interactionShowTooltip: showTooltip,
1428
+ interactionActiveIndex: activeIndex,
1429
+ interactionHoveredIndex: hoveredIndex,
1430
+ interactionComponentIsFocused: componentIsFocused
1431
+ });
1432
+ const ariaLabel = title || (0, i18n_exports._)("Source count over time sparkline trend");
1433
+ return /* @__PURE__ */ react_default.createElement(
1434
+ "div",
1435
+ __spreadValues(__spreadValues({
1436
+ "data-test": "line",
1437
+ "data-test-type": isArea ? "area" : "line",
1438
+ ref: (el) => {
1439
+ containerRef.current = el;
1440
+ if (typeof elementRef === "function") {
1441
+ elementRef(el);
1442
+ } else if (elementRef && typeof elementRef === "object") {
1443
+ elementRef.current = el;
1444
+ }
1445
+ }
1446
+ }, interactiveProps), (0, lodash_exports.omit)(restProps, PROP_KEYS)),
1447
+ /* @__PURE__ */ react_default.createElement(StyledSvg, { height, width, "aria-labelledby": titleId, "data-test": "sparkline-svg" }, /* @__PURE__ */ react_default.createElement("title", { id: titleId, "data-test": "sparkline-title" }, ariaLabel), /* @__PURE__ */ react_default.createElement("g", null, showTooltip ? renderCursor(currentPointX, showCursorAndTooltip) : null, renderPolyline(points), renderArea(points), dotsToShow ? renderEndDots(points, dotsToShow, xMargin) : null, renderRect(points, xMargin), showTooltip ? renderTooltip(tooltipValue, showCursorAndTooltip) : null))
1448
+ );
1449
+ };
1450
+ var SparkLine = (_a) => {
1451
+ var _b = _a, { data = [] } = _b, props = __objRest(_b, ["data"]);
1452
+ if (true) {
1453
+ if (!Array.isArray(data)) {
1454
+ console.error("Data provided to SparkLine must be an array.");
1428
1455
  return null;
1429
1456
  }
1430
- if (this.pointRefs.length !== data.length) {
1431
- this.pointRefs.length = data.length;
1457
+ if (!data.every((value) => value === null || (0, lodash_exports.isFinite)(value))) {
1458
+ console.error("Data provided to SparkLine must contain finite numbers or null.");
1459
+ return null;
1432
1460
  }
1433
- const xMargin = endDotRadius + endDotStrokeWidth / 2;
1434
- const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);
1435
- const points = this.dataToPoints(xMargin, yMargin);
1436
- const dotsToShow = Math.max(showEndDot && 1, (0, lodash_exports.isFinite)(endDotCount) && endDotCount > 0 && endDotCount);
1437
- const { currentPointX, tooltipValue, showCursorAndTooltip, interactiveProps } = this.getInteractionState({
1438
- data,
1439
- points,
1440
- showTooltip,
1441
- activeIndex,
1442
- hoveredIndex,
1443
- componentIsFocused
1444
- });
1445
- const ariaLabel = title || (0, i18n_exports._)("Source count over time sparkline trend");
1446
- return /* @__PURE__ */ react_default.createElement(
1447
- "div",
1448
- __spreadValues(__spreadValues({
1449
- "data-test": "line",
1450
- "data-test-type": isArea ? "area" : "line",
1451
- ref: (el) => {
1452
- this.containerRef.current = el;
1453
- if (typeof elementRef === "function") {
1454
- elementRef(el);
1455
- } else if (elementRef && typeof elementRef === "object") {
1456
- elementRef.current = el;
1457
- }
1458
- }
1459
- }, interactiveProps), (0, lodash_exports.omit)(this.props, (0, lodash_exports.keys)(_SparkLine.propTypes))),
1460
- /* @__PURE__ */ react_default.createElement(
1461
- StyledSvg,
1462
- {
1463
- height,
1464
- width,
1465
- "aria-labelledby": this.titleId,
1466
- "data-test": "sparkline-svg"
1467
- },
1468
- /* @__PURE__ */ react_default.createElement("title", { id: this.titleId, "data-test": "sparkline-title" }, ariaLabel),
1469
- /* @__PURE__ */ react_default.createElement("g", null, showTooltip ? this.renderCursor(currentPointX, showCursorAndTooltip) : null, this.renderPolyline(points), this.renderArea(points), dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null, this.renderRect(points, xMargin), showTooltip ? this.renderTooltip(tooltipValue, showCursorAndTooltip) : null)
1470
- )
1471
- );
1472
1461
  }
1462
+ return /* @__PURE__ */ react_default.createElement(SparkLineInner, __spreadValues({ data }, props));
1473
1463
  };
1474
- __publicField(_SparkLine, "propTypes", {
1475
- /**
1476
- * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.
1477
- */
1478
- acceptNull: prop_types_default.bool,
1479
- /** Array of numbers. These data numbers are converted to points and show on sparkline. */
1480
- data: (props) => {
1481
- if (!(0, lodash_exports.isArray)(props.data)) {
1482
- return new Error("Data provided to Sparkline must be an array.");
1483
- }
1484
- if (props.acceptNull && !props.data.every((value) => (0, lodash_exports.isNull)(value) || (0, lodash_exports.isFinite)(value))) {
1485
- return new Error("Data provided to Sparkline must be finite numbers or null.");
1486
- }
1487
- if (!props.acceptNull && !props.data.every((value) => (0, lodash_exports.isFinite)(value))) {
1488
- return new Error("Data provided to Sparkline must be finite numbers.");
1489
- }
1490
- return null;
1491
- },
1492
- /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */
1493
- elementRef: prop_types_default.oneOfType([prop_types_default.func, prop_types_default.object]),
1494
- /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */
1495
- endDotCount: prop_types_default.number,
1496
- /** Fills color to the end dot. */
1497
- endDotFillColor: prop_types_default.string,
1498
- /**
1499
- * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.
1500
- */
1501
- endDotRadius: prop_types_default.number,
1502
- /** Sets end dot circle stroke color. */
1503
- endDotStroke: prop_types_default.string,
1504
- /** Sets end dot circle stroke width in pixels. */
1505
- endDotStrokeWidth: prop_types_default.number,
1506
- /** Fills color to area. */
1507
- fillColor: prop_types_default.string,
1508
- /** Fills opacity to area. Value must be in 0 ~ 1. */
1509
- fillOpacity: prop_types_default.string,
1510
- /** Sets cursor stroke color. */
1511
- cursorStroke: prop_types_default.string,
1512
- /** Sets cursor stroke width in pixels. */
1513
- cursorStrokeWidth: prop_types_default.number,
1514
- /** Sets cursor line cap style. */
1515
- cursorStrokeLinecap: prop_types_default.oneOf(["butt", "round", "square"]),
1516
- /** Sets cursor dash array style. */
1517
- cursorStrokeDasharray: prop_types_default.string,
1518
- /**
1519
- * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,
1520
- * sparkline figures out the container height by itself.
1521
- */
1522
- height: prop_types_default.number.isRequired,
1523
- /** When set to `true`, sparkline shows as area. */
1524
- isArea: prop_types_default.bool,
1525
- /** The sparkline line color. */
1526
- lineColor: prop_types_default.string,
1527
- /** Allows user to draw only the last data points for the line. */
1528
- lineLength: prop_types_default.number,
1529
- /** The sparkline line stroke width in pixels. */
1530
- lineStrokeWidth: prop_types_default.number,
1531
- /** Enable to show end dot. */
1532
- showEndDot: prop_types_default.bool,
1533
- /** Enable to show tooltip. */
1534
- showTooltip: prop_types_default.bool,
1535
- /** Sets the data value range and maximum value shown on sparkline. */
1536
- yMax: prop_types_default.number,
1537
- /** Sets the data value range and minimum value shown on sparkline. */
1538
- yMin: prop_types_default.number,
1539
- /**
1540
- * The width of the container.
1541
- */
1542
- width: prop_types_default.number.isRequired,
1543
- /** Sets the a11y title text on sparkline. */
1544
- title: prop_types_default.string
1545
- });
1546
- __publicField(_SparkLine, "defaultProps", {
1547
- acceptNull: false,
1548
- data: [],
1549
- showTooltip: true,
1550
- endDotCount: 0,
1551
- showEndDot: false,
1552
- endDotRadius: 0,
1553
- endDotFillColor: "white",
1554
- endDotStroke: "black",
1555
- endDotStrokeWidth: 0,
1556
- fillColor: "#65a637",
1557
- fillOpacity: ".1",
1558
- cursorStroke: "#5184AF",
1559
- cursorStrokeWidth: 3,
1560
- cursorStrokeLinecap: "square",
1561
- cursorStrokeDasharray: "1, 5",
1562
- isArea: false,
1563
- lineColor: "#65a637",
1564
- lineStrokeWidth: 1
1565
- });
1566
- var SparkLine = _SparkLine;
1567
1464
  var SparkLine_default = SparkLine;
1568
1465
 
1569
1466
  // src/SingleValue/PureSingleValue/SingleValueSparkline.jsx
@@ -2095,7 +1992,7 @@ var SingleValue = (_a) => {
2095
1992
  majorValueTitle,
2096
1993
  trendColor,
2097
1994
  trendText,
2098
- trendTextFontSize,
1995
+ trendTextFontSize: trendFontSize || Math.min(contentHeight, trendTextFontSize),
2099
1996
  showTrendIndicator: shouldShowTrend(trendDisplay),
2100
1997
  unit,
2101
1998
  unitPosition,
@@ -2463,7 +2360,7 @@ var Message_default = "default" in defaultImport29 ? defaultImport29.default : d
2463
2360
  var isMissing = (v) => {
2464
2361
  return v === null || v === void 0;
2465
2362
  };
2466
- var missingKeys = (keys2, target) => keys2.filter((k) => isMissing(target[k]));
2363
+ var missingKeys = (keys, target) => keys.filter((k) => isMissing(target[k]));
2467
2364
  var MissingPropsMessage = (props) => {
2468
2365
  const {
2469
2366
  width = SplunkVisualization_default.defaults.width,
@@ -2512,7 +2409,7 @@ var Cover = styled_components_default.div`
2512
2409
  bottom: 0;
2513
2410
  `;
2514
2411
  var Blocker = styled_components_default.div.attrs({
2515
- "data-splunk-visualization-version": "28.6.0 - 92427899a"
2412
+ "data-splunk-visualization-version": "28.8.0 - 633c53372"
2516
2413
  })`
2517
2414
  position: relative;
2518
2415
  width: 100%;
@@ -2602,7 +2499,7 @@ var withFixedSizeContainer = (Viz) => {
2602
2499
  FixSizeItem,
2603
2500
  {
2604
2501
  "data-test": "fix-size-item",
2605
- "data-splunk-visualization-version": "28.6.0 - 92427899a",
2502
+ "data-splunk-visualization-version": "28.8.0 - 633c53372",
2606
2503
  width,
2607
2504
  height,
2608
2505
  backgroundColor
@@ -5634,9 +5531,9 @@ var evaluatePanelOption = (panelDataSources, allOptions, optionKey, vizContext)
5634
5531
  return Number.NaN;
5635
5532
  }
5636
5533
  };
5637
- var sortTrellisKeys = (keys2, trellisSortBy, trellisSortOrder, modifiedDataSourceBySplitBy, mergedOptions, vizContext) => {
5534
+ var sortTrellisKeys = (keys, trellisSortBy, trellisSortOrder, modifiedDataSourceBySplitBy, mergedOptions, vizContext) => {
5638
5535
  if (trellisSortBy === "name") {
5639
- keys2.sort((a, b) => {
5536
+ keys.sort((a, b) => {
5640
5537
  const cmp = a.localeCompare(b, void 0, { numeric: true, sensitivity: "base" });
5641
5538
  return trellisSortOrder === "descending" ? -cmp : cmp;
5642
5539
  });
@@ -5647,7 +5544,7 @@ var sortTrellisKeys = (keys2, trellisSortBy, trellisSortOrder, modifiedDataSourc
5647
5544
  } else {
5648
5545
  optionKey = mergedOptions.value !== void 0 ? "value" : "majorValue";
5649
5546
  }
5650
- keys2.sort((a, b) => {
5547
+ keys.sort((a, b) => {
5651
5548
  const valA = evaluatePanelOption(
5652
5549
  modifiedDataSourceBySplitBy[a],
5653
5550
  mergedOptions,
@@ -5669,7 +5566,7 @@ var sortTrellisKeys = (keys2, trellisSortBy, trellisSortOrder, modifiedDataSourc
5669
5566
  return trellisSortOrder === "descending" ? -cmp : cmp;
5670
5567
  });
5671
5568
  } else if (trellisSortOrder === "descending") {
5672
- keys2.reverse();
5569
+ keys.reverse();
5673
5570
  }
5674
5571
  };
5675
5572
  var TrellisContainer = styled_components_default.div`