@splunk/visualizations 26.0.0 → 26.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/Area.config.js +102 -18
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +618 -221
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +104 -20
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +624 -219
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +94 -20
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +606 -211
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +65 -14
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +550 -183
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +103 -18
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +637 -221
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +82 -17
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +425 -148
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +100 -18
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +752 -293
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +96 -27
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +759 -374
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +62 -18
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +419 -154
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +106 -22
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +631 -223
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +72 -22
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +632 -219
  44. package/LinkGraph.js.map +1 -1
  45. package/MIGRATION.md +1082 -0
  46. package/Map.config.js +241 -97
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +1195 -595
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +70 -20
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +460 -195
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +79 -21
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +802 -411
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +72 -18
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +853 -484
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +75 -22
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +612 -212
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +81 -29
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +844 -379
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +85 -19
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +432 -152
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +84 -22
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +878 -342
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +96 -22
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +607 -212
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +94 -24
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +1182 -650
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +286 -225
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +92 -22
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +965 -506
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +99 -26
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +1167 -616
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +126 -67
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +73 -20
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +810 -322
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +107 -35
  103. package/common/Charting.js.map +1 -1
  104. package/common/ChartingApi.js +18 -7
  105. package/common/ChartingApi.js.map +1 -1
  106. package/common/EventsDoc.js +76 -22
  107. package/common/EventsDoc.js.map +1 -1
  108. package/common/GaugeMajorTicks.js +68 -58
  109. package/common/GaugeMajorTicks.js.map +1 -1
  110. package/common/GaugeValueMarker.js +43 -34
  111. package/common/GaugeValueMarker.js.map +1 -1
  112. package/common/OptionsDoc.js +156 -65
  113. package/common/OptionsDoc.js.map +1 -1
  114. package/common/OverviewDoc.js +33 -5
  115. package/common/OverviewDoc.js.map +1 -1
  116. package/common/SplunkVisualization.js +31 -4
  117. package/common/SplunkVisualization.js.map +1 -1
  118. package/common/SplunkVisualizationApi.js +8 -2
  119. package/common/SplunkVisualizationApi.js.map +1 -1
  120. package/common/ThemesDoc.js +27 -14
  121. package/common/ThemesDoc.js.map +1 -1
  122. package/common/chartingUtils.js +44 -12
  123. package/common/chartingUtils.js.map +1 -1
  124. package/common/docUtils.js +11 -1
  125. package/common/docUtils.js.map +1 -1
  126. package/common/gaugeUtils.js +173 -90
  127. package/common/gaugeUtils.js.map +1 -1
  128. package/common/shapeUtils.js +14 -2
  129. package/common/shapeUtils.js.map +1 -1
  130. package/common/utils/configUtils.js +49 -14
  131. package/common/utils/configUtils.js.map +1 -1
  132. package/common/utils/dataUtils.js +7 -2
  133. package/common/utils/dataUtils.js.map +1 -1
  134. package/common/utils/hocUtils.js +3 -1
  135. package/common/utils/hocUtils.js.map +1 -1
  136. package/common/utils/layoutUtils.js +1 -0
  137. package/common/utils/layoutUtils.js.map +1 -1
  138. package/common/utils/mapUtils.js +287 -127
  139. package/common/utils/mapUtils.js.map +1 -1
  140. package/common/utils/singleValueUtils.js +241 -196
  141. package/common/utils/singleValueUtils.js.map +1 -1
  142. package/common/utils/testHelper.js +9 -0
  143. package/common/utils/testHelper.js.map +1 -1
  144. package/common/utils/trellisUtils.js +61 -0
  145. package/common/utils/trellisUtils.js.map +1 -1
  146. package/common/utils/urlUtils.js +2 -0
  147. package/common/utils/urlUtils.js.map +1 -1
  148. package/common/withDashboardViz.js +274 -95
  149. package/common/withDashboardViz.js.map +1 -1
  150. package/package.json +16 -18
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///./src/common/gaugeUtils.ts","webpack:///external \"@splunk/visualizations-shared/colorConstants\""],"names":["lodash_1","require","colorConstants_1","i18n_1","exports","GAUGE_THICKNESS","FILL_THICKNESS","GRADIENT_STOP_OFFSET_MIN","GRADIENT_STOP_OFFSET_MAX","getGaugeWidth","_ref","containerWidth","orientation","getGaugeHeight","_ref2","containerHeight","getGaugeLength","_ref3","getGaugeStartPosition","_ref4","gaugeLength","gaugeStartX","gaugeStartY","getGaugeDimensions","_ref5","_ref6","gaugeWidth","gaugeHeight","assignGaugeColor","_ref7","value","min","max","rate","SEMANTIC_SUCCESS","SEMANTIC_WARNING","SEMANTIC_ERROR","getGaugeBarLength","_ref8","getGaugeBarStartPositions","_ref9","gaugeBarLength","gaugeBarX","gaugeBarY","getGaugeBarWidth","_ref10","getGaugeBarHeight","_ref11","getFillBarDimensions","_ref12","_ref13","fillBarX","fillBarY","fillBarWidth","fillBarHeight","fillBarLength","getFillerGaugeValueMarkerPositions","_ref14","valueMarkerX","valueMarkerY","getMarkerBarDimensions","_ref15","_ref16","markerBarX","markerBarY","markerBarWidth","markerBarHeight","markerBarLength","getMarkerGaugeValueMarkerPositions","_ref17","getSortedRanges","ranges","sort","a","b","from","validateRanges","length","_","some","range","to","uniqBy","sortedRanges","i","getGaugeRange","Math","apply","_toConsumableArray","map","getGradientStopOffsets","_ref18","_ref19","offsetScale","offsets","abs","reverse","cumulativeOffsets","reduce","accumulator","currentValue","idx","getGradientStopColors","_ref20","stopColors","getGradientStops","_ref21","stops","push","offset","concat","stopColor","getGradientDimensions","x1","y1","x2","y2","gaugeOptionsMapping","majorTickInterval","gaugeRanges","mapToOldKey","options","mapKeys","val","key","mapValueLabelDisplay","labelOrValue","rangeOrValue","showKey","percentKey","optionString","newOptions","Object","assign","omit","convertToGaugeProperties","originalOptions","chain","thru"],"mappings":"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","file":"gaugeUtils.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 = 70);\n","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/i18n\");","import { chain, mapKeys, omit, uniqBy } from 'lodash';\nimport {\n SEMANTIC_SUCCESS,\n SEMANTIC_WARNING,\n SEMANTIC_ERROR,\n} from '@splunk/visualizations-shared/colorConstants';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nexport const GAUGE_THICKNESS = 50;\nexport const FILL_THICKNESS = 38;\nconst GRADIENT_STOP_OFFSET_MIN = 0;\nconst GRADIENT_STOP_OFFSET_MAX = 100;\n\n/**\n * get width for the whole gauge viz for horizontal or vertical view\n * @method getGaugeWidth\n * @param {Object} input\n * @param {Number} containerWidth\n * @param {String} orientation\n * @return {Number} width\n */\nexport const getGaugeWidth = ({ containerWidth, orientation }) =>\n orientation === 'vertical' ? GAUGE_THICKNESS : containerWidth * 0.8;\n\n/**\n * get height for the whole gauge viz for horizontal or vertical view\n * @method getGaugeHeight\n * @param {Object} input\n * @param {Number} containerHeight\n * @param {String} orientation\n * @return {Number} height\n */\nexport const getGaugeHeight = ({ containerHeight, orientation }) =>\n orientation === 'vertical' ? containerHeight * 0.8 : GAUGE_THICKNESS;\n\n/**\n * get how long the gauge shoud be.\n * In horizontal view, gauge length equals to gauge width. In vertical view, it equals to gauge height.\n * @method getGaugeLength\n * @param {Object} input\n * @param {Number} input.containerWidth\n * @param {Number} input.containerHeight\n * @param {String} input.orientation\n * @return {Number} gaugeLength\n */\nexport const getGaugeLength = ({ containerWidth, containerHeight, orientation }) =>\n orientation === 'vertical'\n ? getGaugeHeight({ containerHeight, orientation })\n : getGaugeWidth({ containerWidth, orientation });\n\n/**\n * get start x and y for rendering gauge\n * @method getGaugeStartPosition\n * @param {Object} input\n * @param {Number} containerWidth\n * @param {Number} containerHeight\n * @param {Number} gaugeLength\n * @param {String} orientation\n * @return {Object} position\n * @return {Number} position.gaugeStartX\n * @return {Number} position.gaugeStartY\n */\nexport const getGaugeStartPosition = ({ containerWidth, containerHeight, gaugeLength, orientation }) => {\n // for horizontal view\n let gaugeStartX = (containerWidth - gaugeLength) / 2.0;\n let gaugeStartY = (containerHeight - GAUGE_THICKNESS) / 2.0;\n\n if (orientation === 'vertical') {\n gaugeStartX = (containerWidth - GAUGE_THICKNESS) / 2.0;\n gaugeStartY = (containerHeight - gaugeLength) / 2.0;\n }\n\n return { gaugeStartX, gaugeStartY };\n};\n\n/**\n * get dimensions for the whole gauge viz,\n * which can be useful to calculate background bar and major ticks positions.\n * @method getGaugeDimensions\n * @param {Object} input\n * @param {Number} input.containerWidth\n * @param {Number} input.containerHeight\n * @param {String} input.orientation 'horizontal' or 'vertical'\n * @return {Object} gaugeDimensions\n * @return {Number} gaugeDimensions.gaugeLength how long the gauge shoud be in horizontal or vertical orientation.\n * @return {Number} gaugeDimensions.gaugeStartX start x to render gauge\n * @return {Number} gaugeDimensions.gaugeStartY start y to render gauge\n * @return {Number} gaugeDimensions.gaugeWidth natural width of gauge\n * @return {Number} gaugeDimensions.gaugeHeight natural height of gauge\n */\nexport const getGaugeDimensions = ({ containerWidth, containerHeight, orientation }) => {\n const gaugeLength = getGaugeLength({ containerWidth, containerHeight, orientation });\n const { gaugeStartX, gaugeStartY } = getGaugeStartPosition({\n containerWidth,\n containerHeight,\n gaugeLength,\n orientation,\n });\n const gaugeWidth = getGaugeWidth({ containerWidth, orientation });\n const gaugeHeight = getGaugeHeight({ containerHeight, orientation });\n\n return {\n gaugeLength,\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n };\n};\n\n/**\n * if gaugeColor is not specified, auto assign a gauge color to the fill bar\n * based on how much percentage the value is taken between min and max\n * @method assignGaugeColor\n * @params\n * */\nexport const assignGaugeColor = ({ value, min, max }) => {\n const rate = (value - min) / (max - min);\n\n if (rate <= 0.3) {\n return SEMANTIC_SUCCESS;\n }\n if (rate > 0.3 && rate <= 0.6) {\n return SEMANTIC_WARNING;\n }\n\n return SEMANTIC_ERROR;\n};\n\n/**\n * get inner bar length in gauge\n * @method getGaugeBarLength\n * @param {Object} input\n * @param {Number} input.gaugeLength\n * @param {Number} input.value\n * @param {Number} input.min\n * @param {Number} input.max\n * @return {Number} gaugeBarLength\n */\nexport const getGaugeBarLength = ({ gaugeLength, value, min, max }) => {\n if (max < min) {\n return null;\n }\n\n if (value >= max) {\n return gaugeLength;\n }\n\n if (value < min) {\n return 0;\n }\n\n return (gaugeLength * (value - min)) / (max - min);\n};\n\n/**\n * get x and y position for rendering inner bar in gauge\n * @method getGaugeBarStartPositions\n * @param {Object} input\n * @param {Number} input.gaugeStartX\n * @param {Number} input.gaugeStartY\n * @param {Number} input.gaugeWidth\n * @param {Number} input.gaugeHeight\n * @param {Number} input.gaugeBarLength\n * @param {String} input.orientation\n * @return {Object} position\n * @return {Number} position.gaugeBarX\n * @return {Number} position.gaugeBarY\n */\nexport const getGaugeBarStartPositions = ({\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n gaugeBarLength,\n orientation,\n}) => {\n let gaugeBarX = gaugeStartX;\n let gaugeBarY = gaugeStartY;\n\n if (orientation === 'vertical') {\n gaugeBarX += (gaugeWidth - FILL_THICKNESS) / 2;\n gaugeBarY += gaugeHeight - gaugeBarLength;\n } else {\n gaugeBarY += (gaugeHeight - FILL_THICKNESS) / 2;\n }\n\n return {\n gaugeBarX,\n gaugeBarY,\n };\n};\n\n/**\n * get width of inner bar in gauge\n * @method getGaugeBarWidth\n * @param {Object} input\n * @param {Number} input.gaugeBarLength\n * @param {String} orientation\n * @return {Number} gaugeBarWidth\n */\nexport const getGaugeBarWidth = ({ gaugeBarLength, orientation }) =>\n orientation === 'vertical' ? FILL_THICKNESS : gaugeBarLength;\n\n/**\n * get height of inner bar in gauge\n * @method getGaugeBarWidth\n * @param {Object} input\n * @param {Number} input.gaugeBarLength\n * @param {String} orientation\n * @return {Number} gaugeBarHeight\n */\nexport const getGaugeBarHeight = ({ gaugeBarLength, orientation }) =>\n orientation === 'vertical' ? gaugeBarLength : FILL_THICKNESS;\n\n/**\n * get dimensions for the fill bar in the gauge\n * @method getFillBarDimensions\n * @param {Object} input\n * @param {Number} input.gaugeLength\n * @param {Number} input.gaugeStartX\n * @param {Number} input.gaugeStartY\n * @param {Number} input.gaugeWidth,\n * @param {Number} input.gaugeHeight,\n * @param {Number} input.value,\n * @param {Number} input.min,\n * @param {Number} input.max,\n * @param {String} input.orientation\n * @return {Object} fillBarDimensions\n * @return {Number} fillBarDimensions.fillBarLength\n * @return {Number} fillBarDimensions.fillBarX\n * @return {Number} fillBarDimensions.fillBarY\n * @return {Number} fillBarDimensions.fillBarWidth\n * @return {Number} fillBarDimensions.fillBarHeight\n */\nexport const getFillBarDimensions = ({\n gaugeLength,\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n value,\n min,\n max,\n orientation,\n}) => {\n const gaugeBarLength = getGaugeBarLength({ gaugeLength, value, max, min });\n const { gaugeBarX: fillBarX, gaugeBarY: fillBarY } = getGaugeBarStartPositions({\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n gaugeBarLength,\n orientation,\n });\n const fillBarWidth = getGaugeBarWidth({ gaugeBarLength, orientation });\n const fillBarHeight = getGaugeBarHeight({ gaugeBarLength, orientation });\n\n return {\n fillBarLength: gaugeBarLength,\n fillBarX,\n fillBarY,\n fillBarWidth,\n fillBarHeight,\n };\n};\n\n/**\n * get position x and y for value marker in filler gauge\n * @method getFillerGaugeValueMarkerPositions\n * @param {Object} input\n * @param {Number} input.fillBarX\n * @param {Number} input.fillBarY\n * @param {Number} input.fillBarLength\n * @param {String} input.orientation\n * @return {Object} position\n * @return {Number} position.valueMarkerX\n * @return {Number} position.valueMarkerY\n */\nexport const getFillerGaugeValueMarkerPositions = ({ fillBarX, fillBarY, fillBarLength, orientation }) => {\n let valueMarkerX = fillBarX;\n let valueMarkerY = fillBarY;\n\n if (orientation === 'vertical') {\n valueMarkerX -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n } else {\n valueMarkerX += fillBarLength;\n valueMarkerY -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n }\n\n return {\n valueMarkerX,\n valueMarkerY,\n };\n};\n\n/**\n * get dimensions for the marker bar in the gauge\n * @method getMarkerBarDimensions\n * @param {Object} input\n * @param {Number} input.gaugeLength\n * @param {Number} input.gaugeStartX\n * @param {Number} input.gaugeStartY\n * @param {Number} input.gaugeWidth,\n * @param {Number} input.gaugeHeight,\n * @param {String} input.orientation\n * @return {Object} markerBarDimensions\n * @return {Number} markerBarDimensions.markerBarLength\n * @return {Number} markerBarDimensions.markerBarX\n * @return {Number} markerBarDimensions.markerBarY\n * @return {Number} markerBarDimensions.markerBarWidth\n * @return {Number} markerBarDimensions.markerBarHeight\n */\nexport const getMarkerBarDimensions = ({\n gaugeLength,\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n orientation,\n}) => {\n const gaugeBarLength = gaugeLength; // For marker gauge, inner marker bar spans the entire gauge\n const { gaugeBarX: markerBarX, gaugeBarY: markerBarY } = getGaugeBarStartPositions({\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n gaugeBarLength,\n orientation,\n });\n const markerBarWidth = getGaugeBarWidth({ gaugeBarLength, orientation });\n const markerBarHeight = getGaugeBarHeight({ gaugeBarLength, orientation });\n\n return {\n markerBarLength: gaugeBarLength,\n markerBarX,\n markerBarY,\n markerBarWidth,\n markerBarHeight,\n };\n};\n\n/**\n * get position x and y for value marker in marker gauge\n * @method getMarkerGaugeValueMarkerPositions\n * @param {Object} input\n * @param {Number} input.markerBarX\n * @param {Number} input.markerBarY\n * @param {Number} input.markerBarHeight\n * @param {Number} input.markerBarLength\n * @param {Number} input.value\n * @param {Number} input.min\n * @param {Number} input.max\n * @param {String} input.orientation\n * @return {Object} position\n * @return {Number} position.valueMarkerX\n * @return {Number} position.valueMarkerY\n */\nexport const getMarkerGaugeValueMarkerPositions = ({\n markerBarX,\n markerBarY,\n markerBarHeight,\n markerBarLength: gaugeLength,\n orientation,\n value,\n min,\n max,\n}) => {\n let valueMarkerX = markerBarX;\n let valueMarkerY = markerBarY;\n if (orientation === 'vertical') {\n valueMarkerY += markerBarHeight - getGaugeBarLength({ gaugeLength, value, max, min });\n valueMarkerX -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n } else {\n valueMarkerX += getGaugeBarLength({ gaugeLength, value, max, min });\n valueMarkerY -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n }\n\n return {\n valueMarkerX,\n valueMarkerY,\n };\n};\n\n/**\n * sort the ranges in ascending order\n * @method getSortedRanges\n * @param {Array} ranges\n * @return {Array} sortedRanges\n */\nexport const getSortedRanges = ranges => ranges.sort((a, b) => a.from - b.from);\n\n/**\n * validate whether ranges prop is valid - continuous ranges, range.to < range.from, range.from != range.to\n * @method validateRanges\n * @param {Array} ranges\n * @return {String} error\n */\nexport const validateRanges = ranges => {\n if (!ranges.length) {\n return _('Prop \"ranges\" is missing entries');\n }\n\n // check whether a range has \"from\" >= \"to\" eg: 10 - 10, 100 - 10, -20 - -10 are invalid\n if (ranges.some(range => range.from >= range.to)) {\n return _('Prop \"ranges\" has invalid entries: invalid range');\n }\n\n // check whether ranges have duplicate \"from/to\" eg: 0 - 50, 25 - 50\n if (ranges.length !== uniqBy(ranges, 'to').length || ranges.length !== uniqBy(ranges, 'from').length) {\n return _('Prop \"ranges\" has invalid entries: duplicate values');\n }\n\n const sortedRanges = getSortedRanges(ranges);\n\n // check whether ranges are continuous eg: 0 - 10, 10 - 20, 20 - 30\n for (let i = 1; i < sortedRanges.length; i += 1) {\n if (sortedRanges[i].from !== sortedRanges[i - 1].to) {\n return _('Prop \"ranges\" has invalid entries: discontinuous ranges');\n }\n }\n\n return null;\n};\n\n/**\n * calculate min and max value of gauge\n * @method getGaugeRange\n * @param {Array} ranges\n * @return {Object} gaugeRange\n * @return {Number} gaugeRange.min\n * @return {Number} gaugeRange.max\n */\nexport const getGaugeRange = ranges => {\n const min = Math.min(...ranges.map(range => range.from));\n const max = Math.max(...ranges.map(range => range.to));\n return { min, max };\n};\n\n/**\n * calculate stop offsets for linear gradient\n * @method getGradientStopOffsets\n * @param {Array} ranges\n * @param {String} orientation\n * @return {Array} cumulativeOffsets\n */\nexport const getGradientStopOffsets = ({ ranges, orientation }) => {\n const { min, max } = getGaugeRange(ranges);\n const offsetScale = (GRADIENT_STOP_OFFSET_MAX - GRADIENT_STOP_OFFSET_MIN) / (max - min);\n let offsets = ranges.map(range => Math.abs(range.from - range.to) * offsetScale);\n // When orientation is vertical, since the gauge starts from bottom to top, linear gradient should be reversed\n offsets = orientation === 'vertical' ? offsets.reverse() : offsets;\n const cumulativeOffsets = [];\n offsets.reduce((accumulator, currentValue, idx) => {\n cumulativeOffsets[idx] = accumulator + currentValue;\n return cumulativeOffsets[idx];\n }, 0);\n return cumulativeOffsets;\n};\n\n/**\n * calculate stop colors for linear gradient\n * @method getGradientStopColors\n * @param {Array} ranges\n * @param {String} orientation\n * @return {Array} stopColors\n */\nexport const getGradientStopColors = ({ ranges, orientation }) => {\n const stopColors = ranges.map(range => range.value);\n // When orientation is vertical, since the gauge starts from bottom to top, linear gradient should be reversed\n return orientation === 'vertical' ? stopColors.reverse() : stopColors;\n};\n\n/**\n * calculate linear gradient stops from ranges\n * @method getGradientStops\n * @param {Object} input\n * @param {Array} ranges\n * @param {String} orientation\n * @return {Array} stops\n */\nexport const getGradientStops = ({ ranges, orientation }) => {\n const stops = [];\n const offsets = getGradientStopOffsets({ ranges, orientation });\n const stopColors = getGradientStopColors({ ranges, orientation });\n // Initialize stops with the first color stop\n stops.push({ offset: `${offsets[0]}%`, stopColor: stopColors[0] });\n // Add the remaining color stops with gradient change at each stop\n for (let i = 1; i < ranges.length; i += 1) {\n stops.push({ offset: `${offsets[i - 1]}%`, stopColor: stopColors[i] });\n stops.push({ offset: `${offsets[i]}%`, stopColor: stopColors[i] });\n }\n return stops;\n};\n\n/**\n * calculate linear gradient dimensions\n * @method getGradientDimensions\n * @param {String} orientation\n * @return {Object} dimensions\n * @return {String} dimensions.x1\n * @return {String} dimensions.y1\n * @return {String} dimensions.x2\n * @return {String} dimensions.y2\n */\nexport const getGradientDimensions = orientation => {\n const x1 = '0%';\n const y1 = '0%';\n const x2 = orientation === 'horizontal' ? '100%' : '0%';\n const y2 = orientation === 'horizontal' ? '0%' : '100%';\n return { x1, y1, x2, y2 };\n};\n\ninterface GaugeOptions {\n [key: string]: any;\n}\n\n// map for new options names to old option names\nconst gaugeOptionsMapping = {\n majorTickInterval: 'majorUnit',\n gaugeRanges: 'ranges',\n};\n\n/**\n * Helper method to update the option names which can be mapped to pure component options\n * @method mapToOldKey\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapToOldKey = (options: GaugeOptions): GaugeOptions =>\n mapKeys(options, (val, key) => (gaugeOptionsMapping[key] ? gaugeOptionsMapping[key] : key));\n\ntype LabelOrValue = 'label' | 'value';\n\n/**\n * Helper method to map labelDisplay and valueDisplay options to pure component option names\n * @method mapToOldKey\n * @param {string} labelOrValue\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapValueLabelDisplay = (labelOrValue: LabelOrValue, options: GaugeOptions): GaugeOptions => {\n const rangeOrValue: string = labelOrValue === 'value' ? 'Value' : 'Range';\n const showKey: string = labelOrValue === 'value' ? 'showValue' : 'showLabels';\n const percentKey = `usePercentage${rangeOrValue}`;\n const optionString = `${labelOrValue}Display`;\n const newOptions = { ...options };\n if (newOptions[optionString]) {\n if (newOptions[optionString] === 'number') {\n newOptions[showKey] = true;\n newOptions[percentKey] = false;\n } else if (newOptions[optionString] === 'percentage') {\n newOptions[showKey] = true;\n newOptions[percentKey] = true;\n } else {\n newOptions[showKey] = false;\n newOptions[percentKey] = false;\n }\n }\n return omit(newOptions, [optionString]);\n};\n\n/**\n * Chained helper for mapping the option properties (and values) we expose in config.ts into property values that pure component accepts\n * This is for options that has new key name and can not directly be mapped with pure component props\n * @method convertToGaugeProperties\n * @param {Object} originalOptions\n * @returns {Object}\n */\nexport const convertToGaugeProperties = (originalOptions: GaugeOptions): GaugeOptions =>\n chain(mapToOldKey(originalOptions))\n .thru(options => mapValueLabelDisplay('label', options))\n .thru(options => mapValueLabelDisplay('value', options))\n .value();\n","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///./src/common/gaugeUtils.ts","webpack:///external \"@splunk/visualizations-shared/colorConstants\""],"names":[],"mappings":"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","file":"gaugeUtils.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 = 70);\n","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/i18n\");","import { chain, mapKeys, omit, uniqBy } from 'lodash';\nimport {\n SEMANTIC_SUCCESS,\n SEMANTIC_WARNING,\n SEMANTIC_ERROR,\n} from '@splunk/visualizations-shared/colorConstants';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nexport const GAUGE_THICKNESS = 50;\nexport const FILL_THICKNESS = 38;\nconst GRADIENT_STOP_OFFSET_MIN = 0;\nconst GRADIENT_STOP_OFFSET_MAX = 100;\n\n/**\n * get width for the whole gauge viz for horizontal or vertical view\n * @method getGaugeWidth\n * @param {Object} input\n * @param {Number} containerWidth\n * @param {String} orientation\n * @return {Number} width\n */\nexport const getGaugeWidth = ({ containerWidth, orientation }) =>\n orientation === 'vertical' ? GAUGE_THICKNESS : containerWidth * 0.8;\n\n/**\n * get height for the whole gauge viz for horizontal or vertical view\n * @method getGaugeHeight\n * @param {Object} input\n * @param {Number} containerHeight\n * @param {String} orientation\n * @return {Number} height\n */\nexport const getGaugeHeight = ({ containerHeight, orientation }) =>\n orientation === 'vertical' ? containerHeight * 0.8 : GAUGE_THICKNESS;\n\n/**\n * get how long the gauge shoud be.\n * In horizontal view, gauge length equals to gauge width. In vertical view, it equals to gauge height.\n * @method getGaugeLength\n * @param {Object} input\n * @param {Number} input.containerWidth\n * @param {Number} input.containerHeight\n * @param {String} input.orientation\n * @return {Number} gaugeLength\n */\nexport const getGaugeLength = ({ containerWidth, containerHeight, orientation }) =>\n orientation === 'vertical'\n ? getGaugeHeight({ containerHeight, orientation })\n : getGaugeWidth({ containerWidth, orientation });\n\n/**\n * get start x and y for rendering gauge\n * @method getGaugeStartPosition\n * @param {Object} input\n * @param {Number} containerWidth\n * @param {Number} containerHeight\n * @param {Number} gaugeLength\n * @param {String} orientation\n * @return {Object} position\n * @return {Number} position.gaugeStartX\n * @return {Number} position.gaugeStartY\n */\nexport const getGaugeStartPosition = ({ containerWidth, containerHeight, gaugeLength, orientation }) => {\n // for horizontal view\n let gaugeStartX = (containerWidth - gaugeLength) / 2.0;\n let gaugeStartY = (containerHeight - GAUGE_THICKNESS) / 2.0;\n\n if (orientation === 'vertical') {\n gaugeStartX = (containerWidth - GAUGE_THICKNESS) / 2.0;\n gaugeStartY = (containerHeight - gaugeLength) / 2.0;\n }\n\n return { gaugeStartX, gaugeStartY };\n};\n\n/**\n * get dimensions for the whole gauge viz,\n * which can be useful to calculate background bar and major ticks positions.\n * @method getGaugeDimensions\n * @param {Object} input\n * @param {Number} input.containerWidth\n * @param {Number} input.containerHeight\n * @param {String} input.orientation 'horizontal' or 'vertical'\n * @return {Object} gaugeDimensions\n * @return {Number} gaugeDimensions.gaugeLength how long the gauge shoud be in horizontal or vertical orientation.\n * @return {Number} gaugeDimensions.gaugeStartX start x to render gauge\n * @return {Number} gaugeDimensions.gaugeStartY start y to render gauge\n * @return {Number} gaugeDimensions.gaugeWidth natural width of gauge\n * @return {Number} gaugeDimensions.gaugeHeight natural height of gauge\n */\nexport const getGaugeDimensions = ({ containerWidth, containerHeight, orientation }) => {\n const gaugeLength = getGaugeLength({ containerWidth, containerHeight, orientation });\n const { gaugeStartX, gaugeStartY } = getGaugeStartPosition({\n containerWidth,\n containerHeight,\n gaugeLength,\n orientation,\n });\n const gaugeWidth = getGaugeWidth({ containerWidth, orientation });\n const gaugeHeight = getGaugeHeight({ containerHeight, orientation });\n\n return {\n gaugeLength,\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n };\n};\n\n/**\n * if gaugeColor is not specified, auto assign a gauge color to the fill bar\n * based on how much percentage the value is taken between min and max\n * @method assignGaugeColor\n * @params\n * */\nexport const assignGaugeColor = ({ value, min, max }) => {\n const rate = (value - min) / (max - min);\n\n if (rate <= 0.3) {\n return SEMANTIC_SUCCESS;\n }\n if (rate > 0.3 && rate <= 0.6) {\n return SEMANTIC_WARNING;\n }\n\n return SEMANTIC_ERROR;\n};\n\n/**\n * get inner bar length in gauge\n * @method getGaugeBarLength\n * @param {Object} input\n * @param {Number} input.gaugeLength\n * @param {Number} input.value\n * @param {Number} input.min\n * @param {Number} input.max\n * @return {Number} gaugeBarLength\n */\nexport const getGaugeBarLength = ({ gaugeLength, value, min, max }) => {\n if (max < min) {\n return null;\n }\n\n if (value >= max) {\n return gaugeLength;\n }\n\n if (value < min) {\n return 0;\n }\n\n return (gaugeLength * (value - min)) / (max - min);\n};\n\n/**\n * get x and y position for rendering inner bar in gauge\n * @method getGaugeBarStartPositions\n * @param {Object} input\n * @param {Number} input.gaugeStartX\n * @param {Number} input.gaugeStartY\n * @param {Number} input.gaugeWidth\n * @param {Number} input.gaugeHeight\n * @param {Number} input.gaugeBarLength\n * @param {String} input.orientation\n * @return {Object} position\n * @return {Number} position.gaugeBarX\n * @return {Number} position.gaugeBarY\n */\nexport const getGaugeBarStartPositions = ({\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n gaugeBarLength,\n orientation,\n}) => {\n let gaugeBarX = gaugeStartX;\n let gaugeBarY = gaugeStartY;\n\n if (orientation === 'vertical') {\n gaugeBarX += (gaugeWidth - FILL_THICKNESS) / 2;\n gaugeBarY += gaugeHeight - gaugeBarLength;\n } else {\n gaugeBarY += (gaugeHeight - FILL_THICKNESS) / 2;\n }\n\n return {\n gaugeBarX,\n gaugeBarY,\n };\n};\n\n/**\n * get width of inner bar in gauge\n * @method getGaugeBarWidth\n * @param {Object} input\n * @param {Number} input.gaugeBarLength\n * @param {String} orientation\n * @return {Number} gaugeBarWidth\n */\nexport const getGaugeBarWidth = ({ gaugeBarLength, orientation }) =>\n orientation === 'vertical' ? FILL_THICKNESS : gaugeBarLength;\n\n/**\n * get height of inner bar in gauge\n * @method getGaugeBarWidth\n * @param {Object} input\n * @param {Number} input.gaugeBarLength\n * @param {String} orientation\n * @return {Number} gaugeBarHeight\n */\nexport const getGaugeBarHeight = ({ gaugeBarLength, orientation }) =>\n orientation === 'vertical' ? gaugeBarLength : FILL_THICKNESS;\n\n/**\n * get dimensions for the fill bar in the gauge\n * @method getFillBarDimensions\n * @param {Object} input\n * @param {Number} input.gaugeLength\n * @param {Number} input.gaugeStartX\n * @param {Number} input.gaugeStartY\n * @param {Number} input.gaugeWidth,\n * @param {Number} input.gaugeHeight,\n * @param {Number} input.value,\n * @param {Number} input.min,\n * @param {Number} input.max,\n * @param {String} input.orientation\n * @return {Object} fillBarDimensions\n * @return {Number} fillBarDimensions.fillBarLength\n * @return {Number} fillBarDimensions.fillBarX\n * @return {Number} fillBarDimensions.fillBarY\n * @return {Number} fillBarDimensions.fillBarWidth\n * @return {Number} fillBarDimensions.fillBarHeight\n */\nexport const getFillBarDimensions = ({\n gaugeLength,\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n value,\n min,\n max,\n orientation,\n}) => {\n const gaugeBarLength = getGaugeBarLength({ gaugeLength, value, max, min });\n const { gaugeBarX: fillBarX, gaugeBarY: fillBarY } = getGaugeBarStartPositions({\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n gaugeBarLength,\n orientation,\n });\n const fillBarWidth = getGaugeBarWidth({ gaugeBarLength, orientation });\n const fillBarHeight = getGaugeBarHeight({ gaugeBarLength, orientation });\n\n return {\n fillBarLength: gaugeBarLength,\n fillBarX,\n fillBarY,\n fillBarWidth,\n fillBarHeight,\n };\n};\n\n/**\n * get position x and y for value marker in filler gauge\n * @method getFillerGaugeValueMarkerPositions\n * @param {Object} input\n * @param {Number} input.fillBarX\n * @param {Number} input.fillBarY\n * @param {Number} input.fillBarLength\n * @param {String} input.orientation\n * @return {Object} position\n * @return {Number} position.valueMarkerX\n * @return {Number} position.valueMarkerY\n */\nexport const getFillerGaugeValueMarkerPositions = ({ fillBarX, fillBarY, fillBarLength, orientation }) => {\n let valueMarkerX = fillBarX;\n let valueMarkerY = fillBarY;\n\n if (orientation === 'vertical') {\n valueMarkerX -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n } else {\n valueMarkerX += fillBarLength;\n valueMarkerY -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n }\n\n return {\n valueMarkerX,\n valueMarkerY,\n };\n};\n\n/**\n * get dimensions for the marker bar in the gauge\n * @method getMarkerBarDimensions\n * @param {Object} input\n * @param {Number} input.gaugeLength\n * @param {Number} input.gaugeStartX\n * @param {Number} input.gaugeStartY\n * @param {Number} input.gaugeWidth,\n * @param {Number} input.gaugeHeight,\n * @param {String} input.orientation\n * @return {Object} markerBarDimensions\n * @return {Number} markerBarDimensions.markerBarLength\n * @return {Number} markerBarDimensions.markerBarX\n * @return {Number} markerBarDimensions.markerBarY\n * @return {Number} markerBarDimensions.markerBarWidth\n * @return {Number} markerBarDimensions.markerBarHeight\n */\nexport const getMarkerBarDimensions = ({\n gaugeLength,\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n orientation,\n}) => {\n const gaugeBarLength = gaugeLength; // For marker gauge, inner marker bar spans the entire gauge\n const { gaugeBarX: markerBarX, gaugeBarY: markerBarY } = getGaugeBarStartPositions({\n gaugeStartX,\n gaugeStartY,\n gaugeWidth,\n gaugeHeight,\n gaugeBarLength,\n orientation,\n });\n const markerBarWidth = getGaugeBarWidth({ gaugeBarLength, orientation });\n const markerBarHeight = getGaugeBarHeight({ gaugeBarLength, orientation });\n\n return {\n markerBarLength: gaugeBarLength,\n markerBarX,\n markerBarY,\n markerBarWidth,\n markerBarHeight,\n };\n};\n\n/**\n * get position x and y for value marker in marker gauge\n * @method getMarkerGaugeValueMarkerPositions\n * @param {Object} input\n * @param {Number} input.markerBarX\n * @param {Number} input.markerBarY\n * @param {Number} input.markerBarHeight\n * @param {Number} input.markerBarLength\n * @param {Number} input.value\n * @param {Number} input.min\n * @param {Number} input.max\n * @param {String} input.orientation\n * @return {Object} position\n * @return {Number} position.valueMarkerX\n * @return {Number} position.valueMarkerY\n */\nexport const getMarkerGaugeValueMarkerPositions = ({\n markerBarX,\n markerBarY,\n markerBarHeight,\n markerBarLength: gaugeLength,\n orientation,\n value,\n min,\n max,\n}) => {\n let valueMarkerX = markerBarX;\n let valueMarkerY = markerBarY;\n if (orientation === 'vertical') {\n valueMarkerY += markerBarHeight - getGaugeBarLength({ gaugeLength, value, max, min });\n valueMarkerX -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n } else {\n valueMarkerX += getGaugeBarLength({ gaugeLength, value, max, min });\n valueMarkerY -= (GAUGE_THICKNESS - FILL_THICKNESS) / 4;\n }\n\n return {\n valueMarkerX,\n valueMarkerY,\n };\n};\n\n/**\n * sort the ranges in ascending order\n * @method getSortedRanges\n * @param {Array} ranges\n * @return {Array} sortedRanges\n */\nexport const getSortedRanges = ranges => ranges.sort((a, b) => a.from - b.from);\n\n/**\n * validate whether ranges prop is valid - continuous ranges, range.to < range.from, range.from != range.to\n * @method validateRanges\n * @param {Array} ranges\n * @return {String} error\n */\nexport const validateRanges = ranges => {\n if (!ranges.length) {\n return _('Prop \"ranges\" is missing entries');\n }\n\n // check whether a range has \"from\" >= \"to\" eg: 10 - 10, 100 - 10, -20 - -10 are invalid\n if (ranges.some(range => range.from >= range.to)) {\n return _('Prop \"ranges\" has invalid entries: invalid range');\n }\n\n // check whether ranges have duplicate \"from/to\" eg: 0 - 50, 25 - 50\n if (ranges.length !== uniqBy(ranges, 'to').length || ranges.length !== uniqBy(ranges, 'from').length) {\n return _('Prop \"ranges\" has invalid entries: duplicate values');\n }\n\n const sortedRanges = getSortedRanges(ranges);\n\n // check whether ranges are continuous eg: 0 - 10, 10 - 20, 20 - 30\n for (let i = 1; i < sortedRanges.length; i += 1) {\n if (sortedRanges[i].from !== sortedRanges[i - 1].to) {\n return _('Prop \"ranges\" has invalid entries: discontinuous ranges');\n }\n }\n\n return null;\n};\n\n/**\n * calculate min and max value of gauge\n * @method getGaugeRange\n * @param {Array} ranges\n * @return {Object} gaugeRange\n * @return {Number} gaugeRange.min\n * @return {Number} gaugeRange.max\n */\nexport const getGaugeRange = ranges => {\n const min = Math.min(...ranges.map(range => range.from));\n const max = Math.max(...ranges.map(range => range.to));\n return { min, max };\n};\n\n/**\n * calculate stop offsets for linear gradient\n * @method getGradientStopOffsets\n * @param {Array} ranges\n * @param {String} orientation\n * @return {Array} cumulativeOffsets\n */\nexport const getGradientStopOffsets = ({ ranges, orientation }) => {\n const { min, max } = getGaugeRange(ranges);\n const offsetScale = (GRADIENT_STOP_OFFSET_MAX - GRADIENT_STOP_OFFSET_MIN) / (max - min);\n let offsets = ranges.map(range => Math.abs(range.from - range.to) * offsetScale);\n // When orientation is vertical, since the gauge starts from bottom to top, linear gradient should be reversed\n offsets = orientation === 'vertical' ? offsets.reverse() : offsets;\n const cumulativeOffsets = [];\n offsets.reduce((accumulator, currentValue, idx) => {\n cumulativeOffsets[idx] = accumulator + currentValue;\n return cumulativeOffsets[idx];\n }, 0);\n return cumulativeOffsets;\n};\n\n/**\n * calculate stop colors for linear gradient\n * @method getGradientStopColors\n * @param {Array} ranges\n * @param {String} orientation\n * @return {Array} stopColors\n */\nexport const getGradientStopColors = ({ ranges, orientation }) => {\n const stopColors = ranges.map(range => range.value);\n // When orientation is vertical, since the gauge starts from bottom to top, linear gradient should be reversed\n return orientation === 'vertical' ? stopColors.reverse() : stopColors;\n};\n\n/**\n * calculate linear gradient stops from ranges\n * @method getGradientStops\n * @param {Object} input\n * @param {Array} ranges\n * @param {String} orientation\n * @return {Array} stops\n */\nexport const getGradientStops = ({ ranges, orientation }) => {\n const stops = [];\n const offsets = getGradientStopOffsets({ ranges, orientation });\n const stopColors = getGradientStopColors({ ranges, orientation });\n // Initialize stops with the first color stop\n stops.push({ offset: `${offsets[0]}%`, stopColor: stopColors[0] });\n // Add the remaining color stops with gradient change at each stop\n for (let i = 1; i < ranges.length; i += 1) {\n stops.push({ offset: `${offsets[i - 1]}%`, stopColor: stopColors[i] });\n stops.push({ offset: `${offsets[i]}%`, stopColor: stopColors[i] });\n }\n return stops;\n};\n\n/**\n * calculate linear gradient dimensions\n * @method getGradientDimensions\n * @param {String} orientation\n * @return {Object} dimensions\n * @return {String} dimensions.x1\n * @return {String} dimensions.y1\n * @return {String} dimensions.x2\n * @return {String} dimensions.y2\n */\nexport const getGradientDimensions = orientation => {\n const x1 = '0%';\n const y1 = '0%';\n const x2 = orientation === 'horizontal' ? '100%' : '0%';\n const y2 = orientation === 'horizontal' ? '0%' : '100%';\n return { x1, y1, x2, y2 };\n};\n\ninterface GaugeOptions {\n [key: string]: any;\n}\n\n// map for new options names to old option names\nconst gaugeOptionsMapping = {\n majorTickInterval: 'majorUnit',\n gaugeRanges: 'ranges',\n};\n\n/**\n * Helper method to update the option names which can be mapped to pure component options\n * @method mapToOldKey\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapToOldKey = (options: GaugeOptions): GaugeOptions =>\n mapKeys(options, (val, key) => (gaugeOptionsMapping[key] ? gaugeOptionsMapping[key] : key));\n\ntype LabelOrValue = 'label' | 'value';\n\n/**\n * Helper method to map labelDisplay and valueDisplay options to pure component option names\n * @method mapToOldKey\n * @param {string} labelOrValue\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapValueLabelDisplay = (labelOrValue: LabelOrValue, options: GaugeOptions): GaugeOptions => {\n const rangeOrValue: string = labelOrValue === 'value' ? 'Value' : 'Range';\n const showKey: string = labelOrValue === 'value' ? 'showValue' : 'showLabels';\n const percentKey = `usePercentage${rangeOrValue}`;\n const optionString = `${labelOrValue}Display`;\n const newOptions = { ...options };\n if (newOptions[optionString]) {\n if (newOptions[optionString] === 'number') {\n newOptions[showKey] = true;\n newOptions[percentKey] = false;\n } else if (newOptions[optionString] === 'percentage') {\n newOptions[showKey] = true;\n newOptions[percentKey] = true;\n } else {\n newOptions[showKey] = false;\n newOptions[percentKey] = false;\n }\n }\n return omit(newOptions, [optionString]);\n};\n\n/**\n * Chained helper for mapping the option properties (and values) we expose in config.ts into property values that pure component accepts\n * This is for options that has new key name and can not directly be mapped with pure component props\n * @method convertToGaugeProperties\n * @param {Object} originalOptions\n * @returns {Object}\n */\nexport const convertToGaugeProperties = (originalOptions: GaugeOptions): GaugeOptions =>\n chain(mapToOldKey(originalOptions))\n .thru(options => mapValueLabelDisplay('label', options))\n .thru(options => mapValueLabelDisplay('value', options))\n .value();\n","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");"],"sourceRoot":""}
@@ -127,17 +127,25 @@ module.exports = require("lodash");
127
127
 
128
128
 
129
129
  var _taggedTemplateLiteral = __webpack_require__(23);
130
+
130
131
  var _templateObject;
132
+
131
133
  Object.defineProperty(exports, "__esModule", {
132
134
  value: true
133
135
  });
134
136
  exports.getStyledShape = exports.mapToOldKey = void 0;
137
+
135
138
  var lodash_1 = __webpack_require__(3);
139
+
136
140
  var styled_components_1 = __webpack_require__(2);
141
+
137
142
  var pick_1 = __webpack_require__(73);
143
+
138
144
  var variables_1 = __webpack_require__(27);
139
- var propUtils_1 = __webpack_require__(74);
140
- // map for new options names to old option names
145
+
146
+ var propUtils_1 = __webpack_require__(74); // map for new options names to old option names
147
+
148
+
141
149
  var shapeOptionsMapping = {
142
150
  fillColor: 'fill',
143
151
  strokeColor: 'stroke',
@@ -150,17 +158,20 @@ var shapeOptionsMapping = {
150
158
  * @param {Object} options
151
159
  * @returns {Object}
152
160
  */
161
+
153
162
  var mapToOldKey = function mapToOldKey(options) {
154
163
  return (0, lodash_1.mapKeys)(options, function (val, key) {
155
164
  return shapeOptionsMapping[key] ? shapeOptionsMapping[key] : key;
156
165
  });
157
166
  };
167
+
158
168
  exports.mapToOldKey = mapToOldKey;
159
169
  /**
160
170
  * Helper method to get styled component for ellipse or rectangle
161
171
  * @method mapToOldKey
162
172
  * @param {Shape} shape
163
173
  */
174
+
164
175
  var getStyledShape = function getStyledShape(shape) {
165
176
  return (0, styled_components_1.default)(shape)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n fill: ", ";\n stroke: ", ";\n cursor: ", ";\n"])), function (props) {
166
177
  return props.fill && (0, propUtils_1.formatColor)(props.fill) || (0, pick_1.default)({
@@ -182,6 +193,7 @@ var getStyledShape = function getStyledShape(shape) {
182
193
  return props.onClick ? 'pointer' : 'inherit';
183
194
  });
184
195
  };
196
+
185
197
  exports.getStyledShape = getStyledShape;
186
198
 
187
199
  /***/ }),
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/taggedTemplateLiteral\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"lodash\"","webpack:///./src/common/shapeUtils.ts","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/visualizations-shared/propUtils\""],"names":["lodash_1","require","styled_components_1","pick_1","variables_1","propUtils_1","shapeOptionsMapping","fillColor","strokeColor","strokeDashStyle","strokeJoinStyle","mapToOldKey","options","mapKeys","val","key","exports","getStyledShape","shape","default","_templateObject","_taggedTemplateLiteral","props","fill","formatColor","enterprise","light","gray80","dark","gray25","prisma","backgroundColorSidebar","stroke","textColor","neutral500","onClick"],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,8C;;;;;;;ACAA,yE;;;;;;;ACAA,qD;;;;;;;ACAA,mC;;;;;;;;;;;;;;;;ACAA,IAAAA,QAAA,GAAAC,mBAAA;AACA,IAAAC,mBAAA,GAAAD,mBAAA;AACA,IAAAE,MAAA,GAAAF,mBAAA;AACA,IAAAG,WAAA,GAAAH,mBAAA;AACA,IAAAI,WAAA,GAAAJ,mBAAA;AAMA;AACA,IAAMK,mBAAmB,GAAG;EACxBC,SAAS,EAAE,MAAM;EACjBC,WAAW,EAAE,QAAQ;EACrBC,eAAe,EAAE,iBAAiB;EAClCC,eAAe,EAAE;CACpB;AAED;;;;;;AAMO,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,OAAqB;EAAA,OAC7C,IAAAZ,QAAA,CAAAa,OAAO,EAACD,OAAO,EAAE,UAACE,GAAG,EAAEC,GAAG;IAAA,OAAMT,mBAAmB,CAACS,GAAG,CAAC,GAAGT,mBAAmB,CAACS,GAAG,CAAC,GAAGA,GAAG;EAAA,CAAC,CAAC;AAAA;AADlFC,OAAA,CAAAL,WAAW,GAAAA,WAAA;AAKxB;;;;;AAKO,IAAMM,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAY;EAAA,OAAK,IAAAhB,mBAAA,CAAAiB,OAAM,EAACD,KAAK,CAAC,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,kEACjD,UAAAC,KAAK;IAAA,OACRA,KAAK,CAACC,IAAI,IAAI,IAAAlB,WAAA,CAAAmB,WAAW,EAACF,KAAK,CAACC,IAAI,CAAC,IACtC,IAAApB,MAAA,CAAAgB,OAAI,EAAC;MACDM,UAAU,EAAE;QACRC,KAAK,EAAEtB,WAAA,CAAAe,OAAS,CAACQ,MAAM;QACvBC,IAAI,EAAExB,WAAA,CAAAe,OAAS,CAACU;OACnB;MACDC,MAAM,EAAE1B,WAAA,CAAAe,OAAS,CAACY;KACrB,CAAC,CAACT,KAAK,CAAC;EAAA,GACH,UAAAA,KAAK;IAAA,OACVA,KAAK,CAACU,MAAM,IAAI,IAAA3B,WAAA,CAAAmB,WAAW,EAACF,KAAK,CAACU,MAAM,CAAC,IAC1C,IAAA7B,MAAA,CAAAgB,OAAI,EAAC;MACDM,UAAU,EAAE;QACRG,IAAI,EAAExB,WAAA,CAAAe,OAAS,CAACQ,MAAM;QACtBD,KAAK,EAAEtB,WAAA,CAAAe,OAAS,CAACc;OACpB;MACDH,MAAM,EAAE1B,WAAA,CAAAe,OAAS,CAACe;KACrB,CAAC,CAACZ,KAAK,CAAC;EAAA,GACH,UAAAA,KAAK;IAAA,OAAKA,KAAK,CAACa,OAAO,GAAG,SAAS,GAAG,SAAS;EAAA,CAAC;AAAA,CAC7D;AApBYnB,OAAA,CAAAC,cAAc,GAAAA,cAAA,C;;;;;;;AClC3B,gD;;;;;;;ACAA,oE","file":"shapeUtils.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 = 72);\n","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/taggedTemplateLiteral\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"lodash\");","import { mapKeys } from 'lodash';\nimport styled from 'styled-components';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { formatColor } from '@splunk/visualizations-shared/propUtils';\n\ninterface ShapeOptions {\n [key: string]: any;\n}\n\n// map for new options names to old option names\nconst shapeOptionsMapping = {\n fillColor: 'fill',\n strokeColor: 'stroke',\n strokeDashStyle: 'strokeDasharray',\n strokeJoinStyle: 'strokeLinejoin',\n};\n\n/**\n * Helper method to update the option names to old option names\n * @method mapToOldKey\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapToOldKey = (options: ShapeOptions): ShapeOptions =>\n mapKeys(options, (val, key) => (shapeOptionsMapping[key] ? shapeOptionsMapping[key] : key));\n\ntype Shape = 'ellipse' | 'rect';\n\n/**\n * Helper method to get styled component for ellipse or rectangle\n * @method mapToOldKey\n * @param {Shape} shape\n */\nexport const getStyledShape = (shape: Shape) => styled(shape)`\n fill: ${props =>\n (props.fill && formatColor(props.fill)) ||\n pick({\n enterprise: {\n light: variables.gray80,\n dark: variables.gray25,\n },\n prisma: variables.backgroundColorSidebar,\n })(props)};\n stroke: ${props =>\n (props.stroke && formatColor(props.stroke)) ||\n pick({\n enterprise: {\n dark: variables.gray80,\n light: variables.textColor,\n },\n prisma: variables.neutral500,\n })(props)};\n cursor: ${props => (props.onClick ? 'pointer' : 'inherit')};\n`;\n","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/visualizations-shared/propUtils\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/taggedTemplateLiteral\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"lodash\"","webpack:///./src/common/shapeUtils.ts","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/visualizations-shared/propUtils\""],"names":[],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,8C;;;;;;;ACAA,yE;;;;;;;ACAA,qD;;;;;;;ACAA,mC;;;;;;;;;;;;;;;;;;;ACAA;;AACA;;AACA;;AACA;;AACA,0C,CAMA;;;AACA,IAAM,mBAAmB,GAAG;AACxB,WAAS,EAAE,MADa;AAExB,aAAW,EAAE,QAFW;AAGxB,iBAAe,EAAE,iBAHO;AAIxB,iBAAe,EAAE;AAJO,CAA5B;AAOA;;;;;AAKG;;AACI,IAAM,WAAW,GAAG,SAAd,WAAc,CAAC,OAAD;AAAA,SACvB,sBAAQ,OAAR,EAAiB,UAAC,GAAD,EAAM,GAAN;AAAA,WAAe,mBAAmB,CAAC,GAAD,CAAnB,GAA2B,mBAAmB,CAAC,GAAD,CAA9C,GAAsD,GAArE;AAAA,GAAjB,CADuB;AAAA,CAApB;;AAAM,sBAAW,WAAX;AAKb;;;;AAIG;;AACI,IAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,KAAD;AAAA,SAAkB,iCAAO,KAAP,CAAlB,+HAClB,eAAK;AAAA,WACR,KAAK,CAAC,IAAN,IAAc,6BAAY,KAAK,CAAC,IAAlB,CAAf,IACA,oBAAK;AACD,gBAAU,EAAE;AACR,aAAK,EAAE,oBAAU,MADT;AAER,YAAI,EAAE,oBAAU;AAFR,OADX;AAKD,YAAM,EAAE,oBAAU;AALjB,KAAL,EAMG,KANH,CAFS;AAAA,GADa,EAUhB,eAAK;AAAA,WACV,KAAK,CAAC,MAAN,IAAgB,6BAAY,KAAK,CAAC,MAAlB,CAAjB,IACA,oBAAK;AACD,gBAAU,EAAE;AACR,YAAI,EAAE,oBAAU,MADR;AAER,aAAK,EAAE,oBAAU;AAFT,OADX;AAKD,YAAM,EAAE,oBAAU;AALjB,KAAL,EAMG,KANH,CAFW;AAAA,GAVW,EAmBhB,eAAK;AAAA,WAAK,KAAK,CAAC,OAAN,GAAgB,SAAhB,GAA4B,SAAjC;AAAA,GAnBW;AAAA,CAAvB;;AAAM,yBAAc,cAAd,C;;;;;;;AClCb,gD;;;;;;;ACAA,oE","file":"shapeUtils.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 = 72);\n","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/taggedTemplateLiteral\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"lodash\");","import { mapKeys } from 'lodash';\nimport styled from 'styled-components';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { formatColor } from '@splunk/visualizations-shared/propUtils';\n\ninterface ShapeOptions {\n [key: string]: any;\n}\n\n// map for new options names to old option names\nconst shapeOptionsMapping = {\n fillColor: 'fill',\n strokeColor: 'stroke',\n strokeDashStyle: 'strokeDasharray',\n strokeJoinStyle: 'strokeLinejoin',\n};\n\n/**\n * Helper method to update the option names to old option names\n * @method mapToOldKey\n * @param {Object} options\n * @returns {Object}\n */\nexport const mapToOldKey = (options: ShapeOptions): ShapeOptions =>\n mapKeys(options, (val, key) => (shapeOptionsMapping[key] ? shapeOptionsMapping[key] : key));\n\ntype Shape = 'ellipse' | 'rect';\n\n/**\n * Helper method to get styled component for ellipse or rectangle\n * @method mapToOldKey\n * @param {Shape} shape\n */\nexport const getStyledShape = (shape: Shape) => styled(shape)`\n fill: ${props =>\n (props.fill && formatColor(props.fill)) ||\n pick({\n enterprise: {\n light: variables.gray80,\n dark: variables.gray25,\n },\n prisma: variables.backgroundColorSidebar,\n })(props)};\n stroke: ${props =>\n (props.stroke && formatColor(props.stroke)) ||\n pick({\n enterprise: {\n dark: variables.gray80,\n light: variables.textColor,\n },\n prisma: variables.neutral500,\n })(props)};\n cursor: ${props => (props.onClick ? 'pointer' : 'inherit')};\n`;\n","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/visualizations-shared/propUtils\");"],"sourceRoot":""}
@@ -126,24 +126,33 @@ module.exports = require("@babel/runtime/helpers/toConsumableArray");
126
126
 
127
127
 
128
128
  var _toConsumableArray = __webpack_require__(2);
129
+
129
130
  var _defineProperty = __webpack_require__(1);
131
+
130
132
  var __rest = this && this.__rest || function (s, e) {
131
133
  var t = {};
134
+
132
135
  for (var p in s) {
133
136
  if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
134
137
  }
138
+
135
139
  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
136
140
  if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
137
141
  }
138
142
  return t;
139
143
  };
144
+
140
145
  Object.defineProperty(exports, "__esModule", {
141
146
  value: true
142
147
  });
143
148
  exports.insertLayout = exports.isDynamicOption = exports.uncollapseEditorConfig = exports.generatePrecisionValues = exports.getInitialPreset = exports.enhanceOptionsSchemaWithDynamicOptions = exports.enhanceConfig = void 0;
149
+
144
150
  var lodash_1 = __webpack_require__(0);
151
+
145
152
  var schemaUtils_1 = __webpack_require__(14);
153
+
146
154
  var VizBehavior_1 = __webpack_require__(15);
155
+
147
156
  var dynamicOptionsDSLType = {
148
157
  type: 'string',
149
158
  pattern: schemaUtils_1.DYNAMIC_OPTIONS_DSL_PATTERN
@@ -153,20 +162,22 @@ var dynamicOptionsDSLType = {
153
162
  * @param optionsSchema a visualization's options schema
154
163
  * @returns an updated options schema that additionally allows strings starting with > for each option
155
164
  */
165
+
156
166
  function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
157
167
  var enhancedOptionsSchema = {};
158
168
  Object.keys(optionsSchema).forEach(function (key) {
159
169
  var _a = optionsSchema[key],
160
- title = _a.title,
161
- description = _a.description,
162
- readOnly = _a.readOnly,
163
- writeOnly = _a.writeOnly,
164
- examples = _a.examples,
165
- defaultValue = _a.default,
166
- type = _a.type,
167
- properties = _a.properties,
168
- patternProperties = _a.patternProperties,
169
- remainingSchemaEntry = __rest(_a, ["title", "description", "readOnly", "writeOnly", "examples", "default", "type", "properties", "patternProperties"]);
170
+ title = _a.title,
171
+ description = _a.description,
172
+ readOnly = _a.readOnly,
173
+ writeOnly = _a.writeOnly,
174
+ examples = _a.examples,
175
+ defaultValue = _a.default,
176
+ type = _a.type,
177
+ properties = _a.properties,
178
+ patternProperties = _a.patternProperties,
179
+ remainingSchemaEntry = __rest(_a, ["title", "description", "readOnly", "writeOnly", "examples", "default", "type", "properties", "patternProperties"]);
180
+
170
181
  var annotations = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, title !== undefined && {
171
182
  title: title
172
183
  }), description !== undefined && {
@@ -180,12 +191,14 @@ function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
180
191
  }), defaultValue !== undefined && {
181
192
  default: defaultValue
182
193
  });
194
+
183
195
  if (type === 'object') {
184
196
  enhancedOptionsSchema[key] = Object.assign(Object.assign(Object.assign(Object.assign({}, remainingSchemaEntry), annotations), {
185
197
  type: type
186
198
  }), properties && {
187
199
  properties: enhanceOptionsSchemaWithDynamicOptions(properties)
188
200
  });
201
+
189
202
  if (patternProperties) {
190
203
  var enhancedPatternProperties = {};
191
204
  Object.keys(patternProperties).forEach(function (opt) {
@@ -203,6 +216,7 @@ function enhanceOptionsSchemaWithDynamicOptions(optionsSchema) {
203
216
  });
204
217
  return enhancedOptionsSchema;
205
218
  }
219
+
206
220
  exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamicOptions;
207
221
  /**
208
222
  * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block
@@ -211,11 +225,14 @@ exports.enhanceOptionsSchemaWithDynamicOptions = enhanceOptionsSchemaWithDynamic
211
225
  * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports
212
226
  * and containing `open: false` for all editor panels in editorConfig
213
227
  */
228
+
214
229
  function enhanceConfig(vizConfig) {
215
230
  var enhancedConfig = Object.assign({}, vizConfig);
231
+
216
232
  if (vizConfig.supports.indexOf(VizBehavior_1.VizBehavior.DYNAMIC_OPTIONS) !== -1) {
217
233
  enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);
218
234
  }
235
+
219
236
  enhancedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
220
237
  return Object.assign(Object.assign({}, config), {
221
238
  open: config.open || false
@@ -223,6 +240,7 @@ function enhanceConfig(vizConfig) {
223
240
  });
224
241
  return enhancedConfig;
225
242
  }
243
+
226
244
  exports.enhanceConfig = enhanceConfig;
227
245
  /**
228
246
  * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig
@@ -230,6 +248,7 @@ exports.enhanceConfig = enhanceConfig;
230
248
  * @param vizConfig a Visualization Config
231
249
  * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig
232
250
  */
251
+
233
252
  function uncollapseEditorConfig(vizConfig) {
234
253
  var editorPanelUncollapsedConfig = Object.assign({}, vizConfig);
235
254
  editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(function (config) {
@@ -239,13 +258,16 @@ function uncollapseEditorConfig(vizConfig) {
239
258
  });
240
259
  return editorPanelUncollapsedConfig;
241
260
  }
261
+
242
262
  exports.uncollapseEditorConfig = uncollapseEditorConfig;
263
+
243
264
  function isDynamicOption(option) {
244
265
  return option && typeof option === 'string' && option.trim().startsWith('>') || false;
245
266
  }
246
- exports.isDynamicOption = isDynamicOption;
247
- // private helpers to improve readability of getInitialPreset
267
+
268
+ exports.isDynamicOption = isDynamicOption; // private helpers to improve readability of getInitialPreset
248
269
  // this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset
270
+
249
271
  /**
250
272
  * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset
251
273
  * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset
@@ -254,6 +276,7 @@ exports.isDynamicOption = isDynamicOption;
254
276
  *
255
277
  * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values
256
278
  */
279
+
257
280
  function hasCompatibleContexts(vizContext, presetContext) {
258
281
  var presetContextKeys = Object.keys(presetContext);
259
282
  return presetContextKeys.every(function (contextKey) {
@@ -263,6 +286,8 @@ function hasCompatibleContexts(vizContext, presetContext) {
263
286
  /**
264
287
  * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions
265
288
  */
289
+
290
+
266
291
  function hasCompatibleOptions(vizOptions, presetOptions) {
267
292
  var presetOptionKeys = Object.keys(presetOptions);
268
293
  return presetOptionKeys.every(function (optionKey) {
@@ -277,18 +302,21 @@ function hasCompatibleOptions(vizOptions, presetOptions) {
277
302
  * @param {Object} vizOptions - the current vizOptions definition
278
303
  * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset
279
304
  */
305
+
306
+
280
307
  function getInitialPreset(vizContext, vizOptions, presets) {
281
308
  return presets.find(function (preset) {
282
309
  var presetContext = (0, lodash_1.get)(preset, ['value', 'context'], {});
283
310
  var presetOptions = (0, lodash_1.get)(preset, ['value', 'options'], {});
284
311
  var presetContextKeys = Object.keys(presetContext);
285
- var presetOptionKeys = Object.keys(presetOptions);
286
- // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)
312
+ var presetOptionKeys = Object.keys(presetOptions); // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)
287
313
  // if not, then the preset is invalid in config.ts
314
+
288
315
  if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;
289
316
  return hasCompatibleContexts(vizContext, presetContext) && hasCompatibleOptions(vizOptions, presetOptions);
290
317
  });
291
318
  }
319
+
292
320
  exports.getInitialPreset = getInitialPreset;
293
321
  /**
294
322
  * generates number precision values for a Select editor
@@ -296,6 +324,7 @@ exports.getInitialPreset = getInitialPreset;
296
324
  * @param {Number} numPrecisionValues - number of integer precision values to generate
297
325
  * @returns {{ label: string; value; string }[]} array of { label, value } tuples
298
326
  */
327
+
299
328
  function generatePrecisionValues(numPrecisionValues) {
300
329
  return (0, lodash_1.range)(0, numPrecisionValues + 1).map(function (i) {
301
330
  return {
@@ -304,6 +333,7 @@ function generatePrecisionValues(numPrecisionValues) {
304
333
  };
305
334
  });
306
335
  }
336
+
307
337
  exports.generatePrecisionValues = generatePrecisionValues;
308
338
  /**
309
339
  * insert layout in layout array, return a new layout array instead of updating the original
@@ -313,12 +343,15 @@ exports.generatePrecisionValues = generatePrecisionValues;
313
343
  * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert
314
344
  * @returns {EditorLayoutConfig[][]} new editor layout with insertion
315
345
  */
346
+
316
347
  var insertLayout = function insertLayout(layout, index) {
317
348
  for (var _len = arguments.length, layoutItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
318
349
  layoutItems[_key - 2] = arguments[_key];
319
350
  }
351
+
320
352
  return [].concat(_toConsumableArray(layout.slice(0, index)), layoutItems, _toConsumableArray(layout.slice(index)));
321
353
  };
354
+
322
355
  exports.insertLayout = insertLayout;
323
356
 
324
357
  /***/ }),
@@ -339,6 +372,7 @@ Object.defineProperty(exports, "__esModule", {
339
372
  });
340
373
  exports.VizBehavior = void 0;
341
374
  var VizBehavior;
375
+
342
376
  (function (VizBehavior) {
343
377
  /**
344
378
  * Dynamic Options Behavior.
@@ -358,6 +392,7 @@ var VizBehavior;
358
392
  * missing.
359
393
  * @type {string}
360
394
  */
395
+
361
396
  VizBehavior["PLACEHOLDER"] = "placeholder";
362
397
  VizBehavior["PAGE_AND_SORT"] = "page-and-sort";
363
398
  VizBehavior["TRELLIS"] = "trellis";
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///./src/common/interfaces/VizBehavior.ts"],"names":["lodash_1","require","schemaUtils_1","VizBehavior_1","dynamicOptionsDSLType","type","pattern","DYNAMIC_OPTIONS_DSL_PATTERN","enhanceOptionsSchemaWithDynamicOptions","optionsSchema","enhancedOptionsSchema","Object","keys","forEach","key","_a","title","description","readOnly","writeOnly","examples","defaultValue","default","properties","patternProperties","remainingSchemaEntry","__rest","annotations","assign","undefined","enhancedPatternProperties","opt","_defineProperty","anyOf","exports","enhanceConfig","vizConfig","enhancedConfig","supports","indexOf","VizBehavior","DYNAMIC_OPTIONS","editorConfig","map","config","open","uncollapseEditorConfig","editorPanelUncollapsedConfig","isDynamicOption","option","trim","startsWith","hasCompatibleContexts","vizContext","presetContext","presetContextKeys","every","contextKey","hasCompatibleOptions","vizOptions","presetOptions","presetOptionKeys","optionKey","getInitialPreset","presets","find","preset","get","length","generatePrecisionValues","numPrecisionValues","range","i","label","concat","repeat","value","insertLayout","layout","index","_len","arguments","layoutItems","Array","_key","_toConsumableArray","slice"],"mappings":"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","file":"configUtils.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 = 13);\n","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n getInitialPreset,\n generatePrecisionValues,\n uncollapseEditorConfig,\n isDynamicOption,\n};\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n TRELLIS = 'trellis',\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///./src/common/interfaces/VizBehavior.ts"],"names":[],"mappings":"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","file":"configUtils.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 = 13);\n","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n getInitialPreset,\n generatePrecisionValues,\n uncollapseEditorConfig,\n isDynamicOption,\n};\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n TRELLIS = 'trellis',\n}\n"],"sourceRoot":""}