@splunk/visualizations 28.5.3 → 28.6.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 (356) hide show
  1. package/Area/Area.d.ts.map +1 -1
  2. package/Area/areaUtils.d.ts +1 -1
  3. package/Area/areaUtils.d.ts.map +1 -1
  4. package/Area/config.d.ts.map +1 -1
  5. package/Area.config.js +93 -25
  6. package/Area.config.js.map +3 -3
  7. package/Area.js +708 -319
  8. package/Area.js.map +4 -4
  9. package/Bar/Bar.d.ts.map +1 -1
  10. package/Bar.config.js +81 -24
  11. package/Bar.config.js.map +3 -3
  12. package/Bar.js +528 -297
  13. package/Bar.js.map +4 -4
  14. package/Bubble.config.js +80 -23
  15. package/Bubble.config.js.map +2 -2
  16. package/Bubble.js +375 -208
  17. package/Bubble.js.map +4 -4
  18. package/CHANGELOG.external.md +56 -10
  19. package/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts +1 -0
  20. package/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts.map +1 -1
  21. package/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts +12 -25
  22. package/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts.map +1 -1
  23. package/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts +11 -4
  24. package/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts.map +1 -1
  25. package/ChoroplethSvg.js +1133 -253
  26. package/ChoroplethSvg.js.map +4 -4
  27. package/Column/Column.d.ts.map +1 -1
  28. package/Column.config.js +81 -24
  29. package/Column.config.js.map +3 -3
  30. package/Column.js +531 -300
  31. package/Column.js.map +4 -4
  32. package/Ellipse.config.js +1 -1
  33. package/Ellipse.config.js.map +2 -2
  34. package/Ellipse.js +277 -161
  35. package/Ellipse.js.map +4 -4
  36. package/Events/config.d.ts.map +1 -1
  37. package/Events.config.js +13 -3
  38. package/Events.config.js.map +2 -2
  39. package/Events.js +330 -194
  40. package/Events.js.map +4 -4
  41. package/FillerGauge/FillerGauge.d.ts.map +1 -1
  42. package/FillerGauge/config.d.ts.map +1 -1
  43. package/FillerGauge.config.js +76 -24
  44. package/FillerGauge.config.js.map +2 -2
  45. package/FillerGauge.js +512 -271
  46. package/FillerGauge.js.map +4 -4
  47. package/Image/config.d.ts.map +1 -1
  48. package/Image.config.js +7 -0
  49. package/Image.config.js.map +2 -2
  50. package/Image.js +282 -149
  51. package/Image.js.map +4 -4
  52. package/LICENSE +13 -0
  53. package/Line/Line.d.ts.map +1 -1
  54. package/Line/config.d.ts.map +1 -1
  55. package/Line/lineUtils.d.ts.map +1 -1
  56. package/Line/mockdata/LineData.d.ts +21 -0
  57. package/Line/mockdata/LineData.d.ts.map +1 -1
  58. package/Line.config.js +86 -25
  59. package/Line.config.js.map +3 -3
  60. package/Line.js +638 -382
  61. package/Line.js.map +4 -4
  62. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts +47 -73
  63. package/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts.map +1 -1
  64. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts +11 -2
  65. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -1
  66. package/LinkGraph/PureLinkGraph/components/Graph.d.ts +5 -5
  67. package/LinkGraph/PureLinkGraph/components/Node.d.ts +2 -2
  68. package/LinkGraph/PureLinkGraph/components/Nodes.d.ts +2 -2
  69. package/LinkGraph.js +886 -759
  70. package/LinkGraph.js.map +4 -4
  71. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  72. package/Map/PureMap/Tooltip.d.ts.map +1 -1
  73. package/Map/config.d.ts.map +1 -1
  74. package/Map.config.js +4 -1
  75. package/Map.config.js.map +2 -2
  76. package/Map.js +296 -169
  77. package/Map.js.map +4 -4
  78. package/Markdown/Markdown.d.ts.map +1 -1
  79. package/Markdown.config.js.map +1 -1
  80. package/Markdown.js +283 -157
  81. package/Markdown.js.map +4 -4
  82. package/MarkerGauge/MarkerGauge.d.ts +1 -47
  83. package/MarkerGauge/MarkerGauge.d.ts.map +1 -1
  84. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts +22 -68
  85. package/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts.map +1 -1
  86. package/MarkerGauge/config.d.ts.map +1 -1
  87. package/MarkerGauge.config.js +75 -23
  88. package/MarkerGauge.config.js.map +2 -2
  89. package/MarkerGauge.js +560 -375
  90. package/MarkerGauge.js.map +4 -4
  91. package/NetworkGraph.config.js.map +1 -1
  92. package/NetworkGraph.js +544 -417
  93. package/NetworkGraph.js.map +4 -4
  94. package/ParallelCoordinates.config.js.map +1 -1
  95. package/ParallelCoordinates.js +288 -172
  96. package/ParallelCoordinates.js.map +4 -4
  97. package/Pie/Pie.d.ts.map +1 -1
  98. package/Pie/pieUtils.d.ts +2 -2
  99. package/Pie.config.js +74 -22
  100. package/Pie.config.js.map +2 -2
  101. package/Pie.js +522 -296
  102. package/Pie.js.map +4 -4
  103. package/ProcessTree/ProcessTree.d.ts +21 -0
  104. package/ProcessTree/ProcessTree.d.ts.map +1 -0
  105. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts +32 -0
  106. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts.map +1 -0
  107. package/ProcessTree/PureProcessTree/components/DirectionalBytes.d.ts +8 -0
  108. package/ProcessTree/PureProcessTree/components/DirectionalBytes.d.ts.map +1 -0
  109. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts +44 -0
  110. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts.map +1 -0
  111. package/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.d.ts +20 -0
  112. package/ProcessTree/PureProcessTree/components/ProcessTreeRightPanel.d.ts.map +1 -0
  113. package/ProcessTree/PureProcessTree/hooks/useProcessTreeExpansionState.d.ts +20 -0
  114. package/ProcessTree/PureProcessTree/hooks/useProcessTreeExpansionState.d.ts.map +1 -0
  115. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts +44 -0
  116. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts.map +1 -0
  117. package/ProcessTree/PureProcessTree/hooks/useProcessTreeLinkOverlay.d.ts +23 -0
  118. package/ProcessTree/PureProcessTree/hooks/useProcessTreeLinkOverlay.d.ts.map +1 -0
  119. package/ProcessTree/PureProcessTree/mockdata/data.d.ts +235 -0
  120. package/ProcessTree/PureProcessTree/mockdata/data.d.ts.map +1 -0
  121. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts +9 -0
  122. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts.map +1 -0
  123. package/ProcessTree/PureProcessTree/utils/processTreeLinkOverlayUtils.d.ts +36 -0
  124. package/ProcessTree/PureProcessTree/utils/processTreeLinkOverlayUtils.d.ts.map +1 -0
  125. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts +80 -0
  126. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts.map +1 -0
  127. package/ProcessTree/config.d.ts +4 -0
  128. package/ProcessTree/config.d.ts.map +1 -0
  129. package/ProcessTree/index.d.ts +3 -0
  130. package/ProcessTree/index.d.ts.map +1 -0
  131. package/ProcessTree.config.js +192 -0
  132. package/ProcessTree.config.js.map +7 -0
  133. package/ProcessTree.js +5058 -0
  134. package/ProcessTree.js.map +7 -0
  135. package/Punchcard/Punchcard.d.ts +1 -5
  136. package/Punchcard/Punchcard.d.ts.map +1 -1
  137. package/Punchcard/PurePunchcard/Punchcard.d.ts +28 -32
  138. package/Punchcard/PurePunchcard/Punchcard.d.ts.map +1 -1
  139. package/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts +7 -12
  140. package/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts.map +1 -1
  141. package/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts +14 -19
  142. package/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts.map +1 -1
  143. package/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts +22 -27
  144. package/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts.map +1 -1
  145. package/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts +3 -8
  146. package/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts.map +1 -1
  147. package/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts +9 -14
  148. package/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts.map +1 -1
  149. package/Punchcard/PurePunchcard/src/PunchcardRow.d.ts.map +1 -1
  150. package/Punchcard.config.js.map +1 -1
  151. package/Punchcard.js +444 -631
  152. package/Punchcard.js.map +4 -4
  153. package/Rectangle.config.js +1 -1
  154. package/Rectangle.config.js.map +2 -2
  155. package/Rectangle.js +289 -173
  156. package/Rectangle.js.map +4 -4
  157. package/RichText/PureRichText/Editor/EditorPanel.d.ts +20 -0
  158. package/RichText/PureRichText/Editor/EditorPanel.d.ts.map +1 -0
  159. package/RichText/PureRichText/Editor/EditorPanelStyles.d.ts +17 -0
  160. package/RichText/PureRichText/Editor/EditorPanelStyles.d.ts.map +1 -0
  161. package/RichText/PureRichText/Editor/FontSelector.d.ts +15 -0
  162. package/RichText/PureRichText/Editor/FontSelector.d.ts.map +1 -0
  163. package/RichText/PureRichText/Editor/FormatButton.d.ts +23 -0
  164. package/RichText/PureRichText/Editor/FormatButton.d.ts.map +1 -0
  165. package/RichText/PureRichText/Editor/editorPanelUtils.d.ts +19 -0
  166. package/RichText/PureRichText/Editor/editorPanelUtils.d.ts.map +1 -0
  167. package/RichText/PureRichText/Editor/hooks/useLineSpacing.d.ts +11 -0
  168. package/RichText/PureRichText/Editor/hooks/useLineSpacing.d.ts.map +1 -0
  169. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts +26 -0
  170. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts.map +1 -0
  171. package/RichText/PureRichText/Editor/index.d.ts +9 -0
  172. package/RichText/PureRichText/Editor/index.d.ts.map +1 -0
  173. package/RichText/PureRichText/InnerEditor.d.ts +41 -0
  174. package/RichText/PureRichText/InnerEditor.d.ts.map +1 -0
  175. package/RichText/PureRichText/PureRichText.d.ts +19 -0
  176. package/RichText/PureRichText/PureRichText.d.ts.map +1 -0
  177. package/RichText/PureRichText/PureRichTextContext.d.ts +64 -0
  178. package/RichText/PureRichText/PureRichTextContext.d.ts.map +1 -0
  179. package/RichText/PureRichText/RichTextStyles.d.ts +25 -0
  180. package/RichText/PureRichText/RichTextStyles.d.ts.map +1 -0
  181. package/RichText/PureRichText/activeInstance.d.ts +23 -0
  182. package/RichText/PureRichText/activeInstance.d.ts.map +1 -0
  183. package/RichText/PureRichText/config.d.ts +17 -0
  184. package/RichText/PureRichText/config.d.ts.map +1 -0
  185. package/RichText/PureRichText/hooks/index.d.ts +12 -0
  186. package/RichText/PureRichText/hooks/index.d.ts.map +1 -0
  187. package/RichText/PureRichText/hooks/useContentSave.d.ts +25 -0
  188. package/RichText/PureRichText/hooks/useContentSave.d.ts.map +1 -0
  189. package/RichText/PureRichText/hooks/useContentSync.d.ts +28 -0
  190. package/RichText/PureRichText/hooks/useContentSync.d.ts.map +1 -0
  191. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts +33 -0
  192. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts.map +1 -0
  193. package/RichText/PureRichText/hooks/useEditModeEffect.d.ts +10 -0
  194. package/RichText/PureRichText/hooks/useEditModeEffect.d.ts.map +1 -0
  195. package/RichText/PureRichText/hooks/useEditorSetup.d.ts +36 -0
  196. package/RichText/PureRichText/hooks/useEditorSetup.d.ts.map +1 -0
  197. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts +33 -0
  198. package/RichText/PureRichText/hooks/useFakeHighlight.d.ts.map +1 -0
  199. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts +35 -0
  200. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts.map +1 -0
  201. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts +18 -0
  202. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  203. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts +24 -0
  204. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts.map +1 -0
  205. package/RichText/PureRichText/hooks/useRichTextState.d.ts +38 -0
  206. package/RichText/PureRichText/hooks/useRichTextState.d.ts.map +1 -0
  207. package/RichText/PureRichText/hooks/useStepFontSize.d.ts +17 -0
  208. package/RichText/PureRichText/hooks/useStepFontSize.d.ts.map +1 -0
  209. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts +18 -0
  210. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts.map +1 -0
  211. package/RichText/PureRichText/hooks/useTokenMap.d.ts +45 -0
  212. package/RichText/PureRichText/hooks/useTokenMap.d.ts.map +1 -0
  213. package/RichText/PureRichText/index.d.ts +16 -0
  214. package/RichText/PureRichText/index.d.ts.map +1 -0
  215. package/RichText/PureRichText/renderers/ElementRenderer.d.ts +8 -0
  216. package/RichText/PureRichText/renderers/ElementRenderer.d.ts.map +1 -0
  217. package/RichText/PureRichText/renderers/LeafRenderer.d.ts +8 -0
  218. package/RichText/PureRichText/renderers/LeafRenderer.d.ts.map +1 -0
  219. package/RichText/PureRichText/types.d.ts +111 -0
  220. package/RichText/PureRichText/types.d.ts.map +1 -0
  221. package/RichText/PureRichText/utils/a11yUtils.d.ts +9 -0
  222. package/RichText/PureRichText/utils/a11yUtils.d.ts.map +1 -0
  223. package/RichText/PureRichText/utils/fontSize.d.ts +6 -0
  224. package/RichText/PureRichText/utils/fontSize.d.ts.map +1 -0
  225. package/RichText/PureRichText/utils/slateUtils.d.ts +99 -0
  226. package/RichText/PureRichText/utils/slateUtils.d.ts.map +1 -0
  227. package/RichText/RichText.d.ts +17 -0
  228. package/RichText/RichText.d.ts.map +1 -0
  229. package/RichText/config.d.ts +4 -0
  230. package/RichText/config.d.ts.map +1 -0
  231. package/RichText/index.d.ts +7 -0
  232. package/RichText/index.d.ts.map +1 -0
  233. package/RichText.config.js +268 -0
  234. package/RichText.config.js.map +7 -0
  235. package/RichText.js +7674 -0
  236. package/RichText.js.map +7 -0
  237. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  238. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  239. package/Sankey/PureSankey/SankeyNode.d.ts +10 -3
  240. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  241. package/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -1
  242. package/Sankey/PureSankey/SankeyUtils.d.ts +10 -0
  243. package/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -1
  244. package/Sankey.config.js.map +1 -1
  245. package/Sankey.js +562 -290
  246. package/Sankey.js.map +4 -4
  247. package/Scatter/Scatter.d.ts.map +1 -1
  248. package/Scatter.config.js +81 -24
  249. package/Scatter.config.js.map +3 -3
  250. package/Scatter.js +528 -297
  251. package/Scatter.js.map +4 -4
  252. package/SingleValue/SingleValue.d.ts.map +1 -1
  253. package/SingleValue/config.d.ts.map +1 -1
  254. package/SingleValue.config.js +76 -24
  255. package/SingleValue.config.js.map +2 -2
  256. package/SingleValue.js +534 -314
  257. package/SingleValue.js.map +4 -4
  258. package/SingleValueBasic.js.map +1 -1
  259. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -1
  260. package/SingleValueIcon/config.d.ts.map +1 -1
  261. package/SingleValueIcon.config.js +76 -24
  262. package/SingleValueIcon.config.js.map +2 -2
  263. package/SingleValueIcon.js +512 -287
  264. package/SingleValueIcon.js.map +4 -4
  265. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts +0 -8
  266. package/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts.map +1 -1
  267. package/SingleValueRadial/SingleValueRadial.d.ts.map +1 -1
  268. package/SingleValueRadial/config.d.ts.map +1 -1
  269. package/SingleValueRadial.config.js +76 -24
  270. package/SingleValueRadial.config.js.map +2 -2
  271. package/SingleValueRadial.js +543 -326
  272. package/SingleValueRadial.js.map +4 -4
  273. package/TRELLIS.md +48 -0
  274. package/Table/PureTable.d.ts +1 -0
  275. package/Table/PureTable.d.ts.map +1 -1
  276. package/Table/Table.d.ts.map +1 -1
  277. package/Table/cells/ArrayCell.d.ts.map +1 -1
  278. package/Table/config.d.ts.map +1 -1
  279. package/Table/hooks.d.ts.map +1 -1
  280. package/Table/tableUtils.d.ts +14 -0
  281. package/Table/tableUtils.d.ts.map +1 -0
  282. package/Table.config.js +4 -10
  283. package/Table.config.js.map +2 -2
  284. package/Table.js +769 -355
  285. package/Table.js.map +4 -4
  286. package/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -1
  287. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +5 -0
  288. package/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -1
  289. package/Timeline/Timeline.d.ts +2 -0
  290. package/Timeline/Timeline.d.ts.map +1 -1
  291. package/Timeline/config.d.ts.map +1 -1
  292. package/Timeline/mockdata/timelineDataSource.d.ts +34 -0
  293. package/Timeline/mockdata/timelineDataSource.d.ts.map +1 -1
  294. package/Timeline.config.js +15 -0
  295. package/Timeline.config.js.map +2 -2
  296. package/Timeline.js +348 -186
  297. package/Timeline.js.map +4 -4
  298. package/common/Charting.d.ts.map +1 -1
  299. package/common/Charting.js +50 -28
  300. package/common/Charting.js.map +2 -2
  301. package/common/ChartingApi.d.ts +1 -1
  302. package/common/ChartingApi.d.ts.map +1 -1
  303. package/common/ChartingApi.js.map +2 -2
  304. package/common/DocExampleWithVizSandbox.js.map +1 -1
  305. package/common/OptionsDoc.js.map +1 -1
  306. package/common/OverviewDoc.js.map +1 -1
  307. package/common/SplunkVisualization.d.ts +1 -1
  308. package/common/SplunkVisualization.d.ts.map +1 -1
  309. package/common/SplunkVisualization.js +6 -4
  310. package/common/SplunkVisualization.js.map +2 -2
  311. package/common/StyledSkipLink.d.ts +2 -0
  312. package/common/StyledSkipLink.d.ts.map +1 -0
  313. package/common/StyledSkipLink.js +81 -0
  314. package/common/StyledSkipLink.js.map +7 -0
  315. package/common/TimeSeriesChartWrapper.d.ts.map +1 -1
  316. package/common/TimeSeriesChartWrapper.js +228 -107
  317. package/common/TimeSeriesChartWrapper.js.map +4 -4
  318. package/common/chartingUtils.d.ts +32 -6
  319. package/common/chartingUtils.d.ts.map +1 -1
  320. package/common/chartingUtils.js +166 -39
  321. package/common/chartingUtils.js.map +4 -4
  322. package/common/components/TrellisTitle.d.ts.map +1 -1
  323. package/common/docUtils.js +1 -1
  324. package/common/docUtils.js.map +2 -2
  325. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  326. package/common/editorConfig/AxesChartYGridAndLabels.d.ts.map +1 -1
  327. package/common/editorConfig/BackgroundColor.d.ts +2 -2
  328. package/common/editorConfig/TrellisEditors.d.ts +33 -5
  329. package/common/editorConfig/TrellisEditors.d.ts.map +1 -1
  330. package/common/hocs/mockdata/trellisData.d.ts +54 -0
  331. package/common/hocs/mockdata/trellisData.d.ts.map +1 -1
  332. package/common/hocs/withTrellis.d.ts +9 -0
  333. package/common/hocs/withTrellis.d.ts.map +1 -1
  334. package/common/hooks/useSorting.d.ts +2 -2
  335. package/common/hooks/useSorting.d.ts.map +1 -1
  336. package/common/shapeUtils.d.ts +1 -1
  337. package/common/shapeUtils.d.ts.map +1 -1
  338. package/common/shapeUtils.js.map +2 -2
  339. package/common/utils/dataUtils.js +2 -1
  340. package/common/utils/dataUtils.js.map +2 -2
  341. package/common/utils/focusUtils.d.ts +4 -0
  342. package/common/utils/focusUtils.d.ts.map +1 -0
  343. package/common/utils/focusUtils.js +101 -0
  344. package/common/utils/focusUtils.js.map +7 -0
  345. package/common/utils/mapUtils.js +2 -6
  346. package/common/utils/mapUtils.js.map +2 -2
  347. package/common/utils/singleValueUtils.js +14 -26
  348. package/common/utils/singleValueUtils.js.map +2 -2
  349. package/common/utils/trellisUtils.d.ts.map +1 -1
  350. package/common/utils/trellisUtils.js +76 -70
  351. package/common/utils/trellisUtils.js.map +2 -2
  352. package/common/withDashboardViz.d.ts.map +1 -1
  353. package/common/withDashboardViz.js +276 -151
  354. package/common/withDashboardViz.js.map +4 -4
  355. package/package.json +32 -27
  356. package/LICENSE.md +0 -449
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/common/OptionsDoc.jsx", "esm-externals:react", "esm-externals:prop-types", "esm-externals:lodash/isEmpty", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-ui/Heading", "esm-externals:@splunk/react-ui/Markdown", "esm-externals:styled-components", "esm-externals:lodash", "esm-externals:@splunk/visualizations-shared/configUtils", "../.storybook/utils/storybookUtils.ts"],
4
- "sourcesContent": ["import React from 'react';\nimport T from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Heading from '@splunk/react-ui/Heading';\nimport Markdown from '@splunk/react-ui/Markdown';\nimport styled from 'styled-components';\nimport { merge } from 'lodash';\nimport { getOptionDisplayType, getPatternOptions } from '../../.storybook/utils/storybookUtils';\n\nconst Option = styled.div`\n margin-top: 20px;\n`;\nconst OptionName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n`;\nconst PairContainer = styled.div`\n margin-left: 40px;\n margin-top: 10px;\n`;\nconst PairTitle = styled.span`\n display: inline-block;\n color: #8293a7;\n width: 80px;\n`;\n\nconst PairValue = styled.span`\n font-family: 'Splunk Platform Mono', monospace;\n white-space: pre;\n`;\n\nconst PairValueJSON = styled.div`\n margin-left: 80px;\n pre {\n margin: 0;\n }\n code {\n font-size: 12px;\n font-family: 'Splunk Platform Mono', monospace;\n }\n`;\n\nconst PropertiesWrapper = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 0 : 40)}px;\n margin-top: 20px;\n`;\n\nconst PropertiesContainer = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n margin-top: 10px;\n`;\n\nconst PropertiesContent = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n`;\n\n/**\n * @method isOneOfJsonSchema\n * @param {object} item\n * @returns {boolean}\n */\nconst isOneOfJsonSchema = item => item.oneOf && Array.isArray(item.oneOf);\n\n/**\n * get Or type as string\n * @method getOrType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: (string | number)\n */\nconst getOrType = item => {\n let res = '';\n\n if (isOneOfJsonSchema(item)) {\n res = item.oneOf\n .map(one => {\n if (one.type !== 'array') {\n return one.type;\n }\n // eslint-disable-next-line no-use-before-define\n return getArrayType(one, '');\n })\n .join(' | ');\n } else if (Array.isArray(item.type)) {\n if (isEmpty(item.default)) {\n return item.type.join(' | ');\n }\n\n res = item.type.filter(itemType => itemType !== 'string').join(' | ');\n res += ' | ';\n res += `\"${item.default}\"`;\n }\n\n return res;\n};\n\n/**\n * get the array type as string\n * @method getArrayType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: arrayOf(arrayOf(string | number | arrayOf(string | number)))\n */\nconst getArrayType = (item, res = '') => {\n if (item.type !== 'array') {\n if (Array.isArray(item.type) || isOneOfJsonSchema(item)) {\n return getOrType(item);\n }\n\n return item.type;\n }\n\n if (item.type === 'array') {\n res += 'arrayOf('; // eslint-disable-line no-param-reassign\n }\n res += getArrayType(item.items, ''); // eslint-disable-line no-param-reassign\n res += ')'; // eslint-disable-line no-param-reassign\n return res;\n};\n\n/**\n * get the type of this option item\n * @method getType\n * @param {ojbect} item option item\n * @returns {string} type\n */\nexport const getType = item => {\n if (isOneOfJsonSchema(item)) {\n return `oneOf(${getOrType(item)})`;\n }\n if (item.enum && Array.isArray(item.enum)) {\n const values =\n !isEmpty(item.enum) && typeof item.enum[0] === 'string'\n ? item.enum.map(v => `\"${v}\"`).join(', ')\n : item.enum.join(', ');\n\n return `oneOf([${values}])`;\n }\n\n if (Array.isArray(item.type)) {\n return getOrType(item);\n }\n\n if (item.type === 'array') {\n if ('items' in item) {\n return `arrayOf(${getType(item.items)})`;\n }\n return 'array';\n }\n return item.type;\n};\n\n/**\n * get the default value as string\n * @method getDefaultValue\n * @param {object | boolean | number | string} defaultValue\n * @returns {string | object[]} default value\n */\nconst getDefaultValue = defaultValue => {\n if (typeof defaultValue === 'boolean' || typeof defaultValue === 'number') {\n return defaultValue.toString();\n }\n if (Array.isArray(defaultValue)) {\n if (defaultValue.length > 1 && typeof defaultValue[0] === 'object') {\n // return the array only if the defaultValue is an object array\n return defaultValue;\n }\n const values = defaultValue.map(v => JSON.stringify(v)).join(', ');\n return `[${values}]`;\n }\n return defaultValue;\n};\n\nconst Pair = ({ title, content }) => (\n <PairContainer>\n <PairTitle>{`${title}:`}</PairTitle>\n {Array.isArray(content) ? (\n <PairValueJSON>\n <pre>\n <code>{JSON.stringify(content, null, 2)}</code>\n </pre>\n </PairValueJSON>\n ) : (\n <PairValue>{content}</PairValue>\n )}\n </PairContainer>\n);\n\nPair.propTypes = {\n title: T.string,\n content: T.oneOfType([T.string, T.arrayOf(T.object)]),\n};\n\nconst PropertyItems = ({ isPatternProperty = false, propsItems }) => (\n <PropertiesContainer isPatternProperty={isPatternProperty}>\n {isPatternProperty ? <PairTitle>{_('[fieldName]:')}</PairTitle> : null}\n <PropertiesContent isPatternProperty={isPatternProperty}>{propsItems}</PropertiesContent>\n </PropertiesContainer>\n);\n\nPropertyItems.propTypes = {\n isPatternProperty: T.bool,\n propsItems: T.array,\n};\n\nconst OptionItem = ({ name, type, desc, defaultValue, enumerable, PropertiesSection }) => (\n <Option>\n <OptionName>{name}</OptionName>\n {desc ? <Markdown style={{ marginLeft: 40 }} text={desc} /> : null}\n <Pair title={_('Type')} content={type} />\n {enumerable?.length > 0 && (\n <Pair\n title={_('oneOf')}\n content={`(${enumerable\n .map(\n entry =>\n `${typeof entry === 'string' ? '\"' : ''}${entry}${\n typeof entry === 'string' ? '\"' : ''\n }`\n )\n .join(' | ')})`}\n />\n )}\n {defaultValue && <Pair title={_('Default')} content={defaultValue} />}\n {PropertiesSection}\n </Option>\n);\n\nOptionItem.propTypes = {\n name: T.string,\n type: T.string,\n desc: T.string,\n enumerable: T.arrayOf(T.oneOfType([T.string, T.number])),\n defaultValue: T.oneOfType([T.string, T.arrayOf(T.object)]),\n PropertiesSection: T.element,\n};\n\nOptionItem.default = {\n PropertiesItem: null,\n};\n\nconst getPropertiesSection = (properties, patternProperties) => {\n let allProperties = [];\n let isPatternProperty = false;\n\n // the properties either comes from property field of the option schema item\n // or from the property field of each patternProperties of the option schema item\n // can check table tableFormat and columnFormat as examples\n if (!isEmpty(properties)) {\n allProperties = [properties];\n } else if (!isEmpty(patternProperties)) {\n Object.keys(patternProperties).forEach(patternKey => {\n const propsInPattern = patternProperties[patternKey].properties;\n if (propsInPattern) {\n allProperties.push(propsInPattern);\n }\n });\n\n isPatternProperty = true;\n }\n\n if (allProperties.length) {\n const allPropsItems = allProperties.map(props => {\n const propsItems = Object.keys(props).map(pKey => {\n const p = props[pKey];\n let pType = p.anyOf?.[0]\n ? getOptionDisplayType({ ...p.anyOf?.[0], enum: p.enum })\n : getOptionDisplayType({ ...p, enum: p.enum });\n const pDefault = getDefaultValue(p.default);\n\n let pEnumerable;\n // get nested oneOf property listing\n if (typeof p.anyOf?.[0]?.pattern === 'string') {\n pEnumerable = getPatternOptions(p.anyOf[0].pattern);\n } else if (p.anyOf?.[0]?.items?.enum?.length > 0) {\n // quick fix for nested `columnFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.enum;\n } else if (p.anyOf?.[0]?.items?.items?.enum?.length > 0) {\n // quick fix for nested `tableFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.items.enum;\n } else if (p.enum) {\n pEnumerable = p.enum;\n }\n\n // use the JS types (e.g. string, number) of the nested property if the nested property is an enumerable\n if (pEnumerable?.length) {\n pType = p.anyOf?.[0]?.type !== 'array' ? p.anyOf?.[0]?.type : pType;\n if (Array.isArray(pType)) {\n pType = pType.join(' | ');\n }\n }\n\n return (\n <OptionItem\n key={pKey}\n name={pKey}\n type={pType}\n enumerable={pEnumerable}\n desc={p.description}\n defaultValue={pDefault}\n />\n );\n });\n return (\n <PropertyItems\n key={propsItems}\n isPatternProperty={isPatternProperty}\n propsItems={propsItems}\n />\n );\n });\n\n return <PropertiesWrapper isPatternProperty={isPatternProperty}>{allPropsItems}</PropertiesWrapper>;\n }\n return null;\n};\n\nconst OptionsDoc = ({ options, description, hiddenOptions = [] }) => (\n <div>\n {options.length === 0 ? (\n <Heading level={4}> No Options</Heading>\n ) : (\n <Heading level={4}>Options</Heading>\n )}\n {description && <div>{description}</div>}\n {Object.entries(options)\n .filter(([key]) => !hiddenOptions.includes(key))\n .map(([key, item]) => {\n let type;\n let enumerable = [];\n let PropertiesSection = null;\n\n // get oneOf property listing\n if (typeof item.anyOf?.[0]?.pattern === 'string') {\n enumerable = getPatternOptions(item.anyOf[0].pattern);\n } else if (item.anyOf?.[0]?.enum) {\n enumerable = item.anyOf?.[0]?.enum;\n } else if (item.enum) {\n enumerable = item.enum;\n }\n\n // get the nested options inside {option}.items.anyof. e.g. 'layers' in Map\n // eslint-disable-next-line no-unsafe-optional-chaining\n if (item.anyOf?.[0]?.type === 'array' && 'anyOf' in item.anyOf?.[0]?.items) {\n type = getOptionDisplayType(item);\n const { patternProperties } = item;\n // merge the 3 objects together instead of showing the longest options in the array\n const option = item.anyOf?.[0]?.items?.anyOf;\n const mergedOptions = option.reduce((prev, next) => merge(prev, next), {});\n const { properties } = mergedOptions;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n return (\n <OptionItem\n key={key}\n name={key}\n type={type}\n enumerable={enumerable}\n desc={item.description}\n PropertiesSection={PropertiesSection}\n />\n );\n }\n\n if (item.type === 'object') {\n // get properties for object type\n type = item.type;\n const { properties } = item;\n const { patternProperties } = item;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n } else if (enumerable?.length) {\n // use the JS types (e.g. string, number) of the property if the property is an enumerable\n type = item.anyOf?.[0]?.type;\n if (Array.isArray(type)) {\n type = type.join(' | ');\n }\n } else {\n type = getOptionDisplayType({\n ...item.anyOf[0],\n enum: item.enum,\n });\n }\n\n return (\n <OptionItem\n key={key}\n name={key}\n // item.anyOf in the config.ts is a tuple which holds [{ type, pattern, items }, { type, pattern: DYNAMIC_OPTIONS_PATTERN }]\n type={type}\n enumerable={enumerable}\n desc={item.description}\n defaultValue={getDefaultValue(item.default)}\n PropertiesSection={PropertiesSection}\n />\n );\n })}\n </div>\n);\n\nOptionsDoc.propTypes = {\n options: T.object.isRequired,\n description: T.string,\n hiddenOptions: T.arrayOf(T.string),\n};\n\nexport default OptionsDoc;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\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 \"lodash/isEmpty\";\nexport * from \"lodash/isEmpty\";\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/react-ui/Heading\";\nexport * from \"@splunk/react-ui/Heading\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Markdown\";\nexport * from \"@splunk/react-ui/Markdown\";\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 \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/configUtils\";\nexport * from \"@splunk/visualizations-shared/configUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { get, omit, reduce, toNumber, isString } from 'lodash';\nimport type { OptionsSchema } from '@splunk/visualization-schemas';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\ninterface ArgTypeControl {\n type: string;\n options?: string[];\n min?: number;\n max?: number;\n}\n\nexport interface ArgTypeEntry {\n description?: string;\n control: ArgTypeControl;\n name: string;\n defaultValue?: any;\n type: { required: boolean };\n optionType: string;\n table: {\n type: { summary: string };\n defaultValue?: { summary: any };\n category?: string;\n subcategory?: string;\n disable?: boolean;\n };\n}\n\nexport interface ArgTypes {\n [key: string]: ArgTypeEntry;\n}\n\ntype StoriesList = RegExp | string[];\n\n/**\n * Returns type options from pattern\n * @example\n * // returns ['fixed', 'absolute', 'off']\n * getPatternOptions('\\$(\\w+:)?([^$|:]+?)(\\|[|\\w]+)?\\$|^fixed$|^absolute$|^off$')\n * @example\n * // returns []\n * getPatternOptions('^>.*')\n * @param {string} patternString - visualization option type pattern\n * @return {string[]} array of type options\n */\nexport const getPatternOptions = (patternString): string[] => {\n if (patternString.indexOf('^#[') === 0) {\n return patternString.slice(1).replace(/\\$/g, '').split('|^');\n }\n return patternString.replace(/\\$/g, '').split('|^').slice(1);\n};\n/**\n * Returns Storybook display type for an option\n * @param {object} option - visualization option\n * @return {string} Storybook display type\n */\nexport const getOptionDisplayType = (option): string => {\n const { oneOf, anyOf, type, enum: en, pattern, items } = option;\n let displayTypes: string[] = [];\n\n // wrap values in quotes only if enum or pattern is string\n const conditionalQuote = type === 'string' ? '\"' : '';\n if (en && Array.isArray(en)) {\n displayTypes = en.map(e => {\n const enumQuote = typeof e === 'string' ? '\"' : '';\n return `${enumQuote}${e}${enumQuote}`;\n });\n } else if (type === 'array' && items) {\n return `${getOptionDisplayType(items)}[]`;\n } else if (anyOf && Array.isArray(anyOf)) {\n return getOptionDisplayType(anyOf[0]);\n } else if (oneOf && Array.isArray(oneOf)) {\n displayTypes = oneOf.map(item => getOptionDisplayType(item));\n } else if (Array.isArray(type)) {\n displayTypes = type;\n } else if (pattern) {\n displayTypes = getPatternOptions(pattern).map(p => `${conditionalQuote}${p}${conditionalQuote}`);\n }\n\n if (displayTypes.length > 0) {\n return `(${displayTypes.join(' | ')})`;\n }\n return type;\n};\n\n/**\n * Returns Storybook control type for an option\n * @param {object} option - visualization option\n * @param {string} optionKey - visualization option key\n * @return {ArgTypeControl} Storybook control object\n */\nexport const getOptionControl = (option, optionKey): ArgTypeControl => {\n const { anyOf } = option;\n const schema = Array.isArray(anyOf) && anyOf.length ? anyOf[0] : option;\n\n const type = Array.isArray(schema.type) ? schema.type[0] : schema.type;\n const { maximum, minimum, enum: en } = schema;\n\n const isColorOption = new RegExp(/color/, 'i').test(optionKey) && type !== 'array';\n\n if (isColorOption) {\n return { type: 'color' };\n } else if (en && Array.isArray(en)) {\n return { type: 'select', options: en };\n } else if (anyOf && type === 'string' && anyOf[0].pattern) {\n return { type: 'select', options: getPatternOptions(anyOf[0].pattern) };\n } else if (type === 'number' && (minimum || maximum)) {\n return {\n type: 'range',\n ...(typeof minimum === 'number' && { min: minimum }),\n ...(typeof maximum === 'number' && { max: maximum }),\n };\n } else if (type === 'string') {\n return { type: 'text' };\n }\n\n return { type };\n};\n\n/**\n * platform specific visualization option argTypes\n */\nconst objectTableControl = { control: { type: 'object' } };\nconst disableTableControl = { table: { disable: true } };\nexport const platformOptionArgTypes = {\n context: objectTableControl,\n dataSources: objectTableControl,\n dataSource: disableTableControl,\n options: disableTableControl,\n onEventTrigger: { action: 'eventTrigger', ...disableTableControl },\n hasEventHandlers: disableTableControl,\n};\n\n/**\n * Returns formatted Storybook argTypes for a visualization from its options schema\n * @param {OptionsSchema} options - visualization options\n * @param {string[]} requiredProps - required visualization props\n * @param {boolean} isPlatformViz - indicates if pure or platform visualization\n * @param {string} subcategory - nested property parent option name\n * @return {ArgTypes} Storybook argTypes\n */\nexport const optionsSchemaToArgTypes = ({\n options = {},\n requiredProps = [],\n isPlatformViz = false,\n subcategory = null,\n}: {\n options: OptionsSchema;\n requiredProps: string[];\n isPlatformViz?: boolean;\n subcategory?: string;\n}): ArgTypes => {\n const validObjectTypeOptions = [\n 'lineDashStylesByField',\n 'seriesColorsByField',\n 'stepPositionsByField',\n 'fieldActions',\n 'highlightValuesByField',\n ];\n let argTypes: ArgTypes = {};\n Object.keys(options).forEach(optionKey => {\n const option = get(options, optionKey);\n if (option.type === 'object' && !validObjectTypeOptions.includes(optionKey)) {\n // do not support controls for patternProperties, only nested properties\n if (option.properties) {\n argTypes = {\n ...argTypes,\n ...optionsSchemaToArgTypes({\n options: option.properties as OptionsSchema,\n isPlatformViz,\n requiredProps,\n subcategory: optionKey,\n }),\n };\n }\n } else {\n const { description, default: optionDefault } = option;\n const optionControl = getOptionControl(option, optionKey);\n const control = isPlatformViz ? { type: 'text' } : optionControl;\n const required = requiredProps.includes(optionKey);\n\n let defaultValue = optionDefault;\n if (!isPlatformViz && isDynamicOption(optionDefault as string)) {\n defaultValue = null;\n }\n\n argTypes[optionKey] = {\n description,\n control,\n name: optionKey,\n defaultValue,\n type: { required },\n optionType: optionControl.type,\n table: {\n type: { summary: getOptionDisplayType(option) },\n defaultValue: { summary: defaultValue },\n ...(subcategory && {\n category: 'Nested Options',\n subcategory,\n }),\n },\n };\n }\n });\n\n if (isPlatformViz) {\n Object.assign(argTypes, platformOptionArgTypes);\n }\n return argTypes;\n};\n\n/**\n * Helper which converts string visualization options to their required type\n * @param {any} value - option values\n * @param {string} expectedType - expected option type\n * @return {any} correctly typed option value\n */\nexport const transformOptionType = (value, expectedType = 'string'): any => {\n const isStringValue = !isDynamicOption(value) && isString(value);\n if (isStringValue && expectedType === 'boolean') return value == 'true';\n else if (isStringValue && expectedType === 'number') return toNumber(value);\n return value;\n};\n\n// stringify these fields for storybook controls' support\nconst FieldsToStringify = [\n 'layers',\n 'center',\n 'eventActions',\n 'fieldActions',\n 'legendLabels',\n 'lineDashStylesByField',\n 'stepPositionsByField',\n 'seriesColors',\n 'additionalTooltipFields',\n 'seriesColorsByField',\n 'footerFields',\n 'highlightValuesByField',\n 'tooltipNodeFields',\n];\n\n/**\n * Helper which returns platform visualization options from Storybook controls\n * Utilizes argTypes to determine valid and nested options\n * @param {object} args - visualization story args\n * @param {ArgTypes} argTypes - visualization argTypes\n * @return {object} visualization options\n */\nexport const getOptionsFromArgTypes = (args: Record<string, any>, argTypes: ArgTypes): Record<string, any> =>\n reduce(\n argTypes,\n (accum, val, option) => {\n const subcategory = get(val, 'table.subcategory');\n const { optionType, defaultValue } = argTypes[option];\n let controlledOption = transformOptionType(get(args, option), optionType);\n // filter options from react & json if set to default value or is undefined\n if (optionType && controlledOption != null && controlledOption !== defaultValue) {\n // parse the value if option is stringified as part of flattenVizOptions\n if (FieldsToStringify.includes(option)) {\n try {\n controlledOption = JSON.parse(controlledOption);\n } catch (e) {\n controlledOption = null;\n }\n }\n if (subcategory) {\n if (!accum[subcategory]) accum[subcategory] = {};\n accum[subcategory][option] = controlledOption;\n } else accum[option] = controlledOption;\n }\n return accum;\n },\n { ...omit(args.options, Object.keys(argTypes)) }\n );\n\n/**\n * Helper which flattens objects single depth level\n * @param {object} options - visualization options object\n * @return {object} flattened visualization options\n */\nexport const flattenVizOptions = (options: Record<string, any>): Record<string, any> => {\n const nonFlattenOptions = new Set([\n 'y2Fields',\n 'overlayFields',\n 'gaugeRanges',\n 'fieldActions',\n 'highlightValuesByField',\n 'headers',\n ]);\n return reduce(\n options,\n (accum, val, option) => {\n if (!platformOptionArgTypes[option]) {\n if (typeof val === 'object' && FieldsToStringify.includes(option))\n accum[option] = JSON.stringify(val);\n else if (typeof val === 'object' && !nonFlattenOptions.has(option))\n accum = { ...accum, ...val };\n else accum[option] = val;\n }\n return accum;\n },\n {}\n );\n};\n/**\n * Returns value based on Storybook publishing status\n * @param {T} publishedStories - stories to include in published Storybook\n * @param {T} localStories - stories to include in local Storybook\n * @return {T} one of the two params\n */\nexport const getStoriesToInclude = <T>(publishedStories: T, localStories: T): T =>\n process.env.STORYBOOK_PUBLISH ? publishedStories : localStories;\n\n/**\n * Returns component level stories to include, defaults to innclude all stories\n * @param {StoriesList} stories - stories to include in published Storybook\n * @return {object} CSF includeStories config\n */\nexport const componentStoriesToInclude = (stories: StoriesList): object =>\n getStoriesToInclude({ includeStories: stories }, {});\n"],
4
+ "sourcesContent": ["import React from 'react';\nimport T from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Heading from '@splunk/react-ui/Heading';\nimport Markdown from '@splunk/react-ui/Markdown';\nimport styled from 'styled-components';\nimport { merge } from 'lodash';\nimport { getOptionDisplayType, getPatternOptions } from '../../.storybook/utils/storybookUtils';\n\nconst Option = styled.div`\n margin-top: 20px;\n`;\nconst OptionName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n`;\nconst PairContainer = styled.div`\n margin-left: 40px;\n margin-top: 10px;\n`;\nconst PairTitle = styled.span`\n display: inline-block;\n color: #8293a7;\n width: 80px;\n`;\n\nconst PairValue = styled.span`\n font-family: 'Splunk Platform Mono', monospace;\n white-space: pre;\n`;\n\nconst PairValueJSON = styled.div`\n margin-left: 80px;\n pre {\n margin: 0;\n }\n code {\n font-size: 12px;\n font-family: 'Splunk Platform Mono', monospace;\n }\n`;\n\nconst PropertiesWrapper = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 0 : 40)}px;\n margin-top: 20px;\n`;\n\nconst PropertiesContainer = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n margin-top: 10px;\n`;\n\nconst PropertiesContent = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n`;\n\n/**\n * @method isOneOfJsonSchema\n * @param {object} item\n * @returns {boolean}\n */\nconst isOneOfJsonSchema = item => item.oneOf && Array.isArray(item.oneOf);\n\n/**\n * get Or type as string\n * @method getOrType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: (string | number)\n */\nconst getOrType = item => {\n let res = '';\n\n if (isOneOfJsonSchema(item)) {\n res = item.oneOf\n .map(one => {\n if (one.type !== 'array') {\n return one.type;\n }\n // eslint-disable-next-line no-use-before-define\n return getArrayType(one, '');\n })\n .join(' | ');\n } else if (Array.isArray(item.type)) {\n if (isEmpty(item.default)) {\n return item.type.join(' | ');\n }\n\n res = item.type.filter(itemType => itemType !== 'string').join(' | ');\n res += ' | ';\n res += `\"${item.default}\"`;\n }\n\n return res;\n};\n\n/**\n * get the array type as string\n * @method getArrayType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: arrayOf(arrayOf(string | number | arrayOf(string | number)))\n */\nconst getArrayType = (item, res = '') => {\n if (item.type !== 'array') {\n if (Array.isArray(item.type) || isOneOfJsonSchema(item)) {\n return getOrType(item);\n }\n\n return item.type;\n }\n\n if (item.type === 'array') {\n res += 'arrayOf('; // eslint-disable-line no-param-reassign\n }\n res += getArrayType(item.items, ''); // eslint-disable-line no-param-reassign\n res += ')'; // eslint-disable-line no-param-reassign\n return res;\n};\n\n/**\n * get the type of this option item\n * @method getType\n * @param {ojbect} item option item\n * @returns {string} type\n */\nexport const getType = item => {\n if (isOneOfJsonSchema(item)) {\n return `oneOf(${getOrType(item)})`;\n }\n if (item.enum && Array.isArray(item.enum)) {\n const values =\n !isEmpty(item.enum) && typeof item.enum[0] === 'string'\n ? item.enum.map(v => `\"${v}\"`).join(', ')\n : item.enum.join(', ');\n\n return `oneOf([${values}])`;\n }\n\n if (Array.isArray(item.type)) {\n return getOrType(item);\n }\n\n if (item.type === 'array') {\n if ('items' in item) {\n return `arrayOf(${getType(item.items)})`;\n }\n return 'array';\n }\n return item.type;\n};\n\n/**\n * get the default value as string\n * @method getDefaultValue\n * @param {object | boolean | number | string} defaultValue\n * @returns {string | object[]} default value\n */\nconst getDefaultValue = defaultValue => {\n if (typeof defaultValue === 'boolean' || typeof defaultValue === 'number') {\n return defaultValue.toString();\n }\n if (Array.isArray(defaultValue)) {\n if (defaultValue.length > 1 && typeof defaultValue[0] === 'object') {\n // return the array only if the defaultValue is an object array\n return defaultValue;\n }\n const values = defaultValue.map(v => JSON.stringify(v)).join(', ');\n return `[${values}]`;\n }\n return defaultValue;\n};\n\nconst Pair = ({ title, content }) => (\n <PairContainer>\n <PairTitle>{`${title}:`}</PairTitle>\n {Array.isArray(content) ? (\n <PairValueJSON>\n <pre>\n <code>{JSON.stringify(content, null, 2)}</code>\n </pre>\n </PairValueJSON>\n ) : (\n <PairValue>{content}</PairValue>\n )}\n </PairContainer>\n);\n\nPair.propTypes = {\n title: T.string,\n content: T.oneOfType([T.string, T.arrayOf(T.object)]),\n};\n\nconst PropertyItems = ({ isPatternProperty = false, propsItems }) => (\n <PropertiesContainer isPatternProperty={isPatternProperty}>\n {isPatternProperty ? <PairTitle>{_('[fieldName]:')}</PairTitle> : null}\n <PropertiesContent isPatternProperty={isPatternProperty}>{propsItems}</PropertiesContent>\n </PropertiesContainer>\n);\n\nPropertyItems.propTypes = {\n isPatternProperty: T.bool,\n propsItems: T.array,\n};\n\nconst OptionItem = ({ name, type, desc, defaultValue, enumerable, PropertiesSection }) => (\n <Option>\n <OptionName>{name}</OptionName>\n {desc ? <Markdown style={{ marginLeft: 40 }} text={desc} /> : null}\n <Pair title={_('Type')} content={type} />\n {enumerable?.length > 0 && (\n <Pair\n title={_('oneOf')}\n content={`(${enumerable\n .map(\n entry =>\n `${typeof entry === 'string' ? '\"' : ''}${entry}${\n typeof entry === 'string' ? '\"' : ''\n }`\n )\n .join(' | ')})`}\n />\n )}\n {defaultValue && <Pair title={_('Default')} content={defaultValue} />}\n {PropertiesSection}\n </Option>\n);\n\nOptionItem.propTypes = {\n name: T.string,\n type: T.string,\n desc: T.string,\n enumerable: T.arrayOf(T.oneOfType([T.string, T.number])),\n defaultValue: T.oneOfType([T.string, T.arrayOf(T.object)]),\n PropertiesSection: T.element,\n};\n\nOptionItem.default = {\n PropertiesItem: null,\n};\n\nconst getPropertiesSection = (properties, patternProperties) => {\n let allProperties = [];\n let isPatternProperty = false;\n\n // the properties either comes from property field of the option schema item\n // or from the property field of each patternProperties of the option schema item\n // can check table tableFormat and columnFormat as examples\n if (!isEmpty(properties)) {\n allProperties = [properties];\n } else if (!isEmpty(patternProperties)) {\n Object.keys(patternProperties).forEach(patternKey => {\n const propsInPattern = patternProperties[patternKey].properties;\n if (propsInPattern) {\n allProperties.push(propsInPattern);\n }\n });\n\n isPatternProperty = true;\n }\n\n if (allProperties.length) {\n const allPropsItems = allProperties.map(props => {\n const propsItems = Object.keys(props).map(pKey => {\n const p = props[pKey];\n let pType = p.anyOf?.[0]\n ? getOptionDisplayType({ ...p.anyOf?.[0], enum: p.enum })\n : getOptionDisplayType({ ...p, enum: p.enum });\n const pDefault = getDefaultValue(p.default);\n\n let pEnumerable;\n // get nested oneOf property listing\n if (typeof p.anyOf?.[0]?.pattern === 'string') {\n pEnumerable = getPatternOptions(p.anyOf[0].pattern);\n } else if (p.anyOf?.[0]?.items?.enum?.length > 0) {\n // quick fix for nested `columnFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.enum;\n } else if (p.anyOf?.[0]?.items?.items?.enum?.length > 0) {\n // quick fix for nested `tableFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.items.enum;\n } else if (p.enum) {\n pEnumerable = p.enum;\n }\n\n // use the JS types (e.g. string, number) of the nested property if the nested property is an enumerable\n if (pEnumerable?.length) {\n pType = p.anyOf?.[0]?.type !== 'array' ? p.anyOf?.[0]?.type : pType;\n if (Array.isArray(pType)) {\n pType = pType.join(' | ');\n }\n }\n\n return (\n <OptionItem\n key={pKey}\n name={pKey}\n type={pType}\n enumerable={pEnumerable}\n desc={p.description}\n defaultValue={pDefault}\n />\n );\n });\n return (\n <PropertyItems\n key={propsItems}\n isPatternProperty={isPatternProperty}\n propsItems={propsItems}\n />\n );\n });\n\n return <PropertiesWrapper isPatternProperty={isPatternProperty}>{allPropsItems}</PropertiesWrapper>;\n }\n return null;\n};\n\nconst OptionsDoc = ({ options, description, hiddenOptions = [] }) => (\n <div>\n {options.length === 0 ? (\n <Heading level={4}> No Options</Heading>\n ) : (\n <Heading level={4}>Options</Heading>\n )}\n {description && <div>{description}</div>}\n {Object.entries(options)\n .filter(([key]) => !hiddenOptions.includes(key))\n .map(([key, item]) => {\n let type;\n let enumerable = [];\n let PropertiesSection = null;\n\n // get oneOf property listing\n if (typeof item.anyOf?.[0]?.pattern === 'string') {\n enumerable = getPatternOptions(item.anyOf[0].pattern);\n } else if (item.anyOf?.[0]?.enum) {\n enumerable = item.anyOf?.[0]?.enum;\n } else if (item.enum) {\n enumerable = item.enum;\n }\n\n // get the nested options inside {option}.items.anyof. e.g. 'layers' in Map\n // eslint-disable-next-line no-unsafe-optional-chaining\n if (item.anyOf?.[0]?.type === 'array' && 'anyOf' in item.anyOf?.[0]?.items) {\n type = getOptionDisplayType(item);\n const { patternProperties } = item;\n // merge the 3 objects together instead of showing the longest options in the array\n const option = item.anyOf?.[0]?.items?.anyOf;\n const mergedOptions = option.reduce((prev, next) => merge(prev, next), {});\n const { properties } = mergedOptions;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n return (\n <OptionItem\n key={key}\n name={key}\n type={type}\n enumerable={enumerable}\n desc={item.description}\n PropertiesSection={PropertiesSection}\n />\n );\n }\n\n if (item.type === 'object') {\n // get properties for object type\n type = item.type;\n const { properties } = item;\n const { patternProperties } = item;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n } else if (enumerable?.length) {\n // use the JS types (e.g. string, number) of the property if the property is an enumerable\n type = item.anyOf?.[0]?.type;\n if (Array.isArray(type)) {\n type = type.join(' | ');\n }\n } else {\n type = getOptionDisplayType({\n ...item.anyOf[0],\n enum: item.enum,\n });\n }\n\n return (\n <OptionItem\n key={key}\n name={key}\n // item.anyOf in the config.ts is a tuple which holds [{ type, pattern, items }, { type, pattern: DYNAMIC_OPTIONS_PATTERN }]\n type={type}\n enumerable={enumerable}\n desc={item.description}\n defaultValue={getDefaultValue(item.default)}\n PropertiesSection={PropertiesSection}\n />\n );\n })}\n </div>\n);\n\nOptionsDoc.propTypes = {\n options: T.object.isRequired,\n description: T.string,\n hiddenOptions: T.arrayOf(T.string),\n};\n\nexport default OptionsDoc;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\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 \"lodash/isEmpty\";\nexport * from \"lodash/isEmpty\";\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/react-ui/Heading\";\nexport * from \"@splunk/react-ui/Heading\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Markdown\";\nexport * from \"@splunk/react-ui/Markdown\";\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 \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/configUtils\";\nexport * from \"@splunk/visualizations-shared/configUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { get, omit, reduce, toNumber, isString } from 'lodash';\nimport type { OptionsSchema } from '@splunk/visualization-schemas';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\ninterface ArgTypeControl {\n type: string;\n options?: string[];\n min?: number;\n max?: number;\n}\n\nexport interface ArgTypeEntry {\n description?: string;\n control: ArgTypeControl;\n name: string;\n defaultValue?: any;\n type: { required: boolean };\n optionType: string;\n table: {\n type: { summary: string };\n defaultValue?: { summary: any };\n category?: string;\n subcategory?: string;\n disable?: boolean;\n };\n}\n\nexport interface ArgTypes {\n [key: string]: ArgTypeEntry;\n}\n\ntype StoriesList = RegExp | string[];\n\n/**\n * Returns type options from pattern\n * @example\n * // returns ['fixed', 'absolute', 'off']\n * getPatternOptions('\\$(\\w+:)?([^$|:]+?)(\\|[|\\w]+)?\\$|^fixed$|^absolute$|^off$')\n * @example\n * // returns []\n * getPatternOptions('^>.*')\n * @param {string} patternString - visualization option type pattern\n * @return {string[]} array of type options\n */\nexport const getPatternOptions = (patternString): string[] => {\n if (patternString.indexOf('^#[') === 0) {\n return patternString.slice(1).replace(/\\$/g, '').split('|^');\n }\n return patternString.replace(/\\$/g, '').split('|^').slice(1);\n};\n/**\n * Returns Storybook display type for an option\n * @param {object} option - visualization option\n * @return {string} Storybook display type\n */\nexport const getOptionDisplayType = (option): string => {\n const { oneOf, anyOf, type, enum: en, pattern, items } = option;\n let displayTypes: string[] = [];\n\n // wrap values in quotes only if enum or pattern is string\n const conditionalQuote = type === 'string' ? '\"' : '';\n if (en && Array.isArray(en)) {\n displayTypes = en.map(e => {\n const enumQuote = typeof e === 'string' ? '\"' : '';\n return `${enumQuote}${e}${enumQuote}`;\n });\n } else if (type === 'array' && items) {\n return `${getOptionDisplayType(items)}[]`;\n } else if (anyOf && Array.isArray(anyOf)) {\n return getOptionDisplayType(anyOf[0]);\n } else if (oneOf && Array.isArray(oneOf)) {\n displayTypes = oneOf.map(item => getOptionDisplayType(item));\n } else if (Array.isArray(type)) {\n displayTypes = type;\n } else if (pattern) {\n displayTypes = getPatternOptions(pattern).map(p => `${conditionalQuote}${p}${conditionalQuote}`);\n }\n\n if (displayTypes.length > 0) {\n return `(${displayTypes.join(' | ')})`;\n }\n return type;\n};\n\n/**\n * Returns Storybook control type for an option\n * @param {object} option - visualization option\n * @param {string} optionKey - visualization option key\n * @return {ArgTypeControl} Storybook control object\n */\nexport const getOptionControl = (option, optionKey): ArgTypeControl => {\n const { anyOf } = option;\n const schema = Array.isArray(anyOf) && anyOf.length ? anyOf[0] : option;\n\n const type = Array.isArray(schema.type) ? schema.type[0] : schema.type;\n const { maximum, minimum, enum: en } = schema;\n\n const isColorOption = new RegExp(/color/, 'i').test(optionKey) && type !== 'array';\n\n if (isColorOption) {\n return { type: 'color' };\n } else if (en && Array.isArray(en)) {\n return { type: 'select', options: en };\n } else if (anyOf && type === 'string' && anyOf[0].pattern) {\n return { type: 'select', options: getPatternOptions(anyOf[0].pattern) };\n } else if (type === 'number' && (minimum || maximum)) {\n return {\n type: 'range',\n ...(typeof minimum === 'number' && { min: minimum }),\n ...(typeof maximum === 'number' && { max: maximum }),\n };\n } else if (type === 'string') {\n return { type: 'text' };\n }\n\n return { type };\n};\n\n/**\n * platform specific visualization option argTypes\n */\nconst objectTableControl = { control: { type: 'object' } };\nconst disableTableControl = { table: { disable: true } };\nexport const platformOptionArgTypes = {\n context: objectTableControl,\n dataSources: objectTableControl,\n dataSource: disableTableControl,\n options: disableTableControl,\n onEventTrigger: { action: 'eventTrigger', ...disableTableControl },\n hasEventHandlers: disableTableControl,\n};\n\n/**\n * Returns formatted Storybook argTypes for a visualization from its options schema\n * @param {OptionsSchema} options - visualization options\n * @param {string[]} requiredProps - required visualization props\n * @param {boolean} isPlatformViz - indicates if pure or platform visualization\n * @param {string} subcategory - nested property parent option name\n * @return {ArgTypes} Storybook argTypes\n */\nexport const optionsSchemaToArgTypes = ({\n options = {},\n requiredProps = [],\n isPlatformViz = false,\n subcategory = null,\n}: {\n options: OptionsSchema;\n requiredProps: string[];\n isPlatformViz?: boolean;\n subcategory?: string;\n}): ArgTypes => {\n const validObjectTypeOptions = [\n 'lineDashStylesByField',\n 'seriesColorsByField',\n 'stepPositionsByField',\n 'fieldActions',\n 'highlightValuesByField',\n ];\n let argTypes: ArgTypes = {};\n Object.keys(options).forEach(optionKey => {\n const option = get(options, optionKey);\n if (option.type === 'object' && !validObjectTypeOptions.includes(optionKey)) {\n // do not support controls for patternProperties, only nested properties\n if (option.properties) {\n argTypes = {\n ...argTypes,\n ...optionsSchemaToArgTypes({\n options: option.properties as OptionsSchema,\n isPlatformViz,\n requiredProps,\n subcategory: optionKey,\n }),\n };\n }\n } else {\n const { description, default: optionDefault } = option;\n const optionControl = getOptionControl(option, optionKey);\n const control = isPlatformViz ? { type: 'text' } : optionControl;\n const required = requiredProps.includes(optionKey);\n\n let defaultValue = optionDefault;\n if (!isPlatformViz && isDynamicOption(optionDefault as string)) {\n defaultValue = null;\n }\n\n argTypes[optionKey] = {\n description,\n control,\n name: optionKey,\n defaultValue,\n type: { required },\n optionType: optionControl.type,\n table: {\n type: { summary: getOptionDisplayType(option) },\n defaultValue: { summary: defaultValue },\n ...(subcategory && {\n category: 'Nested Options',\n subcategory,\n }),\n },\n };\n }\n });\n\n if (isPlatformViz) {\n Object.assign(argTypes, platformOptionArgTypes);\n }\n return argTypes;\n};\n\n/**\n * Helper which converts string visualization options to their required type\n * @param {any} value - option values\n * @param {string} expectedType - expected option type\n * @return {any} correctly typed option value\n */\nexport const transformOptionType = (value, expectedType = 'string'): any => {\n const isStringValue = !isDynamicOption(value) && isString(value);\n if (isStringValue && expectedType === 'boolean') return value == 'true';\n else if (isStringValue && expectedType === 'number') return toNumber(value);\n return value;\n};\n\n// stringify these fields for storybook controls' support\nconst FieldsToStringify = [\n 'layers',\n 'center',\n 'eventActions',\n 'fieldActions',\n 'legendLabels',\n 'lineDashStylesByField',\n 'stepPositionsByField',\n 'seriesColors',\n 'additionalTooltipFields',\n 'seriesColorsByField',\n 'footerFields',\n 'highlightValuesByField',\n 'tooltipNodeFields',\n];\n\n/**\n * Helper which returns platform visualization options from Storybook controls\n * Utilizes argTypes to determine valid and nested options\n * @param {object} args - visualization story args\n * @param {ArgTypes} argTypes - visualization argTypes\n * @return {object} visualization options\n */\nexport const getOptionsFromArgTypes = (args: Record<string, any>, argTypes: ArgTypes): Record<string, any> =>\n reduce(\n argTypes,\n (accum, val, option) => {\n const subcategory = get(val, 'table.subcategory');\n const { optionType, defaultValue } = argTypes[option];\n let controlledOption = transformOptionType(get(args, option), optionType);\n // filter options from react & json if set to default value or is undefined\n if (optionType && controlledOption != null && controlledOption !== defaultValue) {\n // parse the value if option is stringified as part of flattenVizOptions\n if (FieldsToStringify.includes(option)) {\n try {\n controlledOption = JSON.parse(controlledOption);\n } catch (e) {\n controlledOption = null;\n }\n }\n if (subcategory) {\n if (!accum[subcategory]) accum[subcategory] = {};\n accum[subcategory][option] = controlledOption;\n } else accum[option] = controlledOption;\n }\n return accum;\n },\n { ...omit(args.options, Object.keys(argTypes)) }\n );\n\n/**\n * Helper which flattens objects single depth level\n * @param {object} options - visualization options object\n * @return {object} flattened visualization options\n */\nexport const flattenVizOptions = (options: Record<string, any>): Record<string, any> => {\n const nonFlattenOptions = new Set([\n 'y2Fields',\n 'overlayFields',\n 'gaugeRanges',\n 'fieldActions',\n 'highlightValuesByField',\n 'headers',\n 'filteredNodeValues',\n 'treeNodeLabelFields',\n 'fieldsToShowAsChip',\n 'disableExpansionPerNode',\n 'filterButtonFields',\n 'filterButtonMatchValues',\n 'filterButtonNames',\n 'filterButtonColors',\n 'nodeColors',\n ]);\n return reduce(\n options,\n (accum, val, option) => {\n if (!platformOptionArgTypes[option]) {\n if (typeof val === 'object' && FieldsToStringify.includes(option))\n accum[option] = JSON.stringify(val);\n else if (typeof val === 'object' && !nonFlattenOptions.has(option))\n accum = { ...accum, ...val };\n else accum[option] = val;\n }\n return accum;\n },\n {}\n );\n};\n/**\n * Returns value based on Storybook publishing status\n * @param {T} publishedStories - stories to include in published Storybook\n * @param {T} localStories - stories to include in local Storybook\n * @return {T} one of the two params\n */\nexport const getStoriesToInclude = <T>(publishedStories: T, localStories: T): T =>\n process.env.STORYBOOK_PUBLISH ? publishedStories : localStories;\n\n/**\n * Returns component level stories to include, defaults to innclude all stories\n * @param {StoriesList} stories - stories to include in published Storybook\n * @return {object} CSF includeStories config\n */\nexport const componentStoriesToInclude = (stories: StoriesList): object =>\n getStoriesToInclude({ includeStories: stories }, {});\n"],
5
5
  "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/common/OverviewDoc.tsx", "esm-externals:react", "esm-externals:prop-types", "esm-externals:styled-components", "esm-externals:@splunk/react-ui/Paragraph", "esm-externals:@splunk/react-ui/Heading", "esm-externals:@splunk/react-ui/List", "esm-externals:@splunk/react-ui/Chip", "esm-externals:@splunk/react-ui/Prose", "esm-externals:@splunk/react-icons/enterprise/ChartLine", "esm-externals:@splunk/react-icons/enterprise/ChartBar", "esm-externals:@splunk/react-icons/enterprise/ChartScatter", "esm-externals:@splunk/react-icons/enterprise/ChoroplethMap", "esm-externals:@splunk/react-icons/enterprise/SplitBy", "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:@splunk/react-docs/UtilPage", "../src/common/docUtils.tsx", "../src/common/DocExampleWithVizSandbox.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport P from '@splunk/react-ui/Paragraph';\nimport Heading from '@splunk/react-ui/Heading';\nimport List from '@splunk/react-ui/List';\nimport Chip from '@splunk/react-ui/Chip';\nimport Prose from '@splunk/react-ui/Prose';\nimport ChartLine from '@splunk/react-icons/enterprise/ChartLine';\nimport ChartBar from '@splunk/react-icons/enterprise/ChartBar';\nimport ChartScatter from '@splunk/react-icons/enterprise/ChartScatter';\nimport ChoroplethMap from '@splunk/react-icons/enterprise/ChoroplethMap';\nimport SplitBy from '@splunk/react-icons/enterprise/SplitBy';\nimport { Overview, Variation } from './interfaces/Overview';\nimport { VizCategory } from './interfaces/VizCategory';\nimport DocExampleWithVizSandbox from './DocExampleWithVizSandbox';\n\ninterface VariationCode {\n code: string;\n example: () => React.ReactElement;\n}\n\ninterface OverviewProps {\n overview: Overview;\n variationCode?: Record<string, VariationCode>;\n}\n\nconst chipIconStyles = {\n color: 'white',\n};\n\nconst chipType = {\n [VizCategory.TRENDS]: {\n backgroundColor: '#66AAF9',\n icon: <ChartLine style={chipIconStyles} />,\n },\n [VizCategory.COMPARISONS]: {\n backgroundColor: '#45D4BA',\n icon: <ChartBar style={chipIconStyles} />,\n },\n [VizCategory.CORRELATION]: {\n backgroundColor: '#FB865C',\n icon: <ChartScatter style={chipIconStyles} />,\n },\n [VizCategory.SPATIAL]: {\n backgroundColor: '#E85B79',\n icon: <ChoroplethMap style={chipIconStyles} />,\n },\n [VizCategory.FLOW]: {\n backgroundColor: '#9980FF',\n icon: <SplitBy style={chipIconStyles} />,\n },\n};\n\nconst StyledChip = styled(Chip)`\n [data-test='label'] {\n color: white;\n }\n margin-left: 10px;\n`;\n\nconst StyledWrapper = styled.div`\n display: flex;\n margin-bottom: 10px;\n align-items: center;\n`;\n\nconst Variations = ({ variations, variationCode, type }): React.ReactElement => (\n <>\n {variations.map((v: Variation): React.ReactElement => {\n const variationObj = variationCode[v.key];\n return (\n <DocExampleWithVizSandbox\n hideSandbox={v.hideSandbox ?? false}\n type={type}\n key={v.key}\n code={variationObj.code}\n example={variationObj.example}\n {...v}\n />\n );\n })}\n </>\n);\n\nVariations.propTypes = {\n variations: T.array,\n variationCode: T.object,\n type: T.string,\n};\n\nconst Tip = ({ tip }): React.ReactElement => <List.Item>{tip}</List.Item>;\n\nTip.propTypes = {\n tip: T.string,\n};\n\nconst Tips = ({ tips }): React.ReactElement => (\n <>\n <Heading level={3}>Tips</Heading>\n <List>\n {tips.map(\n (tip: string): React.ReactElement => (\n <Tip key={tip} tip={tip} />\n )\n )}\n </List>\n </>\n);\n\nTips.propTypes = {\n tips: T.array,\n};\n\nconst OverviewDoc = (props: OverviewProps): React.ReactElement => {\n const { typeOfViz, type, overview, note, tips, variations } = props.overview;\n const { variationCode } = props;\n const vizTypeDisplayNameMap = {\n [VizCategory.TRENDS]: 'Trend',\n [VizCategory.COMPARISONS]: 'Comparison',\n };\n const vizType = vizTypeDisplayNameMap[typeOfViz] || typeOfViz;\n return (\n <>\n {vizType && (\n <StyledWrapper>\n Chart Type\n <StyledChip\n data-test=\"viz-type-chip\"\n backgroundColor={chipType[typeOfViz].backgroundColor}\n icon={chipType[typeOfViz].icon}\n >\n {vizType}\n </StyledChip>\n </StyledWrapper>\n )}\n <Prose>\n <P data-test=\"overview-description\">{overview}</P>\n {note && <P data-test=\"overview-note\">{note}</P>}\n <Tips data-test=\"tips\" tips={tips} />\n </Prose>\n {variationCode && (\n <Variations variations={variations} type={type} variationCode={variationCode} />\n )}\n </>\n );\n};\n\nOverviewDoc.propTypes = {\n overview: T.object,\n variationCode: T.object,\n};\n\nexport default OverviewDoc;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\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 \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Paragraph\";\nexport * from \"@splunk/react-ui/Paragraph\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Heading\";\nexport * from \"@splunk/react-ui/Heading\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/List\";\nexport * from \"@splunk/react-ui/List\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Chip\";\nexport * from \"@splunk/react-ui/Chip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Prose\";\nexport * from \"@splunk/react-ui/Prose\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChartLine\";\nexport * from \"@splunk/react-icons/enterprise/ChartLine\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChartBar\";\nexport * from \"@splunk/react-icons/enterprise/ChartBar\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChartScatter\";\nexport * from \"@splunk/react-icons/enterprise/ChartScatter\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChoroplethMap\";\nexport * from \"@splunk/react-icons/enterprise/ChoroplethMap\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/SplitBy\";\nexport * from \"@splunk/react-icons/enterprise/SplitBy\";\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 \"@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", "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"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport * as T from 'prop-types';\nimport styled from 'styled-components';\nimport P from '@splunk/react-ui/Paragraph';\nimport Heading from '@splunk/react-ui/Heading';\nimport List from '@splunk/react-ui/List';\nimport Chip from '@splunk/react-ui/Chip';\nimport Prose from '@splunk/react-ui/Prose';\nimport ChartLine from '@splunk/react-icons/enterprise/ChartLine';\nimport ChartBar from '@splunk/react-icons/enterprise/ChartBar';\nimport ChartScatter from '@splunk/react-icons/enterprise/ChartScatter';\nimport ChoroplethMap from '@splunk/react-icons/enterprise/ChoroplethMap';\nimport SplitBy from '@splunk/react-icons/enterprise/SplitBy';\nimport { Overview, Variation } from './interfaces/Overview';\nimport { VizCategory } from './interfaces/VizCategory';\nimport DocExampleWithVizSandbox from './DocExampleWithVizSandbox';\n\ninterface VariationCode {\n code: string;\n example: () => React.ReactElement;\n}\n\ninterface OverviewProps {\n overview: Overview;\n variationCode?: Record<string, VariationCode>;\n}\n\nconst chipIconStyles = {\n color: 'white',\n};\n\nconst chipType = {\n [VizCategory.TRENDS]: {\n backgroundColor: '#66AAF9',\n icon: <ChartLine style={chipIconStyles} />,\n },\n [VizCategory.COMPARISONS]: {\n backgroundColor: '#45D4BA',\n icon: <ChartBar style={chipIconStyles} />,\n },\n [VizCategory.CORRELATION]: {\n backgroundColor: '#FB865C',\n icon: <ChartScatter style={chipIconStyles} />,\n },\n [VizCategory.SPATIAL]: {\n backgroundColor: '#E85B79',\n icon: <ChoroplethMap style={chipIconStyles} />,\n },\n [VizCategory.FLOW]: {\n backgroundColor: '#9980FF',\n icon: <SplitBy style={chipIconStyles} />,\n },\n};\n\nconst StyledChip = styled(Chip)`\n [data-test='label'] {\n color: white;\n }\n margin-left: 10px;\n`;\n\nconst StyledWrapper = styled.div`\n display: flex;\n margin-bottom: 10px;\n align-items: center;\n`;\n\nconst Variations = ({ variations, variationCode, type }): React.ReactElement => (\n <>\n {variations.map((v: Variation): React.ReactElement => {\n const variationObj = variationCode[v.key];\n return (\n <DocExampleWithVizSandbox\n hideSandbox={v.hideSandbox ?? false}\n type={type}\n key={v.key}\n code={variationObj.code}\n example={variationObj.example}\n {...v}\n />\n );\n })}\n </>\n);\n\nVariations.propTypes = {\n variations: T.array,\n variationCode: T.object,\n type: T.string,\n};\n\nconst Tip = ({ tip }): React.ReactElement => <List.Item>{tip}</List.Item>;\n\nTip.propTypes = {\n tip: T.string,\n};\n\nconst Tips = ({ tips }): React.ReactElement => (\n <>\n <Heading level={3}>Tips</Heading>\n <List>\n {tips.map(\n (tip: string): React.ReactElement => (\n <Tip key={tip} tip={tip} />\n )\n )}\n </List>\n </>\n);\n\nTips.propTypes = {\n tips: T.array,\n};\n\nconst OverviewDoc = (props: OverviewProps): React.ReactElement => {\n const { typeOfViz, type, overview, note, tips, variations } = props.overview;\n const { variationCode } = props;\n const vizTypeDisplayNameMap = {\n [VizCategory.TRENDS]: 'Trend',\n [VizCategory.COMPARISONS]: 'Comparison',\n };\n const vizType = vizTypeDisplayNameMap[typeOfViz] || typeOfViz;\n return (\n <>\n {vizType && (\n <StyledWrapper>\n Chart Type\n <StyledChip\n data-test=\"viz-type-chip\"\n backgroundColor={chipType[typeOfViz].backgroundColor}\n icon={chipType[typeOfViz].icon}\n >\n {vizType}\n </StyledChip>\n </StyledWrapper>\n )}\n <Prose>\n <P data-test=\"overview-description\">{overview}</P>\n {note && <P data-test=\"overview-note\">{note}</P>}\n <Tips data-test=\"tips\" tips={tips} />\n </Prose>\n {variationCode && (\n <Variations variations={variations} type={type} variationCode={variationCode} />\n )}\n </>\n );\n};\n\nOverviewDoc.propTypes = {\n overview: T.object,\n variationCode: T.object,\n};\n\nexport default OverviewDoc;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\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 \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Paragraph\";\nexport * from \"@splunk/react-ui/Paragraph\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Heading\";\nexport * from \"@splunk/react-ui/Heading\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/List\";\nexport * from \"@splunk/react-ui/List\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Chip\";\nexport * from \"@splunk/react-ui/Chip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Prose\";\nexport * from \"@splunk/react-ui/Prose\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChartLine\";\nexport * from \"@splunk/react-icons/enterprise/ChartLine\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChartBar\";\nexport * from \"@splunk/react-icons/enterprise/ChartBar\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChartScatter\";\nexport * from \"@splunk/react-icons/enterprise/ChartScatter\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/ChoroplethMap\";\nexport * from \"@splunk/react-icons/enterprise/ChoroplethMap\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/enterprise/SplitBy\";\nexport * from \"@splunk/react-icons/enterprise/SplitBy\";\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 \"@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 = ['average', 'count', 'getField', 'getType', 'min', 'max', 'percentile', '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", "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"],
5
5
  "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
@@ -6,7 +6,7 @@ export declare const INITIAL_HEIGHT = 250;
6
6
  * A Splunk visualization
7
7
  */
8
8
  declare class SplunkVisualization {
9
- static propTypes: Record<keyof DashboardVizProps, T.Validator<any>>;
9
+ static readonly propTypes: Record<keyof DashboardVizProps, T.Validator<any>>;
10
10
  /**
11
11
  *
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SplunkVisualization.d.ts","sourceRoot":"","sources":["../src/common/SplunkVisualization.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAInE,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC;;GAEG;AACH,cAAM,mBAAmB;IACrB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CA6EjE;IAEF;;OAEG;IACH,gBAAuB,QAAQ,EAAE,iBAAiB,CAehD;CACL;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"SplunkVisualization.d.ts","sourceRoot":"","sources":["../src/common/SplunkVisualization.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAInE,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC;;GAEG;AACH,cAAM,mBAAmB;IACrB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CA6E1E;IAEF;;OAEG;IACH,gBAAuB,QAAQ,EAAE,iBAAiB,CAehD;CACL;AAED,eAAe,mBAAmB,CAAC"}
@@ -8,6 +8,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
8
  var __getOwnPropNames = Object.getOwnPropertyNames;
9
9
  var __getProtoOf = Object.getPrototypeOf;
10
10
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
12
  var __export = (target, all) => {
12
13
  for (var name in all)
13
14
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -30,6 +31,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
31
  mod
31
32
  ));
32
33
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
33
35
 
34
36
  // src/common/SplunkVisualization.tsx
35
37
  var SplunkVisualization_exports = {};
@@ -72,7 +74,7 @@ var INITIAL_WIDTH = 250;
72
74
  var INITIAL_HEIGHT = 250;
73
75
  var SplunkVisualization = class {
74
76
  };
75
- SplunkVisualization.propTypes = {
77
+ __publicField(SplunkVisualization, "propTypes", {
76
78
  /**
77
79
  * display mode
78
80
  */
@@ -148,11 +150,11 @@ SplunkVisualization.propTypes = {
148
150
  * A callback to request new data with updated request params
149
151
  */
150
152
  onRequestParamsChange: prop_types_exports.func
151
- };
153
+ });
152
154
  /**
153
155
  *
154
156
  */
155
- SplunkVisualization.defaults = {
157
+ __publicField(SplunkVisualization, "defaults", {
156
158
  // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height
157
159
  width: "100%",
158
160
  height: INITIAL_HEIGHT,
@@ -167,6 +169,6 @@ SplunkVisualization.defaults = {
167
169
  onComputedProps: () => ({}),
168
170
  loading: false,
169
171
  onRequestParamsChange: lodash_exports.noop
170
- };
172
+ });
171
173
  var SplunkVisualization_default = SplunkVisualization;
172
174
  //# sourceMappingURL=SplunkVisualization.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/common/SplunkVisualization.tsx", "esm-externals:prop-types", "esm-externals:lodash", "../src/common/interfaces/VizActionHandler.ts"],
4
- "sourcesContent": ["/* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */\nimport * as T from 'prop-types';\nimport { noop } from 'lodash';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { DefaultVizActionHandler } from './interfaces/VizActionHandler';\n\n// this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations\nexport const INITIAL_WIDTH = 250;\nexport const INITIAL_HEIGHT = 250;\n\n/**\n * A Splunk visualization\n */\nclass SplunkVisualization {\n static propTypes: Record<keyof DashboardVizProps, T.Validator<any>> = {\n /**\n * display mode\n */\n mode: T.oneOf(['view', 'edit', 'export']).isRequired,\n /**\n * width in pixel or string, defaults to 100%\n */\n width: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * height in pixel or string\n */\n height: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * visualization context used for dynamic option evaluation\n */\n context: T.object,\n /**\n * visualization formatting options\n */\n options: T.object,\n /**\n * A callback to update formatting options\n */\n onOptionsChange: T.func,\n /**\n * datasource state which include data and request params, object key indicate the datasource type.\n */\n dataSources: T.objectOf(\n T.shape({\n /**\n * current request params\n */\n requestParams: T.object,\n /**\n * current dataset\n */\n data: T.shape({\n fields: T.array,\n columns: T.array,\n }),\n /**\n * error\n */\n error: T.shape({\n level: T.string,\n message: T.string,\n }),\n /**\n * meta data that came with the dataset\n */\n meta: T.object,\n })\n ),\n /**\n * A callback to trigger event\n */\n onEventTrigger: T.func,\n /**\n * Inform viz if there are handlers listening to events\n */\n hasEventHandlers: T.bool,\n /**\n * A callback to communicate computed props to a consumer\n */\n onComputedProps: T.func,\n /**\n * A callback to obtain visualization api\n */\n vizActionHandlerRef: T.func,\n\n loading: T.bool,\n theme: T.object,\n /**\n * A callback to request new data with updated request params\n */\n onRequestParamsChange: T.func,\n };\n\n /**\n *\n */\n public static readonly defaults: DashboardVizProps = {\n // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height\n width: '100%',\n height: INITIAL_HEIGHT,\n dataSources: {},\n onEventTrigger: (): Record<string, unknown> => ({}),\n mode: 'view',\n hasEventHandlers: false,\n options: {},\n context: {},\n onOptionsChange: (): Record<string, unknown> => ({}),\n vizActionHandlerRef: (): DefaultVizActionHandler => new DefaultVizActionHandler(),\n onComputedProps: (): Record<string, unknown> => ({}),\n loading: false,\n onRequestParamsChange: noop,\n };\n}\n\nexport default SplunkVisualization;\n", "\nimport * as defaultImport from \"prop-types\";\nexport * from \"prop-types\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nexport interface VizActionHandler {\n /**\n * put focus on the visualization\n */\n focus(): void;\n\n /**\n * compute snapshot of this visualization\n */\n snapshot(): Record<string, unknown>; // (This is for pdf export)\n}\n\nexport class DefaultVizActionHandler {\n focus(): void {\n // noop\n }\n\n snapshot(): Record<string, unknown> {\n return null; // noop\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,+BAAc;AACd,IAAO,qBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ACU9D,IAAM,0BAAN,MAA8B;AAAA,EACjC,QAAc;AAAA,EAEd;AAAA,EAEA,WAAoC;AAChC,WAAO;AAAA,EACX;AACJ;;;AHdO,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AAK9B,IAAM,sBAAN,MAA0B;AAmG1B;AAnGM,oBACK,YAA+D;AAAA;AAAA;AAAA;AAAA,EAIlE,MAAQ,yBAAM,CAAC,QAAQ,QAAQ,QAAQ,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,EAI1C,OAAS,6BAAU,CAAG,2BAAU,yBAAM,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,EAIzC,QAAU,6BAAU,CAAG,2BAAU,yBAAM,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,EAI1C,SAAW;AAAA;AAAA;AAAA;AAAA,EAIX,SAAW;AAAA;AAAA;AAAA;AAAA,EAIX,iBAAmB;AAAA;AAAA;AAAA;AAAA,EAInB,aAAe;AAAA,IACT,yBAAM;AAAA;AAAA;AAAA;AAAA,MAIJ,eAAiB;AAAA;AAAA;AAAA;AAAA,MAIjB,MAAQ,yBAAM;AAAA,QACV,QAAU;AAAA,QACV,SAAW;AAAA,MACf,CAAC;AAAA;AAAA;AAAA;AAAA,MAID,OAAS,yBAAM;AAAA,QACX,OAAS;AAAA,QACT,SAAW;AAAA,MACf,CAAC;AAAA;AAAA;AAAA;AAAA,MAID,MAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAkB;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAoB;AAAA;AAAA;AAAA;AAAA,EAIpB,iBAAmB;AAAA;AAAA;AAAA;AAAA,EAInB,qBAAuB;AAAA,EAEvB,SAAW;AAAA,EACX,OAAS;AAAA;AAAA;AAAA;AAAA,EAIT,uBAAyB;AAC7B;AAAA;AAAA;AAAA;AA9EE,oBAmFqB,WAA8B;AAAA;AAAA,EAEjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa,CAAC;AAAA,EACd,gBAAgB,OAAgC,CAAC;AAAA,EACjD,MAAM;AAAA,EACN,kBAAkB;AAAA,EAClB,SAAS,CAAC;AAAA,EACV,SAAS,CAAC;AAAA,EACV,iBAAiB,OAAgC,CAAC;AAAA,EAClD,qBAAqB,MAA+B,IAAI,wBAAwB;AAAA,EAChF,iBAAiB,OAAgC,CAAC;AAAA,EAClD,SAAS;AAAA,EACT,uBAAuB;AAC3B;AAGJ,IAAO,8BAAQ;",
4
+ "sourcesContent": ["/* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */\nimport * as T from 'prop-types';\nimport { noop } from 'lodash';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { DefaultVizActionHandler } from './interfaces/VizActionHandler';\n\n// this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations\nexport const INITIAL_WIDTH = 250;\nexport const INITIAL_HEIGHT = 250;\n\n/**\n * A Splunk visualization\n */\nclass SplunkVisualization {\n static readonly propTypes: Record<keyof DashboardVizProps, T.Validator<any>> = {\n /**\n * display mode\n */\n mode: T.oneOf(['view', 'edit', 'export']).isRequired,\n /**\n * width in pixel or string, defaults to 100%\n */\n width: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * height in pixel or string\n */\n height: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * visualization context used for dynamic option evaluation\n */\n context: T.object,\n /**\n * visualization formatting options\n */\n options: T.object,\n /**\n * A callback to update formatting options\n */\n onOptionsChange: T.func,\n /**\n * datasource state which include data and request params, object key indicate the datasource type.\n */\n dataSources: T.objectOf(\n T.shape({\n /**\n * current request params\n */\n requestParams: T.object,\n /**\n * current dataset\n */\n data: T.shape({\n fields: T.array,\n columns: T.array,\n }),\n /**\n * error\n */\n error: T.shape({\n level: T.string,\n message: T.string,\n }),\n /**\n * meta data that came with the dataset\n */\n meta: T.object,\n })\n ),\n /**\n * A callback to trigger event\n */\n onEventTrigger: T.func,\n /**\n * Inform viz if there are handlers listening to events\n */\n hasEventHandlers: T.bool,\n /**\n * A callback to communicate computed props to a consumer\n */\n onComputedProps: T.func,\n /**\n * A callback to obtain visualization api\n */\n vizActionHandlerRef: T.func,\n\n loading: T.bool,\n theme: T.object,\n /**\n * A callback to request new data with updated request params\n */\n onRequestParamsChange: T.func,\n };\n\n /**\n *\n */\n public static readonly defaults: DashboardVizProps = {\n // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height\n width: '100%',\n height: INITIAL_HEIGHT,\n dataSources: {},\n onEventTrigger: (): Record<string, unknown> => ({}),\n mode: 'view',\n hasEventHandlers: false,\n options: {},\n context: {},\n onOptionsChange: (): Record<string, unknown> => ({}),\n vizActionHandlerRef: (): DefaultVizActionHandler => new DefaultVizActionHandler(),\n onComputedProps: (): Record<string, unknown> => ({}),\n loading: false,\n onRequestParamsChange: noop,\n };\n}\n\nexport default SplunkVisualization;\n", "\nimport * as defaultImport from \"prop-types\";\nexport * from \"prop-types\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "/* eslint-disable class-methods-use-this */\nexport interface VizActionHandler {\n /**\n * put focus on the visualization\n */\n focus(): void;\n\n /**\n * compute snapshot of this visualization\n */\n snapshot(): Record<string, unknown>; // (This is for pdf export)\n}\n\nexport class DefaultVizActionHandler {\n focus(): void {\n // noop\n }\n\n snapshot(): Record<string, unknown> {\n return null; // noop\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,+BAAc;AACd,IAAO,qBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ACU9D,IAAM,0BAAN,MAA8B;AAAA,EACjC,QAAc;AAAA,EAEd;AAAA,EAEA,WAAoC;AAChC,WAAO;AAAA,EACX;AACJ;;;AHdO,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AAK9B,IAAM,sBAAN,MAA0B;AAmG1B;AAlGI,cADE,qBACc,aAA+D;AAAA;AAAA;AAAA;AAAA,EAI3E,MAAQ,yBAAM,CAAC,QAAQ,QAAQ,QAAQ,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,EAI1C,OAAS,6BAAU,CAAG,2BAAU,yBAAM,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,EAIzC,QAAU,6BAAU,CAAG,2BAAU,yBAAM,CAAC,EAAE;AAAA;AAAA;AAAA;AAAA,EAI1C,SAAW;AAAA;AAAA;AAAA;AAAA,EAIX,SAAW;AAAA;AAAA;AAAA;AAAA,EAIX,iBAAmB;AAAA;AAAA;AAAA;AAAA,EAInB,aAAe;AAAA,IACT,yBAAM;AAAA;AAAA;AAAA;AAAA,MAIJ,eAAiB;AAAA;AAAA;AAAA;AAAA,MAIjB,MAAQ,yBAAM;AAAA,QACV,QAAU;AAAA,QACV,SAAW;AAAA,MACf,CAAC;AAAA;AAAA;AAAA;AAAA,MAID,OAAS,yBAAM;AAAA,QACX,OAAS;AAAA,QACT,SAAW;AAAA,MACf,CAAC;AAAA;AAAA;AAAA;AAAA,MAID,MAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAkB;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAoB;AAAA;AAAA;AAAA;AAAA,EAIpB,iBAAmB;AAAA;AAAA;AAAA;AAAA,EAInB,qBAAuB;AAAA,EAEvB,SAAW;AAAA,EACX,OAAS;AAAA;AAAA;AAAA;AAAA,EAIT,uBAAyB;AAC7B;AAAA;AAAA;AAAA;AAKA,cAnFE,qBAmFqB,YAA8B;AAAA;AAAA,EAEjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa,CAAC;AAAA,EACd,gBAAgB,OAAgC,CAAC;AAAA,EACjD,MAAM;AAAA,EACN,kBAAkB;AAAA,EAClB,SAAS,CAAC;AAAA,EACV,SAAS,CAAC;AAAA,EACV,iBAAiB,OAAgC,CAAC;AAAA,EAClD,qBAAqB,MAA+B,IAAI,wBAAwB;AAAA,EAChF,iBAAiB,OAAgC,CAAC;AAAA,EAClD,SAAS;AAAA,EACT,uBAAuB;AAC3B;AAGJ,IAAO,8BAAQ;",
6
6
  "names": ["defaultImport"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ export declare const StyledSkipLink: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@splunk/react-ui/Link").LinkProps & import("react").RefAttributes<HTMLAnchorElement | HTMLButtonElement>>, any, import("@splunk/themes").OptionalThemedProps<import("@splunk/themes").AnyTheme>, never>;
2
+ //# sourceMappingURL=StyledSkipLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyledSkipLink.d.ts","sourceRoot":"","sources":["../src/common/StyledSkipLink.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,uSAW1B,CAAC"}
@@ -0,0 +1,81 @@
1
+ /* Copyright © 2020 Splunk Inc.
2
+ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
+ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ "use strict";
5
+ var __create = Object.create;
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __getOwnPropNames = Object.getOwnPropertyNames;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
30
+ mod
31
+ ));
32
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
+
34
+ // src/common/StyledSkipLink.tsx
35
+ var StyledSkipLink_exports = {};
36
+ __export(StyledSkipLink_exports, {
37
+ StyledSkipLink: () => StyledSkipLink
38
+ });
39
+ module.exports = __toCommonJS(StyledSkipLink_exports);
40
+
41
+ // esm-externals:styled-components
42
+ var styled_components_exports = {};
43
+ __export(styled_components_exports, {
44
+ default: () => styled_components_default
45
+ });
46
+ var defaultImport = __toESM(require("styled-components"));
47
+ __reExport(styled_components_exports, require("styled-components"));
48
+ var styled_components_default = "default" in defaultImport ? defaultImport.default : defaultImport;
49
+
50
+ // esm-externals:@splunk/react-ui/Link
51
+ var Link_exports = {};
52
+ __export(Link_exports, {
53
+ default: () => Link_default
54
+ });
55
+ var defaultImport2 = __toESM(require("@splunk/react-ui/Link"));
56
+ __reExport(Link_exports, require("@splunk/react-ui/Link"));
57
+ var Link_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
58
+
59
+ // esm-externals:@splunk/themes
60
+ var themes_exports = {};
61
+ __export(themes_exports, {
62
+ default: () => themes_default
63
+ });
64
+ var defaultImport3 = __toESM(require("@splunk/themes"));
65
+ __reExport(themes_exports, require("@splunk/themes"));
66
+ var themes_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
67
+
68
+ // src/common/StyledSkipLink.tsx
69
+ var StyledSkipLink = styled_components_default(Link_default)`
70
+ ${themes_exports.mixins.skipLink()};
71
+ &:not([disabled], [aria-disabled='true']) {
72
+ background-color: ${themes_exports.variables.backgroundColorSection};
73
+ }
74
+ &&& {
75
+ text-decoration: none;
76
+ }
77
+ &:focus {
78
+ z-index: ${themes_exports.variables.zindexLayer};
79
+ }
80
+ `;
81
+ //# sourceMappingURL=StyledSkipLink.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/common/StyledSkipLink.tsx", "esm-externals:styled-components", "esm-externals:@splunk/react-ui/Link", "esm-externals:@splunk/themes"],
4
+ "sourcesContent": ["import styled from 'styled-components';\nimport Link from '@splunk/react-ui/Link';\nimport { mixins, variables } from '@splunk/themes';\n\nexport const StyledSkipLink = styled(Link)`\n ${mixins.skipLink()};\n &:not([disabled], [aria-disabled='true']) {\n background-color: ${variables.backgroundColorSection};\n }\n &&& {\n text-decoration: none;\n }\n &:focus {\n z-index: ${variables.zindexLayer};\n }\n`;\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/react-ui/Link\";\nexport * from \"@splunk/react-ui/Link\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,sCAAc;AACd,IAAO,4BAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;AHC9D,IAAM,iBAAiB,0BAAO,YAAI;AAAA,MACnC,sBAAO,SAAS,CAAC;AAAA;AAAA,4BAEK,yBAAU,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAMzC,yBAAU,WAAW;AAAA;AAAA;",
6
+ "names": ["defaultImport", "defaultImport"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSeriesChartWrapper.d.ts","sourceRoot":"","sources":["../src/common/TimeSeriesChartWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmC3C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAC/B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,aAAa,MAAM,EACnB,iBAAiB,MAAM,KACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CASxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACnC,gBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,iBAAiB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAChD,OAwBF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,eAAU,EAAE,YAAO,EAAE,aAAa,MAAM,EAAE,iBAAiB,MAAM,SA2B5F,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,eAAU,EAAE,YAAO,EAAE,aAAa,MAAM,EAAE,iBAAiB,MAAM,SAclG,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,eAAU,EACV,aAAQ,EACR,cAAS,EACT,aAAa,MAAM,EACnB,iBAAiB,MAAM,SA2B1B,CAAC;AAEF,eAAO,MAAM,eAAe,GACxB,eAAU,EACV,aAAQ,EACR,cAAS,EACT,aAAa,MAAM,EACnB,iBAAiB,MAAM,SAsB1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAC9B,eAAU,EACV,qBAAgB,EAChB,oBAAe,EACf,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,iBAAkB,EAClB,uBAAwB;;;CA4C3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GACzB,OAAO,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,KAC5C,MAAM,EAAE,GAAG,SAAS,GAAG,IAQzB,CAAC;AAEF,QAAA,MAAM,sBAAsB,GAAI,OAAO,aAAa,sBA8iBnD,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"TimeSeriesChartWrapper.d.ts","sourceRoot":"","sources":["../src/common/TimeSeriesChartWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmC3C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAC/B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,aAAa,MAAM,EACnB,iBAAiB,MAAM,KACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CASxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACnC,gBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,iBAAiB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAChD,OAwBF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,eAAU,EAAE,YAAO,EAAE,aAAa,MAAM,EAAE,iBAAiB,MAAM,SA2B5F,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,eAAU,EAAE,YAAO,EAAE,aAAa,MAAM,EAAE,iBAAiB,MAAM,SAclG,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,eAAU,EACV,aAAQ,EACR,cAAS,EACT,aAAa,MAAM,EACnB,iBAAiB,MAAM,SA2B1B,CAAC;AAEF,eAAO,MAAM,eAAe,GACxB,eAAU,EACV,aAAQ,EACR,cAAS,EACT,aAAa,MAAM,EACnB,iBAAiB,MAAM,SAsB1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAC9B,eAAU,EACV,qBAAgB,EAChB,oBAAe,EACf,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,iBAAkB,EAClB,uBAAwB;;;CA4C3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GACzB,OAAO,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,KAC5C,MAAM,EAAE,GAAG,SAAS,GAAG,IAQzB,CAAC;AAmDF,QAAA,MAAM,sBAAsB,GAAI,OAAO,aAAa,sBAilBnD,CAAC;AAEF,eAAe,sBAAsB,CAAC"}