@splunk/visualizations 25.13.1 → 26.0.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 (147) hide show
  1. package/Area.config.js +216 -216
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +529 -561
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +213 -213
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +394 -386
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +140 -140
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +313 -305
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +15 -15
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +149 -144
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +205 -205
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +387 -379
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +45 -45
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +157 -144
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +11 -11
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +273 -261
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +46 -46
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +267 -262
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +8 -8
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +110 -104
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +220 -220
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +404 -396
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +27 -27
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +557 -548
  44. package/LinkGraph.js.map +1 -1
  45. package/Map.config.js +71 -71
  46. package/Map.config.js.map +1 -1
  47. package/Map.js +471 -465
  48. package/Map.js.map +1 -1
  49. package/Markdown.config.js +23 -23
  50. package/Markdown.config.js.map +1 -1
  51. package/Markdown.js +151 -145
  52. package/Markdown.js.map +1 -1
  53. package/MarkerGauge.config.js +84 -84
  54. package/MarkerGauge.config.js.map +1 -1
  55. package/MarkerGauge.js +295 -289
  56. package/MarkerGauge.js.map +1 -1
  57. package/ParallelCoordinates.config.js +23 -23
  58. package/ParallelCoordinates.config.js.map +1 -1
  59. package/ParallelCoordinates.js +164 -162
  60. package/ParallelCoordinates.js.map +1 -1
  61. package/Pie.config.js +24 -24
  62. package/Pie.config.js.map +1 -1
  63. package/Pie.js +233 -228
  64. package/Pie.js.map +1 -1
  65. package/Punchcard.config.js +33 -33
  66. package/Punchcard.config.js.map +1 -1
  67. package/Punchcard.js +278 -279
  68. package/Punchcard.js.map +1 -1
  69. package/Rectangle.config.js +46 -46
  70. package/Rectangle.config.js.map +1 -1
  71. package/Rectangle.js +154 -142
  72. package/Rectangle.js.map +1 -1
  73. package/Sankey.config.js +19 -19
  74. package/Sankey.config.js.map +1 -1
  75. package/Sankey.js +281 -275
  76. package/Sankey.js.map +1 -1
  77. package/Scatter.config.js +135 -135
  78. package/Scatter.config.js.map +1 -1
  79. package/Scatter.js +304 -299
  80. package/Scatter.js.map +1 -1
  81. package/SingleValue.config.js +119 -119
  82. package/SingleValue.config.js.map +1 -1
  83. package/SingleValue.js +359 -341
  84. package/SingleValue.js.map +1 -1
  85. package/SingleValueBasic.js +14 -14
  86. package/SingleValueBasic.js.map +1 -1
  87. package/SingleValueIcon.config.js +117 -117
  88. package/SingleValueIcon.config.js.map +1 -1
  89. package/SingleValueIcon.js +373 -371
  90. package/SingleValueIcon.js.map +1 -1
  91. package/SingleValueRadial.config.js +157 -115
  92. package/SingleValueRadial.config.js.map +1 -1
  93. package/SingleValueRadial.js +1114 -540
  94. package/SingleValueRadial.js.map +1 -1
  95. package/SparkLine.js +50 -20
  96. package/SparkLine.js.map +1 -1
  97. package/Table.config.js +54 -54
  98. package/Table.config.js.map +1 -1
  99. package/Table.js +302 -286
  100. package/Table.js.map +1 -1
  101. package/common/Charting.js +41 -41
  102. package/common/Charting.js.map +1 -1
  103. package/common/EventsDoc.js +15 -14
  104. package/common/EventsDoc.js.map +1 -1
  105. package/common/GaugeMajorTicks.js +2 -2
  106. package/common/GaugeMajorTicks.js.map +1 -1
  107. package/common/GaugeValueMarker.js +2 -2
  108. package/common/GaugeValueMarker.js.map +1 -1
  109. package/common/OptionsDoc.js +22 -22
  110. package/common/OptionsDoc.js.map +1 -1
  111. package/common/OverviewDoc.js +32 -27
  112. package/common/OverviewDoc.js.map +1 -1
  113. package/common/SplunkVisualization.js +4 -4
  114. package/common/SplunkVisualization.js.map +1 -1
  115. package/common/SplunkVisualizationApi.js +2 -2
  116. package/common/SplunkVisualizationApi.js.map +1 -1
  117. package/common/ThemesDoc.js +14 -14
  118. package/common/ThemesDoc.js.map +1 -1
  119. package/common/chartingUtils.js +12 -12
  120. package/common/chartingUtils.js.map +1 -1
  121. package/common/docUtils.js +4 -4
  122. package/common/docUtils.js.map +1 -1
  123. package/common/gaugeUtils.js +112 -112
  124. package/common/gaugeUtils.js.map +1 -1
  125. package/common/shapeUtils.js +21 -15
  126. package/common/shapeUtils.js.map +1 -1
  127. package/common/utils/configUtils.js +10 -9
  128. package/common/utils/configUtils.js.map +1 -1
  129. package/common/utils/dataUtils.js +2 -2
  130. package/common/utils/dataUtils.js.map +1 -1
  131. package/common/utils/hocUtils.js +2 -2
  132. package/common/utils/hocUtils.js.map +1 -1
  133. package/common/utils/layoutUtils.js +2 -2
  134. package/common/utils/layoutUtils.js.map +1 -1
  135. package/common/utils/mapUtils.js +84 -80
  136. package/common/utils/mapUtils.js.map +1 -1
  137. package/common/utils/singleValueUtils.js +2 -2
  138. package/common/utils/singleValueUtils.js.map +1 -1
  139. package/common/utils/testHelper.js +27 -9
  140. package/common/utils/testHelper.js.map +1 -1
  141. package/common/utils/trellisUtils.js +26 -26
  142. package/common/utils/trellisUtils.js.map +1 -1
  143. package/common/utils/urlUtils.js +2 -2
  144. package/common/utils/urlUtils.js.map +1 -1
  145. package/common/withDashboardViz.js +107 -104
  146. package/common/withDashboardViz.js.map +1 -1
  147. package/package.json +19 -19
package/SparkLine.js CHANGED
@@ -113,6 +113,20 @@ module.exports = require("@babel/runtime/helpers/createClass");
113
113
 
114
114
  /***/ }),
115
115
 
116
+ /***/ 2:
117
+ /***/ (function(module, exports) {
118
+
119
+ module.exports = require("@splunk/ui-utils/i18n");
120
+
121
+ /***/ }),
122
+
123
+ /***/ 25:
124
+ /***/ (function(module, exports) {
125
+
126
+ module.exports = require("@splunk/ui-utils/id");
127
+
128
+ /***/ }),
129
+
116
130
  /***/ 3:
117
131
  /***/ (function(module, exports) {
118
132
 
@@ -134,14 +148,14 @@ module.exports = require("@babel/runtime/helpers/extends");
134
148
 
135
149
  /***/ }),
136
150
 
137
- /***/ 61:
151
+ /***/ 62:
138
152
  /***/ (function(module, exports) {
139
153
 
140
154
  module.exports = require("@splunk/react-ui/Popover");
141
155
 
142
156
  /***/ }),
143
157
 
144
- /***/ 62:
158
+ /***/ 63:
145
159
  /***/ (function(module, exports) {
146
160
 
147
161
  module.exports = require("@babel/runtime/helpers/getPrototypeOf");
@@ -155,21 +169,21 @@ module.exports = require("@babel/runtime/helpers/defineProperty");
155
169
 
156
170
  /***/ }),
157
171
 
158
- /***/ 70:
172
+ /***/ 71:
159
173
  /***/ (function(module, exports) {
160
174
 
161
175
  module.exports = require("@babel/runtime/helpers/inherits");
162
176
 
163
177
  /***/ }),
164
178
 
165
- /***/ 71:
179
+ /***/ 72:
166
180
  /***/ (function(module, exports) {
167
181
 
168
182
  module.exports = require("@babel/runtime/helpers/possibleConstructorReturn");
169
183
 
170
184
  /***/ }),
171
185
 
172
- /***/ 86:
186
+ /***/ 87:
173
187
  /***/ (function(module, exports) {
174
188
 
175
189
  module.exports = require("@babel/runtime/helpers/assertThisInitialized");
@@ -194,13 +208,13 @@ __webpack_require__.r(__webpack_exports__);
194
208
  /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);
195
209
  /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
196
210
  /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);
197
- /* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86);
211
+ /* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(87);
198
212
  /* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__);
199
- /* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70);
213
+ /* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71);
200
214
  /* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__);
201
- /* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71);
215
+ /* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(72);
202
216
  /* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__);
203
- /* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62);
217
+ /* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63);
204
218
  /* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__);
205
219
  /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
206
220
  /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7__);
@@ -210,10 +224,14 @@ __webpack_require__.r(__webpack_exports__);
210
224
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);
211
225
  /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3);
212
226
  /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_10__);
213
- /* harmony import */ var _splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61);
214
- /* harmony import */ var _splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_11__);
215
- /* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(4);
216
- /* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_12__);
227
+ /* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4);
228
+ /* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_11__);
229
+ /* harmony import */ var _splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(62);
230
+ /* harmony import */ var _splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12__);
231
+ /* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(2);
232
+ /* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13__);
233
+ /* harmony import */ var _splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(25);
234
+ /* harmony import */ var _splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14__);
217
235
 
218
236
 
219
237
 
@@ -252,11 +270,13 @@ function _isNativeReflectConstruct() {
252
270
 
253
271
 
254
272
 
255
- var StyledSvg = styled_components__WEBPACK_IMPORTED_MODULE_12___default.a.svg.withConfig({
273
+
274
+
275
+ var StyledSvg = styled_components__WEBPACK_IMPORTED_MODULE_11___default.a.svg.withConfig({
256
276
  displayName: "SparkLine__StyledSvg",
257
277
  componentId: "sc-5oplra-0"
258
278
  })(["overflow:hidden;"]);
259
- var StyledTooltip = styled_components__WEBPACK_IMPORTED_MODULE_12___default.a.div.withConfig({
279
+ var StyledTooltip = styled_components__WEBPACK_IMPORTED_MODULE_11___default.a.div.withConfig({
260
280
  displayName: "SparkLine__StyledTooltip",
261
281
  componentId: "sc-5oplra-1"
262
282
  })(["padding:3px 8px;font-size:12px;"]);
@@ -282,6 +302,7 @@ var SparkLine = /*#__PURE__*/function (_Component) {
282
302
  rectArea: null,
283
303
  tooltip: null
284
304
  };
305
+ _this.titleId = Object(_splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14__["createDOMID"])();
285
306
  return _this;
286
307
  }
287
308
  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(SparkLine, [{
@@ -529,7 +550,7 @@ var SparkLine = /*#__PURE__*/function (_Component) {
529
550
  }, {
530
551
  key: "renderTooltip",
531
552
  value: function renderTooltip() {
532
- return this.state.anchor !== null && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(_splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_11___default.a, {
553
+ return this.state.anchor !== null && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(_splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12___default.a, {
533
554
  "data-test": "tooltip",
534
555
  open: this.state.open,
535
556
  anchor: this.state.anchor,
@@ -621,7 +642,8 @@ var SparkLine = /*#__PURE__*/function (_Component) {
621
642
  height = _this$props9.height,
622
643
  isArea = _this$props9.isArea,
623
644
  lineStrokeWidth = _this$props9.lineStrokeWidth,
624
- width = _this$props9.width;
645
+ width = _this$props9.width,
646
+ title = _this$props9.title;
625
647
  if (data.length === 0) {
626
648
  return null;
627
649
  }
@@ -646,8 +668,14 @@ var SparkLine = /*#__PURE__*/function (_Component) {
646
668
  ref: elementRef
647
669
  }, Object(lodash__WEBPACK_IMPORTED_MODULE_10__["omit"])(this.props, Object(lodash__WEBPACK_IMPORTED_MODULE_10__["keys"])(SparkLine.propTypes))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement(StyledSvg, {
648
670
  height: height,
649
- width: width
650
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement("g", null, this.renderCursor(), this.renderPolyline(points), this.renderArea(points), dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null, showTooltip ? this.renderRect(points, xMargin) : null, showTooltip ? this.renderTooltip() : null)));
671
+ width: width,
672
+ role: "img",
673
+ "aria-labelledby": this.titleId,
674
+ "data-test": "sparkline-svg"
675
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement("title", {
676
+ id: this.titleId,
677
+ "data-test": "sparkline-title"
678
+ }, title || Object(_splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13__["_"])('Source count over time sparkline trend')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default.a.createElement("g", null, this.renderCursor(), this.renderPolyline(points), this.renderArea(points), dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null, showTooltip ? this.renderRect(points, xMargin) : null, showTooltip ? this.renderTooltip() : null)));
651
679
  }
652
680
  }]);
653
681
  return SparkLine;
@@ -724,7 +752,9 @@ _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(Spa
724
752
  /**
725
753
  * The width of the container.
726
754
  */
727
- width: prop_types__WEBPACK_IMPORTED_MODULE_8___default.a.number.isRequired
755
+ width: prop_types__WEBPACK_IMPORTED_MODULE_8___default.a.number.isRequired,
756
+ /** Sets the a11y title text on sparkline. */
757
+ title: prop_types__WEBPACK_IMPORTED_MODULE_8___default.a.string
728
758
  });
729
759
  _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(SparkLine, "defaultProps", {
730
760
  acceptNull: false,
package/SparkLine.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"lodash\"","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///./src/SparkLine/SparkLine.jsx"],"names":["StyledSvg","styled","svg","withConfig","displayName","componentId","StyledTooltip","div","SparkLine","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","_len","arguments","length","rest","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","el","setState","anchor","state","currentPointX","open","rectArea","tooltip","_createClass","key","value","getMax","_this2","_this$props","data","acceptNull","yMax","dataMax","max","fillNull","undefined","getMin","_this3","_this$props2","yMin","dataMin","min","getXUnit","xMargin","_this$props3","width","xUnit","Math","getYUnit","yMargin","height","maxValue","minValue","yUnit","getSegmentSets","points","lines","currentLine","forEach","p","idx","isNull","push","map","dataToPoints","val","x","y","renderRect","_this4","_this$props4","i","React","createElement","style","fillOpacity","onMouseOver","e","target","renderArea","_this$props5","fillColor","isArea","segments","s","join","fill","strokeWidth","renderCursor","_this$props6","cursorStroke","cursorStrokeWidth","cursorStrokeLinecap","cursorStrokeDasharray","ref","handleCursorMount","x1","y1","x2","y2","stroke","strokeLinecap","strokeDasharray","renderTooltip","Popover","appearance","defaultPlacement","animation","renderEndDots","dotsToShow","_this$props7","endDotFillColor","endDotRadius","endDotStroke","endDotStrokeWidth","slice","point","cx","cy","r","renderPolyline","_this$props8","lineColor","lineLength","lineStrokeWidth","linePoints","isFinite","lineData","strokeLinejoin","render","_this5","_this$props9","elementRef","showTooltip","showEndDot","endDotCount","_extends","onMouseOut","omit","keys","propTypes","Component","PropTypes","bool","isArray","Error","every","oneOfType","func","object","number","string","oneOf","isRequired"],"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,uC;;;;;;;ACAA,kC;;;;;;;ACAA,+D;;;;;;;ACAA,mC;;;;;;;ACAA,8C;;;;;;;ACAA,2D;;;;;;;ACAA,qD;;;;;;;ACAA,kE;;;;;;;ACAA,kE;;;;;;;ACAA,4D;;;;;;;ACAA,6E;;;;;;;ACAA,yE;;;;;;;ACAA,kE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAmC;AACM;AACgC;AAC1B;AACR;AAEvC,IAAMA,SAAS,GAAGC,yDAAM,CAACC,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wBAG3B;AAED,IAAMC,aAAa,GAAGL,yDAAM,CAACM,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uCAG/B;AAAC,IAEIG,SAAS,0BAAAC,UAAA;EAAAC,sEAAA,CAAAF,SAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,SAAA;EA+FX,SAAAA,UAAYK,KAAK,EAAW;IAAA,IAAAC,KAAA;IAAAC,4EAAA,OAAAP,SAAA;IAAA,SAAAQ,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;IAAA;IACtBP,KAAA,GAAAH,MAAA,CAAAW,IAAA,CAAAC,KAAA,CAAAZ,MAAA,SAAME,KAAK,EAAAW,MAAA,CAAKL,IAAI;IAAEM,4EAAA,CAAAC,mFAAA,CAAAZ,KAAA,wBAwFN,UAAAa,EAAE,EAAI;MACtBb,KAAA,CAAKc,QAAQ,CAAC;QACVC,MAAM,EAAEF;MACZ,CAAC,CAAC;IACN,CAAC;IA3FGb,KAAA,CAAKgB,KAAK,GAAG;MACTD,MAAM,EAAE,IAAI;MACZE,aAAa,EAAE,IAAI;MACnBC,IAAI,EAAE,KAAK;MACXC,QAAQ,EAAE,IAAI;MACdC,OAAO,EAAE;IACb,CAAC;IAAC,OAAApB,KAAA;EACN;EAACqB,yEAAA,CAAA3B,SAAA;IAAA4B,GAAA;IAAAC,KAAA,EAED,SAAAC,OAAA,EAAS;MAAA,IAAAC,MAAA;MAAA,IAAAC,WAAA,GAC8B,IAAI,CAAC3B,KAAK;QAArC4B,IAAI,GAAAD,WAAA,CAAJC,IAAI;QAAEC,UAAU,GAAAF,WAAA,CAAVE,UAAU;QAAEC,IAAI,GAAAH,WAAA,CAAJG,IAAI;MAC9B,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAA;QAAA,OAAUF,UAAU,GAAGG,mDAAG,CAACN,MAAI,CAACO,QAAQ,CAACL,IAAI,CAAC,CAAC,GAAGI,mDAAG,CAACJ,IAAI,CAAC;MAAA,CAAC;MACzE,OAAOE,IAAI,KAAKI,SAAS,GAAGJ,IAAI,GAAGC,OAAO,EAAE;IAChD;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAW,OAAA,EAAS;MAAA,IAAAC,MAAA;MAAA,IAAAC,YAAA,GAC8B,IAAI,CAACrC,KAAK;QAArC4B,IAAI,GAAAS,YAAA,CAAJT,IAAI;QAAEC,UAAU,GAAAQ,YAAA,CAAVR,UAAU;QAAES,IAAI,GAAAD,YAAA,CAAJC,IAAI;MAC9B,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAA;QAAA,OAAUV,UAAU,GAAGW,mDAAG,CAACJ,MAAI,CAACH,QAAQ,CAACL,IAAI,CAAC,CAAC,GAAGY,mDAAG,CAACZ,IAAI,CAAC;MAAA,CAAC;MACzE,OAAOU,IAAI,KAAKJ,SAAS,GAAGI,IAAI,GAAGC,OAAO,EAAE;IAChD;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAhB,GAAA;IAAAC,KAAA,EAMA,SAAAiB,SAASC,OAAO,EAAE;MAAA,IAAAC,YAAA,GACU,IAAI,CAAC3C,KAAK;QAA1B4B,IAAI,GAAAe,YAAA,CAAJf,IAAI;QAAEgB,KAAK,GAAAD,YAAA,CAALC,KAAK,EACnB;MACA,IAAMC,KAAK,GAAG,CAACD,KAAK,GAAGF,OAAO,GAAG,CAAC,KAAKd,IAAI,CAACvB,MAAM,GAAG,CAAC,GAAGuB,IAAI,CAACvB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;MAC7E,OAAOyC,IAAI,CAACd,GAAG,CAAC,CAAC,EAAEa,KAAK,CAAC;IAC7B;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAtB,GAAA;IAAAC,KAAA,EAMA,SAAAuB,SAASC,OAAO,EAAE;MAAA,IACNC,MAAM,GAAK,IAAI,CAACjD,KAAK,CAArBiD,MAAM;MACd,IAAMC,QAAQ,GAAG,IAAI,CAACzB,MAAM,EAAE;MAC9B,IAAM0B,QAAQ,GAAG,IAAI,CAAChB,MAAM,EAAE;;MAE9B;MACA;MACA;MACA,IAAMiB,KAAK,GAAG,CAACH,MAAM,GAAGD,OAAO,GAAG,CAAC,KAAKE,QAAQ,GAAGC,QAAQ,IAAI,CAAC,CAAC;MACjE,OAAOL,IAAI,CAACd,GAAG,CAAC,CAAC,EAAEoB,KAAK,CAAC;IAC7B;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAA7B,GAAA;IAAAC,KAAA,EAOA,SAAA6B,eAAezB,IAAI,EAAE0B,MAAM,EAAE;MAAA,IACjBzB,UAAU,GAAK,IAAI,CAAC7B,KAAK,CAAzB6B,UAAU;MAClB,IAAM0B,KAAK,GAAG,EAAE;MAChB,IAAIC,WAAW,GAAG,EAAE;MAEpB5B,IAAI,CAAC6B,OAAO,CAAC,UAACC,CAAC,EAAEC,GAAG,EAAK;QACrB;QACA,IAAI,CAAC9B,UAAU,IAAI+B,sDAAM,CAACF,CAAC,CAAC,EAAE;UAC1B;UACA,IAAIF,WAAW,CAACnD,MAAM,GAAG,CAAC,EAAE;YACxBkD,KAAK,CAACM,IAAI,CAACL,WAAW,CAAC;UAC3B;UACA;UACAA,WAAW,GAAG,EAAE;QACpB,CAAC,MAAM;UACH;UACAA,WAAW,CAACK,IAAI,CAACP,MAAM,CAACK,GAAG,CAAC,CAAC;QACjC;MACJ,CAAC,CAAC;;MAEF;MACA,IAAIH,WAAW,CAACnD,MAAM,GAAG,CAAC,EAAE;QACxBkD,KAAK,CAACM,IAAI,CAACL,WAAW,CAAC;MAC3B;MAEA,OAAOD,KAAK;IAChB;EAAC;IAAAhC,GAAA;IAAAC,KAAA;IAQD;AACJ;AACA;AACA;IACI,SAAAS,SAAA,EAAW;MAAA,IACCL,IAAI,GAAK,IAAI,CAAC5B,KAAK,CAAnB4B,IAAI;MACZ,OAAOA,IAAI,CAACkC,GAAG,CAAC,UAAAtC,KAAK;QAAA,OAAKA,KAAK,KAAK,IAAI,GAAG,CAAC,GAAGA,KAAK;MAAA,CAAC,CAAC;IAC1D;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAD,GAAA;IAAAC,KAAA,EAOA,SAAAuC,aAAarB,OAAO,EAAEM,OAAO,EAAE;MAAA,IACnBpB,IAAI,GAAK,IAAI,CAAC5B,KAAK,CAAnB4B,IAAI;MACZ,IAAMiB,KAAK,GAAG,IAAI,CAACJ,QAAQ,CAACC,OAAO,CAAC;MACpC,IAAMU,KAAK,GAAG,IAAI,CAACL,QAAQ,CAACC,OAAO,CAAC;MACpC,IAAME,QAAQ,GAAG,IAAI,CAACzB,MAAM,EAAE;MAC9B,IAAM0B,QAAQ,GAAG,IAAI,CAAChB,MAAM,EAAE;MAC9B,OAAOP,IAAI,CACNkC,GAAG,CAAC,UAACE,GAAG,EAAEL,GAAG;QAAA,OAAM;UAChBM,CAAC,EAAEN,GAAG,GAAGd,KAAK,GAAGH,OAAO;UACxBwB,CAAC,EAAEhB,QAAQ,KAAKC,QAAQ,GAAGC,KAAK,GAAGJ,OAAO,GAAG,CAACE,QAAQ,GAAGc,GAAG,IAAIZ,KAAK,GAAGJ;QAC5E,CAAC;MAAA,CAAC,CAAC,CACFc,GAAG,CAAC,UAAAJ,CAAC;QAAA,OAAI,CAACA,CAAC,CAACO,CAAC,EAAEP,CAAC,CAACQ,CAAC,CAAC;MAAA,EAAC;IAC7B;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAA3C,GAAA;IAAAC,KAAA,EAQA,SAAA2C,WAAWb,MAAM,EAAEZ,OAAO,EAAE;MAAA,IAAA0B,MAAA;MAAA,IAAAC,YAAA,GACC,IAAI,CAACrE,KAAK;QAA3B4B,IAAI,GAAAyC,YAAA,CAAJzC,IAAI;QAAEqB,MAAM,GAAAoB,YAAA,CAANpB,MAAM;MACpB,IAAMJ,KAAK,GAAG,IAAI,CAACJ,QAAQ,CAACC,OAAO,CAAC;MAEpC,OAAOY,MAAM,CAACQ,GAAG,CAAC,UAACJ,CAAC,EAAEY,CAAC;QAAA;UACnB;UACAC,4CAAA,CAAAC,aAAA;YAAM;YACFjD,GAAG,KAAAZ,MAAA,CAAK2D,CAAC,OAAA3D,MAAA,CAAI+C,CAAC,CAAC,CAAC,CAAC,CAAG;YACpB,qBAAA/C,MAAA,CAAmB2D,CAAC,CAAG;YACvBL,CAAC,EAAEP,CAAC,CAAC,CAAC,CAAC,GAAGb,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAGa,CAAC,CAAC,CAAC,CAAC,GAAGb,KAAK,GAAG,CAAE;YAChDqB,CAAC,EAAE,CAAE;YACLtB,KAAK,EAAE0B,CAAC,KAAK,CAAC,IAAI1C,IAAI,CAACvB,MAAM,KAAK,CAAC,GAAGwC,KAAK,GAAG,CAAC,GAAGA,KAAM;YACxDI,MAAM,EAAEA,MAAO;YACfwB,KAAK,EAAE;cAAEC,WAAW,EAAE;YAAE,CAAE;YAC1BC,WAAW,EAAE,SAAAA,YAAAC,CAAC,EAAI;cACdR,MAAI,CAACrD,QAAQ,CAAC;gBACVI,IAAI,EAAES,IAAI,CAAC0C,CAAC,CAAC,KAAK,IAAI;gBACtBlD,QAAQ,EAAEQ,IAAI,CAAC0C,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGM,CAAC,CAACC,MAAM;gBAC5CxD,OAAO,EAAEO,IAAI,CAAC0C,CAAC,CAAC;gBAChBpD,aAAa,EAAEwC,CAAC,CAAC,CAAC;cACtB,CAAC,CAAC;YACN;UAAE;UAEN;QAAA;MAAA,CACH,CAAC;IACN;;IAEA;EAAA;IAAAnC,GAAA;IAAAC,KAAA,EACA,SAAAsD,WAAWxB,MAAM,EAAE;MAAA,IAAAyB,YAAA,GAC0C,IAAI,CAAC/E,KAAK;QAA3D4B,IAAI,GAAAmD,YAAA,CAAJnD,IAAI;QAAEoD,SAAS,GAAAD,YAAA,CAATC,SAAS;QAAEN,WAAW,GAAAK,YAAA,CAAXL,WAAW;QAAEzB,MAAM,GAAA8B,YAAA,CAAN9B,MAAM;QAAEgC,MAAM,GAAAF,YAAA,CAANE,MAAM;MAEpD,IAAI,CAACA,MAAM,IAAI3B,MAAM,CAACjD,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO,IAAI;MACf;MAEA,IAAI6E,QAAQ,GAAG,IAAI,CAAC7B,cAAc,CAACzB,IAAI,EAAE0B,MAAM,CAAC;MAChD4B,QAAQ,GAAGA,QAAQ,CAACpB,GAAG,CAAC,UAAAqB,CAAC;QAAA,OACrBA,CAAC,CAACxE,MAAM,CAAC,CACL,CAACwE,CAAC,CAACA,CAAC,CAAC9E,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE4C,MAAM,CAAC;QAAE;QAC9B,CAACkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAElC,MAAM,CAAC;QAAE;QACnBkC,CAAC,CAAC,CAAC,CAAC,CAAE;QAAA,CACT,CAAC;MAAA,EACL;;MAED,oBACIZ,4CAAA,CAAAC,aAAA;QAAG,aAAU;MAAM,GACdU,QAAQ,CAACpB,GAAG,CAAC,UAAAqB,CAAC;QAAA,oBACXZ,4CAAA,CAAAC,aAAA;UACIjD,GAAG,SAAAZ,MAAA,CAASwE,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,CAAG;UACzB9B,MAAM,EAAE6B,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;UACpB,aAAU,WAAW;UACrBX,KAAK,EAAE;YACHY,IAAI,EAAEL,SAAS;YACfN,WAAW,EAAXA,WAAW;YACXY,WAAW,EAAE;UACjB;QAAE,EACJ;MAAA,CACL,CAAC,CACF;IAEZ;EAAC;IAAA/D,GAAA;IAAAC,KAAA,EAED,SAAA+D,aAAA,EAAe;MAAA,IAAAC,YAAA,GAOP,IAAI,CAACxF,KAAK;QALVyF,YAAY,GAAAD,YAAA,CAAZC,YAAY;QACZC,iBAAiB,GAAAF,YAAA,CAAjBE,iBAAiB;QACjBC,mBAAmB,GAAAH,YAAA,CAAnBG,mBAAmB;QACnBC,qBAAqB,GAAAJ,YAAA,CAArBI,qBAAqB;QACrB3C,MAAM,GAAAuC,YAAA,CAANvC,MAAM;MAGV,OACI,IAAI,CAAChC,KAAK,CAACG,QAAQ,KAAK,IAAI,iBACxBmD,4CAAA,CAAAC,aAAA;QACI,aAAU,QAAQ;QAClBqB,GAAG,EAAE,IAAI,CAACC,iBAAkB;QAC5BC,EAAE,EAAE,IAAI,CAAC9E,KAAK,CAACC,aAAc;QAC7B8E,EAAE,EAAE,CAAE;QACNC,EAAE,EAAE,IAAI,CAAChF,KAAK,CAACC,aAAc;QAC7BgF,EAAE,EAAEjD,MAAO;QACXwB,KAAK,EAAE;UACH0B,MAAM,EAAEV,YAAY;UACpBH,WAAW,EAAEI,iBAAiB;UAC9BU,aAAa,EAAET,mBAAmB;UAClCU,eAAe,EAAET;QACrB;MAAE,EAET;IAET;EAAC;IAAArE,GAAA;IAAAC,KAAA,EAED,SAAA8E,cAAA,EAAgB;MACZ,OACI,IAAI,CAACrF,KAAK,CAACD,MAAM,KAAK,IAAI,iBACtBuD,4CAAA,CAAAC,aAAA,CAAC+B,gEAAO;QACJ,aAAU,SAAS;QACnBpF,IAAI,EAAE,IAAI,CAACF,KAAK,CAACE,IAAK;QACtBH,MAAM,EAAE,IAAI,CAACC,KAAK,CAACD,MAAO;QAC1B,mBAAiB,IAAI,CAACC,KAAK,CAACI,OAAQ;QACpCmF,UAAU,EAAC,UAAU;QACrBC,gBAAgB,EAAC,OAAO;QACxBC,SAAS,EAAE;MAAM,gBAEjBnC,4CAAA,CAAAC,aAAA,CAAC/E,aAAa,QACT,IAAI,CAACwB,KAAK,CAACD,MAAM,KAAK,IAAI,GAAG,IAAI,CAACC,KAAK,CAACI,OAAO,GAAGa,SAAS,CAChD,CAEvB;IAET;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARI;IAAAX,GAAA;IAAAC,KAAA,EASA,SAAAmF,cAAcrD,MAAM,EAAEsD,UAAU,EAAElE,OAAO,EAAE;MAAA,IAAAmE,YAAA,GACoC,IAAI,CAAC7G,KAAK;QAA7E8G,eAAe,GAAAD,YAAA,CAAfC,eAAe;QAAEC,YAAY,GAAAF,YAAA,CAAZE,YAAY;QAAEC,YAAY,GAAAH,YAAA,CAAZG,YAAY;QAAEC,iBAAiB,GAAAJ,YAAA,CAAjBI,iBAAiB;MAEtE,oBACI1C,4CAAA,CAAAC,aAAA,YACKlB,MAAM,CAAC4D,KAAK,CAAC,CAACN,UAAU,CAAC,CAAC9C,GAAG,CAAC,UAAAqD,KAAK;QAAA,oBAChC5C,4CAAA,CAAAC,aAAA;UACIjD,GAAG,YAAAZ,MAAA,CAAYwG,KAAK,CAAC,CAAC,CAAC,EAAAxG,MAAA,CAAGwG,KAAK,CAAC,CAAC,CAAC,CAAG;UACrC,aAAU,SAAS;UACnBC,EAAE,EAAED,KAAK,CAAC,CAAC,CAAE;UACbE,EAAE,EAAEF,KAAK,CAAC,CAAC,CAAE;UACbG,CAAC,EAAEP,YAAY,KAAK,CAAC,GAAGrE,OAAO,GAAGqE,YAAa;UAC/CtC,KAAK,EAAE;YACHY,IAAI,EAAEyB,eAAe;YACrBX,MAAM,EAAEa,YAAY;YACpB1B,WAAW,EAAE2B;UACjB;QAAE,EACJ;MAAA,CACL,CAAC,CACF;IAEZ;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAA1F,GAAA;IAAAC,KAAA,EAMA,SAAA+F,eAAejE,MAAM,EAAE;MAAA,IAAAkE,YAAA,GACsC,IAAI,CAACxH,KAAK;QAA3D4B,IAAI,GAAA4F,YAAA,CAAJ5F,IAAI;QAAE6F,SAAS,GAAAD,YAAA,CAATC,SAAS;QAAEC,UAAU,GAAAF,YAAA,CAAVE,UAAU;QAAEC,eAAe,GAAAH,YAAA,CAAfG,eAAe;MAEpD,IAAMC,UAAU,GAAGC,wDAAQ,CAACH,UAAU,CAAC,IAAIA,UAAU,GAAG,CAAC,GAAGA,UAAU,GAAGpE,MAAM,CAACjD,MAAM;MACtF,IAAMkD,KAAK,GAAG,IAAI,CAACF,cAAc,CAACzB,IAAI,CAACsF,KAAK,CAAC,CAACU,UAAU,CAAC,EAAEtE,MAAM,CAAC4D,KAAK,CAAC,CAACU,UAAU,CAAC,CAAC;MAErF,oBACIrD,4CAAA,CAAAC,aAAA;QAAG,aAAU;MAAW,GACnBjB,KAAK,CAACO,GAAG,CAAC,UAAAgE,QAAQ;QAAA,oBACfvD,4CAAA,CAAAC,aAAA;UACIjD,GAAG,SAAAZ,MAAA,CAASmH,QAAQ,CAAC1C,IAAI,CAAC,EAAE,CAAC,CAAG;UAChC,aAAU,UAAU;UACpBX,KAAK,EAAE;YACHY,IAAI,EAAE,MAAM;YACZc,MAAM,EAAEsB,SAAS;YACjBnC,WAAW,EAAEqC,eAAe;YAC5BI,cAAc,EAAE,OAAO;YACvB3B,aAAa,EAAE;UACnB,CAAE;UACF9C,MAAM,EAAEwE,QAAQ,CAAC1C,IAAI,CAAC,GAAG;QAAE,EAC7B;MAAA,CACL,CAAC,CACF;IAEZ;EAAC;IAAA7D,GAAA;IAAAC,KAAA,EAED,SAAAwG,OAAA,EAAS;MAAA,IAAAC,MAAA;MAAA,IAAAC,YAAA,GAaD,IAAI,CAAClI,KAAK;QAXV4B,IAAI,GAAAsG,YAAA,CAAJtG,IAAI;QACJuG,UAAU,GAAAD,YAAA,CAAVC,UAAU;QACVC,WAAW,GAAAF,YAAA,CAAXE,WAAW;QACXC,UAAU,GAAAH,YAAA,CAAVG,UAAU;QACVtB,YAAY,GAAAmB,YAAA,CAAZnB,YAAY;QACZE,iBAAiB,GAAAiB,YAAA,CAAjBjB,iBAAiB;QACjBqB,WAAW,GAAAJ,YAAA,CAAXI,WAAW;QACXrF,MAAM,GAAAiF,YAAA,CAANjF,MAAM;QACNgC,MAAM,GAAAiD,YAAA,CAANjD,MAAM;QACN0C,eAAe,GAAAO,YAAA,CAAfP,eAAe;QACf/E,KAAK,GAAAsF,YAAA,CAALtF,KAAK;MAGT,IAAIhB,IAAI,CAACvB,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,IAAI;MACf;;MAEA;MACA,IAAMqC,OAAO,GAAGqE,YAAY,GAAGE,iBAAiB,GAAG,CAAC;MACpD,IAAMjE,OAAO,GAAGF,IAAI,CAACd,GAAG,CAAC2F,eAAe,GAAG,CAAC,EAAEZ,YAAY,GAAGE,iBAAiB,GAAG,CAAC,CAAC;MAEnF,IAAM3D,MAAM,GAAG,IAAI,CAACS,YAAY,CAACrB,OAAO,EAAEM,OAAO,CAAC;MAElD,IAAM4D,UAAU,GAAG9D,IAAI,CAACd,GAAG,CAACqG,UAAU,IAAI,CAAC,EAAER,wDAAQ,CAACS,WAAW,CAAC,IAAIA,WAAW,GAAG,CAAC,IAAIA,WAAW,CAAC;MAErG,oBACI/D,4CAAA,CAAAC,aAAA,QAAA+D,qEAAA;QAAK;QACD,aAAU,MAAM;QAChB,kBAAgBtD,MAAM,GAAG,MAAM,GAAG,MAAO;QACzCuD,UAAU,EAAE,SAAAA,WAAA,EAAM;UACdP,MAAI,CAAClH,QAAQ,CAAC;YACVI,IAAI,EAAE,KAAK;YACXH,MAAM,EAAE,IAAI;YACZI,QAAQ,EAAE,IAAI;YACdF,aAAa,EAAE;UACnB,CAAC,CAAC;QACN,CAAE;QACF2E,GAAG,EAAEsC;MAAW,GACZM,oDAAI,CAAC,IAAI,CAACzI,KAAK,EAAE0I,oDAAI,CAAC/I,SAAS,CAACgJ,SAAS,CAAC,CAAC,gBAE/CpE,4CAAA,CAAAC,aAAA,CAACrF,SAAS;QAAC8D,MAAM,EAAEA,MAAO;QAACL,KAAK,EAAEA;MAAM,gBACpC2B,4CAAA,CAAAC,aAAA,YACK,IAAI,CAACe,YAAY,EAAE,EACnB,IAAI,CAACgC,cAAc,CAACjE,MAAM,CAAC,EAC3B,IAAI,CAACwB,UAAU,CAACxB,MAAM,CAAC,EACvBsD,UAAU,GAAG,IAAI,CAACD,aAAa,CAACrD,MAAM,EAAEsD,UAAU,EAAElE,OAAO,CAAC,GAAG,IAAI,EACnE0F,WAAW,GAAG,IAAI,CAACjE,UAAU,CAACb,MAAM,EAAEZ,OAAO,CAAC,GAAG,IAAI,EACrD0F,WAAW,GAAG,IAAI,CAAC9B,aAAa,EAAE,GAAG,IAAI,CAC1C,CACI,CACV;IAEd;EAAC;EAAA,OAAA3G,SAAA;AAAA,EAzcmBiJ,+CAAS;AAAAhI,4EAAA,CAA3BjB,SAAS,eACQ;EACf;AACR;AACA;EACQkC,UAAU,EAAEgH,iDAAS,CAACC,IAAI;EAC1B;EACAlH,IAAI,EAAE,SAAAA,KAAA5B,KAAK,EAAI;IACX,IAAI,CAAC+I,uDAAO,CAAC/I,KAAK,CAAC4B,IAAI,CAAC,EAAE;MACtB,OAAO,IAAIoH,KAAK,CAAC,8CAA8C,CAAC;IACpE;IAEA,IAAIhJ,KAAK,CAAC6B,UAAU,IAAI,CAAC7B,KAAK,CAAC4B,IAAI,CAACqH,KAAK,CAAC,UAAAzH,KAAK;MAAA,OAAIoC,sDAAM,CAACpC,KAAK,CAAC,IAAIqG,wDAAQ,CAACrG,KAAK,CAAC;IAAA,EAAC,EAAE;MAClF,OAAO,IAAIwH,KAAK,CAAC,4DAA4D,CAAC;IAClF;IAEA,IAAI,CAAChJ,KAAK,CAAC6B,UAAU,IAAI,CAAC7B,KAAK,CAAC4B,IAAI,CAACqH,KAAK,CAAC,UAAAzH,KAAK;MAAA,OAAIqG,wDAAQ,CAACrG,KAAK,CAAC;IAAA,EAAC,EAAE;MAClE,OAAO,IAAIwH,KAAK,CAAC,oDAAoD,CAAC;IAC1E;IACA,OAAO,IAAI;EACf,CAAC;EACD;EACAb,UAAU,EAAEU,iDAAS,CAACK,SAAS,CAAC,CAACL,iDAAS,CAACM,IAAI,EAAEN,iDAAS,CAACO,MAAM,CAAC,CAAC;EACnE;EACAd,WAAW,EAAEO,iDAAS,CAACQ,MAAM;EAC7B;EACAvC,eAAe,EAAE+B,iDAAS,CAACS,MAAM;EACjC;AACR;AACA;EACQvC,YAAY,EAAE8B,iDAAS,CAACQ,MAAM;EAC9B;EACArC,YAAY,EAAE6B,iDAAS,CAACS,MAAM;EAC9B;EACArC,iBAAiB,EAAE4B,iDAAS,CAACQ,MAAM;EACnC;EACArE,SAAS,EAAE6D,iDAAS,CAACS,MAAM;EAC3B;EACA5E,WAAW,EAAEmE,iDAAS,CAACS,MAAM;EAC7B;EACA7D,YAAY,EAAEoD,iDAAS,CAACS,MAAM;EAC9B;EACA5D,iBAAiB,EAAEmD,iDAAS,CAACQ,MAAM;EACnC;EACA1D,mBAAmB,EAAEkD,iDAAS,CAACU,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;EACjE;EACA3D,qBAAqB,EAAEiD,iDAAS,CAACS,MAAM;EACvC;AACR;AACA;AACA;EACQrG,MAAM,EAAE4F,iDAAS,CAACQ,MAAM,CAACG,UAAU;EACnC;EACAvE,MAAM,EAAE4D,iDAAS,CAACC,IAAI;EACtB;EACArB,SAAS,EAAEoB,iDAAS,CAACS,MAAM;EAC3B;EACA5B,UAAU,EAAEmB,iDAAS,CAACQ,MAAM;EAC5B;EACA1B,eAAe,EAAEkB,iDAAS,CAACQ,MAAM;EACjC;EACAhB,UAAU,EAAEQ,iDAAS,CAACC,IAAI;EAC1B;EACAV,WAAW,EAAES,iDAAS,CAACC,IAAI;EAC3B;EACAhH,IAAI,EAAE+G,iDAAS,CAACQ,MAAM;EACtB;EACA/G,IAAI,EAAEuG,iDAAS,CAACQ,MAAM;EACtB;AACR;AACA;EACQzG,KAAK,EAAEiG,iDAAS,CAACQ,MAAM,CAACG;AAC5B,CAAC;AAAA5I,4EAAA,CAxECjB,SAAS,kBA0EW;EAClBkC,UAAU,EAAE,KAAK;EACjBD,IAAI,EAAE,EAAE;EACRwG,WAAW,EAAE,IAAI;EACjBE,WAAW,EAAE,CAAC;EACdD,UAAU,EAAE,KAAK;EACjBtB,YAAY,EAAE,CAAC;EACfD,eAAe,EAAE,OAAO;EACxBE,YAAY,EAAE,OAAO;EACrBC,iBAAiB,EAAE,CAAC;EACpBjC,SAAS,EAAE,SAAS;EACpBN,WAAW,EAAE,IAAI;EACjBe,YAAY,EAAE,SAAS;EACvBC,iBAAiB,EAAE,CAAC;EACpBC,mBAAmB,EAAE,QAAQ;EAC7BC,qBAAqB,EAAE,MAAM;EAC7BX,MAAM,EAAE,KAAK;EACbwC,SAAS,EAAE,SAAS;EACpBE,eAAe,EAAE;AACrB,CAAC;AA+WUhI,wEAAS,E","file":"SparkLine.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 = 95);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"lodash\");","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport Popover from '@splunk/react-ui/Popover';\nimport styled from 'styled-components';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg height={height} width={width}>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/ui-utils/id\"","webpack:///external \"lodash\"","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///./src/SparkLine/SparkLine.jsx"],"names":["StyledSvg","styled","svg","withConfig","displayName","componentId","StyledTooltip","div","SparkLine","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","_len","arguments","length","rest","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","el","setState","anchor","state","currentPointX","open","rectArea","tooltip","titleId","createDOMID","_createClass","key","value","getMax","_this2","_this$props","data","acceptNull","yMax","dataMax","max","fillNull","undefined","getMin","_this3","_this$props2","yMin","dataMin","min","getXUnit","xMargin","_this$props3","width","xUnit","Math","getYUnit","yMargin","height","maxValue","minValue","yUnit","getSegmentSets","points","lines","currentLine","forEach","p","idx","isNull","push","map","dataToPoints","val","x","y","renderRect","_this4","_this$props4","i","React","createElement","style","fillOpacity","onMouseOver","e","target","renderArea","_this$props5","fillColor","isArea","segments","s","join","fill","strokeWidth","renderCursor","_this$props6","cursorStroke","cursorStrokeWidth","cursorStrokeLinecap","cursorStrokeDasharray","ref","handleCursorMount","x1","y1","x2","y2","stroke","strokeLinecap","strokeDasharray","renderTooltip","Popover","appearance","defaultPlacement","animation","renderEndDots","dotsToShow","_this$props7","endDotFillColor","endDotRadius","endDotStroke","endDotStrokeWidth","slice","point","cx","cy","r","renderPolyline","_this$props8","lineColor","lineLength","lineStrokeWidth","linePoints","isFinite","lineData","strokeLinejoin","render","_this5","_this$props9","elementRef","showTooltip","showEndDot","endDotCount","title","_extends","onMouseOut","omit","keys","propTypes","role","id","_","Component","PropTypes","bool","isArray","Error","every","oneOfType","func","object","number","string","oneOf","isRequired"],"mappings":"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","file":"SparkLine.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 = 95);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"lodash\");","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n /** Sets the a11y title text on sparkline. */\n title: PropTypes.string,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n this.titleId = createDOMID();\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n title,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg\n height={height}\n width={width}\n role=\"img\"\n aria-labelledby={this.titleId}\n data-test=\"sparkline-svg\"\n >\n <title id={this.titleId} data-test=\"sparkline-title\">\n {title || _('Source count over time sparkline trend')}\n </title>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n"],"sourceRoot":""}