@splunk/visualizations 26.4.1 → 27.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/Area.config.js +1399 -1590
  2. package/Area.config.js.map +7 -1
  3. package/Area.js +3750 -4822
  4. package/Area.js.map +7 -1
  5. package/Bar.config.js +1423 -1566
  6. package/Bar.config.js.map +7 -1
  7. package/Bar.js +3856 -4884
  8. package/Bar.js.map +7 -1
  9. package/Bubble.config.js +1009 -1200
  10. package/Bubble.config.js.map +7 -1
  11. package/Bubble.js +2768 -4491
  12. package/Bubble.js.map +7 -1
  13. package/ChoroplethSvg.config.js +282 -582
  14. package/ChoroplethSvg.config.js.map +7 -1
  15. package/ChoroplethSvg.js +2032 -3808
  16. package/ChoroplethSvg.js.map +7 -1
  17. package/Column.config.js +1390 -1534
  18. package/Column.config.js.map +7 -1
  19. package/Column.js +3849 -4906
  20. package/Column.js.map +7 -1
  21. package/Ellipse.config.js +443 -774
  22. package/Ellipse.config.js.map +7 -1
  23. package/Ellipse.js +1667 -3327
  24. package/Ellipse.js.map +7 -1
  25. package/Events.config.js +207 -492
  26. package/Events.config.js.map +7 -1
  27. package/Events.js +2643 -4647
  28. package/Events.js.map +7 -1
  29. package/FillerGauge.config.js +420 -775
  30. package/FillerGauge.config.js.map +7 -1
  31. package/FillerGauge.js +2164 -4575
  32. package/FillerGauge.js.map +7 -1
  33. package/Image.config.js +144 -411
  34. package/Image.config.js.map +7 -1
  35. package/Image.js +1423 -3046
  36. package/Image.js.map +7 -1
  37. package/Line.config.js +1421 -1616
  38. package/Line.config.js.map +7 -1
  39. package/Line.js +3790 -4901
  40. package/Line.js.map +7 -1
  41. package/LinkGraph.config.js +390 -632
  42. package/LinkGraph.config.js.map +7 -1
  43. package/LinkGraph.js +5272 -6185
  44. package/LinkGraph.js.map +7 -1
  45. package/MIGRATION.md +6 -0
  46. package/Map.config.js +501 -801
  47. package/Map.config.js.map +7 -1
  48. package/Map.js +3382 -5659
  49. package/Map.js.map +7 -1
  50. package/Markdown.config.js +232 -528
  51. package/Markdown.config.js.map +7 -1
  52. package/Markdown.js +1671 -3212
  53. package/Markdown.js.map +7 -1
  54. package/MarkerGauge.config.js +308 -613
  55. package/MarkerGauge.config.js.map +7 -1
  56. package/MarkerGauge.js +2215 -4531
  57. package/MarkerGauge.js.map +7 -1
  58. package/ParallelCoordinates.config.js +282 -581
  59. package/ParallelCoordinates.config.js.map +7 -1
  60. package/ParallelCoordinates.js +2057 -4718
  61. package/ParallelCoordinates.js.map +7 -1
  62. package/Pie.config.js +278 -547
  63. package/Pie.config.js.map +7 -1
  64. package/Pie.js +2107 -3984
  65. package/Pie.js.map +7 -1
  66. package/Punchcard.config.js +291 -578
  67. package/Punchcard.config.js.map +7 -1
  68. package/Punchcard.js +2734 -5037
  69. package/Punchcard.js.map +7 -1
  70. package/Rectangle.config.js +455 -770
  71. package/Rectangle.config.js.map +7 -1
  72. package/Rectangle.js +1664 -3258
  73. package/Rectangle.js.map +7 -1
  74. package/Sankey.config.js +291 -626
  75. package/Sankey.config.js.map +7 -1
  76. package/Sankey.js +2766 -4908
  77. package/Sankey.js.map +7 -1
  78. package/Scatter.config.js +988 -1180
  79. package/Scatter.config.js.map +7 -1
  80. package/Scatter.js +2801 -4506
  81. package/Scatter.js.map +7 -1
  82. package/SingleValue.config.js +794 -1250
  83. package/SingleValue.config.js.map +7 -1
  84. package/SingleValue.js +4185 -7327
  85. package/SingleValue.js.map +7 -1
  86. package/SingleValueBasic.js +382 -1527
  87. package/SingleValueBasic.js.map +7 -1
  88. package/SingleValueIcon.config.js +757 -1207
  89. package/SingleValueIcon.config.js.map +7 -1
  90. package/SingleValueIcon.js +3427 -6293
  91. package/SingleValueIcon.js.map +7 -1
  92. package/SingleValueRadial.config.js +686 -1121
  93. package/SingleValueRadial.config.js.map +7 -1
  94. package/SingleValueRadial.js +3923 -6994
  95. package/SingleValueRadial.js.map +7 -1
  96. package/SparkLine.js +439 -746
  97. package/SparkLine.js.map +7 -1
  98. package/TRELLIS.md +16 -15
  99. package/Table.config.js +565 -879
  100. package/Table.config.js.map +7 -1
  101. package/Table.js +3260 -5334
  102. package/Table.js.map +7 -1
  103. package/common/Charting.js +617 -1498
  104. package/common/Charting.js.map +7 -1
  105. package/common/ChartingApi.js +46 -170
  106. package/common/ChartingApi.js.map +7 -1
  107. package/common/DocExampleWithVizSandbox.js +270 -473
  108. package/common/DocExampleWithVizSandbox.js.map +7 -1
  109. package/common/EventsDoc.js +172 -464
  110. package/common/EventsDoc.js.map +7 -1
  111. package/common/GaugeMajorTicks.js +249 -347
  112. package/common/GaugeMajorTicks.js.map +7 -1
  113. package/common/GaugeValueMarker.js +201 -311
  114. package/common/GaugeValueMarker.js.map +7 -1
  115. package/common/OptionsDoc.js +351 -911
  116. package/common/OptionsDoc.js.map +7 -1
  117. package/common/OverviewDoc.js +435 -769
  118. package/common/OverviewDoc.js.map +7 -1
  119. package/common/SplunkVisualization.js +116 -259
  120. package/common/SplunkVisualization.js.map +7 -1
  121. package/common/SplunkVisualizationApi.js +40 -156
  122. package/common/SplunkVisualizationApi.js.map +7 -1
  123. package/common/ThemesDoc.js +271 -420
  124. package/common/ThemesDoc.js.map +7 -1
  125. package/common/chartingUtils.js +140 -312
  126. package/common/chartingUtils.js.map +7 -1
  127. package/common/docUtils.js +148 -266
  128. package/common/docUtils.js.map +7 -1
  129. package/common/gaugeUtils.js +280 -808
  130. package/common/gaugeUtils.js.map +7 -1
  131. package/common/shapeUtils.js +106 -211
  132. package/common/shapeUtils.js.map +7 -1
  133. package/common/utils/configUtils.js +126 -252
  134. package/common/utils/configUtils.js.map +7 -1
  135. package/common/utils/dataUtils.js +217 -812
  136. package/common/utils/dataUtils.js.map +7 -1
  137. package/common/utils/featureFlagUtils.js +53 -133
  138. package/common/utils/featureFlagUtils.js.map +7 -1
  139. package/common/utils/hocUtils.js +32 -122
  140. package/common/utils/hocUtils.js.map +7 -1
  141. package/common/utils/mapUtils.js +502 -1337
  142. package/common/utils/mapUtils.js.map +7 -1
  143. package/common/utils/singleValueUtils.js +466 -1013
  144. package/common/utils/singleValueUtils.js.map +7 -1
  145. package/common/utils/testHelper.js +92 -146
  146. package/common/utils/testHelper.js.map +7 -1
  147. package/common/utils/trellisUtils.js +277 -489
  148. package/common/utils/trellisUtils.js.map +7 -1
  149. package/common/utils/urlUtils.js +28 -112
  150. package/common/utils/urlUtils.js.map +7 -1
  151. package/common/withDashboardViz.js +1191 -2431
  152. package/common/withDashboardViz.js.map +7 -1
  153. package/package.json +53 -45
@@ -1 +1,7 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"lodash\"","webpack:///./src/common/chartingUtils.ts"],"names":[],"mappings":"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","file":"chartingUtils.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 97);\n","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"lodash\");","import { has, isArray, isUndefined } from 'lodash';\nimport type { JsonColumnData } from './interfaces/DataSource';\n\ninterface ChartOptions {\n [key: string]: any;\n}\n\n/**\n * Get formatted annotations\n * @method getAnnotations\n * @param {Object} options\n * @param {Array} options.annotationX\n * @param {Array} options.annotationColor\n * @param {Array} options.annotationLabel\n * @returns {Array}\n */\nexport const getAnnotations = ({ annotationX, annotationColor, annotationLabel }) =>\n annotationX && annotationX.length\n ? annotationX.map((timestamp, i) => ({\n color: annotationColor && annotationColor[i],\n label: annotationLabel && annotationLabel[i],\n time: timestamp,\n }))\n : [];\n\n/**\n * Truncate the result set to given limit\n * @method truncateData\n * @param {Object} dataSet - dataSources.primary.data\n * @param {Number|String} truncationLimit - options['chart.resultTruncationLimit']\n * @returns {Object}\n */\nexport const truncateData = (dataSet, truncationLimit): Record<string, any[]> => {\n if (!dataSet) {\n return null;\n }\n\n const limit = parseInt(truncationLimit, 10);\n if (!limit || limit <= 0) {\n return dataSet;\n }\n\n const truncatedData: Record<string, Array<string[] | number[]>> = { ...dataSet };\n truncatedData.columns = truncatedData.columns.map(columnData =>\n columnData && Array.isArray(columnData) ? columnData.slice(0, limit) : columnData\n );\n return truncatedData;\n};\n\n/**\n * Helper method to update the option values into the values that SC accepts\n * @method mapToValues\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapToValues = (optionValuesSCMapping: Record<string, any>) => options => {\n const convertedOptions: Record<string, any> = { ...options };\n Object.keys(optionValuesSCMapping).forEach(key => {\n if (has(options, key)) {\n const updatedValue = optionValuesSCMapping[key][options[key]];\n if (!isUndefined(updatedValue)) {\n convertedOptions[key] = updatedValue;\n }\n }\n });\n return convertedOptions;\n};\n\ninterface y2AxisOptions extends ChartOptions {\n y2Fields?: string | string[];\n}\n\n/**\n * Helper method to process options related to y2Fields\n * @method convertY2AxisOptions\n * @param {Object} originalOptions\n * @returns {Object}\n */\nexport const convertY2AxisOptions = ({\n y2Fields,\n ...originalOptions\n}: y2AxisOptions): Record<string, any> => {\n const convertedOptions: Record<string, any> = {\n ...originalOptions,\n };\n if (y2Fields) {\n convertedOptions['axisY2.enabled'] = true;\n convertedOptions['axisY2.fields'] = isArray(y2Fields)\n ? y2Fields.filter(name => name).join(',')\n : y2Fields;\n }\n return convertedOptions;\n};\n\n/**\n * Helper method to format value for overlayFields\n * @method convertOverlayFields\n * @param {Object} originalOptions\n * @returns {Object}\n */\nexport const convertOverlayFields = (originalOptions: ChartOptions): ChartOptions => {\n const convertedOptions: ChartOptions = {\n ...originalOptions,\n };\n const { overlayFields } = originalOptions;\n if (overlayFields) {\n convertedOptions.overlayFields = Array.isArray(overlayFields)\n ? overlayFields\n .filter(field => field)\n .map(field => field.trim())\n .join(',')\n : overlayFields;\n }\n return convertedOptions;\n};\n\n/**\n * checks whether data is multi series data\n * @param {array} data array\n * @return {Boolean}\n */\nexport const isMultiSeriesData = (data: string[] | string[][]): boolean =>\n Array.isArray(data) && Array.isArray(data[0]);\n/**\n * checks whether data is multi series data and returns value as array\n * @param {array} data array\n * @param {*} value to return as array\n * @return {array}\n */\nexport const toArrayForSeries = (data, value): any[] => (isMultiSeriesData(data) ? value : [value]);\n\ninterface ConstructFieldsAndColumnsParams {\n x: string[];\n y: string[] | string[][];\n xField: string;\n yFields: string | string[];\n y2?: string[] | string[][];\n y2Fields?: string | string[];\n}\nexport const constructFieldsAndColumns = ({\n x = [],\n y = [],\n xField,\n yFields,\n y2,\n y2Fields,\n}: ConstructFieldsAndColumnsParams): JsonColumnData => {\n const columns = [x.map(String), ...toArrayForSeries(y, y).map(series => series.map(String))];\n const yFieldsArray = toArrayForSeries(y, yFields);\n const fields = [{ name: xField }, ...yFieldsArray.map(field => ({ name: field }))];\n // splunk-charting requires y2 to be part of columns\n // when y & y2 options are configured with different (mutually exclusive) series\n // y2 columns need to be added to columns\n if (y2Fields) {\n const y2FieldsArray = toArrayForSeries(y2, y2Fields);\n const y2AsArray = toArrayForSeries(y2, y2).map(series => series?.map(String));\n y2FieldsArray.forEach((y2Field, index) => {\n if (yFieldsArray.indexOf(y2Field) === -1 && y2AsArray[index]) {\n fields.push({\n name: y2Field,\n });\n columns.push(y2AsArray[index]);\n }\n });\n }\n return {\n columns,\n fields,\n };\n};\n\n// Note: we are making the assumption that attaching a range.select listener means the user wants to enable search zoom\n// This is because we don't know if the time range tokens being updated by the drilldown is used by the current viz.\n// In the future we are considering using a shared context to pass this information from UDF to Viz.\ninterface OptionsProps {\n events?: string[];\n selectedItemId?: string;\n [key: string]: unknown;\n}\ninterface EventHandler {\n type: string;\n options: OptionsProps;\n}\n\nexport const shouldEnableSearchZoom = (eventHandlers: EventHandler[] = [], xField = '') => {\n const rangeSelectEventHandler = eventHandlers.find(eventHandler =>\n eventHandler.options.events?.includes('range.select')\n );\n // Check if xField is _time. This is how splunk-charting distinguishes a time chart from categorical.\n // Note: search zoom will be buggy if the x axis uses timestamp values but is not _time\n const xAxisIsTime = xField === '_time';\n\n return !!rangeSelectEventHandler && xAxisIsTime;\n};\n"],"sourceRoot":""}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/common/chartingUtils.ts", "esm-externals:lodash"],
4
+ "sourcesContent": ["import { has, isArray, isUndefined } from 'lodash';\nimport type { JsonColumnData } from './interfaces/DataSource';\n\ninterface ChartOptions {\n [key: string]: any;\n}\n\n/**\n * Get formatted annotations\n * @method getAnnotations\n * @param {Object} options\n * @param {Array} options.annotationX\n * @param {Array} options.annotationColor\n * @param {Array} options.annotationLabel\n * @returns {Array}\n */\nexport const getAnnotations = ({ annotationX, annotationColor, annotationLabel }) =>\n annotationX && annotationX.length\n ? annotationX.map((timestamp, i) => ({\n color: annotationColor && annotationColor[i],\n label: annotationLabel && annotationLabel[i],\n time: timestamp,\n }))\n : [];\n\n/**\n * Truncate the result set to given limit\n * @method truncateData\n * @param {Object} dataSet - dataSources.primary.data\n * @param {Number|String} truncationLimit - options['chart.resultTruncationLimit']\n * @returns {Object}\n */\nexport const truncateData = (dataSet, truncationLimit): Record<string, any[]> => {\n if (!dataSet) {\n return null;\n }\n\n const limit = parseInt(truncationLimit, 10);\n if (!limit || limit <= 0) {\n return dataSet;\n }\n\n const truncatedData: Record<string, Array<string[] | number[]>> = { ...dataSet };\n truncatedData.columns = truncatedData.columns.map(columnData =>\n columnData && Array.isArray(columnData) ? columnData.slice(0, limit) : columnData\n );\n return truncatedData;\n};\n\n/**\n * Helper method to update the option values into the values that SC accepts\n * @method mapToValues\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapToValues = (optionValuesSCMapping: Record<string, any>) => options => {\n const convertedOptions: Record<string, any> = { ...options };\n Object.keys(optionValuesSCMapping).forEach(key => {\n if (has(options, key)) {\n const updatedValue = optionValuesSCMapping[key][options[key]];\n if (!isUndefined(updatedValue)) {\n convertedOptions[key] = updatedValue;\n }\n }\n });\n return convertedOptions;\n};\n\ninterface y2AxisOptions extends ChartOptions {\n y2Fields?: string | string[];\n}\n\n/**\n * Helper method to process options related to y2Fields\n * @method convertY2AxisOptions\n * @param {Object} originalOptions\n * @returns {Object}\n */\nexport const convertY2AxisOptions = ({\n y2Fields,\n ...originalOptions\n}: y2AxisOptions): Record<string, any> => {\n const convertedOptions: Record<string, any> = {\n ...originalOptions,\n };\n if (y2Fields) {\n convertedOptions['axisY2.enabled'] = true;\n convertedOptions['axisY2.fields'] = isArray(y2Fields)\n ? y2Fields.filter(name => name).join(',')\n : y2Fields;\n }\n return convertedOptions;\n};\n\n/**\n * Helper method to format value for overlayFields\n * @method convertOverlayFields\n * @param {Object} originalOptions\n * @returns {Object}\n */\nexport const convertOverlayFields = (originalOptions: ChartOptions): ChartOptions => {\n const convertedOptions: ChartOptions = {\n ...originalOptions,\n };\n const { overlayFields } = originalOptions;\n if (overlayFields) {\n convertedOptions.overlayFields = Array.isArray(overlayFields)\n ? overlayFields\n .filter(field => field)\n .map(field => field.trim())\n .join(',')\n : overlayFields;\n }\n return convertedOptions;\n};\n\n/**\n * checks whether data is multi series data\n * @param {array} data array\n * @return {Boolean}\n */\nexport const isMultiSeriesData = (data: string[] | string[][]): boolean =>\n Array.isArray(data) && Array.isArray(data[0]);\n/**\n * checks whether data is multi series data and returns value as array\n * @param {array} data array\n * @param {*} value to return as array\n * @return {array}\n */\nexport const toArrayForSeries = (data, value): any[] => (isMultiSeriesData(data) ? value : [value]);\n\ninterface ConstructFieldsAndColumnsParams {\n x: string[];\n y: string[] | string[][];\n xField: string;\n yFields: string | string[];\n y2?: string[] | string[][];\n y2Fields?: string | string[];\n}\nexport const constructFieldsAndColumns = ({\n x = [],\n y = [],\n xField,\n yFields,\n y2,\n y2Fields,\n}: ConstructFieldsAndColumnsParams): JsonColumnData => {\n const columns = [x.map(String), ...toArrayForSeries(y, y).map(series => series.map(String))];\n const yFieldsArray = toArrayForSeries(y, yFields);\n const fields = [{ name: xField }, ...yFieldsArray.map(field => ({ name: field }))];\n // splunk-charting requires y2 to be part of columns\n // when y & y2 options are configured with different (mutually exclusive) series\n // y2 columns need to be added to columns\n if (y2Fields) {\n const y2FieldsArray = toArrayForSeries(y2, y2Fields);\n const y2AsArray = toArrayForSeries(y2, y2).map(series => series?.map(String));\n y2FieldsArray.forEach((y2Field, index) => {\n if (yFieldsArray.indexOf(y2Field) === -1 && y2AsArray[index]) {\n fields.push({\n name: y2Field,\n });\n columns.push(y2AsArray[index]);\n }\n });\n }\n return {\n columns,\n fields,\n };\n};\n\n// Note: we are making the assumption that attaching a range.select listener means the user wants to enable search zoom\n// This is because we don't know if the time range tokens being updated by the drilldown is used by the current viz.\n// In the future we are considering using a shared context to pass this information from UDF to Viz.\ninterface OptionsProps {\n events?: string[];\n selectedItemId?: string;\n [key: string]: unknown;\n}\ninterface EventHandler {\n type: string;\n options: OptionsProps;\n}\n\nexport const shouldEnableSearchZoom = (eventHandlers: EventHandler[] = [], xField = '') => {\n const rangeSelectEventHandler = eventHandlers.find(eventHandler =>\n eventHandler.options.events?.includes('range.select')\n );\n // Check if xField is _time. This is how splunk-charting distinguishes a time chart from categorical.\n // Note: search zoom will be buggy if the x axis uses timestamp values but is not _time\n const xAxisIsTime = xField === '_time';\n\n return !!rangeSelectEventHandler && xAxisIsTime;\n};\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,265 +1,158 @@
1
- /*!
2
- * Copyright © 2024 Splunk Inc.
3
- * SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
4
- * in part without a valid written license from Splunk Inc. is PROHIBITED.
5
- */
6
- module.exports =
7
- /******/ (function(modules) { // webpackBootstrap
8
- /******/ // The module cache
9
- /******/ var installedModules = {};
10
- /******/
11
- /******/ // The require function
12
- /******/ function __webpack_require__(moduleId) {
13
- /******/
14
- /******/ // Check if module is in cache
15
- /******/ if(installedModules[moduleId]) {
16
- /******/ return installedModules[moduleId].exports;
17
- /******/ }
18
- /******/ // Create a new module (and put it into the cache)
19
- /******/ var module = installedModules[moduleId] = {
20
- /******/ i: moduleId,
21
- /******/ l: false,
22
- /******/ exports: {}
23
- /******/ };
24
- /******/
25
- /******/ // Execute the module function
26
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
27
- /******/
28
- /******/ // Flag the module as loaded
29
- /******/ module.l = true;
30
- /******/
31
- /******/ // Return the exports of the module
32
- /******/ return module.exports;
33
- /******/ }
34
- /******/
35
- /******/
36
- /******/ // expose the modules object (__webpack_modules__)
37
- /******/ __webpack_require__.m = modules;
38
- /******/
39
- /******/ // expose the module cache
40
- /******/ __webpack_require__.c = installedModules;
41
- /******/
42
- /******/ // define getter function for harmony exports
43
- /******/ __webpack_require__.d = function(exports, name, getter) {
44
- /******/ if(!__webpack_require__.o(exports, name)) {
45
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
46
- /******/ }
47
- /******/ };
48
- /******/
49
- /******/ // define __esModule on exports
50
- /******/ __webpack_require__.r = function(exports) {
51
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
52
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
53
- /******/ }
54
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
55
- /******/ };
56
- /******/
57
- /******/ // create a fake namespace object
58
- /******/ // mode & 1: value is a module id, require it
59
- /******/ // mode & 2: merge all properties of value into the ns
60
- /******/ // mode & 4: return value when already ns object
61
- /******/ // mode & 8|1: behave like require
62
- /******/ __webpack_require__.t = function(value, mode) {
63
- /******/ if(mode & 1) value = __webpack_require__(value);
64
- /******/ if(mode & 8) return value;
65
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
66
- /******/ var ns = Object.create(null);
67
- /******/ __webpack_require__.r(ns);
68
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
69
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
70
- /******/ return ns;
71
- /******/ };
72
- /******/
73
- /******/ // getDefaultExport function for compatibility with non-harmony modules
74
- /******/ __webpack_require__.n = function(module) {
75
- /******/ var getter = module && module.__esModule ?
76
- /******/ function getDefault() { return module['default']; } :
77
- /******/ function getModuleExports() { return module; };
78
- /******/ __webpack_require__.d(getter, 'a', getter);
79
- /******/ return getter;
80
- /******/ };
81
- /******/
82
- /******/ // Object.prototype.hasOwnProperty.call
83
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
84
- /******/
85
- /******/ // __webpack_public_path__
86
- /******/ __webpack_require__.p = "";
87
- /******/
88
- /******/
89
- /******/ // Load entry module and return exports
90
- /******/ return __webpack_require__(__webpack_require__.s = 20);
91
- /******/ })
92
- /************************************************************************/
93
- /******/ ({
94
-
95
- /***/ 0:
96
- /***/ (function(module, exports) {
97
-
98
- module.exports = require("react");
99
-
100
- /***/ }),
101
-
102
- /***/ 20:
103
- /***/ (function(module, exports, __webpack_require__) {
104
-
105
- "use strict";
106
-
107
-
108
- Object.defineProperty(exports, "__esModule", {
109
- value: true
110
- });
111
- exports.convertToDashboardJSON = exports.extractDataFromReactCode = exports.formatCodeStringToObject = exports.extractDocItems = exports.getFormatterClassdesc = void 0;
112
-
113
- var React = __webpack_require__(0);
114
-
115
- var UtilPage_1 = __webpack_require__(21);
116
-
117
- var sharedSelectors = ['getField', 'getType', 'min', 'max'];
118
-
119
- var formatSidebarItemName = function formatSidebarItemName(name, className) {
120
- return sharedSelectors.find(function (sharedSelector) {
121
- return name === sharedSelector;
122
- }) ? "".concat(className, "#").concat(name) : name;
1
+ /* Copyright © 2020 Splunk Inc.
2
+ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
+ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __defProps = Object.defineProperties;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
11
+ var __getProtoOf = Object.getPrototypeOf;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
123
25
  };
124
-
125
- var removePrependedClassName = function removePrependedClassName() {
126
- var longname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
127
- return longname.slice(longname.indexOf('#') + 1);
26
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
27
+ var __export = (target, all) => {
28
+ for (var name in all)
29
+ __defProp(target, name, { get: all[name], enumerable: true });
128
30
  };
129
-
130
- var formatDSLSelectorDocs = function formatDSLSelectorDocs(docs) {
131
- return docs.map(function (doc) {
132
- return Object.assign(Object.assign({}, doc), {
133
- longname: removePrependedClassName(doc.longname)
134
- });
135
- });
31
+ var __copyProps = (to, from, except, desc) => {
32
+ if (from && typeof from === "object" || typeof from === "function") {
33
+ for (let key of __getOwnPropNames(from))
34
+ if (!__hasOwnProp.call(to, key) && key !== except)
35
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
36
+ }
37
+ return to;
136
38
  };
39
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
40
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
41
+ // If the importer is in node compatibility mode or this is not an ESM
42
+ // file that has been converted to a CommonJS file using a Babel-
43
+ // compatible transform (i.e. "__esModule" has not been set), then set
44
+ // "default" to the CommonJS "module.exports" for node compatibility.
45
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
46
+ mod
47
+ ));
48
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
49
+
50
+ // src/common/docUtils.tsx
51
+ var docUtils_exports = {};
52
+ __export(docUtils_exports, {
53
+ convertToDashboardJSON: () => convertToDashboardJSON,
54
+ extractDataFromReactCode: () => extractDataFromReactCode,
55
+ extractDocItems: () => extractDocItems,
56
+ formatCodeStringToObject: () => formatCodeStringToObject,
57
+ getFormatterClassdesc: () => getFormatterClassdesc
58
+ });
59
+ module.exports = __toCommonJS(docUtils_exports);
137
60
 
138
- var getFormatterClassdesc = function getFormatterClassdesc(formatterDocs, name) {
139
- return {
140
- name: name,
141
- markdown: "# ".concat(name, "\n ").concat(formatterDocs.find(function (doc) {
142
- return doc.name === name && doc.kind === 'class';
143
- }).classdesc)
144
- };
61
+ // esm-externals:react
62
+ var react_exports = {};
63
+ __export(react_exports, {
64
+ default: () => react_default
65
+ });
66
+ var defaultImport = __toESM(require("react"));
67
+ __reExport(react_exports, require("react"));
68
+ var react_default = "default" in defaultImport ? defaultImport.default : defaultImport;
69
+
70
+ // esm-externals:@splunk/react-docs/UtilPage
71
+ var UtilPage_exports = {};
72
+ __export(UtilPage_exports, {
73
+ default: () => UtilPage_default
74
+ });
75
+ var defaultImport2 = __toESM(require("@splunk/react-docs/UtilPage"));
76
+ __reExport(UtilPage_exports, require("@splunk/react-docs/UtilPage"));
77
+ var UtilPage_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
78
+
79
+ // src/common/docUtils.tsx
80
+ var sharedSelectors = ["getField", "getType", "min", "max"];
81
+ var formatSidebarItemName = (name, className) => {
82
+ return sharedSelectors.find((sharedSelector) => name === sharedSelector) ? `${className}#${name}` : name;
145
83
  };
146
-
147
- exports.getFormatterClassdesc = getFormatterClassdesc;
148
-
149
- var extractDocItems = function extractDocItems(docs, className) {
150
- var classHeaderDoc = docs[0];
151
- var fileDoc = docs[docs.length - 1];
152
- var filteredDocs = formatDSLSelectorDocs(docs).filter(function (_ref) {
153
- var access = _ref.access,
154
- comment = _ref.comment;
155
- return access === 'public' && comment;
156
- });
157
- return filteredDocs.map(function (doc) {
158
- return {
159
- name: formatSidebarItemName(doc.name, className),
160
- component: function UtilDoc() {
161
- // named function so linter doesnt raise react/display-name error
162
- return React.createElement(UtilPage_1.default, {
163
- title: "".concat(className, "#").concat(doc.name),
84
+ var removePrependedClassName = (longname = "") => longname.slice(longname.indexOf("#") + 1);
85
+ var formatDSLSelectorDocs = (docs) => docs.map((doc) => __spreadProps(__spreadValues({}, doc), {
86
+ longname: removePrependedClassName(doc.longname)
87
+ }));
88
+ var getFormatterClassdesc = (formatterDocs, name) => ({
89
+ name,
90
+ markdown: `# ${name}
91
+ ${formatterDocs.find((doc) => doc.name === name && doc.kind === "class").classdesc}`
92
+ });
93
+ var extractDocItems = (docs, className) => {
94
+ const classHeaderDoc = docs[0];
95
+ const fileDoc = docs[docs.length - 1];
96
+ const filteredDocs = formatDSLSelectorDocs(docs).filter(
97
+ ({ access, comment }) => access === "public" && comment
98
+ );
99
+ return filteredDocs.map((doc) => ({
100
+ name: formatSidebarItemName(doc.name, className),
101
+ component: function UtilDoc() {
102
+ return /* @__PURE__ */ react_exports.createElement(
103
+ UtilPage_default,
104
+ {
105
+ title: `${className}#${doc.name}`,
164
106
  status: 1,
165
107
  docs: [classHeaderDoc, doc, fileDoc]
166
- });
167
- }
168
- };
169
- }).sort(function (a, b) {
170
- return a.name.localeCompare(b.name);
171
- });
108
+ }
109
+ );
110
+ }
111
+ })).sort((a, b) => a.name.localeCompare(b.name));
172
112
  };
173
-
174
- exports.extractDocItems = extractDocItems;
175
-
176
- var formatCodeStringToObject = function formatCodeStringToObject(codeString, regexMatch) {
177
- var match = regexMatch.exec(codeString);
113
+ var formatCodeStringToObject = (codeString, regexMatch) => {
114
+ const match = regexMatch.exec(codeString);
178
115
  if (!match) return null;
179
- var stringToParse = "{".concat(match[1], "}"); // remove trailing commas
180
-
181
- var removedCommas = stringToParse.replace(/,(?!\s*?[-{["'\w])/g, ''); // convert double quotes (which only occur inside strings) to back quotes
182
-
183
- var backQuotes = removedCommas.replace(/"/g, '`'); // replace single quotes with double quotes
184
-
185
- var doubleQuotes = backQuotes.replace(/'/g, '"'); // replace back quotes with single quotes
186
-
187
- var singleQuotes = doubleQuotes.replace(/`/g, "'"); // add quotes around keys
188
-
189
- var quotesAroundKeys = singleQuotes.replace(/\b(\w+)\s*:(?=\s)/g, '"$1":');
190
- var retval = null;
191
-
116
+ const stringToParse = `{${match[1]}}`;
117
+ const removedCommas = stringToParse.replace(/,(?!\s*?[-{["'\w])/g, "");
118
+ const backQuotes = removedCommas.replace(/"/g, "`");
119
+ const doubleQuotes = backQuotes.replace(/'/g, '"');
120
+ const singleQuotes = doubleQuotes.replace(/`/g, "'");
121
+ const quotesAroundKeys = singleQuotes.replace(/\b(\w+)\s*:(?=\s)/g, '"$1":');
122
+ let retval = null;
192
123
  try {
193
124
  retval = JSON.parse(quotesAroundKeys);
194
125
  } catch (e) {
195
- // eslint-disable-next-line no-console
196
126
  console.error(e);
197
127
  }
198
-
199
128
  return retval;
200
129
  };
201
-
202
- exports.formatCodeStringToObject = formatCodeStringToObject;
203
-
204
- var extractDataFromReactCode = function extractDataFromReactCode(codeString) {
130
+ var extractDataFromReactCode = (codeString) => {
205
131
  var _a;
206
-
207
- var primaryRegex = /dataSources={{([\s\S]*?primary:[\s\S]*?)}}/;
208
-
209
- var _ref2 = (_a = (0, exports.formatCodeStringToObject)(codeString, primaryRegex)) !== null && _a !== void 0 ? _a : {},
210
- primary = _ref2.primary;
211
-
212
- var optionsRegex = /options={{([\s\S]*?)}}/;
213
- var options = (0, exports.formatCodeStringToObject)(codeString, optionsRegex);
214
- var contextRegex = /context={{([\s\S]*?)}}/;
215
- var context = (0, exports.formatCodeStringToObject)(codeString, contextRegex);
216
- return {
217
- primary: primary,
218
- options: options,
219
- context: context
220
- };
132
+ const primaryRegex = /dataSources={{([\s\S]*?primary:[\s\S]*?)}}/;
133
+ const { primary } = (_a = formatCodeStringToObject(codeString, primaryRegex)) != null ? _a : {};
134
+ const optionsRegex = /options={{([\s\S]*?)}}/;
135
+ const options = formatCodeStringToObject(codeString, optionsRegex);
136
+ const contextRegex = /context={{([\s\S]*?)}}/;
137
+ const context = formatCodeStringToObject(codeString, contextRegex);
138
+ return { primary, options, context };
221
139
  };
222
-
223
- exports.extractDataFromReactCode = extractDataFromReactCode; // Takes a stringified react viz example and a viz type
224
- // Returns a dashboard definition object.
225
- // e.g. codeString: '<Area dataSources={{}} options={{}} />'
226
- // type: 'splunk.area'
227
-
228
- var convertToDashboardJSON = function convertToDashboardJSON(codeString, type) {
229
- var _ref3 = (0, exports.extractDataFromReactCode)(codeString),
230
- options = _ref3.options,
231
- primary = _ref3.primary,
232
- context = _ref3.context;
233
-
234
- return Object.assign(Object.assign({
140
+ var convertToDashboardJSON = (codeString, type) => {
141
+ const { options, primary, context } = extractDataFromReactCode(codeString);
142
+ return __spreadProps(__spreadValues({
235
143
  visualizations: {
236
- test_viz: Object.assign(Object.assign(Object.assign({
237
- type: type
238
- }, options ? {
239
- options: options
240
- } : {}), primary ? {
241
- dataSources: {
242
- primary: 'primary'
243
- }
244
- } : {}), context ? {
245
- context: context
246
- } : {})
144
+ test_viz: __spreadValues(__spreadValues(__spreadValues({
145
+ type
146
+ }, options ? { options } : {}), primary ? { dataSources: { primary: "primary" } } : {}), context ? { context } : {})
247
147
  }
248
- }, primary ? {
249
- dataSources: {
250
- primary: {
251
- type: 'ds.test',
252
- options: primary
253
- }
254
- }
255
- } : {}), {
148
+ }, primary ? { dataSources: { primary: { type: "ds.test", options: primary } } } : {}), {
256
149
  defaults: {
257
150
  dataSources: {
258
151
  global: {
259
152
  options: {
260
153
  queryParameters: {
261
- latest: '$global_time.latest$',
262
- earliest: '$global_time.earliest$'
154
+ latest: "$global_time.latest$",
155
+ earliest: "$global_time.earliest$"
263
156
  }
264
157
  }
265
158
  }
@@ -267,42 +160,31 @@ var convertToDashboardJSON = function convertToDashboardJSON(codeString, type) {
267
160
  },
268
161
  inputs: {
269
162
  input_global_trp: {
270
- type: 'input.timerange',
163
+ type: "input.timerange",
271
164
  options: {
272
- token: 'global_time',
273
- defaultValue: '-24h@h,now'
165
+ token: "global_time",
166
+ defaultValue: "-24h@h,now"
274
167
  },
275
- title: 'Global Time Range'
168
+ title: "Global Time Range"
276
169
  }
277
170
  },
278
171
  layout: {
279
- type: 'absolute',
172
+ type: "absolute",
280
173
  options: {},
281
- structure: [{
282
- item: 'test_viz',
283
- type: 'block',
284
- position: {
285
- x: 0,
286
- y: 0,
287
- w: 800,
288
- h: 500
174
+ structure: [
175
+ {
176
+ item: "test_viz",
177
+ type: "block",
178
+ position: {
179
+ x: 0,
180
+ y: 0,
181
+ w: 800,
182
+ h: 500
183
+ }
289
184
  }
290
- }],
291
- globalInputs: ['input_global_trp']
185
+ ],
186
+ globalInputs: ["input_global_trp"]
292
187
  }
293
188
  });
294
189
  };
295
-
296
- exports.convertToDashboardJSON = convertToDashboardJSON;
297
-
298
- /***/ }),
299
-
300
- /***/ 21:
301
- /***/ (function(module, exports) {
302
-
303
- module.exports = require("@splunk/react-docs/UtilPage");
304
-
305
- /***/ })
306
-
307
- /******/ });
308
- //# sourceMappingURL=docUtils.js.map
190
+ //# sourceMappingURL=docUtils.js.map
@@ -1 +1,7 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///./src/common/docUtils.tsx","webpack:///external \"@splunk/react-docs/UtilPage\""],"names":[],"mappings":"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","file":"docUtils.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 20);\n","module.exports = require(\"react\");","import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = ['getField', 'getType', 'min', 'max'];\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.find(sharedSelector => name === sharedSelector) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs[docs.length - 1];\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return (\n <UtilPage\n title={`${className}#${doc.name}`}\n status={1}\n docs={[classHeaderDoc, doc, fileDoc]}\n />\n );\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replace(/\"/g, '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replace(/'/g, '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replace(/`/g, \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary ? { dataSources: { primary: { type: 'ds.test', options: primary } } } : {}),\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","module.exports = require(\"@splunk/react-docs/UtilPage\");"],"sourceRoot":""}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/common/docUtils.tsx", "esm-externals:react", "esm-externals:@splunk/react-docs/UtilPage"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = ['getField', 'getType', 'min', 'max'];\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.find(sharedSelector => name === sharedSelector) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs[docs.length - 1];\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return (\n <UtilPage\n title={`${className}#${doc.name}`}\n status={1}\n docs={[classHeaderDoc, doc, fileDoc]}\n />\n );\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replace(/\"/g, '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replace(/'/g, '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replace(/`/g, \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary ? { dataSources: { primary: { type: 'ds.test', options: primary } } } : {}),\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", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\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"],
5
+ "mappings": "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",
6
+ "names": ["defaultImport"]
7
+ }