@splunk/visualizations 28.2.1 → 28.3.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 (814) hide show
  1. package/Area/Area.d.ts.map +1 -0
  2. package/Area/areaUtils.d.ts.map +1 -0
  3. package/Area/config.d.ts.map +1 -0
  4. package/Area/index.d.ts.map +1 -0
  5. package/Area.js +269 -133
  6. package/Area.js.map +4 -4
  7. package/Bar/Bar.d.ts.map +1 -0
  8. package/Bar/barUtils.d.ts.map +1 -0
  9. package/Bar/config.d.ts.map +1 -0
  10. package/Bar/index.d.ts.map +1 -0
  11. package/Bar.js +269 -133
  12. package/Bar.js.map +4 -4
  13. package/Bubble/Bubble.d.ts.map +1 -0
  14. package/Bubble/bubbleUtils.d.ts.map +1 -0
  15. package/Bubble/config.d.ts.map +1 -0
  16. package/Bubble/index.d.ts.map +1 -0
  17. package/Bubble.js +265 -129
  18. package/Bubble.js.map +4 -4
  19. package/CHANGELOG.external.md +58 -1
  20. package/ChoroplethSvg/ChoroplethSvg.d.ts.map +1 -0
  21. package/ChoroplethSvg/ErrorMessage/ErrorMessage.d.ts.map +1 -0
  22. package/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts.map +1 -0
  23. package/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts.map +1 -0
  24. package/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts.map +1 -0
  25. package/ChoroplethSvg/config.d.ts.map +1 -0
  26. package/ChoroplethSvg/index.d.ts.map +1 -0
  27. package/ChoroplethSvg.js +175 -54
  28. package/ChoroplethSvg.js.map +2 -2
  29. package/Column/Column.d.ts.map +1 -0
  30. package/Column/columnUtils.d.ts.map +1 -0
  31. package/Column/config.d.ts.map +1 -0
  32. package/Column/index.d.ts.map +1 -0
  33. package/Column.js +269 -133
  34. package/Column.js.map +4 -4
  35. package/Ellipse/Ellipse.d.ts.map +1 -0
  36. package/Ellipse/config.d.ts.map +1 -0
  37. package/Ellipse/index.d.ts.map +1 -0
  38. package/Ellipse.js +174 -51
  39. package/Ellipse.js.map +2 -2
  40. package/Events/EventUtils.d.ts.map +1 -0
  41. package/Events/Events.d.ts.map +1 -0
  42. package/Events/PureEvents/FieldSummaryTooltip.d.ts.map +1 -0
  43. package/Events/PureEvents/PureEvents.d.ts.map +1 -0
  44. package/Events/PureEvents/TimeControlsPopover.d.ts.map +1 -0
  45. package/Events/config.d.ts.map +1 -0
  46. package/Events/index.d.ts.map +1 -0
  47. package/Events.js +271 -142
  48. package/Events.js.map +2 -2
  49. package/FillerGauge/FillerGauge.d.ts.map +1 -0
  50. package/FillerGauge/PureFillerGauge/FillerGauge.d.ts.map +1 -0
  51. package/FillerGauge/config.d.ts.map +1 -0
  52. package/FillerGauge/index.d.ts.map +1 -0
  53. package/FillerGauge.js +174 -51
  54. package/FillerGauge.js.map +2 -2
  55. package/Image/Image.d.ts.map +1 -0
  56. package/Image/ImageApi.d.ts.map +1 -0
  57. package/Image/config.d.ts.map +1 -0
  58. package/Image/index.d.ts.map +1 -0
  59. package/Image.js +177 -54
  60. package/Image.js.map +2 -2
  61. package/LICENSE.md +0 -1
  62. package/Line/Line.d.ts.map +1 -0
  63. package/Line/config.d.ts.map +1 -0
  64. package/Line/index.d.ts.map +1 -0
  65. package/Line/lineUtils.d.ts.map +1 -0
  66. package/Line/mockdata/LineData.d.ts.map +1 -0
  67. package/Line.js +269 -133
  68. package/Line.js.map +4 -4
  69. package/LinkGraph/ESTestDataSources.d.ts.map +1 -0
  70. package/LinkGraph/ESTestTemplate.d.ts.map +1 -0
  71. package/LinkGraph/LinkGraph.d.ts.map +1 -0
  72. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts.map +1 -0
  73. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -0
  74. package/LinkGraph/PureLinkGraph/components/Edges.d.ts.map +1 -0
  75. package/LinkGraph/PureLinkGraph/components/Field.d.ts.map +1 -0
  76. package/LinkGraph/PureLinkGraph/components/FieldStyles.d.ts.map +1 -0
  77. package/LinkGraph/PureLinkGraph/components/Graph.d.ts.map +1 -0
  78. package/LinkGraph/PureLinkGraph/components/GraphStyles.d.ts.map +1 -0
  79. package/LinkGraph/PureLinkGraph/components/Node.d.ts.map +1 -0
  80. package/LinkGraph/PureLinkGraph/components/Nodes.d.ts.map +1 -0
  81. package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/utils/iconLoader.d.ts.map +1 -1
  82. package/LinkGraph/config.d.ts.map +1 -0
  83. package/LinkGraph/index.d.ts.map +1 -0
  84. package/LinkGraph.js +174 -51
  85. package/LinkGraph.js.map +2 -2
  86. package/Map/Map.d.ts.map +1 -0
  87. package/Map/PureMap/BubbleLayer.d.ts.map +1 -0
  88. package/Map/PureMap/ChoroplethLayer.d.ts.map +1 -0
  89. package/Map/PureMap/ClusterLayer.d.ts.map +1 -0
  90. package/Map/PureMap/LocalChoroplethLayer.d.ts.map +1 -0
  91. package/{dist/types/Map → Map}/PureMap/MapUtils.d.ts +10 -6
  92. package/Map/PureMap/MapUtils.d.ts.map +1 -0
  93. package/Map/PureMap/MarkerLayer.d.ts.map +1 -0
  94. package/Map/PureMap/MarkerWrapper.d.ts.map +1 -0
  95. package/Map/PureMap/PureMap.d.ts.map +1 -0
  96. package/Map/PureMap/PureMapContainer.d.ts.map +1 -0
  97. package/Map/PureMap/Tooltip.d.ts.map +1 -0
  98. package/{dist/types/Map → Map}/PureMap/mockdata/data.d.ts +21 -17
  99. package/Map/PureMap/mockdata/data.d.ts.map +1 -0
  100. package/Map/config.d.ts.map +1 -0
  101. package/Map/index.d.ts.map +1 -0
  102. package/Map.js +321 -139
  103. package/Map.js.map +3 -3
  104. package/Markdown/Markdown.d.ts.map +1 -0
  105. package/Markdown/config.d.ts.map +1 -0
  106. package/Markdown/index.d.ts.map +1 -0
  107. package/Markdown.js +174 -51
  108. package/Markdown.js.map +2 -2
  109. package/MarkerGauge/MarkerGauge.d.ts.map +1 -0
  110. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts.map +1 -0
  111. package/MarkerGauge/config.d.ts.map +1 -0
  112. package/MarkerGauge/index.d.ts.map +1 -0
  113. package/MarkerGauge.js +174 -51
  114. package/MarkerGauge.js.map +2 -2
  115. package/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -0
  116. package/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts.map +1 -0
  117. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesCanvas.d.ts.map +1 -0
  118. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts.map +1 -0
  119. package/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesPrompt.d.ts.map +1 -0
  120. package/ParallelCoordinates/config.d.ts.map +1 -0
  121. package/ParallelCoordinates/index.d.ts.map +1 -0
  122. package/ParallelCoordinates/mockdata/arrayValueData.d.ts.map +1 -0
  123. package/ParallelCoordinates/mockdata/sampleCarData.d.ts.map +1 -0
  124. package/ParallelCoordinates/mockdata/sampleCarNumericalData.d.ts.map +1 -0
  125. package/ParallelCoordinates/mockdata/sampleFoodData.d.ts.map +1 -0
  126. package/ParallelCoordinates/mockdata/sampleStringNumericalData.d.ts.map +1 -0
  127. package/ParallelCoordinates.js +187 -54
  128. package/ParallelCoordinates.js.map +2 -2
  129. package/Pie/Pie.d.ts.map +1 -0
  130. package/Pie/config.d.ts.map +1 -0
  131. package/Pie/index.d.ts.map +1 -0
  132. package/Pie/pieUtils.d.ts.map +1 -0
  133. package/Pie.config.js +13 -0
  134. package/Pie.config.js.map +2 -2
  135. package/Pie.js +287 -135
  136. package/Pie.js.map +4 -4
  137. package/Punchcard/Punchcard.d.ts.map +1 -0
  138. package/Punchcard/PurePunchcard/Punchcard.d.ts.map +1 -0
  139. package/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts.map +1 -0
  140. package/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts.map +1 -0
  141. package/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts.map +1 -0
  142. package/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts.map +1 -0
  143. package/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts.map +1 -0
  144. package/Punchcard/PurePunchcard/src/PunchcardRow.d.ts.map +1 -0
  145. package/Punchcard/PurePunchcard/src/utils/punchcardUtils.d.ts.map +1 -0
  146. package/Punchcard/config.d.ts.map +1 -0
  147. package/Punchcard/index.d.ts.map +1 -0
  148. package/Punchcard/punchcardUtils.d.ts.map +1 -0
  149. package/Punchcard.js +193 -73
  150. package/Punchcard.js.map +4 -4
  151. package/README.md +1 -1
  152. package/Rectangle/Rectangle.d.ts.map +1 -0
  153. package/Rectangle/config.d.ts.map +1 -0
  154. package/Rectangle/index.d.ts.map +1 -0
  155. package/Rectangle.config.js +13 -22
  156. package/Rectangle.config.js.map +4 -4
  157. package/Rectangle.js +189 -75
  158. package/Rectangle.js.map +4 -4
  159. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -0
  160. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -0
  161. package/Sankey/PureSankey/SankeyModels.d.ts.map +1 -0
  162. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -0
  163. package/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -0
  164. package/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -0
  165. package/Sankey/PureSankey/mockdata/data.d.ts.map +1 -0
  166. package/Sankey/Sankey.d.ts.map +1 -0
  167. package/Sankey/config.d.ts.map +1 -0
  168. package/Sankey/index.d.ts.map +1 -0
  169. package/Sankey.js +174 -51
  170. package/Sankey.js.map +2 -2
  171. package/Scatter/Scatter.d.ts.map +1 -0
  172. package/Scatter/config.d.ts.map +1 -0
  173. package/Scatter/index.d.ts.map +1 -0
  174. package/Scatter/mockdata/data.d.ts.map +1 -0
  175. package/Scatter/scatterUtils.d.ts.map +1 -0
  176. package/Scatter.js +269 -133
  177. package/Scatter.js.map +4 -4
  178. package/SingleValue/SingleValue.d.ts.map +1 -0
  179. package/SingleValue/config.d.ts.map +1 -0
  180. package/SingleValue/index.d.ts.map +1 -0
  181. package/SingleValue.js +261 -101
  182. package/SingleValue.js.map +2 -2
  183. package/SingleValueBasic/index.d.ts.map +1 -0
  184. package/SingleValueBasic.js +22 -13
  185. package/SingleValueBasic.js.map +2 -2
  186. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -0
  187. package/SingleValueIcon/config.d.ts.map +1 -0
  188. package/SingleValueIcon/index.d.ts.map +1 -0
  189. package/SingleValueIcon.js +202 -66
  190. package/SingleValueIcon.js.map +2 -2
  191. package/SingleValueRadial/PureSingleValueRadial/GaugeGraph.d.ts.map +1 -0
  192. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts.map +1 -0
  193. package/SingleValueRadial/SingleValueRadial.d.ts.map +1 -0
  194. package/SingleValueRadial/config.d.ts.map +1 -0
  195. package/SingleValueRadial/index.d.ts.map +1 -0
  196. package/SingleValueRadial.js +196 -64
  197. package/SingleValueRadial.js.map +2 -2
  198. package/SparkLine/index.d.ts.map +1 -0
  199. package/SparkLine.js +65 -37
  200. package/SparkLine.js.map +2 -2
  201. package/Table/PureTable.d.ts.map +1 -0
  202. package/Table/Table.d.ts +18 -0
  203. package/Table/Table.d.ts.map +1 -0
  204. package/Table/cells/ArrayCell.d.ts.map +1 -0
  205. package/Table/cells/SparklineCell.d.ts.map +1 -0
  206. package/Table/cells/SwitchTableCell.d.ts.map +1 -0
  207. package/Table/cells/TextCell.d.ts.map +1 -0
  208. package/Table/cells/index.d.ts.map +1 -0
  209. package/Table/config.d.ts.map +1 -0
  210. package/{dist/types/Table → Table}/hooks.d.ts +3 -6
  211. package/Table/hooks.d.ts.map +1 -0
  212. package/Table/index.d.ts.map +1 -0
  213. package/Table.js +503 -232
  214. package/Table.js.map +4 -4
  215. package/Timeline/PureTimeline/PureTimeline.d.ts.map +1 -0
  216. package/Timeline/PureTimeline/src/CursorPlugin.d.ts.map +1 -0
  217. package/Timeline/PureTimeline/src/TimelineLegend.d.ts.map +1 -0
  218. package/{dist/types/Timeline → Timeline}/PureTimeline/src/TimelinePlugin.d.ts +3 -1
  219. package/Timeline/PureTimeline/src/TimelinePlugin.d.ts.map +1 -0
  220. package/Timeline/PureTimeline/src/TimelineTooltip.d.ts.map +1 -0
  221. package/Timeline/PureTimeline/src/TimelineUplot.d.ts.map +1 -0
  222. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -0
  223. package/{dist/types/Timeline → Timeline}/PureTimeline/src/XAxisPlugin.d.ts +2 -1
  224. package/Timeline/PureTimeline/src/XAxisPlugin.d.ts.map +1 -0
  225. package/{dist/types/Timeline → Timeline}/PureTimeline/src/utils/timelineUtils.d.ts +26 -2
  226. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -0
  227. package/Timeline/Timeline.d.ts.map +1 -0
  228. package/Timeline/config.d.ts.map +1 -0
  229. package/Timeline/index.d.ts.map +1 -0
  230. package/Timeline/mockdata/basicTimelineData.d.ts.map +1 -0
  231. package/Timeline/mockdata/categoricalTimelineData.d.ts.map +1 -0
  232. package/Timeline/mockdata/timelineDataSource.d.ts.map +1 -0
  233. package/Timeline.config.js +13 -23
  234. package/Timeline.config.js.map +4 -4
  235. package/Timeline.js +792 -405
  236. package/Timeline.js.map +4 -4
  237. package/{dist/types/common → common}/Charting.d.ts +2 -0
  238. package/common/Charting.d.ts.map +1 -0
  239. package/common/Charting.js +47 -34
  240. package/common/Charting.js.map +4 -4
  241. package/common/ChartingApi.d.ts.map +1 -0
  242. package/common/DocExampleWithVizSandbox.d.ts.map +1 -0
  243. package/common/DocExampleWithVizSandbox.js.map +1 -1
  244. package/common/OverviewDoc.d.ts.map +1 -0
  245. package/common/OverviewDoc.js.map +1 -1
  246. package/common/SplunkVisualization.d.ts.map +1 -0
  247. package/common/SplunkVisualizationApi.d.ts.map +1 -0
  248. package/common/ThemedDefaults.d.ts.map +1 -0
  249. package/common/TimeSeriesChartWrapper.d.ts +18 -0
  250. package/common/TimeSeriesChartWrapper.d.ts.map +1 -0
  251. package/common/TimeSeriesChartWrapper.js +181 -40
  252. package/common/TimeSeriesChartWrapper.js.map +2 -2
  253. package/{dist/types/common → common}/chartingUtils.d.ts +14 -4
  254. package/common/chartingUtils.d.ts.map +1 -0
  255. package/common/chartingUtils.js +22 -5
  256. package/common/chartingUtils.js.map +2 -2
  257. package/common/components/IconPlaceholder.d.ts.map +1 -0
  258. package/common/components/MissingPropsMessage.d.ts.map +1 -0
  259. package/common/components/TrellisTitle.d.ts.map +1 -0
  260. package/common/configContext/singleValueContext.d.ts.map +1 -0
  261. package/common/docUtils.d.ts.map +1 -0
  262. package/common/docUtils.js +1 -1
  263. package/common/docUtils.js.map +2 -2
  264. package/common/editorConfig/AxesChartColorAndStyle.d.ts.map +1 -0
  265. package/common/editorConfig/AxesChartDataConfig.d.ts.map +1 -0
  266. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -0
  267. package/common/editorConfig/AxesChartLegend.d.ts.map +1 -0
  268. package/common/editorConfig/AxesChartXGridAndLabels.d.ts.map +1 -0
  269. package/common/editorConfig/AxesChartY2GridAndLabels.d.ts.map +1 -0
  270. package/common/editorConfig/AxesChartYGridAndLabels.d.ts.map +1 -0
  271. package/common/editorConfig/BackgroundColor.d.ts.map +1 -0
  272. package/common/editorConfig/DynamicFillColorEditor.d.ts.map +1 -0
  273. package/common/editorConfig/DynamicGaugeColorEditor.d.ts.map +1 -0
  274. package/common/editorConfig/DynamicStrokeColorEditor.d.ts.map +1 -0
  275. package/common/editorConfig/Gauge.d.ts.map +1 -0
  276. package/common/editorConfig/Legend.d.ts.map +1 -0
  277. package/common/editorConfig/RadialBackgroundColor.d.ts.map +1 -0
  278. package/common/editorConfig/StaticFillColorEditor.d.ts.map +1 -0
  279. package/common/editorConfig/StaticGaugeColorEditor.d.ts.map +1 -0
  280. package/common/editorConfig/StaticStrokeColorEditor.d.ts.map +1 -0
  281. package/common/editorConfig/TrellisEditors.d.ts.map +1 -0
  282. package/common/gaugeUtils.d.ts.map +1 -0
  283. package/common/hocs/FixedSizeContainer.d.ts.map +1 -0
  284. package/common/hocs/mockdata/trellisData.d.ts.map +1 -0
  285. package/common/hocs/withEditModeCover.d.ts.map +1 -0
  286. package/common/hocs/withPlaceholder.d.ts.map +1 -0
  287. package/common/hocs/withTrellis.d.ts.map +1 -0
  288. package/common/hooks/useDeepMemo.d.ts.map +1 -0
  289. package/common/hooks/useDownsampleDataSources.d.ts.map +1 -0
  290. package/common/hooks/useEventCallback.d.ts.map +1 -0
  291. package/common/hooks/useGetXAndYFields.d.ts.map +1 -0
  292. package/common/hooks/usePagination.d.ts.map +1 -0
  293. package/common/hooks/usePrevious.d.ts.map +1 -0
  294. package/common/hooks/useSorting.d.ts.map +1 -0
  295. package/common/hooks/useTrellisEnabled.d.ts.map +1 -0
  296. package/common/interfaces/ChartEvent.d.ts.map +1 -0
  297. package/common/interfaces/DashboardVizProps.d.ts.map +1 -0
  298. package/common/interfaces/DataContract.d.ts.map +1 -0
  299. package/common/interfaces/DataSource.d.ts.map +1 -0
  300. package/common/interfaces/DefaultContext.d.ts.map +1 -0
  301. package/common/interfaces/Editor.d.ts.map +1 -0
  302. package/common/interfaces/ExtendedDashViz.d.ts.map +1 -0
  303. package/common/interfaces/Object.d.ts.map +1 -0
  304. package/common/interfaces/Overview.d.ts.map +1 -0
  305. package/common/interfaces/ThemedDefaults.d.ts.map +1 -0
  306. package/common/interfaces/VizActionHandler.d.ts.map +1 -0
  307. package/common/interfaces/VizBehavior.d.ts.map +1 -0
  308. package/common/interfaces/VizCategory.d.ts.map +1 -0
  309. package/common/interfaces/VizConfig.d.ts.map +1 -0
  310. package/common/interfaces/VizEvent.d.ts.map +1 -0
  311. package/common/interfaces/VizProps.d.ts.map +1 -0
  312. package/common/interfaces/VizRegistry.d.ts.map +1 -0
  313. package/common/interfaces/VizSize.d.ts.map +1 -0
  314. package/common/interfaces/VizStatus.d.ts.map +1 -0
  315. package/common/interfaces/index.d.ts.map +1 -0
  316. package/common/shapeUtils.d.ts.map +1 -0
  317. package/common/utils/configUtils.d.ts.map +1 -0
  318. package/common/utils/dataUtils.d.ts.map +1 -0
  319. package/common/utils/featureFlagUtils.d.ts +4 -0
  320. package/common/utils/featureFlagUtils.d.ts.map +1 -0
  321. package/common/utils/featureFlagUtils.js.map +2 -2
  322. package/common/utils/hocUtils.d.ts.map +1 -0
  323. package/common/utils/mapUtils.d.ts.map +1 -0
  324. package/common/utils/mapUtils.js.map +2 -2
  325. package/common/utils/styleUtils.d.ts.map +1 -0
  326. package/common/utils/tableUtils.d.ts +10 -0
  327. package/common/utils/tableUtils.d.ts.map +1 -0
  328. package/common/utils/tableUtils.js +20 -8
  329. package/common/utils/tableUtils.js.map +2 -2
  330. package/common/utils/trellisUtils.d.ts.map +1 -0
  331. package/common/utils/urlUtils.d.ts.map +1 -0
  332. package/{dist/types/common → common}/withDashboardViz.d.ts +7 -0
  333. package/common/withDashboardViz.d.ts.map +1 -0
  334. package/common/withDashboardViz.js +174 -51
  335. package/common/withDashboardViz.js.map +2 -2
  336. package/package.json +21 -22
  337. package/dist/types/Area/Area.d.ts.map +0 -1
  338. package/dist/types/Area/areaUtils.d.ts.map +0 -1
  339. package/dist/types/Area/config.d.ts.map +0 -1
  340. package/dist/types/Area/index.d.ts.map +0 -1
  341. package/dist/types/Bar/Bar.d.ts.map +0 -1
  342. package/dist/types/Bar/barUtils.d.ts.map +0 -1
  343. package/dist/types/Bar/config.d.ts.map +0 -1
  344. package/dist/types/Bar/index.d.ts.map +0 -1
  345. package/dist/types/Bubble/Bubble.d.ts.map +0 -1
  346. package/dist/types/Bubble/bubbleUtils.d.ts.map +0 -1
  347. package/dist/types/Bubble/config.d.ts.map +0 -1
  348. package/dist/types/Bubble/index.d.ts.map +0 -1
  349. package/dist/types/ChoroplethSvg/ChoroplethSvg.d.ts.map +0 -1
  350. package/dist/types/ChoroplethSvg/ErrorMessage/ErrorMessage.d.ts.map +0 -1
  351. package/dist/types/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts.map +0 -1
  352. package/dist/types/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts.map +0 -1
  353. package/dist/types/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts.map +0 -1
  354. package/dist/types/ChoroplethSvg/config.d.ts.map +0 -1
  355. package/dist/types/ChoroplethSvg/index.d.ts.map +0 -1
  356. package/dist/types/Column/Column.d.ts.map +0 -1
  357. package/dist/types/Column/columnUtils.d.ts.map +0 -1
  358. package/dist/types/Column/config.d.ts.map +0 -1
  359. package/dist/types/Column/index.d.ts.map +0 -1
  360. package/dist/types/Ellipse/Ellipse.d.ts.map +0 -1
  361. package/dist/types/Ellipse/config.d.ts.map +0 -1
  362. package/dist/types/Ellipse/index.d.ts.map +0 -1
  363. package/dist/types/Events/EventUtils.d.ts.map +0 -1
  364. package/dist/types/Events/Events.d.ts.map +0 -1
  365. package/dist/types/Events/PureEvents/FieldSummaryTooltip.d.ts.map +0 -1
  366. package/dist/types/Events/PureEvents/PureEvents.d.ts.map +0 -1
  367. package/dist/types/Events/PureEvents/TimeControlsPopover.d.ts.map +0 -1
  368. package/dist/types/Events/config.d.ts.map +0 -1
  369. package/dist/types/Events/index.d.ts.map +0 -1
  370. package/dist/types/FillerGauge/FillerGauge.d.ts.map +0 -1
  371. package/dist/types/FillerGauge/PureFillerGauge/FillerGauge.d.ts.map +0 -1
  372. package/dist/types/FillerGauge/config.d.ts.map +0 -1
  373. package/dist/types/FillerGauge/index.d.ts.map +0 -1
  374. package/dist/types/Image/Image.d.ts.map +0 -1
  375. package/dist/types/Image/ImageApi.d.ts.map +0 -1
  376. package/dist/types/Image/config.d.ts.map +0 -1
  377. package/dist/types/Image/index.d.ts.map +0 -1
  378. package/dist/types/Line/Line.d.ts.map +0 -1
  379. package/dist/types/Line/config.d.ts.map +0 -1
  380. package/dist/types/Line/index.d.ts.map +0 -1
  381. package/dist/types/Line/lineUtils.d.ts.map +0 -1
  382. package/dist/types/Line/mockdata/LineData.d.ts.map +0 -1
  383. package/dist/types/LinkGraph/ESTestDataSources.d.ts.map +0 -1
  384. package/dist/types/LinkGraph/ESTestTemplate.d.ts.map +0 -1
  385. package/dist/types/LinkGraph/LinkGraph.d.ts.map +0 -1
  386. package/dist/types/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts.map +0 -1
  387. package/dist/types/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +0 -1
  388. package/dist/types/LinkGraph/PureLinkGraph/components/Edges.d.ts.map +0 -1
  389. package/dist/types/LinkGraph/PureLinkGraph/components/Field.d.ts.map +0 -1
  390. package/dist/types/LinkGraph/PureLinkGraph/components/FieldStyles.d.ts.map +0 -1
  391. package/dist/types/LinkGraph/PureLinkGraph/components/Graph.d.ts.map +0 -1
  392. package/dist/types/LinkGraph/PureLinkGraph/components/GraphStyles.d.ts.map +0 -1
  393. package/dist/types/LinkGraph/PureLinkGraph/components/Node.d.ts.map +0 -1
  394. package/dist/types/LinkGraph/PureLinkGraph/components/Nodes.d.ts.map +0 -1
  395. package/dist/types/LinkGraph/config.d.ts.map +0 -1
  396. package/dist/types/LinkGraph/index.d.ts.map +0 -1
  397. package/dist/types/Map/Map.d.ts.map +0 -1
  398. package/dist/types/Map/MapContextDefault.d.ts +0 -39
  399. package/dist/types/Map/MapContextDefault.d.ts.map +0 -1
  400. package/dist/types/Map/PureMap/BubbleLayer.d.ts.map +0 -1
  401. package/dist/types/Map/PureMap/ChoroplethLayer.d.ts.map +0 -1
  402. package/dist/types/Map/PureMap/ClusterLayer.d.ts.map +0 -1
  403. package/dist/types/Map/PureMap/LocalChoroplethLayer.d.ts.map +0 -1
  404. package/dist/types/Map/PureMap/MapUtils.d.ts.map +0 -1
  405. package/dist/types/Map/PureMap/MarkerLayer.d.ts.map +0 -1
  406. package/dist/types/Map/PureMap/MarkerWrapper.d.ts.map +0 -1
  407. package/dist/types/Map/PureMap/PureMap.d.ts.map +0 -1
  408. package/dist/types/Map/PureMap/PureMapContainer.d.ts.map +0 -1
  409. package/dist/types/Map/PureMap/Tooltip.d.ts.map +0 -1
  410. package/dist/types/Map/PureMap/mockdata/data.d.ts.map +0 -1
  411. package/dist/types/Map/config.d.ts.map +0 -1
  412. package/dist/types/Map/index.d.ts.map +0 -1
  413. package/dist/types/Markdown/Markdown.d.ts.map +0 -1
  414. package/dist/types/Markdown/config.d.ts.map +0 -1
  415. package/dist/types/Markdown/index.d.ts.map +0 -1
  416. package/dist/types/MarkerGauge/MarkerGauge.d.ts.map +0 -1
  417. package/dist/types/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts.map +0 -1
  418. package/dist/types/MarkerGauge/config.d.ts.map +0 -1
  419. package/dist/types/MarkerGauge/index.d.ts.map +0 -1
  420. package/dist/types/ParallelCoordinates/ParallelCoordinates.d.ts.map +0 -1
  421. package/dist/types/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts.map +0 -1
  422. package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesCanvas.d.ts.map +0 -1
  423. package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts.map +0 -1
  424. package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesPrompt.d.ts.map +0 -1
  425. package/dist/types/ParallelCoordinates/config.d.ts.map +0 -1
  426. package/dist/types/ParallelCoordinates/index.d.ts.map +0 -1
  427. package/dist/types/ParallelCoordinates/mockdata/arrayValueData.d.ts.map +0 -1
  428. package/dist/types/ParallelCoordinates/mockdata/sampleCarData.d.ts.map +0 -1
  429. package/dist/types/ParallelCoordinates/mockdata/sampleCarNumericalData.d.ts.map +0 -1
  430. package/dist/types/ParallelCoordinates/mockdata/sampleFoodData.d.ts.map +0 -1
  431. package/dist/types/ParallelCoordinates/mockdata/sampleStringNumericalData.d.ts.map +0 -1
  432. package/dist/types/Pie/Pie.d.ts.map +0 -1
  433. package/dist/types/Pie/config.d.ts.map +0 -1
  434. package/dist/types/Pie/index.d.ts.map +0 -1
  435. package/dist/types/Pie/pieUtils.d.ts.map +0 -1
  436. package/dist/types/Punchcard/Punchcard.d.ts.map +0 -1
  437. package/dist/types/Punchcard/PurePunchcard/Punchcard.d.ts.map +0 -1
  438. package/dist/types/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts.map +0 -1
  439. package/dist/types/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts.map +0 -1
  440. package/dist/types/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts.map +0 -1
  441. package/dist/types/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts.map +0 -1
  442. package/dist/types/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts.map +0 -1
  443. package/dist/types/Punchcard/PurePunchcard/src/PunchcardRow.d.ts.map +0 -1
  444. package/dist/types/Punchcard/PurePunchcard/src/utils/punchcardUtils.d.ts.map +0 -1
  445. package/dist/types/Punchcard/config.d.ts.map +0 -1
  446. package/dist/types/Punchcard/index.d.ts.map +0 -1
  447. package/dist/types/Punchcard/punchcardUtils.d.ts.map +0 -1
  448. package/dist/types/Rectangle/Rectangle.d.ts.map +0 -1
  449. package/dist/types/Rectangle/config.d.ts.map +0 -1
  450. package/dist/types/Rectangle/index.d.ts.map +0 -1
  451. package/dist/types/Sankey/PureSankey/PureSankey.d.ts.map +0 -1
  452. package/dist/types/Sankey/PureSankey/SankeyLink.d.ts.map +0 -1
  453. package/dist/types/Sankey/PureSankey/SankeyModels.d.ts.map +0 -1
  454. package/dist/types/Sankey/PureSankey/SankeyNode.d.ts.map +0 -1
  455. package/dist/types/Sankey/PureSankey/SankeyTooltip.d.ts.map +0 -1
  456. package/dist/types/Sankey/PureSankey/SankeyUtils.d.ts.map +0 -1
  457. package/dist/types/Sankey/PureSankey/mockdata/data.d.ts.map +0 -1
  458. package/dist/types/Sankey/Sankey.d.ts.map +0 -1
  459. package/dist/types/Sankey/config.d.ts.map +0 -1
  460. package/dist/types/Sankey/index.d.ts.map +0 -1
  461. package/dist/types/Scatter/Scatter.d.ts.map +0 -1
  462. package/dist/types/Scatter/config.d.ts.map +0 -1
  463. package/dist/types/Scatter/index.d.ts.map +0 -1
  464. package/dist/types/Scatter/mockdata/data.d.ts.map +0 -1
  465. package/dist/types/Scatter/scatterUtils.d.ts.map +0 -1
  466. package/dist/types/SingleValue/SingleValue.d.ts.map +0 -1
  467. package/dist/types/SingleValue/config.d.ts.map +0 -1
  468. package/dist/types/SingleValue/index.d.ts.map +0 -1
  469. package/dist/types/SingleValueBasic/index.d.ts.map +0 -1
  470. package/dist/types/SingleValueIcon/SingleValueIcon.d.ts.map +0 -1
  471. package/dist/types/SingleValueIcon/config.d.ts.map +0 -1
  472. package/dist/types/SingleValueIcon/index.d.ts.map +0 -1
  473. package/dist/types/SingleValueRadial/PureSingleValueRadial/GaugeGraph.d.ts.map +0 -1
  474. package/dist/types/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts.map +0 -1
  475. package/dist/types/SingleValueRadial/SingleValueRadial.d.ts.map +0 -1
  476. package/dist/types/SingleValueRadial/config.d.ts.map +0 -1
  477. package/dist/types/SingleValueRadial/index.d.ts.map +0 -1
  478. package/dist/types/SparkLine/index.d.ts.map +0 -1
  479. package/dist/types/Table/PureTable.d.ts.map +0 -1
  480. package/dist/types/Table/Table.d.ts +0 -10
  481. package/dist/types/Table/Table.d.ts.map +0 -1
  482. package/dist/types/Table/cells/ArrayCell.d.ts.map +0 -1
  483. package/dist/types/Table/cells/SparklineCell.d.ts.map +0 -1
  484. package/dist/types/Table/cells/SwitchTableCell.d.ts.map +0 -1
  485. package/dist/types/Table/cells/TextCell.d.ts.map +0 -1
  486. package/dist/types/Table/cells/index.d.ts.map +0 -1
  487. package/dist/types/Table/config.d.ts.map +0 -1
  488. package/dist/types/Table/hooks.d.ts.map +0 -1
  489. package/dist/types/Table/index.d.ts.map +0 -1
  490. package/dist/types/Timeline/PureTimeline/PureTimeline.d.ts.map +0 -1
  491. package/dist/types/Timeline/PureTimeline/src/CursorPlugin.d.ts.map +0 -1
  492. package/dist/types/Timeline/PureTimeline/src/TimelineLegend.d.ts.map +0 -1
  493. package/dist/types/Timeline/PureTimeline/src/TimelinePlugin.d.ts.map +0 -1
  494. package/dist/types/Timeline/PureTimeline/src/TimelineTooltip.d.ts.map +0 -1
  495. package/dist/types/Timeline/PureTimeline/src/TimelineUplot.d.ts.map +0 -1
  496. package/dist/types/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +0 -1
  497. package/dist/types/Timeline/PureTimeline/src/XAxisPlugin.d.ts.map +0 -1
  498. package/dist/types/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +0 -1
  499. package/dist/types/Timeline/Timeline.d.ts.map +0 -1
  500. package/dist/types/Timeline/config.d.ts.map +0 -1
  501. package/dist/types/Timeline/index.d.ts.map +0 -1
  502. package/dist/types/Timeline/mockdata/basicTimelineData.d.ts.map +0 -1
  503. package/dist/types/Timeline/mockdata/categoricalTimelineData.d.ts.map +0 -1
  504. package/dist/types/Timeline/mockdata/timelineDataSource.d.ts.map +0 -1
  505. package/dist/types/common/Charting.d.ts.map +0 -1
  506. package/dist/types/common/ChartingApi.d.ts.map +0 -1
  507. package/dist/types/common/DocExampleWithVizSandbox.d.ts.map +0 -1
  508. package/dist/types/common/OverviewDoc.d.ts.map +0 -1
  509. package/dist/types/common/SplunkVisualization.d.ts.map +0 -1
  510. package/dist/types/common/SplunkVisualizationApi.d.ts.map +0 -1
  511. package/dist/types/common/ThemedDefaults.d.ts.map +0 -1
  512. package/dist/types/common/TimeSeriesChartWrapper.d.ts +0 -7
  513. package/dist/types/common/TimeSeriesChartWrapper.d.ts.map +0 -1
  514. package/dist/types/common/chartingUtils.d.ts.map +0 -1
  515. package/dist/types/common/components/IconPlaceholder.d.ts.map +0 -1
  516. package/dist/types/common/components/MissingPropsMessage.d.ts.map +0 -1
  517. package/dist/types/common/components/TrellisTitle.d.ts.map +0 -1
  518. package/dist/types/common/configContext/singleValueContext.d.ts.map +0 -1
  519. package/dist/types/common/docUtils.d.ts.map +0 -1
  520. package/dist/types/common/editorConfig/AxesChartColorAndStyle.d.ts.map +0 -1
  521. package/dist/types/common/editorConfig/AxesChartDataConfig.d.ts.map +0 -1
  522. package/dist/types/common/editorConfig/AxesChartDataDisplay.d.ts.map +0 -1
  523. package/dist/types/common/editorConfig/AxesChartLegend.d.ts.map +0 -1
  524. package/dist/types/common/editorConfig/AxesChartXGridAndLabels.d.ts.map +0 -1
  525. package/dist/types/common/editorConfig/AxesChartY2GridAndLabels.d.ts.map +0 -1
  526. package/dist/types/common/editorConfig/AxesChartYGridAndLabels.d.ts.map +0 -1
  527. package/dist/types/common/editorConfig/BackgroundColor.d.ts.map +0 -1
  528. package/dist/types/common/editorConfig/DynamicFillColorEditor.d.ts.map +0 -1
  529. package/dist/types/common/editorConfig/DynamicGaugeColorEditor.d.ts.map +0 -1
  530. package/dist/types/common/editorConfig/DynamicStrokeColorEditor.d.ts.map +0 -1
  531. package/dist/types/common/editorConfig/Gauge.d.ts.map +0 -1
  532. package/dist/types/common/editorConfig/Legend.d.ts.map +0 -1
  533. package/dist/types/common/editorConfig/RadialBackgroundColor.d.ts.map +0 -1
  534. package/dist/types/common/editorConfig/StaticFillColorEditor.d.ts.map +0 -1
  535. package/dist/types/common/editorConfig/StaticGaugeColorEditor.d.ts.map +0 -1
  536. package/dist/types/common/editorConfig/StaticStrokeColorEditor.d.ts.map +0 -1
  537. package/dist/types/common/editorConfig/TrellisEditors.d.ts.map +0 -1
  538. package/dist/types/common/gaugeUtils.d.ts.map +0 -1
  539. package/dist/types/common/hocs/FixedSizeContainer.d.ts.map +0 -1
  540. package/dist/types/common/hocs/mockdata/trellisData.d.ts.map +0 -1
  541. package/dist/types/common/hocs/withEditModeCover.d.ts.map +0 -1
  542. package/dist/types/common/hocs/withPlaceholder.d.ts.map +0 -1
  543. package/dist/types/common/hocs/withTrellis.d.ts.map +0 -1
  544. package/dist/types/common/hooks/useDeepMemo.d.ts.map +0 -1
  545. package/dist/types/common/hooks/useDownsampleDataSources.d.ts.map +0 -1
  546. package/dist/types/common/hooks/useEventCallback.d.ts.map +0 -1
  547. package/dist/types/common/hooks/useGetXAndYFields.d.ts.map +0 -1
  548. package/dist/types/common/hooks/usePagination.d.ts.map +0 -1
  549. package/dist/types/common/hooks/usePrevious.d.ts.map +0 -1
  550. package/dist/types/common/hooks/useSorting.d.ts.map +0 -1
  551. package/dist/types/common/hooks/useTrellisEnabled.d.ts.map +0 -1
  552. package/dist/types/common/interfaces/ChartEvent.d.ts.map +0 -1
  553. package/dist/types/common/interfaces/DashboardVizProps.d.ts.map +0 -1
  554. package/dist/types/common/interfaces/DataContract.d.ts.map +0 -1
  555. package/dist/types/common/interfaces/DataSource.d.ts.map +0 -1
  556. package/dist/types/common/interfaces/DefaultContext.d.ts.map +0 -1
  557. package/dist/types/common/interfaces/Editor.d.ts.map +0 -1
  558. package/dist/types/common/interfaces/ExtendedDashViz.d.ts.map +0 -1
  559. package/dist/types/common/interfaces/Object.d.ts.map +0 -1
  560. package/dist/types/common/interfaces/Overview.d.ts.map +0 -1
  561. package/dist/types/common/interfaces/ThemedDefaults.d.ts.map +0 -1
  562. package/dist/types/common/interfaces/VizActionHandler.d.ts.map +0 -1
  563. package/dist/types/common/interfaces/VizBehavior.d.ts.map +0 -1
  564. package/dist/types/common/interfaces/VizCategory.d.ts.map +0 -1
  565. package/dist/types/common/interfaces/VizConfig.d.ts.map +0 -1
  566. package/dist/types/common/interfaces/VizEvent.d.ts.map +0 -1
  567. package/dist/types/common/interfaces/VizProps.d.ts.map +0 -1
  568. package/dist/types/common/interfaces/VizRegistry.d.ts.map +0 -1
  569. package/dist/types/common/interfaces/VizSize.d.ts.map +0 -1
  570. package/dist/types/common/interfaces/VizStatus.d.ts.map +0 -1
  571. package/dist/types/common/interfaces/index.d.ts.map +0 -1
  572. package/dist/types/common/shapeUtils.d.ts.map +0 -1
  573. package/dist/types/common/utils/configUtils.d.ts.map +0 -1
  574. package/dist/types/common/utils/dataUtils.d.ts.map +0 -1
  575. package/dist/types/common/utils/featureFlagUtils.d.ts +0 -3
  576. package/dist/types/common/utils/featureFlagUtils.d.ts.map +0 -1
  577. package/dist/types/common/utils/hocUtils.d.ts.map +0 -1
  578. package/dist/types/common/utils/mapUtils.d.ts.map +0 -1
  579. package/dist/types/common/utils/styleUtils.d.ts.map +0 -1
  580. package/dist/types/common/utils/tableUtils.d.ts +0 -3
  581. package/dist/types/common/utils/tableUtils.d.ts.map +0 -1
  582. package/dist/types/common/utils/trellisUtils.d.ts.map +0 -1
  583. package/dist/types/common/utils/urlUtils.d.ts.map +0 -1
  584. package/dist/types/common/withDashboardViz.d.ts.map +0 -1
  585. /package/{dist/types/Area → Area}/Area.d.ts +0 -0
  586. /package/{dist/types/Area → Area}/areaUtils.d.ts +0 -0
  587. /package/{dist/types/Area → Area}/config.d.ts +0 -0
  588. /package/{dist/types/Area → Area}/index.d.ts +0 -0
  589. /package/{dist/types/Bar → Bar}/Bar.d.ts +0 -0
  590. /package/{dist/types/Bar → Bar}/barUtils.d.ts +0 -0
  591. /package/{dist/types/Bar → Bar}/config.d.ts +0 -0
  592. /package/{dist/types/Bar → Bar}/index.d.ts +0 -0
  593. /package/{dist/types/Bubble → Bubble}/Bubble.d.ts +0 -0
  594. /package/{dist/types/Bubble → Bubble}/bubbleUtils.d.ts +0 -0
  595. /package/{dist/types/Bubble → Bubble}/config.d.ts +0 -0
  596. /package/{dist/types/Bubble → Bubble}/index.d.ts +0 -0
  597. /package/{dist/types/ChoroplethSvg → ChoroplethSvg}/ChoroplethSvg.d.ts +0 -0
  598. /package/{dist/types/ChoroplethSvg → ChoroplethSvg}/ErrorMessage/ErrorMessage.d.ts +0 -0
  599. /package/{dist/types/ChoroplethSvg → ChoroplethSvg}/PureChoroplethSvg/PureChoroplethSvg.d.ts +0 -0
  600. /package/{dist/types/ChoroplethSvg → ChoroplethSvg}/PureChoroplethSvg/SvgChoroplethDynamic.d.ts +0 -0
  601. /package/{dist/types/ChoroplethSvg → ChoroplethSvg}/PureChoroplethSvg/SvgMutator.d.ts +0 -0
  602. /package/{dist/types/ChoroplethSvg → ChoroplethSvg}/config.d.ts +0 -0
  603. /package/{dist/types/ChoroplethSvg → ChoroplethSvg}/index.d.ts +0 -0
  604. /package/{dist/types/Column → Column}/Column.d.ts +0 -0
  605. /package/{dist/types/Column → Column}/columnUtils.d.ts +0 -0
  606. /package/{dist/types/Column → Column}/config.d.ts +0 -0
  607. /package/{dist/types/Column → Column}/index.d.ts +0 -0
  608. /package/{dist/types/Ellipse → Ellipse}/Ellipse.d.ts +0 -0
  609. /package/{dist/types/Ellipse → Ellipse}/config.d.ts +0 -0
  610. /package/{dist/types/Ellipse → Ellipse}/index.d.ts +0 -0
  611. /package/{dist/types/Events → Events}/EventUtils.d.ts +0 -0
  612. /package/{dist/types/Events → Events}/Events.d.ts +0 -0
  613. /package/{dist/types/Events → Events}/PureEvents/FieldSummaryTooltip.d.ts +0 -0
  614. /package/{dist/types/Events → Events}/PureEvents/PureEvents.d.ts +0 -0
  615. /package/{dist/types/Events → Events}/PureEvents/TimeControlsPopover.d.ts +0 -0
  616. /package/{dist/types/Events → Events}/config.d.ts +0 -0
  617. /package/{dist/types/Events → Events}/index.d.ts +0 -0
  618. /package/{dist/types/FillerGauge → FillerGauge}/FillerGauge.d.ts +0 -0
  619. /package/{dist/types/FillerGauge → FillerGauge}/PureFillerGauge/FillerGauge.d.ts +0 -0
  620. /package/{dist/types/FillerGauge → FillerGauge}/config.d.ts +0 -0
  621. /package/{dist/types/FillerGauge → FillerGauge}/index.d.ts +0 -0
  622. /package/{dist/types/Image → Image}/Image.d.ts +0 -0
  623. /package/{dist/types/Image → Image}/ImageApi.d.ts +0 -0
  624. /package/{dist/types/Image → Image}/config.d.ts +0 -0
  625. /package/{dist/types/Image → Image}/index.d.ts +0 -0
  626. /package/{dist/types/Line → Line}/Line.d.ts +0 -0
  627. /package/{dist/types/Line → Line}/config.d.ts +0 -0
  628. /package/{dist/types/Line → Line}/index.d.ts +0 -0
  629. /package/{dist/types/Line → Line}/lineUtils.d.ts +0 -0
  630. /package/{dist/types/Line → Line}/mockdata/LineData.d.ts +0 -0
  631. /package/{dist/types/LinkGraph → LinkGraph}/ESTestDataSources.d.ts +0 -0
  632. /package/{dist/types/LinkGraph → LinkGraph}/ESTestTemplate.d.ts +0 -0
  633. /package/{dist/types/LinkGraph → LinkGraph}/LinkGraph.d.ts +0 -0
  634. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/PureLinkGraph.d.ts +0 -0
  635. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/PureLinkGraphUtils.d.ts +0 -0
  636. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/components/Edges.d.ts +0 -0
  637. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/components/Field.d.ts +0 -0
  638. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/components/FieldStyles.d.ts +0 -0
  639. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/components/Graph.d.ts +0 -0
  640. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/components/GraphStyles.d.ts +0 -0
  641. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/components/Node.d.ts +0 -0
  642. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/components/Nodes.d.ts +0 -0
  643. /package/{dist/types/LinkGraph → LinkGraph}/PureLinkGraph/utils/iconLoader.d.ts +0 -0
  644. /package/{dist/types/LinkGraph → LinkGraph}/config.d.ts +0 -0
  645. /package/{dist/types/LinkGraph → LinkGraph}/index.d.ts +0 -0
  646. /package/{dist/types/Map → Map}/Map.d.ts +0 -0
  647. /package/{dist/types/Map → Map}/PureMap/BubbleLayer.d.ts +0 -0
  648. /package/{dist/types/Map → Map}/PureMap/ChoroplethLayer.d.ts +0 -0
  649. /package/{dist/types/Map → Map}/PureMap/ClusterLayer.d.ts +0 -0
  650. /package/{dist/types/Map → Map}/PureMap/LocalChoroplethLayer.d.ts +0 -0
  651. /package/{dist/types/Map → Map}/PureMap/MarkerLayer.d.ts +0 -0
  652. /package/{dist/types/Map → Map}/PureMap/MarkerWrapper.d.ts +0 -0
  653. /package/{dist/types/Map → Map}/PureMap/PureMap.d.ts +0 -0
  654. /package/{dist/types/Map → Map}/PureMap/PureMapContainer.d.ts +0 -0
  655. /package/{dist/types/Map → Map}/PureMap/Tooltip.d.ts +0 -0
  656. /package/{dist/types/Map → Map}/config.d.ts +0 -0
  657. /package/{dist/types/Map → Map}/index.d.ts +0 -0
  658. /package/{dist/types/Markdown → Markdown}/Markdown.d.ts +0 -0
  659. /package/{dist/types/Markdown → Markdown}/config.d.ts +0 -0
  660. /package/{dist/types/Markdown → Markdown}/index.d.ts +0 -0
  661. /package/{dist/types/MarkerGauge → MarkerGauge}/MarkerGauge.d.ts +0 -0
  662. /package/{dist/types/MarkerGauge → MarkerGauge}/PureMarkerGauge/MarkerGauge.d.ts +0 -0
  663. /package/{dist/types/MarkerGauge → MarkerGauge}/config.d.ts +0 -0
  664. /package/{dist/types/MarkerGauge → MarkerGauge}/index.d.ts +0 -0
  665. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/ParallelCoordinates.d.ts +0 -0
  666. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/PureParallelCoordinates/PureParallelCoordinates.d.ts +0 -0
  667. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/PureParallelCoordinates/src/ParallelCoordinatesCanvas.d.ts +0 -0
  668. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts +0 -0
  669. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/PureParallelCoordinates/src/ParallelCoordinatesPrompt.d.ts +0 -0
  670. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/config.d.ts +0 -0
  671. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/index.d.ts +0 -0
  672. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/mockdata/arrayValueData.d.ts +0 -0
  673. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/mockdata/sampleCarData.d.ts +0 -0
  674. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/mockdata/sampleCarNumericalData.d.ts +0 -0
  675. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/mockdata/sampleFoodData.d.ts +0 -0
  676. /package/{dist/types/ParallelCoordinates → ParallelCoordinates}/mockdata/sampleStringNumericalData.d.ts +0 -0
  677. /package/{dist/types/Pie → Pie}/Pie.d.ts +0 -0
  678. /package/{dist/types/Pie → Pie}/config.d.ts +0 -0
  679. /package/{dist/types/Pie → Pie}/index.d.ts +0 -0
  680. /package/{dist/types/Pie → Pie}/pieUtils.d.ts +0 -0
  681. /package/{dist/types/Punchcard → Punchcard}/Punchcard.d.ts +0 -0
  682. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/Punchcard.d.ts +0 -0
  683. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/src/PunchcardAxis.d.ts +0 -0
  684. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/src/PunchcardBubble.d.ts +0 -0
  685. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/src/PunchcardChartArea.d.ts +0 -0
  686. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/src/PunchcardGridLines.d.ts +0 -0
  687. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/src/PunchcardLegend.d.ts +0 -0
  688. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/src/PunchcardRow.d.ts +0 -0
  689. /package/{dist/types/Punchcard → Punchcard}/PurePunchcard/src/utils/punchcardUtils.d.ts +0 -0
  690. /package/{dist/types/Punchcard → Punchcard}/config.d.ts +0 -0
  691. /package/{dist/types/Punchcard → Punchcard}/index.d.ts +0 -0
  692. /package/{dist/types/Punchcard → Punchcard}/punchcardUtils.d.ts +0 -0
  693. /package/{dist/types/Rectangle → Rectangle}/Rectangle.d.ts +0 -0
  694. /package/{dist/types/Rectangle → Rectangle}/config.d.ts +0 -0
  695. /package/{dist/types/Rectangle → Rectangle}/index.d.ts +0 -0
  696. /package/{dist/types/Sankey → Sankey}/PureSankey/PureSankey.d.ts +0 -0
  697. /package/{dist/types/Sankey → Sankey}/PureSankey/SankeyLink.d.ts +0 -0
  698. /package/{dist/types/Sankey → Sankey}/PureSankey/SankeyModels.d.ts +0 -0
  699. /package/{dist/types/Sankey → Sankey}/PureSankey/SankeyNode.d.ts +0 -0
  700. /package/{dist/types/Sankey → Sankey}/PureSankey/SankeyTooltip.d.ts +0 -0
  701. /package/{dist/types/Sankey → Sankey}/PureSankey/SankeyUtils.d.ts +0 -0
  702. /package/{dist/types/Sankey → Sankey}/PureSankey/mockdata/data.d.ts +0 -0
  703. /package/{dist/types/Sankey → Sankey}/Sankey.d.ts +0 -0
  704. /package/{dist/types/Sankey → Sankey}/config.d.ts +0 -0
  705. /package/{dist/types/Sankey → Sankey}/index.d.ts +0 -0
  706. /package/{dist/types/Scatter → Scatter}/Scatter.d.ts +0 -0
  707. /package/{dist/types/Scatter → Scatter}/config.d.ts +0 -0
  708. /package/{dist/types/Scatter → Scatter}/index.d.ts +0 -0
  709. /package/{dist/types/Scatter → Scatter}/mockdata/data.d.ts +0 -0
  710. /package/{dist/types/Scatter → Scatter}/scatterUtils.d.ts +0 -0
  711. /package/{dist/types/SingleValue → SingleValue}/SingleValue.d.ts +0 -0
  712. /package/{dist/types/SingleValue → SingleValue}/config.d.ts +0 -0
  713. /package/{dist/types/SingleValue → SingleValue}/index.d.ts +0 -0
  714. /package/{dist/types/SingleValueBasic → SingleValueBasic}/index.d.ts +0 -0
  715. /package/{dist/types/SingleValueIcon → SingleValueIcon}/SingleValueIcon.d.ts +0 -0
  716. /package/{dist/types/SingleValueIcon → SingleValueIcon}/config.d.ts +0 -0
  717. /package/{dist/types/SingleValueIcon → SingleValueIcon}/index.d.ts +0 -0
  718. /package/{dist/types/SingleValueRadial → SingleValueRadial}/PureSingleValueRadial/GaugeGraph.d.ts +0 -0
  719. /package/{dist/types/SingleValueRadial → SingleValueRadial}/PureSingleValueRadial/utils/gaugeUtils.d.ts +0 -0
  720. /package/{dist/types/SingleValueRadial → SingleValueRadial}/SingleValueRadial.d.ts +0 -0
  721. /package/{dist/types/SingleValueRadial → SingleValueRadial}/config.d.ts +0 -0
  722. /package/{dist/types/SingleValueRadial → SingleValueRadial}/index.d.ts +0 -0
  723. /package/{dist/types/SparkLine → SparkLine}/index.d.ts +0 -0
  724. /package/{dist/types/Table → Table}/PureTable.d.ts +0 -0
  725. /package/{dist/types/Table → Table}/cells/ArrayCell.d.ts +0 -0
  726. /package/{dist/types/Table → Table}/cells/SparklineCell.d.ts +0 -0
  727. /package/{dist/types/Table → Table}/cells/SwitchTableCell.d.ts +0 -0
  728. /package/{dist/types/Table → Table}/cells/TextCell.d.ts +0 -0
  729. /package/{dist/types/Table → Table}/cells/index.d.ts +0 -0
  730. /package/{dist/types/Table → Table}/config.d.ts +0 -0
  731. /package/{dist/types/Table → Table}/index.d.ts +0 -0
  732. /package/{dist/types/Timeline → Timeline}/PureTimeline/PureTimeline.d.ts +0 -0
  733. /package/{dist/types/Timeline → Timeline}/PureTimeline/src/CursorPlugin.d.ts +0 -0
  734. /package/{dist/types/Timeline → Timeline}/PureTimeline/src/TimelineLegend.d.ts +0 -0
  735. /package/{dist/types/Timeline → Timeline}/PureTimeline/src/TimelineTooltip.d.ts +0 -0
  736. /package/{dist/types/Timeline → Timeline}/PureTimeline/src/TimelineUplot.d.ts +0 -0
  737. /package/{dist/types/Timeline → Timeline}/PureTimeline/src/TimelineYAxis.d.ts +0 -0
  738. /package/{dist/types/Timeline → Timeline}/Timeline.d.ts +0 -0
  739. /package/{dist/types/Timeline → Timeline}/config.d.ts +0 -0
  740. /package/{dist/types/Timeline → Timeline}/index.d.ts +0 -0
  741. /package/{dist/types/Timeline → Timeline}/mockdata/basicTimelineData.d.ts +0 -0
  742. /package/{dist/types/Timeline → Timeline}/mockdata/categoricalTimelineData.d.ts +0 -0
  743. /package/{dist/types/Timeline → Timeline}/mockdata/timelineDataSource.d.ts +0 -0
  744. /package/{dist/types/common → common}/ChartingApi.d.ts +0 -0
  745. /package/{dist/types/common → common}/DocExampleWithVizSandbox.d.ts +0 -0
  746. /package/{dist/types/common → common}/OverviewDoc.d.ts +0 -0
  747. /package/{dist/types/common → common}/SplunkVisualization.d.ts +0 -0
  748. /package/{dist/types/common → common}/SplunkVisualizationApi.d.ts +0 -0
  749. /package/{dist/types/common → common}/ThemedDefaults.d.ts +0 -0
  750. /package/{dist/types/common → common}/components/IconPlaceholder.d.ts +0 -0
  751. /package/{dist/types/common → common}/components/MissingPropsMessage.d.ts +0 -0
  752. /package/{dist/types/common → common}/components/TrellisTitle.d.ts +0 -0
  753. /package/{dist/types/common → common}/configContext/singleValueContext.d.ts +0 -0
  754. /package/{dist/types/common → common}/docUtils.d.ts +0 -0
  755. /package/{dist/types/common → common}/editorConfig/AxesChartColorAndStyle.d.ts +0 -0
  756. /package/{dist/types/common → common}/editorConfig/AxesChartDataConfig.d.ts +0 -0
  757. /package/{dist/types/common → common}/editorConfig/AxesChartDataDisplay.d.ts +0 -0
  758. /package/{dist/types/common → common}/editorConfig/AxesChartLegend.d.ts +0 -0
  759. /package/{dist/types/common → common}/editorConfig/AxesChartXGridAndLabels.d.ts +0 -0
  760. /package/{dist/types/common → common}/editorConfig/AxesChartY2GridAndLabels.d.ts +0 -0
  761. /package/{dist/types/common → common}/editorConfig/AxesChartYGridAndLabels.d.ts +0 -0
  762. /package/{dist/types/common → common}/editorConfig/BackgroundColor.d.ts +0 -0
  763. /package/{dist/types/common → common}/editorConfig/DynamicFillColorEditor.d.ts +0 -0
  764. /package/{dist/types/common → common}/editorConfig/DynamicGaugeColorEditor.d.ts +0 -0
  765. /package/{dist/types/common → common}/editorConfig/DynamicStrokeColorEditor.d.ts +0 -0
  766. /package/{dist/types/common → common}/editorConfig/Gauge.d.ts +0 -0
  767. /package/{dist/types/common → common}/editorConfig/Legend.d.ts +0 -0
  768. /package/{dist/types/common → common}/editorConfig/RadialBackgroundColor.d.ts +0 -0
  769. /package/{dist/types/common → common}/editorConfig/StaticFillColorEditor.d.ts +0 -0
  770. /package/{dist/types/common → common}/editorConfig/StaticGaugeColorEditor.d.ts +0 -0
  771. /package/{dist/types/common → common}/editorConfig/StaticStrokeColorEditor.d.ts +0 -0
  772. /package/{dist/types/common → common}/editorConfig/TrellisEditors.d.ts +0 -0
  773. /package/{dist/types/common → common}/gaugeUtils.d.ts +0 -0
  774. /package/{dist/types/common → common}/hocs/FixedSizeContainer.d.ts +0 -0
  775. /package/{dist/types/common → common}/hocs/mockdata/trellisData.d.ts +0 -0
  776. /package/{dist/types/common → common}/hocs/withEditModeCover.d.ts +0 -0
  777. /package/{dist/types/common → common}/hocs/withPlaceholder.d.ts +0 -0
  778. /package/{dist/types/common → common}/hocs/withTrellis.d.ts +0 -0
  779. /package/{dist/types/common → common}/hooks/useDeepMemo.d.ts +0 -0
  780. /package/{dist/types/common → common}/hooks/useDownsampleDataSources.d.ts +0 -0
  781. /package/{dist/types/common → common}/hooks/useEventCallback.d.ts +0 -0
  782. /package/{dist/types/common → common}/hooks/useGetXAndYFields.d.ts +0 -0
  783. /package/{dist/types/common → common}/hooks/usePagination.d.ts +0 -0
  784. /package/{dist/types/common → common}/hooks/usePrevious.d.ts +0 -0
  785. /package/{dist/types/common → common}/hooks/useSorting.d.ts +0 -0
  786. /package/{dist/types/common → common}/hooks/useTrellisEnabled.d.ts +0 -0
  787. /package/{dist/types/common → common}/interfaces/ChartEvent.d.ts +0 -0
  788. /package/{dist/types/common → common}/interfaces/DashboardVizProps.d.ts +0 -0
  789. /package/{dist/types/common → common}/interfaces/DataContract.d.ts +0 -0
  790. /package/{dist/types/common → common}/interfaces/DataSource.d.ts +0 -0
  791. /package/{dist/types/common → common}/interfaces/DefaultContext.d.ts +0 -0
  792. /package/{dist/types/common → common}/interfaces/Editor.d.ts +0 -0
  793. /package/{dist/types/common → common}/interfaces/ExtendedDashViz.d.ts +0 -0
  794. /package/{dist/types/common → common}/interfaces/Object.d.ts +0 -0
  795. /package/{dist/types/common → common}/interfaces/Overview.d.ts +0 -0
  796. /package/{dist/types/common → common}/interfaces/ThemedDefaults.d.ts +0 -0
  797. /package/{dist/types/common → common}/interfaces/VizActionHandler.d.ts +0 -0
  798. /package/{dist/types/common → common}/interfaces/VizBehavior.d.ts +0 -0
  799. /package/{dist/types/common → common}/interfaces/VizCategory.d.ts +0 -0
  800. /package/{dist/types/common → common}/interfaces/VizConfig.d.ts +0 -0
  801. /package/{dist/types/common → common}/interfaces/VizEvent.d.ts +0 -0
  802. /package/{dist/types/common → common}/interfaces/VizProps.d.ts +0 -0
  803. /package/{dist/types/common → common}/interfaces/VizRegistry.d.ts +0 -0
  804. /package/{dist/types/common → common}/interfaces/VizSize.d.ts +0 -0
  805. /package/{dist/types/common → common}/interfaces/VizStatus.d.ts +0 -0
  806. /package/{dist/types/common → common}/interfaces/index.d.ts +0 -0
  807. /package/{dist/types/common → common}/shapeUtils.d.ts +0 -0
  808. /package/{dist/types/common → common}/utils/configUtils.d.ts +0 -0
  809. /package/{dist/types/common → common}/utils/dataUtils.d.ts +0 -0
  810. /package/{dist/types/common → common}/utils/hocUtils.d.ts +0 -0
  811. /package/{dist/types/common → common}/utils/mapUtils.d.ts +0 -0
  812. /package/{dist/types/common → common}/utils/styleUtils.d.ts +0 -0
  813. /package/{dist/types/common → common}/utils/trellisUtils.d.ts +0 -0
  814. /package/{dist/types/common → common}/utils/urlUtils.d.ts +0 -0
@@ -40,6 +40,8 @@ export interface ChartingProps {
40
40
  annotationX?: string[];
41
41
  annotationLabel?: string[];
42
42
  annotationColor?: string[];
43
+ legendDisplay?: 'left' | 'right' | 'top' | 'bottom' | 'off';
44
+ markerDisplay?: 'off' | 'filled' | 'outlined';
43
45
  }
44
46
  declare const ChartingWrapper: React.FC<ChartingProps>;
45
47
  export default ChartingWrapper;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Charting.d.ts","sourceRoot":"","sources":["../src/common/Charting.tsx"],"names":[],"mappings":"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"}
@@ -96,86 +96,77 @@ var defaultImport4 = __toESM(require("react"));
96
96
  __reExport(react_exports, require("react"));
97
97
  var react_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
98
98
 
99
- // esm-externals:react-event-listener
100
- var react_event_listener_exports = {};
101
- __export(react_event_listener_exports, {
102
- default: () => react_event_listener_default
103
- });
104
- var defaultImport5 = __toESM(require("react-event-listener"));
105
- __reExport(react_event_listener_exports, require("react-event-listener"));
106
- var react_event_listener_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
107
-
108
99
  // esm-externals:@splunk/visualizations-shared/i18n
109
100
  var i18n_exports2 = {};
110
101
  __export(i18n_exports2, {
111
102
  default: () => i18n_default2
112
103
  });
113
- var defaultImport6 = __toESM(require("@splunk/visualizations-shared/i18n"));
104
+ var defaultImport5 = __toESM(require("@splunk/visualizations-shared/i18n"));
114
105
  __reExport(i18n_exports2, require("@splunk/visualizations-shared/i18n"));
115
- var i18n_default2 = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
106
+ var i18n_default2 = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
116
107
 
117
108
  // esm-externals:@splunk/charting-bundle
118
109
  var charting_bundle_exports = {};
119
110
  __export(charting_bundle_exports, {
120
111
  default: () => charting_bundle_default
121
112
  });
122
- var defaultImport7 = __toESM(require("@splunk/charting-bundle"));
113
+ var defaultImport6 = __toESM(require("@splunk/charting-bundle"));
123
114
  __reExport(charting_bundle_exports, require("@splunk/charting-bundle"));
124
- var charting_bundle_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
115
+ var charting_bundle_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
125
116
 
126
117
  // esm-externals:@splunk/visualization-context/TimezoneContext
127
118
  var TimezoneContext_exports = {};
128
119
  __export(TimezoneContext_exports, {
129
120
  default: () => TimezoneContext_default
130
121
  });
131
- var defaultImport8 = __toESM(require("@splunk/visualization-context/TimezoneContext"));
122
+ var defaultImport7 = __toESM(require("@splunk/visualization-context/TimezoneContext"));
132
123
  __reExport(TimezoneContext_exports, require("@splunk/visualization-context/TimezoneContext"));
133
- var TimezoneContext_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
124
+ var TimezoneContext_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
134
125
 
135
126
  // esm-externals:@splunk/visualizations-shared/style
136
127
  var style_exports = {};
137
128
  __export(style_exports, {
138
129
  default: () => style_default
139
130
  });
140
- var defaultImport9 = __toESM(require("@splunk/visualizations-shared/style"));
131
+ var defaultImport8 = __toESM(require("@splunk/visualizations-shared/style"));
141
132
  __reExport(style_exports, require("@splunk/visualizations-shared/style"));
142
- var style_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
133
+ var style_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
143
134
 
144
135
  // esm-externals:styled-components
145
136
  var styled_components_exports = {};
146
137
  __export(styled_components_exports, {
147
138
  default: () => styled_components_default
148
139
  });
149
- var defaultImport10 = __toESM(require("styled-components"));
140
+ var defaultImport9 = __toESM(require("styled-components"));
150
141
  __reExport(styled_components_exports, require("styled-components"));
151
- var styled_components_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
142
+ var styled_components_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
152
143
 
153
144
  // esm-externals:@splunk/visualizations-shared/Message
154
145
  var Message_exports = {};
155
146
  __export(Message_exports, {
156
147
  default: () => Message_default
157
148
  });
158
- var defaultImport11 = __toESM(require("@splunk/visualizations-shared/Message"));
149
+ var defaultImport10 = __toESM(require("@splunk/visualizations-shared/Message"));
159
150
  __reExport(Message_exports, require("@splunk/visualizations-shared/Message"));
160
- var Message_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
151
+ var Message_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
161
152
 
162
153
  // esm-externals:@splunk/themes/useSplunkTheme
163
154
  var useSplunkTheme_exports = {};
164
155
  __export(useSplunkTheme_exports, {
165
156
  default: () => useSplunkTheme_default
166
157
  });
167
- var defaultImport12 = __toESM(require("@splunk/themes/useSplunkTheme"));
158
+ var defaultImport11 = __toESM(require("@splunk/themes/useSplunkTheme"));
168
159
  __reExport(useSplunkTheme_exports, require("@splunk/themes/useSplunkTheme"));
169
- var useSplunkTheme_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
160
+ var useSplunkTheme_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
170
161
 
171
162
  // esm-externals:@splunk/visualizations-shared/themeUtils
172
163
  var themeUtils_exports = {};
173
164
  __export(themeUtils_exports, {
174
165
  default: () => themeUtils_default
175
166
  });
176
- var defaultImport13 = __toESM(require("@splunk/visualizations-shared/themeUtils"));
167
+ var defaultImport12 = __toESM(require("@splunk/visualizations-shared/themeUtils"));
177
168
  __reExport(themeUtils_exports, require("@splunk/visualizations-shared/themeUtils"));
178
- var themeUtils_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
169
+ var themeUtils_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
179
170
 
180
171
  // src/common/ChartingApi.ts
181
172
  var ChartingApiFunctional = class {
@@ -230,9 +221,9 @@ var numberUtils_exports = {};
230
221
  __export(numberUtils_exports, {
231
222
  default: () => numberUtils_default
232
223
  });
233
- var defaultImport14 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
224
+ var defaultImport13 = __toESM(require("@splunk/visualizations-shared/numberUtils"));
234
225
  __reExport(numberUtils_exports, require("@splunk/visualizations-shared/numberUtils"));
235
- var numberUtils_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
226
+ var numberUtils_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
236
227
 
237
228
  // src/common/utils/dataUtils.ts
238
229
  var calculateThresholdOnRangeSelect = ({
@@ -298,18 +289,18 @@ var FeatureFlagContext_exports = {};
298
289
  __export(FeatureFlagContext_exports, {
299
290
  default: () => FeatureFlagContext_default
300
291
  });
301
- var defaultImport15 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
292
+ var defaultImport14 = __toESM(require("@splunk/visualization-context/FeatureFlagContext"));
302
293
  __reExport(FeatureFlagContext_exports, require("@splunk/visualization-context/FeatureFlagContext"));
303
- var FeatureFlagContext_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
294
+ var FeatureFlagContext_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
304
295
 
305
296
  // esm-externals:@splunk/visualization-schemas
306
297
  var visualization_schemas_exports = {};
307
298
  __export(visualization_schemas_exports, {
308
299
  default: () => visualization_schemas_default
309
300
  });
310
- var defaultImport16 = __toESM(require("@splunk/visualization-schemas"));
301
+ var defaultImport15 = __toESM(require("@splunk/visualization-schemas"));
311
302
  __reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
312
- var visualization_schemas_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
303
+ var visualization_schemas_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
313
304
 
314
305
  // src/common/hooks/useTrellisEnabled.ts
315
306
  var useTrellisFeatureFlagOn = () => {
@@ -409,6 +400,20 @@ var Charting = (props) => {
409
400
  const timezone = (0, react_exports.useContext)(TimezoneContext_default);
410
401
  const selectChartEvent = (0, react_exports.useRef)(null);
411
402
  const trellisEnabled = useTrellisEnabled(props.splitByLayout);
403
+ const drawChartRef = (0, react_exports.useRef)(() => {
404
+ });
405
+ const debouncedDrawChart = (0, react_exports.useMemo)(
406
+ () => (0, lodash_exports.debounce)(() => {
407
+ drawChartRef.current();
408
+ }, 5),
409
+ []
410
+ );
411
+ (0, react_exports.useEffect)(
412
+ () => () => {
413
+ debouncedDrawChart.cancel();
414
+ },
415
+ [debouncedDrawChart]
416
+ );
412
417
  const computeChartingSize = () => {
413
418
  if (container.current) {
414
419
  const rect = container.current.getBoundingClientRect();
@@ -636,11 +641,11 @@ var Charting = (props) => {
636
641
  window.console.error("Caught error rendering chart:", e);
637
642
  }
638
643
  };
639
- const debouncedDrawChart = (0, lodash_exports.debounce)(drawChart, 5);
640
644
  const onContainerMount = (chartingContainer) => {
641
645
  container.current = chartingContainer;
642
646
  debouncedDrawChart();
643
647
  };
648
+ drawChartRef.current = drawChart;
644
649
  const prevTheme = usePrevious(themeKey);
645
650
  const prevOnClick = usePrevious(onClick);
646
651
  (0, react_exports.useEffect)(() => {
@@ -653,6 +658,15 @@ var Charting = (props) => {
653
658
  destroyChart();
654
659
  };
655
660
  }, []);
661
+ (0, react_exports.useEffect)(() => {
662
+ const handleResize = () => {
663
+ debouncedDrawChart();
664
+ };
665
+ window.addEventListener("resize", handleResize);
666
+ return () => {
667
+ window.removeEventListener("resize", handleResize);
668
+ };
669
+ }, [debouncedDrawChart]);
656
670
  (0, react_exports.useEffect)(() => {
657
671
  if (!chart.current || !canUpdateInPlace(prevOptions, options) || // timezone is a simple object so this comparison should be fast
658
672
  JSON.stringify(prevTimezone) !== JSON.stringify(timezone) || !props.themeKey && prevTheme !== themeKey || prevOnClick !== onClick) {
@@ -685,8 +699,7 @@ var Charting = (props) => {
685
699
  ref: onContainerMount,
686
700
  width,
687
701
  height: trellisEnabled ? Number(height) - TRELLIS_TITLE_HEIGHT : height
688
- },
689
- /* @__PURE__ */ react_exports.createElement(react_event_listener_default, { target: window, onResize: debouncedDrawChart })
702
+ }
690
703
  ));
691
704
  };
692
705
  var ChartingWrapper = (props) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/common/Charting.tsx", "esm-externals:lodash", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/visualization-color-palettes", "esm-externals:react", "esm-externals:react-event-listener", "esm-externals:@splunk/visualizations-shared/i18n", "esm-externals:@splunk/charting-bundle", "esm-externals:@splunk/visualization-context/TimezoneContext", "esm-externals:@splunk/visualizations-shared/style", "esm-externals:styled-components", "esm-externals:@splunk/visualizations-shared/Message", "esm-externals:@splunk/themes/useSplunkTheme", "esm-externals:@splunk/visualizations-shared/themeUtils", "../src/common/ChartingApi.ts", "../src/common/hooks/usePrevious.ts", "../src/common/hooks/useEventCallback.tsx", "esm-externals:@splunk/visualizations-shared/numberUtils", "../src/common/utils/dataUtils.ts", "esm-externals:@splunk/visualization-context/FeatureFlagContext", "esm-externals:@splunk/visualization-schemas", "../src/common/hooks/useTrellisEnabled.ts", "../src/common/components/TrellisTitle.tsx"],
4
- "sourcesContent": ["/* eslint-disable react/no-unused-prop-types */\nimport { pick, debounce, noop } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport * as React from 'react';\nimport { useContext, useEffect, useRef } from 'react';\nimport EventListener from 'react-event-listener';\nimport '@splunk/visualizations-shared/i18n'; // fixme, @splunk/charting should be refactor to use locale & timezone instead of i18n functions\nimport jsCharting from '@splunk/charting-bundle';\nimport TimezoneContext, { TimezoneContextInterface } from '@splunk/visualization-context/TimezoneContext';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport styled from 'styled-components';\nimport Message from '@splunk/visualizations-shared/Message';\nimport useSplunkTheme from '@splunk/themes/useSplunkTheme';\nimport { getChartingThemeKey } from '@splunk/visualizations-shared/themeUtils';\nimport { LAYOUT_TYPE } from '@splunk/visualization-schemas';\nimport { ChartingApiFunctional } from './ChartingApi';\nimport usePrevious from './hooks/usePrevious';\nimport useEventCallback from './hooks/useEventCallback';\nimport { DataSource } from './interfaces';\nimport { calculateDownsamplingThreshold } from './utils/dataUtils';\nimport type { ChartEvent } from './interfaces/ChartEvent';\nimport { useTrellisEnabled } from './hooks/useTrellisEnabled';\nimport { TrellisTitle, TRELLIS_TITLE_HEIGHT } from './components/TrellisTitle';\n\nexport const NO_INPLACE_PROPS = [\n 'chart',\n 'chart.orientation',\n 'layout.splitSeries',\n 'chart.style',\n 'legend.placement',\n];\n\nexport const appendTrellisToPayload = (\n props: ChartingProps,\n payload: Record<string, unknown>\n): Record<string, unknown> => {\n if (props.trellisSplitBy) {\n // eslint-disable-next-line no-param-reassign\n payload['trellis.name'] = props.trellisSplitBy;\n }\n if (props.trellisKey) {\n // eslint-disable-next-line no-param-reassign\n payload['trellis.value'] = props.trellisKey;\n }\n return payload;\n};\n\nexport const changedOptions = (\n curOptions: Record<string, unknown>,\n nextOptions: Record<string, unknown>\n): string[] =>\n Object.keys(curOptions)\n .filter(key => !(key in nextOptions))\n .concat(\n Object.keys(nextOptions).filter(\n key => !(key in curOptions) || curOptions[key] !== nextOptions[key]\n )\n );\n\nexport const canUpdateInPlace = (\n curOptions: Record<string, unknown>,\n nextOptions: Record<string, unknown>\n): boolean => {\n // if either of the options are undefined\n // it cannot update in place.\n if (!curOptions || !nextOptions) {\n return false;\n }\n return (\n !NO_INPLACE_PROPS.some(p => curOptions[p] !== nextOptions[p]) &&\n !changedOptions(curOptions, nextOptions).some(p => p.toLowerCase().endsWith('color'))\n );\n};\n\n// create 'row' payloads from 'rowContext' in the flattened format:\n// row.<fieldname>.value\nexport const updateRowPayload = (\n chartEventRowContext: Record<string, unknown>,\n payload: Record<string, unknown>\n): Record<string, unknown> => {\n Object.keys(chartEventRowContext || {}).forEach(key => {\n // eslint-disable-next-line no-param-reassign\n payload[`${key}.value`] = chartEventRowContext[key];\n });\n\n return payload;\n};\n\nexport interface ContainerProps {\n width: string | number;\n height: string | number;\n}\n\nenum VizChartEventType {\n POINT_CLICK = 'point.click',\n POINT_MOUSE_OUT = 'point.mouseout',\n POINT_MOUSE_OVER = 'point.mouseover',\n LEGEND_CLICK = 'legend.click',\n}\n\n// @TODO(pwied): remove after HC upgrade to 8+\n// .highcharts-a11y-proxy-container rule addresses a HighCharts < 8 bug\n// caused by the accessibility plugin\n// https://github.com/highcharts/highcharts/issues/12883\nconst ChartingContainer = styled.div.attrs((props: ContainerProps) => ({\n 'data-test': 'charting-container',\n width: props.width,\n height: props.height,\n}))`\n & .highcharts-a11y-proxy-container {\n pointer-events: none;\n }\n overflow: hidden;\n position: relative;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nexport interface ChartingProps {\n // width in pixel or string, defaults to 100%\n width: string | number;\n // height in pixel or string\n height: string | number;\n // visualization formatting options\n options?: Record<string, any>;\n // charting dataset from jsCharting.extractChartReadyData\n chartData: Record<string, any>;\n // callbacks to trigger event\n onEventTrigger?: (...args: any[]) => void;\n onSelect?: (...args: any[]) => void;\n onClick?: (...args: any[]) => void;\n onPointMouseOver?: (...args: any[]) => void;\n onPointMouseOut?: (...args: any[]) => void;\n // Custom style on visualization\n style?: Record<string, unknown>;\n colorPalette?: Array<string>;\n visualizationApiRef?: (...args: any[]) => void;\n themeKey?: string;\n // The non-downsampled data sources used by this chart. Passed in if downsampling\n // is enabled for this chart.\n originalDataSources?: Record<string, DataSource> | null;\n // Callback for when downsampling threshold changes. Passed in if downsampling\n // is enabled for this chart.\n onDownsamplingThresholdChange?: (threshold: number) => void | null;\n // The xField for this chart if it is an axis chart\n xField?: string;\n // The yFields for this chart if it is an axis chart\n yFields?: string[];\n // The y2Fields for this chart if it is specified and it is an axis chart\n y2Fields?: string[];\n // The additional tooltip fields for this chart if it is specified and it is an axis chart\n additionalTooltipFields?: string[];\n splitByLayout?: LAYOUT_TYPE;\n trellisKey?: string;\n trellisSplitBy?: string;\n backgroundColor?: string;\n defaultFontColor?: string;\n userLocale?: Record<string, any>;\n annotationX?: string[];\n annotationLabel?: string[];\n annotationColor?: string[];\n}\n\nconst Charting: React.FC<ChartingProps> = props => {\n const container = useRef<HTMLDivElement>(null);\n const needsInit = useRef<boolean>(true);\n const chart = useRef<jsCharting>();\n const needsRedraw = useRef<boolean>(true);\n const api = useRef(new ChartingApiFunctional(chart));\n const timezone = useContext<TimezoneContextInterface>(TimezoneContext);\n const selectChartEvent = useRef<ChartEvent<'chartRangeSelect'>>(null);\n const trellisEnabled = useTrellisEnabled(props.splitByLayout);\n\n const computeChartingSize = () => {\n if (container.current) {\n const rect = container.current.getBoundingClientRect();\n return {\n height: rect.height,\n width: rect.width,\n };\n }\n return {};\n };\n const splunkTheme = useSplunkTheme();\n const themeKey = props.themeKey ? props.themeKey : getChartingThemeKey({ splunkThemeV1: splunkTheme });\n const {\n width = '100%',\n height = 250,\n options = {},\n style = {},\n chartData,\n colorPalette = VIZ_CATEGORICAL,\n onClick = noop,\n onSelect = noop,\n onPointMouseOut = noop,\n onPointMouseOver = noop,\n onEventTrigger = noop,\n originalDataSources,\n onDownsamplingThresholdChange,\n xField,\n backgroundColor = '',\n defaultFontColor = '',\n trellisKey,\n additionalTooltipFields,\n } = props;\n const prevOptions = usePrevious(options);\n const prevTimezone = usePrevious(timezone);\n\n const handleClick = (\n chartEvent: ChartEvent<'pointClick' | 'legendClick'>,\n type: VizChartEventType\n ): void => {\n let payload: Partial<ChartEvent<'pointClick' | 'legendClick'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n\n if (type === VizChartEventType.POINT_CLICK) {\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n }\n\n payload = appendTrellisToPayload(props, payload);\n\n onClick({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const destroyChart = (): void => {\n if (chart.current) {\n chart.current.destroy();\n chart.current = null;\n }\n needsRedraw.current = true;\n needsInit.current = true;\n };\n\n const enableSearchZoom = chartData?.chartDataOptions?.enableSearchZoom ?? false;\n const recalculateDownsamplingThreshold = React.useCallback(() => {\n if (!onDownsamplingThresholdChange || !xField) {\n return;\n }\n\n const newThreshold = calculateDownsamplingThreshold({\n enableSearchZoom,\n dataSources: originalDataSources,\n width: Number(width),\n selectChartEvent: selectChartEvent.current,\n xField,\n });\n\n if (Number.isFinite(newThreshold)) {\n onDownsamplingThresholdChange(newThreshold);\n }\n }, [enableSearchZoom, originalDataSources, onDownsamplingThresholdChange, width, xField]);\n\n React.useEffect(() => {\n recalculateDownsamplingThreshold();\n }, [recalculateDownsamplingThreshold]);\n\n // useEventCallback is used for these handlers to make sure that they are a stable reference and\n // we always use the latest version of the callback\n // Since chart drawing is debounced, there is a race condition where a stale callback may be called\n // if a prop changes and the event handler is called before the chart redraws. This means that\n // it will use the old callback rather than the newer one, which can lead to inaccurate results\n const handleSelect = useEventCallback((chartEvent: ChartEvent<'chartRangeSelect'>): void => {\n selectChartEvent.current = chartEvent;\n recalculateDownsamplingThreshold();\n const payload = appendTrellisToPayload(\n props,\n pick(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue')\n );\n\n // todo: need change this after breaking all visualizations\n if (onSelect && typeof onSelect === 'function') {\n onSelect({\n type: 'range.select',\n originalEvent: chartEvent,\n payload,\n });\n\n return;\n }\n\n // the chartEvent here is a jQuery event\n onEventTrigger({\n type: 'range.select',\n originalEvent: chartEvent,\n payload,\n });\n });\n\n const handlePointMouseOut = useEventCallback(\n (chartEvent: ChartEvent<'pointMouseOut'>, type: VizChartEventType): void => {\n let payload: Partial<ChartEvent<'pointMouseOut'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = appendTrellisToPayload(props, updateRowPayload(chartEvent.rowContext, payload));\n\n onPointMouseOut({\n type,\n originalEvent: chartEvent,\n payload,\n });\n }\n );\n\n const handlePointMouseOver = useEventCallback(\n (chartEvent: ChartEvent<'pointMouseOver'>, type: VizChartEventType): void => {\n let payload: Partial<ChartEvent<'pointMouseOver'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = appendTrellisToPayload(props, updateRowPayload(chartEvent.rowContext, payload));\n\n onPointMouseOver({\n type,\n originalEvent: chartEvent,\n payload,\n });\n }\n );\n\n const drawChart = (): void => {\n const updatedOptions = { ...options, shouldColorizeTooltipData: false };\n const computedChartSize = computeChartingSize();\n const computedWidth = computedChartSize.width;\n const computedHeight = computedChartSize.height;\n const serializedTimezone = timezone?.serializedTimezone;\n const ianaTimezone = timezone?.ianaTimezone;\n const utcOffset = timezone?.utcOffset;\n if (!computedWidth || !computedHeight) {\n return;\n }\n if (!chartData || !Object.keys(chartData).length) {\n return;\n }\n\n // splunk-charting layers configuration option updates.\n // when an option is removed it needs to be set to an empty string\n // to override the previous configuration\n if (prevOptions) {\n Object.keys(prevOptions).forEach(key => {\n if (prevOptions[key] && updatedOptions[key] === undefined) {\n updatedOptions[key] = '';\n }\n });\n }\n\n try {\n if (needsInit.current) {\n destroyChart();\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n chart.current = jsCharting.createChart(container.current, {\n ...updatedOptions,\n drilldown: 'all',\n ...(typeof serializedTimezone === 'string' && {\n 'time.serializedTz': serializedTimezone,\n }),\n ...(typeof ianaTimezone === 'string' && {\n 'time.ianaTimezone': ianaTimezone,\n }),\n ...(typeof utcOffset === 'number' && {\n 'time.timezoneOffset': utcOffset,\n }),\n });\n // bind event handlers\n chart.current.on('pointClick', e => {\n handleClick(e, VizChartEventType.POINT_CLICK);\n });\n chart.current.on('pointMouseOver', e => {\n handlePointMouseOver(e, VizChartEventType.POINT_MOUSE_OVER);\n });\n chart.current.on('pointMouseOut', e => {\n handlePointMouseOut(e, VizChartEventType.POINT_MOUSE_OUT);\n });\n chart.current.on('legendClick', e => {\n handleClick(e, VizChartEventType.LEGEND_CLICK);\n });\n chart.current.on('chartRangeSelect', handleSelect);\n }\n if (needsRedraw.current) {\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n const payload = appendTrellisToPayload(props, {\n width,\n height,\n currentTime: new Date().getTime(),\n });\n chart.current.prepareAndDraw(chartData, updatedOptions, () => {\n onEventTrigger({\n type: 'viz.renderedWithData',\n payload,\n });\n });\n }\n if (chart.current) {\n if (\n Math.round(chart.current.height) !== Math.round(computedHeight) ||\n Math.round(chart.current.width) !== Math.round(computedWidth)\n ) {\n chart.current.resize(computedWidth, computedHeight);\n }\n }\n needsInit.current = false;\n needsRedraw.current = false;\n } catch (e) {\n window.console.error('Caught error rendering chart:', e);\n }\n };\n\n const debouncedDrawChart = debounce(drawChart, 5);\n\n const onContainerMount = chartingContainer => {\n container.current = chartingContainer;\n debouncedDrawChart();\n };\n\n const prevTheme = usePrevious(themeKey);\n const prevOnClick = usePrevious(onClick);\n\n useEffect(() => {\n debouncedDrawChart();\n props?.visualizationApiRef?.(api?.current);\n return () => {\n props?.visualizationApiRef?.(null);\n destroyChart();\n };\n }, []);\n\n useEffect(() => {\n // TODO: figure out why re-init is needed for functional components (i.e. PlatformViz) when changing theme\n // seems like redraw doesn't suffice to update the background colors\n if (\n !chart.current ||\n !canUpdateInPlace(prevOptions, options) ||\n // timezone is a simple object so this comparison should be fast\n JSON.stringify(prevTimezone) !== JSON.stringify(timezone) ||\n (!props.themeKey && prevTheme !== themeKey) ||\n prevOnClick !== onClick\n ) {\n needsInit.current = true;\n }\n // need to immediately call drawChart upon an option or chartData change\n // otherwise a noop would occur if the onContainerMount drawChart is re-invoked when dimensions change\n needsRedraw.current = true;\n drawChart();\n }, [\n JSON.stringify(options),\n JSON.stringify(chartData.toJSON()),\n JSON.stringify(chartData.annotations),\n timezone?.ianaTimezone,\n timezone?.utcOffset,\n timezone?.serializedTimezone,\n themeKey,\n onClick,\n additionalTooltipFields,\n ]);\n\n return (\n <>\n {trellisEnabled && (\n <TrellisTitle\n trellisKey={trellisKey}\n backgroundColor={backgroundColor}\n fontColor={defaultFontColor}\n />\n )}\n <ChartingContainer\n style={style}\n ref={onContainerMount}\n width={width}\n height={trellisEnabled ? Number(height) - TRELLIS_TITLE_HEIGHT : height}\n >\n <EventListener target={window} onResize={debouncedDrawChart} />\n </ChartingContainer>\n </>\n );\n};\n\n// allow for early return in case of empty chartData while still following hook rules\nconst ChartingWrapper: React.FC<ChartingProps> = props => {\n const { chartData } = props;\n\n if (!chartData) {\n return <Message message={_('No DataSource')} level=\"warning\" width=\"100%\" height=\"100%\" />;\n }\n\n if (!Object.keys(chartData).length) {\n return <Message message={_('No Result')} level=\"info\" width=\"100%\" height=\"100%\" />;\n }\n\n return <Charting {...props} />;\n};\n\nexport default ChartingWrapper;\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-color-palettes\";\nexport * from \"@splunk/visualization-color-palettes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"react-event-listener\";\nexport * from \"react-event-listener\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/i18n\";\nexport * from \"@splunk/visualizations-shared/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/charting-bundle\";\nexport * from \"@splunk/charting-bundle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-context/TimezoneContext\";\nexport * from \"@splunk/visualization-context/TimezoneContext\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/style\";\nexport * from \"@splunk/visualizations-shared/style\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/Message\";\nexport * from \"@splunk/visualizations-shared/Message\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes/useSplunkTheme\";\nexport * from \"@splunk/themes/useSplunkTheme\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/themeUtils\";\nexport * from \"@splunk/visualizations-shared/themeUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import jsCharting from '@splunk/charting-bundle';\n\ninterface Point {\n /**\n * Valid xValue of the chart\n *\n * @type {string|number}\n * @memberof Point\n */\n xValue?: string | number;\n\n /**\n * Valid seriesName for a chart\n *\n * @type {string}\n * @memberof Point\n */\n seriesName?: string;\n}\n\nexport class ChartingApiFunctional {\n // eslint-disable-next-line no-useless-constructor\n constructor(private chartRef: any) {}\n\n /**\n * Allows users to programmatically highlight a point on the chart\n *\n * @memberof ChartingApiFunctional\n */\n highlight({ xValue, seriesName }: Point = { xValue: '', seriesName: '' }): void {\n this.getChart().highlight(xValue, seriesName);\n }\n\n /**\n * Allows users to programmatically unhighlight all points on the chart\n *\n * @memberof ChartingApiFunctional\n */\n unHighlight(): void {\n this.getChart().unHighlight();\n }\n\n // returns chart object\n getChart(): jsCharting {\n return this.chartRef?.current;\n }\n}\n", "import { useEffect, useRef } from 'react';\n\nexport default function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n", "import { useRef, useLayoutEffect, useCallback } from 'react';\n\n/**\n * This is an escape hatch for the case where an event handler function depends on some states that changes too often thus the event handle is recreated frequently which causes bugs in some edge cases.\n *\n * For example if an old callback is called, it may not use the most recent props, but the previous props when that callback was created.\n */\n\ntype Fn<ARGS extends any[], R> = (...args: ARGS) => R;\nconst useEventCallback = <A extends any[], R>(fn: Fn<A, R>): Fn<A, R> => {\n const ref = useRef<Fn<A, R>>(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return useCallback((...args: A): R => ref.current(...args), []);\n};\n\nexport default useEventCallback;\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/numberUtils\";\nexport * from \"@splunk/visualizations-shared/numberUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import type { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport { startsWithNumber } from '@splunk/visualizations-shared/numberUtils';\nimport type { DashboardVizProps, DataSource, VizConfig } from '../interfaces';\nimport { VizBehavior } from '../interfaces';\nimport { ChartEvent } from '../interfaces/ChartEvent';\n\n// TODO: utilize this fn in ParallelCoordinates\n\nexport const convertToArrOfObjects = (columns: (string | any[])[], fields: any[]): any[] => {\n if (!columns || !columns[0] || !columns[0].length) return [];\n\n const data = [];\n\n for (let i = 0; i < columns[0].length; i += 1) {\n const newObj = {};\n fields.forEach((field, index) => {\n const fieldName = typeof field === 'string' ? field : field.name;\n if (columns[index][i] === '') {\n newObj[fieldName] = null;\n } else {\n newObj[fieldName] = columns[index][i];\n }\n });\n data.push(newObj);\n }\n\n return data;\n};\n\n// LTTB algorithm which can be used to downsample time series data while striving to maintain\n// the spikes and overall shape of the chart\n// Copied from https://github.com/sveinn-steinarsson/flot-downsample/blob/0815010016fc94b1bbc6a010afb8aad13ada6d0d/jquery.flot.downsample.js\n// Modifications include:\n// 1) Convert to modern JavaScript(use const, let, and use array.push to push to last element of array)\n// 2) Convert to camel case\n// 3) Convert to TS and also return the indices of the points that are in the downsampled result.\n// 4) Add a new parameter preferredDownsampleIndices that correspond to the indices of points\n// that should be used in case of a tie of the max area in a bucket\nconst largestTriangleThreeBuckets = (\n data: [Date | number, number][],\n threshold: number,\n preferredDownsampleIndices: Set<number>\n): {\n downsampledData: [Date | number, number][];\n downsampledIndices: number[];\n} => {\n const dataLength = data.length;\n const downsampledIndices = [];\n if (threshold >= dataLength || threshold === 0) {\n const allIndices = data.map((values, index) => index);\n return { downsampledData: data, downsampledIndices: allIndices }; // Nothing to do\n }\n\n const sampled: [Date | number, number][] = [];\n let sampledIndex = 0;\n\n // Bucket size. Leave room for start and end data points\n const every = (dataLength - 2) / (threshold - 2);\n\n let a = 0; // Initially a is the first point in the triangle\n let maxAreaPoint: [Date | number, number];\n let maxArea: number | undefined;\n let area: number | undefined;\n let nextA: number | undefined;\n\n sampled.push(data[a]); // Always add the first point\n downsampledIndices.push(0);\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < threshold - 2; i++) {\n // Calculate point average for next bucket (containing c)\n let avgX = 0;\n let avgY = 0;\n let avgRangeStart = Math.floor((i + 1) * every) + 1;\n let avgRangeEnd = Math.floor((i + 2) * every) + 1;\n avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;\n\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n\n // eslint-disable-next-line no-plusplus\n for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {\n avgX += Number(data[avgRangeStart][0]); // * 1 enforces Number (value may be Date)\n avgY += data[avgRangeStart][1] * 1;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n\n // Get the range for this bucket\n let rangeOffs = Math.floor((i + 0) * every) + 1;\n const rangeTo = Math.floor((i + 1) * every) + 1;\n\n // Point a\n const pointAX = Number(data[a][0]); // Enforce Number (value may be Date)\n const pointAY = data[a][1] * 1;\n\n // eslint-disable-next-line no-multi-assign\n maxArea = area = -1;\n let maxAreaIndex = rangeOffs;\n\n // eslint-disable-next-line no-plusplus\n for (; rangeOffs < rangeTo; rangeOffs++) {\n // Calculate triangle area over three buckets\n area =\n Math.abs(\n (pointAX - avgX) * (data[rangeOffs][1] - pointAY) -\n (pointAX - Number(data[rangeOffs][0])) * (avgY - pointAY)\n ) * 0.5;\n // Modification: try to downsample the least amount of points possible when there are multiple series\n // If all points in a bucket have the same area, prioritize the one with an x index\n // that also existed from another series so we don't add another point unnecessarily.\n // By default LTTB picks the leftmost point in the bucket\n if (area > maxArea || (area === maxArea && preferredDownsampleIndices.has(rangeOffs))) {\n maxArea = area;\n maxAreaPoint = data[rangeOffs];\n nextA = rangeOffs; // Next a is this b\n // Modification: save the index of the point with the most area\n maxAreaIndex = rangeOffs;\n }\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = maxAreaPoint; // Pick this point from the bucket\n downsampledIndices.push(maxAreaIndex);\n a = nextA; // This a is the next a (chosen b)\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = data[dataLength - 1]; // Always add last\n downsampledIndices.push(dataLength - 1);\n\n return { downsampledData: sampled, downsampledIndices };\n};\n\nexport type DownsampleOptions = { threshold: number } & Pick<DashboardVizProps, 'dataSources' | 'options'>;\n\ntype CoerceYColumnResult = {\n canDownsampleColumn: boolean;\n canLooselyCoerceSomeValues: boolean;\n coercedColumn: number[];\n};\n\n/**\n * Strictly coerces the entire column to numbers if it only consists of numeric strings or numbers. Also determines\n * if at least one of the values in the column can be loosely coerced to a number.\n * If the column cannot be strictly downsampled (if it contains nulls or non-numeric strings), returns an empty array and\n * returns that it cannot downsample the column.\n */\nconst strictlyCoerceYColumn = (\n column: (string | number)[] | number[],\n options: DownsampleOptions['options']\n): CoerceYColumnResult => {\n const isNullCoercionEnabled = options.nullValueDisplay === 'zero';\n // Splunk charting allows for numbers in formats such as negative hex that\n // Number() does not support and also allows loose coercion of hex numbers (but not other formats)\n // We want to identify columns which contain at least one value that can be loosely coerced\n const canLooselyCoerceSomeValues =\n column.findIndex(\n value => startsWithNumber(`${value}`) || (isNullCoercionEnabled && value === null)\n ) >= 0;\n\n // If not all values in column can be strictly coerced to a number, we do not downsample\n const coercedColumn: number[] = [];\n const canDownsampleColumn = !column.some(value => {\n const coercedValue = Number(value);\n const coerceValueToZero = isNullCoercionEnabled && value === null;\n\n // if it can't be parsed or isn't safe, fail\n if (\n Number.isNaN(coercedValue) ||\n coercedValue <= Number.MIN_SAFE_INTEGER ||\n coercedValue >= Number.MAX_SAFE_INTEGER ||\n (typeof value !== 'string' && typeof value !== 'number' && !coerceValueToZero)\n ) {\n return true;\n }\n // save value and continue to next\n coercedColumn.push(coercedValue);\n return false;\n });\n\n return {\n canDownsampleColumn,\n canLooselyCoerceSomeValues,\n coercedColumn: canDownsampleColumn ? coercedColumn : [],\n };\n};\n\n/**\n * Tries to coerce the x-column to numbers or dates, if it is eligible for downsampling.\n * Only strictly increasing x-columns are eligible for downsampling.\n * If the column is not eligible for downsampling, returns an empty array.\n */\nconst strictlyCoerceXColumn = (column: (string | number)[], fieldType: string): Date[] | number[] => {\n if (fieldType === 'number') {\n const coercedXColumn = column.map(xValue => Number(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n } else if (fieldType === 'time') {\n const coercedXColumn = column.map(xValue => new Date(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n }\n return [];\n};\n\nexport const isDownsamplingEnabledForViz = ({ vizConfig }: { vizConfig: VizConfig }) => {\n return vizConfig.supports?.includes(VizBehavior.DOWNSAMPLING);\n};\n\nexport const calculateThresholdOnRangeSelect = ({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n}: Pick<DashboardVizProps, 'dataSources'> & {\n firstIndex: number;\n lastIndex: number;\n width: number | string;\n}): number => {\n const window = lastIndex - firstIndex + 1;\n // eslint-disable-next-line no-unsafe-optional-chaining\n const ratio = Math.round(Number(dataSources?.primary?.data?.columns[0]?.length / window) * 10) / 10;\n return Math.round(ratio * Number(width));\n};\n\n/**\n * Calculates the downsampling threshold based on the range selection. If search zoom is enabled or there is no selection,\n * then returns the width of the visualization.\n *\n * Otherwise calculates the threshold based on the ratio of the window selected compared to the size of the non-downsampled\n * data sources. Returns null if the chart event's dataset does not match the passed in primary data source or if the chart is zoomed\n * in for a categorical chart.\n */\nexport const calculateDownsamplingThreshold = ({\n enableSearchZoom,\n dataSources,\n selectChartEvent,\n width,\n xField,\n}: {\n enableSearchZoom: boolean;\n dataSources: Record<string, DataSource> | null;\n selectChartEvent: ChartEvent<'chartRangeSelect'> | null;\n width: number;\n xField: string;\n}): number | null => {\n if (enableSearchZoom || !selectChartEvent) {\n return Number(width);\n }\n\n const primaryDataSource = dataSources?.primary;\n if (!primaryDataSource) {\n return null;\n }\n\n const { startXIndex, endXIndex, currentTarget } = selectChartEvent;\n\n try {\n const xFieldIndex = primaryDataSource?.data?.fields.findIndex(field => {\n const name = typeof field === 'string' ? field : field.name;\n return name === xField;\n });\n const downsampledXFieldIndex = currentTarget.dataSet?.fields.findIndex(field => field === xField);\n\n if (xFieldIndex === -1 || downsampledXFieldIndex === -1) {\n return null;\n }\n\n const fullSeries = primaryDataSource?.data?.columns[xFieldIndex];\n const downsampledSeries = currentTarget.dataSet.seriesList[downsampledXFieldIndex];\n\n const firstIndex = fullSeries.findIndex(x => {\n return downsampledSeries[startXIndex] === x;\n });\n const lastIndex = fullSeries.findIndex(x => {\n return downsampledSeries[endXIndex] === x;\n });\n\n if (firstIndex >= 0 && lastIndex >= 0 && firstIndex <= lastIndex) {\n return calculateThresholdOnRangeSelect({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n });\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error occurred while setting downsample threshold on range select event', e);\n }\n\n return null;\n};\n\nconst isColumnStrictlyIncreasing = (column: (number | Date)[], fieldType: 'number' | 'time') => {\n return column.every((value, index) => {\n if (fieldType === 'number') {\n if (Number.isNaN(value)) {\n return false;\n }\n }\n\n if (fieldType === 'time') {\n if (Number.isNaN((value as Date).getTime())) {\n return false;\n }\n }\n if (index === 0) {\n return true;\n }\n return value > column[index - 1];\n });\n};\n\n/**\n * Verifies that all of the columns that are displayed in a chart can be downsampled. Valid columns that can be\n * displayed are those that contain at least one number. We can only downsample columns that only consist of numbers.\n *\n * If all columns can be downsampled, returns the x column coerced to time/number and y columns coerced to numbers.\n * If not all columns can be downsampled, then returns empty arrays for both x and y\n */\nconst tryToCoerceAllDisplayedFields = (\n ds: DataSource,\n xField: string,\n yFields: Set<string>,\n fieldTypes: string[],\n options: DownsampleOptions['options']\n): { xColumn: Date[] | number[]; yColumns: number[][] } => {\n let xColumn: Date[] | number[] = [];\n const yColumns: number[][] = [];\n\n const canDownsample = !ds.data.fields.some((field, index) => {\n const fieldName = (field as FieldEntry).name ?? field;\n const fieldType = fieldTypes[index] ?? 'unknown';\n const column = ds.data.columns[index];\n let hasDisplayedColumnThatCantBeDownsampled = false;\n\n if (fieldName === xField) {\n xColumn = strictlyCoerceXColumn(column, fieldType);\n } else if (yFields.has(fieldName)) {\n const { coercedColumn, canLooselyCoerceSomeValues, canDownsampleColumn } = strictlyCoerceYColumn(\n ds.data.columns[index],\n options\n );\n // do not perform downsampling if a column can possibly be displayed but cannot\n // be downsampled using LTTB\n hasDisplayedColumnThatCantBeDownsampled = canLooselyCoerceSomeValues && !canDownsampleColumn;\n if (hasDisplayedColumnThatCantBeDownsampled) {\n return true;\n }\n if (canDownsampleColumn) {\n yColumns.push(coercedColumn);\n }\n }\n return false;\n });\n\n if (canDownsample) {\n return { xColumn, yColumns };\n }\n return { xColumn: [], yColumns: [] };\n};\n\nconst pickIndicesFromDataSource = (ds: DataSource, indices: Set<number>): DataSource => {\n const sortedIndices = Array.from(indices).sort((a: number, b: number) => a - b);\n const slicedColumns = [];\n ds.data.columns.forEach(column => {\n const slicedColumn = [];\n sortedIndices.forEach(index => {\n slicedColumn.push(column[index]);\n });\n slicedColumns.push(slicedColumn);\n });\n\n // update data columns with downsampled columns\n return {\n ...ds,\n data: {\n ...ds.data,\n columns: slicedColumns,\n },\n };\n};\n\nexport const downsampleDataSources = ({ dataSources, threshold, options }: DownsampleOptions) => {\n const primaryDS = dataSources?.primary;\n // only downsample time series when number of data points are over threshold\n const numPoints = primaryDS?.data?.columns[0]?.length ?? 0;\n if (Number.isNaN(threshold) || numPoints <= threshold || threshold < 2) {\n return dataSources;\n }\n\n const { xField, yFields, fieldTypes } = options;\n if (!xField || !yFields?.length || !fieldTypes?.length) {\n return dataSources;\n }\n\n const nonInternalYFields = new Set<string>(yFields.filter(yField => !yField.startsWith('_')));\n const maxPointsInDownsample = Math.min(nonInternalYFields.size * threshold, numPoints);\n\n // Do not try to downsample if there are too many downsampled pts\n // At the worst case, each series has non-overlapping downsampled pts\n // which will mean that all points will be included in the downsampled result\n // This will just lead to additional overhead due to coercing each\n // x and y field to number\n if (maxPointsInDownsample >= numPoints) {\n return dataSources;\n }\n\n const { xColumn, yColumns } = tryToCoerceAllDisplayedFields(\n primaryDS,\n xField,\n nonInternalYFields,\n fieldTypes,\n options\n );\n\n if (!yColumns.length || !xColumn.length) {\n return dataSources;\n }\n\n const downsampledDataSources = { ...dataSources };\n const downsampledIndices = new Set<number>();\n\n yColumns.forEach((yColumn, columnIndex) => {\n // perform LTTB downsampling for current series, LTTB takes an [x, y] pair\n const xyPair: [Date | number, number][] = yColumn.map((yValue, index) => {\n return [xColumn[index], yValue];\n });\n\n try {\n const { downsampledIndices: downsampledIndicesForSeries } = largestTriangleThreeBuckets(\n xyPair,\n threshold,\n downsampledIndices\n );\n downsampledIndicesForSeries.forEach(downsampleIndex => downsampledIndices.add(downsampleIndex));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`Error occurred while downsampling column ${columnIndex}`, e);\n }\n });\n // update data columns with downsampled columns\n downsampledDataSources.primary = pickIndicesFromDataSource(primaryDS, downsampledIndices);\n\n return downsampledDataSources;\n};\n", "\nimport * as defaultImport from \"@splunk/visualization-context/FeatureFlagContext\";\nexport * from \"@splunk/visualization-context/FeatureFlagContext\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-schemas\";\nexport * from \"@splunk/visualization-schemas\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { useContext } from 'react';\nimport FeatureFlagContext from '@splunk/visualization-context/FeatureFlagContext';\nimport { LAYOUT_TYPE } from '@splunk/visualization-schemas';\n\nexport const useTrellisFeatureFlagOn = (): boolean => {\n const context = useContext(FeatureFlagContext) as Record<string, unknown>;\n return Boolean(context?.visualizations_enableTrellis);\n};\n\nexport const useTrellisEnabled = (layoutType = LAYOUT_TYPE.Off): boolean => {\n const trellisFeatureEnabled = useTrellisFeatureFlagOn();\n return trellisFeatureEnabled && layoutType === LAYOUT_TYPE.Trellis;\n};\n", "import * as React from 'react';\nimport styled from 'styled-components';\n\nexport const TRELLIS_TITLE_HEIGHT = 28;\n\nconst TrellisTitleText = styled.div`\n margin-left: 10px;\n margin-right: 10px;\n padding-top: 8px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst TrellisTitleDiv = styled.div<{\n fontColor: string;\n backgroundColor: string;\n}>`\n height: ${TRELLIS_TITLE_HEIGHT}px;\n font-size: 14px;\n font-weight: 700;\n color: ${props => props.fontColor};\n background-color: ${props => props.backgroundColor};\n 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.\n`;\n\ninterface TrellisTitleProps {\n fontColor: string;\n backgroundColor: string;\n trellisKey: unknown;\n}\n\nexport const TrellisTitle = (props: TrellisTitleProps) => {\n const titleText = String(props.trellisKey).toString();\n return (\n <TrellisTitleDiv\n fontColor={props.fontColor}\n backgroundColor={props.backgroundColor}\n data-test=\"trellis-title\"\n title={titleText}\n >\n <TrellisTitleText>{titleText}</TrellisTitleText>\n </TrellisTitleDiv>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "i18n_exports", "i18n_default", "defaultImport", "i18n_exports", "i18n_default", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "window", "defaultImport", "defaultImport", "_a"]
3
+ "sources": ["../src/common/Charting.tsx", "esm-externals:lodash", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/visualization-color-palettes", "esm-externals:react", "esm-externals:@splunk/visualizations-shared/i18n", "esm-externals:@splunk/charting-bundle", "esm-externals:@splunk/visualization-context/TimezoneContext", "esm-externals:@splunk/visualizations-shared/style", "esm-externals:styled-components", "esm-externals:@splunk/visualizations-shared/Message", "esm-externals:@splunk/themes/useSplunkTheme", "esm-externals:@splunk/visualizations-shared/themeUtils", "../src/common/ChartingApi.ts", "../src/common/hooks/usePrevious.ts", "../src/common/hooks/useEventCallback.tsx", "esm-externals:@splunk/visualizations-shared/numberUtils", "../src/common/utils/dataUtils.ts", "esm-externals:@splunk/visualization-context/FeatureFlagContext", "esm-externals:@splunk/visualization-schemas", "../src/common/hooks/useTrellisEnabled.ts", "../src/common/components/TrellisTitle.tsx"],
4
+ "sourcesContent": ["/* eslint-disable react/no-unused-prop-types */\nimport { pick, debounce, noop } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport * as React from 'react';\nimport { useContext, useEffect, useMemo, useRef } from 'react';\nimport '@splunk/visualizations-shared/i18n'; // fixme, @splunk/charting should be refactor to use locale & timezone instead of i18n functions\nimport jsCharting from '@splunk/charting-bundle';\nimport TimezoneContext, { TimezoneContextInterface } from '@splunk/visualization-context/TimezoneContext';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport styled from 'styled-components';\nimport Message from '@splunk/visualizations-shared/Message';\nimport useSplunkTheme from '@splunk/themes/useSplunkTheme';\nimport { getChartingThemeKey } from '@splunk/visualizations-shared/themeUtils';\nimport { LAYOUT_TYPE } from '@splunk/visualization-schemas';\nimport { ChartingApiFunctional } from './ChartingApi';\nimport usePrevious from './hooks/usePrevious';\nimport useEventCallback from './hooks/useEventCallback';\nimport { DataSource } from './interfaces';\nimport { calculateDownsamplingThreshold } from './utils/dataUtils';\nimport type { ChartEvent } from './interfaces/ChartEvent';\nimport { useTrellisEnabled } from './hooks/useTrellisEnabled';\nimport { TrellisTitle, TRELLIS_TITLE_HEIGHT } from './components/TrellisTitle';\n\nexport const NO_INPLACE_PROPS = [\n 'chart',\n 'chart.orientation',\n 'layout.splitSeries',\n 'chart.style',\n 'legend.placement',\n];\n\nexport const appendTrellisToPayload = (\n props: ChartingProps,\n payload: Record<string, unknown>\n): Record<string, unknown> => {\n if (props.trellisSplitBy) {\n // eslint-disable-next-line no-param-reassign\n payload['trellis.name'] = props.trellisSplitBy;\n }\n if (props.trellisKey) {\n // eslint-disable-next-line no-param-reassign\n payload['trellis.value'] = props.trellisKey;\n }\n return payload;\n};\n\nexport const changedOptions = (\n curOptions: Record<string, unknown>,\n nextOptions: Record<string, unknown>\n): string[] =>\n Object.keys(curOptions)\n .filter(key => !(key in nextOptions))\n .concat(\n Object.keys(nextOptions).filter(\n key => !(key in curOptions) || curOptions[key] !== nextOptions[key]\n )\n );\n\nexport const canUpdateInPlace = (\n curOptions: Record<string, unknown>,\n nextOptions: Record<string, unknown>\n): boolean => {\n // if either of the options are undefined\n // it cannot update in place.\n if (!curOptions || !nextOptions) {\n return false;\n }\n return (\n !NO_INPLACE_PROPS.some(p => curOptions[p] !== nextOptions[p]) &&\n !changedOptions(curOptions, nextOptions).some(p => p.toLowerCase().endsWith('color'))\n );\n};\n\n// create 'row' payloads from 'rowContext' in the flattened format:\n// row.<fieldname>.value\nexport const updateRowPayload = (\n chartEventRowContext: Record<string, unknown>,\n payload: Record<string, unknown>\n): Record<string, unknown> => {\n Object.keys(chartEventRowContext || {}).forEach(key => {\n // eslint-disable-next-line no-param-reassign\n payload[`${key}.value`] = chartEventRowContext[key];\n });\n\n return payload;\n};\n\nexport interface ContainerProps {\n width: string | number;\n height: string | number;\n}\n\nenum VizChartEventType {\n POINT_CLICK = 'point.click',\n POINT_MOUSE_OUT = 'point.mouseout',\n POINT_MOUSE_OVER = 'point.mouseover',\n LEGEND_CLICK = 'legend.click',\n}\n\n// @TODO(pwied): remove after HC upgrade to 8+\n// .highcharts-a11y-proxy-container rule addresses a HighCharts < 8 bug\n// caused by the accessibility plugin\n// https://github.com/highcharts/highcharts/issues/12883\nconst ChartingContainer = styled.div.attrs((props: ContainerProps) => ({\n 'data-test': 'charting-container',\n width: props.width,\n height: props.height,\n}))`\n & .highcharts-a11y-proxy-container {\n pointer-events: none;\n }\n overflow: hidden;\n position: relative;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nexport interface ChartingProps {\n // width in pixel or string, defaults to 100%\n width: string | number;\n // height in pixel or string\n height: string | number;\n // visualization formatting options\n options?: Record<string, any>;\n // charting dataset from jsCharting.extractChartReadyData\n chartData: Record<string, any>;\n // callbacks to trigger event\n onEventTrigger?: (...args: any[]) => void;\n onSelect?: (...args: any[]) => void;\n onClick?: (...args: any[]) => void;\n onPointMouseOver?: (...args: any[]) => void;\n onPointMouseOut?: (...args: any[]) => void;\n // Custom style on visualization\n style?: Record<string, unknown>;\n colorPalette?: Array<string>;\n visualizationApiRef?: (...args: any[]) => void;\n themeKey?: string;\n // The non-downsampled data sources used by this chart. Passed in if downsampling\n // is enabled for this chart.\n originalDataSources?: Record<string, DataSource> | null;\n // Callback for when downsampling threshold changes. Passed in if downsampling\n // is enabled for this chart.\n onDownsamplingThresholdChange?: (threshold: number) => void | null;\n // The xField for this chart if it is an axis chart\n xField?: string;\n // The yFields for this chart if it is an axis chart\n yFields?: string[];\n // The y2Fields for this chart if it is specified and it is an axis chart\n y2Fields?: string[];\n // The additional tooltip fields for this chart if it is specified and it is an axis chart\n additionalTooltipFields?: string[];\n splitByLayout?: LAYOUT_TYPE;\n trellisKey?: string;\n trellisSplitBy?: string;\n backgroundColor?: string;\n defaultFontColor?: string;\n userLocale?: Record<string, any>;\n annotationX?: string[];\n annotationLabel?: string[];\n annotationColor?: string[];\n legendDisplay?: 'left' | 'right' | 'top' | 'bottom' | 'off';\n markerDisplay?: 'off' | 'filled' | 'outlined';\n}\n\nconst Charting: React.FC<ChartingProps> = props => {\n const container = useRef<HTMLDivElement>(null);\n const needsInit = useRef<boolean>(true);\n const chart = useRef<jsCharting>();\n const needsRedraw = useRef<boolean>(true);\n const api = useRef(new ChartingApiFunctional(chart));\n const timezone = useContext<TimezoneContextInterface>(TimezoneContext);\n const selectChartEvent = useRef<ChartEvent<'chartRangeSelect'>>(null);\n const trellisEnabled = useTrellisEnabled(props.splitByLayout);\n\n const drawChartRef = useRef<() => void>(() => {});\n\n const debouncedDrawChart = useMemo(\n () =>\n debounce(() => {\n drawChartRef.current();\n }, 5),\n []\n );\n\n useEffect(\n () => () => {\n debouncedDrawChart.cancel();\n },\n [debouncedDrawChart]\n );\n\n const computeChartingSize = () => {\n if (container.current) {\n const rect = container.current.getBoundingClientRect();\n return {\n height: rect.height,\n width: rect.width,\n };\n }\n return {};\n };\n const splunkTheme = useSplunkTheme();\n const themeKey = props.themeKey ? props.themeKey : getChartingThemeKey({ splunkThemeV1: splunkTheme });\n const {\n width = '100%',\n height = 250,\n options = {},\n style = {},\n chartData,\n colorPalette = VIZ_CATEGORICAL,\n onClick = noop,\n onSelect = noop,\n onPointMouseOut = noop,\n onPointMouseOver = noop,\n onEventTrigger = noop,\n originalDataSources,\n onDownsamplingThresholdChange,\n xField,\n backgroundColor = '',\n defaultFontColor = '',\n trellisKey,\n additionalTooltipFields,\n } = props;\n const prevOptions = usePrevious(options);\n const prevTimezone = usePrevious(timezone);\n\n const handleClick = (\n chartEvent: ChartEvent<'pointClick' | 'legendClick'>,\n type: VizChartEventType\n ): void => {\n let payload: Partial<ChartEvent<'pointClick' | 'legendClick'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n\n if (type === VizChartEventType.POINT_CLICK) {\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n }\n\n payload = appendTrellisToPayload(props, payload);\n\n onClick({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const destroyChart = (): void => {\n if (chart.current) {\n chart.current.destroy();\n chart.current = null;\n }\n needsRedraw.current = true;\n needsInit.current = true;\n };\n\n const enableSearchZoom = chartData?.chartDataOptions?.enableSearchZoom ?? false;\n const recalculateDownsamplingThreshold = React.useCallback(() => {\n if (!onDownsamplingThresholdChange || !xField) {\n return;\n }\n\n const newThreshold = calculateDownsamplingThreshold({\n enableSearchZoom,\n dataSources: originalDataSources,\n width: Number(width),\n selectChartEvent: selectChartEvent.current,\n xField,\n });\n\n if (Number.isFinite(newThreshold)) {\n onDownsamplingThresholdChange(newThreshold);\n }\n }, [enableSearchZoom, originalDataSources, onDownsamplingThresholdChange, width, xField]);\n\n React.useEffect(() => {\n recalculateDownsamplingThreshold();\n }, [recalculateDownsamplingThreshold]);\n\n // useEventCallback is used for these handlers to make sure that they are a stable reference and\n // we always use the latest version of the callback\n // Since chart drawing is debounced, there is a race condition where a stale callback may be called\n // if a prop changes and the event handler is called before the chart redraws. This means that\n // it will use the old callback rather than the newer one, which can lead to inaccurate results\n const handleSelect = useEventCallback((chartEvent: ChartEvent<'chartRangeSelect'>): void => {\n selectChartEvent.current = chartEvent;\n recalculateDownsamplingThreshold();\n const payload = appendTrellisToPayload(\n props,\n pick(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue')\n );\n\n // todo: need change this after breaking all visualizations\n if (onSelect && typeof onSelect === 'function') {\n onSelect({\n type: 'range.select',\n originalEvent: chartEvent,\n payload,\n });\n\n return;\n }\n\n // the chartEvent here is a jQuery event\n onEventTrigger({\n type: 'range.select',\n originalEvent: chartEvent,\n payload,\n });\n });\n\n const handlePointMouseOut = useEventCallback(\n (chartEvent: ChartEvent<'pointMouseOut'>, type: VizChartEventType): void => {\n let payload: Partial<ChartEvent<'pointMouseOut'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = appendTrellisToPayload(props, updateRowPayload(chartEvent.rowContext, payload));\n\n onPointMouseOut({\n type,\n originalEvent: chartEvent,\n payload,\n });\n }\n );\n\n const handlePointMouseOver = useEventCallback(\n (chartEvent: ChartEvent<'pointMouseOver'>, type: VizChartEventType): void => {\n let payload: Partial<ChartEvent<'pointMouseOver'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = appendTrellisToPayload(props, updateRowPayload(chartEvent.rowContext, payload));\n\n onPointMouseOver({\n type,\n originalEvent: chartEvent,\n payload,\n });\n }\n );\n\n const drawChart = (): void => {\n const updatedOptions = { ...options, shouldColorizeTooltipData: false };\n const computedChartSize = computeChartingSize();\n const computedWidth = computedChartSize.width;\n const computedHeight = computedChartSize.height;\n const serializedTimezone = timezone?.serializedTimezone;\n const ianaTimezone = timezone?.ianaTimezone;\n const utcOffset = timezone?.utcOffset;\n if (!computedWidth || !computedHeight) {\n return;\n }\n if (!chartData || !Object.keys(chartData).length) {\n return;\n }\n\n // splunk-charting layers configuration option updates.\n // when an option is removed it needs to be set to an empty string\n // to override the previous configuration\n if (prevOptions) {\n Object.keys(prevOptions).forEach(key => {\n if (prevOptions[key] && updatedOptions[key] === undefined) {\n updatedOptions[key] = '';\n }\n });\n }\n\n try {\n if (needsInit.current) {\n destroyChart();\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n chart.current = jsCharting.createChart(container.current, {\n ...updatedOptions,\n drilldown: 'all',\n ...(typeof serializedTimezone === 'string' && {\n 'time.serializedTz': serializedTimezone,\n }),\n ...(typeof ianaTimezone === 'string' && {\n 'time.ianaTimezone': ianaTimezone,\n }),\n ...(typeof utcOffset === 'number' && {\n 'time.timezoneOffset': utcOffset,\n }),\n });\n // bind event handlers\n chart.current.on('pointClick', e => {\n handleClick(e, VizChartEventType.POINT_CLICK);\n });\n chart.current.on('pointMouseOver', e => {\n handlePointMouseOver(e, VizChartEventType.POINT_MOUSE_OVER);\n });\n chart.current.on('pointMouseOut', e => {\n handlePointMouseOut(e, VizChartEventType.POINT_MOUSE_OUT);\n });\n chart.current.on('legendClick', e => {\n handleClick(e, VizChartEventType.LEGEND_CLICK);\n });\n chart.current.on('chartRangeSelect', handleSelect);\n }\n if (needsRedraw.current) {\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n const payload = appendTrellisToPayload(props, {\n width,\n height,\n currentTime: new Date().getTime(),\n });\n chart.current.prepareAndDraw(chartData, updatedOptions, () => {\n onEventTrigger({\n type: 'viz.renderedWithData',\n payload,\n });\n });\n }\n if (chart.current) {\n if (\n Math.round(chart.current.height) !== Math.round(computedHeight) ||\n Math.round(chart.current.width) !== Math.round(computedWidth)\n ) {\n chart.current.resize(computedWidth, computedHeight);\n }\n }\n needsInit.current = false;\n needsRedraw.current = false;\n } catch (e) {\n window.console.error('Caught error rendering chart:', e);\n }\n };\n\n const onContainerMount = chartingContainer => {\n container.current = chartingContainer;\n debouncedDrawChart();\n };\n\n drawChartRef.current = drawChart;\n\n const prevTheme = usePrevious(themeKey);\n const prevOnClick = usePrevious(onClick);\n\n useEffect(() => {\n debouncedDrawChart();\n props?.visualizationApiRef?.(api?.current);\n return () => {\n props?.visualizationApiRef?.(null);\n destroyChart();\n };\n }, []);\n\n useEffect(() => {\n const handleResize = () => {\n debouncedDrawChart();\n };\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [debouncedDrawChart]);\n\n useEffect(() => {\n // TODO: figure out why re-init is needed for functional components (i.e. PlatformViz) when changing theme\n // seems like redraw doesn't suffice to update the background colors\n if (\n !chart.current ||\n !canUpdateInPlace(prevOptions, options) ||\n // timezone is a simple object so this comparison should be fast\n JSON.stringify(prevTimezone) !== JSON.stringify(timezone) ||\n (!props.themeKey && prevTheme !== themeKey) ||\n prevOnClick !== onClick\n ) {\n needsInit.current = true;\n }\n // need to immediately call drawChart upon an option or chartData change\n // otherwise a noop would occur if the onContainerMount drawChart is re-invoked when dimensions change\n needsRedraw.current = true;\n drawChart();\n }, [\n JSON.stringify(options),\n JSON.stringify(chartData.toJSON()),\n JSON.stringify(chartData.annotations),\n timezone?.ianaTimezone,\n timezone?.utcOffset,\n timezone?.serializedTimezone,\n themeKey,\n onClick,\n additionalTooltipFields,\n ]);\n\n return (\n <>\n {trellisEnabled && (\n <TrellisTitle\n trellisKey={trellisKey}\n backgroundColor={backgroundColor}\n fontColor={defaultFontColor}\n />\n )}\n <ChartingContainer\n style={style}\n ref={onContainerMount}\n width={width}\n height={trellisEnabled ? Number(height) - TRELLIS_TITLE_HEIGHT : height}\n />\n </>\n );\n};\n\n// allow for early return in case of empty chartData while still following hook rules\nconst ChartingWrapper: React.FC<ChartingProps> = props => {\n const { chartData } = props;\n\n if (!chartData) {\n return <Message message={_('No DataSource')} level=\"warning\" width=\"100%\" height=\"100%\" />;\n }\n\n if (!Object.keys(chartData).length) {\n return <Message message={_('No Result')} level=\"info\" width=\"100%\" height=\"100%\" />;\n }\n\n return <Charting {...props} />;\n};\n\nexport default ChartingWrapper;\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-color-palettes\";\nexport * from \"@splunk/visualization-color-palettes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/i18n\";\nexport * from \"@splunk/visualizations-shared/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/charting-bundle\";\nexport * from \"@splunk/charting-bundle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-context/TimezoneContext\";\nexport * from \"@splunk/visualization-context/TimezoneContext\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/style\";\nexport * from \"@splunk/visualizations-shared/style\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/Message\";\nexport * from \"@splunk/visualizations-shared/Message\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes/useSplunkTheme\";\nexport * from \"@splunk/themes/useSplunkTheme\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/themeUtils\";\nexport * from \"@splunk/visualizations-shared/themeUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import jsCharting from '@splunk/charting-bundle';\n\ninterface Point {\n /**\n * Valid xValue of the chart\n *\n * @type {string|number}\n * @memberof Point\n */\n xValue?: string | number;\n\n /**\n * Valid seriesName for a chart\n *\n * @type {string}\n * @memberof Point\n */\n seriesName?: string;\n}\n\nexport class ChartingApiFunctional {\n // eslint-disable-next-line no-useless-constructor\n constructor(private chartRef: any) {}\n\n /**\n * Allows users to programmatically highlight a point on the chart\n *\n * @memberof ChartingApiFunctional\n */\n highlight({ xValue, seriesName }: Point = { xValue: '', seriesName: '' }): void {\n this.getChart().highlight(xValue, seriesName);\n }\n\n /**\n * Allows users to programmatically unhighlight all points on the chart\n *\n * @memberof ChartingApiFunctional\n */\n unHighlight(): void {\n this.getChart().unHighlight();\n }\n\n // returns chart object\n getChart(): jsCharting {\n return this.chartRef?.current;\n }\n}\n", "import { useEffect, useRef } from 'react';\n\nexport default function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n", "import { useRef, useLayoutEffect, useCallback } from 'react';\n\n/**\n * This is an escape hatch for the case where an event handler function depends on some states that changes too often thus the event handle is recreated frequently which causes bugs in some edge cases.\n *\n * For example if an old callback is called, it may not use the most recent props, but the previous props when that callback was created.\n */\n\ntype Fn<ARGS extends any[], R> = (...args: ARGS) => R;\nconst useEventCallback = <A extends any[], R>(fn: Fn<A, R>): Fn<A, R> => {\n const ref = useRef<Fn<A, R>>(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return useCallback((...args: A): R => ref.current(...args), []);\n};\n\nexport default useEventCallback;\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/numberUtils\";\nexport * from \"@splunk/visualizations-shared/numberUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import type { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport { startsWithNumber } from '@splunk/visualizations-shared/numberUtils';\nimport type { DashboardVizProps, DataSource, VizConfig } from '../interfaces';\nimport { VizBehavior } from '../interfaces';\nimport { ChartEvent } from '../interfaces/ChartEvent';\n\n// TODO: utilize this fn in ParallelCoordinates\n\nexport const convertToArrOfObjects = (columns: (string | any[])[], fields: any[]): any[] => {\n if (!columns || !columns[0] || !columns[0].length) return [];\n\n const data = [];\n\n for (let i = 0; i < columns[0].length; i += 1) {\n const newObj = {};\n fields.forEach((field, index) => {\n const fieldName = typeof field === 'string' ? field : field.name;\n if (columns[index][i] === '') {\n newObj[fieldName] = null;\n } else {\n newObj[fieldName] = columns[index][i];\n }\n });\n data.push(newObj);\n }\n\n return data;\n};\n\n// LTTB algorithm which can be used to downsample time series data while striving to maintain\n// the spikes and overall shape of the chart\n// Copied from https://github.com/sveinn-steinarsson/flot-downsample/blob/0815010016fc94b1bbc6a010afb8aad13ada6d0d/jquery.flot.downsample.js\n// Modifications include:\n// 1) Convert to modern JavaScript(use const, let, and use array.push to push to last element of array)\n// 2) Convert to camel case\n// 3) Convert to TS and also return the indices of the points that are in the downsampled result.\n// 4) Add a new parameter preferredDownsampleIndices that correspond to the indices of points\n// that should be used in case of a tie of the max area in a bucket\nconst largestTriangleThreeBuckets = (\n data: [Date | number, number][],\n threshold: number,\n preferredDownsampleIndices: Set<number>\n): {\n downsampledData: [Date | number, number][];\n downsampledIndices: number[];\n} => {\n const dataLength = data.length;\n const downsampledIndices = [];\n if (threshold >= dataLength || threshold === 0) {\n const allIndices = data.map((values, index) => index);\n return { downsampledData: data, downsampledIndices: allIndices }; // Nothing to do\n }\n\n const sampled: [Date | number, number][] = [];\n let sampledIndex = 0;\n\n // Bucket size. Leave room for start and end data points\n const every = (dataLength - 2) / (threshold - 2);\n\n let a = 0; // Initially a is the first point in the triangle\n let maxAreaPoint: [Date | number, number];\n let maxArea: number | undefined;\n let area: number | undefined;\n let nextA: number | undefined;\n\n sampled.push(data[a]); // Always add the first point\n downsampledIndices.push(0);\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < threshold - 2; i++) {\n // Calculate point average for next bucket (containing c)\n let avgX = 0;\n let avgY = 0;\n let avgRangeStart = Math.floor((i + 1) * every) + 1;\n let avgRangeEnd = Math.floor((i + 2) * every) + 1;\n avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;\n\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n\n // eslint-disable-next-line no-plusplus\n for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {\n avgX += Number(data[avgRangeStart][0]); // * 1 enforces Number (value may be Date)\n avgY += data[avgRangeStart][1] * 1;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n\n // Get the range for this bucket\n let rangeOffs = Math.floor((i + 0) * every) + 1;\n const rangeTo = Math.floor((i + 1) * every) + 1;\n\n // Point a\n const pointAX = Number(data[a][0]); // Enforce Number (value may be Date)\n const pointAY = data[a][1] * 1;\n\n // eslint-disable-next-line no-multi-assign\n maxArea = area = -1;\n let maxAreaIndex = rangeOffs;\n\n // eslint-disable-next-line no-plusplus\n for (; rangeOffs < rangeTo; rangeOffs++) {\n // Calculate triangle area over three buckets\n area =\n Math.abs(\n (pointAX - avgX) * (data[rangeOffs][1] - pointAY) -\n (pointAX - Number(data[rangeOffs][0])) * (avgY - pointAY)\n ) * 0.5;\n // Modification: try to downsample the least amount of points possible when there are multiple series\n // If all points in a bucket have the same area, prioritize the one with an x index\n // that also existed from another series so we don't add another point unnecessarily.\n // By default LTTB picks the leftmost point in the bucket\n if (area > maxArea || (area === maxArea && preferredDownsampleIndices.has(rangeOffs))) {\n maxArea = area;\n maxAreaPoint = data[rangeOffs];\n nextA = rangeOffs; // Next a is this b\n // Modification: save the index of the point with the most area\n maxAreaIndex = rangeOffs;\n }\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = maxAreaPoint; // Pick this point from the bucket\n downsampledIndices.push(maxAreaIndex);\n a = nextA; // This a is the next a (chosen b)\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = data[dataLength - 1]; // Always add last\n downsampledIndices.push(dataLength - 1);\n\n return { downsampledData: sampled, downsampledIndices };\n};\n\nexport type DownsampleOptions = { threshold: number } & Pick<DashboardVizProps, 'dataSources' | 'options'>;\n\ntype CoerceYColumnResult = {\n canDownsampleColumn: boolean;\n canLooselyCoerceSomeValues: boolean;\n coercedColumn: number[];\n};\n\n/**\n * Strictly coerces the entire column to numbers if it only consists of numeric strings or numbers. Also determines\n * if at least one of the values in the column can be loosely coerced to a number.\n * If the column cannot be strictly downsampled (if it contains nulls or non-numeric strings), returns an empty array and\n * returns that it cannot downsample the column.\n */\nconst strictlyCoerceYColumn = (\n column: (string | number)[] | number[],\n options: DownsampleOptions['options']\n): CoerceYColumnResult => {\n const isNullCoercionEnabled = options.nullValueDisplay === 'zero';\n // Splunk charting allows for numbers in formats such as negative hex that\n // Number() does not support and also allows loose coercion of hex numbers (but not other formats)\n // We want to identify columns which contain at least one value that can be loosely coerced\n const canLooselyCoerceSomeValues =\n column.findIndex(\n value => startsWithNumber(`${value}`) || (isNullCoercionEnabled && value === null)\n ) >= 0;\n\n // If not all values in column can be strictly coerced to a number, we do not downsample\n const coercedColumn: number[] = [];\n const canDownsampleColumn = !column.some(value => {\n const coercedValue = Number(value);\n const coerceValueToZero = isNullCoercionEnabled && value === null;\n\n // if it can't be parsed or isn't safe, fail\n if (\n Number.isNaN(coercedValue) ||\n coercedValue <= Number.MIN_SAFE_INTEGER ||\n coercedValue >= Number.MAX_SAFE_INTEGER ||\n (typeof value !== 'string' && typeof value !== 'number' && !coerceValueToZero)\n ) {\n return true;\n }\n // save value and continue to next\n coercedColumn.push(coercedValue);\n return false;\n });\n\n return {\n canDownsampleColumn,\n canLooselyCoerceSomeValues,\n coercedColumn: canDownsampleColumn ? coercedColumn : [],\n };\n};\n\n/**\n * Tries to coerce the x-column to numbers or dates, if it is eligible for downsampling.\n * Only strictly increasing x-columns are eligible for downsampling.\n * If the column is not eligible for downsampling, returns an empty array.\n */\nconst strictlyCoerceXColumn = (column: (string | number)[], fieldType: string): Date[] | number[] => {\n if (fieldType === 'number') {\n const coercedXColumn = column.map(xValue => Number(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n } else if (fieldType === 'time') {\n const coercedXColumn = column.map(xValue => new Date(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n }\n return [];\n};\n\nexport const isDownsamplingEnabledForViz = ({ vizConfig }: { vizConfig: VizConfig }) => {\n return vizConfig.supports?.includes(VizBehavior.DOWNSAMPLING);\n};\n\nexport const calculateThresholdOnRangeSelect = ({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n}: Pick<DashboardVizProps, 'dataSources'> & {\n firstIndex: number;\n lastIndex: number;\n width: number | string;\n}): number => {\n const window = lastIndex - firstIndex + 1;\n // eslint-disable-next-line no-unsafe-optional-chaining\n const ratio = Math.round(Number(dataSources?.primary?.data?.columns[0]?.length / window) * 10) / 10;\n return Math.round(ratio * Number(width));\n};\n\n/**\n * Calculates the downsampling threshold based on the range selection. If search zoom is enabled or there is no selection,\n * then returns the width of the visualization.\n *\n * Otherwise calculates the threshold based on the ratio of the window selected compared to the size of the non-downsampled\n * data sources. Returns null if the chart event's dataset does not match the passed in primary data source or if the chart is zoomed\n * in for a categorical chart.\n */\nexport const calculateDownsamplingThreshold = ({\n enableSearchZoom,\n dataSources,\n selectChartEvent,\n width,\n xField,\n}: {\n enableSearchZoom: boolean;\n dataSources: Record<string, DataSource> | null;\n selectChartEvent: ChartEvent<'chartRangeSelect'> | null;\n width: number;\n xField: string;\n}): number | null => {\n if (enableSearchZoom || !selectChartEvent) {\n return Number(width);\n }\n\n const primaryDataSource = dataSources?.primary;\n if (!primaryDataSource) {\n return null;\n }\n\n const { startXIndex, endXIndex, currentTarget } = selectChartEvent;\n\n try {\n const xFieldIndex = primaryDataSource?.data?.fields.findIndex(field => {\n const name = typeof field === 'string' ? field : field.name;\n return name === xField;\n });\n const downsampledXFieldIndex = currentTarget.dataSet?.fields.findIndex(field => field === xField);\n\n if (xFieldIndex === -1 || downsampledXFieldIndex === -1) {\n return null;\n }\n\n const fullSeries = primaryDataSource?.data?.columns[xFieldIndex];\n const downsampledSeries = currentTarget.dataSet.seriesList[downsampledXFieldIndex];\n\n const firstIndex = fullSeries.findIndex(x => {\n return downsampledSeries[startXIndex] === x;\n });\n const lastIndex = fullSeries.findIndex(x => {\n return downsampledSeries[endXIndex] === x;\n });\n\n if (firstIndex >= 0 && lastIndex >= 0 && firstIndex <= lastIndex) {\n return calculateThresholdOnRangeSelect({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n });\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error occurred while setting downsample threshold on range select event', e);\n }\n\n return null;\n};\n\nconst isColumnStrictlyIncreasing = (column: (number | Date)[], fieldType: 'number' | 'time') => {\n return column.every((value, index) => {\n if (fieldType === 'number') {\n if (Number.isNaN(value)) {\n return false;\n }\n }\n\n if (fieldType === 'time') {\n if (Number.isNaN((value as Date).getTime())) {\n return false;\n }\n }\n if (index === 0) {\n return true;\n }\n return value > column[index - 1];\n });\n};\n\n/**\n * Verifies that all of the columns that are displayed in a chart can be downsampled. Valid columns that can be\n * displayed are those that contain at least one number. We can only downsample columns that only consist of numbers.\n *\n * If all columns can be downsampled, returns the x column coerced to time/number and y columns coerced to numbers.\n * If not all columns can be downsampled, then returns empty arrays for both x and y\n */\nconst tryToCoerceAllDisplayedFields = (\n ds: DataSource,\n xField: string,\n yFields: Set<string>,\n fieldTypes: string[],\n options: DownsampleOptions['options']\n): { xColumn: Date[] | number[]; yColumns: number[][] } => {\n let xColumn: Date[] | number[] = [];\n const yColumns: number[][] = [];\n\n const canDownsample = !ds.data.fields.some((field, index) => {\n const fieldName = (field as FieldEntry).name ?? field;\n const fieldType = fieldTypes[index] ?? 'unknown';\n const column = ds.data.columns[index];\n let hasDisplayedColumnThatCantBeDownsampled = false;\n\n if (fieldName === xField) {\n xColumn = strictlyCoerceXColumn(column, fieldType);\n } else if (yFields.has(fieldName)) {\n const { coercedColumn, canLooselyCoerceSomeValues, canDownsampleColumn } = strictlyCoerceYColumn(\n ds.data.columns[index],\n options\n );\n // do not perform downsampling if a column can possibly be displayed but cannot\n // be downsampled using LTTB\n hasDisplayedColumnThatCantBeDownsampled = canLooselyCoerceSomeValues && !canDownsampleColumn;\n if (hasDisplayedColumnThatCantBeDownsampled) {\n return true;\n }\n if (canDownsampleColumn) {\n yColumns.push(coercedColumn);\n }\n }\n return false;\n });\n\n if (canDownsample) {\n return { xColumn, yColumns };\n }\n return { xColumn: [], yColumns: [] };\n};\n\nconst pickIndicesFromDataSource = (ds: DataSource, indices: Set<number>): DataSource => {\n const sortedIndices = Array.from(indices).sort((a: number, b: number) => a - b);\n const slicedColumns = [];\n ds.data.columns.forEach(column => {\n const slicedColumn = [];\n sortedIndices.forEach(index => {\n slicedColumn.push(column[index]);\n });\n slicedColumns.push(slicedColumn);\n });\n\n // update data columns with downsampled columns\n return {\n ...ds,\n data: {\n ...ds.data,\n columns: slicedColumns,\n },\n };\n};\n\nexport const downsampleDataSources = ({ dataSources, threshold, options }: DownsampleOptions) => {\n const primaryDS = dataSources?.primary;\n // only downsample time series when number of data points are over threshold\n const numPoints = primaryDS?.data?.columns[0]?.length ?? 0;\n if (Number.isNaN(threshold) || numPoints <= threshold || threshold < 2) {\n return dataSources;\n }\n\n const { xField, yFields, fieldTypes } = options;\n if (!xField || !yFields?.length || !fieldTypes?.length) {\n return dataSources;\n }\n\n const nonInternalYFields = new Set<string>(yFields.filter(yField => !yField.startsWith('_')));\n const maxPointsInDownsample = Math.min(nonInternalYFields.size * threshold, numPoints);\n\n // Do not try to downsample if there are too many downsampled pts\n // At the worst case, each series has non-overlapping downsampled pts\n // which will mean that all points will be included in the downsampled result\n // This will just lead to additional overhead due to coercing each\n // x and y field to number\n if (maxPointsInDownsample >= numPoints) {\n return dataSources;\n }\n\n const { xColumn, yColumns } = tryToCoerceAllDisplayedFields(\n primaryDS,\n xField,\n nonInternalYFields,\n fieldTypes,\n options\n );\n\n if (!yColumns.length || !xColumn.length) {\n return dataSources;\n }\n\n const downsampledDataSources = { ...dataSources };\n const downsampledIndices = new Set<number>();\n\n yColumns.forEach((yColumn, columnIndex) => {\n // perform LTTB downsampling for current series, LTTB takes an [x, y] pair\n const xyPair: [Date | number, number][] = yColumn.map((yValue, index) => {\n return [xColumn[index], yValue];\n });\n\n try {\n const { downsampledIndices: downsampledIndicesForSeries } = largestTriangleThreeBuckets(\n xyPair,\n threshold,\n downsampledIndices\n );\n downsampledIndicesForSeries.forEach(downsampleIndex => downsampledIndices.add(downsampleIndex));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`Error occurred while downsampling column ${columnIndex}`, e);\n }\n });\n // update data columns with downsampled columns\n downsampledDataSources.primary = pickIndicesFromDataSource(primaryDS, downsampledIndices);\n\n return downsampledDataSources;\n};\n", "\nimport * as defaultImport from \"@splunk/visualization-context/FeatureFlagContext\";\nexport * from \"@splunk/visualization-context/FeatureFlagContext\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-schemas\";\nexport * from \"@splunk/visualization-schemas\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { useContext } from 'react';\nimport FeatureFlagContext from '@splunk/visualization-context/FeatureFlagContext';\nimport { LAYOUT_TYPE } from '@splunk/visualization-schemas';\n\nexport const useTrellisFeatureFlagOn = (): boolean => {\n const context = useContext(FeatureFlagContext) as Record<string, unknown>;\n return Boolean(context?.visualizations_enableTrellis);\n};\n\nexport const useTrellisEnabled = (layoutType = LAYOUT_TYPE.Off): boolean => {\n const trellisFeatureEnabled = useTrellisFeatureFlagOn();\n return trellisFeatureEnabled && layoutType === LAYOUT_TYPE.Trellis;\n};\n", "import * as React from 'react';\nimport styled from 'styled-components';\n\nexport const TRELLIS_TITLE_HEIGHT = 28;\n\nconst TrellisTitleText = styled.div`\n margin-left: 10px;\n margin-right: 10px;\n padding-top: 8px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst TrellisTitleDiv = styled.div<{\n fontColor: string;\n backgroundColor: string;\n}>`\n height: ${TRELLIS_TITLE_HEIGHT}px;\n font-size: 14px;\n font-weight: 700;\n color: ${props => props.fontColor};\n background-color: ${props => props.backgroundColor};\n 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.\n`;\n\ninterface TrellisTitleProps {\n fontColor: string;\n backgroundColor: string;\n trellisKey: unknown;\n}\n\nexport const TrellisTitle = (props: TrellisTitleProps) => {\n const titleText = String(props.trellisKey).toString();\n return (\n <TrellisTitleDiv\n fontColor={props.fontColor}\n backgroundColor={props.backgroundColor}\n data-test=\"trellis-title\"\n title={titleText}\n >\n <TrellisTitleText>{titleText}</TrellisTitleText>\n </TrellisTitleDiv>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "i18n_exports", "i18n_default", "defaultImport", "i18n_exports", "i18n_default", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "window", "defaultImport", "defaultImport", "_a"]
7
7
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartingApi.d.ts","sourceRoot":"","sources":["../src/common/ChartingApi.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAEjD,UAAU,KAAK;IACX;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,qBAAqB;IAElB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,GAAG;IAEjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,KAAsC,GAAG,IAAI;IAI/E;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAKnB,QAAQ,IAAI,UAAU;CAGzB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocExampleWithVizSandbox.d.ts","sourceRoot":"","sources":["../src/common/DocExampleWithVizSandbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAGhC,UAAU,6BAA6B;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,wBAAwB;YAAW,6BAA6B,GAAG,KAAK,CAAC,YAAY;;;;;;;;CA0E1F,CAAC;AAUF,eAAe,wBAAwB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/common/DocExampleWithVizSandbox.tsx", "esm-externals:react", "esm-externals:@splunk/react-docs/DocExample", "esm-externals:@splunk/react-ui/Button", "esm-externals:@splunk/react-ui/Code", "esm-externals:@splunk/react-ui/TransitionOpen", "esm-externals:@splunk/react-icons/SquaresLayered", "esm-externals:@splunk/react-icons/Checkmark", "esm-externals:@splunk/react-icons/EyeSlashed", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:prop-types", "esm-externals:@splunk/react-docs/UtilPage", "../src/common/docUtils.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport DocExample from '@splunk/react-docs/DocExample';\nimport Button from '@splunk/react-ui/Button';\nimport Code from '@splunk/react-ui/Code';\nimport TransitionOpen from '@splunk/react-ui/TransitionOpen';\nimport SquaresLayered from '@splunk/react-icons/SquaresLayered';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport EyeSlashed from '@splunk/react-icons/EyeSlashed';\nimport WindowChevronsSlash from '@splunk/react-icons/WindowChevronsSlash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport * as T from 'prop-types';\nimport { convertToDashboardJSON } from './docUtils';\n\ninterface DocExampleWithVizSandboxProps {\n type: string;\n title: string;\n code: string;\n example: () => React.ReactElement;\n hideSandbox?: boolean;\n description?: string;\n}\n\nconst DocExampleWithVizSandbox = (props: DocExampleWithVizSandboxProps): React.ReactElement => {\n const { type, title, code, example, hideSandbox = false, description } = props;\n const [isCopied, setIsCopied] = React.useState(false);\n const [showCode, setShowCode] = React.useState(false);\n const isMounted = React.useRef(true);\n\n const toggleShowCode = React.useCallback(() => {\n setShowCode(state => !state);\n }, []);\n\n React.useEffect((): (() => void) => {\n return () => {\n isMounted.current = false;\n setIsCopied(false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (hideSandbox) return <DocExample title={title} code={code} example={example} />;\n\n const objDefn = convertToDashboardJSON(code, type);\n // set spacing level to 4\n const prettyJson = JSON.stringify(objDefn, null, 4);\n\n const copyToClipBoard = () => {\n if ('clipboard' in navigator) {\n navigator.clipboard.writeText(prettyJson);\n setIsCopied(true);\n }\n setTimeout(() => {\n if (isMounted.current) {\n setIsCopied(false);\n }\n }, 5000);\n };\n\n const renderAdditionalActions = () => [\n <Button\n key=\"show-dashboard-definition\"\n appearance=\"secondary\"\n onClick={toggleShowCode}\n icon={showCode ? <EyeSlashed /> : <WindowChevronsSlash />}\n label={showCode ? _('Hide dashboard definition') : _('Show dashboard definition')}\n />,\n ];\n\n return (\n <DocExample\n renderAdditionalActions={renderAdditionalActions}\n title={title}\n code={code}\n example={example}\n description={description}\n >\n <TransitionOpen\n animation=\"slideFromTop\"\n open={showCode}\n retainFocus={false}\n takeFocus={false}\n renderChildrenWhenCollapsed={false}\n animateOnMount={false}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Code value={prettyJson} language=\"json\" />\n <Button\n onClick={copyToClipBoard}\n icon={isCopied ? <Checkmark /> : <SquaresLayered />}\n label={isCopied ? _('Copied') : _('Copy to clipboard')}\n style={{ height: '30px', maxWidth: '164px' }}\n />\n </div>\n </TransitionOpen>\n </DocExample>\n );\n};\n\nDocExampleWithVizSandbox.propTypes = {\n type: T.string,\n title: T.string,\n code: T.string,\n example: T.func,\n hideSandbox: T.bool,\n};\n\nexport default DocExampleWithVizSandbox;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/DocExample\";\nexport * from \"@splunk/react-docs/DocExample\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Code\";\nexport * from \"@splunk/react-ui/Code\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/TransitionOpen\";\nexport * from \"@splunk/react-ui/TransitionOpen\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/SquaresLayered\";\nexport * from \"@splunk/react-icons/SquaresLayered\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Checkmark\";\nexport * from \"@splunk/react-icons/Checkmark\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/EyeSlashed\";\nexport * from \"@splunk/react-icons/EyeSlashed\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"prop-types\";\nexport * from \"prop-types\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/UtilPage\";\nexport * from \"@splunk/react-docs/UtilPage\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = ['getField', 'getType', 'min', 'max'];\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.find(sharedSelector => name === sharedSelector) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs[docs.length - 1];\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return (\n <UtilPage\n title={`${className}#${doc.name}`}\n status={1}\n docs={[classHeaderDoc, doc, fileDoc]}\n />\n );\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replace(/\"/g, '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replace(/'/g, '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replace(/`/g, \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary\n ? {\n dataSources: {\n primary: { type: 'ds.test', options: primary },\n },\n }\n : {}),\n defaults: {\n dataSources: {\n global: {\n options: {\n queryParameters: {\n latest: '$global_time.latest$',\n earliest: '$global_time.earliest$',\n },\n },\n },\n },\n },\n inputs: {\n input_global_trp: {\n type: 'input.timerange',\n options: {\n token: 'global_time',\n defaultValue: '-24h@h,now',\n },\n title: 'Global Time Range',\n },\n },\n layout: {\n type: 'absolute',\n options: {},\n structure: [\n {\n item: 'test_viz',\n type: 'block',\n position: {\n x: 0,\n y: 0,\n w: 800,\n h: 500,\n },\n },\n ],\n globalInputs: ['input_global_trp'],\n },\n };\n};\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport DocExample from '@splunk/react-docs/DocExample';\nimport Button from '@splunk/react-ui/Button';\nimport Code from '@splunk/react-ui/Code';\nimport TransitionOpen from '@splunk/react-ui/TransitionOpen';\nimport SquaresLayered from '@splunk/react-icons/SquaresLayered';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport EyeSlashed from '@splunk/react-icons/EyeSlashed';\nimport WindowChevronsSlash from '@splunk/react-icons/WindowChevronsSlash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport * as T from 'prop-types';\nimport { convertToDashboardJSON } from './docUtils';\n\ninterface DocExampleWithVizSandboxProps {\n type: string;\n title: string;\n code: string;\n example: () => React.ReactElement;\n hideSandbox?: boolean;\n description?: string;\n}\n\nconst DocExampleWithVizSandbox = (props: DocExampleWithVizSandboxProps): React.ReactElement => {\n const { type, title, code, example, hideSandbox = false, description } = props;\n const [isCopied, setIsCopied] = React.useState(false);\n const [showCode, setShowCode] = React.useState(false);\n const isMounted = React.useRef(true);\n\n const toggleShowCode = React.useCallback(() => {\n setShowCode(state => !state);\n }, []);\n\n React.useEffect((): (() => void) => {\n return () => {\n isMounted.current = false;\n setIsCopied(false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (hideSandbox) return <DocExample title={title} code={code} example={example} />;\n\n const objDefn = convertToDashboardJSON(code, type);\n // set spacing level to 4\n const prettyJson = JSON.stringify(objDefn, null, 4);\n\n const copyToClipBoard = () => {\n if ('clipboard' in navigator) {\n navigator.clipboard.writeText(prettyJson);\n setIsCopied(true);\n }\n setTimeout(() => {\n if (isMounted.current) {\n setIsCopied(false);\n }\n }, 5000);\n };\n\n const renderAdditionalActions = () => [\n <Button\n key=\"show-dashboard-definition\"\n appearance=\"secondary\"\n onClick={toggleShowCode}\n icon={showCode ? <EyeSlashed /> : <WindowChevronsSlash />}\n label={showCode ? _('Hide dashboard definition') : _('Show dashboard definition')}\n />,\n ];\n\n return (\n <DocExample\n renderAdditionalActions={renderAdditionalActions}\n title={title}\n code={code}\n example={example}\n description={description}\n >\n <TransitionOpen\n animation=\"slideFromTop\"\n open={showCode}\n retainFocus={false}\n takeFocus={false}\n renderChildrenWhenCollapsed={false}\n animateOnMount={false}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Code value={prettyJson} language=\"json\" />\n <Button\n onClick={copyToClipBoard}\n icon={isCopied ? <Checkmark /> : <SquaresLayered />}\n label={isCopied ? _('Copied') : _('Copy to clipboard')}\n style={{ height: '30px', maxWidth: '164px' }}\n />\n </div>\n </TransitionOpen>\n </DocExample>\n );\n};\n\nDocExampleWithVizSandbox.propTypes = {\n type: T.string,\n title: T.string,\n code: T.string,\n example: T.func,\n hideSandbox: T.bool,\n};\n\nexport default DocExampleWithVizSandbox;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/DocExample\";\nexport * from \"@splunk/react-docs/DocExample\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Code\";\nexport * from \"@splunk/react-ui/Code\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/TransitionOpen\";\nexport * from \"@splunk/react-ui/TransitionOpen\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/SquaresLayered\";\nexport * from \"@splunk/react-icons/SquaresLayered\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Checkmark\";\nexport * from \"@splunk/react-icons/Checkmark\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/EyeSlashed\";\nexport * from \"@splunk/react-icons/EyeSlashed\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"prop-types\";\nexport * from \"prop-types\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/UtilPage\";\nexport * from \"@splunk/react-docs/UtilPage\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = ['getField', 'getType', 'min', 'max', 'sum'];\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.find(sharedSelector => name === sharedSelector) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs[docs.length - 1];\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return (\n <UtilPage\n title={`${className}#${doc.name}`}\n status={1}\n docs={[classHeaderDoc, doc, fileDoc]}\n />\n );\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replace(/\"/g, '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replace(/'/g, '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replace(/`/g, \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary\n ? {\n dataSources: {\n primary: { type: 'ds.test', options: primary },\n },\n }\n : {}),\n defaults: {\n dataSources: {\n global: {\n options: {\n queryParameters: {\n latest: '$global_time.latest$',\n earliest: '$global_time.earliest$',\n },\n },\n },\n },\n },\n inputs: {\n input_global_trp: {\n type: 'input.timerange',\n options: {\n token: 'global_time',\n defaultValue: '-24h@h,now',\n },\n title: 'Global Time Range',\n },\n },\n layout: {\n type: 'absolute',\n options: {},\n structure: [\n {\n item: 'test_viz',\n type: 'block',\n position: {\n x: 0,\n y: 0,\n w: 800,\n h: 500,\n },\n },\n ],\n globalInputs: ['input_global_trp'],\n },\n };\n};\n"],
5
5
  "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverviewDoc.d.ts","sourceRoot":"","sources":["../src/common/OverviewDoc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAYhC,OAAO,EAAE,QAAQ,EAAa,MAAM,uBAAuB,CAAC;AAI5D,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC;CACrC;AAED,UAAU,aAAa;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACjD;AAyFD,QAAA,MAAM,WAAW;YAAW,aAAa,GAAG,KAAK,CAAC,YAAY;;;;;CA+B7D,CAAC;AAOF,eAAe,WAAW,CAAC"}