@splunk/visualizations 26.0.0 → 26.1.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 (152) hide show
  1. package/Area.config.js +103 -19
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +646 -243
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +105 -21
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +653 -237
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +95 -21
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +635 -229
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +66 -15
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +589 -211
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +104 -19
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +666 -239
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +83 -18
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +444 -156
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +101 -19
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +792 -322
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +97 -28
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +786 -390
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +63 -19
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +439 -164
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +107 -23
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +841 -456
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +73 -23
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +653 -230
  44. package/LinkGraph.js.map +1 -1
  45. package/MIGRATION.md +1082 -0
  46. package/Map.config.js +244 -99
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +1223 -612
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +71 -21
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +477 -202
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +80 -22
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +819 -418
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +73 -19
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +870 -491
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +76 -23
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +643 -233
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +82 -30
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +863 -387
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +86 -20
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +449 -159
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +85 -23
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +895 -349
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +97 -23
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +639 -234
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +95 -25
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +1198 -656
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +287 -226
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +93 -23
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +991 -522
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +100 -27
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +1185 -624
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +127 -68
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +74 -21
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +827 -329
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +152 -69
  103. package/common/Charting.js.map +1 -1
  104. package/common/ChartingApi.js +25 -14
  105. package/common/ChartingApi.js.map +1 -1
  106. package/common/DocExampleWithVizSandbox.js +530 -0
  107. package/common/DocExampleWithVizSandbox.js.map +1 -0
  108. package/common/EventsDoc.js +139 -104
  109. package/common/EventsDoc.js.map +1 -1
  110. package/common/GaugeMajorTicks.js +79 -69
  111. package/common/GaugeMajorTicks.js.map +1 -1
  112. package/common/GaugeValueMarker.js +54 -45
  113. package/common/GaugeValueMarker.js.map +1 -1
  114. package/common/OptionsDoc.js +178 -87
  115. package/common/OptionsDoc.js.map +1 -1
  116. package/common/OverviewDoc.js +530 -68
  117. package/common/OverviewDoc.js.map +1 -1
  118. package/common/SplunkVisualization.js +47 -20
  119. package/common/SplunkVisualization.js.map +1 -1
  120. package/common/SplunkVisualizationApi.js +15 -9
  121. package/common/SplunkVisualizationApi.js.map +1 -1
  122. package/common/ThemesDoc.js +57 -44
  123. package/common/ThemesDoc.js.map +1 -1
  124. package/common/chartingUtils.js +52 -20
  125. package/common/chartingUtils.js.map +1 -1
  126. package/common/docUtils.js +139 -7
  127. package/common/docUtils.js.map +1 -1
  128. package/common/gaugeUtils.js +185 -102
  129. package/common/gaugeUtils.js.map +1 -1
  130. package/common/shapeUtils.js +28 -16
  131. package/common/shapeUtils.js.map +1 -1
  132. package/common/utils/configUtils.js +50 -15
  133. package/common/utils/configUtils.js.map +1 -1
  134. package/common/utils/dataUtils.js +8 -3
  135. package/common/utils/dataUtils.js.map +1 -1
  136. package/common/utils/hocUtils.js +4 -2
  137. package/common/utils/hocUtils.js.map +1 -1
  138. package/common/utils/layoutUtils.js +2 -1
  139. package/common/utils/layoutUtils.js.map +1 -1
  140. package/common/utils/mapUtils.js +288 -128
  141. package/common/utils/mapUtils.js.map +1 -1
  142. package/common/utils/singleValueUtils.js +242 -197
  143. package/common/utils/singleValueUtils.js.map +1 -1
  144. package/common/utils/testHelper.js +10 -1
  145. package/common/utils/testHelper.js.map +1 -1
  146. package/common/utils/trellisUtils.js +62 -1
  147. package/common/utils/trellisUtils.js.map +1 -1
  148. package/common/utils/urlUtils.js +3 -1
  149. package/common/utils/urlUtils.js.map +1 -1
  150. package/common/withDashboardViz.js +389 -192
  151. package/common/withDashboardViz.js.map +1 -1
  152. package/package.json +18 -26
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"lodash\"","webpack:///./src/common/chartingUtils.ts"],"names":["lodash_1","require","getAnnotations","_ref","annotationX","annotationColor","annotationLabel","length","map","timestamp","i","color","label","time","exports","truncateData","dataSet","truncationLimit","limit","parseInt","truncatedData","Object","assign","columns","columnData","Array","isArray","slice","mapToValues","optionValuesSCMapping","options","convertedOptions","keys","forEach","key","has","updatedValue","isUndefined","convertY2AxisOptions","_a","y2Fields","originalOptions","__rest","filter","name","join","convertOverlayFields","overlayFields","field","trim","isMultiSeriesData","data","toArrayForSeries","value","constructFieldsAndColumns","_ref2","_ref2$x","x","_ref2$y","y","xField","yFields","y2","String","concat","_toConsumableArray","series","yFieldsArray","fields","y2FieldsArray","y2AsArray","y2Field","index","indexOf","push"],"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 = 67);\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"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","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 = 77);\n","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","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"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Copyright © 2018 Splunk Inc.
2
+ * Copyright © 2024 Splunk Inc.
3
3
  * SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
4
4
  * in part without a valid written license from Splunk Inc. is PROHIBITED.
5
5
  */
@@ -87,7 +87,7 @@ module.exports =
87
87
  /******/
88
88
  /******/
89
89
  /******/ // Load entry module and return exports
90
- /******/ return __webpack_require__(__webpack_require__.s = 68);
90
+ /******/ return __webpack_require__(__webpack_require__.s = 17);
91
91
  /******/ })
92
92
  /************************************************************************/
93
93
  /******/ ({
@@ -99,7 +99,7 @@ module.exports = require("react");
99
99
 
100
100
  /***/ }),
101
101
 
102
- /***/ 68:
102
+ /***/ 17:
103
103
  /***/ (function(module, exports, __webpack_require__) {
104
104
 
105
105
  "use strict";
@@ -108,19 +108,25 @@ module.exports = require("react");
108
108
  Object.defineProperty(exports, "__esModule", {
109
109
  value: true
110
110
  });
111
- exports.extractDocItems = exports.getFormatterClassdesc = void 0;
111
+ exports.convertToDashboardJSON = exports.extractDataFromReactCode = exports.formatCodeStringToObject = exports.extractDocItems = exports.getFormatterClassdesc = void 0;
112
+
112
113
  var React = __webpack_require__(0);
113
- var UtilPage_1 = __webpack_require__(69);
114
+
115
+ var UtilPage_1 = __webpack_require__(18);
116
+
114
117
  var sharedSelectors = ['getField', 'getType', 'min', 'max'];
118
+
115
119
  var formatSidebarItemName = function formatSidebarItemName(name, className) {
116
120
  return sharedSelectors.find(function (sharedSelector) {
117
121
  return name === sharedSelector;
118
122
  }) ? "".concat(className, "#").concat(name) : name;
119
123
  };
124
+
120
125
  var removePrependedClassName = function removePrependedClassName() {
121
126
  var longname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
122
127
  return longname.slice(longname.indexOf('#') + 1);
123
128
  };
129
+
124
130
  var formatDSLSelectorDocs = function formatDSLSelectorDocs(docs) {
125
131
  return docs.map(function (doc) {
126
132
  return Object.assign(Object.assign({}, doc), {
@@ -128,6 +134,7 @@ var formatDSLSelectorDocs = function formatDSLSelectorDocs(docs) {
128
134
  });
129
135
  });
130
136
  };
137
+
131
138
  var getFormatterClassdesc = function getFormatterClassdesc(formatterDocs, name) {
132
139
  return {
133
140
  name: name,
@@ -136,13 +143,15 @@ var getFormatterClassdesc = function getFormatterClassdesc(formatterDocs, name)
136
143
  }).classdesc)
137
144
  };
138
145
  };
146
+
139
147
  exports.getFormatterClassdesc = getFormatterClassdesc;
148
+
140
149
  var extractDocItems = function extractDocItems(docs, className) {
141
150
  var classHeaderDoc = docs[0];
142
151
  var fileDoc = docs[docs.length - 1];
143
152
  var filteredDocs = formatDSLSelectorDocs(docs).filter(function (_ref) {
144
153
  var access = _ref.access,
145
- comment = _ref.comment;
154
+ comment = _ref.comment;
146
155
  return access === 'public' && comment;
147
156
  });
148
157
  return filteredDocs.map(function (doc) {
@@ -161,11 +170,134 @@ var extractDocItems = function extractDocItems(docs, className) {
161
170
  return a.name.localeCompare(b.name);
162
171
  });
163
172
  };
173
+
164
174
  exports.extractDocItems = extractDocItems;
165
175
 
176
+ var formatCodeStringToObject = function formatCodeStringToObject(codeString, regexMatch) {
177
+ var match = regexMatch.exec(codeString);
178
+ 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
+
192
+ try {
193
+ retval = JSON.parse(quotesAroundKeys);
194
+ } catch (e) {
195
+ // eslint-disable-next-line no-console
196
+ console.error(e);
197
+ }
198
+
199
+ return retval;
200
+ };
201
+
202
+ exports.formatCodeStringToObject = formatCodeStringToObject;
203
+
204
+ var extractDataFromReactCode = function extractDataFromReactCode(codeString) {
205
+ 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
+ };
221
+ };
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({
235
+ 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
+ } : {})
247
+ }
248
+ }, primary ? {
249
+ dataSources: {
250
+ primary: {
251
+ type: 'ds.test',
252
+ options: primary
253
+ }
254
+ }
255
+ } : {}), {
256
+ defaults: {
257
+ dataSources: {
258
+ global: {
259
+ options: {
260
+ queryParameters: {
261
+ latest: '$global_time.latest$',
262
+ earliest: '$global_time.earliest$'
263
+ }
264
+ }
265
+ }
266
+ }
267
+ },
268
+ inputs: {
269
+ input_global_trp: {
270
+ type: 'input.timerange',
271
+ options: {
272
+ token: 'global_time',
273
+ defaultValue: '-24h@h,now'
274
+ },
275
+ title: 'Global Time Range'
276
+ }
277
+ },
278
+ layout: {
279
+ type: 'absolute',
280
+ options: {},
281
+ structure: [{
282
+ item: 'test_viz',
283
+ type: 'block',
284
+ position: {
285
+ x: 0,
286
+ y: 0,
287
+ w: 800,
288
+ h: 500
289
+ }
290
+ }],
291
+ globalInputs: ['input_global_trp']
292
+ }
293
+ });
294
+ };
295
+
296
+ exports.convertToDashboardJSON = convertToDashboardJSON;
297
+
166
298
  /***/ }),
167
299
 
168
- /***/ 69:
300
+ /***/ 18:
169
301
  /***/ (function(module, exports) {
170
302
 
171
303
  module.exports = require("@splunk/react-docs/UtilPage");
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///./src/common/docUtils.tsx","webpack:///external \"@splunk/react-docs/UtilPage\""],"names":["React","require","UtilPage_1","sharedSelectors","formatSidebarItemName","name","className","find","sharedSelector","concat","removePrependedClassName","longname","arguments","length","undefined","slice","indexOf","formatDSLSelectorDocs","docs","map","doc","Object","assign","getFormatterClassdesc","formatterDocs","markdown","kind","classdesc","exports","extractDocItems","classHeaderDoc","fileDoc","filteredDocs","filter","_ref","access","comment","component","UtilDoc","createElement","default","title","status","sort","a","b","localeCompare"],"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 = 68);\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","module.exports = require(\"@splunk/react-docs/UtilPage\");"],"sourceRoot":""}
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 = 17);\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":""}