@splunk/visualizations 28.8.0 → 28.9.1

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 (279) hide show
  1. package/Area.config.js +2 -4
  2. package/Area.config.js.map +2 -2
  3. package/Area.js +245 -147
  4. package/Area.js.map +4 -4
  5. package/Bar.config.js +2 -4
  6. package/Bar.config.js.map +2 -2
  7. package/Bar.js +246 -148
  8. package/Bar.js.map +4 -4
  9. package/Bubble/Bubble.d.ts +3 -1
  10. package/Bubble/Bubble.d.ts.map +1 -1
  11. package/Bubble.js +216 -108
  12. package/Bubble.js.map +4 -4
  13. package/CHANGELOG.external.md +43 -1
  14. package/ChoroplethSvg/ChoroplethSvg.d.ts +3 -1
  15. package/ChoroplethSvg/ChoroplethSvg.d.ts.map +1 -1
  16. package/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts.map +1 -1
  17. package/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts.map +1 -1
  18. package/ChoroplethSvg.js +638 -209
  19. package/ChoroplethSvg.js.map +4 -4
  20. package/Column.config.js +2 -4
  21. package/Column.config.js.map +2 -2
  22. package/Column.js +246 -148
  23. package/Column.js.map +4 -4
  24. package/Ellipse/Ellipse.d.ts +3 -1
  25. package/Ellipse/Ellipse.d.ts.map +1 -1
  26. package/Ellipse.js +216 -105
  27. package/Ellipse.js.map +4 -4
  28. package/Events/Events.d.ts +5 -3
  29. package/Events/Events.d.ts.map +1 -1
  30. package/Events/PureEvents/FieldSummaryTooltip.d.ts.map +1 -1
  31. package/Events/PureEvents/PureEvents.d.ts +0 -1
  32. package/Events/PureEvents/PureEvents.d.ts.map +1 -1
  33. package/Events.js +270 -157
  34. package/Events.js.map +4 -4
  35. package/FillerGauge.js +243 -140
  36. package/FillerGauge.js.map +4 -4
  37. package/Image/Image.d.ts +3 -1
  38. package/Image/Image.d.ts.map +1 -1
  39. package/Image.js +217 -106
  40. package/Image.js.map +4 -4
  41. package/Line.config.js +2 -4
  42. package/Line.config.js.map +2 -2
  43. package/Line.js +246 -148
  44. package/Line.js.map +4 -4
  45. package/LinkGraph/LinkGraph.d.ts +3 -1
  46. package/LinkGraph/LinkGraph.d.ts.map +1 -1
  47. package/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -1
  48. package/LinkGraph/PureLinkGraph/components/Node.d.ts.map +1 -1
  49. package/LinkGraph.config.js +1 -1
  50. package/LinkGraph.config.js.map +2 -2
  51. package/LinkGraph.js +802 -682
  52. package/LinkGraph.js.map +4 -4
  53. package/Map/Map.d.ts +10 -9
  54. package/Map/Map.d.ts.map +1 -1
  55. package/Map/PureMap/BubbleLayer.d.ts.map +1 -1
  56. package/Map/PureMap/ChoroplethLayer.d.ts.map +1 -1
  57. package/Map/PureMap/ClusterLayer.d.ts.map +1 -1
  58. package/Map/PureMap/MapUtils.d.ts.map +1 -1
  59. package/Map/PureMap/MarkerWrapper.d.ts.map +1 -1
  60. package/Map/PureMap/PureMap.d.ts +8 -65
  61. package/Map/PureMap/PureMap.d.ts.map +1 -1
  62. package/Map/PureMap/mapWorker.d.ts +2 -0
  63. package/Map/PureMap/mapWorker.d.ts.map +1 -0
  64. package/Map.config.js +1 -1
  65. package/Map.config.js.map +2 -2
  66. package/Map.js +439 -336
  67. package/Map.js.map +4 -4
  68. package/Markdown/Markdown.d.ts +9 -1
  69. package/Markdown/Markdown.d.ts.map +1 -1
  70. package/Markdown/config.d.ts.map +1 -1
  71. package/Markdown.config.js +5 -0
  72. package/Markdown.config.js.map +2 -2
  73. package/Markdown.js +225 -94
  74. package/Markdown.js.map +3 -3
  75. package/MarkerGauge.js +239 -134
  76. package/MarkerGauge.js.map +4 -4
  77. package/NetworkGraph/PureNetworkGraph/PureNetworkGraph.d.ts.map +1 -1
  78. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts +1 -0
  79. package/NetworkGraph/PureNetworkGraph/components/NetworkGraphSvg.d.ts.map +1 -1
  80. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts +1 -0
  81. package/NetworkGraph/PureNetworkGraph/components/Node.d.ts.map +1 -1
  82. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts +3 -5
  83. package/NetworkGraph/PureNetworkGraph/utils/networkGraphUtils.d.ts.map +1 -1
  84. package/NetworkGraph.config.js +4 -2
  85. package/NetworkGraph.config.js.map +2 -2
  86. package/NetworkGraph.js +327 -188
  87. package/NetworkGraph.js.map +4 -4
  88. package/ParallelCoordinates/ParallelCoordinates.d.ts +3 -1
  89. package/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -1
  90. package/ParallelCoordinates.js +239 -128
  91. package/ParallelCoordinates.js.map +4 -4
  92. package/Pie/config.d.ts.map +1 -1
  93. package/Pie/pieUtils.d.ts.map +1 -1
  94. package/Pie.config.js +4 -2
  95. package/Pie.config.js.map +2 -2
  96. package/Pie.js +228 -125
  97. package/Pie.js.map +3 -3
  98. package/ProcessTree/ProcessTree.d.ts +3 -1
  99. package/ProcessTree/ProcessTree.d.ts.map +1 -1
  100. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts +1 -0
  101. package/ProcessTree/PureProcessTree/PureProcessTree.d.ts.map +1 -1
  102. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts +1 -0
  103. package/ProcessTree/PureProcessTree/components/ProcessTreeLeftPanel.d.ts.map +1 -1
  104. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts +2 -1
  105. package/ProcessTree/PureProcessTree/hooks/useProcessTreeGraphData.d.ts.map +1 -1
  106. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts +2 -0
  107. package/ProcessTree/PureProcessTree/utils/iconLoader.d.ts.map +1 -1
  108. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts +5 -1
  109. package/ProcessTree/PureProcessTree/utils/processTreeUtils.d.ts.map +1 -1
  110. package/ProcessTree.js +435 -192
  111. package/ProcessTree.js.map +4 -4
  112. package/Punchcard/Punchcard.d.ts +3 -1
  113. package/Punchcard/Punchcard.d.ts.map +1 -1
  114. package/Punchcard.js +238 -129
  115. package/Punchcard.js.map +4 -4
  116. package/Rectangle/Rectangle.d.ts +3 -1
  117. package/Rectangle/Rectangle.d.ts.map +1 -1
  118. package/Rectangle.js +218 -116
  119. package/Rectangle.js.map +4 -4
  120. package/RichText/PureRichText/Editor/EditorPanel.d.ts +1 -4
  121. package/RichText/PureRichText/Editor/EditorPanel.d.ts.map +1 -1
  122. package/RichText/PureRichText/Editor/hooks/useConfigPanelFocus.d.ts +14 -0
  123. package/RichText/PureRichText/Editor/hooks/useConfigPanelFocus.d.ts.map +1 -0
  124. package/RichText/PureRichText/Editor/hooks/useEditorPanelSync.d.ts +15 -0
  125. package/RichText/PureRichText/Editor/hooks/useEditorPanelSync.d.ts.map +1 -0
  126. package/RichText/PureRichText/Editor/hooks/useLinkHandlers.d.ts.map +1 -1
  127. package/RichText/PureRichText/Editor/hooks/usePortalTarget.d.ts +9 -0
  128. package/RichText/PureRichText/Editor/hooks/usePortalTarget.d.ts.map +1 -0
  129. package/RichText/PureRichText/InnerEditor.d.ts +15 -9
  130. package/RichText/PureRichText/InnerEditor.d.ts.map +1 -1
  131. package/RichText/PureRichText/PureRichText.d.ts +5 -10
  132. package/RichText/PureRichText/PureRichText.d.ts.map +1 -1
  133. package/RichText/PureRichText/PureRichTextContext.d.ts +3 -6
  134. package/RichText/PureRichText/PureRichTextContext.d.ts.map +1 -1
  135. package/RichText/PureRichText/RichTextStyles.d.ts +5 -4
  136. package/RichText/PureRichText/RichTextStyles.d.ts.map +1 -1
  137. package/RichText/PureRichText/activeInstance.d.ts +6 -7
  138. package/RichText/PureRichText/activeInstance.d.ts.map +1 -1
  139. package/RichText/PureRichText/config.d.ts.map +1 -1
  140. package/RichText/PureRichText/hooks/useContentSync.d.ts +9 -9
  141. package/RichText/PureRichText/hooks/useContentSync.d.ts.map +1 -1
  142. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts +2 -7
  143. package/RichText/PureRichText/hooks/useDashboardKeyboardNav.d.ts.map +1 -1
  144. package/RichText/PureRichText/hooks/useEditorSetup.d.ts +8 -4
  145. package/RichText/PureRichText/hooks/useEditorSetup.d.ts.map +1 -1
  146. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts +2 -4
  147. package/RichText/PureRichText/hooks/useFocusHandlers.d.ts.map +1 -1
  148. package/RichText/PureRichText/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  149. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts +3 -7
  150. package/RichText/PureRichText/hooks/useMouseHandlers.d.ts.map +1 -1
  151. package/RichText/PureRichText/hooks/useStepFontSize.d.ts +2 -2
  152. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts +2 -3
  153. package/RichText/PureRichText/hooks/useStepLineSpacing.d.ts.map +1 -1
  154. package/RichText/PureRichText/hooks/useTokenMap.d.ts +13 -24
  155. package/RichText/PureRichText/hooks/useTokenMap.d.ts.map +1 -1
  156. package/RichText/PureRichText/renderers/ElementRenderer.d.ts +2 -5
  157. package/RichText/PureRichText/renderers/ElementRenderer.d.ts.map +1 -1
  158. package/RichText/PureRichText/types.d.ts +6 -0
  159. package/RichText/PureRichText/types.d.ts.map +1 -1
  160. package/RichText/PureRichText/utils/slateUtils.d.ts +26 -2
  161. package/RichText/PureRichText/utils/slateUtils.d.ts.map +1 -1
  162. package/RichText/RichText.d.ts +3 -1
  163. package/RichText/RichText.d.ts.map +1 -1
  164. package/RichText/config.d.ts.map +1 -1
  165. package/RichText.config.js +5 -0
  166. package/RichText.config.js.map +2 -2
  167. package/RichText.js +1848 -842
  168. package/RichText.js.map +4 -4
  169. package/Sankey/PureSankey/PureSankey.d.ts +2 -0
  170. package/Sankey/PureSankey/PureSankey.d.ts.map +1 -1
  171. package/Sankey/PureSankey/SankeyLink.d.ts +3 -1
  172. package/Sankey/PureSankey/SankeyLink.d.ts.map +1 -1
  173. package/Sankey/PureSankey/SankeyNode.d.ts +5 -2
  174. package/Sankey/PureSankey/SankeyNode.d.ts.map +1 -1
  175. package/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -1
  176. package/Sankey/Sankey.d.ts +3 -1
  177. package/Sankey/Sankey.d.ts.map +1 -1
  178. package/Sankey.js +508 -219
  179. package/Sankey.js.map +4 -4
  180. package/Scatter.config.js +3 -5
  181. package/Scatter.config.js.map +2 -2
  182. package/Scatter.js +244 -146
  183. package/Scatter.js.map +4 -4
  184. package/SingleValue/SingleValue.d.ts.map +1 -1
  185. package/SingleValue.js +273 -173
  186. package/SingleValue.js.map +4 -4
  187. package/SingleValueBasic.js +4 -4
  188. package/SingleValueBasic.js.map +2 -2
  189. package/SingleValueIcon/SingleValueIcon.d.ts.map +1 -1
  190. package/SingleValueIcon.js +264 -164
  191. package/SingleValueIcon.js.map +4 -4
  192. package/SingleValueRadial.js +267 -167
  193. package/SingleValueRadial.js.map +4 -4
  194. package/SparkLine/SparkLine.d.ts.map +1 -1
  195. package/SparkLine.js.map +2 -2
  196. package/Table/PureTable.d.ts.map +1 -1
  197. package/Table/Table.d.ts +2 -5
  198. package/Table/Table.d.ts.map +1 -1
  199. package/Table/hooks.d.ts.map +1 -1
  200. package/Table.config.js +1 -1
  201. package/Table.config.js.map +2 -2
  202. package/Table.js +293 -271
  203. package/Table.js.map +4 -4
  204. package/Timeline/Timeline.d.ts +3 -1
  205. package/Timeline/Timeline.d.ts.map +1 -1
  206. package/Timeline.config.js +2 -2
  207. package/Timeline.config.js.map +2 -2
  208. package/Timeline.js +266 -142
  209. package/Timeline.js.map +4 -4
  210. package/Treemap/Treemap.d.ts +3 -1
  211. package/Treemap/Treemap.d.ts.map +1 -1
  212. package/Treemap.js +263 -147
  213. package/Treemap.js.map +4 -4
  214. package/common/Charting.js +8 -10
  215. package/common/Charting.js.map +2 -2
  216. package/common/ChartingApi.d.ts.map +1 -1
  217. package/common/ChartingApi.js +5 -2
  218. package/common/ChartingApi.js.map +2 -2
  219. package/common/DocExampleWithVizSandbox.d.ts +2 -0
  220. package/common/DocExampleWithVizSandbox.d.ts.map +1 -1
  221. package/common/DocExampleWithVizSandbox.js +54 -6
  222. package/common/DocExampleWithVizSandbox.js.map +2 -2
  223. package/common/GaugeMajorTicks.js.map +2 -2
  224. package/common/GaugeValueMarker.js.map +2 -2
  225. package/common/OptionsDoc.js +1 -1
  226. package/common/OptionsDoc.js.map +2 -2
  227. package/common/OverviewDoc.js +54 -6
  228. package/common/OverviewDoc.js.map +2 -2
  229. package/common/ThemesDoc.js.map +2 -2
  230. package/common/TimeSeriesChartWrapper.js +10 -9
  231. package/common/TimeSeriesChartWrapper.js.map +2 -2
  232. package/common/chartingUtils.d.ts.map +1 -1
  233. package/common/chartingUtils.js +12 -11
  234. package/common/chartingUtils.js.map +2 -2
  235. package/common/components/IconPlaceholder.d.ts.map +1 -1
  236. package/common/docUtils.d.ts.map +1 -1
  237. package/common/docUtils.js +15 -6
  238. package/common/docUtils.js.map +2 -2
  239. package/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -1
  240. package/common/gaugeUtils.d.ts.map +1 -1
  241. package/common/gaugeUtils.js +4 -2
  242. package/common/gaugeUtils.js.map +2 -2
  243. package/common/hooks/useSorting.d.ts.map +1 -1
  244. package/common/interfaces/VizEvent.d.ts +7 -0
  245. package/common/interfaces/VizEvent.d.ts.map +1 -1
  246. package/common/utils/dataUtils.d.ts.map +1 -1
  247. package/common/utils/dataUtils.js +6 -10
  248. package/common/utils/dataUtils.js.map +2 -2
  249. package/common/utils/featureFlagUtils.js +2 -2
  250. package/common/utils/featureFlagUtils.js.map +2 -2
  251. package/common/utils/focusUtils.js +1 -1
  252. package/common/utils/focusUtils.js.map +2 -2
  253. package/common/utils/mapUtils.d.ts.map +1 -1
  254. package/common/utils/mapUtils.js +17 -21
  255. package/common/utils/mapUtils.js.map +3 -3
  256. package/common/utils/singleValueUtils.js +22 -25
  257. package/common/utils/singleValueUtils.js.map +2 -2
  258. package/common/utils/textUtils.d.ts.map +1 -1
  259. package/common/utils/textUtils.js +37 -23
  260. package/common/utils/textUtils.js.map +2 -2
  261. package/common/utils/trellisUtils.d.ts.map +1 -1
  262. package/common/utils/trellisUtils.js +18 -17
  263. package/common/utils/trellisUtils.js.map +2 -2
  264. package/common/utils/urlUtils.js.map +2 -2
  265. package/common/utils/visualizationTheme.d.ts +15 -0
  266. package/common/utils/visualizationTheme.d.ts.map +1 -0
  267. package/common/utils/visualizationTheme.js +72 -0
  268. package/common/utils/visualizationTheme.js.map +7 -0
  269. package/common/withDashboardViz.d.ts +3 -1
  270. package/common/withDashboardViz.d.ts.map +1 -1
  271. package/common/withDashboardViz.js +216 -105
  272. package/common/withDashboardViz.js.map +4 -4
  273. package/docs-llm/map/examples-react.md +39 -39
  274. package/docs-llm/network-graph/options.md +2 -2
  275. package/docs-llm/pie/examples-json.md +195 -0
  276. package/docs-llm/pie/examples-react.md +123 -0
  277. package/docs-llm/pie/options.md +1 -1
  278. package/docs-llm/process-tree/options.md +3 -2
  279. package/package.json +32 -29
@@ -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 'filteredNodeValues',\n 'treeNodeLabelFields',\n 'fieldsToShowAsChip',\n 'disableExpansionPerNode',\n 'filterButtonFields',\n 'filterButtonMatchValues',\n 'filterButtonNames',\n 'filterButtonColors',\n 'nodeColors',\n 'networkNodeColors',\n 'nodeIcons',\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
- "mappings": "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",
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' ? pType : p.anyOf?.[0]?.type;\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 'networkNodeColors',\n 'nodeIcons',\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
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,+BAAc;AACd,IAAO,qBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,4BAAc;AACd,IAAO,kBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,4BAAc;AACd,IAAO,kBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,6BAAc;AACd,IAAO,mBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,sCAAc;AACd,IAAO,4BAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,gCAAc;AACd,IAAO,sBAAS,aAAaA,iBAA8B,yBAAUA;;;ACyC9D,IAAM,oBAAoB,CAAC,kBAA4B;AAC1D,MAAI,cAAc,QAAQ,KAAK,MAAM,GAAG;AACpC,WAAO,cAAc,MAAM,CAAC,EAAE,QAAQ,OAAO,EAAE,EAAE,MAAM,IAAI;AAAA,EAC/D;AACA,SAAO,cAAc,QAAQ,OAAO,EAAE,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC;AAC/D;AAMO,IAAM,uBAAuB,CAAC,WAAmB;AACpD,QAAM,EAAE,OAAO,OAAO,MAAM,MAAM,IAAI,SAAS,MAAM,IAAI;AACzD,MAAI,eAAyB,CAAC;AAG9B,QAAM,mBAAmB,SAAS,WAAW,MAAM;AACnD,MAAI,MAAM,MAAM,QAAQ,EAAE,GAAG;AACzB,mBAAe,GAAG,IAAI,OAAK;AACvB,YAAM,YAAY,OAAO,MAAM,WAAW,MAAM;AAChD,aAAO,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS;AAAA,IACvC,CAAC;AAAA,EACL,WAAW,SAAS,WAAW,OAAO;AAClC,WAAO,GAAG,qBAAqB,KAAK,CAAC;AAAA,EACzC,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG;AACtC,WAAO,qBAAqB,MAAM,CAAC,CAAC;AAAA,EACxC,WAAW,SAAS,MAAM,QAAQ,KAAK,GAAG;AACtC,mBAAe,MAAM,IAAI,UAAQ,qBAAqB,IAAI,CAAC;AAAA,EAC/D,WAAW,MAAM,QAAQ,IAAI,GAAG;AAC5B,mBAAe;AAAA,EACnB,WAAW,SAAS;AAChB,mBAAe,kBAAkB,OAAO,EAAE,IAAI,OAAK,GAAG,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,EAAE;AAAA,EACnG;AAEA,MAAI,aAAa,SAAS,GAAG;AACzB,WAAO,IAAI,aAAa,KAAK,KAAK,CAAC;AAAA,EACvC;AACA,SAAO;AACX;AAuCA,IAAM,qBAAqB,EAAE,SAAS,EAAE,MAAM,SAAS,EAAE;AACzD,IAAM,sBAAsB,EAAE,OAAO,EAAE,SAAS,KAAK,EAAE;AAChD,IAAM,yBAAyB;AAAA,EAClC,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,gBAAgB,iBAAE,QAAQ,kBAAmB;AAAA,EAC7C,kBAAkB;AACtB;;;AVxHA,IAAM,SAAS,0BAAO;AAAA;AAAA;AAGtB,IAAM,aAAa,0BAAO;AAAA;AAAA;AAAA;AAI1B,IAAM,gBAAgB,0BAAO;AAAA;AAAA;AAAA;AAI7B,IAAM,YAAY,0BAAO;AAAA;AAAA;AAAA;AAAA;AAMzB,IAAM,YAAY,0BAAO;AAAA;AAAA;AAAA;AAKzB,IAAM,gBAAgB,0BAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW7B,IAAM,oBAAoB,0BAAO;AAAA,mBACd,WAAU,MAAM,oBAAoB,IAAI,EAAG;AAAA;AAAA;AAI9D,IAAM,sBAAsB,0BAAO;AAAA,mBAChB,WAAU,MAAM,oBAAoB,KAAK,CAAE;AAAA;AAAA;AAI9D,IAAM,oBAAoB,0BAAO;AAAA,mBACd,WAAU,MAAM,oBAAoB,KAAK,CAAE;AAAA;AAQ9D,IAAM,oBAAoB,UAAQ,KAAK,SAAS,MAAM,QAAQ,KAAK,KAAK;AASxE,IAAM,YAAY,UAAQ;AACtB,MAAI,MAAM;AAEV,MAAI,kBAAkB,IAAI,GAAG;AACzB,UAAM,KAAK,MACN,IAAI,SAAO;AACR,UAAI,IAAI,SAAS,SAAS;AACtB,eAAO,IAAI;AAAA,MACf;AAEA,aAAO,aAAa,KAAK,EAAE;AAAA,IAC/B,CAAC,EACA,KAAK,KAAK;AAAA,EACnB,WAAW,MAAM,QAAQ,KAAK,IAAI,GAAG;AACjC,QAAI,gBAAQ,KAAK,OAAO,GAAG;AACvB,aAAO,KAAK,KAAK,KAAK,KAAK;AAAA,IAC/B;AAEA,UAAM,KAAK,KAAK,OAAO,cAAY,aAAa,QAAQ,EAAE,KAAK,KAAK;AACpE,WAAO;AACP,WAAO,IAAI,KAAK,OAAO;AAAA,EAC3B;AAEA,SAAO;AACX;AASA,IAAM,eAAe,CAAC,MAAM,MAAM,OAAO;AACrC,MAAI,KAAK,SAAS,SAAS;AACvB,QAAI,MAAM,QAAQ,KAAK,IAAI,KAAK,kBAAkB,IAAI,GAAG;AACrD,aAAO,UAAU,IAAI;AAAA,IACzB;AAEA,WAAO,KAAK;AAAA,EAChB;AAEA,MAAI,KAAK,SAAS,SAAS;AACvB,WAAO;AAAA,EACX;AACA,SAAO,aAAa,KAAK,OAAO,EAAE;AAClC,SAAO;AACP,SAAO;AACX;AAQO,IAAM,UAAU,UAAQ;AAC3B,MAAI,kBAAkB,IAAI,GAAG;AACzB,WAAO,SAAS,UAAU,IAAI,CAAC;AAAA,EACnC;AACA,MAAI,KAAK,QAAQ,MAAM,QAAQ,KAAK,IAAI,GAAG;AACvC,UAAM,SACF,CAAC,gBAAQ,KAAK,IAAI,KAAK,OAAO,KAAK,KAAK,CAAC,MAAM,WACzC,KAAK,KAAK,IAAI,OAAK,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,IACtC,KAAK,KAAK,KAAK,IAAI;AAE7B,WAAO,UAAU,MAAM;AAAA,EAC3B;AAEA,MAAI,MAAM,QAAQ,KAAK,IAAI,GAAG;AAC1B,WAAO,UAAU,IAAI;AAAA,EACzB;AAEA,MAAI,KAAK,SAAS,SAAS;AACvB,QAAI,WAAW,MAAM;AACjB,aAAO,WAAW,QAAQ,KAAK,KAAK,CAAC;AAAA,IACzC;AACA,WAAO;AAAA,EACX;AACA,SAAO,KAAK;AAChB;AAQA,IAAM,kBAAkB,kBAAgB;AACpC,MAAI,OAAO,iBAAiB,aAAa,OAAO,iBAAiB,UAAU;AACvE,WAAO,aAAa,SAAS;AAAA,EACjC;AACA,MAAI,MAAM,QAAQ,YAAY,GAAG;AAC7B,QAAI,aAAa,SAAS,KAAK,OAAO,aAAa,CAAC,MAAM,UAAU;AAEhE,aAAO;AAAA,IACX;AACA,UAAM,SAAS,aAAa,IAAI,OAAK,KAAK,UAAU,CAAC,CAAC,EAAE,KAAK,IAAI;AACjE,WAAO,IAAI,MAAM;AAAA,EACrB;AACA,SAAO;AACX;AAEA,IAAM,OAAO,CAAC,EAAE,OAAO,QAAQ,MAC3B,4CAAC,qBACG,4CAAC,iBAAW,GAAG,KAAK,GAAI,GACvB,MAAM,QAAQ,OAAO,IAClB,4CAAC,qBACG,4CAAC,aACG,4CAAC,cAAM,KAAK,UAAU,SAAS,MAAM,CAAC,CAAE,CAC5C,CACJ,IAEA,4CAAC,iBAAW,OAAQ,CAE5B;AAGJ,KAAK,YAAY;AAAA,EACb,OAAO,mBAAE;AAAA,EACT,SAAS,mBAAE,UAAU,CAAC,mBAAE,QAAQ,mBAAE,QAAQ,mBAAE,MAAM,CAAC,CAAC;AACxD;AAEA,IAAM,gBAAgB,CAAC,EAAE,oBAAoB,OAAO,WAAW,MAC3D,4CAAC,uBAAoB,qBAChB,oBAAoB,4CAAC,qBAAW,gBAAE,cAAc,CAAE,IAAe,MAClE,4CAAC,qBAAkB,qBAAuC,UAAW,CACzE;AAGJ,cAAc,YAAY;AAAA,EACtB,mBAAmB,mBAAE;AAAA,EACrB,YAAY,mBAAE;AAClB;AAEA,IAAM,aAAa,CAAC,EAAE,MAAM,MAAM,MAAM,cAAc,YAAY,kBAAkB,MAChF,4CAAC,cACG,4CAAC,kBAAY,IAAK,GACjB,OAAO,4CAAC,oBAAS,OAAO,EAAE,YAAY,GAAG,GAAG,MAAM,MAAM,IAAK,MAC9D,4CAAC,QAAK,WAAO,gBAAE,MAAM,GAAG,SAAS,MAAM,IACtC,yCAAY,UAAS,KAClB;AAAA,EAAC;AAAA;AAAA,IACG,WAAO,gBAAE,OAAO;AAAA,IAChB,SAAS,IAAI,WACR;AAAA,MACG,WACI,GAAG,OAAO,UAAU,WAAW,MAAM,EAAE,GAAG,KAAK,GAC3C,OAAO,UAAU,WAAW,MAAM,EACtC;AAAA,IACR,EACC,KAAK,KAAK,CAAC;AAAA;AACpB,GAEH,gBAAgB,4CAAC,QAAK,WAAO,gBAAE,SAAS,GAAG,SAAS,cAAc,GAClE,iBACL;AAGJ,WAAW,YAAY;AAAA,EACnB,MAAM,mBAAE;AAAA,EACR,MAAM,mBAAE;AAAA,EACR,MAAM,mBAAE;AAAA,EACR,YAAY,mBAAE,QAAQ,mBAAE,UAAU,CAAC,mBAAE,QAAQ,mBAAE,MAAM,CAAC,CAAC;AAAA,EACvD,cAAc,mBAAE,UAAU,CAAC,mBAAE,QAAQ,mBAAE,QAAQ,mBAAE,MAAM,CAAC,CAAC;AAAA,EACzD,mBAAmB,mBAAE;AACzB;AAEA,WAAW,UAAU;AAAA,EACjB,gBAAgB;AACpB;AAEA,IAAM,uBAAuB,CAAC,YAAY,sBAAsB;AAC5D,MAAI,gBAAgB,CAAC;AACrB,MAAI,oBAAoB;AAKxB,MAAI,CAAC,gBAAQ,UAAU,GAAG;AACtB,oBAAgB,CAAC,UAAU;AAAA,EAC/B,WAAW,CAAC,gBAAQ,iBAAiB,GAAG;AACpC,WAAO,KAAK,iBAAiB,EAAE,QAAQ,gBAAc;AACjD,YAAM,iBAAiB,kBAAkB,UAAU,EAAE;AACrD,UAAI,gBAAgB;AAChB,sBAAc,KAAK,cAAc;AAAA,MACrC;AAAA,IACJ,CAAC;AAED,wBAAoB;AAAA,EACxB;AAEA,MAAI,cAAc,QAAQ;AACtB,UAAM,gBAAgB,cAAc,IAAI,WAAS;AAC7C,YAAM,aAAa,OAAO,KAAK,KAAK,EAAE,IAAI,UAAQ;AAxQ9D;AAyQgB,cAAM,IAAI,MAAM,IAAI;AACpB,YAAI,UAAQ,OAAE,UAAF,mBAAU,MAChB,qBAAqB,kCAAK,OAAE,UAAF,mBAAU,KAAf,EAAmB,MAAM,EAAE,KAAK,EAAC,IACtD,qBAAqB,iCAAK,IAAL,EAAQ,MAAM,EAAE,KAAK,EAAC;AACjD,cAAM,WAAW,gBAAgB,EAAE,OAAO;AAE1C,YAAI;AAEJ,YAAI,SAAO,aAAE,UAAF,mBAAU,OAAV,mBAAc,aAAY,UAAU;AAC3C,wBAAc,kBAAkB,EAAE,MAAM,CAAC,EAAE,OAAO;AAAA,QACtD,aAAW,yBAAE,UAAF,mBAAU,OAAV,mBAAc,UAAd,mBAAqB,SAArB,mBAA2B,UAAS,GAAG;AAE9C,kBAAQ,MAAM,QAAQ,cAAc,QAAQ;AAC5C,wBAAc,EAAE,MAAM,CAAC,EAAE,MAAM;AAAA,QACnC,aAAW,+BAAE,UAAF,mBAAU,OAAV,mBAAc,UAAd,mBAAqB,UAArB,mBAA4B,SAA5B,mBAAkC,UAAS,GAAG;AAErD,kBAAQ,MAAM,QAAQ,cAAc,QAAQ;AAC5C,wBAAc,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM;AAAA,QACzC,WAAW,EAAE,MAAM;AACf,wBAAc,EAAE;AAAA,QACpB;AAGA,YAAI,2CAAa,QAAQ;AACrB,oBAAQ,aAAE,UAAF,mBAAU,OAAV,mBAAc,UAAS,UAAU,SAAQ,aAAE,UAAF,mBAAU,OAAV,mBAAc;AAC/D,cAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,oBAAQ,MAAM,KAAK,KAAK;AAAA,UAC5B;AAAA,QACJ;AAEA,eACI;AAAA,UAAC;AAAA;AAAA,YACG,KAAK;AAAA,YACL,MAAM;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,YACZ,MAAM,EAAE;AAAA,YACR,cAAc;AAAA;AAAA,QAClB;AAAA,MAER,CAAC;AACD,aACI;AAAA,QAAC;AAAA;AAAA,UACG,KAAK;AAAA,UACL;AAAA,UACA;AAAA;AAAA,MACJ;AAAA,IAER,CAAC;AAED,WAAO,4CAAC,qBAAkB,qBAAuC,aAAc;AAAA,EACnF;AACA,SAAO;AACX;AAEA,IAAM,aAAa,CAAC,EAAE,SAAS,aAAa,gBAAgB,CAAC,EAAE,MAC3D,4CAAC,aACI,QAAQ,WAAW,IAChB,4CAAC,mBAAQ,OAAO,KAAG,aAAW,IAE9B,4CAAC,mBAAQ,OAAO,KAAG,SAAO,GAE7B,eAAe,4CAAC,aAAK,WAAY,GACjC,OAAO,QAAQ,OAAO,EAClB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,SAAS,GAAG,CAAC,EAC9C,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM;AA1UlC;AA2UgB,MAAI;AACJ,MAAI,aAAa,CAAC;AAClB,MAAI,oBAAoB;AAGxB,MAAI,SAAO,gBAAK,UAAL,mBAAa,OAAb,mBAAiB,aAAY,UAAU;AAC9C,iBAAa,kBAAkB,KAAK,MAAM,CAAC,EAAE,OAAO;AAAA,EACxD,YAAW,gBAAK,UAAL,mBAAa,OAAb,mBAAiB,MAAM;AAC9B,kBAAa,gBAAK,UAAL,mBAAa,OAAb,mBAAiB;AAAA,EAClC,WAAW,KAAK,MAAM;AAClB,iBAAa,KAAK;AAAA,EACtB;AAIA,QAAI,gBAAK,UAAL,mBAAa,OAAb,mBAAiB,UAAS,WAAW,aAAW,gBAAK,UAAL,mBAAa,OAAb,mBAAiB,QAAO;AACxE,WAAO,qBAAqB,IAAI;AAChC,UAAM,EAAE,kBAAkB,IAAI;AAE9B,UAAM,UAAS,sBAAK,UAAL,mBAAa,OAAb,mBAAiB,UAAjB,mBAAwB;AACvC,UAAM,gBAAgB,OAAO,OAAO,CAAC,MAAM,aAAS,sBAAM,MAAM,IAAI,GAAG,CAAC,CAAC;AACzE,UAAM,EAAE,WAAW,IAAI;AACvB,wBAAoB,qBAAqB,YAAY,iBAAiB;AACtE,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM,KAAK;AAAA,QACX;AAAA;AAAA,IACJ;AAAA,EAER;AAEA,MAAI,KAAK,SAAS,UAAU;AAExB,WAAO,KAAK;AACZ,UAAM,EAAE,WAAW,IAAI;AACvB,UAAM,EAAE,kBAAkB,IAAI;AAC9B,wBAAoB,qBAAqB,YAAY,iBAAiB;AAAA,EAC1E,WAAW,yCAAY,QAAQ;AAE3B,YAAO,gBAAK,UAAL,mBAAa,OAAb,mBAAiB;AACxB,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,aAAO,KAAK,KAAK,KAAK;AAAA,IAC1B;AAAA,EACJ,OAAO;AACH,WAAO,qBAAqB,iCACrB,KAAK,MAAM,CAAC,IADS;AAAA,MAExB,MAAM,KAAK;AAAA,IACf,EAAC;AAAA,EACL;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,MAAM;AAAA,MAEN;AAAA,MACA;AAAA,MACA,MAAM,KAAK;AAAA,MACX,cAAc,gBAAgB,KAAK,OAAO;AAAA,MAC1C;AAAA;AAAA,EACJ;AAER,CAAC,CACT;AAGJ,WAAW,YAAY;AAAA,EACnB,SAAS,mBAAE,OAAO;AAAA,EAClB,aAAa,mBAAE;AAAA,EACf,eAAe,mBAAE,QAAQ,mBAAE,MAAM;AACrC;AAEA,IAAO,qBAAQ;",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
@@ -268,9 +268,9 @@ var formatCodeStringToObject = (codeString, regexMatch) => {
268
268
  if (!match) return null;
269
269
  const stringToParse = `{${match[1]}}`;
270
270
  const removedCommas = stringToParse.replace(/,(?!\s*?[-{["'\w])/g, "");
271
- const backQuotes = removedCommas.replace(/"/g, "`");
272
- const doubleQuotes = backQuotes.replace(/'/g, '"');
273
- const singleQuotes = doubleQuotes.replace(/`/g, "'");
271
+ const backQuotes = removedCommas.replaceAll('"', "`");
272
+ const doubleQuotes = backQuotes.replaceAll("'", '"');
273
+ const singleQuotes = doubleQuotes.replaceAll("`", "'");
274
274
  const quotesAroundKeys = singleQuotes.replace(/\b(\w+)\s*:(?=\s)/g, '"$1":');
275
275
  let retval = null;
276
276
  try {
@@ -346,11 +346,57 @@ var convertToDashboardJSON = (codeString, type) => {
346
346
  };
347
347
 
348
348
  // src/common/DocExampleWithVizSandbox.tsx
349
+ var MAP_DOCS_EXAMPLE_WRAPPER_STYLE = {
350
+ position: "relative",
351
+ display: "inline-block",
352
+ width: "fit-content",
353
+ maxWidth: "100%",
354
+ verticalAlign: "top"
355
+ };
356
+ var MAP_DOCS_ATTRIBUTION_STYLE = {
357
+ position: "absolute",
358
+ right: "16px",
359
+ bottom: "16px",
360
+ zIndex: 4,
361
+ padding: "4px 8px",
362
+ borderRadius: "4px",
363
+ background: "rgba(255, 255, 255, 0.92)",
364
+ boxShadow: "0 1px 3px rgba(0, 0, 0, 0.2)",
365
+ fontSize: "11px",
366
+ lineHeight: "14px",
367
+ pointerEvents: "auto"
368
+ };
369
+ var MAP_DOCS_ATTRIBUTION_LINK_STYLE = {
370
+ color: "#136CBE",
371
+ textDecoration: "none"
372
+ };
373
+ var shouldRenderMapDocsAttribution = (type, code) => type === "splunk.map" && (code.includes("basemaps.cartocdn.com") || code.includes("MapDocsExample") || code.includes("docsTileConfig") || code.includes("testTileConfig")) && !code.includes("showBaseLayer: false");
374
+ var MapDocsAttribution = () => /* @__PURE__ */ react_exports.createElement("div", { "data-test": "map-docs-attribution", style: MAP_DOCS_ATTRIBUTION_STYLE }, /* @__PURE__ */ react_exports.createElement(
375
+ "a",
376
+ {
377
+ href: "https://www.openstreetmap.org/copyright",
378
+ rel: "noopener noreferrer",
379
+ style: MAP_DOCS_ATTRIBUTION_LINK_STYLE,
380
+ target: "_blank"
381
+ },
382
+ "\xA9 OpenStreetMap contributors"
383
+ ), " ", /* @__PURE__ */ react_exports.createElement(
384
+ "a",
385
+ {
386
+ href: "https://carto.com/attributions/",
387
+ rel: "noopener noreferrer",
388
+ style: MAP_DOCS_ATTRIBUTION_LINK_STYLE,
389
+ target: "_blank"
390
+ },
391
+ "\xA9 CARTO"
392
+ ));
349
393
  var DocExampleWithVizSandbox = (props) => {
350
- const { type, title, code, example, hideSandbox = false, description } = props;
394
+ const { type, title, code, example, hideSandbox = false, description, showMapAttribution } = props;
351
395
  const [isCopied, setIsCopied] = react_exports.useState(false);
352
396
  const [showCode, setShowCode] = react_exports.useState(false);
353
397
  const isMounted = react_exports.useRef(true);
398
+ const ExampleComponent = example;
399
+ const showMapDocsAttribution = !code.includes("showBaseLayer: false") && (showMapAttribution != null ? showMapAttribution : shouldRenderMapDocsAttribution(type, code));
354
400
  const toggleShowCode = react_exports.useCallback(() => {
355
401
  setShowCode((state) => !state);
356
402
  }, []);
@@ -386,13 +432,14 @@ var DocExampleWithVizSandbox = (props) => {
386
432
  }
387
433
  )
388
434
  ];
435
+ const renderExample = () => /* @__PURE__ */ react_exports.createElement("div", { style: MAP_DOCS_EXAMPLE_WRAPPER_STYLE }, /* @__PURE__ */ react_exports.createElement(ExampleComponent, null), showMapDocsAttribution && /* @__PURE__ */ react_exports.createElement(MapDocsAttribution, null));
389
436
  return /* @__PURE__ */ react_exports.createElement(
390
437
  DocExample_default,
391
438
  {
392
439
  renderAdditionalActions,
393
440
  title,
394
441
  code,
395
- example,
442
+ example: showMapDocsAttribution ? renderExample : example,
396
443
  description
397
444
  },
398
445
  /* @__PURE__ */ react_exports.createElement(
@@ -422,7 +469,8 @@ DocExampleWithVizSandbox.propTypes = {
422
469
  title: prop_types_exports.string,
423
470
  code: prop_types_exports.string,
424
471
  example: prop_types_exports.func,
425
- hideSandbox: prop_types_exports.bool
472
+ hideSandbox: prop_types_exports.bool,
473
+ showMapAttribution: prop_types_exports.bool
426
474
  };
427
475
  var DocExampleWithVizSandbox_default = DocExampleWithVizSandbox;
428
476
 
@@ -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 = ['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 <UtilPage title={`${className}#${doc.name}`} docs={[classHeaderDoc, doc, fileDoc]} />;\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
- "mappings": "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",
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 = new Set([\n 'average',\n 'count',\n 'getField',\n 'getType',\n 'min',\n 'max',\n 'percentile',\n 'sum',\n]);\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.has(name) ? `${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.at(-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 <UtilPage title={`${className}#${doc.name}`} docs={[classHeaderDoc, doc, fileDoc]} />;\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.replaceAll('\"', '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replaceAll(\"'\", '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replaceAll('`', \"'\");\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 showMapAttribution?: boolean;\n}\n\nconst MAP_DOCS_EXAMPLE_WRAPPER_STYLE: React.CSSProperties = {\n position: 'relative',\n display: 'inline-block',\n width: 'fit-content',\n maxWidth: '100%',\n verticalAlign: 'top',\n};\n\nconst MAP_DOCS_ATTRIBUTION_STYLE: React.CSSProperties = {\n position: 'absolute',\n right: '16px',\n bottom: '16px',\n zIndex: 4,\n padding: '4px 8px',\n borderRadius: '4px',\n background: 'rgba(255, 255, 255, 0.92)',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.2)',\n fontSize: '11px',\n lineHeight: '14px',\n pointerEvents: 'auto',\n};\n\nconst MAP_DOCS_ATTRIBUTION_LINK_STYLE: React.CSSProperties = {\n color: '#136CBE',\n textDecoration: 'none',\n};\n\nconst shouldRenderMapDocsAttribution = (type: string, code: string): boolean =>\n type === 'splunk.map' &&\n (code.includes('basemaps.cartocdn.com') ||\n code.includes('MapDocsExample') ||\n code.includes('docsTileConfig') ||\n code.includes('testTileConfig')) &&\n !code.includes('showBaseLayer: false');\n\nconst MapDocsAttribution = (): React.ReactElement => (\n <div data-test=\"map-docs-attribution\" style={MAP_DOCS_ATTRIBUTION_STYLE}>\n <a\n href=\"https://www.openstreetmap.org/copyright\"\n rel=\"noopener noreferrer\"\n style={MAP_DOCS_ATTRIBUTION_LINK_STYLE}\n target=\"_blank\"\n >\n \u00A9 OpenStreetMap contributors\n </a>{' '}\n <a\n href=\"https://carto.com/attributions/\"\n rel=\"noopener noreferrer\"\n style={MAP_DOCS_ATTRIBUTION_LINK_STYLE}\n target=\"_blank\"\n >\n \u00A9 CARTO\n </a>\n </div>\n);\n\nconst DocExampleWithVizSandbox = (props: DocExampleWithVizSandboxProps): React.ReactElement => {\n const { type, title, code, example, hideSandbox = false, description, showMapAttribution } = props;\n const [isCopied, setIsCopied] = React.useState(false);\n const [showCode, setShowCode] = React.useState(false);\n const isMounted = React.useRef(true);\n const ExampleComponent = example;\n const showMapDocsAttribution =\n !code.includes('showBaseLayer: false') &&\n (showMapAttribution ?? shouldRenderMapDocsAttribution(type, code));\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 const renderExample = () => (\n <div style={MAP_DOCS_EXAMPLE_WRAPPER_STYLE}>\n <ExampleComponent />\n {showMapDocsAttribution && <MapDocsAttribution />}\n </div>\n );\n\n return (\n <DocExample\n renderAdditionalActions={renderAdditionalActions}\n title={title}\n code={code}\n example={showMapDocsAttribution ? renderExample : 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 showMapAttribution: T.bool,\n};\n\nexport default DocExampleWithVizSandbox;\n"],
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
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/common/ThemesDoc.jsx", "esm-externals:react", "esm-externals:prop-types", "esm-externals:@splunk/react-ui/Heading", "esm-externals:styled-components", "esm-externals:lodash/omit", "esm-externals:lodash/cloneDeep", "esm-externals:@splunk/react-ui/ColumnLayout", "esm-externals:@splunk/react-ui/Select", "esm-externals:@splunk/react-ui/Message", "esm-externals:@splunk/react-ui/Tooltip", "esm-externals:@splunk/themes/SplunkThemeProvider", "esm-externals:@splunk/visualizations-shared/colorUtils", "esm-externals:@splunk/visualization-themes/variables"],
4
- "sourcesContent": ["/* eslint-disable react/no-multi-comp */\nimport React, { useState } from 'react';\nimport T from 'prop-types';\nimport Heading from '@splunk/react-ui/Heading';\nimport styled from 'styled-components';\nimport omit from 'lodash/omit';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ColumnLayout from '@splunk/react-ui/ColumnLayout';\nimport Select from '@splunk/react-ui/Select';\nimport Message from '@splunk/react-ui/Message';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport SplunkThemeProvider from '@splunk/themes/SplunkThemeProvider';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport * as sharedThemeVariables from '@splunk/visualization-themes/variables';\n\nconst ThemeVar = styled.div`\n margin-top: 20px;\n cursor: pointer;\n`;\nconst ThemeVarName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n display: inline-block;\n padding-right: 5px;\n font-weight: ${props => (props.highlighted ? 'bold' : 'normal')};\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`;\nconst ColorPreview = styled.div`\n width: 20px;\n height: 20px;\n background: ${props => props.color};\n display: inline-block;\n vertical-align: bottom;\n margin-right: 5px;\n border: 1px solid rgba(0, 0, 0, 0.3);\n border-radius: 5px;\n`;\n\nconst Pair = ({ title, text }) => (\n <PairContainer>\n <PairTitle>{`${title}:`}</PairTitle>\n {isColor(text) && <ColorPreview color={text} />}\n <samp>{text}</samp>\n </PairContainer>\n);\nPair.propTypes = {\n title: T.string,\n text: T.string,\n};\n\nconst themeFamilyMapping = {\n enterprise: {\n colorScheme: {\n dark: 'enterpriseDark',\n light: 'enterprise',\n },\n },\n prisma: {\n colorScheme: {\n dark: 'scp',\n light: 'enterprise',\n },\n },\n};\n\nconst themeIdToVariant = {\n enterpriseLightComfortable: {\n colorScheme: 'light',\n density: 'comfortable',\n family: 'enterprise',\n label: 'Enterprise Light Comfortable',\n },\n enterpriseLightCompact: {\n colorScheme: 'light',\n density: 'compact',\n family: 'enterprise',\n label: 'Enterprise Light Compact',\n },\n enterpriseDarkComfortable: {\n colorScheme: 'dark',\n density: 'comfortable',\n family: 'enterprise',\n label: 'Enterprise Dark Comfortable',\n },\n enterpriseDarkCompact: {\n colorScheme: 'dark',\n density: 'compact',\n family: 'enterprise',\n label: 'Enterprise Dark Compact',\n },\n prismaLightComfortable: {\n colorScheme: 'light',\n density: 'comfortable',\n family: 'prisma',\n label: 'Prisma Light Comfortable',\n },\n prismaLightCompact: {\n colorScheme: 'light',\n density: 'compact',\n family: 'prisma',\n label: 'Prisma Light Compact',\n },\n prismaDarkComfortable: {\n colorScheme: 'dark',\n density: 'comfortable',\n family: 'prisma',\n label: 'Prisma Dark Comfortable',\n },\n prismaDarkCompact: {\n colorScheme: 'dark',\n density: 'compact',\n family: 'prisma',\n label: 'Prisma Dark Compact',\n },\n};\n\nconst ThemesDoc = props => {\n const { renderVisualization, themes: themeVars } = props;\n const [highlightedThemeVariable, setHighlightedThemeVariable] = useState('');\n const [selectedTheme, setSelectedTheme] = useState(themeIdToVariant.enterpriseLightComfortable);\n const previewTheme = cloneDeep(themeVars);\n // if the highlighted theme variable is a color, color it red\n if (isColor(themeVars[highlightedThemeVariable])) {\n previewTheme[highlightedThemeVariable] = () => 'red';\n }\n return (\n <ColumnLayout style={{ marginTop: -20 }}>\n <ColumnLayout.Row>\n <ColumnLayout.Column span={12}>\n <Heading level={4}>Theme</Heading>\n <Select value={selectedTheme} onChange={(e, { value }) => setSelectedTheme(value)}>\n {Object.keys(themeIdToVariant).map(themeId => (\n <Select.Option\n key={themeId}\n label={themeIdToVariant[themeId].label}\n value={themeIdToVariant[themeId]}\n />\n ))}\n </Select>\n </ColumnLayout.Column>\n </ColumnLayout.Row>\n <ColumnLayout.Row>\n <ColumnLayout.Column colStyle={{ padding: 10 }} span={4}>\n <Heading level={4}>Preview</Heading>\n <SplunkThemeProvider\n family={selectedTheme.family}\n colorScheme={selectedTheme.colorScheme}\n density={selectedTheme.density}\n >\n {renderVisualization()}\n </SplunkThemeProvider>\n <Message type=\"info\">\n This preview may differ from the visualization&apos;s default look and feel.\n <br />\n It exists to show areas affected by theme variables.\n </Message>\n </ColumnLayout.Column>\n <ColumnLayout.Column colStyle={{ padding: 10 }} span={8}>\n <Heading level={4}>Variables</Heading>\n {Object.keys(previewTheme).map(varKey => {\n const themeValue = previewTheme[varKey]({\n theme: {\n splunkThemeV1: omit(selectedTheme, ['label']),\n },\n });\n // if a theme variable is in @splunk/visualization-themes and it has the same value\n // we assume we used the shared variable.\n const isFromSharedVariables =\n sharedThemeVariables?.[\n themeFamilyMapping?.[selectedTheme.family]?.[selectedTheme.colorScheme]\n ]?.[varKey] === themeValue;\n // for now we only show simple theme values (nested theme objects shouldn't have been introduced in the first place)\n let isJSON;\n try {\n isJSON = typeof JSON.parse(themeValue) === 'object';\n } catch (e) {} // eslint-disable-line no-empty\n return (\n !isJSON && (\n <ThemeVar\n key={varKey}\n onMouseOver={() => setHighlightedThemeVariable(varKey)}\n onMouseOut={() => setHighlightedThemeVariable('')}\n >\n <ThemeVarName highlighted={varKey === highlightedThemeVariable}>\n {`${varKey}`}\n </ThemeVarName>\n {isFromSharedVariables && (\n <Tooltip content=\"This is a shared theme variable from @splunk/visualization-themes\" />\n )}\n <Pair title=\"Value\" text={themeValue} />\n </ThemeVar>\n )\n );\n })}\n </ColumnLayout.Column>\n </ColumnLayout.Row>\n </ColumnLayout>\n );\n};\n\nThemesDoc.propTypes = {\n themes: T.object.isRequired,\n renderVisualization: T.func.isRequired,\n};\n\nexport default ThemesDoc;\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 \"@splunk/react-ui/Heading\";\nexport * from \"@splunk/react-ui/Heading\";\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/omit\";\nexport * from \"lodash/omit\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"lodash/cloneDeep\";\nexport * from \"lodash/cloneDeep\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/ColumnLayout\";\nexport * from \"@splunk/react-ui/ColumnLayout\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Select\";\nexport * from \"@splunk/react-ui/Select\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Message\";\nexport * from \"@splunk/react-ui/Message\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes/SplunkThemeProvider\";\nexport * from \"@splunk/themes/SplunkThemeProvider\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/colorUtils\";\nexport * from \"@splunk/visualizations-shared/colorUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-themes/variables\";\nexport * from \"@splunk/visualization-themes/variables\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable react/no-multi-comp */\nimport React, { useState } from 'react';\nimport T from 'prop-types';\nimport Heading from '@splunk/react-ui/Heading';\nimport styled from 'styled-components';\nimport omit from 'lodash/omit';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ColumnLayout from '@splunk/react-ui/ColumnLayout';\nimport Select from '@splunk/react-ui/Select';\nimport Message from '@splunk/react-ui/Message';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport SplunkThemeProvider from '@splunk/themes/SplunkThemeProvider';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport * as sharedThemeVariables from '@splunk/visualization-themes/variables';\n\nconst ThemeVar = styled.div`\n margin-top: 20px;\n cursor: pointer;\n`;\nconst ThemeVarName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n display: inline-block;\n padding-right: 5px;\n font-weight: ${props => (props.highlighted ? 'bold' : 'normal')};\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`;\nconst ColorPreview = styled.div`\n width: 20px;\n height: 20px;\n background: ${props => props.color};\n display: inline-block;\n vertical-align: bottom;\n margin-right: 5px;\n border: 1px solid rgba(0, 0, 0, 0.3);\n border-radius: 5px;\n`;\n\nconst Pair = ({ title, text }) => (\n <PairContainer>\n <PairTitle>{`${title}:`}</PairTitle>\n {isColor(text) && <ColorPreview color={text} />}\n <samp>{text}</samp>\n </PairContainer>\n);\nPair.propTypes = {\n title: T.string,\n text: T.string,\n};\n\nconst themeFamilyMapping = {\n enterprise: {\n colorScheme: {\n dark: 'enterpriseDark',\n light: 'enterprise',\n },\n },\n prisma: {\n colorScheme: {\n dark: 'scp',\n light: 'enterprise',\n },\n },\n};\n\nconst themeIdToVariant = {\n enterpriseLightComfortable: {\n colorScheme: 'light',\n density: 'comfortable',\n family: 'enterprise',\n label: 'Enterprise Light Comfortable',\n },\n enterpriseLightCompact: {\n colorScheme: 'light',\n density: 'compact',\n family: 'enterprise',\n label: 'Enterprise Light Compact',\n },\n enterpriseDarkComfortable: {\n colorScheme: 'dark',\n density: 'comfortable',\n family: 'enterprise',\n label: 'Enterprise Dark Comfortable',\n },\n enterpriseDarkCompact: {\n colorScheme: 'dark',\n density: 'compact',\n family: 'enterprise',\n label: 'Enterprise Dark Compact',\n },\n prismaLightComfortable: {\n colorScheme: 'light',\n density: 'comfortable',\n family: 'prisma',\n label: 'Prisma Light Comfortable',\n },\n prismaLightCompact: {\n colorScheme: 'light',\n density: 'compact',\n family: 'prisma',\n label: 'Prisma Light Compact',\n },\n prismaDarkComfortable: {\n colorScheme: 'dark',\n density: 'comfortable',\n family: 'prisma',\n label: 'Prisma Dark Comfortable',\n },\n prismaDarkCompact: {\n colorScheme: 'dark',\n density: 'compact',\n family: 'prisma',\n label: 'Prisma Dark Compact',\n },\n};\n\nconst ThemesDoc = props => {\n const { renderVisualization, themes: themeVars } = props;\n const [highlightedThemeVariable, setHighlightedThemeVariable] = useState('');\n const [selectedTheme, setSelectedTheme] = useState(themeIdToVariant.enterpriseLightComfortable);\n const previewTheme = cloneDeep(themeVars);\n // if the highlighted theme variable is a color, color it red\n if (isColor(themeVars[highlightedThemeVariable])) {\n previewTheme[highlightedThemeVariable] = () => 'red';\n }\n return (\n <ColumnLayout style={{ marginTop: -20 }}>\n <ColumnLayout.Row>\n <ColumnLayout.Column span={12}>\n <Heading level={4}>Theme</Heading>\n <Select value={selectedTheme} onChange={(e, { value }) => setSelectedTheme(value)}>\n {Object.keys(themeIdToVariant).map(themeId => (\n <Select.Option\n key={themeId}\n label={themeIdToVariant[themeId].label}\n value={themeIdToVariant[themeId]}\n />\n ))}\n </Select>\n </ColumnLayout.Column>\n </ColumnLayout.Row>\n <ColumnLayout.Row>\n <ColumnLayout.Column colStyle={{ padding: 10 }} span={4}>\n <Heading level={4}>Preview</Heading>\n <SplunkThemeProvider\n family={selectedTheme.family}\n colorScheme={selectedTheme.colorScheme}\n density={selectedTheme.density}\n >\n {renderVisualization()}\n </SplunkThemeProvider>\n <Message type=\"info\">\n This preview may differ from the visualization&apos;s default look and feel.\n <br />\n It exists to show areas affected by theme variables.\n </Message>\n </ColumnLayout.Column>\n <ColumnLayout.Column colStyle={{ padding: 10 }} span={8}>\n <Heading level={4}>Variables</Heading>\n {Object.keys(previewTheme).map(varKey => {\n const themeValue = previewTheme[varKey]({\n theme: {\n splunkThemeV1: omit(selectedTheme, ['label']),\n },\n });\n // if a theme variable is in @splunk/visualization-themes and it has the same value\n // we assume we used the shared variable.\n const isFromSharedVariables =\n sharedThemeVariables?.[\n themeFamilyMapping?.[selectedTheme.family]?.[selectedTheme.colorScheme]\n ]?.[varKey] === themeValue;\n // for now we only show simple theme values (nested theme objects shouldn't have been introduced in the first place)\n let isJSON;\n // prettier-ignore\n try {\n isJSON = typeof JSON.parse(themeValue) === 'object';\n } catch (e) { // NOSONAR javascript:S2486 - Non-JSON theme values are treated as simple values\n }\n return (\n !isJSON && (\n <ThemeVar\n key={varKey}\n onMouseOver={() => setHighlightedThemeVariable(varKey)}\n onMouseOut={() => setHighlightedThemeVariable('')}\n >\n <ThemeVarName highlighted={varKey === highlightedThemeVariable}>\n {`${varKey}`}\n </ThemeVarName>\n {isFromSharedVariables && (\n <Tooltip content=\"This is a shared theme variable from @splunk/visualization-themes\" />\n )}\n <Pair title=\"Value\" text={themeValue} />\n </ThemeVar>\n )\n );\n })}\n </ColumnLayout.Column>\n </ColumnLayout.Row>\n </ColumnLayout>\n );\n};\n\nThemesDoc.propTypes = {\n themes: T.object.isRequired,\n renderVisualization: T.func.isRequired,\n};\n\nexport default ThemesDoc;\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 \"@splunk/react-ui/Heading\";\nexport * from \"@splunk/react-ui/Heading\";\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/omit\";\nexport * from \"lodash/omit\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"lodash/cloneDeep\";\nexport * from \"lodash/cloneDeep\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/ColumnLayout\";\nexport * from \"@splunk/react-ui/ColumnLayout\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Select\";\nexport * from \"@splunk/react-ui/Select\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Message\";\nexport * from \"@splunk/react-ui/Message\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes/SplunkThemeProvider\";\nexport * from \"@splunk/themes/SplunkThemeProvider\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/colorUtils\";\nexport * from \"@splunk/visualizations-shared/colorUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-themes/variables\";\nexport * from \"@splunk/visualization-themes/variables\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
@@ -232,7 +232,7 @@ var filterChartDataFromInternalFields = (chartData) => {
232
232
  return { fields: filteredFields, columns: filteredColumns };
233
233
  };
234
234
  var convert2DArrayToNumbers = (arr) => {
235
- return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
235
+ return arr.map((subArray) => subArray.map((element) => Number.parseFloat(element)));
236
236
  };
237
237
  var parseAxisValue = (val) => {
238
238
  if (val === void 0 || val === null || val === "auto" || val === "") {
@@ -270,6 +270,7 @@ var getLegend = (props) => {
270
270
  return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
271
271
  wrap: true
272
272
  }, commonLegendProps));
273
+ // Note: By default, use right legend
273
274
  default:
274
275
  return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({}, commonLegendProps));
275
276
  }
@@ -402,10 +403,10 @@ var getSeriesOverrides = (opts) => {
402
403
  let spanGaps;
403
404
  if (nullValueMode === "gaps") {
404
405
  spanGaps = false;
405
- } else if (nullValueMode != null) {
406
- spanGaps = true;
407
- } else {
406
+ } else if (nullValueMode == null) {
408
407
  spanGaps = void 0;
408
+ } else {
409
+ spanGaps = true;
409
410
  }
410
411
  const replaceNullsWithZero = nullValueMode === "zero" ? true : void 0;
411
412
  const isAreaChart = type === "area";
@@ -888,11 +889,11 @@ var TimeSeriesChartWrapper = (props) => {
888
889
  y2AxisMajorUnitFromSimpleXML,
889
890
  y2AxisMajorTickInterval
890
891
  );
891
- const xAxisMajorTickSizeNum = xAxisMajorTickSize != null ? Number(xAxisMajorTickSize) : void 0;
892
- const yAxisMajorTickSizeNum = yAxisMajorTickSize != null ? Number(yAxisMajorTickSize) : void 0;
893
- const y2AxisMajorTickSizeNum = y2AxisMajorTickSize != null ? Number(y2AxisMajorTickSize) : void 0;
894
- const yAxisMinorTickSizeNum = yAxisMinorTickSize != null ? Number(yAxisMinorTickSize) : void 0;
895
- const y2AxisMinorTickSizeNum = y2AxisMinorTickSize != null ? Number(y2AxisMinorTickSize) : void 0;
892
+ const xAxisMajorTickSizeNum = xAxisMajorTickSize == null ? void 0 : Number(xAxisMajorTickSize);
893
+ const yAxisMajorTickSizeNum = yAxisMajorTickSize == null ? void 0 : Number(yAxisMajorTickSize);
894
+ const y2AxisMajorTickSizeNum = y2AxisMajorTickSize == null ? void 0 : Number(y2AxisMajorTickSize);
895
+ const yAxisMinorTickSizeNum = yAxisMinorTickSize == null ? void 0 : Number(yAxisMinorTickSize);
896
+ const y2AxisMinorTickSizeNum = y2AxisMinorTickSize == null ? void 0 : Number(y2AxisMinorTickSize);
896
897
  const areaOpacityForCanvas = getAreaOpacityForCanvas(areaOpacity);
897
898
  const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
898
899
  const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;