@splunk/visualizations 26.1.1 → 26.2.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.
- package/Area.config.js +2 -1
- package/Area.config.js.map +1 -1
- package/Area.js +1562 -433
- package/Area.js.map +1 -1
- package/Bar.config.js +1 -0
- package/Bar.config.js.map +1 -1
- package/Bar.js +1555 -430
- package/Bar.js.map +1 -1
- package/Bubble.config.js +1 -0
- package/Bubble.config.js.map +1 -1
- package/Bubble.js +1580 -455
- package/Bubble.js.map +1 -1
- package/ChoroplethSvg.config.js +1 -0
- package/ChoroplethSvg.config.js.map +1 -1
- package/ChoroplethSvg.js +1418 -351
- package/ChoroplethSvg.js.map +1 -1
- package/Column.config.js +2 -1
- package/Column.config.js.map +1 -1
- package/Column.js +1564 -435
- package/Column.js.map +1 -1
- package/Ellipse.config.js +1 -0
- package/Ellipse.config.js.map +1 -1
- package/Ellipse.js +1342 -297
- package/Ellipse.js.map +1 -1
- package/Events.config.js +4 -0
- package/Events.config.js.map +1 -1
- package/Events.js +1503 -489
- package/Events.js.map +1 -1
- package/FEATUREFLAGS.md +3 -0
- package/FillerGauge.config.js +1 -0
- package/FillerGauge.config.js.map +1 -1
- package/FillerGauge.js +1406 -345
- package/FillerGauge.js.map +1 -1
- package/Image.config.js +1 -0
- package/Image.config.js.map +1 -1
- package/Image.js +2355 -1183
- package/Image.js.map +1 -1
- package/Line.config.js +2 -1
- package/Line.config.js.map +1 -1
- package/Line.js +1562 -433
- package/Line.js.map +1 -1
- package/LinkGraph.config.js +1 -0
- package/LinkGraph.config.js.map +1 -1
- package/LinkGraph.js +2013 -968
- package/LinkGraph.js.map +1 -1
- package/Map.config.js +1 -0
- package/Map.config.js.map +1 -1
- package/Map.js +2556 -1527
- package/Map.js.map +1 -1
- package/Markdown.config.js +1 -0
- package/Markdown.config.js.map +1 -1
- package/Markdown.js +1952 -883
- package/Markdown.js.map +1 -1
- package/MarkerGauge.config.js +1 -0
- package/MarkerGauge.config.js.map +1 -1
- package/MarkerGauge.js +4049 -2965
- package/MarkerGauge.js.map +1 -1
- package/ParallelCoordinates.config.js +1 -0
- package/ParallelCoordinates.config.js.map +1 -1
- package/ParallelCoordinates.js +3286 -2215
- package/ParallelCoordinates.js.map +1 -1
- package/Pie.config.js +1 -0
- package/Pie.config.js.map +1 -1
- package/Pie.js +2187 -1036
- package/Pie.js.map +1 -1
- package/Punchcard.config.js +1 -0
- package/Punchcard.config.js.map +1 -1
- package/Punchcard.js +3397 -2299
- package/Punchcard.js.map +1 -1
- package/Rectangle.config.js +1 -0
- package/Rectangle.config.js.map +1 -1
- package/Rectangle.js +2181 -1112
- package/Rectangle.js.map +1 -1
- package/Sankey.config.js +1 -0
- package/Sankey.config.js.map +1 -1
- package/Sankey.js +3275 -2199
- package/Sankey.js.map +1 -1
- package/Scatter.config.js +1 -0
- package/Scatter.config.js.map +1 -1
- package/Scatter.js +3551 -2400
- package/Scatter.js.map +1 -1
- package/SingleValue.config.js +27 -0
- package/SingleValue.config.js.map +1 -1
- package/SingleValue.js +5551 -4397
- package/SingleValue.js.map +1 -1
- package/SingleValueBasic.js +1227 -1209
- package/SingleValueBasic.js.map +1 -1
- package/SingleValueIcon.config.js +27 -0
- package/SingleValueIcon.config.js.map +1 -1
- package/SingleValueIcon.js +2850 -1696
- package/SingleValueIcon.js.map +1 -1
- package/SingleValueRadial.config.js +1 -0
- package/SingleValueRadial.config.js.map +1 -1
- package/SingleValueRadial.js +6334 -5215
- package/SingleValueRadial.js.map +1 -1
- package/SparkLine.js +96 -96
- package/SparkLine.js.map +1 -1
- package/Table.config.js +172 -7
- package/Table.config.js.map +1 -1
- package/Table.js +3517 -2212
- package/Table.js.map +1 -1
- package/common/Charting.js +1009 -82
- package/common/Charting.js.map +1 -1
- package/common/ChartingApi.js +4 -4
- package/common/ChartingApi.js.map +1 -1
- package/common/DocExampleWithVizSandbox.js +54 -57
- package/common/DocExampleWithVizSandbox.js.map +1 -1
- package/common/EventsDoc.js +40 -40
- package/common/EventsDoc.js.map +1 -1
- package/common/GaugeMajorTicks.js +15 -13
- package/common/GaugeMajorTicks.js.map +1 -1
- package/common/GaugeValueMarker.js +12 -12
- package/common/GaugeValueMarker.js.map +1 -1
- package/common/OptionsDoc.js +34 -34
- package/common/OptionsDoc.js.map +1 -1
- package/common/OverviewDoc.js +124 -103
- package/common/OverviewDoc.js.map +1 -1
- package/common/SplunkVisualization.js +49 -49
- package/common/SplunkVisualization.js.map +1 -1
- package/common/SplunkVisualizationApi.js +4 -4
- package/common/SplunkVisualizationApi.js.map +1 -1
- package/common/ThemesDoc.js +31 -31
- package/common/ThemesDoc.js.map +1 -1
- package/common/chartingUtils.js +24 -8
- package/common/chartingUtils.js.map +1 -1
- package/common/docUtils.js +4 -4
- package/common/docUtils.js.map +1 -1
- package/common/gaugeUtils.js +16 -16
- package/common/gaugeUtils.js.map +1 -1
- package/common/shapeUtils.js +36 -36
- package/common/shapeUtils.js.map +1 -1
- package/common/utils/configUtils.js +48 -47
- package/common/utils/configUtils.js.map +1 -1
- package/common/utils/dataUtils.js +832 -6
- package/common/utils/dataUtils.js.map +1 -1
- package/common/utils/featureFlagUtils.js +139 -0
- package/common/utils/featureFlagUtils.js.map +1 -0
- package/common/utils/hocUtils.js +2 -2
- package/common/utils/hocUtils.js.map +1 -1
- package/common/utils/layoutUtils.js +2 -2
- package/common/utils/layoutUtils.js.map +1 -1
- package/common/utils/mapUtils.js +77 -54
- package/common/utils/mapUtils.js.map +1 -1
- package/common/utils/singleValueUtils.js +28 -19
- package/common/utils/singleValueUtils.js.map +1 -1
- package/common/utils/testHelper.js +10 -10
- package/common/utils/testHelper.js.map +1 -1
- package/common/utils/trellisUtils.js +6 -6
- package/common/utils/trellisUtils.js.map +1 -1
- package/common/utils/urlUtils.js +2 -2
- package/common/utils/urlUtils.js.map +1 -1
- package/common/withDashboardViz.js +1313 -235
- package/common/withDashboardViz.js.map +1 -1
- package/package.json +13 -12
- package/__mocks__/fileMock.js +0 -2
- package/__mocks__/styleMock.js +0 -2
- package/babel.config.js +0 -11
- package/jest.config.js +0 -8
- package/loki.config.js +0 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///external \"styled-components\"","webpack:///./src/common/GaugeValueMarker.jsx"],"names":["MARKER_THICKNESS","MARKER_INNER_LENGTH","MARKER_LABEL_WIDTH","MARKER_LABEL_HEIGHT","RADIUS","DELTA_LENGTH","ValueMarkerRect","styled","props","ValueMarkerLabelRect","ValueMarkerLabel","positionValueMarkerRect","x","y","orientation","valueMarkerRectLength","alignCenter","hLength","vLength","markerStartX","markerStartY","innerHLength","innerVLength","innerStartX","innerStartY","positionLabel","length","labelRectX","labelRectY","labelX","labelY","ValueMarker","min","max","value","showValue","usePercentageValue","valueMarkerFillColor","valueMarkerLabelFillColor","formatNumber","useThousandSeparators","useTrendUnits","T","bool"],"mappings":"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","file":"GaugeValueMarker.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 = 62);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","module.exports = require(\"styled-components\");","import React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { formatNumber } from '@splunk/visualizations-shared/numberUtils';\n\nconst MARKER_THICKNESS = 15;\nconst MARKER_INNER_LENGTH = 30;\n\nconst MARKER_LABEL_WIDTH = 60;\nconst MARKER_LABEL_HEIGHT = 25;\nconst RADIUS = 2;\nconst DELTA_LENGTH = 12;\n\nconst ValueMarkerRect = styled.path`\n stroke-width: 2px;\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabelRect = styled.rect`\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabel = styled.text`\n fill: ${props => props.valueMarkerLabelFillColor};\n font-size: 14px;\n font-family: Splunk Platform Sans, sans-serif;\n line-height: 16px;\n text-anchor: middle;\n text-align: center;\n dominant-baseline: middle;\n`;\n\n/**\n * calculate the path of Value Marker shape\n * @method positionValueMarkerRect\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {String} input.orientation\n * @param {Number} input.valueMarkerRectLength\n * @return {String} d containing a series of path commands that define the path to be\n */\nexport const positionValueMarkerRect = ({\n x,\n y,\n orientation,\n valueMarkerRectLength,\n alignCenter = false,\n}) => {\n let hLength = MARKER_THICKNESS;\n let vLength = valueMarkerRectLength;\n let markerStartX = alignCenter ? x - MARKER_THICKNESS / 2 : x - MARKER_THICKNESS;\n let markerStartY = y;\n\n let innerHLength = hLength / 3;\n let innerVLength = MARKER_INNER_LENGTH;\n let innerStartX = markerStartX + innerHLength;\n let innerStartY = markerStartY + 7;\n\n if (orientation === 'vertical') {\n hLength = valueMarkerRectLength;\n vLength = MARKER_THICKNESS;\n markerStartX = x;\n markerStartY = alignCenter ? y - MARKER_THICKNESS / 2 : y;\n\n innerHLength = MARKER_INNER_LENGTH;\n innerVLength = vLength / 3;\n innerStartX = markerStartX + 7;\n innerStartY = markerStartY + innerVLength;\n }\n\n return (\n `M${markerStartX},${markerStartY}h${hLength}a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${RADIUS}v${\n vLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${RADIUS}h${-hLength}a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${-RADIUS}v${\n 2 * RADIUS - vLength\n }a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${-RADIUS}z` +\n `M${innerStartX},${innerStartY}v${\n innerVLength - RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${RADIUS}h${\n innerHLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${-RADIUS}v${\n RADIUS - innerVLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${-RADIUS}h${\n 2 * RADIUS - innerHLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${RADIUS}z`\n );\n};\n\n/**\n * calculate the position of value marker label\n * @method positionLabel\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {Number} input.length gauge thickness\n * @param {String} input.orientation\n * @return {Object} positions\n * @return {Number} positions.labelRectX x of value marker label rect\n * @return {Number} positions.labelRectY y of value marker label rect\n * @return {Number} positions.labelX x of value marker label text\n * @return {Number} positions.labelY y of value marker label text\n */\nexport const positionLabel = ({ x, y, length, orientation, alignCenter = false }) => {\n // for horizontal view\n let labelRectX = alignCenter\n ? x - MARKER_LABEL_WIDTH / 2\n : x - MARKER_THICKNESS / 2 - MARKER_LABEL_WIDTH / 2;\n let labelRectY = y + length;\n if (orientation === 'vertical') {\n labelRectX = x + length;\n labelRectY = alignCenter\n ? y - MARKER_LABEL_HEIGHT / 2\n : y - (MARKER_LABEL_HEIGHT - MARKER_THICKNESS) / 2;\n }\n const labelX = labelRectX + MARKER_LABEL_WIDTH / 2;\n const labelY = labelRectY + MARKER_LABEL_HEIGHT / 2;\n return { labelRectX, labelRectY, labelX, labelY };\n};\n\nconst ValueMarker = ({ ...props }) => {\n const {\n x,\n y,\n length,\n min,\n max,\n value,\n orientation,\n showValue,\n usePercentageValue,\n valueMarkerFillColor,\n valueMarkerLabelFillColor,\n alignCenter,\n } = props;\n\n const valueMarkerRectLength = length + DELTA_LENGTH;\n const { labelRectX, labelRectY, labelX, labelY } = positionLabel({\n x,\n y,\n length,\n orientation,\n alignCenter,\n });\n\n return (\n <g>\n <ValueMarkerRect\n data-test=\"value-marker-rect\"\n d={positionValueMarkerRect({ x, y, orientation, valueMarkerRectLength, alignCenter })}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n {showValue && (\n <g>\n <ValueMarkerLabelRect\n data-test=\"value-marker-label-rect\"\n x={labelRectX}\n y={labelRectY}\n width={MARKER_LABEL_WIDTH}\n height={MARKER_LABEL_HEIGHT}\n rx={RADIUS}\n ry={RADIUS}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n <ValueMarkerLabel\n data-test=\"value-marker-label\"\n x={labelX}\n y={labelY}\n valueMarkerLabelFillColor={valueMarkerLabelFillColor}\n >\n {usePercentageValue\n ? `${((value / (max - min)) * 100).toFixed(2)}%`\n : formatNumber(value, 0, {\n useThousandSeparators: true,\n useTrendUnits: true,\n })}\n </ValueMarkerLabel>\n </g>\n )}\n </g>\n );\n};\n\nValueMarker.propTypes = {\n x: T.number,\n y: T.number,\n length: T.number,\n min: T.number,\n max: T.number,\n value: T.number,\n orientation: T.string,\n showValue: T.bool,\n usePercentageValue: T.bool,\n valueMarkerFillColor: T.string,\n valueMarkerLabelFillColor: T.string,\n alignCenter: T.bool,\n};\n\nValueMarker.defaultProps = {\n min: 0,\n max: 100,\n orientation: 'horizontal',\n showValue: true,\n usePercentageValue: false,\n alignCenter: false,\n};\n\nexport default ValueMarker;\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"styled-components\"","webpack:///./src/common/GaugeValueMarker.jsx","webpack:///external \"@splunk/visualizations-shared/numberUtils\""],"names":["MARKER_THICKNESS","MARKER_INNER_LENGTH","MARKER_LABEL_WIDTH","MARKER_LABEL_HEIGHT","RADIUS","DELTA_LENGTH","ValueMarkerRect","styled","props","ValueMarkerLabelRect","ValueMarkerLabel","positionValueMarkerRect","x","y","orientation","valueMarkerRectLength","alignCenter","hLength","vLength","markerStartX","markerStartY","innerHLength","innerVLength","innerStartX","innerStartY","positionLabel","length","labelRectX","labelRectY","labelX","labelY","ValueMarker","min","max","value","showValue","usePercentageValue","valueMarkerFillColor","valueMarkerLabelFillColor","formatNumber","useThousandSeparators","useTrendUnits","T","bool"],"mappings":"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","file":"GaugeValueMarker.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 = 84);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"styled-components\");","import React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { formatNumber } from '@splunk/visualizations-shared/numberUtils';\n\nconst MARKER_THICKNESS = 15;\nconst MARKER_INNER_LENGTH = 30;\n\nconst MARKER_LABEL_WIDTH = 60;\nconst MARKER_LABEL_HEIGHT = 25;\nconst RADIUS = 2;\nconst DELTA_LENGTH = 12;\n\nconst ValueMarkerRect = styled.path`\n stroke-width: 2px;\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabelRect = styled.rect`\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabel = styled.text`\n fill: ${props => props.valueMarkerLabelFillColor};\n font-size: 14px;\n font-family: Splunk Platform Sans, sans-serif;\n line-height: 16px;\n text-anchor: middle;\n text-align: center;\n dominant-baseline: middle;\n`;\n\n/**\n * calculate the path of Value Marker shape\n * @method positionValueMarkerRect\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {String} input.orientation\n * @param {Number} input.valueMarkerRectLength\n * @return {String} d containing a series of path commands that define the path to be\n */\nexport const positionValueMarkerRect = ({\n x,\n y,\n orientation,\n valueMarkerRectLength,\n alignCenter = false,\n}) => {\n let hLength = MARKER_THICKNESS;\n let vLength = valueMarkerRectLength;\n let markerStartX = alignCenter ? x - MARKER_THICKNESS / 2 : x - MARKER_THICKNESS;\n let markerStartY = y;\n\n let innerHLength = hLength / 3;\n let innerVLength = MARKER_INNER_LENGTH;\n let innerStartX = markerStartX + innerHLength;\n let innerStartY = markerStartY + 7;\n\n if (orientation === 'vertical') {\n hLength = valueMarkerRectLength;\n vLength = MARKER_THICKNESS;\n markerStartX = x;\n markerStartY = alignCenter ? y - MARKER_THICKNESS / 2 : y;\n\n innerHLength = MARKER_INNER_LENGTH;\n innerVLength = vLength / 3;\n innerStartX = markerStartX + 7;\n innerStartY = markerStartY + innerVLength;\n }\n\n return (\n `M${markerStartX},${markerStartY}h${hLength}a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${RADIUS}v${\n vLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${RADIUS}h${-hLength}a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${-RADIUS}v${\n 2 * RADIUS - vLength\n }a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${-RADIUS}z` +\n `M${innerStartX},${innerStartY}v${\n innerVLength - RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${RADIUS}h${\n innerHLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${-RADIUS}v${\n RADIUS - innerVLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${-RADIUS}h${\n 2 * RADIUS - innerHLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${RADIUS}z`\n );\n};\n\n/**\n * calculate the position of value marker label\n * @method positionLabel\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {Number} input.length gauge thickness\n * @param {String} input.orientation\n * @return {Object} positions\n * @return {Number} positions.labelRectX x of value marker label rect\n * @return {Number} positions.labelRectY y of value marker label rect\n * @return {Number} positions.labelX x of value marker label text\n * @return {Number} positions.labelY y of value marker label text\n */\nexport const positionLabel = ({ x, y, length, orientation, alignCenter = false }) => {\n // for horizontal view\n let labelRectX = alignCenter\n ? x - MARKER_LABEL_WIDTH / 2\n : x - MARKER_THICKNESS / 2 - MARKER_LABEL_WIDTH / 2;\n let labelRectY = y + length;\n if (orientation === 'vertical') {\n labelRectX = x + length;\n labelRectY = alignCenter\n ? y - MARKER_LABEL_HEIGHT / 2\n : y - (MARKER_LABEL_HEIGHT - MARKER_THICKNESS) / 2;\n }\n const labelX = labelRectX + MARKER_LABEL_WIDTH / 2;\n const labelY = labelRectY + MARKER_LABEL_HEIGHT / 2;\n return { labelRectX, labelRectY, labelX, labelY };\n};\n\nconst ValueMarker = ({ ...props }) => {\n const {\n x,\n y,\n length,\n min,\n max,\n value,\n orientation,\n showValue,\n usePercentageValue,\n valueMarkerFillColor,\n valueMarkerLabelFillColor,\n alignCenter,\n } = props;\n\n const valueMarkerRectLength = length + DELTA_LENGTH;\n const { labelRectX, labelRectY, labelX, labelY } = positionLabel({\n x,\n y,\n length,\n orientation,\n alignCenter,\n });\n\n return (\n <g>\n <ValueMarkerRect\n data-test=\"value-marker-rect\"\n d={positionValueMarkerRect({ x, y, orientation, valueMarkerRectLength, alignCenter })}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n {showValue && (\n <g>\n <ValueMarkerLabelRect\n data-test=\"value-marker-label-rect\"\n x={labelRectX}\n y={labelRectY}\n width={MARKER_LABEL_WIDTH}\n height={MARKER_LABEL_HEIGHT}\n rx={RADIUS}\n ry={RADIUS}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n <ValueMarkerLabel\n data-test=\"value-marker-label\"\n x={labelX}\n y={labelY}\n valueMarkerLabelFillColor={valueMarkerLabelFillColor}\n >\n {usePercentageValue\n ? `${((value / (max - min)) * 100).toFixed(2)}%`\n : formatNumber(value, 0, {\n useThousandSeparators: true,\n useTrendUnits: true,\n })}\n </ValueMarkerLabel>\n </g>\n )}\n </g>\n );\n};\n\nValueMarker.propTypes = {\n x: T.number,\n y: T.number,\n length: T.number,\n min: T.number,\n max: T.number,\n value: T.number,\n orientation: T.string,\n showValue: T.bool,\n usePercentageValue: T.bool,\n valueMarkerFillColor: T.string,\n valueMarkerLabelFillColor: T.string,\n alignCenter: T.bool,\n};\n\nValueMarker.defaultProps = {\n min: 0,\n max: 100,\n orientation: 'horizontal',\n showValue: true,\n usePercentageValue: false,\n alignCenter: false,\n};\n\nexport default ValueMarker;\n","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");"],"sourceRoot":""}
|
package/common/OptionsDoc.js
CHANGED
|
@@ -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 =
|
|
90
|
+
/******/ return __webpack_require__(__webpack_require__.s = 85);
|
|
91
91
|
/******/ })
|
|
92
92
|
/************************************************************************/
|
|
93
93
|
/******/ ({
|
|
@@ -106,13 +106,20 @@ module.exports = require("prop-types");
|
|
|
106
106
|
|
|
107
107
|
/***/ }),
|
|
108
108
|
|
|
109
|
-
/***/
|
|
109
|
+
/***/ 10:
|
|
110
|
+
/***/ (function(module, exports) {
|
|
111
|
+
|
|
112
|
+
module.exports = require("@babel/runtime/helpers/defineProperty");
|
|
113
|
+
|
|
114
|
+
/***/ }),
|
|
115
|
+
|
|
116
|
+
/***/ 12:
|
|
110
117
|
/***/ (function(module, exports, __webpack_require__) {
|
|
111
118
|
|
|
112
119
|
"use strict";
|
|
113
120
|
|
|
114
121
|
|
|
115
|
-
var _typeof = __webpack_require__(
|
|
122
|
+
var _typeof = __webpack_require__(15);
|
|
116
123
|
|
|
117
124
|
Object.defineProperty(exports, "__esModule", {
|
|
118
125
|
value: true
|
|
@@ -121,7 +128,7 @@ exports.componentStoriesToInclude = exports.getStoriesToInclude = exports.flatte
|
|
|
121
128
|
|
|
122
129
|
var lodash_1 = __webpack_require__(3);
|
|
123
130
|
|
|
124
|
-
var configUtils_1 = __webpack_require__(
|
|
131
|
+
var configUtils_1 = __webpack_require__(86);
|
|
125
132
|
/**
|
|
126
133
|
* Returns type options from pattern
|
|
127
134
|
* @example
|
|
@@ -400,7 +407,7 @@ exports.getOptionsFromArgTypes = getOptionsFromArgTypes;
|
|
|
400
407
|
*/
|
|
401
408
|
|
|
402
409
|
var flattenVizOptions = function flattenVizOptions(options) {
|
|
403
|
-
var nonFlattenOptions = new Set(['y2Fields', 'overlayFields', 'gaugeRanges', 'fieldActions', 'highlightValuesByField']);
|
|
410
|
+
var nonFlattenOptions = new Set(['y2Fields', 'overlayFields', 'gaugeRanges', 'fieldActions', 'highlightValuesByField', 'headers']);
|
|
404
411
|
return (0, lodash_1.reduce)(options, function (accum, val, option) {
|
|
405
412
|
if (!exports.platformOptionArgTypes[option]) {
|
|
406
413
|
if (_typeof(val) === 'object' && FieldsToStringify.includes(option)) accum[option] = JSON.stringify(val);else if (_typeof(val) === 'object' && !nonFlattenOptions.has(option)) accum = Object.assign(Object.assign({}, accum), val);else accum[option] = val;
|
|
@@ -439,31 +446,31 @@ exports.componentStoriesToInclude = componentStoriesToInclude;
|
|
|
439
446
|
|
|
440
447
|
/***/ }),
|
|
441
448
|
|
|
442
|
-
/***/
|
|
449
|
+
/***/ 15:
|
|
443
450
|
/***/ (function(module, exports) {
|
|
444
451
|
|
|
445
452
|
module.exports = require("@babel/runtime/helpers/typeof");
|
|
446
453
|
|
|
447
454
|
/***/ }),
|
|
448
455
|
|
|
449
|
-
/***/
|
|
456
|
+
/***/ 17:
|
|
450
457
|
/***/ (function(module, exports) {
|
|
451
458
|
|
|
452
459
|
module.exports = require("@splunk/react-ui/Markdown");
|
|
453
460
|
|
|
454
461
|
/***/ }),
|
|
455
462
|
|
|
456
|
-
/***/
|
|
463
|
+
/***/ 2:
|
|
457
464
|
/***/ (function(module, exports) {
|
|
458
465
|
|
|
459
|
-
module.exports = require("
|
|
466
|
+
module.exports = require("styled-components");
|
|
460
467
|
|
|
461
468
|
/***/ }),
|
|
462
469
|
|
|
463
|
-
/***/
|
|
470
|
+
/***/ 23:
|
|
464
471
|
/***/ (function(module, exports) {
|
|
465
472
|
|
|
466
|
-
module.exports = require("
|
|
473
|
+
module.exports = require("lodash/isEmpty");
|
|
467
474
|
|
|
468
475
|
/***/ }),
|
|
469
476
|
|
|
@@ -474,7 +481,7 @@ module.exports = require("lodash");
|
|
|
474
481
|
|
|
475
482
|
/***/ }),
|
|
476
483
|
|
|
477
|
-
/***/
|
|
484
|
+
/***/ 5:
|
|
478
485
|
/***/ (function(module, exports) {
|
|
479
486
|
|
|
480
487
|
module.exports = require("@splunk/ui-utils/i18n");
|
|
@@ -488,7 +495,14 @@ module.exports = require("@splunk/react-ui/Heading");
|
|
|
488
495
|
|
|
489
496
|
/***/ }),
|
|
490
497
|
|
|
491
|
-
/***/
|
|
498
|
+
/***/ 8:
|
|
499
|
+
/***/ (function(module, exports) {
|
|
500
|
+
|
|
501
|
+
module.exports = require("@babel/runtime/helpers/slicedToArray");
|
|
502
|
+
|
|
503
|
+
/***/ }),
|
|
504
|
+
|
|
505
|
+
/***/ 85:
|
|
492
506
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
493
507
|
|
|
494
508
|
"use strict";
|
|
@@ -496,27 +510,27 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
496
510
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getType", function() { return getType; });
|
|
497
511
|
/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
|
|
498
512
|
/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);
|
|
499
|
-
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
513
|
+
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
|
|
500
514
|
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__);
|
|
501
|
-
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
515
|
+
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
|
|
502
516
|
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__);
|
|
503
517
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
|
|
504
518
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
|
|
505
519
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);
|
|
506
520
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
|
|
507
|
-
/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
521
|
+
/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
|
|
508
522
|
/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_5__);
|
|
509
|
-
/* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
523
|
+
/* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5);
|
|
510
524
|
/* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_6__);
|
|
511
525
|
/* harmony import */ var _splunk_react_ui_Heading__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6);
|
|
512
526
|
/* harmony import */ var _splunk_react_ui_Heading__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_splunk_react_ui_Heading__WEBPACK_IMPORTED_MODULE_7__);
|
|
513
|
-
/* harmony import */ var _splunk_react_ui_Markdown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
|
|
527
|
+
/* harmony import */ var _splunk_react_ui_Markdown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
|
|
514
528
|
/* harmony import */ var _splunk_react_ui_Markdown__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_splunk_react_ui_Markdown__WEBPACK_IMPORTED_MODULE_8__);
|
|
515
529
|
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2);
|
|
516
530
|
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_9__);
|
|
517
531
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3);
|
|
518
532
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_10__);
|
|
519
|
-
/* harmony import */ var _storybook_utils_storybookUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
|
|
533
|
+
/* harmony import */ var _storybook_utils_storybookUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(12);
|
|
520
534
|
/* harmony import */ var _storybook_utils_storybookUtils__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_storybook_utils_storybookUtils__WEBPACK_IMPORTED_MODULE_11__);
|
|
521
535
|
|
|
522
536
|
|
|
@@ -981,25 +995,11 @@ OptionsDoc.propTypes = {
|
|
|
981
995
|
|
|
982
996
|
/***/ }),
|
|
983
997
|
|
|
984
|
-
/***/
|
|
998
|
+
/***/ 86:
|
|
985
999
|
/***/ (function(module, exports) {
|
|
986
1000
|
|
|
987
1001
|
module.exports = require("@splunk/visualizations-shared/configUtils");
|
|
988
1002
|
|
|
989
|
-
/***/ }),
|
|
990
|
-
|
|
991
|
-
/***/ 8:
|
|
992
|
-
/***/ (function(module, exports) {
|
|
993
|
-
|
|
994
|
-
module.exports = require("@babel/runtime/helpers/slicedToArray");
|
|
995
|
-
|
|
996
|
-
/***/ }),
|
|
997
|
-
|
|
998
|
-
/***/ 9:
|
|
999
|
-
/***/ (function(module, exports) {
|
|
1000
|
-
|
|
1001
|
-
module.exports = require("@babel/runtime/helpers/defineProperty");
|
|
1002
|
-
|
|
1003
1003
|
/***/ })
|
|
1004
1004
|
|
|
1005
1005
|
/******/ });
|
package/common/OptionsDoc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///./.storybook/utils/storybookUtils.ts","webpack:///external \"@babel/runtime/helpers/typeof\"","webpack:///external \"@splunk/react-ui/Markdown\"","webpack:///external \"lodash/isEmpty\"","webpack:///external \"styled-components\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/react-ui/Heading\"","webpack:///./src/common/OptionsDoc.jsx","webpack:///external \"@splunk/visualizations-shared/configUtils\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"@babel/runtime/helpers/defineProperty\""],"names":["Option","styled","OptionName","PairContainer","PairTitle","PairValue","PairValueJSON","PropertiesWrapper","props","PropertiesContainer","PropertiesContent","isOneOfJsonSchema","item","Array","getOrType","res","one","getArrayType","isEmpty","itemType","getType","values","getDefaultValue","defaultValue","JSON","Pair","title","content","T","PropertyItems","isPatternProperty","propsItems","_","array","OptionItem","name","type","desc","enumerable","PropertiesSection","marginLeft","element","PropertiesItem","getPropertiesSection","allProperties","Object","propsInPattern","patternProperties","allPropsItems","p","pType","getOptionDisplayType","enum","pDefault","pEnumerable","getPatternOptions","OptionsDoc","options","description","key","option","mergedOptions","merge","properties","string"],"mappings":"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","file":"OptionsDoc.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 = 63);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","import { get, omit, reduce, toNumber, isString } from 'lodash';\nimport { OptionsSchema } from '../../src/common/interfaces/OptionsSchema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\ninterface ArgTypeControl {\n type: string;\n options?: string[];\n min?: number;\n max?: number;\n}\n\ninterface ArgTypeEntry {\n description?: string;\n control: ArgTypeControl;\n name: string;\n defaultValue?: any;\n type: { required: boolean };\n optionType: string;\n table: {\n type: { summary: string };\n defaultValue?: { summary: any };\n category?: string;\n subcategory?: string;\n disable?: boolean;\n };\n}\n\nexport interface ArgTypes {\n [key: string]: ArgTypeEntry;\n}\n\ntype StoriesList = RegExp | string[];\n\n/**\n * Returns type options from pattern\n * @example\n * // returns ['fixed', 'absolute', 'off']\n * getPatternOptions('\\$(\\w+:)?([^$|:]+?)(\\|[|\\w]+)?\\$|^fixed$|^absolute$|^off$')\n * @example\n * // returns []\n * getPatternOptions('^>.*')\n * @param {string} patternString - visualization option type pattern\n * @return {string[]} array of type options\n */\nexport const getPatternOptions = (patternString): string[] =>\n patternString.replace(/\\$/g, '').split('|^').slice(1);\n\n/**\n * Returns Storybook display type for an option\n * @param {object} option - visualization option\n * @return {string} Storybook display type\n */\nexport const getOptionDisplayType = (option): string => {\n const { oneOf, anyOf, type, enum: en, pattern, items } = option;\n let displayTypes: string[] = [];\n\n // wrap values in quotes only if enum or pattern is string\n const conditionalQuote = type === 'string' ? '\"' : '';\n if (en && Array.isArray(en)) {\n displayTypes = en.map(e => {\n const enumQuote = typeof e === 'string' ? '\"' : '';\n return `${enumQuote}${e}${enumQuote}`;\n });\n } else if (type === 'array' && items) {\n return `${getOptionDisplayType(items)}[]`;\n } else if (anyOf && Array.isArray(anyOf)) {\n return getOptionDisplayType(anyOf[0]);\n } else if (oneOf && Array.isArray(oneOf)) {\n displayTypes = oneOf.map(item => getOptionDisplayType(item));\n } else if (Array.isArray(type)) {\n displayTypes = type;\n } else if (pattern) {\n displayTypes = getPatternOptions(pattern).map(p => `${conditionalQuote}${p}${conditionalQuote}`);\n }\n\n if (displayTypes.length > 0) {\n return `(${displayTypes.join(' | ')})`;\n }\n return type;\n};\n\n/**\n * Returns Storybook control type for an option\n * @param {object} option - visualization option\n * @param {string} optionKey - visualization option key\n * @return {ArgTypeControl} Storybook control object\n */\nexport const getOptionControl = (option, optionKey): ArgTypeControl => {\n const { anyOf } = option;\n const schema = Array.isArray(anyOf) && anyOf.length ? anyOf[0] : option;\n\n const type = Array.isArray(schema.type) ? schema.type[0] : schema.type;\n const { maximum, minimum, enum: en } = schema;\n\n const isColorOption = new RegExp(/color/, 'i').test(optionKey) && type !== 'array';\n\n if (isColorOption) {\n return { type: 'color' };\n } else if (en && Array.isArray(en)) {\n return { type: 'select', options: en };\n } else if (anyOf && type === 'string' && anyOf[0].pattern) {\n return { type: 'select', options: getPatternOptions(anyOf[0].pattern) };\n } else if (type === 'number' && (minimum || maximum)) {\n return {\n type: 'range',\n ...(typeof minimum === 'number' && { min: minimum }),\n ...(typeof maximum === 'number' && { max: maximum }),\n };\n } else if (type === 'string') {\n return { type: 'text' };\n }\n\n return { type };\n};\n\n/**\n * platform specific visualization option argTypes\n */\nconst objectTableControl = { control: { type: 'object' } };\nconst disableTableControl = { table: { disable: true } };\nexport const platformOptionArgTypes = {\n context: objectTableControl,\n dataSources: objectTableControl,\n dataSource: disableTableControl,\n options: disableTableControl,\n onEventTrigger: { action: 'eventTrigger', ...disableTableControl },\n hasEventHandlers: disableTableControl,\n};\n\n/**\n * Returns formatted Storybook argTypes for a visualization from its options schema\n * @param {OptionsSchema} options - visualization options\n * @param {string[]} requiredProps - required visualization props\n * @param {boolean} isPlatformViz - indicates if pure or platform visualization\n * @param {string} subcategory - nested property parent option name\n * @return {ArgTypes} Storybook argTypes\n */\nexport const optionsSchemaToArgTypes = ({\n options = {},\n requiredProps = [],\n isPlatformViz = false,\n subcategory = null,\n}: {\n options: OptionsSchema;\n requiredProps: string[];\n isPlatformViz?: boolean;\n subcategory?: string;\n}): ArgTypes => {\n const validObjectTypeOptions = [\n 'lineDashStylesByField',\n 'seriesColorsByField',\n 'fieldActions',\n 'highlightValuesByField',\n ];\n let argTypes: ArgTypes = {};\n Object.keys(options).forEach(optionKey => {\n const option = get(options, optionKey);\n if (option.type === 'object' && !validObjectTypeOptions.includes(optionKey)) {\n // do not support controls for patternProperties, only nested properties\n if (option.properties) {\n argTypes = {\n ...argTypes,\n ...optionsSchemaToArgTypes({\n options: option.properties as OptionsSchema,\n isPlatformViz,\n requiredProps,\n subcategory: optionKey,\n }),\n };\n }\n } else {\n const { description, default: optionDefault } = option;\n const optionControl = getOptionControl(option, optionKey);\n const control = isPlatformViz ? { type: 'text' } : optionControl;\n const required = requiredProps.includes(optionKey);\n\n let defaultValue = optionDefault;\n if (!isPlatformViz && isDynamicOption(optionDefault as string)) {\n defaultValue = null;\n }\n\n argTypes[optionKey] = {\n description,\n control,\n name: optionKey,\n defaultValue,\n type: { required },\n optionType: optionControl.type,\n table: {\n type: { summary: getOptionDisplayType(option) },\n defaultValue: { summary: defaultValue },\n ...(subcategory && {\n category: 'Nested Options',\n subcategory,\n }),\n },\n };\n }\n });\n\n if (isPlatformViz) {\n Object.assign(argTypes, platformOptionArgTypes);\n }\n return argTypes;\n};\n\n/**\n * Helper which converts string visualization options to their required type\n * @param {any} value - option values\n * @param {string} expectedType - expected option type\n * @return {any} correctly typed option value\n */\nexport const transformOptionType = (value, expectedType = 'string'): any => {\n const isStringValue = !isDynamicOption(value) && isString(value);\n if (isStringValue && expectedType === 'boolean') return value == 'true';\n else if (isStringValue && expectedType === 'number') return toNumber(value);\n return value;\n};\n\n// stringify these fields for storybook controls' support\nconst FieldsToStringify = [\n 'layers',\n 'center',\n 'eventActions',\n 'fieldActions',\n 'legendLabels',\n 'lineDashStylesByField',\n 'seriesColors',\n 'seriesColorsByField',\n 'footerFields',\n 'highlightValuesByField',\n];\n\n/**\n * Helper which returns platform visualization options from Storybook controls\n * Utilizes argTypes to determine valid and nested options\n * @param {object} args - visualization story args\n * @param {ArgTypes} argTypes - visualization argTypes\n * @return {object} visualization options\n */\nexport const getOptionsFromArgTypes = (args: Record<string, any>, argTypes: ArgTypes): Record<string, any> =>\n reduce(\n argTypes,\n (accum, val, option) => {\n const subcategory = get(val, 'table.subcategory');\n const { optionType, defaultValue } = argTypes[option];\n let controlledOption = transformOptionType(get(args, option), optionType);\n // filter options from react & json if set to default value or is undefined\n if (optionType && controlledOption != null && controlledOption !== defaultValue) {\n // parse the value if option is stringified as part of flattenVizOptions\n if (FieldsToStringify.includes(option)) {\n try {\n controlledOption = JSON.parse(controlledOption);\n } catch (e) {\n controlledOption = null;\n }\n }\n if (subcategory) {\n if (!accum[subcategory]) accum[subcategory] = {};\n accum[subcategory][option] = controlledOption;\n } else accum[option] = controlledOption;\n }\n return accum;\n },\n { ...omit(args.options, Object.keys(argTypes)) }\n );\n\n/**\n * Helper which flattens objects single depth level\n * @param {object} options - visualization options object\n * @return {object} flattened visualization options\n */\nexport const flattenVizOptions = (options: Record<string, any>): Record<string, any> => {\n const nonFlattenOptions = new Set([\n 'y2Fields',\n 'overlayFields',\n 'gaugeRanges',\n 'fieldActions',\n 'highlightValuesByField',\n ]);\n return reduce(\n options,\n (accum, val, option) => {\n if (!platformOptionArgTypes[option]) {\n if (typeof val === 'object' && FieldsToStringify.includes(option))\n accum[option] = JSON.stringify(val);\n else if (typeof val === 'object' && !nonFlattenOptions.has(option))\n accum = { ...accum, ...val };\n else accum[option] = val;\n }\n return accum;\n },\n {}\n );\n};\n/**\n * Returns value based on Storybook publishing status\n * @param {T} publishedStories - stories to include in published Storybook\n * @param {T} localStories - stories to include in local Storybook\n * @return {T} one of the two params\n */\nexport const getStoriesToInclude = <T>(publishedStories: T, localStories: T): T =>\n process.env.STORYBOOK_PUBLISH ? publishedStories : localStories;\n\n/**\n * Returns component level stories to include, defaults to innclude all stories\n * @param {StoriesList} stories - stories to include in published Storybook\n * @return {object} CSF includeStories config\n */\nexport const componentStoriesToInclude = (stories: StoriesList): object =>\n getStoriesToInclude({ includeStories: stories }, {});\n","module.exports = require(\"@babel/runtime/helpers/typeof\");","module.exports = require(\"@splunk/react-ui/Markdown\");","module.exports = require(\"lodash/isEmpty\");","module.exports = require(\"styled-components\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/react-ui/Heading\");","import React from 'react';\nimport T from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Heading from '@splunk/react-ui/Heading';\nimport Markdown from '@splunk/react-ui/Markdown';\nimport styled from 'styled-components';\nimport { merge } from 'lodash';\nimport { getOptionDisplayType, getPatternOptions } from '../../.storybook/utils/storybookUtils';\n\nconst Option = styled.div`\n margin-top: 20px;\n`;\nconst OptionName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n`;\nconst PairContainer = styled.div`\n margin-left: 40px;\n margin-top: 10px;\n`;\nconst PairTitle = styled.span`\n display: inline-block;\n color: #8293a7;\n width: 80px;\n`;\n\nconst PairValue = styled.span`\n font-family: 'Splunk Platform Mono', 'monospace';\n white-space: pre;\n`;\n\nconst PairValueJSON = styled.div`\n margin-left: 80px;\n pre {\n margin: 0;\n }\n code {\n font-size: 12px;\n font-family: 'Splunk Platform Mono', 'monospace';\n }\n`;\n\nconst PropertiesWrapper = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 0 : 40)}px;\n margin-top: 20px;\n`;\n\nconst PropertiesContainer = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n margin-top: 10px;\n`;\n\nconst PropertiesContent = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n`;\n\n/**\n * @method isOneOfJsonSchema\n * @param {object} item\n * @returns {boolean}\n */\nconst isOneOfJsonSchema = item => item.oneOf && Array.isArray(item.oneOf);\n\n/**\n * get Or type as string\n * @method getOrType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: (string | number)\n */\nconst getOrType = item => {\n let res = '';\n\n if (isOneOfJsonSchema(item)) {\n res = item.oneOf\n .map(one => {\n if (one.type !== 'array') {\n return one.type;\n }\n // eslint-disable-next-line no-use-before-define\n return getArrayType(one, '');\n })\n .join(' | ');\n } else if (Array.isArray(item.type)) {\n if (isEmpty(item.default)) {\n return item.type.join(' | ');\n }\n\n res = item.type.filter(itemType => itemType !== 'string').join(' | ');\n res += ' | ';\n res += `\"${item.default}\"`;\n }\n\n return res;\n};\n\n/**\n * get the array type as string\n * @method getArrayType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: arrayOf(arrayOf(string | number | arrayOf(string | number)))\n */\nconst getArrayType = (item, res = '') => {\n if (item.type !== 'array') {\n if (Array.isArray(item.type) || isOneOfJsonSchema(item)) {\n return getOrType(item);\n }\n\n return item.type;\n }\n\n if (item.type === 'array') {\n res += 'arrayOf('; // eslint-disable-line no-param-reassign\n }\n res += getArrayType(item.items, ''); // eslint-disable-line no-param-reassign\n res += ')'; // eslint-disable-line no-param-reassign\n return res;\n};\n\n/**\n * get the type of this option item\n * @method getType\n * @param {ojbect} item option item\n * @returns {string} type\n */\nexport const getType = item => {\n if (isOneOfJsonSchema(item)) {\n return `oneOf(${getOrType(item)})`;\n }\n if (item.enum && Array.isArray(item.enum)) {\n const values =\n !isEmpty(item.enum) && typeof item.enum[0] === 'string'\n ? item.enum.map(v => `\"${v}\"`).join(', ')\n : item.enum.join(', ');\n\n return `oneOf([${values}])`;\n }\n\n if (Array.isArray(item.type)) {\n return getOrType(item);\n }\n\n if (item.type === 'array') {\n if ('items' in item) {\n return `arrayOf(${getType(item.items)})`;\n }\n return 'array';\n }\n return item.type;\n};\n\n/**\n * get the default value as string\n * @method getDefaultValue\n * @param {object | boolean | number | string} defaultValue\n * @returns {string | object[]} default value\n */\nconst getDefaultValue = defaultValue => {\n if (typeof defaultValue === 'boolean' || typeof defaultValue === 'number') {\n return defaultValue.toString();\n }\n if (Array.isArray(defaultValue)) {\n if (defaultValue.length > 1 && typeof defaultValue[0] === 'object') {\n // return the array only if the defaultValue is an object array\n return defaultValue;\n }\n const values = defaultValue.map(v => JSON.stringify(v)).join(', ');\n return `[${values}]`;\n }\n return defaultValue;\n};\n\nconst Pair = ({ title, content }) => (\n <PairContainer>\n <PairTitle>{`${title}:`}</PairTitle>\n {Array.isArray(content) ? (\n <PairValueJSON>\n <pre>\n <code>{JSON.stringify(content, null, 2)}</code>\n </pre>\n </PairValueJSON>\n ) : (\n <PairValue>{content}</PairValue>\n )}\n </PairContainer>\n);\n\nPair.propTypes = {\n title: T.string,\n content: T.oneOfType([T.string, T.arrayOf(T.object)]),\n};\n\nconst PropertyItems = ({ isPatternProperty = false, propsItems }) => (\n <PropertiesContainer isPatternProperty={isPatternProperty}>\n {isPatternProperty ? <PairTitle>{_('[fieldName]:')}</PairTitle> : null}\n <PropertiesContent isPatternProperty={isPatternProperty}>{propsItems}</PropertiesContent>\n </PropertiesContainer>\n);\n\nPropertyItems.propTypes = {\n isPatternProperty: T.bool,\n propsItems: T.array,\n};\n\nconst OptionItem = ({ name, type, desc, defaultValue, enumerable, PropertiesSection }) => (\n <Option>\n <OptionName>{name}</OptionName>\n {desc ? <Markdown style={{ marginLeft: 40 }} text={desc} /> : null}\n <Pair title={_('Type')} content={type} />\n {enumerable?.length > 0 && (\n <Pair\n title={_('oneOf')}\n content={`(${enumerable\n .map(\n entry =>\n `${typeof entry === 'string' ? '\"' : ''}${entry}${\n typeof entry === 'string' ? '\"' : ''\n }`\n )\n .join(' | ')})`}\n />\n )}\n {defaultValue && <Pair title={_('Default')} content={defaultValue} />}\n {PropertiesSection}\n </Option>\n);\n\nOptionItem.propTypes = {\n name: T.string,\n type: T.string,\n desc: T.string,\n enumerable: T.arrayOf(T.oneOfType([T.string, T.number])),\n defaultValue: T.oneOfType([T.string, T.arrayOf(T.object)]),\n PropertiesSection: T.element,\n};\n\nOptionItem.default = {\n PropertiesItem: null,\n};\n\nconst getPropertiesSection = (properties, patternProperties) => {\n let allProperties = [];\n let isPatternProperty = false;\n\n // the properties either comes from property field of the option schema item\n // or from the property field of each patternProperties of the option schema item\n // can check table tableFormat and columnFormat as examples\n if (!isEmpty(properties)) {\n allProperties = [properties];\n } else if (!isEmpty(patternProperties)) {\n Object.keys(patternProperties).forEach(patternKey => {\n const propsInPattern = patternProperties[patternKey].properties;\n if (propsInPattern) {\n allProperties.push(propsInPattern);\n }\n });\n\n isPatternProperty = true;\n }\n\n if (allProperties.length) {\n const allPropsItems = allProperties.map(props => {\n const propsItems = Object.keys(props).map(pKey => {\n const p = props[pKey];\n let pType = p.anyOf?.[0]\n ? getOptionDisplayType({ ...p.anyOf?.[0], enum: p.enum })\n : getOptionDisplayType({ ...p, enum: p.enum });\n const pDefault = getDefaultValue(p.default);\n\n let pEnumerable;\n // get nested oneOf property listing\n if (typeof p.anyOf?.[0]?.pattern === 'string') {\n pEnumerable = getPatternOptions(p.anyOf[0].pattern);\n } else if (p.anyOf?.[0]?.items?.enum?.length > 0) {\n // quick fix for nested `columnFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.enum;\n } else if (p.anyOf?.[0]?.items?.items?.enum?.length > 0) {\n // quick fix for nested `tableFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.items.enum;\n } else if (p.enum) {\n pEnumerable = p.enum;\n }\n\n // use the JS types (e.g. string, number) of the nested property if the nested property is an enumerable\n if (pEnumerable?.length) {\n pType = p.anyOf?.[0]?.type !== 'array' ? p.anyOf?.[0]?.type : pType;\n if (Array.isArray(pType)) {\n pType = pType.join(' | ');\n }\n }\n\n return (\n <OptionItem\n key={pKey}\n name={pKey}\n type={pType}\n enumerable={pEnumerable}\n desc={p.description}\n defaultValue={pDefault}\n />\n );\n });\n return (\n <PropertyItems\n key={propsItems}\n isPatternProperty={isPatternProperty}\n propsItems={propsItems}\n />\n );\n });\n\n return <PropertiesWrapper isPatternProperty={isPatternProperty}>{allPropsItems}</PropertiesWrapper>;\n }\n return null;\n};\n\nconst OptionsDoc = ({ options, description }) => (\n <div>\n {options.length === 0 ? (\n <Heading level={4}> No Options</Heading>\n ) : (\n <Heading level={4}>Options</Heading>\n )}\n {description && <div>{description}</div>}\n {Object.entries(options).map(([key, item]) => {\n let type;\n let enumerable = [];\n let PropertiesSection = null;\n\n // get oneOf property listing\n if (typeof item.anyOf?.[0]?.pattern === 'string') {\n enumerable = getPatternOptions(item.anyOf[0].pattern);\n } else if (item.anyOf?.[0]?.enum) {\n enumerable = item.anyOf?.[0]?.enum;\n } else if (item.enum) {\n enumerable = item.enum;\n }\n\n // get the nested options inside {option}.items.anyof. e.g. 'layers' in Map\n if (item.anyOf?.[0]?.type === 'array' && 'anyOf' in item.anyOf?.[0]?.items) {\n type = getOptionDisplayType(item);\n const { patternProperties } = item;\n // merge the 3 objects together instead of showing the longest options in the array\n const option = item.anyOf?.[0]?.items?.anyOf;\n const mergedOptions = option.reduce((prev, next) => merge(prev, next), {});\n const { properties } = mergedOptions;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n return (\n <OptionItem\n key={key}\n name={key}\n type={type}\n enumerable={enumerable}\n desc={item.description}\n PropertiesSection={PropertiesSection}\n />\n );\n }\n\n if (item.type === 'object') {\n // get properties for object type\n type = item.type;\n const { properties } = item;\n const { patternProperties } = item;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n } else if (enumerable?.length) {\n // use the JS types (e.g. string, number) of the property if the property is an enumerable\n type = item.anyOf?.[0]?.type;\n if (Array.isArray(type)) {\n type = type.join(' | ');\n }\n } else {\n type = getOptionDisplayType({ ...item.anyOf[0], enum: item.enum });\n }\n\n return (\n <OptionItem\n key={key}\n name={key}\n // item.anyOf in the config.ts is a tuple which holds [{ type, pattern, items }, { type, pattern: DYNAMIC_OPTIONS_PATTERN }]\n type={type}\n enumerable={enumerable}\n desc={item.description}\n defaultValue={getDefaultValue(item.default)}\n PropertiesSection={PropertiesSection}\n />\n );\n })}\n </div>\n);\n\nOptionsDoc.propTypes = {\n options: T.object.isRequired,\n description: T.string,\n};\n\nexport default OptionsDoc;\n","module.exports = require(\"@splunk/visualizations-shared/configUtils\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///./.storybook/utils/storybookUtils.ts","webpack:///external \"@babel/runtime/helpers/typeof\"","webpack:///external \"@splunk/react-ui/Markdown\"","webpack:///external \"styled-components\"","webpack:///external \"lodash/isEmpty\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/react-ui/Heading\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///./src/common/OptionsDoc.jsx","webpack:///external \"@splunk/visualizations-shared/configUtils\""],"names":["Option","styled","OptionName","PairContainer","PairTitle","PairValue","PairValueJSON","PropertiesWrapper","props","PropertiesContainer","PropertiesContent","isOneOfJsonSchema","item","Array","getOrType","res","one","getArrayType","isEmpty","itemType","getType","values","getDefaultValue","defaultValue","JSON","Pair","title","content","T","PropertyItems","isPatternProperty","propsItems","_","array","OptionItem","name","type","desc","enumerable","PropertiesSection","marginLeft","element","PropertiesItem","getPropertiesSection","allProperties","Object","propsInPattern","patternProperties","allPropsItems","p","pType","getOptionDisplayType","enum","pDefault","pEnumerable","getPatternOptions","OptionsDoc","options","description","key","option","mergedOptions","merge","properties","string"],"mappings":"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","file":"OptionsDoc.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 = 85);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","import { get, omit, reduce, toNumber, isString } from 'lodash';\nimport { OptionsSchema } from '../../src/common/interfaces/OptionsSchema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\ninterface ArgTypeControl {\n type: string;\n options?: string[];\n min?: number;\n max?: number;\n}\n\ninterface ArgTypeEntry {\n description?: string;\n control: ArgTypeControl;\n name: string;\n defaultValue?: any;\n type: { required: boolean };\n optionType: string;\n table: {\n type: { summary: string };\n defaultValue?: { summary: any };\n category?: string;\n subcategory?: string;\n disable?: boolean;\n };\n}\n\nexport interface ArgTypes {\n [key: string]: ArgTypeEntry;\n}\n\ntype StoriesList = RegExp | string[];\n\n/**\n * Returns type options from pattern\n * @example\n * // returns ['fixed', 'absolute', 'off']\n * getPatternOptions('\\$(\\w+:)?([^$|:]+?)(\\|[|\\w]+)?\\$|^fixed$|^absolute$|^off$')\n * @example\n * // returns []\n * getPatternOptions('^>.*')\n * @param {string} patternString - visualization option type pattern\n * @return {string[]} array of type options\n */\nexport const getPatternOptions = (patternString): string[] =>\n patternString.replace(/\\$/g, '').split('|^').slice(1);\n\n/**\n * Returns Storybook display type for an option\n * @param {object} option - visualization option\n * @return {string} Storybook display type\n */\nexport const getOptionDisplayType = (option): string => {\n const { oneOf, anyOf, type, enum: en, pattern, items } = option;\n let displayTypes: string[] = [];\n\n // wrap values in quotes only if enum or pattern is string\n const conditionalQuote = type === 'string' ? '\"' : '';\n if (en && Array.isArray(en)) {\n displayTypes = en.map(e => {\n const enumQuote = typeof e === 'string' ? '\"' : '';\n return `${enumQuote}${e}${enumQuote}`;\n });\n } else if (type === 'array' && items) {\n return `${getOptionDisplayType(items)}[]`;\n } else if (anyOf && Array.isArray(anyOf)) {\n return getOptionDisplayType(anyOf[0]);\n } else if (oneOf && Array.isArray(oneOf)) {\n displayTypes = oneOf.map(item => getOptionDisplayType(item));\n } else if (Array.isArray(type)) {\n displayTypes = type;\n } else if (pattern) {\n displayTypes = getPatternOptions(pattern).map(p => `${conditionalQuote}${p}${conditionalQuote}`);\n }\n\n if (displayTypes.length > 0) {\n return `(${displayTypes.join(' | ')})`;\n }\n return type;\n};\n\n/**\n * Returns Storybook control type for an option\n * @param {object} option - visualization option\n * @param {string} optionKey - visualization option key\n * @return {ArgTypeControl} Storybook control object\n */\nexport const getOptionControl = (option, optionKey): ArgTypeControl => {\n const { anyOf } = option;\n const schema = Array.isArray(anyOf) && anyOf.length ? anyOf[0] : option;\n\n const type = Array.isArray(schema.type) ? schema.type[0] : schema.type;\n const { maximum, minimum, enum: en } = schema;\n\n const isColorOption = new RegExp(/color/, 'i').test(optionKey) && type !== 'array';\n\n if (isColorOption) {\n return { type: 'color' };\n } else if (en && Array.isArray(en)) {\n return { type: 'select', options: en };\n } else if (anyOf && type === 'string' && anyOf[0].pattern) {\n return { type: 'select', options: getPatternOptions(anyOf[0].pattern) };\n } else if (type === 'number' && (minimum || maximum)) {\n return {\n type: 'range',\n ...(typeof minimum === 'number' && { min: minimum }),\n ...(typeof maximum === 'number' && { max: maximum }),\n };\n } else if (type === 'string') {\n return { type: 'text' };\n }\n\n return { type };\n};\n\n/**\n * platform specific visualization option argTypes\n */\nconst objectTableControl = { control: { type: 'object' } };\nconst disableTableControl = { table: { disable: true } };\nexport const platformOptionArgTypes = {\n context: objectTableControl,\n dataSources: objectTableControl,\n dataSource: disableTableControl,\n options: disableTableControl,\n onEventTrigger: { action: 'eventTrigger', ...disableTableControl },\n hasEventHandlers: disableTableControl,\n};\n\n/**\n * Returns formatted Storybook argTypes for a visualization from its options schema\n * @param {OptionsSchema} options - visualization options\n * @param {string[]} requiredProps - required visualization props\n * @param {boolean} isPlatformViz - indicates if pure or platform visualization\n * @param {string} subcategory - nested property parent option name\n * @return {ArgTypes} Storybook argTypes\n */\nexport const optionsSchemaToArgTypes = ({\n options = {},\n requiredProps = [],\n isPlatformViz = false,\n subcategory = null,\n}: {\n options: OptionsSchema;\n requiredProps: string[];\n isPlatformViz?: boolean;\n subcategory?: string;\n}): ArgTypes => {\n const validObjectTypeOptions = [\n 'lineDashStylesByField',\n 'seriesColorsByField',\n 'fieldActions',\n 'highlightValuesByField',\n ];\n let argTypes: ArgTypes = {};\n Object.keys(options).forEach(optionKey => {\n const option = get(options, optionKey);\n if (option.type === 'object' && !validObjectTypeOptions.includes(optionKey)) {\n // do not support controls for patternProperties, only nested properties\n if (option.properties) {\n argTypes = {\n ...argTypes,\n ...optionsSchemaToArgTypes({\n options: option.properties as OptionsSchema,\n isPlatformViz,\n requiredProps,\n subcategory: optionKey,\n }),\n };\n }\n } else {\n const { description, default: optionDefault } = option;\n const optionControl = getOptionControl(option, optionKey);\n const control = isPlatformViz ? { type: 'text' } : optionControl;\n const required = requiredProps.includes(optionKey);\n\n let defaultValue = optionDefault;\n if (!isPlatformViz && isDynamicOption(optionDefault as string)) {\n defaultValue = null;\n }\n\n argTypes[optionKey] = {\n description,\n control,\n name: optionKey,\n defaultValue,\n type: { required },\n optionType: optionControl.type,\n table: {\n type: { summary: getOptionDisplayType(option) },\n defaultValue: { summary: defaultValue },\n ...(subcategory && {\n category: 'Nested Options',\n subcategory,\n }),\n },\n };\n }\n });\n\n if (isPlatformViz) {\n Object.assign(argTypes, platformOptionArgTypes);\n }\n return argTypes;\n};\n\n/**\n * Helper which converts string visualization options to their required type\n * @param {any} value - option values\n * @param {string} expectedType - expected option type\n * @return {any} correctly typed option value\n */\nexport const transformOptionType = (value, expectedType = 'string'): any => {\n const isStringValue = !isDynamicOption(value) && isString(value);\n if (isStringValue && expectedType === 'boolean') return value == 'true';\n else if (isStringValue && expectedType === 'number') return toNumber(value);\n return value;\n};\n\n// stringify these fields for storybook controls' support\nconst FieldsToStringify = [\n 'layers',\n 'center',\n 'eventActions',\n 'fieldActions',\n 'legendLabels',\n 'lineDashStylesByField',\n 'seriesColors',\n 'seriesColorsByField',\n 'footerFields',\n 'highlightValuesByField',\n];\n\n/**\n * Helper which returns platform visualization options from Storybook controls\n * Utilizes argTypes to determine valid and nested options\n * @param {object} args - visualization story args\n * @param {ArgTypes} argTypes - visualization argTypes\n * @return {object} visualization options\n */\nexport const getOptionsFromArgTypes = (args: Record<string, any>, argTypes: ArgTypes): Record<string, any> =>\n reduce(\n argTypes,\n (accum, val, option) => {\n const subcategory = get(val, 'table.subcategory');\n const { optionType, defaultValue } = argTypes[option];\n let controlledOption = transformOptionType(get(args, option), optionType);\n // filter options from react & json if set to default value or is undefined\n if (optionType && controlledOption != null && controlledOption !== defaultValue) {\n // parse the value if option is stringified as part of flattenVizOptions\n if (FieldsToStringify.includes(option)) {\n try {\n controlledOption = JSON.parse(controlledOption);\n } catch (e) {\n controlledOption = null;\n }\n }\n if (subcategory) {\n if (!accum[subcategory]) accum[subcategory] = {};\n accum[subcategory][option] = controlledOption;\n } else accum[option] = controlledOption;\n }\n return accum;\n },\n { ...omit(args.options, Object.keys(argTypes)) }\n );\n\n/**\n * Helper which flattens objects single depth level\n * @param {object} options - visualization options object\n * @return {object} flattened visualization options\n */\nexport const flattenVizOptions = (options: Record<string, any>): Record<string, any> => {\n const nonFlattenOptions = new Set([\n 'y2Fields',\n 'overlayFields',\n 'gaugeRanges',\n 'fieldActions',\n 'highlightValuesByField',\n 'headers',\n ]);\n return reduce(\n options,\n (accum, val, option) => {\n if (!platformOptionArgTypes[option]) {\n if (typeof val === 'object' && FieldsToStringify.includes(option))\n accum[option] = JSON.stringify(val);\n else if (typeof val === 'object' && !nonFlattenOptions.has(option))\n accum = { ...accum, ...val };\n else accum[option] = val;\n }\n return accum;\n },\n {}\n );\n};\n/**\n * Returns value based on Storybook publishing status\n * @param {T} publishedStories - stories to include in published Storybook\n * @param {T} localStories - stories to include in local Storybook\n * @return {T} one of the two params\n */\nexport const getStoriesToInclude = <T>(publishedStories: T, localStories: T): T =>\n process.env.STORYBOOK_PUBLISH ? publishedStories : localStories;\n\n/**\n * Returns component level stories to include, defaults to innclude all stories\n * @param {StoriesList} stories - stories to include in published Storybook\n * @return {object} CSF includeStories config\n */\nexport const componentStoriesToInclude = (stories: StoriesList): object =>\n getStoriesToInclude({ includeStories: stories }, {});\n","module.exports = require(\"@babel/runtime/helpers/typeof\");","module.exports = require(\"@splunk/react-ui/Markdown\");","module.exports = require(\"styled-components\");","module.exports = require(\"lodash/isEmpty\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/react-ui/Heading\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","import React from 'react';\nimport T from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Heading from '@splunk/react-ui/Heading';\nimport Markdown from '@splunk/react-ui/Markdown';\nimport styled from 'styled-components';\nimport { merge } from 'lodash';\nimport { getOptionDisplayType, getPatternOptions } from '../../.storybook/utils/storybookUtils';\n\nconst Option = styled.div`\n margin-top: 20px;\n`;\nconst OptionName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n`;\nconst PairContainer = styled.div`\n margin-left: 40px;\n margin-top: 10px;\n`;\nconst PairTitle = styled.span`\n display: inline-block;\n color: #8293a7;\n width: 80px;\n`;\n\nconst PairValue = styled.span`\n font-family: 'Splunk Platform Mono', 'monospace';\n white-space: pre;\n`;\n\nconst PairValueJSON = styled.div`\n margin-left: 80px;\n pre {\n margin: 0;\n }\n code {\n font-size: 12px;\n font-family: 'Splunk Platform Mono', 'monospace';\n }\n`;\n\nconst PropertiesWrapper = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 0 : 40)}px;\n margin-top: 20px;\n`;\n\nconst PropertiesContainer = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n margin-top: 10px;\n`;\n\nconst PropertiesContent = styled.div`\n margin-left: ${props => (props.isPatternProperty ? 40 : 0)}px;\n`;\n\n/**\n * @method isOneOfJsonSchema\n * @param {object} item\n * @returns {boolean}\n */\nconst isOneOfJsonSchema = item => item.oneOf && Array.isArray(item.oneOf);\n\n/**\n * get Or type as string\n * @method getOrType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: (string | number)\n */\nconst getOrType = item => {\n let res = '';\n\n if (isOneOfJsonSchema(item)) {\n res = item.oneOf\n .map(one => {\n if (one.type !== 'array') {\n return one.type;\n }\n // eslint-disable-next-line no-use-before-define\n return getArrayType(one, '');\n })\n .join(' | ');\n } else if (Array.isArray(item.type)) {\n if (isEmpty(item.default)) {\n return item.type.join(' | ');\n }\n\n res = item.type.filter(itemType => itemType !== 'string').join(' | ');\n res += ' | ';\n res += `\"${item.default}\"`;\n }\n\n return res;\n};\n\n/**\n * get the array type as string\n * @method getArrayType\n * @param {object} item\n * @param {string} res\n * @returns {string} res eg: arrayOf(arrayOf(string | number | arrayOf(string | number)))\n */\nconst getArrayType = (item, res = '') => {\n if (item.type !== 'array') {\n if (Array.isArray(item.type) || isOneOfJsonSchema(item)) {\n return getOrType(item);\n }\n\n return item.type;\n }\n\n if (item.type === 'array') {\n res += 'arrayOf('; // eslint-disable-line no-param-reassign\n }\n res += getArrayType(item.items, ''); // eslint-disable-line no-param-reassign\n res += ')'; // eslint-disable-line no-param-reassign\n return res;\n};\n\n/**\n * get the type of this option item\n * @method getType\n * @param {ojbect} item option item\n * @returns {string} type\n */\nexport const getType = item => {\n if (isOneOfJsonSchema(item)) {\n return `oneOf(${getOrType(item)})`;\n }\n if (item.enum && Array.isArray(item.enum)) {\n const values =\n !isEmpty(item.enum) && typeof item.enum[0] === 'string'\n ? item.enum.map(v => `\"${v}\"`).join(', ')\n : item.enum.join(', ');\n\n return `oneOf([${values}])`;\n }\n\n if (Array.isArray(item.type)) {\n return getOrType(item);\n }\n\n if (item.type === 'array') {\n if ('items' in item) {\n return `arrayOf(${getType(item.items)})`;\n }\n return 'array';\n }\n return item.type;\n};\n\n/**\n * get the default value as string\n * @method getDefaultValue\n * @param {object | boolean | number | string} defaultValue\n * @returns {string | object[]} default value\n */\nconst getDefaultValue = defaultValue => {\n if (typeof defaultValue === 'boolean' || typeof defaultValue === 'number') {\n return defaultValue.toString();\n }\n if (Array.isArray(defaultValue)) {\n if (defaultValue.length > 1 && typeof defaultValue[0] === 'object') {\n // return the array only if the defaultValue is an object array\n return defaultValue;\n }\n const values = defaultValue.map(v => JSON.stringify(v)).join(', ');\n return `[${values}]`;\n }\n return defaultValue;\n};\n\nconst Pair = ({ title, content }) => (\n <PairContainer>\n <PairTitle>{`${title}:`}</PairTitle>\n {Array.isArray(content) ? (\n <PairValueJSON>\n <pre>\n <code>{JSON.stringify(content, null, 2)}</code>\n </pre>\n </PairValueJSON>\n ) : (\n <PairValue>{content}</PairValue>\n )}\n </PairContainer>\n);\n\nPair.propTypes = {\n title: T.string,\n content: T.oneOfType([T.string, T.arrayOf(T.object)]),\n};\n\nconst PropertyItems = ({ isPatternProperty = false, propsItems }) => (\n <PropertiesContainer isPatternProperty={isPatternProperty}>\n {isPatternProperty ? <PairTitle>{_('[fieldName]:')}</PairTitle> : null}\n <PropertiesContent isPatternProperty={isPatternProperty}>{propsItems}</PropertiesContent>\n </PropertiesContainer>\n);\n\nPropertyItems.propTypes = {\n isPatternProperty: T.bool,\n propsItems: T.array,\n};\n\nconst OptionItem = ({ name, type, desc, defaultValue, enumerable, PropertiesSection }) => (\n <Option>\n <OptionName>{name}</OptionName>\n {desc ? <Markdown style={{ marginLeft: 40 }} text={desc} /> : null}\n <Pair title={_('Type')} content={type} />\n {enumerable?.length > 0 && (\n <Pair\n title={_('oneOf')}\n content={`(${enumerable\n .map(\n entry =>\n `${typeof entry === 'string' ? '\"' : ''}${entry}${\n typeof entry === 'string' ? '\"' : ''\n }`\n )\n .join(' | ')})`}\n />\n )}\n {defaultValue && <Pair title={_('Default')} content={defaultValue} />}\n {PropertiesSection}\n </Option>\n);\n\nOptionItem.propTypes = {\n name: T.string,\n type: T.string,\n desc: T.string,\n enumerable: T.arrayOf(T.oneOfType([T.string, T.number])),\n defaultValue: T.oneOfType([T.string, T.arrayOf(T.object)]),\n PropertiesSection: T.element,\n};\n\nOptionItem.default = {\n PropertiesItem: null,\n};\n\nconst getPropertiesSection = (properties, patternProperties) => {\n let allProperties = [];\n let isPatternProperty = false;\n\n // the properties either comes from property field of the option schema item\n // or from the property field of each patternProperties of the option schema item\n // can check table tableFormat and columnFormat as examples\n if (!isEmpty(properties)) {\n allProperties = [properties];\n } else if (!isEmpty(patternProperties)) {\n Object.keys(patternProperties).forEach(patternKey => {\n const propsInPattern = patternProperties[patternKey].properties;\n if (propsInPattern) {\n allProperties.push(propsInPattern);\n }\n });\n\n isPatternProperty = true;\n }\n\n if (allProperties.length) {\n const allPropsItems = allProperties.map(props => {\n const propsItems = Object.keys(props).map(pKey => {\n const p = props[pKey];\n let pType = p.anyOf?.[0]\n ? getOptionDisplayType({ ...p.anyOf?.[0], enum: p.enum })\n : getOptionDisplayType({ ...p, enum: p.enum });\n const pDefault = getDefaultValue(p.default);\n\n let pEnumerable;\n // get nested oneOf property listing\n if (typeof p.anyOf?.[0]?.pattern === 'string') {\n pEnumerable = getPatternOptions(p.anyOf[0].pattern);\n } else if (p.anyOf?.[0]?.items?.enum?.length > 0) {\n // quick fix for nested `columnFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.enum;\n } else if (p.anyOf?.[0]?.items?.items?.enum?.length > 0) {\n // quick fix for nested `tableFormat` enumerables that replaces enums within brackets with raw JS types\n pType = pType.replace(/\\((.+?)\\)/g, 'string');\n pEnumerable = p.anyOf[0].items.items.enum;\n } else if (p.enum) {\n pEnumerable = p.enum;\n }\n\n // use the JS types (e.g. string, number) of the nested property if the nested property is an enumerable\n if (pEnumerable?.length) {\n pType = p.anyOf?.[0]?.type !== 'array' ? p.anyOf?.[0]?.type : pType;\n if (Array.isArray(pType)) {\n pType = pType.join(' | ');\n }\n }\n\n return (\n <OptionItem\n key={pKey}\n name={pKey}\n type={pType}\n enumerable={pEnumerable}\n desc={p.description}\n defaultValue={pDefault}\n />\n );\n });\n return (\n <PropertyItems\n key={propsItems}\n isPatternProperty={isPatternProperty}\n propsItems={propsItems}\n />\n );\n });\n\n return <PropertiesWrapper isPatternProperty={isPatternProperty}>{allPropsItems}</PropertiesWrapper>;\n }\n return null;\n};\n\nconst OptionsDoc = ({ options, description }) => (\n <div>\n {options.length === 0 ? (\n <Heading level={4}> No Options</Heading>\n ) : (\n <Heading level={4}>Options</Heading>\n )}\n {description && <div>{description}</div>}\n {Object.entries(options).map(([key, item]) => {\n let type;\n let enumerable = [];\n let PropertiesSection = null;\n\n // get oneOf property listing\n if (typeof item.anyOf?.[0]?.pattern === 'string') {\n enumerable = getPatternOptions(item.anyOf[0].pattern);\n } else if (item.anyOf?.[0]?.enum) {\n enumerable = item.anyOf?.[0]?.enum;\n } else if (item.enum) {\n enumerable = item.enum;\n }\n\n // get the nested options inside {option}.items.anyof. e.g. 'layers' in Map\n if (item.anyOf?.[0]?.type === 'array' && 'anyOf' in item.anyOf?.[0]?.items) {\n type = getOptionDisplayType(item);\n const { patternProperties } = item;\n // merge the 3 objects together instead of showing the longest options in the array\n const option = item.anyOf?.[0]?.items?.anyOf;\n const mergedOptions = option.reduce((prev, next) => merge(prev, next), {});\n const { properties } = mergedOptions;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n return (\n <OptionItem\n key={key}\n name={key}\n type={type}\n enumerable={enumerable}\n desc={item.description}\n PropertiesSection={PropertiesSection}\n />\n );\n }\n\n if (item.type === 'object') {\n // get properties for object type\n type = item.type;\n const { properties } = item;\n const { patternProperties } = item;\n PropertiesSection = getPropertiesSection(properties, patternProperties);\n } else if (enumerable?.length) {\n // use the JS types (e.g. string, number) of the property if the property is an enumerable\n type = item.anyOf?.[0]?.type;\n if (Array.isArray(type)) {\n type = type.join(' | ');\n }\n } else {\n type = getOptionDisplayType({ ...item.anyOf[0], enum: item.enum });\n }\n\n return (\n <OptionItem\n key={key}\n name={key}\n // item.anyOf in the config.ts is a tuple which holds [{ type, pattern, items }, { type, pattern: DYNAMIC_OPTIONS_PATTERN }]\n type={type}\n enumerable={enumerable}\n desc={item.description}\n defaultValue={getDefaultValue(item.default)}\n PropertiesSection={PropertiesSection}\n />\n );\n })}\n </div>\n);\n\nOptionsDoc.propTypes = {\n options: T.object.isRequired,\n description: T.string,\n};\n\nexport default OptionsDoc;\n","module.exports = require(\"@splunk/visualizations-shared/configUtils\");"],"sourceRoot":""}
|