evui 3.3.54 → 3.3.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/evui.umd.js CHANGED
@@ -4323,7 +4323,7 @@ var update = add("5ac4a7d0", content, true, {"sourceMap":false,"shadowMode":fals
4323
4323
  var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
4324
4324
  exports = ___CSS_LOADER_API_IMPORT___(false);
4325
4325
  // Module
4326
- exports.push([module.i, ".ev-chart-brush-wrapper,.ev-chart-wrapper{display:block;position:relative;width:100%;height:100%}.ev-chart-brush-container,.ev-chart-container{position:relative;overflow:hidden;width:100%;height:100%}.ev-chart-title{top:0;left:0;width:100%;padding-left:10px;word-wrap:normal;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ev-chart-legend,.ev-chart-title{position:absolute;overflow:hidden}.ev-chart-legend{padding:5px 0 0 0}.ev-chart-legend-container{position:relative}.ev-chart-legend-color,.ev-chart-legend-color--point-line{position:absolute;top:50%;left:0;transform:translateY(-50%);width:18px;height:4px}.ev-chart-legend-color--point-line:after{display:inline-block;position:absolute;top:-2px;left:5px;width:8px;height:8px;content:\" \";border-radius:50%;background-color:inherit}.ev-chart-legend-name{position:absolute;top:50%;left:0;width:100%;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;margin-left:24px;padding-right:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-weight:400;transform:translateY(-50%)}.ev-chart-legend-name:hover{font-weight:700}.ev-chart-legend-value{float:right;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ev-chart-legend--table{width:100%;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-collapse:collapse}.ev-chart-legend--table td,.ev-chart-legend--table th{padding:3px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ev-chart-legend--table__row{cursor:pointer;min-height:18px}.ev-chart-legend--table__row:hover{font-weight:700}.ev-chart-legend--table__color{width:18px}.ev-chart-legend--table__color-wrapper{position:relative;min-width:18px}.ev-chart-legend--table__color--line{height:4px}.ev-chart-legend--table__color--point-line{position:absolute;top:50%;left:3px;transform:translateY(-50%);height:4px}.ev-chart-legend--table__color--point-line:after{display:inline-block;position:absolute;top:-2px;left:5px;width:8px;height:8px;content:\" \";border-radius:50%;background-color:inherit}.ev-chart-legend--table__name,.ev-chart-legend--table__value{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ev-chart-legend-line{position:relative;width:100%;height:100%;border-radius:10px;background-color:#e3e3e3}.ev-chart-legend-line-layer,.ev-chart-legend-thumb{position:absolute;top:0;left:0;width:100%;height:100%}.ev-chart-legend-thumb{border-radius:10px;color:#000}.ev-chart-legend-handle{position:absolute;top:0;left:0;cursor:pointer}.ev-chart-legend-handle.dragging,.ev-chart-legend-handle:hover{transform:scale(1.2)}.ev-chart-legend-handle-btn{width:100%;height:100%;border-radius:50%;background-color:#fff;transition:transform .1s ease-in-out;box-sizing:border-box;border:2px solid #979797}.ev-chart-legend-handle-btn-color{position:absolute;top:4px;left:4px;width:calc(100% - 8px);height:calc(100% - 8px);border-radius:50%}.ev-chart-legend-label{position:absolute;font-size:12px;line-height:1.4em}.ev-chart-legend-label-text{display:block;white-space:nowrap}.ev-chart-legend-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ev-chart-legend-overlay .ev-chart-legend-overlay-item{position:absolute;top:1px;left:1px;border-radius:50%;border:1px solid #fff;background-color:transparent}.ev-chart-legend-overlay .ev-chart-legend-overlay-tooltip{position:absolute;font-size:12px;line-height:1.4em}.ev-chart-resize-bar{position:absolute;background:transparent;opacity:.5;z-index:10}.ev-chart-resize-bar:hover,.ev-chart-resize-ghost{background-color:#e2e2e2}.ev-chart-resize-ghost{position:absolute;width:4px;height:100%;cursor:col-resize;opacity:.5}.ev-chart-resize-ghost.horizontal{width:100%;height:4px;cursor:row-resize}.ev-chart-tooltip{position:absolute;z-index:850;top:0;left:0;overflow-y:hidden;overflow-x:hidden;border-radius:8px}.ev-chart-tooltip .ev-chart-tooltip-header{padding:8px 16px 0 16px;overflow:hidden;font-size:16px}.ev-chart-tooltip .ev-chart-tooltip-header--wrap{word-wrap:break-word}.ev-chart-tooltip .ev-chart-tooltip-header--ellipsis{text-overflow:ellipsis;white-space:nowrap}.ev-chart-tooltip .ev-chart-tooltip-body{overflow-x:hidden;overflow-y:hidden}", ""]);
4326
+ exports.push([module.i, ".ev-chart-brush-wrapper,.ev-chart-wrapper{display:block;position:relative;width:100%;height:100%}.ev-chart-brush-container,.ev-chart-container{position:relative;overflow:hidden;width:100%;height:100%}.ev-chart-title{top:0;left:0;width:100%;padding-left:10px;word-wrap:normal;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ev-chart-legend,.ev-chart-title{position:absolute;overflow:hidden}.ev-chart-legend{padding:5px 0 0 0}.ev-chart-legend-container{position:relative}.ev-chart-legend-color,.ev-chart-legend-color--point-line{position:absolute;top:50%;left:0;transform:translateY(-50%);width:18px;height:4px}.ev-chart-legend-color--point-line:after{display:inline-block;position:absolute;top:-2px;left:5px;width:8px;height:8px;content:\" \";border-radius:50%;background-color:inherit}.ev-chart-legend-name{position:absolute;top:50%;left:0;width:100%;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;margin-left:24px;padding-right:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-weight:400;transform:translateY(-50%)}.ev-chart-legend-name:hover{font-weight:700}.ev-chart-legend-value{float:right;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ev-chart-legend--table{width:100%;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-collapse:collapse}.ev-chart-legend--table td,.ev-chart-legend--table th{padding:3px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ev-chart-legend--table__row{cursor:pointer;min-height:18px}.ev-chart-legend--table__row:hover{font-weight:700}.ev-chart-legend--table__color{width:18px}.ev-chart-legend--table__color-wrapper{position:relative;min-width:18px}.ev-chart-legend--table__color--line{height:4px}.ev-chart-legend--table__color--point-line{position:absolute;top:50%;left:3px;transform:translateY(-50%);height:4px}.ev-chart-legend--table__color--point-line:after{display:inline-block;position:absolute;top:-2px;left:5px;width:8px;height:8px;content:\" \";border-radius:50%;background-color:inherit}.ev-chart-legend--table__name,.ev-chart-legend--table__value{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ev-chart-legend-line{position:relative;width:100%;height:100%;border-radius:10px;background-color:#e3e3e3}.ev-chart-legend-line-layer,.ev-chart-legend-thumb{position:absolute;top:0;left:0;width:100%;height:100%}.ev-chart-legend-thumb{border-radius:10px;color:#000}.ev-chart-legend-handle{position:absolute;top:0;left:0;cursor:pointer}.ev-chart-legend-handle.dragging,.ev-chart-legend-handle:hover{transform:scale(1.2)}.ev-chart-legend-handle-btn{width:100%;height:100%;border-radius:50%;background-color:#fff;transition:transform .1s ease-in-out;box-sizing:border-box;border:2px solid #979797}.ev-chart-legend-handle-btn-color{position:absolute;top:4px;left:4px;width:calc(100% - 8px);height:calc(100% - 8px);border-radius:50%}.ev-chart-legend-label{position:absolute;font-size:12px;line-height:1.4em}.ev-chart-legend-label-text{display:block;white-space:nowrap}.ev-chart-legend-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ev-chart-legend-overlay .ev-chart-legend-overlay-item{position:absolute;top:1px;left:1px;border-radius:50%;border:1px solid #fff;background-color:transparent}.ev-chart-legend-overlay .ev-chart-legend-overlay-tooltip{position:absolute;font-size:12px;line-height:1.4em}.ev-chart-resize-bar{position:absolute;background:transparent;opacity:.5;z-index:10}.ev-chart-resize-bar:hover,.ev-chart-resize-ghost{background-color:#e2e2e2}.ev-chart-resize-ghost{position:absolute;width:4px;height:100%;cursor:col-resize;opacity:.5}.ev-chart-resize-ghost.horizontal{width:100%;height:4px;cursor:row-resize}.ev-chart-tooltip{position:absolute;z-index:850;top:0;left:0;overflow-y:hidden;overflow-x:hidden;border-radius:8px}.ev-chart-tooltip .ev-chart-tooltip-custom__header,.ev-chart-tooltip .ev-chart-tooltip-header{padding:8px 16px 0 16px;overflow:hidden;font-size:16px}.ev-chart-tooltip .ev-chart-tooltip-header--wrap{word-wrap:break-word}.ev-chart-tooltip .ev-chart-tooltip-header--ellipsis{text-overflow:ellipsis;white-space:nowrap}.ev-chart-tooltip .ev-chart-tooltip-body,.ev-chart-tooltip .ev-chart-tooltip-custom{overflow-x:hidden;overflow-y:hidden}.ev-chart-tooltip .ev-chart-tooltip-custom__body{padding:8px 20px 8px 16px;overflow-x:hidden;overflow-y:hidden}.ev-chart-tooltip .ev-chart-tooltip-custom__body .row{display:flex;flex-direction:row;align-items:center}.ev-chart-tooltip .ev-chart-tooltip-custom__body .series-name{flex:auto}.ev-chart-tooltip .ev-chart-tooltip-custom__body .value{text-align:right}.ev-chart-tooltip .ev-chart-tooltip-custom__body .color-circle,.ev-chart-tooltip .ev-chart-tooltip-custom__body .color-rect{width:12px;height:12px;margin-right:16px}.ev-chart-tooltip .ev-chart-tooltip-custom__body .color-circle{border-radius:12px}.ev-chart-scrollbar{position:absolute;z-index:3}.ev-chart-scrollbar-container{position:relative;top:0;left:0;width:100%;height:100%}.ev-chart-scrollbar-thumb,.ev-chart-scrollbar-track{position:absolute}.ev-chart-scrollbar-thumb:hover{opacity:.7}.ev-chart-scrollbar-button{position:absolute;text-align:center}.ev-chart-scrollbar-button:hover{opacity:.5!important}.ev-chart-scrollbar-button-icon{display:none;margin:0 auto;font-size:12px}", ""]);
4327
4327
  // Exports
4328
4328
  module.exports = exports;
4329
4329
 
@@ -8054,7 +8054,7 @@ $({ target: 'Number', stat: true }, {
8054
8054
  /***/ "9224":
8055
8055
  /***/ (function(module) {
8056
8056
 
8057
- module.exports = JSON.parse("{\"a\":\"3.3.54\"}");
8057
+ module.exports = JSON.parse("{\"a\":\"3.3.56\"}");
8058
8058
 
8059
8059
  /***/ }),
8060
8060
 
@@ -15648,6 +15648,9 @@ function getPrecision(v) {
15648
15648
  var decimal = (v === null || v === void 0 ? void 0 : v.toString().split('.')[1]) || 0;
15649
15649
  return decimal ? decimal.length : 0;
15650
15650
  }
15651
+ function checkNullAndUndefined(value) {
15652
+ return value === null || value === undefined;
15653
+ }
15651
15654
  // CONCATENATED MODULE: ./src/components/inputNumber/uses.js
15652
15655
 
15653
15656
 
@@ -32566,6 +32569,7 @@ var es_number_min_safe_integer = __webpack_require__("e6e1");
32566
32569
 
32567
32570
 
32568
32571
 
32572
+
32569
32573
  /* harmony default export */ var helpers_util = ({
32570
32574
  /**
32571
32575
  * Transforming hex to rgb code
@@ -32908,6 +32912,17 @@ var es_number_min_safe_integer = __webpack_require__("e6e1");
32908
32912
  */
32909
32913
  checkSafeInteger: function checkSafeInteger(value) {
32910
32914
  return value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER;
32915
+ },
32916
+
32917
+ /**
32918
+ * Convert html(string) To Element
32919
+ * @param htmlString
32920
+ * @returns {ChildNode}
32921
+ */
32922
+ htmlToElement: function htmlToElement(htmlString) {
32923
+ var template = document.createElement('template');
32924
+ template.innerHTML = htmlString.trim();
32925
+ return template.content.firstChild;
32911
32926
  }
32912
32927
  });
32913
32928
  // CONCATENATED MODULE: ./src/components/chart/model/model.store.js
@@ -33318,7 +33333,6 @@ var modules = {
33318
33333
  /**
33319
33334
  * Take data to create data for each series
33320
33335
  * @param {array} data data array for each series
33321
- * @param {object} label chart label
33322
33336
  *
33323
33337
  * @returns {array} data info added position and etc
33324
33338
  */
@@ -33919,7 +33933,7 @@ var modules = {
33919
33933
  * @returns {object} clicked label information
33920
33934
  */
33921
33935
  getLabelInfoByPosition: function getLabelInfoByPosition(offset, targetAxis) {
33922
- var _Object$values$sort$, _Object$values$sort$2, _scale, _scale$labels;
33936
+ var _Object$values$sort$, _Object$values$sort$2, _scrollbarOpt, _scale, _scale$labels, _scale3, _scale3$labels;
33923
33937
 
33924
33938
  var _offset2 = _slicedToArray(offset, 2),
33925
33939
  x = _offset2[0],
@@ -33942,13 +33956,17 @@ var modules = {
33942
33956
  horizontal = _this$options.horizontal,
33943
33957
  selectLabel = _this$options.selectLabel;
33944
33958
  var scale;
33959
+ var scrollbarOpt;
33945
33960
 
33946
33961
  if (targetAxis === 'xAxis') {
33947
33962
  scale = this.axesX[0];
33963
+ scrollbarOpt = this.scrollbar.x;
33948
33964
  } else if (targetAxis === 'yAxis') {
33949
33965
  scale = this.axesY[0];
33966
+ scrollbarOpt = this.scrollbar.y;
33950
33967
  } else {
33951
33968
  scale = horizontal ? this.axesY[0] : this.axesX[0];
33969
+ scrollbarOpt = horizontal ? this.scrollbar.y : this.scrollbar.x;
33952
33970
  }
33953
33971
 
33954
33972
  var startPoint = aPos[scale.units.rectStart];
@@ -33956,11 +33974,41 @@ var modules = {
33956
33974
  var labelIndex;
33957
33975
  var hitInfo;
33958
33976
 
33959
- if ((_scale = scale) !== null && _scale !== void 0 && (_scale$labels = _scale.labels) !== null && _scale$labels !== void 0 && _scale$labels.length) {
33960
- var labelGap = (endPoint - startPoint) / scale.labels.length;
33977
+ if ((_scrollbarOpt = scrollbarOpt) !== null && _scrollbarOpt !== void 0 && _scrollbarOpt.use && (_scale = scale) !== null && _scale !== void 0 && (_scale$labels = _scale.labels) !== null && _scale$labels !== void 0 && _scale$labels.length) {
33978
+ var _scrollbarOpt2 = scrollbarOpt,
33979
+ type = _scrollbarOpt2.type,
33980
+ range = _scrollbarOpt2.range,
33981
+ _scrollbarOpt2$interv = _scrollbarOpt2.interval,
33982
+ interval = _scrollbarOpt2$interv === void 0 ? 1 : _scrollbarOpt2$interv;
33983
+
33984
+ var _ref14 = range !== null && range !== void 0 ? range : [0, scale.labels.length],
33985
+ _ref15 = _slicedToArray(_ref14, 2),
33986
+ min = _ref15[0],
33987
+ max = _ref15[1];
33988
+
33989
+ var labelCount = Math.floor((+max - +min) / interval) + 1;
33990
+ var labelGap = (endPoint - startPoint) / labelCount;
33961
33991
  var isYAxis = targetAxis === 'yAxis' || horizontal;
33962
33992
  var index = Math.floor(((isYAxis ? y : x) - startPoint) / labelGap);
33963
- labelIndex = scale.labels.length > index ? index : -1;
33993
+
33994
+ if (type === 'step') {
33995
+ labelIndex = min + index;
33996
+ } else {
33997
+ var _scale2;
33998
+
33999
+ var minIndex = (_scale2 = scale) === null || _scale2 === void 0 ? void 0 : _scale2.labels.findIndex(function (label) {
34000
+ return label === +min;
34001
+ });
34002
+ labelIndex = minIndex + index;
34003
+ }
34004
+ } else if ((_scale3 = scale) !== null && _scale3 !== void 0 && (_scale3$labels = _scale3.labels) !== null && _scale3$labels !== void 0 && _scale3$labels.length) {
34005
+ var _labelGap = (endPoint - startPoint) / scale.labels.length;
34006
+
34007
+ var _isYAxis = targetAxis === 'yAxis' || horizontal;
34008
+
34009
+ var _index = Math.floor(((_isYAxis ? y : x) - startPoint) / _labelGap);
34010
+
34011
+ labelIndex = scale.labels.length > _index ? _index : -1;
33964
34012
  } else {
33965
34013
  var _hitInfo$maxIndex;
33966
34014
 
@@ -35047,6 +35095,17 @@ var AXIS_OPTION = {
35047
35095
  textAlign: 'right',
35048
35096
  fontStyle: 'normal',
35049
35097
  color: '#808080'
35098
+ },
35099
+ scrollbar: {
35100
+ use: false,
35101
+ width: 14,
35102
+ height: 14,
35103
+ background: '#F2F2F2',
35104
+ showButton: true,
35105
+ thumbStyle: {
35106
+ background: '#929292',
35107
+ radius: 0
35108
+ }
35050
35109
  }
35051
35110
  };
35052
35111
  var PLOT_LINE_OPTION = {
@@ -36165,6 +36224,7 @@ var element_scatter_Scatter = /*#__PURE__*/function () {
36165
36224
 
36166
36225
 
36167
36226
 
36227
+
36168
36228
  var element_bar_Bar = /*#__PURE__*/function () {
36169
36229
  function Bar(sId, opt, sIdx, isHorizontal) {
36170
36230
  var _this = this;
@@ -36228,19 +36288,37 @@ var element_bar_Bar = /*#__PURE__*/function () {
36228
36288
  var y;
36229
36289
  var minmaxX = axesSteps.x[this.xAxisIndex];
36230
36290
  var minmaxY = axesSteps.y[this.yAxisIndex];
36291
+ var totalCount = this.data.length;
36292
+ var minIndex;
36293
+ var maxIndex;
36294
+
36295
+ if (isHorizontal) {
36296
+ var _ref = [minmaxY.minIndex, minmaxY.maxIndex];
36297
+ minIndex = _ref[0];
36298
+ maxIndex = _ref[1];
36299
+ } else {
36300
+ var _ref2 = [minmaxX.minIndex, minmaxX.maxIndex];
36301
+ minIndex = _ref2[0];
36302
+ maxIndex = _ref2[1];
36303
+ }
36304
+
36305
+ if (truthyNumber(minIndex) && truthyNumber(maxIndex)) {
36306
+ totalCount = maxIndex - minIndex + 1;
36307
+ }
36308
+
36231
36309
  var xArea = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
36232
36310
  var yArea = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
36233
36311
  var xsp = chartRect.x1 + labelOffset.left;
36234
36312
  var ysp = chartRect.y2 - labelOffset.bottom;
36235
36313
  var dArea = isHorizontal ? yArea : xArea;
36236
- var cArea = dArea / (this.data.length || 1);
36314
+ var cArea = dArea / (totalCount || 1);
36237
36315
  var cPad;
36238
36316
  var isUnableToDrawCategoryPadding = param.cPadRatio >= 1 || param.cPadRatio <= 0;
36239
36317
 
36240
36318
  if (isUnableToDrawCategoryPadding) {
36241
36319
  cPad = 2;
36242
36320
  } else {
36243
- cPad = Math.max(dArea * (param.cPadRatio / 2) / this.data.length, 2);
36321
+ cPad = Math.max(dArea * (param.cPadRatio / 2) / totalCount, 2);
36244
36322
  }
36245
36323
 
36246
36324
  var bArea;
@@ -36263,17 +36341,24 @@ var element_bar_Bar = /*#__PURE__*/function () {
36263
36341
  this.chartRect = chartRect;
36264
36342
  this.labelOffset = labelOffset;
36265
36343
  this.borderRadius = param.borderRadius;
36344
+ this.range = [minIndex, maxIndex];
36266
36345
  var categoryPoint = null;
36267
36346
  this.data.forEach(function (dataItem, index) {
36268
- var _param$selectLabel, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s;
36347
+ var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
36269
36348
 
36270
36349
  ctx.beginPath();
36271
36350
  var item = dataItem;
36272
36351
 
36352
+ if (truthyNumber(minIndex) && index < minIndex) {
36353
+ return;
36354
+ } else if (truthyNumber(minIndex) && index > maxIndex) {
36355
+ return;
36356
+ }
36357
+
36273
36358
  if (isHorizontal) {
36274
- categoryPoint = ysp - cArea * index - cPad;
36359
+ categoryPoint = ysp - cArea * (index - (minIndex || 0)) - cPad;
36275
36360
  } else {
36276
- categoryPoint = xsp + cArea * index + cPad;
36361
+ categoryPoint = xsp + cArea * (index - (minIndex || 0)) + cPad;
36277
36362
  }
36278
36363
 
36279
36364
  if (isHorizontal) {
@@ -36303,13 +36388,25 @@ var element_bar_Bar = /*#__PURE__*/function () {
36303
36388
  var barColor = item.dataColor || _this2.color;
36304
36389
  var legendHitInfo = param === null || param === void 0 ? void 0 : param.legendHitInfo;
36305
36390
  var selectLabelOption = param === null || param === void 0 ? void 0 : (_param$selectLabel = param.selectLabel) === null || _param$selectLabel === void 0 ? void 0 : _param$selectLabel.option;
36391
+ var selectItemOption = param === null || param === void 0 ? void 0 : (_param$selectItem = param.selectItem) === null || _param$selectItem === void 0 ? void 0 : _param$selectItem.option;
36306
36392
  var selectedLabelList = (_param$selectLabel$se = param === null || param === void 0 ? void 0 : (_param$selectLabel2 = param.selectLabel) === null || _param$selectLabel2 === void 0 ? void 0 : (_param$selectLabel2$s = _param$selectLabel2.selected) === null || _param$selectLabel2$s === void 0 ? void 0 : _param$selectLabel2$s.dataIndex) !== null && _param$selectLabel$se !== void 0 ? _param$selectLabel$se : [];
36393
+
36394
+ var _ref3 = (_param$selectItem$sel = param === null || param === void 0 ? void 0 : (_param$selectItem2 = param.selectItem) === null || _param$selectItem2 === void 0 ? void 0 : _param$selectItem2.selected) !== null && _param$selectItem$sel !== void 0 ? _param$selectItem$sel : {},
36395
+ selectedItemDataIndex = _ref3.dataIndex,
36396
+ selectedItemSeriesId = _ref3.seriesID;
36397
+
36307
36398
  var isDownplay = false;
36308
36399
 
36309
36400
  if (legendHitInfo) {
36310
36401
  isDownplay = (legendHitInfo === null || legendHitInfo === void 0 ? void 0 : legendHitInfo.sId) !== _this2.sId;
36311
36402
  } else if (selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.use && selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.useSeriesOpacity) {
36312
36403
  isDownplay = selectedLabelList.length && !selectedLabelList.includes(index);
36404
+ } else if (truthy(selectedItemDataIndex) && selectItemOption !== null && selectItemOption !== void 0 && selectItemOption.useSeriesOpacity) {
36405
+ if (_this2.isExistGrp) {
36406
+ isDownplay = selectedItemDataIndex !== index;
36407
+ } else {
36408
+ isDownplay = selectedItemDataIndex !== index || selectedItemSeriesId !== _this2.sId;
36409
+ }
36313
36410
  }
36314
36411
 
36315
36412
  if (typeof barColor !== 'string') {
@@ -36454,8 +36551,18 @@ var element_bar_Bar = /*#__PURE__*/function () {
36454
36551
  color: this.color
36455
36552
  };
36456
36553
  var gdata = this.data;
36554
+ var totalCount = gdata.length;
36555
+
36556
+ var _this$range = _slicedToArray(this.range, 2),
36557
+ min = _this$range[0],
36558
+ max = _this$range[1];
36559
+
36560
+ if (truthyNumber(min) && truthyNumber(max)) {
36561
+ totalCount = max - min + 1;
36562
+ }
36563
+
36457
36564
  var s = 0;
36458
- var e = gdata.length - 1;
36565
+ var e = totalCount - 1;
36459
36566
 
36460
36567
  while (s <= e) {
36461
36568
  var m = Math.floor((s + e) / 2);
@@ -36500,8 +36607,18 @@ var element_bar_Bar = /*#__PURE__*/function () {
36500
36607
  color: this.color
36501
36608
  };
36502
36609
  var gdata = this.data;
36610
+ var totalCount = gdata.length;
36611
+
36612
+ var _this$range2 = _slicedToArray(this.range, 2),
36613
+ min = _this$range2[0],
36614
+ max = _this$range2[1];
36615
+
36616
+ if (truthyNumber(min) && truthyNumber(max)) {
36617
+ totalCount = max - min + 1;
36618
+ }
36619
+
36503
36620
  var s = 0;
36504
- var e = gdata.length - 1;
36621
+ var e = totalCount - 1;
36505
36622
 
36506
36623
  while (s <= e) {
36507
36624
  var m = Math.floor((s + e) / 2);
@@ -36539,11 +36656,11 @@ var element_bar_Bar = /*#__PURE__*/function () {
36539
36656
 
36540
36657
  }, {
36541
36658
  key: "drawValueLabels",
36542
- value: function drawValueLabels(_ref) {
36543
- var context = _ref.context,
36544
- data = _ref.data,
36545
- positions = _ref.positions,
36546
- isHighlight = _ref.isHighlight;
36659
+ value: function drawValueLabels(_ref4) {
36660
+ var context = _ref4.context,
36661
+ data = _ref4.data,
36662
+ positions = _ref4.positions,
36663
+ isHighlight = _ref4.isHighlight;
36547
36664
  var isHorizontal = this.isHorizontal;
36548
36665
  var _this$showValue = this.showValue,
36549
36666
  fontSize = _this$showValue.fontSize,
@@ -36569,9 +36686,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
36569
36686
  if (isStacked) {
36570
36687
  value = data.o;
36571
36688
  } else {
36572
- var _ref2;
36689
+ var _ref5;
36573
36690
 
36574
- value = (_ref2 = isHorizontal ? data.x : data.y) !== null && _ref2 !== void 0 ? _ref2 : '';
36691
+ value = (_ref5 = isHorizontal ? data.x : data.y) !== null && _ref5 !== void 0 ? _ref5 : '';
36575
36692
  }
36576
36693
 
36577
36694
  var formattedTxt;
@@ -36660,9 +36777,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
36660
36777
  }
36661
36778
  }, {
36662
36779
  key: "drawBar",
36663
- value: function drawBar(_ref3) {
36664
- var ctx = _ref3.ctx,
36665
- positions = _ref3.positions;
36780
+ value: function drawBar(_ref6) {
36781
+ var ctx = _ref6.ctx,
36782
+ positions = _ref6.positions;
36666
36783
  var isHorizontal = this.isHorizontal;
36667
36784
  var isStackBar = ('stackIndex' in this);
36668
36785
  var isBorderRadius = this.borderRadius && this.borderRadius > 0;
@@ -37454,6 +37571,10 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37454
37571
  value: function drawItem(ctx, x, y, w, h, borderOpt) {
37455
37572
  ctx.beginPath();
37456
37573
 
37574
+ if (w < 0 || h < 0) {
37575
+ return;
37576
+ }
37577
+
37457
37578
  if (borderOpt.show) {
37458
37579
  var radius = borderOpt.radius;
37459
37580
 
@@ -37485,7 +37606,7 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37485
37606
  }
37486
37607
  }, {
37487
37608
  key: "calculateXY",
37488
- value: function calculateXY(dir, value, startPoint) {
37609
+ value: function calculateXY(dir, value, startPoint, minMax) {
37489
37610
  var point = null;
37490
37611
 
37491
37612
  if (this.labels[dir] && this.labels[dir].length) {
@@ -37493,17 +37614,39 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37493
37614
  return label === value;
37494
37615
  });
37495
37616
 
37496
- if (index > -1) {
37497
- point = dir === 'x' ? startPoint + this.size.w * index : startPoint - this.size.h * (index + 1);
37498
- } else {
37499
- var timeIndex = this.labels[dir].findIndex(function (label) {
37500
- return new Date(label).getTime() === new Date(value).getTime();
37617
+ if (index === -1) {
37618
+ index = this.labels[dir].findIndex(function (label) {
37619
+ return +label === +value;
37501
37620
  });
37621
+ }
37502
37622
 
37503
- if (timeIndex > -1) {
37504
- point = dir === 'x' ? startPoint + this.size.w * timeIndex : startPoint - this.size.h * (timeIndex + 1);
37623
+ var minIndex = minMax.minIndex,
37624
+ maxIndex = minMax.maxIndex,
37625
+ graphMin = minMax.graphMin,
37626
+ graphMax = minMax.graphMax;
37627
+
37628
+ if (truthyNumber(maxIndex) && index > maxIndex) {
37629
+ return null;
37630
+ }
37631
+
37632
+ if (truthyNumber(minIndex) && index < minIndex) {
37633
+ return null;
37634
+ }
37635
+
37636
+ if (checkNullAndUndefined(minIndex) && checkNullAndUndefined(maxIndex)) {
37637
+ if (value < graphMin || value > graphMax) {
37638
+ return null;
37505
37639
  }
37506
37640
  }
37641
+
37642
+ var startIndex = minIndex !== null && minIndex !== void 0 ? minIndex : this.labels[dir].findIndex(function (label) {
37643
+ return +label === +graphMin;
37644
+ });
37645
+
37646
+ if (index > -1) {
37647
+ index -= startIndex > -1 ? startIndex : 0;
37648
+ point = dir === 'x' ? startPoint + this.size.w * index : startPoint - this.size.h * (index + 1);
37649
+ }
37507
37650
  }
37508
37651
 
37509
37652
  return point;
@@ -37523,13 +37666,16 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37523
37666
  overlayCtx = param.overlayCtx,
37524
37667
  selectLabel = param.selectLabel,
37525
37668
  legendHitInfo = param.legendHitInfo,
37526
- selectItem = param.selectItem;
37669
+ selectItem = param.selectItem,
37670
+ axesSteps = param.axesSteps;
37527
37671
  var xArea = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
37528
37672
  var yArea = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
37529
37673
  var xsp = chartRect.x1 + labelOffset.left;
37530
37674
  var ysp = chartRect.y2 - labelOffset.bottom;
37531
- this.size.w = xArea / this.labels.x.length;
37532
- this.size.h = yArea / this.labels.y.length;
37675
+ var minmaxX = axesSteps.x[this.xAxisIndex];
37676
+ var minmaxY = axesSteps.y[this.yAxisIndex];
37677
+ this.size.w = xArea / minmaxX.oriSteps;
37678
+ this.size.h = yArea / minmaxY.oriSteps;
37533
37679
 
37534
37680
  var getOpacity = function getOpacity(item, opacity, index) {
37535
37681
  if (!legendHitInfo) {
@@ -37559,9 +37705,10 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37559
37705
 
37560
37706
  this.data.forEach(function (item, index) {
37561
37707
  var axisLineWidth = 1;
37562
- var xp = _this2.calculateXY('x', item.x, xsp) + axisLineWidth;
37563
37708
 
37564
- var yp = _this2.calculateXY('y', item.y, ysp);
37709
+ var xp = _this2.calculateXY('x', item.x, xsp, minmaxX);
37710
+
37711
+ var yp = _this2.calculateXY('y', item.y, ysp, minmaxY);
37565
37712
 
37566
37713
  var w = _this2.size.w;
37567
37714
  var h = _this2.size.h;
@@ -37600,14 +37747,19 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37600
37747
  color = _borderOpt.color,
37601
37748
  lineWidth = _borderOpt.lineWidth,
37602
37749
  borderOpacity = _borderOpt.opacity;
37603
- ctx.strokeStyle = helpers_util.colorStringToRgba(color, itemOpacity === 1 ? borderOpacity : itemOpacity);
37604
- ctx.lineWidth = lineWidth;
37605
- xp += lineWidth * 0.5;
37606
- yp += lineWidth * 0.5;
37607
- w -= lineWidth;
37608
- h -= lineWidth;
37750
+ ctx.strokeStyle = helpers_util.colorStringToRgba(color, itemOpacity === 1 ? borderOpacity : itemOpacity); // item 사이즈 보다 border 선 굵기가 큰 경우 lineWidth props 무시
37751
+
37752
+ if (lineWidth < w && lineWidth < h) {
37753
+ ctx.lineWidth = lineWidth;
37754
+ xp += lineWidth * 0.5;
37755
+ yp += lineWidth * 0.5;
37756
+ w -= lineWidth;
37757
+ h -= lineWidth;
37758
+ }
37609
37759
  }
37610
37760
 
37761
+ xp += axisLineWidth;
37762
+
37611
37763
  _this2.drawItem(ctx, xp, yp, w, h, borderOpt);
37612
37764
 
37613
37765
  ctx.restore();
@@ -37804,10 +37956,14 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37804
37956
 
37805
37957
  if (this.stroke.show) {
37806
37958
  var lineWidth = this.stroke.lineWidth;
37807
- x += lineWidth * 0.5;
37808
- y += lineWidth * 0.5;
37809
- w -= lineWidth;
37810
- h -= lineWidth;
37959
+
37960
+ if (lineWidth < w && lineWidth < h) {
37961
+ ctx.lineWidth = lineWidth;
37962
+ x += lineWidth * 0.5;
37963
+ y += lineWidth * 0.5;
37964
+ w -= lineWidth;
37965
+ h -= lineWidth;
37966
+ }
37811
37967
  }
37812
37968
 
37813
37969
  this.drawItem(ctx, x - 0.5, y - 0.5, w + 1, h + 1, this.stroke);
@@ -38166,12 +38322,12 @@ var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
38166
38322
 
38167
38323
 
38168
38324
  var scale_Scale = /*#__PURE__*/function () {
38169
- function Scale(type, opt, ctx, options) {
38325
+ function Scale(type, axisOpt, ctx, options) {
38170
38326
  var _this = this;
38171
38327
 
38172
38328
  _classCallCheck(this, Scale);
38173
38329
 
38174
- var merged = lodash_es_defaultsDeep({}, opt, AXIS_OPTION);
38330
+ var merged = lodash_es_defaultsDeep({}, axisOpt, AXIS_OPTION);
38175
38331
  Object.keys(merged).forEach(function (key) {
38176
38332
  _this[key] = merged[key];
38177
38333
  });
@@ -38223,21 +38379,21 @@ var scale_Scale = /*#__PURE__*/function () {
38223
38379
  /**
38224
38380
  * Calculate min/max value, label and size information for axis
38225
38381
  * @param {object} minMax min/max information
38382
+ * @param {object} scrollbarOpt scrollbar option
38226
38383
  *
38227
38384
  * @returns {object} min/max value and label
38228
38385
  */
38229
38386
 
38230
38387
  }, {
38231
38388
  key: "calculateScaleRange",
38232
- value: function calculateScaleRange(minMax) {
38233
- var _this$range;
38234
-
38389
+ value: function calculateScaleRange(minMax, scrollbarOpt) {
38235
38390
  var maxValue;
38236
38391
  var minValue;
38392
+ var range = scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use ? scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range : this.range;
38237
38393
 
38238
- if (((_this$range = this.range) === null || _this$range === void 0 ? void 0 : _this$range.length) === 2) {
38239
- maxValue = this.range[1];
38240
- minValue = this.range[0];
38394
+ if ((range === null || range === void 0 ? void 0 : range.length) === 2) {
38395
+ maxValue = range[1];
38396
+ minValue = range[0];
38241
38397
  } else {
38242
38398
  maxValue = minMax.max;
38243
38399
  minValue = minMax.min;
@@ -39350,23 +39506,25 @@ var scale_logarithmic_LogarithmicScale = /*#__PURE__*/function (_Scale) {
39350
39506
 
39351
39507
 
39352
39508
 
39509
+
39353
39510
  var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39354
39511
  _inherits(StepScale, _Scale);
39355
39512
 
39356
39513
  var _super = _createSuper(StepScale);
39357
39514
 
39358
- function StepScale(type, opt, ctx, labels, options) {
39515
+ function StepScale(type, axisOpt, ctx, labels, options) {
39359
39516
  var _this;
39360
39517
 
39361
39518
  _classCallCheck(this, StepScale);
39362
39519
 
39363
- _this = _super.call(this, type, opt, ctx, options);
39520
+ _this = _super.call(this, type, axisOpt, ctx, options);
39364
39521
  _this.labels = labels;
39365
39522
  return _this;
39366
39523
  }
39367
39524
  /**
39368
39525
  * Calculate min/max value, label and size information for step scale
39369
39526
  * @param {object} minMax min/max information (unused on step scale)
39527
+ * @param {object} scrollbarOpt scroll bar option
39370
39528
  * @param {object} chartRect chart size information
39371
39529
  *
39372
39530
  * @returns {object} min/max value and label
@@ -39375,14 +39533,31 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39375
39533
 
39376
39534
  _createClass(StepScale, [{
39377
39535
  key: "calculateScaleRange",
39378
- value: function calculateScaleRange(minMax, chartRect) {
39536
+ value: function calculateScaleRange(minMax, scrollbarOpt, chartRect) {
39379
39537
  var stepMinMax = this.labelStyle.alignToGridLine ? minMax : helpers_util.getStringMinMax(this.labels);
39380
39538
  var maxValue = stepMinMax.max;
39381
39539
  var minValue = stepMinMax.min;
39382
- var maxWidth = chartRect.chartWidth / (this.labels.length + 2);
39540
+ var minIndex = 0;
39541
+ var maxIndex = this.labels.length - 1;
39542
+ var labelCount = this.labels.length;
39543
+ var range = scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use ? scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range : this.range;
39544
+
39545
+ if (range !== null && range !== void 0 && range.length) {
39546
+ var _range = _slicedToArray(range, 2);
39547
+
39548
+ minIndex = _range[0];
39549
+ maxIndex = _range[1];
39550
+ maxValue = this.labels[maxIndex];
39551
+ minValue = this.labels[minIndex];
39552
+ labelCount = maxIndex - minIndex + 1;
39553
+ }
39554
+
39555
+ var maxWidth = chartRect.chartWidth / (labelCount + 2);
39383
39556
  return {
39384
39557
  min: minValue,
39385
39558
  max: maxValue,
39559
+ minIndex: minIndex,
39560
+ maxIndex: maxIndex,
39386
39561
  minLabel: this.getLabelFormat(minValue, maxWidth),
39387
39562
  maxLabel: this.getLabelFormat(maxValue, maxWidth),
39388
39563
  size: helpers_util.calcTextSize(this.getLabelFormat(maxValue, maxWidth), helpers_util.getLabelStyle(this.labelStyle))
@@ -39398,30 +39573,39 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39398
39573
  }, {
39399
39574
  key: "calculateSteps",
39400
39575
  value: function calculateSteps(range) {
39401
- var numberOfSteps = this.labels.length;
39576
+ var minValue = range.minValue,
39577
+ maxValue = range.maxValue,
39578
+ minIndex = range.minIndex,
39579
+ maxIndex = range.maxIndex,
39580
+ maxSteps = range.maxSteps;
39581
+ var numberOfSteps = maxIndex - minIndex + 1;
39402
39582
  var interval = 1;
39583
+ var oriSteps = numberOfSteps;
39403
39584
  var isNumbersArray = this.labels.every(function (label) {
39404
39585
  return !isNaN(label);
39405
39586
  });
39406
39587
 
39407
39588
  if (this.labelStyle.alignToGridLine && isNumbersArray) {
39408
- var maxSteps = range.maxSteps;
39409
-
39410
39589
  if (maxSteps > 2) {
39411
39590
  while (numberOfSteps > maxSteps * 2) {
39412
39591
  interval *= 2;
39413
39592
  numberOfSteps = Math.round(numberOfSteps / interval);
39414
39593
  }
39415
39594
  } else {
39416
- interval = this.labels.length;
39595
+ interval = oriSteps;
39417
39596
  }
39597
+ } else if (numberOfSteps > maxSteps * 2) {
39598
+ interval *= 2;
39418
39599
  }
39419
39600
 
39420
39601
  return {
39602
+ oriSteps: oriSteps,
39421
39603
  steps: numberOfSteps,
39422
39604
  interval: interval,
39423
- graphMin: range.minValue,
39424
- graphMax: range.maxValue
39605
+ graphMin: minValue,
39606
+ graphMax: maxValue,
39607
+ minIndex: minIndex,
39608
+ maxIndex: maxIndex
39425
39609
  };
39426
39610
  }
39427
39611
  /**
@@ -39451,14 +39635,14 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39451
39635
  y1: chartRect.y1 + labelOffset.top,
39452
39636
  y2: chartRect.y2 - labelOffset.bottom
39453
39637
  };
39454
- var oriSteps = this.labels.length;
39455
39638
  var steps = stepInfo.steps;
39456
39639
  var count = stepInfo.interval;
39640
+ var startIndex = stepInfo.minIndex;
39457
39641
  var startPoint = aPos[this.units.rectStart];
39458
39642
  var endPoint = aPos[this.units.rectEnd];
39459
39643
  var offsetPoint = aPos[this.units.rectOffset(this.position)];
39460
39644
  var offsetCounterPoint = aPos[this.units.rectOffsetCounter(this.position)];
39461
- var maxWidth = chartRect.chartWidth / (this.labels.length + 2);
39645
+ var maxWidth = chartRect.chartWidth / (steps + 2);
39462
39646
  this.drawAxisTitle(chartRect, labelOffset);
39463
39647
 
39464
39648
  if ((_this$labelStyle = this.labelStyle) !== null && _this$labelStyle !== void 0 && _this$labelStyle.show) {
@@ -39493,7 +39677,7 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39493
39677
  return;
39494
39678
  }
39495
39679
 
39496
- var labelGap = (endPoint - startPoint) / labels.length;
39680
+ var labelGap = (endPoint - startPoint) / steps;
39497
39681
  var alignToGridLine = this.labelStyle.alignToGridLine;
39498
39682
  var labelCenter = null;
39499
39683
  var linePosition = null;
@@ -39503,10 +39687,11 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39503
39687
  var labelPoint;
39504
39688
  var index;
39505
39689
 
39506
- for (index = 0; index < oriSteps; index += count) {
39690
+ for (index = 0; index < steps; index += count) {
39507
39691
  var _selectedLabelInfo$da, _selectedLabelInfo$da2;
39508
39692
 
39509
- var item = this.labels[index];
39693
+ var labelIndex = startIndex + index;
39694
+ var item = this.labels[labelIndex];
39510
39695
  labelCenter = Math.round(startPoint + labelGap * index);
39511
39696
  linePosition = labelCenter + aliasPixel;
39512
39697
  labelText = this.getLabelFormat(item, maxWidth);
@@ -39522,7 +39707,7 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39522
39707
  targetAxis = horizontal ? 'y' : 'x';
39523
39708
  }
39524
39709
 
39525
- var isBlurredLabel = (selectLabelOpt === null || selectLabelOpt === void 0 ? void 0 : selectLabelOpt.use) && (selectLabelOpt === null || selectLabelOpt === void 0 ? void 0 : selectLabelOpt.useLabelOpacity) && targetAxis === this.type && (selectedLabelInfo === null || selectedLabelInfo === void 0 ? void 0 : (_selectedLabelInfo$da = selectedLabelInfo.dataIndex) === null || _selectedLabelInfo$da === void 0 ? void 0 : _selectedLabelInfo$da.length) && !(selectedLabelInfo !== null && selectedLabelInfo !== void 0 && (_selectedLabelInfo$da2 = selectedLabelInfo.dataIndex) !== null && _selectedLabelInfo$da2 !== void 0 && _selectedLabelInfo$da2.includes(index));
39710
+ var isBlurredLabel = (selectLabelOpt === null || selectLabelOpt === void 0 ? void 0 : selectLabelOpt.use) && (selectLabelOpt === null || selectLabelOpt === void 0 ? void 0 : selectLabelOpt.useLabelOpacity) && targetAxis === this.type && (selectedLabelInfo === null || selectedLabelInfo === void 0 ? void 0 : (_selectedLabelInfo$da = selectedLabelInfo.dataIndex) === null || _selectedLabelInfo$da === void 0 ? void 0 : _selectedLabelInfo$da.length) && !(selectedLabelInfo !== null && selectedLabelInfo !== void 0 && (_selectedLabelInfo$da2 = selectedLabelInfo.dataIndex) !== null && _selectedLabelInfo$da2 !== void 0 && _selectedLabelInfo$da2.includes(labelIndex));
39526
39711
  var labelColor = this.labelStyle.color;
39527
39712
  var defaultOpacity = 1;
39528
39713
 
@@ -39741,17 +39926,18 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39741
39926
 
39742
39927
 
39743
39928
 
39929
+
39744
39930
  var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39745
39931
  _inherits(TimeCategoryScale, _Scale);
39746
39932
 
39747
39933
  var _super = _createSuper(TimeCategoryScale);
39748
39934
 
39749
- function TimeCategoryScale(type, opt, ctx, labels, options) {
39935
+ function TimeCategoryScale(type, axisOpt, ctx, labels, options) {
39750
39936
  var _this;
39751
39937
 
39752
39938
  _classCallCheck(this, TimeCategoryScale);
39753
39939
 
39754
- _this = _super.call(this, type, opt, ctx);
39940
+ _this = _super.call(this, type, axisOpt, ctx);
39755
39941
  _this.labels = labels;
39756
39942
  _this.options = options;
39757
39943
  return _this;
@@ -39867,6 +40053,8 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39867
40053
  }, {
39868
40054
  key: "draw",
39869
40055
  value: function draw(chartRect, labelOffset, stepInfo, hitInfo, selectLabelInfo) {
40056
+ var _this2 = this;
40057
+
39870
40058
  var ctx = this.ctx;
39871
40059
  var labels = this.labels;
39872
40060
  var aPos = {
@@ -39919,7 +40107,7 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39919
40107
  }
39920
40108
 
39921
40109
  var alignToGridLine = this.labelStyle.alignToGridLine;
39922
- var graphGap = (endPoint - startPoint) / (labels.length || 1);
40110
+ var graphGap = (endPoint - startPoint) / (oriSteps || 1);
39923
40111
 
39924
40112
  if (this.categoryMode && !alignToGridLine) {
39925
40113
  startPoint += Math.ceil(graphGap / 2) - 2;
@@ -39934,13 +40122,15 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39934
40122
  var labelPoint;
39935
40123
 
39936
40124
  for (var ix = 0; ix < oriSteps; ix += count) {
39937
- var _this$options, _this$options$selectL, _this$options2, _this$options2$select, _selectLabelInfo$data, _selectLabelInfo$data2;
40125
+ var _this$options, _this$options$selectL, _this$options2, _this$options2$select, _selectLabelInfo$data;
39938
40126
 
39939
40127
  ticks[ix] = axisMin + ix * stepValue;
39940
40128
  labelCenter = Math.round(startPoint + graphGap * ix);
39941
40129
  linePosition = labelCenter + aliasPixel;
39942
40130
  labelText = this.getLabelFormat(Math.min(axisMax, ticks[ix]));
39943
- var isBlurredLabel = ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$selectL = _this$options.selectLabel) === null || _this$options$selectL === void 0 ? void 0 : _this$options$selectL.use) && ((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : (_this$options2$select = _this$options2.selectLabel) === null || _this$options2$select === void 0 ? void 0 : _this$options2$select.useLabelOpacity) && this.options.horizontal === (this.type === 'y') && (selectLabelInfo === null || selectLabelInfo === void 0 ? void 0 : (_selectLabelInfo$data = selectLabelInfo.dataIndex) === null || _selectLabelInfo$data === void 0 ? void 0 : _selectLabelInfo$data.length) && !(selectLabelInfo !== null && selectLabelInfo !== void 0 && (_selectLabelInfo$data2 = selectLabelInfo.dataIndex) !== null && _selectLabelInfo$data2 !== void 0 && _selectLabelInfo$data2.includes(ix));
40131
+ var isBlurredLabel = ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$selectL = _this$options.selectLabel) === null || _this$options$selectL === void 0 ? void 0 : _this$options$selectL.use) && ((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : (_this$options2$select = _this$options2.selectLabel) === null || _this$options2$select === void 0 ? void 0 : _this$options2$select.useLabelOpacity) && this.options.horizontal === (this.type === 'y') && (selectLabelInfo === null || selectLabelInfo === void 0 ? void 0 : (_selectLabelInfo$data = selectLabelInfo.dataIndex) === null || _selectLabelInfo$data === void 0 ? void 0 : _selectLabelInfo$data.length) && !(selectLabelInfo !== null && selectLabelInfo !== void 0 && selectLabelInfo.label.map(function (t) {
40132
+ return _this2.getLabelFormat(Math.min(axisMax, t));
40133
+ }).includes(labelText));
39944
40134
  var labelColor = this.labelStyle.color;
39945
40135
  var defaultOpacity = 1;
39946
40136
 
@@ -42010,6 +42200,662 @@ var plugins_legend_gradient_modules = {
42010
42200
  }
42011
42201
  };
42012
42202
  /* harmony default export */ var plugins_legend_gradient = (plugins_legend_gradient_modules);
42203
+ // CONCATENATED MODULE: ./src/components/chart/plugins/plugins.scrollbar.js
42204
+
42205
+
42206
+
42207
+
42208
+
42209
+
42210
+
42211
+
42212
+
42213
+
42214
+
42215
+ var plugins_scrollbar_module = {
42216
+ /**
42217
+ * init scrollbar information
42218
+ */
42219
+ initScrollbar: function initScrollbar() {
42220
+ var _this$options$axesX, _this$options$axesX$, _this$options$axesX$$, _this$options$axesY, _this$options$axesY$, _this$options$axesY$$;
42221
+
42222
+ if ((_this$options$axesX = this.options.axesX) !== null && _this$options$axesX !== void 0 && (_this$options$axesX$ = _this$options$axesX[0]) !== null && _this$options$axesX$ !== void 0 && (_this$options$axesX$$ = _this$options$axesX$.scrollbar) !== null && _this$options$axesX$$ !== void 0 && _this$options$axesX$$.use) {
42223
+ this.initScrollbarInfo(this.options.axesX, 'x');
42224
+ }
42225
+
42226
+ if ((_this$options$axesY = this.options.axesY) !== null && _this$options$axesY !== void 0 && (_this$options$axesY$ = _this$options$axesY[0]) !== null && _this$options$axesY$ !== void 0 && (_this$options$axesY$$ = _this$options$axesY$.scrollbar) !== null && _this$options$axesY$$ !== void 0 && _this$options$axesY$$.use) {
42227
+ this.initScrollbarInfo(this.options.axesY, 'y');
42228
+ }
42229
+ },
42230
+
42231
+ /**
42232
+ * init scrollbar information with axis information
42233
+ * @param axisOpt axis option
42234
+ * @param dir axis direction (x | y)
42235
+ */
42236
+ initScrollbarInfo: function initScrollbarInfo(axisOpt, dir) {
42237
+ var scrollbarOpt = this.scrollbar[dir];
42238
+
42239
+ if (!scrollbarOpt.isInit) {
42240
+ var _axisOpt$, _axisOpt$2, _axisOpt$3;
42241
+
42242
+ var merged = lodash_es_defaultsDeep({}, axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$ = axisOpt[0]) === null || _axisOpt$ === void 0 ? void 0 : _axisOpt$.scrollbar, AXIS_OPTION.scrollbar);
42243
+ Object.keys(merged).forEach(function (key) {
42244
+ scrollbarOpt[key] = merged[key];
42245
+ });
42246
+ scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$2 = axisOpt[0]) === null || _axisOpt$2 === void 0 ? void 0 : _axisOpt$2.type;
42247
+ scrollbarOpt.range = (axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$3 = axisOpt[0]) === null || _axisOpt$3 === void 0 ? void 0 : _axisOpt$3.range) || null;
42248
+ scrollbarOpt.interval = null;
42249
+ this.createScrollbarLayout(dir);
42250
+ this.createScrollbar(dir);
42251
+ this.createScrollEvent(dir);
42252
+ scrollbarOpt.isInit = true;
42253
+ }
42254
+ },
42255
+
42256
+ /**
42257
+ * update scrollbar information
42258
+ */
42259
+ updateScrollbar: function updateScrollbar() {
42260
+ this.updateScrollbarInfo('x');
42261
+ this.updateScrollbarInfo('y');
42262
+ },
42263
+
42264
+ /**
42265
+ * Updated scrollbar information with updated axis information
42266
+ * @param dir axis direction (x | y)
42267
+ */
42268
+ updateScrollbarInfo: function updateScrollbarInfo(dir) {
42269
+ var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$4, _newOpt$0$scrollbar2;
42270
+
42271
+ var _this$options = this.options,
42272
+ axesX = _this$options.axesX,
42273
+ axesY = _this$options.axesY;
42274
+ var newOpt = dir === 'x' ? axesX : axesY;
42275
+
42276
+ if (!this.scrollbar[dir].isInit && newOpt !== null && newOpt !== void 0 && (_newOpt$ = newOpt[0]) !== null && _newOpt$ !== void 0 && (_newOpt$$scrollbar = _newOpt$.scrollbar) !== null && _newOpt$$scrollbar !== void 0 && _newOpt$$scrollbar.use && newOpt !== null && newOpt !== void 0 && (_newOpt$2 = newOpt[0]) !== null && _newOpt$2 !== void 0 && _newOpt$2.range) {
42277
+ this.initScrollbarInfo(newOpt, dir);
42278
+ return;
42279
+ } else if (!(newOpt !== null && newOpt !== void 0 && (_newOpt$0$scrollbar = newOpt[0].scrollbar) !== null && _newOpt$0$scrollbar !== void 0 && _newOpt$0$scrollbar.use) || checkNullAndUndefined(newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$3 = newOpt[0]) === null || _newOpt$3 === void 0 ? void 0 : _newOpt$3.range)) {
42280
+ this.destroyScrollbar(dir);
42281
+ return;
42282
+ }
42283
+
42284
+ var axisOpt = dir === 'x' ? this.axesX : this.axesY;
42285
+ var isUpdateAxesRange = !lodash_es_isEqual(newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$4 = newOpt[0]) === null || _newOpt$4 === void 0 ? void 0 : _newOpt$4.range, axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$4 = axisOpt[0]) === null || _axisOpt$4 === void 0 ? void 0 : _axisOpt$4.range);
42286
+
42287
+ if (isUpdateAxesRange) {
42288
+ var _newOpt$5;
42289
+
42290
+ this.scrollbar[dir].range = (newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$5 = newOpt[0]) === null || _newOpt$5 === void 0 ? void 0 : _newOpt$5.range) || null;
42291
+ }
42292
+
42293
+ this.scrollbar[dir].use = !!(newOpt !== null && newOpt !== void 0 && (_newOpt$0$scrollbar2 = newOpt[0].scrollbar) !== null && _newOpt$0$scrollbar2 !== void 0 && _newOpt$0$scrollbar2.use);
42294
+ },
42295
+
42296
+ /**
42297
+ * update scrollbar position
42298
+ */
42299
+ updateScrollbarPosition: function updateScrollbarPosition() {
42300
+ var _this$scrollbar$x, _this$scrollbar$x2, _this$scrollbar$y, _this$scrollbar$y2;
42301
+
42302
+ if ((_this$scrollbar$x = this.scrollbar.x) !== null && _this$scrollbar$x !== void 0 && _this$scrollbar$x.use && (_this$scrollbar$x2 = this.scrollbar.x) !== null && _this$scrollbar$x2 !== void 0 && _this$scrollbar$x2.isInit) {
42303
+ this.setScrollbarPosition('x');
42304
+ }
42305
+
42306
+ if ((_this$scrollbar$y = this.scrollbar.y) !== null && _this$scrollbar$y !== void 0 && _this$scrollbar$y.use && (_this$scrollbar$y2 = this.scrollbar.y) !== null && _this$scrollbar$y2 !== void 0 && _this$scrollbar$y2.isInit) {
42307
+ this.setScrollbarPosition('y');
42308
+ }
42309
+ },
42310
+
42311
+ /**
42312
+ * create scrollbar layout
42313
+ * @param dir axis direction ('x' | 'y')
42314
+ */
42315
+ createScrollbarLayout: function createScrollbarLayout(dir) {
42316
+ var scrollbarOpt = this.scrollbar[dir];
42317
+ scrollbarOpt.dom = document.createElement('div');
42318
+ scrollbarOpt.dom.className = 'ev-chart-scrollbar';
42319
+ scrollbarOpt.dom.dataset.type = 'scrollbar';
42320
+ var containerDOM = document.createElement('div');
42321
+ containerDOM.className = 'ev-chart-scrollbar-container';
42322
+ containerDOM.dataset.type = dir;
42323
+ scrollbarOpt.dom.appendChild(containerDOM);
42324
+ this.wrapperDOM.appendChild(scrollbarOpt.dom);
42325
+ },
42326
+
42327
+ /**
42328
+ * create scrollbar
42329
+ * @param dir axis direction ('x' | 'y')
42330
+ */
42331
+ createScrollbar: function createScrollbar(dir) {
42332
+ var scrollbarOpt = this.scrollbar[dir];
42333
+ var containerDOM = scrollbarOpt.dom.children[0];
42334
+ this.createScrollbarTrack(containerDOM);
42335
+ this.createScrollbarThumb(containerDOM);
42336
+
42337
+ if (scrollbarOpt.showButton) {
42338
+ this.createScrollbarButton(containerDOM);
42339
+ }
42340
+ },
42341
+
42342
+ /**
42343
+ * create scrollbar track
42344
+ * @param containerDOM
42345
+ */
42346
+ createScrollbarTrack: function createScrollbarTrack(containerDOM) {
42347
+ var trackDOM = document.createElement('div');
42348
+ trackDOM.className = 'ev-chart-scrollbar-track';
42349
+ trackDOM.dataset.type = 'track';
42350
+ containerDOM.appendChild(trackDOM);
42351
+ },
42352
+
42353
+ /**
42354
+ * create scrollbar thumb
42355
+ * @param containerDOM
42356
+ */
42357
+ createScrollbarThumb: function createScrollbarThumb(containerDOM) {
42358
+ var thumbDOM = document.createElement('div');
42359
+ thumbDOM.className = 'ev-chart-scrollbar-thumb';
42360
+ thumbDOM.dataset.type = 'thumb';
42361
+ containerDOM.appendChild(thumbDOM);
42362
+ },
42363
+
42364
+ /**
42365
+ * create scrollbar up, down button
42366
+ * @param containerDOM
42367
+ */
42368
+ createScrollbarButton: function createScrollbarButton(containerDOM) {
42369
+ var upBtnDOM = document.createElement('div');
42370
+ upBtnDOM.className = 'ev-chart-scrollbar-button ev-chart-scrollbar-button-up';
42371
+ upBtnDOM.dataset.type = 'button';
42372
+ var iconUpBtn = document.createElement('i');
42373
+ iconUpBtn.className = 'ev-icon ev-icon-triangle-up ev-chart-scrollbar-button-icon';
42374
+ iconUpBtn.dataset.type = 'button-icon';
42375
+ upBtnDOM.appendChild(iconUpBtn);
42376
+ var downBtnDOM = document.createElement('div');
42377
+ downBtnDOM.className = 'ev-chart-scrollbar-button ev-chart-scrollbar-button-down';
42378
+ downBtnDOM.dataset.type = 'button';
42379
+ var iconDownBtn = document.createElement('i');
42380
+ iconDownBtn.className = 'ev-icon ev-icon-triangle-down ev-chart-scrollbar-button-icon';
42381
+ iconDownBtn.dataset.type = 'button-icon';
42382
+ downBtnDOM.appendChild(iconDownBtn);
42383
+ containerDOM.appendChild(upBtnDOM);
42384
+ containerDOM.appendChild(downBtnDOM);
42385
+ },
42386
+
42387
+ /**
42388
+ * set scrollbar position
42389
+ * @param dir axis direction ('x' | 'y')
42390
+ */
42391
+ setScrollbarPosition: function setScrollbarPosition(dir) {
42392
+ var _this$options$title, _this$options$title2;
42393
+
42394
+ var scrollbarOpt = this.scrollbar[dir];
42395
+
42396
+ if (!scrollbarOpt.use || !scrollbarOpt.range) {
42397
+ return;
42398
+ }
42399
+
42400
+ var scrollbarDOM = scrollbarOpt.dom;
42401
+ var chartRect = this.chartRect;
42402
+ var labelOffset = this.labelOffset;
42403
+ var aPos = {
42404
+ x1: chartRect.x1 + labelOffset.left,
42405
+ x2: chartRect.x2 - labelOffset.right,
42406
+ y1: chartRect.y1 + labelOffset.top,
42407
+ y2: chartRect.y2 - labelOffset.bottom
42408
+ };
42409
+ var titleHeight = (_this$options$title = this.options.title) !== null && _this$options$title !== void 0 && _this$options$title.show ? (_this$options$title2 = this.options.title) === null || _this$options$title2 === void 0 ? void 0 : _this$options$title2.height : 0;
42410
+ var isXScroll = dir === 'x';
42411
+ var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
42412
+ var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
42413
+ var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
42414
+ var trackSize = fullSize - buttonSize * 2;
42415
+ var thumbSize = this.getScrollbarThumbSize(dir, trackSize);
42416
+ var scrollbarStyle = 'display: block;';
42417
+ var scrollbarTrackStyle;
42418
+ var scrollbarThumbStyle;
42419
+ var upBtnStyle;
42420
+ var downBtnStyle;
42421
+ var commonBtnStyle = "width:".concat(buttonSize, "px;height:").concat(buttonSize, "px;");
42422
+
42423
+ if (isXScroll) {
42424
+ scrollbarStyle = "top: ".concat(chartRect.y2 + titleHeight + labelOffset.top, "px;");
42425
+ scrollbarStyle += "left: ".concat(aPos.x1, "px;");
42426
+ scrollbarStyle += "width: ".concat(fullSize, "px;");
42427
+ scrollbarStyle += " height: ".concat(scrollHeight, "px;");
42428
+ scrollbarTrackStyle = 'top: 0;';
42429
+ scrollbarTrackStyle += "left: ".concat(buttonSize, "px;");
42430
+ scrollbarTrackStyle += "width: ".concat(trackSize, "px;");
42431
+ scrollbarTrackStyle += 'height: 100%;';
42432
+ scrollbarThumbStyle = "width: ".concat(thumbSize.size, "px;");
42433
+ scrollbarThumbStyle += 'height: 100%;';
42434
+ scrollbarThumbStyle += "left: ".concat(thumbSize.position + buttonSize, "px");
42435
+ commonBtnStyle += 'transform:rotate(90deg);top: 0;';
42436
+ upBtnStyle = "".concat(commonBtnStyle, "right:0;");
42437
+ downBtnStyle = "".concat(commonBtnStyle, "left:0;");
42438
+ } else {
42439
+ scrollbarStyle = "top: ".concat(aPos.y1 + titleHeight, "px;");
42440
+ scrollbarStyle += "left: ".concat(aPos.x2 + 10, "px;");
42441
+ scrollbarStyle += "width: ".concat(scrollHeight, "px;");
42442
+ scrollbarStyle += "height: ".concat(fullSize, "px;");
42443
+ scrollbarTrackStyle = "top: ".concat(buttonSize, "px;");
42444
+ scrollbarTrackStyle += 'left: 0;';
42445
+ scrollbarTrackStyle += 'width: 100%;';
42446
+ scrollbarTrackStyle += "height: ".concat(trackSize, "px;");
42447
+ scrollbarThumbStyle = 'width: 100%;';
42448
+ scrollbarThumbStyle += "height: ".concat(thumbSize.size, "px;");
42449
+ scrollbarThumbStyle += "bottom: ".concat(thumbSize.position + buttonSize, "px");
42450
+ commonBtnStyle += 'left:0;';
42451
+ upBtnStyle = "".concat(commonBtnStyle, "top: 0;");
42452
+ downBtnStyle = "".concat(commonBtnStyle, "bottom: 0;");
42453
+ }
42454
+
42455
+ scrollbarDOM.style.cssText = scrollbarStyle;
42456
+ var scrollbarTrackDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-track');
42457
+ scrollbarTrackDOM[0].style.cssText = scrollbarTrackStyle;
42458
+ scrollbarTrackDOM[0].style.backgroundColor = scrollbarOpt.background;
42459
+ var scrollbarThumbDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42460
+ scrollbarThumbDOM[0].style.cssText = scrollbarThumbStyle;
42461
+ scrollbarThumbDOM[0].style.backgroundColor = scrollbarOpt.thumbStyle.background;
42462
+ scrollbarThumbDOM[0].style.borderRadius = "".concat(scrollbarOpt.thumbStyle.radius, "px");
42463
+
42464
+ if (scrollbarOpt.showButton) {
42465
+ var upBtnDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-button-up');
42466
+ var endPosition = Math.floor(trackSize - thumbSize.size);
42467
+ var upBtnOpacity = Math.floor(thumbSize.position) === endPosition ? 0.5 : 1;
42468
+ upBtnDOM[0].style.cssText = "background-color: ".concat(scrollbarOpt.background, ";").concat(upBtnStyle);
42469
+ upBtnDOM[0].style.opacity = upBtnOpacity;
42470
+ upBtnDOM[0].children[0].style.display = 'block';
42471
+ var downBtnDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-button-down');
42472
+ downBtnDOM[0].style.cssText = "background-color: ".concat(scrollbarOpt.background, ";").concat(downBtnStyle);
42473
+ downBtnDOM[0].style.opacity = Math.floor(thumbSize.position) === 0 ? 0.5 : 1;
42474
+ downBtnDOM[0].children[0].style.display = 'block';
42475
+ }
42476
+ },
42477
+
42478
+ /**
42479
+ * get scrollbar thumb size
42480
+ * @param dir axis direction ('x' | 'y')
42481
+ * @param trackSize scrollbar track size
42482
+ */
42483
+ getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
42484
+ var scrollbarOpt = this.scrollbar[dir];
42485
+
42486
+ var _scrollbarOpt$range = _slicedToArray(scrollbarOpt.range, 2),
42487
+ min = _scrollbarOpt$range[0],
42488
+ max = _scrollbarOpt$range[1];
42489
+
42490
+ var axesType = scrollbarOpt.type;
42491
+ var thumbSize;
42492
+ var steps;
42493
+ var interval = 1;
42494
+ var startValue = 0;
42495
+ var thumbPosition = 0;
42496
+
42497
+ if (axesType === 'step') {
42498
+ var labels = this.options.type === 'heatMap' ? this.data.labels[dir] : this.data.labels;
42499
+ var range = max - min + 1;
42500
+ steps = labels.length;
42501
+ var intervalSize = trackSize / steps;
42502
+ thumbSize = intervalSize * range;
42503
+ thumbPosition = intervalSize * min;
42504
+ } else {
42505
+ var _this$axesX, _this$axesX$;
42506
+
42507
+ var minMax = this.minMax[dir];
42508
+ var graphRange = +minMax[0].max - +minMax[0].min;
42509
+
42510
+ var _range = +max - +min;
42511
+
42512
+ interval = (_this$axesX = this.axesX) === null || _this$axesX === void 0 ? void 0 : (_this$axesX$ = _this$axesX[0]) === null || _this$axesX$ === void 0 ? void 0 : _this$axesX$.getInterval({
42513
+ min: minMax[0].min,
42514
+ max: minMax[0].max,
42515
+ maxSteps: this.labelRange[dir].max
42516
+ });
42517
+ steps = Math.ceil(graphRange / interval) + 1;
42518
+ startValue = +minMax[0].min;
42519
+
42520
+ var _intervalSize = trackSize / steps;
42521
+
42522
+ var count = _range / interval + 1;
42523
+ var point = +min - startValue;
42524
+ thumbSize = _intervalSize * count;
42525
+ thumbPosition = _intervalSize * (point / interval);
42526
+ }
42527
+
42528
+ scrollbarOpt.startValue = startValue;
42529
+ scrollbarOpt.steps = steps;
42530
+ scrollbarOpt.interval = interval;
42531
+ return {
42532
+ size: thumbSize,
42533
+ position: thumbPosition,
42534
+ background: scrollbarOpt.background,
42535
+ radius: scrollbarOpt.radius
42536
+ };
42537
+ },
42538
+
42539
+ /**
42540
+ * get scrollbar containerDOM
42541
+ * @param targetDOM event target dom
42542
+ * @returns {HTMLElement|Element|*}
42543
+ */
42544
+ getScrollbarContainerDOM: function getScrollbarContainerDOM(targetDOM) {
42545
+ var childTypes = ['track', 'thumb', 'button'];
42546
+ var type = targetDOM.dataset.type;
42547
+
42548
+ if (childTypes.includes(type)) {
42549
+ return targetDOM.parentElement;
42550
+ } else if (type === 'button-icon') {
42551
+ return targetDOM.parentElement.parentElement;
42552
+ } else if (type === 'scrollbar') {
42553
+ return targetDOM.getElementsByClassName('ev-chart-scrollbar-container')[0];
42554
+ }
42555
+
42556
+ return targetDOM;
42557
+ },
42558
+
42559
+ /**
42560
+ * update scrollbar option range
42561
+ * @param dir axis direction ('x' | 'y')
42562
+ * @param isUp
42563
+ */
42564
+ updateScrollbarRange: function updateScrollbarRange(dir, isUp) {
42565
+ var scrollbarOpt = this.scrollbar[dir];
42566
+ var startValue = scrollbarOpt.startValue,
42567
+ range = scrollbarOpt.range,
42568
+ interval = scrollbarOpt.interval,
42569
+ steps = scrollbarOpt.steps;
42570
+ var endValue = startValue + interval * steps;
42571
+ var axisOpt = dir === 'x' ? this.axesX[0] : this.axesY[0];
42572
+
42573
+ var _ref = range !== null && range !== void 0 ? range : [],
42574
+ _ref2 = _slicedToArray(_ref, 2),
42575
+ min = _ref2[0],
42576
+ max = _ref2[1];
42577
+
42578
+ if (!truthyNumber(min) || !truthyNumber(max)) {
42579
+ scrollbarOpt.range = (axisOpt === null || axisOpt === void 0 ? void 0 : axisOpt.range) || null;
42580
+ }
42581
+
42582
+ var minValue;
42583
+ var maxValue;
42584
+ var isOutOfRange = false;
42585
+
42586
+ if (isUp) {
42587
+ minValue = min + interval;
42588
+ maxValue = max + interval;
42589
+ isOutOfRange = maxValue >= endValue;
42590
+ } else {
42591
+ minValue = min - interval;
42592
+ maxValue = max - interval;
42593
+ isOutOfRange = minValue < startValue;
42594
+ }
42595
+
42596
+ if (!isOutOfRange) {
42597
+ scrollbarOpt.range = [minValue, maxValue];
42598
+ this.update({
42599
+ updateSeries: false,
42600
+ updateSelTip: {
42601
+ update: false,
42602
+ keepDomain: false
42603
+ }
42604
+ });
42605
+ }
42606
+ },
42607
+
42608
+ /**
42609
+ * create scroll event
42610
+ */
42611
+ createScrollEvent: function createScrollEvent() {
42612
+ var _this = this;
42613
+
42614
+ this.onScrollbarClick = function (e) {
42615
+ e.preventDefault();
42616
+ var type = e.target.dataset.type;
42617
+
42618
+ var containerDOM = _this.getScrollbarContainerDOM(e.target);
42619
+
42620
+ var buttonTypes = ['button', 'button-icon'];
42621
+ var dir = containerDOM.dataset.type;
42622
+ var isUp;
42623
+
42624
+ if (buttonTypes.includes(type)) {
42625
+ var buttonDOM;
42626
+
42627
+ if (type === 'button') {
42628
+ buttonDOM = e.target;
42629
+ } else if (type === 'button-icon') {
42630
+ buttonDOM = e.target.parentElement;
42631
+ }
42632
+
42633
+ isUp = buttonDOM.className.includes('up');
42634
+ } else if (type === 'track') {
42635
+ var thumbDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42636
+
42637
+ var _thumbDOM$0$getBoundi = thumbDOM[0].getBoundingClientRect(),
42638
+ x = _thumbDOM$0$getBoundi.x,
42639
+ y = _thumbDOM$0$getBoundi.y;
42640
+
42641
+ var isXScroll = dir === 'x';
42642
+ var clickPoint = isXScroll ? e.clientX : -e.clientY;
42643
+ var thumbPosition = isXScroll ? x : -y;
42644
+ isUp = clickPoint > thumbPosition;
42645
+ } else {
42646
+ return;
42647
+ }
42648
+
42649
+ _this.updateScrollbarRange(dir, isUp);
42650
+ };
42651
+
42652
+ this.onScrollbarDown = function (e) {
42653
+ e.preventDefault();
42654
+
42655
+ if (e.target.dataset.type !== 'thumb') {
42656
+ return;
42657
+ }
42658
+
42659
+ var containerDOM = _this.getScrollbarContainerDOM(e.target);
42660
+
42661
+ var dir = containerDOM.dataset.type;
42662
+ var thumbDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42663
+
42664
+ var _thumbDOM$0$getBoundi2 = thumbDOM[0].getBoundingClientRect(),
42665
+ x = _thumbDOM$0$getBoundi2.x,
42666
+ y = _thumbDOM$0$getBoundi2.y,
42667
+ height = _thumbDOM$0$getBoundi2.height;
42668
+
42669
+ var scrollbarOpt = _this.scrollbar[dir];
42670
+ scrollbarOpt.scrolling = true;
42671
+
42672
+ if (dir === 'x') {
42673
+ scrollbarOpt.pointInThumb = e.clientX - x;
42674
+ } else {
42675
+ scrollbarOpt.pointInThumb = y + height - e.clientY;
42676
+ }
42677
+
42678
+ var scrollbarDOM = scrollbarOpt.dom;
42679
+ scrollbarDOM.addEventListener('mousemove', _this.onScrollbarMove);
42680
+ scrollbarDOM.addEventListener('mouseup', _this.onScrollbarUp);
42681
+ };
42682
+
42683
+ var onScrollbarMove = function onScrollbarMove(e) {
42684
+ _this.scrolling(e);
42685
+ };
42686
+
42687
+ this.onScrollbarMove = lodash_es_throttle(onScrollbarMove, 5);
42688
+
42689
+ this.onScrollbarUp = function (e) {
42690
+ e.preventDefault();
42691
+
42692
+ _this.stopScrolling(e);
42693
+ };
42694
+
42695
+ this.onScrollbarLeave = function (e) {
42696
+ e.preventDefault();
42697
+
42698
+ _this.scrolling(e);
42699
+
42700
+ _this.stopScrolling(e);
42701
+ };
42702
+
42703
+ this.onScrollbarWheel = function (e) {
42704
+ e.preventDefault();
42705
+
42706
+ _this.updateScrollbarRange('y', e.deltaY < 0);
42707
+ };
42708
+
42709
+ if (this.scrollbar.x.use && !this.scrollbar.x.isInit) {
42710
+ var scrollbarXDOM = this.scrollbar.x.dom;
42711
+ scrollbarXDOM.addEventListener('click', this.onScrollbarClick);
42712
+ scrollbarXDOM.addEventListener('mousedown', this.onScrollbarDown);
42713
+ scrollbarXDOM.addEventListener('mouseleave', this.onScrollbarLeave);
42714
+ }
42715
+
42716
+ if (this.scrollbar.y.use && !this.scrollbar.y.isInit) {
42717
+ var _this$overlayCanvas;
42718
+
42719
+ var scrollbarYDOM = this.scrollbar.y.dom;
42720
+ scrollbarYDOM.addEventListener('click', this.onScrollbarClick);
42721
+ scrollbarYDOM.addEventListener('mousedown', this.onScrollbarDown);
42722
+ scrollbarYDOM.addEventListener('mouseleave', this.onScrollbarLeave);
42723
+ (_this$overlayCanvas = this.overlayCanvas) === null || _this$overlayCanvas === void 0 ? void 0 : _this$overlayCanvas.addEventListener('wheel', this.onScrollbarWheel);
42724
+ }
42725
+ },
42726
+
42727
+ /**
42728
+ * Update scroll information by move event
42729
+ * @param e Event
42730
+ */
42731
+ scrolling: function scrolling(e) {
42732
+ var containerDOM = this.getScrollbarContainerDOM(e.target);
42733
+ var dir = containerDOM.dataset.type;
42734
+
42735
+ if (!this.scrollbar[dir].scrolling) {
42736
+ return;
42737
+ }
42738
+
42739
+ var _this$scrollbar$dir = this.scrollbar[dir],
42740
+ steps = _this$scrollbar$dir.steps,
42741
+ range = _this$scrollbar$dir.range,
42742
+ pointInThumb = _this$scrollbar$dir.pointInThumb,
42743
+ startValue = _this$scrollbar$dir.startValue,
42744
+ interval = _this$scrollbar$dir.interval;
42745
+ var trackDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-track');
42746
+
42747
+ var _trackDOM$0$getBoundi = trackDOM[0].getBoundingClientRect(),
42748
+ x = _trackDOM$0$getBoundi.x,
42749
+ y = _trackDOM$0$getBoundi.y,
42750
+ width = _trackDOM$0$getBoundi.width,
42751
+ height = _trackDOM$0$getBoundi.height;
42752
+
42753
+ var isXScroll = dir === 'x';
42754
+ var sp = isXScroll ? x : y;
42755
+ var trackSize = isXScroll ? width : height;
42756
+ var intervalSize = trackSize / steps;
42757
+ var endValue = startValue + (steps - 1) * interval;
42758
+ var movePoint = isXScroll ? e.clientX : e.clientY;
42759
+
42760
+ if (movePoint < sp) {
42761
+ movePoint = sp;
42762
+ } else if (movePoint > sp + trackSize) {
42763
+ movePoint = sp + trackSize;
42764
+ }
42765
+
42766
+ var move;
42767
+
42768
+ if (isXScroll) {
42769
+ move = movePoint - sp - pointInThumb;
42770
+ } else {
42771
+ move = sp + trackSize - movePoint - pointInThumb;
42772
+ }
42773
+
42774
+ if (move <= 0) {
42775
+ return;
42776
+ }
42777
+
42778
+ var movedMin;
42779
+ var movedMax;
42780
+ var currValue = Math.round(Math.abs(move) / intervalSize) * interval;
42781
+
42782
+ var _range2 = _slicedToArray(range, 2),
42783
+ min = _range2[0],
42784
+ max = _range2[1];
42785
+
42786
+ if (move > 0) {
42787
+ var incrementValue = startValue + (currValue - +min);
42788
+ movedMin = +min + incrementValue;
42789
+ movedMax = movedMin + (+max - +min);
42790
+ }
42791
+
42792
+ if (movedMin < startValue || movedMax > endValue) {
42793
+ return;
42794
+ }
42795
+
42796
+ this.scrollbar[dir].range = [movedMin, movedMax];
42797
+ this.update({
42798
+ updateSeries: false,
42799
+ updateSelTip: {
42800
+ update: false,
42801
+ keepDomain: false
42802
+ }
42803
+ });
42804
+ },
42805
+
42806
+ /**
42807
+ * init scrolling event
42808
+ * @param e
42809
+ */
42810
+ stopScrolling: function stopScrolling(e) {
42811
+ var containerDOM = this.getScrollbarContainerDOM(e.target);
42812
+ var dir = containerDOM.dataset.type;
42813
+ var scrollbarOpt = this.scrollbar[dir];
42814
+
42815
+ if (scrollbarOpt.scrolling) {
42816
+ scrollbarOpt.scrolling = false;
42817
+ var scrollbarDOM = scrollbarOpt.dom;
42818
+ scrollbarDOM.removeEventListener('mousemove', this.onScrollbarMove, false);
42819
+ scrollbarDOM.removeEventListener('mouseup', this.onScrollbarUp, false);
42820
+ }
42821
+ },
42822
+
42823
+ /**
42824
+ * hide scrollbar dom
42825
+ * @param dir axis direction ('x' | 'y')
42826
+ */
42827
+ hideScrollbar: function hideScrollbar(dir) {
42828
+ var scrollbarDOM = this.scrollbar[dir].dom;
42829
+
42830
+ if (!scrollbarDOM) {
42831
+ return;
42832
+ }
42833
+
42834
+ var scrollbarStyle = scrollbarDOM === null || scrollbarDOM === void 0 ? void 0 : scrollbarDOM.style;
42835
+ scrollbarStyle.display = 'none';
42836
+ scrollbarStyle.width = '0';
42837
+ scrollbarStyle.height = '0';
42838
+ },
42839
+
42840
+ /**
42841
+ * destroy scrollbar dom
42842
+ * @param dir axis direction ('x' | 'y')
42843
+ */
42844
+ destroyScrollbar: function destroyScrollbar(dir) {
42845
+ var scrollbarXDOM = this.scrollbar[dir].dom;
42846
+
42847
+ if (scrollbarXDOM) {
42848
+ var _this$overlayCanvas2;
42849
+
42850
+ scrollbarXDOM.remove();
42851
+ this.scrollbar[dir] = {
42852
+ isInit: false
42853
+ };
42854
+ (_this$overlayCanvas2 = this.overlayCanvas) === null || _this$overlayCanvas2 === void 0 ? void 0 : _this$overlayCanvas2.removeEventListener('wheel', this.onScrollbarWheel, false);
42855
+ }
42856
+ }
42857
+ };
42858
+ /* harmony default export */ var plugins_scrollbar = (plugins_scrollbar_module);
42013
42859
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.from-entries.js
42014
42860
  var es_object_from_entries = __webpack_require__("c1f9");
42015
42861
 
@@ -42199,14 +43045,22 @@ var plugins_interaction_modules = {
42199
43045
  }
42200
43046
 
42201
43047
  if (tooltip.use) {
42202
- _this.setTooltipLayoutPosition(hitInfo, e);
43048
+ var _tooltip$formatter;
42203
43049
 
42204
- if (type === 'scatter') {
42205
- _this.drawTooltipForScatter(hitInfo, _this.tooltipCtx);
42206
- } else if (type === 'heatMap') {
42207
- _this.drawToolTipForHeatMap(hitInfo, _this.tooltipCtx);
43050
+ if (tooltip !== null && tooltip !== void 0 && (_tooltip$formatter = tooltip.formatter) !== null && _tooltip$formatter !== void 0 && _tooltip$formatter.html) {
43051
+ _this.drawCustomTooltip(hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.items);
43052
+
43053
+ _this.setCustomTooltipLayoutPosition(hitInfo, e);
42208
43054
  } else {
42209
- _this.drawTooltip(hitInfo, _this.tooltipCtx);
43055
+ _this.setTooltipLayoutPosition(hitInfo, e);
43056
+
43057
+ if (type === 'scatter') {
43058
+ _this.drawTooltipForScatter(hitInfo, _this.tooltipCtx);
43059
+ } else if (type === 'heatMap') {
43060
+ _this.drawToolTipForHeatMap(hitInfo, _this.tooltipCtx);
43061
+ } else {
43062
+ _this.drawTooltip(hitInfo, _this.tooltipCtx);
43063
+ }
42210
43064
  }
42211
43065
  }
42212
43066
  } else if (tooltip.use) {
@@ -42405,7 +43259,11 @@ var plugins_interaction_modules = {
42405
43259
  } else if (useSelectItem) {
42406
43260
  setSelectedItemInfo();
42407
43261
  } else if (useSelectLabel) {
42408
- setSelectedLabelInfo();
43262
+ var _useBothAxis = selectLabelOpt.useBothAxis;
43263
+
43264
+ var _location = _this.getClickedLocation(offset);
43265
+
43266
+ setSelectedLabelInfo(_useBothAxis ? _location : null);
42409
43267
  }
42410
43268
 
42411
43269
  break;
@@ -43262,7 +44120,9 @@ var plugins_tooltip_modules = {
43262
44120
  * @returns {undefined}
43263
44121
  */
43264
44122
  createTooltipDOM: function createTooltipDOM() {
43265
- var _this = this;
44123
+ var _this$options$tooltip,
44124
+ _this$options$tooltip2,
44125
+ _this = this;
43266
44126
 
43267
44127
  this.tooltipDOM = document.createElement('div');
43268
44128
  this.tooltipDOM.className = 'ev-chart-tooltip';
@@ -43275,9 +44135,13 @@ var plugins_tooltip_modules = {
43275
44135
  this.tooltipCtx = this.tooltipCanvas.getContext('2d');
43276
44136
  this.tooltipDOM.style.display = 'none';
43277
44137
  this.setFontFamily();
43278
- this.tooltipBodyDOM.appendChild(this.tooltipCanvas);
43279
- this.tooltipDOM.appendChild(this.tooltipHeaderDOM);
43280
- this.tooltipDOM.appendChild(this.tooltipBodyDOM);
44138
+
44139
+ if (!((_this$options$tooltip = this.options.tooltip) !== null && _this$options$tooltip !== void 0 && (_this$options$tooltip2 = _this$options$tooltip.formatter) !== null && _this$options$tooltip2 !== void 0 && _this$options$tooltip2.dom)) {
44140
+ this.tooltipBodyDOM.appendChild(this.tooltipCanvas);
44141
+ this.tooltipDOM.appendChild(this.tooltipHeaderDOM);
44142
+ this.tooltipDOM.appendChild(this.tooltipBodyDOM);
44143
+ }
44144
+
43281
44145
  document.body.appendChild(this.tooltipDOM);
43282
44146
 
43283
44147
  if (this.options.tooltip.debouncedHide) {
@@ -43295,9 +44159,9 @@ var plugins_tooltip_modules = {
43295
44159
  * set tooltip's font style
43296
44160
  */
43297
44161
  setFontFamily: function setFontFamily() {
43298
- var _this$options$tooltip, _this$options, _this$options$tooltip2;
44162
+ var _this$options$tooltip3, _this$options, _this$options$tooltip4;
43299
44163
 
43300
- var fontFamily = (_this$options$tooltip = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$tooltip2 = _this$options.tooltip) === null || _this$options$tooltip2 === void 0 ? void 0 : _this$options$tooltip2.fontFamily) !== null && _this$options$tooltip !== void 0 ? _this$options$tooltip : 'Roboto';
44164
+ var fontFamily = (_this$options$tooltip3 = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$tooltip4 = _this$options.tooltip) === null || _this$options$tooltip4 === void 0 ? void 0 : _this$options$tooltip4.fontFamily) !== null && _this$options$tooltip3 !== void 0 ? _this$options$tooltip3 : 'Roboto';
43301
44165
  fontStyle = "normal normal lighter 14px ".concat(fontFamily);
43302
44166
  this.tooltipHeaderDOM.style.fontFamily = fontFamily;
43303
44167
  },
@@ -43818,6 +44682,70 @@ var plugins_tooltip_modules = {
43818
44682
 
43819
44683
  ctx.restore();
43820
44684
  },
44685
+ setCustomTooltipLayoutPosition: function setCustomTooltipLayoutPosition(hitInfo, e) {
44686
+ var _document$getElements;
44687
+
44688
+ var mouseX = e.pageX;
44689
+ var mouseY = e.pageY;
44690
+ var customTooltipEl = (_document$getElements = document.getElementsByClassName('ev-chart-tooltip-custom')) === null || _document$getElements === void 0 ? void 0 : _document$getElements[0];
44691
+
44692
+ if (!customTooltipEl) {
44693
+ return;
44694
+ }
44695
+
44696
+ var contentsWidth = customTooltipEl.offsetWidth;
44697
+ var contentsHeight = customTooltipEl.offsetHeight;
44698
+ this.tooltipDOM.style.height = 'auto';
44699
+ this.tooltipBodyDOM.style.height = "".concat(contentsHeight + 6, "px");
44700
+ var bodyWidth = document.body.clientWidth;
44701
+ var bodyHeight = document.body.clientHeight;
44702
+ var distanceMouseAndTooltip = 20;
44703
+ var maximumPosX = bodyWidth - contentsWidth - distanceMouseAndTooltip;
44704
+ var maximumPosY = bodyHeight - (TITLE_HEIGHT + contentsHeight) - distanceMouseAndTooltip;
44705
+ var expectedPosX = mouseX + distanceMouseAndTooltip;
44706
+ var expectedPosY = mouseY + distanceMouseAndTooltip;
44707
+ var reversedPosX = mouseX - contentsWidth - distanceMouseAndTooltip;
44708
+ var reversedPosY = mouseY - (TITLE_HEIGHT + contentsHeight) - distanceMouseAndTooltip;
44709
+ this.tooltipDOM.style.left = expectedPosX > maximumPosX ? "".concat(reversedPosX, "px") : "".concat(expectedPosX, "px");
44710
+ this.tooltipDOM.style.top = expectedPosY > maximumPosY ? "".concat(reversedPosY, "px") : "".concat(expectedPosY, "px");
44711
+ this.tooltipDOM.style.display = 'block';
44712
+ },
44713
+
44714
+ /**
44715
+ * Draw User Custom Tooltip (tooltip > formatter > html)
44716
+ * call "formatter > html" and append to tooltip DOM
44717
+ * @param hitInfoItems
44718
+ */
44719
+ drawCustomTooltip: function drawCustomTooltip(hitInfoItems) {
44720
+ var _this$options2, _opt$formatter3;
44721
+
44722
+ var opt = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.tooltip;
44723
+
44724
+ if ((_opt$formatter3 = opt.formatter) !== null && _opt$formatter3 !== void 0 && _opt$formatter3.html) {
44725
+ var _opt$formatter4;
44726
+
44727
+ this.tooltipDOM.innerHTML = '';
44728
+ var seriesList = [];
44729
+ Object.keys(hitInfoItems).forEach(function (sId) {
44730
+ seriesList.push({
44731
+ sId: sId,
44732
+ data: hitInfoItems[sId].data,
44733
+ color: hitInfoItems[sId].color,
44734
+ name: hitInfoItems[sId].name
44735
+ });
44736
+ });
44737
+ var userCustomTooltipBody = helpers_util.htmlToElement(opt === null || opt === void 0 ? void 0 : (_opt$formatter4 = opt.formatter) === null || _opt$formatter4 === void 0 ? void 0 : _opt$formatter4.html(seriesList));
44738
+
44739
+ if (userCustomTooltipBody) {
44740
+ this.tooltipDOM.appendChild(userCustomTooltipBody);
44741
+ }
44742
+
44743
+ this.tooltipDOM.style.overflowY = 'hidden';
44744
+ this.tooltipDOM.style.backgroundColor = opt.backgroundColor;
44745
+ this.tooltipDOM.style.border = "1px solid ".concat(opt.borderColor);
44746
+ this.tooltipDOM.style.color = opt.fontColor;
44747
+ }
44748
+ },
43821
44749
 
43822
44750
  /**
43823
44751
  * set style properties on tooltip DOM
@@ -44236,6 +45164,9 @@ var plugins_pie_modules = {
44236
45164
 
44237
45165
 
44238
45166
 
45167
+
45168
+
45169
+
44239
45170
  var element_tip_modules = {
44240
45171
  /**
44241
45172
  * Draw TextTip with tip's locationInfo
@@ -44420,6 +45351,23 @@ var element_tip_modules = {
44420
45351
  var dp;
44421
45352
 
44422
45353
  if (type === 'bar') {
45354
+ var scrollbarOpt = isHorizontal ? this.scrollbar.y : this.scrollbar.x;
45355
+
45356
+ if (scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use) {
45357
+ var _scrollbarOpt$range;
45358
+
45359
+ var _ref = (_scrollbarOpt$range = scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range) !== null && _scrollbarOpt$range !== void 0 ? _scrollbarOpt$range : [],
45360
+ _ref2 = _slicedToArray(_ref, 2),
45361
+ min = _ref2[0],
45362
+ max = _ref2[1];
45363
+
45364
+ if (ldata >= min && ldata <= max) {
45365
+ ldata -= min !== null && min !== void 0 ? min : 0;
45366
+ } else {
45367
+ return false;
45368
+ }
45369
+ }
45370
+
44423
45371
  if (isHorizontal) {
44424
45372
  halfBarSize = Math.round(size.h / 2);
44425
45373
  cp = ysp - size.cat * ldata - size.cPad;
@@ -44531,7 +45479,7 @@ var element_tip_modules = {
44531
45479
  var drawTip = false;
44532
45480
 
44533
45481
  if (dataIndex.length) {
44534
- var _this$seriesList, _this$data$groups$, _this$data$groups;
45482
+ var _this$seriesList, _this$data$groups$, _this$data$groups, _labelAxes$labels;
44535
45483
 
44536
45484
  drawTip = true;
44537
45485
  var chartRect = this.chartRect;
@@ -44547,6 +45495,7 @@ var element_tip_modules = {
44547
45495
  var valueAxesRange = isHorizontal ? this.axesRange.x[0] : this.axesRange.y[0];
44548
45496
  var valuePositionCalcFunction = isHorizontal ? helpers_canvas.calculateX : helpers_canvas.calculateY;
44549
45497
  var labelPositionCalcFunction = isHorizontal ? helpers_canvas.calculateY : helpers_canvas.calculateX;
45498
+ var scrollbarOpt = isHorizontal ? this.scrollbar.y : this.scrollbar.x;
44550
45499
  var chartWidth = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
44551
45500
  var chartHeight = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
44552
45501
  var valueSpace = isHorizontal ? chartWidth : chartHeight;
@@ -44570,11 +45519,35 @@ var element_tip_modules = {
44570
45519
  var graphX;
44571
45520
  var lineSeries;
44572
45521
  var sizeObj;
45522
+ var startIndex = 0;
45523
+ var endIndex = (_labelAxes$labels = labelAxes.labels) === null || _labelAxes$labels === void 0 ? void 0 : _labelAxes$labels.length;
44573
45524
 
44574
45525
  if (labelAxes.labels) {
45526
+ var labelCount = labelAxes.labels.length;
45527
+
45528
+ if (scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use) {
45529
+ var range = scrollbarOpt.range,
45530
+ interval = scrollbarOpt.interval,
45531
+ type = scrollbarOpt.type;
45532
+
45533
+ var _range = _slicedToArray(range, 2),
45534
+ min = _range[0],
45535
+ max = _range[1];
45536
+
45537
+ if (truthyNumber(min) && truthyNumber(max)) {
45538
+ labelCount = Math.floor((+max - +min) / interval) + 1;
45539
+ startIndex = type === 'step' ? min : labelAxes.labels.findIndex(function (v) {
45540
+ return v === +min;
45541
+ });
45542
+ endIndex = type === 'step' ? max : labelAxes.labels.findIndex(function (v) {
45543
+ return v === +max;
45544
+ });
45545
+ }
45546
+ }
45547
+
44575
45548
  labelStartPoint = aPos[labelAxes.units.rectStart];
44576
45549
  labelEndPoint = aPos[labelAxes.units.rectEnd];
44577
- labelGap = (labelEndPoint - labelStartPoint) / labelAxes.labels.length;
45550
+ labelGap = (labelEndPoint - labelStartPoint) / labelCount;
44578
45551
  } else {
44579
45552
  graphX = this.axesSteps.x[0];
44580
45553
  lineSeries = seriesList.find(function (sId) {
@@ -44614,7 +45587,12 @@ var element_tip_modules = {
44614
45587
  }
44615
45588
 
44616
45589
  if (labelAxes.labels) {
44617
- var labelCenter = Math.round(labelStartPoint + labelGap * dataIndex[i]);
45590
+ if (dataIndex[i] < startIndex || dataIndex[i] > endIndex) {
45591
+ return;
45592
+ }
45593
+
45594
+ var labelIndex = dataIndex[i] - startIndex;
45595
+ var labelCenter = Math.round(labelStartPoint + labelGap * labelIndex);
44618
45596
  dp = labelCenter + labelGap / 2;
44619
45597
  } else {
44620
45598
  dp = labelPositionCalcFunction(label[i], graphX.graphMin, graphX.graphMax, chartWidth - sizeObj.comboOffset, aPos.x1 + sizeObj.comboOffset / 2);
@@ -44920,6 +45898,7 @@ var element_tip_modules = {
44920
45898
 
44921
45899
 
44922
45900
 
45901
+
44923
45902
 
44924
45903
 
44925
45904
  var chart_core_EvChart = /*#__PURE__*/function () {
@@ -44939,6 +45918,7 @@ var chart_core_EvChart = /*#__PURE__*/function () {
44939
45918
  Object.assign(this, plugins_legend);
44940
45919
  Object.assign(this, plugins_pie);
44941
45920
  Object.assign(this, plugins_title);
45921
+ Object.assign(this, plugins_scrollbar);
44942
45922
  }
44943
45923
 
44944
45924
  if (options.type === 'heatMap' && options.legend.type === 'gradient') {
@@ -44980,6 +45960,14 @@ var chart_core_EvChart = /*#__PURE__*/function () {
44980
45960
  this.isInitLegend = false;
44981
45961
  this.isInitTitle = false;
44982
45962
  this.isInit = false;
45963
+ this.scrollbar = {
45964
+ x: {
45965
+ isInit: false
45966
+ },
45967
+ y: {
45968
+ isInit: false
45969
+ }
45970
+ };
44983
45971
  this.seriesList = {};
44984
45972
  this.lastTip = {
44985
45973
  pos: null,
@@ -45057,6 +46045,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45057
46045
  }, {
45058
46046
  key: "initRect",
45059
46047
  value: function initRect() {
46048
+ var _opt$axesX, _opt$axesX$, _opt$axesX$$scrollbar, _opt$axesY, _opt$axesY$, _opt$axesY$$scrollbar;
46049
+
45060
46050
  var opt = this.options;
45061
46051
 
45062
46052
  if (opt.title.show) {
@@ -45075,6 +46065,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45075
46065
  this.setLegendPosition();
45076
46066
  }
45077
46067
 
46068
+ if ((_opt$axesX = opt.axesX) !== null && _opt$axesX !== void 0 && (_opt$axesX$ = _opt$axesX[0]) !== null && _opt$axesX$ !== void 0 && (_opt$axesX$$scrollbar = _opt$axesX$.scrollbar) !== null && _opt$axesX$$scrollbar !== void 0 && _opt$axesX$$scrollbar.use || (_opt$axesY = opt.axesY) !== null && _opt$axesY !== void 0 && (_opt$axesY$ = _opt$axesY[0]) !== null && _opt$axesY$ !== void 0 && (_opt$axesY$$scrollbar = _opt$axesY$.scrollbar) !== null && _opt$axesY$$scrollbar !== void 0 && _opt$axesY$$scrollbar.use) {
46069
+ this.initScrollbar();
46070
+ }
46071
+
45078
46072
  this.chartRect = this.getChartRect();
45079
46073
  }
45080
46074
  /**
@@ -45087,11 +46081,18 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45087
46081
  }, {
45088
46082
  key: "drawChart",
45089
46083
  value: function drawChart(hitInfo) {
46084
+ var _this$scrollbar, _this$scrollbar$x, _this$scrollbar2, _this$scrollbar2$y;
46085
+
45090
46086
  this.initScale();
45091
46087
  this.labelRange = this.getAxesLabelRange();
45092
46088
  this.axesSteps = this.calculateSteps();
45093
46089
  this.drawAxis(hitInfo);
45094
46090
  this.drawSeries(hitInfo);
46091
+
46092
+ if ((_this$scrollbar = this.scrollbar) !== null && _this$scrollbar !== void 0 && (_this$scrollbar$x = _this$scrollbar.x) !== null && _this$scrollbar$x !== void 0 && _this$scrollbar$x.use || (_this$scrollbar2 = this.scrollbar) !== null && _this$scrollbar2 !== void 0 && (_this$scrollbar2$y = _this$scrollbar2.y) !== null && _this$scrollbar2$y !== void 0 && _this$scrollbar2$y.use) {
46093
+ this.updateScrollbarPosition();
46094
+ }
46095
+
45095
46096
  this.drawTip();
45096
46097
 
45097
46098
  if (this.bufferCanvas) {
@@ -45304,7 +46305,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45304
46305
  value: function createAxes(dir) {
45305
46306
  var axes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
45306
46307
  var ctx = this.bufferCtx;
45307
- var labels = this.options.type === 'heatMap' ? this.data.labels[dir] : this.data.labels;
46308
+ var isHeatMapType = this.options.type === 'heatMap';
46309
+ var labels = isHeatMapType ? this.data.labels[dir] : this.data.labels;
45308
46310
  var options = this.options;
45309
46311
  return axes.map(function (axis) {
45310
46312
  switch (axis.type) {
@@ -45342,10 +46344,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45342
46344
 
45343
46345
  /* eslint-disable max-len */
45344
46346
  var axesXMinMax = this.axesX.map(function (axis, index) {
45345
- return axis.calculateScaleRange(_this3.minMax.x[index], _this3.chartRect);
46347
+ return axis.calculateScaleRange(_this3.minMax.x[index], _this3.scrollbar.x, _this3.chartRect);
45346
46348
  });
45347
46349
  var axesYMinMax = this.axesY.map(function (axis, index) {
45348
- return axis.calculateScaleRange(_this3.minMax.y[index], _this3.chartRect);
46350
+ return axis.calculateScaleRange(_this3.minMax.y[index], _this3.scrollbar.y, _this3.chartRect);
45349
46351
  });
45350
46352
  /* eslint-enable max-len */
45351
46353
 
@@ -45387,6 +46389,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45387
46389
  var range = {
45388
46390
  minValue: _this5.axesRange.x[index].min,
45389
46391
  maxValue: _this5.axesRange.x[index].max,
46392
+ minIndex: _this5.axesRange.x[index].minIndex,
46393
+ maxIndex: _this5.axesRange.x[index].maxIndex,
45390
46394
  minSteps: _this5.labelRange.x[index].min,
45391
46395
  maxSteps: _this5.labelRange.x[index].max
45392
46396
  };
@@ -45396,6 +46400,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45396
46400
  var range = {
45397
46401
  minValue: _this5.axesRange.y[index].min,
45398
46402
  maxValue: _this5.axesRange.y[index].max,
46403
+ minIndex: _this5.axesRange.y[index].minIndex,
46404
+ maxIndex: _this5.axesRange.y[index].maxIndex,
45399
46405
  minSteps: _this5.labelRange.y[index].min,
45400
46406
  maxSteps: _this5.labelRange.y[index].max
45401
46407
  };
@@ -45508,14 +46514,28 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45508
46514
  yAxisTitleHeight = _fontSize + titleMargin;
45509
46515
  }
45510
46516
 
45511
- var horizontalPadding = padding.left + padding.right;
45512
- var verticalPadding = padding.top + padding.bottom + xAxisTitleHeight + yAxisTitleHeight;
46517
+ var xAxisScrollOpt = this.scrollbar.x;
46518
+ var yAxisScrollOpt = this.scrollbar.y;
46519
+ var xAxisScrollHeight = 0;
46520
+
46521
+ if (xAxisScrollOpt !== null && xAxisScrollOpt !== void 0 && xAxisScrollOpt.use) {
46522
+ xAxisScrollHeight = xAxisScrollOpt === null || xAxisScrollOpt === void 0 ? void 0 : xAxisScrollOpt.height;
46523
+ }
46524
+
46525
+ var yAxisScrollWidth = 0;
46526
+
46527
+ if (yAxisScrollOpt !== null && yAxisScrollOpt !== void 0 && yAxisScrollOpt.use) {
46528
+ yAxisScrollWidth = yAxisScrollOpt === null || yAxisScrollOpt === void 0 ? void 0 : yAxisScrollOpt.width;
46529
+ }
46530
+
46531
+ var horizontalPadding = padding.left + padding.right + yAxisScrollWidth;
46532
+ var verticalPadding = padding.top + padding.bottom + xAxisTitleHeight + yAxisTitleHeight + xAxisScrollHeight;
45513
46533
  var chartWidth = width > horizontalPadding ? width - horizontalPadding : width;
45514
46534
  var chartHeight = height > verticalPadding ? height - verticalPadding : height;
45515
46535
  var x1 = padding.left;
45516
- var x2 = Math.max(width - padding.right, x1 + 2);
46536
+ var x2 = Math.max(width - padding.right - yAxisScrollWidth, x1 + 2);
45517
46537
  var y1 = padding.top + yAxisTitleHeight;
45518
- var y2 = Math.max(height - padding.bottom - xAxisTitleHeight, y1 + 2);
46538
+ var y2 = Math.max(height - padding.bottom - xAxisTitleHeight - xAxisScrollHeight, y1 + 2);
45519
46539
  return {
45520
46540
  x1: x1,
45521
46541
  x2: x2,
@@ -45661,6 +46681,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45661
46681
  }, {
45662
46682
  key: "update",
45663
46683
  value: function update(updateInfo) {
46684
+ var _this$updateScrollbar;
46685
+
45664
46686
  var options = this.options;
45665
46687
  var data = this.data.data;
45666
46688
  var labels = this.data.labels;
@@ -45675,6 +46697,7 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45675
46697
  return;
45676
46698
  }
45677
46699
 
46700
+ (_this$updateScrollbar = this.updateScrollbar) === null || _this$updateScrollbar === void 0 ? void 0 : _this$updateScrollbar.call(this);
45678
46701
  this.resetProps();
45679
46702
 
45680
46703
  if (updateSeries) {
@@ -45881,6 +46904,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45881
46904
  this.legendBoxDOM.removeEventListener('click', this.onLegendBoxClick);
45882
46905
  this.legendBoxDOM.removeEventListener('mouseover', this.onLegendBoxOver);
45883
46906
  this.legendBoxDOM.removeEventListener('mouseleave', this.onLegendBoxLeave);
46907
+
46908
+ if (this.options.legend.type === 'gradient') {
46909
+ this.legendBoxDOM.removeEventListener('mousedown', this.onLegendMouseDown);
46910
+ }
45884
46911
  }
45885
46912
 
45886
46913
  if (this.resizeDOM) {