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.
@@ -4314,7 +4314,7 @@ var update = add("5ac4a7d0", content, true, {"sourceMap":false,"shadowMode":fals
4314
4314
  var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
4315
4315
  exports = ___CSS_LOADER_API_IMPORT___(false);
4316
4316
  // Module
4317
- 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}", ""]);
4317
+ 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}", ""]);
4318
4318
  // Exports
4319
4319
  module.exports = exports;
4320
4320
 
@@ -8045,7 +8045,7 @@ $({ target: 'Number', stat: true }, {
8045
8045
  /***/ "9224":
8046
8046
  /***/ (function(module) {
8047
8047
 
8048
- module.exports = JSON.parse("{\"a\":\"3.3.54\"}");
8048
+ module.exports = JSON.parse("{\"a\":\"3.3.56\"}");
8049
8049
 
8050
8050
  /***/ }),
8051
8051
 
@@ -15639,6 +15639,9 @@ function getPrecision(v) {
15639
15639
  var decimal = (v === null || v === void 0 ? void 0 : v.toString().split('.')[1]) || 0;
15640
15640
  return decimal ? decimal.length : 0;
15641
15641
  }
15642
+ function checkNullAndUndefined(value) {
15643
+ return value === null || value === undefined;
15644
+ }
15642
15645
  // CONCATENATED MODULE: ./src/components/inputNumber/uses.js
15643
15646
 
15644
15647
 
@@ -32557,6 +32560,7 @@ var es_number_min_safe_integer = __webpack_require__("e6e1");
32557
32560
 
32558
32561
 
32559
32562
 
32563
+
32560
32564
  /* harmony default export */ var helpers_util = ({
32561
32565
  /**
32562
32566
  * Transforming hex to rgb code
@@ -32899,6 +32903,17 @@ var es_number_min_safe_integer = __webpack_require__("e6e1");
32899
32903
  */
32900
32904
  checkSafeInteger: function checkSafeInteger(value) {
32901
32905
  return value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER;
32906
+ },
32907
+
32908
+ /**
32909
+ * Convert html(string) To Element
32910
+ * @param htmlString
32911
+ * @returns {ChildNode}
32912
+ */
32913
+ htmlToElement: function htmlToElement(htmlString) {
32914
+ var template = document.createElement('template');
32915
+ template.innerHTML = htmlString.trim();
32916
+ return template.content.firstChild;
32902
32917
  }
32903
32918
  });
32904
32919
  // CONCATENATED MODULE: ./src/components/chart/model/model.store.js
@@ -33309,7 +33324,6 @@ var modules = {
33309
33324
  /**
33310
33325
  * Take data to create data for each series
33311
33326
  * @param {array} data data array for each series
33312
- * @param {object} label chart label
33313
33327
  *
33314
33328
  * @returns {array} data info added position and etc
33315
33329
  */
@@ -33910,7 +33924,7 @@ var modules = {
33910
33924
  * @returns {object} clicked label information
33911
33925
  */
33912
33926
  getLabelInfoByPosition: function getLabelInfoByPosition(offset, targetAxis) {
33913
- var _Object$values$sort$, _Object$values$sort$2, _scale, _scale$labels;
33927
+ var _Object$values$sort$, _Object$values$sort$2, _scrollbarOpt, _scale, _scale$labels, _scale3, _scale3$labels;
33914
33928
 
33915
33929
  var _offset2 = _slicedToArray(offset, 2),
33916
33930
  x = _offset2[0],
@@ -33933,13 +33947,17 @@ var modules = {
33933
33947
  horizontal = _this$options.horizontal,
33934
33948
  selectLabel = _this$options.selectLabel;
33935
33949
  var scale;
33950
+ var scrollbarOpt;
33936
33951
 
33937
33952
  if (targetAxis === 'xAxis') {
33938
33953
  scale = this.axesX[0];
33954
+ scrollbarOpt = this.scrollbar.x;
33939
33955
  } else if (targetAxis === 'yAxis') {
33940
33956
  scale = this.axesY[0];
33957
+ scrollbarOpt = this.scrollbar.y;
33941
33958
  } else {
33942
33959
  scale = horizontal ? this.axesY[0] : this.axesX[0];
33960
+ scrollbarOpt = horizontal ? this.scrollbar.y : this.scrollbar.x;
33943
33961
  }
33944
33962
 
33945
33963
  var startPoint = aPos[scale.units.rectStart];
@@ -33947,11 +33965,41 @@ var modules = {
33947
33965
  var labelIndex;
33948
33966
  var hitInfo;
33949
33967
 
33950
- if ((_scale = scale) !== null && _scale !== void 0 && (_scale$labels = _scale.labels) !== null && _scale$labels !== void 0 && _scale$labels.length) {
33951
- var labelGap = (endPoint - startPoint) / scale.labels.length;
33968
+ 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) {
33969
+ var _scrollbarOpt2 = scrollbarOpt,
33970
+ type = _scrollbarOpt2.type,
33971
+ range = _scrollbarOpt2.range,
33972
+ _scrollbarOpt2$interv = _scrollbarOpt2.interval,
33973
+ interval = _scrollbarOpt2$interv === void 0 ? 1 : _scrollbarOpt2$interv;
33974
+
33975
+ var _ref14 = range !== null && range !== void 0 ? range : [0, scale.labels.length],
33976
+ _ref15 = _slicedToArray(_ref14, 2),
33977
+ min = _ref15[0],
33978
+ max = _ref15[1];
33979
+
33980
+ var labelCount = Math.floor((+max - +min) / interval) + 1;
33981
+ var labelGap = (endPoint - startPoint) / labelCount;
33952
33982
  var isYAxis = targetAxis === 'yAxis' || horizontal;
33953
33983
  var index = Math.floor(((isYAxis ? y : x) - startPoint) / labelGap);
33954
- labelIndex = scale.labels.length > index ? index : -1;
33984
+
33985
+ if (type === 'step') {
33986
+ labelIndex = min + index;
33987
+ } else {
33988
+ var _scale2;
33989
+
33990
+ var minIndex = (_scale2 = scale) === null || _scale2 === void 0 ? void 0 : _scale2.labels.findIndex(function (label) {
33991
+ return label === +min;
33992
+ });
33993
+ labelIndex = minIndex + index;
33994
+ }
33995
+ } else if ((_scale3 = scale) !== null && _scale3 !== void 0 && (_scale3$labels = _scale3.labels) !== null && _scale3$labels !== void 0 && _scale3$labels.length) {
33996
+ var _labelGap = (endPoint - startPoint) / scale.labels.length;
33997
+
33998
+ var _isYAxis = targetAxis === 'yAxis' || horizontal;
33999
+
34000
+ var _index = Math.floor(((_isYAxis ? y : x) - startPoint) / _labelGap);
34001
+
34002
+ labelIndex = scale.labels.length > _index ? _index : -1;
33955
34003
  } else {
33956
34004
  var _hitInfo$maxIndex;
33957
34005
 
@@ -35038,6 +35086,17 @@ var AXIS_OPTION = {
35038
35086
  textAlign: 'right',
35039
35087
  fontStyle: 'normal',
35040
35088
  color: '#808080'
35089
+ },
35090
+ scrollbar: {
35091
+ use: false,
35092
+ width: 14,
35093
+ height: 14,
35094
+ background: '#F2F2F2',
35095
+ showButton: true,
35096
+ thumbStyle: {
35097
+ background: '#929292',
35098
+ radius: 0
35099
+ }
35041
35100
  }
35042
35101
  };
35043
35102
  var PLOT_LINE_OPTION = {
@@ -36156,6 +36215,7 @@ var element_scatter_Scatter = /*#__PURE__*/function () {
36156
36215
 
36157
36216
 
36158
36217
 
36218
+
36159
36219
  var element_bar_Bar = /*#__PURE__*/function () {
36160
36220
  function Bar(sId, opt, sIdx, isHorizontal) {
36161
36221
  var _this = this;
@@ -36219,19 +36279,37 @@ var element_bar_Bar = /*#__PURE__*/function () {
36219
36279
  var y;
36220
36280
  var minmaxX = axesSteps.x[this.xAxisIndex];
36221
36281
  var minmaxY = axesSteps.y[this.yAxisIndex];
36282
+ var totalCount = this.data.length;
36283
+ var minIndex;
36284
+ var maxIndex;
36285
+
36286
+ if (isHorizontal) {
36287
+ var _ref = [minmaxY.minIndex, minmaxY.maxIndex];
36288
+ minIndex = _ref[0];
36289
+ maxIndex = _ref[1];
36290
+ } else {
36291
+ var _ref2 = [minmaxX.minIndex, minmaxX.maxIndex];
36292
+ minIndex = _ref2[0];
36293
+ maxIndex = _ref2[1];
36294
+ }
36295
+
36296
+ if (truthyNumber(minIndex) && truthyNumber(maxIndex)) {
36297
+ totalCount = maxIndex - minIndex + 1;
36298
+ }
36299
+
36222
36300
  var xArea = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
36223
36301
  var yArea = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
36224
36302
  var xsp = chartRect.x1 + labelOffset.left;
36225
36303
  var ysp = chartRect.y2 - labelOffset.bottom;
36226
36304
  var dArea = isHorizontal ? yArea : xArea;
36227
- var cArea = dArea / (this.data.length || 1);
36305
+ var cArea = dArea / (totalCount || 1);
36228
36306
  var cPad;
36229
36307
  var isUnableToDrawCategoryPadding = param.cPadRatio >= 1 || param.cPadRatio <= 0;
36230
36308
 
36231
36309
  if (isUnableToDrawCategoryPadding) {
36232
36310
  cPad = 2;
36233
36311
  } else {
36234
- cPad = Math.max(dArea * (param.cPadRatio / 2) / this.data.length, 2);
36312
+ cPad = Math.max(dArea * (param.cPadRatio / 2) / totalCount, 2);
36235
36313
  }
36236
36314
 
36237
36315
  var bArea;
@@ -36254,17 +36332,24 @@ var element_bar_Bar = /*#__PURE__*/function () {
36254
36332
  this.chartRect = chartRect;
36255
36333
  this.labelOffset = labelOffset;
36256
36334
  this.borderRadius = param.borderRadius;
36335
+ this.range = [minIndex, maxIndex];
36257
36336
  var categoryPoint = null;
36258
36337
  this.data.forEach(function (dataItem, index) {
36259
- var _param$selectLabel, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s;
36338
+ var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
36260
36339
 
36261
36340
  ctx.beginPath();
36262
36341
  var item = dataItem;
36263
36342
 
36343
+ if (truthyNumber(minIndex) && index < minIndex) {
36344
+ return;
36345
+ } else if (truthyNumber(minIndex) && index > maxIndex) {
36346
+ return;
36347
+ }
36348
+
36264
36349
  if (isHorizontal) {
36265
- categoryPoint = ysp - cArea * index - cPad;
36350
+ categoryPoint = ysp - cArea * (index - (minIndex || 0)) - cPad;
36266
36351
  } else {
36267
- categoryPoint = xsp + cArea * index + cPad;
36352
+ categoryPoint = xsp + cArea * (index - (minIndex || 0)) + cPad;
36268
36353
  }
36269
36354
 
36270
36355
  if (isHorizontal) {
@@ -36294,13 +36379,25 @@ var element_bar_Bar = /*#__PURE__*/function () {
36294
36379
  var barColor = item.dataColor || _this2.color;
36295
36380
  var legendHitInfo = param === null || param === void 0 ? void 0 : param.legendHitInfo;
36296
36381
  var selectLabelOption = param === null || param === void 0 ? void 0 : (_param$selectLabel = param.selectLabel) === null || _param$selectLabel === void 0 ? void 0 : _param$selectLabel.option;
36382
+ var selectItemOption = param === null || param === void 0 ? void 0 : (_param$selectItem = param.selectItem) === null || _param$selectItem === void 0 ? void 0 : _param$selectItem.option;
36297
36383
  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 : [];
36384
+
36385
+ 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 : {},
36386
+ selectedItemDataIndex = _ref3.dataIndex,
36387
+ selectedItemSeriesId = _ref3.seriesID;
36388
+
36298
36389
  var isDownplay = false;
36299
36390
 
36300
36391
  if (legendHitInfo) {
36301
36392
  isDownplay = (legendHitInfo === null || legendHitInfo === void 0 ? void 0 : legendHitInfo.sId) !== _this2.sId;
36302
36393
  } else if (selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.use && selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.useSeriesOpacity) {
36303
36394
  isDownplay = selectedLabelList.length && !selectedLabelList.includes(index);
36395
+ } else if (truthy(selectedItemDataIndex) && selectItemOption !== null && selectItemOption !== void 0 && selectItemOption.useSeriesOpacity) {
36396
+ if (_this2.isExistGrp) {
36397
+ isDownplay = selectedItemDataIndex !== index;
36398
+ } else {
36399
+ isDownplay = selectedItemDataIndex !== index || selectedItemSeriesId !== _this2.sId;
36400
+ }
36304
36401
  }
36305
36402
 
36306
36403
  if (typeof barColor !== 'string') {
@@ -36445,8 +36542,18 @@ var element_bar_Bar = /*#__PURE__*/function () {
36445
36542
  color: this.color
36446
36543
  };
36447
36544
  var gdata = this.data;
36545
+ var totalCount = gdata.length;
36546
+
36547
+ var _this$range = _slicedToArray(this.range, 2),
36548
+ min = _this$range[0],
36549
+ max = _this$range[1];
36550
+
36551
+ if (truthyNumber(min) && truthyNumber(max)) {
36552
+ totalCount = max - min + 1;
36553
+ }
36554
+
36448
36555
  var s = 0;
36449
- var e = gdata.length - 1;
36556
+ var e = totalCount - 1;
36450
36557
 
36451
36558
  while (s <= e) {
36452
36559
  var m = Math.floor((s + e) / 2);
@@ -36491,8 +36598,18 @@ var element_bar_Bar = /*#__PURE__*/function () {
36491
36598
  color: this.color
36492
36599
  };
36493
36600
  var gdata = this.data;
36601
+ var totalCount = gdata.length;
36602
+
36603
+ var _this$range2 = _slicedToArray(this.range, 2),
36604
+ min = _this$range2[0],
36605
+ max = _this$range2[1];
36606
+
36607
+ if (truthyNumber(min) && truthyNumber(max)) {
36608
+ totalCount = max - min + 1;
36609
+ }
36610
+
36494
36611
  var s = 0;
36495
- var e = gdata.length - 1;
36612
+ var e = totalCount - 1;
36496
36613
 
36497
36614
  while (s <= e) {
36498
36615
  var m = Math.floor((s + e) / 2);
@@ -36530,11 +36647,11 @@ var element_bar_Bar = /*#__PURE__*/function () {
36530
36647
 
36531
36648
  }, {
36532
36649
  key: "drawValueLabels",
36533
- value: function drawValueLabels(_ref) {
36534
- var context = _ref.context,
36535
- data = _ref.data,
36536
- positions = _ref.positions,
36537
- isHighlight = _ref.isHighlight;
36650
+ value: function drawValueLabels(_ref4) {
36651
+ var context = _ref4.context,
36652
+ data = _ref4.data,
36653
+ positions = _ref4.positions,
36654
+ isHighlight = _ref4.isHighlight;
36538
36655
  var isHorizontal = this.isHorizontal;
36539
36656
  var _this$showValue = this.showValue,
36540
36657
  fontSize = _this$showValue.fontSize,
@@ -36560,9 +36677,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
36560
36677
  if (isStacked) {
36561
36678
  value = data.o;
36562
36679
  } else {
36563
- var _ref2;
36680
+ var _ref5;
36564
36681
 
36565
- value = (_ref2 = isHorizontal ? data.x : data.y) !== null && _ref2 !== void 0 ? _ref2 : '';
36682
+ value = (_ref5 = isHorizontal ? data.x : data.y) !== null && _ref5 !== void 0 ? _ref5 : '';
36566
36683
  }
36567
36684
 
36568
36685
  var formattedTxt;
@@ -36651,9 +36768,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
36651
36768
  }
36652
36769
  }, {
36653
36770
  key: "drawBar",
36654
- value: function drawBar(_ref3) {
36655
- var ctx = _ref3.ctx,
36656
- positions = _ref3.positions;
36771
+ value: function drawBar(_ref6) {
36772
+ var ctx = _ref6.ctx,
36773
+ positions = _ref6.positions;
36657
36774
  var isHorizontal = this.isHorizontal;
36658
36775
  var isStackBar = ('stackIndex' in this);
36659
36776
  var isBorderRadius = this.borderRadius && this.borderRadius > 0;
@@ -37445,6 +37562,10 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37445
37562
  value: function drawItem(ctx, x, y, w, h, borderOpt) {
37446
37563
  ctx.beginPath();
37447
37564
 
37565
+ if (w < 0 || h < 0) {
37566
+ return;
37567
+ }
37568
+
37448
37569
  if (borderOpt.show) {
37449
37570
  var radius = borderOpt.radius;
37450
37571
 
@@ -37476,7 +37597,7 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37476
37597
  }
37477
37598
  }, {
37478
37599
  key: "calculateXY",
37479
- value: function calculateXY(dir, value, startPoint) {
37600
+ value: function calculateXY(dir, value, startPoint, minMax) {
37480
37601
  var point = null;
37481
37602
 
37482
37603
  if (this.labels[dir] && this.labels[dir].length) {
@@ -37484,17 +37605,39 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37484
37605
  return label === value;
37485
37606
  });
37486
37607
 
37487
- if (index > -1) {
37488
- point = dir === 'x' ? startPoint + this.size.w * index : startPoint - this.size.h * (index + 1);
37489
- } else {
37490
- var timeIndex = this.labels[dir].findIndex(function (label) {
37491
- return new Date(label).getTime() === new Date(value).getTime();
37608
+ if (index === -1) {
37609
+ index = this.labels[dir].findIndex(function (label) {
37610
+ return +label === +value;
37492
37611
  });
37612
+ }
37493
37613
 
37494
- if (timeIndex > -1) {
37495
- point = dir === 'x' ? startPoint + this.size.w * timeIndex : startPoint - this.size.h * (timeIndex + 1);
37614
+ var minIndex = minMax.minIndex,
37615
+ maxIndex = minMax.maxIndex,
37616
+ graphMin = minMax.graphMin,
37617
+ graphMax = minMax.graphMax;
37618
+
37619
+ if (truthyNumber(maxIndex) && index > maxIndex) {
37620
+ return null;
37621
+ }
37622
+
37623
+ if (truthyNumber(minIndex) && index < minIndex) {
37624
+ return null;
37625
+ }
37626
+
37627
+ if (checkNullAndUndefined(minIndex) && checkNullAndUndefined(maxIndex)) {
37628
+ if (value < graphMin || value > graphMax) {
37629
+ return null;
37496
37630
  }
37497
37631
  }
37632
+
37633
+ var startIndex = minIndex !== null && minIndex !== void 0 ? minIndex : this.labels[dir].findIndex(function (label) {
37634
+ return +label === +graphMin;
37635
+ });
37636
+
37637
+ if (index > -1) {
37638
+ index -= startIndex > -1 ? startIndex : 0;
37639
+ point = dir === 'x' ? startPoint + this.size.w * index : startPoint - this.size.h * (index + 1);
37640
+ }
37498
37641
  }
37499
37642
 
37500
37643
  return point;
@@ -37514,13 +37657,16 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37514
37657
  overlayCtx = param.overlayCtx,
37515
37658
  selectLabel = param.selectLabel,
37516
37659
  legendHitInfo = param.legendHitInfo,
37517
- selectItem = param.selectItem;
37660
+ selectItem = param.selectItem,
37661
+ axesSteps = param.axesSteps;
37518
37662
  var xArea = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
37519
37663
  var yArea = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
37520
37664
  var xsp = chartRect.x1 + labelOffset.left;
37521
37665
  var ysp = chartRect.y2 - labelOffset.bottom;
37522
- this.size.w = xArea / this.labels.x.length;
37523
- this.size.h = yArea / this.labels.y.length;
37666
+ var minmaxX = axesSteps.x[this.xAxisIndex];
37667
+ var minmaxY = axesSteps.y[this.yAxisIndex];
37668
+ this.size.w = xArea / minmaxX.oriSteps;
37669
+ this.size.h = yArea / minmaxY.oriSteps;
37524
37670
 
37525
37671
  var getOpacity = function getOpacity(item, opacity, index) {
37526
37672
  if (!legendHitInfo) {
@@ -37550,9 +37696,10 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37550
37696
 
37551
37697
  this.data.forEach(function (item, index) {
37552
37698
  var axisLineWidth = 1;
37553
- var xp = _this2.calculateXY('x', item.x, xsp) + axisLineWidth;
37554
37699
 
37555
- var yp = _this2.calculateXY('y', item.y, ysp);
37700
+ var xp = _this2.calculateXY('x', item.x, xsp, minmaxX);
37701
+
37702
+ var yp = _this2.calculateXY('y', item.y, ysp, minmaxY);
37556
37703
 
37557
37704
  var w = _this2.size.w;
37558
37705
  var h = _this2.size.h;
@@ -37591,14 +37738,19 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37591
37738
  color = _borderOpt.color,
37592
37739
  lineWidth = _borderOpt.lineWidth,
37593
37740
  borderOpacity = _borderOpt.opacity;
37594
- ctx.strokeStyle = helpers_util.colorStringToRgba(color, itemOpacity === 1 ? borderOpacity : itemOpacity);
37595
- ctx.lineWidth = lineWidth;
37596
- xp += lineWidth * 0.5;
37597
- yp += lineWidth * 0.5;
37598
- w -= lineWidth;
37599
- h -= lineWidth;
37741
+ ctx.strokeStyle = helpers_util.colorStringToRgba(color, itemOpacity === 1 ? borderOpacity : itemOpacity); // item 사이즈 보다 border 선 굵기가 큰 경우 lineWidth props 무시
37742
+
37743
+ if (lineWidth < w && lineWidth < h) {
37744
+ ctx.lineWidth = lineWidth;
37745
+ xp += lineWidth * 0.5;
37746
+ yp += lineWidth * 0.5;
37747
+ w -= lineWidth;
37748
+ h -= lineWidth;
37749
+ }
37600
37750
  }
37601
37751
 
37752
+ xp += axisLineWidth;
37753
+
37602
37754
  _this2.drawItem(ctx, xp, yp, w, h, borderOpt);
37603
37755
 
37604
37756
  ctx.restore();
@@ -37795,10 +37947,14 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37795
37947
 
37796
37948
  if (this.stroke.show) {
37797
37949
  var lineWidth = this.stroke.lineWidth;
37798
- x += lineWidth * 0.5;
37799
- y += lineWidth * 0.5;
37800
- w -= lineWidth;
37801
- h -= lineWidth;
37950
+
37951
+ if (lineWidth < w && lineWidth < h) {
37952
+ ctx.lineWidth = lineWidth;
37953
+ x += lineWidth * 0.5;
37954
+ y += lineWidth * 0.5;
37955
+ w -= lineWidth;
37956
+ h -= lineWidth;
37957
+ }
37802
37958
  }
37803
37959
 
37804
37960
  this.drawItem(ctx, x - 0.5, y - 0.5, w + 1, h + 1, this.stroke);
@@ -38157,12 +38313,12 @@ var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
38157
38313
 
38158
38314
 
38159
38315
  var scale_Scale = /*#__PURE__*/function () {
38160
- function Scale(type, opt, ctx, options) {
38316
+ function Scale(type, axisOpt, ctx, options) {
38161
38317
  var _this = this;
38162
38318
 
38163
38319
  _classCallCheck(this, Scale);
38164
38320
 
38165
- var merged = lodash_es_defaultsDeep({}, opt, AXIS_OPTION);
38321
+ var merged = lodash_es_defaultsDeep({}, axisOpt, AXIS_OPTION);
38166
38322
  Object.keys(merged).forEach(function (key) {
38167
38323
  _this[key] = merged[key];
38168
38324
  });
@@ -38214,21 +38370,21 @@ var scale_Scale = /*#__PURE__*/function () {
38214
38370
  /**
38215
38371
  * Calculate min/max value, label and size information for axis
38216
38372
  * @param {object} minMax min/max information
38373
+ * @param {object} scrollbarOpt scrollbar option
38217
38374
  *
38218
38375
  * @returns {object} min/max value and label
38219
38376
  */
38220
38377
 
38221
38378
  }, {
38222
38379
  key: "calculateScaleRange",
38223
- value: function calculateScaleRange(minMax) {
38224
- var _this$range;
38225
-
38380
+ value: function calculateScaleRange(minMax, scrollbarOpt) {
38226
38381
  var maxValue;
38227
38382
  var minValue;
38383
+ var range = scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use ? scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range : this.range;
38228
38384
 
38229
- if (((_this$range = this.range) === null || _this$range === void 0 ? void 0 : _this$range.length) === 2) {
38230
- maxValue = this.range[1];
38231
- minValue = this.range[0];
38385
+ if ((range === null || range === void 0 ? void 0 : range.length) === 2) {
38386
+ maxValue = range[1];
38387
+ minValue = range[0];
38232
38388
  } else {
38233
38389
  maxValue = minMax.max;
38234
38390
  minValue = minMax.min;
@@ -39341,23 +39497,25 @@ var scale_logarithmic_LogarithmicScale = /*#__PURE__*/function (_Scale) {
39341
39497
 
39342
39498
 
39343
39499
 
39500
+
39344
39501
  var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39345
39502
  _inherits(StepScale, _Scale);
39346
39503
 
39347
39504
  var _super = _createSuper(StepScale);
39348
39505
 
39349
- function StepScale(type, opt, ctx, labels, options) {
39506
+ function StepScale(type, axisOpt, ctx, labels, options) {
39350
39507
  var _this;
39351
39508
 
39352
39509
  _classCallCheck(this, StepScale);
39353
39510
 
39354
- _this = _super.call(this, type, opt, ctx, options);
39511
+ _this = _super.call(this, type, axisOpt, ctx, options);
39355
39512
  _this.labels = labels;
39356
39513
  return _this;
39357
39514
  }
39358
39515
  /**
39359
39516
  * Calculate min/max value, label and size information for step scale
39360
39517
  * @param {object} minMax min/max information (unused on step scale)
39518
+ * @param {object} scrollbarOpt scroll bar option
39361
39519
  * @param {object} chartRect chart size information
39362
39520
  *
39363
39521
  * @returns {object} min/max value and label
@@ -39366,14 +39524,31 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39366
39524
 
39367
39525
  _createClass(StepScale, [{
39368
39526
  key: "calculateScaleRange",
39369
- value: function calculateScaleRange(minMax, chartRect) {
39527
+ value: function calculateScaleRange(minMax, scrollbarOpt, chartRect) {
39370
39528
  var stepMinMax = this.labelStyle.alignToGridLine ? minMax : helpers_util.getStringMinMax(this.labels);
39371
39529
  var maxValue = stepMinMax.max;
39372
39530
  var minValue = stepMinMax.min;
39373
- var maxWidth = chartRect.chartWidth / (this.labels.length + 2);
39531
+ var minIndex = 0;
39532
+ var maxIndex = this.labels.length - 1;
39533
+ var labelCount = this.labels.length;
39534
+ var range = scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use ? scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range : this.range;
39535
+
39536
+ if (range !== null && range !== void 0 && range.length) {
39537
+ var _range = _slicedToArray(range, 2);
39538
+
39539
+ minIndex = _range[0];
39540
+ maxIndex = _range[1];
39541
+ maxValue = this.labels[maxIndex];
39542
+ minValue = this.labels[minIndex];
39543
+ labelCount = maxIndex - minIndex + 1;
39544
+ }
39545
+
39546
+ var maxWidth = chartRect.chartWidth / (labelCount + 2);
39374
39547
  return {
39375
39548
  min: minValue,
39376
39549
  max: maxValue,
39550
+ minIndex: minIndex,
39551
+ maxIndex: maxIndex,
39377
39552
  minLabel: this.getLabelFormat(minValue, maxWidth),
39378
39553
  maxLabel: this.getLabelFormat(maxValue, maxWidth),
39379
39554
  size: helpers_util.calcTextSize(this.getLabelFormat(maxValue, maxWidth), helpers_util.getLabelStyle(this.labelStyle))
@@ -39389,30 +39564,39 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39389
39564
  }, {
39390
39565
  key: "calculateSteps",
39391
39566
  value: function calculateSteps(range) {
39392
- var numberOfSteps = this.labels.length;
39567
+ var minValue = range.minValue,
39568
+ maxValue = range.maxValue,
39569
+ minIndex = range.minIndex,
39570
+ maxIndex = range.maxIndex,
39571
+ maxSteps = range.maxSteps;
39572
+ var numberOfSteps = maxIndex - minIndex + 1;
39393
39573
  var interval = 1;
39574
+ var oriSteps = numberOfSteps;
39394
39575
  var isNumbersArray = this.labels.every(function (label) {
39395
39576
  return !isNaN(label);
39396
39577
  });
39397
39578
 
39398
39579
  if (this.labelStyle.alignToGridLine && isNumbersArray) {
39399
- var maxSteps = range.maxSteps;
39400
-
39401
39580
  if (maxSteps > 2) {
39402
39581
  while (numberOfSteps > maxSteps * 2) {
39403
39582
  interval *= 2;
39404
39583
  numberOfSteps = Math.round(numberOfSteps / interval);
39405
39584
  }
39406
39585
  } else {
39407
- interval = this.labels.length;
39586
+ interval = oriSteps;
39408
39587
  }
39588
+ } else if (numberOfSteps > maxSteps * 2) {
39589
+ interval *= 2;
39409
39590
  }
39410
39591
 
39411
39592
  return {
39593
+ oriSteps: oriSteps,
39412
39594
  steps: numberOfSteps,
39413
39595
  interval: interval,
39414
- graphMin: range.minValue,
39415
- graphMax: range.maxValue
39596
+ graphMin: minValue,
39597
+ graphMax: maxValue,
39598
+ minIndex: minIndex,
39599
+ maxIndex: maxIndex
39416
39600
  };
39417
39601
  }
39418
39602
  /**
@@ -39442,14 +39626,14 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39442
39626
  y1: chartRect.y1 + labelOffset.top,
39443
39627
  y2: chartRect.y2 - labelOffset.bottom
39444
39628
  };
39445
- var oriSteps = this.labels.length;
39446
39629
  var steps = stepInfo.steps;
39447
39630
  var count = stepInfo.interval;
39631
+ var startIndex = stepInfo.minIndex;
39448
39632
  var startPoint = aPos[this.units.rectStart];
39449
39633
  var endPoint = aPos[this.units.rectEnd];
39450
39634
  var offsetPoint = aPos[this.units.rectOffset(this.position)];
39451
39635
  var offsetCounterPoint = aPos[this.units.rectOffsetCounter(this.position)];
39452
- var maxWidth = chartRect.chartWidth / (this.labels.length + 2);
39636
+ var maxWidth = chartRect.chartWidth / (steps + 2);
39453
39637
  this.drawAxisTitle(chartRect, labelOffset);
39454
39638
 
39455
39639
  if ((_this$labelStyle = this.labelStyle) !== null && _this$labelStyle !== void 0 && _this$labelStyle.show) {
@@ -39484,7 +39668,7 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39484
39668
  return;
39485
39669
  }
39486
39670
 
39487
- var labelGap = (endPoint - startPoint) / labels.length;
39671
+ var labelGap = (endPoint - startPoint) / steps;
39488
39672
  var alignToGridLine = this.labelStyle.alignToGridLine;
39489
39673
  var labelCenter = null;
39490
39674
  var linePosition = null;
@@ -39494,10 +39678,11 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39494
39678
  var labelPoint;
39495
39679
  var index;
39496
39680
 
39497
- for (index = 0; index < oriSteps; index += count) {
39681
+ for (index = 0; index < steps; index += count) {
39498
39682
  var _selectedLabelInfo$da, _selectedLabelInfo$da2;
39499
39683
 
39500
- var item = this.labels[index];
39684
+ var labelIndex = startIndex + index;
39685
+ var item = this.labels[labelIndex];
39501
39686
  labelCenter = Math.round(startPoint + labelGap * index);
39502
39687
  linePosition = labelCenter + aliasPixel;
39503
39688
  labelText = this.getLabelFormat(item, maxWidth);
@@ -39513,7 +39698,7 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39513
39698
  targetAxis = horizontal ? 'y' : 'x';
39514
39699
  }
39515
39700
 
39516
- 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));
39701
+ 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));
39517
39702
  var labelColor = this.labelStyle.color;
39518
39703
  var defaultOpacity = 1;
39519
39704
 
@@ -39732,17 +39917,18 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39732
39917
 
39733
39918
 
39734
39919
 
39920
+
39735
39921
  var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39736
39922
  _inherits(TimeCategoryScale, _Scale);
39737
39923
 
39738
39924
  var _super = _createSuper(TimeCategoryScale);
39739
39925
 
39740
- function TimeCategoryScale(type, opt, ctx, labels, options) {
39926
+ function TimeCategoryScale(type, axisOpt, ctx, labels, options) {
39741
39927
  var _this;
39742
39928
 
39743
39929
  _classCallCheck(this, TimeCategoryScale);
39744
39930
 
39745
- _this = _super.call(this, type, opt, ctx);
39931
+ _this = _super.call(this, type, axisOpt, ctx);
39746
39932
  _this.labels = labels;
39747
39933
  _this.options = options;
39748
39934
  return _this;
@@ -39858,6 +40044,8 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39858
40044
  }, {
39859
40045
  key: "draw",
39860
40046
  value: function draw(chartRect, labelOffset, stepInfo, hitInfo, selectLabelInfo) {
40047
+ var _this2 = this;
40048
+
39861
40049
  var ctx = this.ctx;
39862
40050
  var labels = this.labels;
39863
40051
  var aPos = {
@@ -39910,7 +40098,7 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39910
40098
  }
39911
40099
 
39912
40100
  var alignToGridLine = this.labelStyle.alignToGridLine;
39913
- var graphGap = (endPoint - startPoint) / (labels.length || 1);
40101
+ var graphGap = (endPoint - startPoint) / (oriSteps || 1);
39914
40102
 
39915
40103
  if (this.categoryMode && !alignToGridLine) {
39916
40104
  startPoint += Math.ceil(graphGap / 2) - 2;
@@ -39925,13 +40113,15 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39925
40113
  var labelPoint;
39926
40114
 
39927
40115
  for (var ix = 0; ix < oriSteps; ix += count) {
39928
- var _this$options, _this$options$selectL, _this$options2, _this$options2$select, _selectLabelInfo$data, _selectLabelInfo$data2;
40116
+ var _this$options, _this$options$selectL, _this$options2, _this$options2$select, _selectLabelInfo$data;
39929
40117
 
39930
40118
  ticks[ix] = axisMin + ix * stepValue;
39931
40119
  labelCenter = Math.round(startPoint + graphGap * ix);
39932
40120
  linePosition = labelCenter + aliasPixel;
39933
40121
  labelText = this.getLabelFormat(Math.min(axisMax, ticks[ix]));
39934
- 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));
40122
+ 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) {
40123
+ return _this2.getLabelFormat(Math.min(axisMax, t));
40124
+ }).includes(labelText));
39935
40125
  var labelColor = this.labelStyle.color;
39936
40126
  var defaultOpacity = 1;
39937
40127
 
@@ -42001,6 +42191,662 @@ var plugins_legend_gradient_modules = {
42001
42191
  }
42002
42192
  };
42003
42193
  /* harmony default export */ var plugins_legend_gradient = (plugins_legend_gradient_modules);
42194
+ // CONCATENATED MODULE: ./src/components/chart/plugins/plugins.scrollbar.js
42195
+
42196
+
42197
+
42198
+
42199
+
42200
+
42201
+
42202
+
42203
+
42204
+
42205
+
42206
+ var plugins_scrollbar_module = {
42207
+ /**
42208
+ * init scrollbar information
42209
+ */
42210
+ initScrollbar: function initScrollbar() {
42211
+ var _this$options$axesX, _this$options$axesX$, _this$options$axesX$$, _this$options$axesY, _this$options$axesY$, _this$options$axesY$$;
42212
+
42213
+ 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) {
42214
+ this.initScrollbarInfo(this.options.axesX, 'x');
42215
+ }
42216
+
42217
+ 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) {
42218
+ this.initScrollbarInfo(this.options.axesY, 'y');
42219
+ }
42220
+ },
42221
+
42222
+ /**
42223
+ * init scrollbar information with axis information
42224
+ * @param axisOpt axis option
42225
+ * @param dir axis direction (x | y)
42226
+ */
42227
+ initScrollbarInfo: function initScrollbarInfo(axisOpt, dir) {
42228
+ var scrollbarOpt = this.scrollbar[dir];
42229
+
42230
+ if (!scrollbarOpt.isInit) {
42231
+ var _axisOpt$, _axisOpt$2, _axisOpt$3;
42232
+
42233
+ 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);
42234
+ Object.keys(merged).forEach(function (key) {
42235
+ scrollbarOpt[key] = merged[key];
42236
+ });
42237
+ scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$2 = axisOpt[0]) === null || _axisOpt$2 === void 0 ? void 0 : _axisOpt$2.type;
42238
+ scrollbarOpt.range = (axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$3 = axisOpt[0]) === null || _axisOpt$3 === void 0 ? void 0 : _axisOpt$3.range) || null;
42239
+ scrollbarOpt.interval = null;
42240
+ this.createScrollbarLayout(dir);
42241
+ this.createScrollbar(dir);
42242
+ this.createScrollEvent(dir);
42243
+ scrollbarOpt.isInit = true;
42244
+ }
42245
+ },
42246
+
42247
+ /**
42248
+ * update scrollbar information
42249
+ */
42250
+ updateScrollbar: function updateScrollbar() {
42251
+ this.updateScrollbarInfo('x');
42252
+ this.updateScrollbarInfo('y');
42253
+ },
42254
+
42255
+ /**
42256
+ * Updated scrollbar information with updated axis information
42257
+ * @param dir axis direction (x | y)
42258
+ */
42259
+ updateScrollbarInfo: function updateScrollbarInfo(dir) {
42260
+ var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$4, _newOpt$0$scrollbar2;
42261
+
42262
+ var _this$options = this.options,
42263
+ axesX = _this$options.axesX,
42264
+ axesY = _this$options.axesY;
42265
+ var newOpt = dir === 'x' ? axesX : axesY;
42266
+
42267
+ 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) {
42268
+ this.initScrollbarInfo(newOpt, dir);
42269
+ return;
42270
+ } 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)) {
42271
+ this.destroyScrollbar(dir);
42272
+ return;
42273
+ }
42274
+
42275
+ var axisOpt = dir === 'x' ? this.axesX : this.axesY;
42276
+ 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);
42277
+
42278
+ if (isUpdateAxesRange) {
42279
+ var _newOpt$5;
42280
+
42281
+ 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;
42282
+ }
42283
+
42284
+ 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);
42285
+ },
42286
+
42287
+ /**
42288
+ * update scrollbar position
42289
+ */
42290
+ updateScrollbarPosition: function updateScrollbarPosition() {
42291
+ var _this$scrollbar$x, _this$scrollbar$x2, _this$scrollbar$y, _this$scrollbar$y2;
42292
+
42293
+ 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) {
42294
+ this.setScrollbarPosition('x');
42295
+ }
42296
+
42297
+ 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) {
42298
+ this.setScrollbarPosition('y');
42299
+ }
42300
+ },
42301
+
42302
+ /**
42303
+ * create scrollbar layout
42304
+ * @param dir axis direction ('x' | 'y')
42305
+ */
42306
+ createScrollbarLayout: function createScrollbarLayout(dir) {
42307
+ var scrollbarOpt = this.scrollbar[dir];
42308
+ scrollbarOpt.dom = document.createElement('div');
42309
+ scrollbarOpt.dom.className = 'ev-chart-scrollbar';
42310
+ scrollbarOpt.dom.dataset.type = 'scrollbar';
42311
+ var containerDOM = document.createElement('div');
42312
+ containerDOM.className = 'ev-chart-scrollbar-container';
42313
+ containerDOM.dataset.type = dir;
42314
+ scrollbarOpt.dom.appendChild(containerDOM);
42315
+ this.wrapperDOM.appendChild(scrollbarOpt.dom);
42316
+ },
42317
+
42318
+ /**
42319
+ * create scrollbar
42320
+ * @param dir axis direction ('x' | 'y')
42321
+ */
42322
+ createScrollbar: function createScrollbar(dir) {
42323
+ var scrollbarOpt = this.scrollbar[dir];
42324
+ var containerDOM = scrollbarOpt.dom.children[0];
42325
+ this.createScrollbarTrack(containerDOM);
42326
+ this.createScrollbarThumb(containerDOM);
42327
+
42328
+ if (scrollbarOpt.showButton) {
42329
+ this.createScrollbarButton(containerDOM);
42330
+ }
42331
+ },
42332
+
42333
+ /**
42334
+ * create scrollbar track
42335
+ * @param containerDOM
42336
+ */
42337
+ createScrollbarTrack: function createScrollbarTrack(containerDOM) {
42338
+ var trackDOM = document.createElement('div');
42339
+ trackDOM.className = 'ev-chart-scrollbar-track';
42340
+ trackDOM.dataset.type = 'track';
42341
+ containerDOM.appendChild(trackDOM);
42342
+ },
42343
+
42344
+ /**
42345
+ * create scrollbar thumb
42346
+ * @param containerDOM
42347
+ */
42348
+ createScrollbarThumb: function createScrollbarThumb(containerDOM) {
42349
+ var thumbDOM = document.createElement('div');
42350
+ thumbDOM.className = 'ev-chart-scrollbar-thumb';
42351
+ thumbDOM.dataset.type = 'thumb';
42352
+ containerDOM.appendChild(thumbDOM);
42353
+ },
42354
+
42355
+ /**
42356
+ * create scrollbar up, down button
42357
+ * @param containerDOM
42358
+ */
42359
+ createScrollbarButton: function createScrollbarButton(containerDOM) {
42360
+ var upBtnDOM = document.createElement('div');
42361
+ upBtnDOM.className = 'ev-chart-scrollbar-button ev-chart-scrollbar-button-up';
42362
+ upBtnDOM.dataset.type = 'button';
42363
+ var iconUpBtn = document.createElement('i');
42364
+ iconUpBtn.className = 'ev-icon ev-icon-triangle-up ev-chart-scrollbar-button-icon';
42365
+ iconUpBtn.dataset.type = 'button-icon';
42366
+ upBtnDOM.appendChild(iconUpBtn);
42367
+ var downBtnDOM = document.createElement('div');
42368
+ downBtnDOM.className = 'ev-chart-scrollbar-button ev-chart-scrollbar-button-down';
42369
+ downBtnDOM.dataset.type = 'button';
42370
+ var iconDownBtn = document.createElement('i');
42371
+ iconDownBtn.className = 'ev-icon ev-icon-triangle-down ev-chart-scrollbar-button-icon';
42372
+ iconDownBtn.dataset.type = 'button-icon';
42373
+ downBtnDOM.appendChild(iconDownBtn);
42374
+ containerDOM.appendChild(upBtnDOM);
42375
+ containerDOM.appendChild(downBtnDOM);
42376
+ },
42377
+
42378
+ /**
42379
+ * set scrollbar position
42380
+ * @param dir axis direction ('x' | 'y')
42381
+ */
42382
+ setScrollbarPosition: function setScrollbarPosition(dir) {
42383
+ var _this$options$title, _this$options$title2;
42384
+
42385
+ var scrollbarOpt = this.scrollbar[dir];
42386
+
42387
+ if (!scrollbarOpt.use || !scrollbarOpt.range) {
42388
+ return;
42389
+ }
42390
+
42391
+ var scrollbarDOM = scrollbarOpt.dom;
42392
+ var chartRect = this.chartRect;
42393
+ var labelOffset = this.labelOffset;
42394
+ var aPos = {
42395
+ x1: chartRect.x1 + labelOffset.left,
42396
+ x2: chartRect.x2 - labelOffset.right,
42397
+ y1: chartRect.y1 + labelOffset.top,
42398
+ y2: chartRect.y2 - labelOffset.bottom
42399
+ };
42400
+ 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;
42401
+ var isXScroll = dir === 'x';
42402
+ var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
42403
+ var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
42404
+ var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
42405
+ var trackSize = fullSize - buttonSize * 2;
42406
+ var thumbSize = this.getScrollbarThumbSize(dir, trackSize);
42407
+ var scrollbarStyle = 'display: block;';
42408
+ var scrollbarTrackStyle;
42409
+ var scrollbarThumbStyle;
42410
+ var upBtnStyle;
42411
+ var downBtnStyle;
42412
+ var commonBtnStyle = "width:".concat(buttonSize, "px;height:").concat(buttonSize, "px;");
42413
+
42414
+ if (isXScroll) {
42415
+ scrollbarStyle = "top: ".concat(chartRect.y2 + titleHeight + labelOffset.top, "px;");
42416
+ scrollbarStyle += "left: ".concat(aPos.x1, "px;");
42417
+ scrollbarStyle += "width: ".concat(fullSize, "px;");
42418
+ scrollbarStyle += " height: ".concat(scrollHeight, "px;");
42419
+ scrollbarTrackStyle = 'top: 0;';
42420
+ scrollbarTrackStyle += "left: ".concat(buttonSize, "px;");
42421
+ scrollbarTrackStyle += "width: ".concat(trackSize, "px;");
42422
+ scrollbarTrackStyle += 'height: 100%;';
42423
+ scrollbarThumbStyle = "width: ".concat(thumbSize.size, "px;");
42424
+ scrollbarThumbStyle += 'height: 100%;';
42425
+ scrollbarThumbStyle += "left: ".concat(thumbSize.position + buttonSize, "px");
42426
+ commonBtnStyle += 'transform:rotate(90deg);top: 0;';
42427
+ upBtnStyle = "".concat(commonBtnStyle, "right:0;");
42428
+ downBtnStyle = "".concat(commonBtnStyle, "left:0;");
42429
+ } else {
42430
+ scrollbarStyle = "top: ".concat(aPos.y1 + titleHeight, "px;");
42431
+ scrollbarStyle += "left: ".concat(aPos.x2 + 10, "px;");
42432
+ scrollbarStyle += "width: ".concat(scrollHeight, "px;");
42433
+ scrollbarStyle += "height: ".concat(fullSize, "px;");
42434
+ scrollbarTrackStyle = "top: ".concat(buttonSize, "px;");
42435
+ scrollbarTrackStyle += 'left: 0;';
42436
+ scrollbarTrackStyle += 'width: 100%;';
42437
+ scrollbarTrackStyle += "height: ".concat(trackSize, "px;");
42438
+ scrollbarThumbStyle = 'width: 100%;';
42439
+ scrollbarThumbStyle += "height: ".concat(thumbSize.size, "px;");
42440
+ scrollbarThumbStyle += "bottom: ".concat(thumbSize.position + buttonSize, "px");
42441
+ commonBtnStyle += 'left:0;';
42442
+ upBtnStyle = "".concat(commonBtnStyle, "top: 0;");
42443
+ downBtnStyle = "".concat(commonBtnStyle, "bottom: 0;");
42444
+ }
42445
+
42446
+ scrollbarDOM.style.cssText = scrollbarStyle;
42447
+ var scrollbarTrackDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-track');
42448
+ scrollbarTrackDOM[0].style.cssText = scrollbarTrackStyle;
42449
+ scrollbarTrackDOM[0].style.backgroundColor = scrollbarOpt.background;
42450
+ var scrollbarThumbDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42451
+ scrollbarThumbDOM[0].style.cssText = scrollbarThumbStyle;
42452
+ scrollbarThumbDOM[0].style.backgroundColor = scrollbarOpt.thumbStyle.background;
42453
+ scrollbarThumbDOM[0].style.borderRadius = "".concat(scrollbarOpt.thumbStyle.radius, "px");
42454
+
42455
+ if (scrollbarOpt.showButton) {
42456
+ var upBtnDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-button-up');
42457
+ var endPosition = Math.floor(trackSize - thumbSize.size);
42458
+ var upBtnOpacity = Math.floor(thumbSize.position) === endPosition ? 0.5 : 1;
42459
+ upBtnDOM[0].style.cssText = "background-color: ".concat(scrollbarOpt.background, ";").concat(upBtnStyle);
42460
+ upBtnDOM[0].style.opacity = upBtnOpacity;
42461
+ upBtnDOM[0].children[0].style.display = 'block';
42462
+ var downBtnDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-button-down');
42463
+ downBtnDOM[0].style.cssText = "background-color: ".concat(scrollbarOpt.background, ";").concat(downBtnStyle);
42464
+ downBtnDOM[0].style.opacity = Math.floor(thumbSize.position) === 0 ? 0.5 : 1;
42465
+ downBtnDOM[0].children[0].style.display = 'block';
42466
+ }
42467
+ },
42468
+
42469
+ /**
42470
+ * get scrollbar thumb size
42471
+ * @param dir axis direction ('x' | 'y')
42472
+ * @param trackSize scrollbar track size
42473
+ */
42474
+ getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
42475
+ var scrollbarOpt = this.scrollbar[dir];
42476
+
42477
+ var _scrollbarOpt$range = _slicedToArray(scrollbarOpt.range, 2),
42478
+ min = _scrollbarOpt$range[0],
42479
+ max = _scrollbarOpt$range[1];
42480
+
42481
+ var axesType = scrollbarOpt.type;
42482
+ var thumbSize;
42483
+ var steps;
42484
+ var interval = 1;
42485
+ var startValue = 0;
42486
+ var thumbPosition = 0;
42487
+
42488
+ if (axesType === 'step') {
42489
+ var labels = this.options.type === 'heatMap' ? this.data.labels[dir] : this.data.labels;
42490
+ var range = max - min + 1;
42491
+ steps = labels.length;
42492
+ var intervalSize = trackSize / steps;
42493
+ thumbSize = intervalSize * range;
42494
+ thumbPosition = intervalSize * min;
42495
+ } else {
42496
+ var _this$axesX, _this$axesX$;
42497
+
42498
+ var minMax = this.minMax[dir];
42499
+ var graphRange = +minMax[0].max - +minMax[0].min;
42500
+
42501
+ var _range = +max - +min;
42502
+
42503
+ 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({
42504
+ min: minMax[0].min,
42505
+ max: minMax[0].max,
42506
+ maxSteps: this.labelRange[dir].max
42507
+ });
42508
+ steps = Math.ceil(graphRange / interval) + 1;
42509
+ startValue = +minMax[0].min;
42510
+
42511
+ var _intervalSize = trackSize / steps;
42512
+
42513
+ var count = _range / interval + 1;
42514
+ var point = +min - startValue;
42515
+ thumbSize = _intervalSize * count;
42516
+ thumbPosition = _intervalSize * (point / interval);
42517
+ }
42518
+
42519
+ scrollbarOpt.startValue = startValue;
42520
+ scrollbarOpt.steps = steps;
42521
+ scrollbarOpt.interval = interval;
42522
+ return {
42523
+ size: thumbSize,
42524
+ position: thumbPosition,
42525
+ background: scrollbarOpt.background,
42526
+ radius: scrollbarOpt.radius
42527
+ };
42528
+ },
42529
+
42530
+ /**
42531
+ * get scrollbar containerDOM
42532
+ * @param targetDOM event target dom
42533
+ * @returns {HTMLElement|Element|*}
42534
+ */
42535
+ getScrollbarContainerDOM: function getScrollbarContainerDOM(targetDOM) {
42536
+ var childTypes = ['track', 'thumb', 'button'];
42537
+ var type = targetDOM.dataset.type;
42538
+
42539
+ if (childTypes.includes(type)) {
42540
+ return targetDOM.parentElement;
42541
+ } else if (type === 'button-icon') {
42542
+ return targetDOM.parentElement.parentElement;
42543
+ } else if (type === 'scrollbar') {
42544
+ return targetDOM.getElementsByClassName('ev-chart-scrollbar-container')[0];
42545
+ }
42546
+
42547
+ return targetDOM;
42548
+ },
42549
+
42550
+ /**
42551
+ * update scrollbar option range
42552
+ * @param dir axis direction ('x' | 'y')
42553
+ * @param isUp
42554
+ */
42555
+ updateScrollbarRange: function updateScrollbarRange(dir, isUp) {
42556
+ var scrollbarOpt = this.scrollbar[dir];
42557
+ var startValue = scrollbarOpt.startValue,
42558
+ range = scrollbarOpt.range,
42559
+ interval = scrollbarOpt.interval,
42560
+ steps = scrollbarOpt.steps;
42561
+ var endValue = startValue + interval * steps;
42562
+ var axisOpt = dir === 'x' ? this.axesX[0] : this.axesY[0];
42563
+
42564
+ var _ref = range !== null && range !== void 0 ? range : [],
42565
+ _ref2 = _slicedToArray(_ref, 2),
42566
+ min = _ref2[0],
42567
+ max = _ref2[1];
42568
+
42569
+ if (!truthyNumber(min) || !truthyNumber(max)) {
42570
+ scrollbarOpt.range = (axisOpt === null || axisOpt === void 0 ? void 0 : axisOpt.range) || null;
42571
+ }
42572
+
42573
+ var minValue;
42574
+ var maxValue;
42575
+ var isOutOfRange = false;
42576
+
42577
+ if (isUp) {
42578
+ minValue = min + interval;
42579
+ maxValue = max + interval;
42580
+ isOutOfRange = maxValue >= endValue;
42581
+ } else {
42582
+ minValue = min - interval;
42583
+ maxValue = max - interval;
42584
+ isOutOfRange = minValue < startValue;
42585
+ }
42586
+
42587
+ if (!isOutOfRange) {
42588
+ scrollbarOpt.range = [minValue, maxValue];
42589
+ this.update({
42590
+ updateSeries: false,
42591
+ updateSelTip: {
42592
+ update: false,
42593
+ keepDomain: false
42594
+ }
42595
+ });
42596
+ }
42597
+ },
42598
+
42599
+ /**
42600
+ * create scroll event
42601
+ */
42602
+ createScrollEvent: function createScrollEvent() {
42603
+ var _this = this;
42604
+
42605
+ this.onScrollbarClick = function (e) {
42606
+ e.preventDefault();
42607
+ var type = e.target.dataset.type;
42608
+
42609
+ var containerDOM = _this.getScrollbarContainerDOM(e.target);
42610
+
42611
+ var buttonTypes = ['button', 'button-icon'];
42612
+ var dir = containerDOM.dataset.type;
42613
+ var isUp;
42614
+
42615
+ if (buttonTypes.includes(type)) {
42616
+ var buttonDOM;
42617
+
42618
+ if (type === 'button') {
42619
+ buttonDOM = e.target;
42620
+ } else if (type === 'button-icon') {
42621
+ buttonDOM = e.target.parentElement;
42622
+ }
42623
+
42624
+ isUp = buttonDOM.className.includes('up');
42625
+ } else if (type === 'track') {
42626
+ var thumbDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42627
+
42628
+ var _thumbDOM$0$getBoundi = thumbDOM[0].getBoundingClientRect(),
42629
+ x = _thumbDOM$0$getBoundi.x,
42630
+ y = _thumbDOM$0$getBoundi.y;
42631
+
42632
+ var isXScroll = dir === 'x';
42633
+ var clickPoint = isXScroll ? e.clientX : -e.clientY;
42634
+ var thumbPosition = isXScroll ? x : -y;
42635
+ isUp = clickPoint > thumbPosition;
42636
+ } else {
42637
+ return;
42638
+ }
42639
+
42640
+ _this.updateScrollbarRange(dir, isUp);
42641
+ };
42642
+
42643
+ this.onScrollbarDown = function (e) {
42644
+ e.preventDefault();
42645
+
42646
+ if (e.target.dataset.type !== 'thumb') {
42647
+ return;
42648
+ }
42649
+
42650
+ var containerDOM = _this.getScrollbarContainerDOM(e.target);
42651
+
42652
+ var dir = containerDOM.dataset.type;
42653
+ var thumbDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42654
+
42655
+ var _thumbDOM$0$getBoundi2 = thumbDOM[0].getBoundingClientRect(),
42656
+ x = _thumbDOM$0$getBoundi2.x,
42657
+ y = _thumbDOM$0$getBoundi2.y,
42658
+ height = _thumbDOM$0$getBoundi2.height;
42659
+
42660
+ var scrollbarOpt = _this.scrollbar[dir];
42661
+ scrollbarOpt.scrolling = true;
42662
+
42663
+ if (dir === 'x') {
42664
+ scrollbarOpt.pointInThumb = e.clientX - x;
42665
+ } else {
42666
+ scrollbarOpt.pointInThumb = y + height - e.clientY;
42667
+ }
42668
+
42669
+ var scrollbarDOM = scrollbarOpt.dom;
42670
+ scrollbarDOM.addEventListener('mousemove', _this.onScrollbarMove);
42671
+ scrollbarDOM.addEventListener('mouseup', _this.onScrollbarUp);
42672
+ };
42673
+
42674
+ var onScrollbarMove = function onScrollbarMove(e) {
42675
+ _this.scrolling(e);
42676
+ };
42677
+
42678
+ this.onScrollbarMove = lodash_es_throttle(onScrollbarMove, 5);
42679
+
42680
+ this.onScrollbarUp = function (e) {
42681
+ e.preventDefault();
42682
+
42683
+ _this.stopScrolling(e);
42684
+ };
42685
+
42686
+ this.onScrollbarLeave = function (e) {
42687
+ e.preventDefault();
42688
+
42689
+ _this.scrolling(e);
42690
+
42691
+ _this.stopScrolling(e);
42692
+ };
42693
+
42694
+ this.onScrollbarWheel = function (e) {
42695
+ e.preventDefault();
42696
+
42697
+ _this.updateScrollbarRange('y', e.deltaY < 0);
42698
+ };
42699
+
42700
+ if (this.scrollbar.x.use && !this.scrollbar.x.isInit) {
42701
+ var scrollbarXDOM = this.scrollbar.x.dom;
42702
+ scrollbarXDOM.addEventListener('click', this.onScrollbarClick);
42703
+ scrollbarXDOM.addEventListener('mousedown', this.onScrollbarDown);
42704
+ scrollbarXDOM.addEventListener('mouseleave', this.onScrollbarLeave);
42705
+ }
42706
+
42707
+ if (this.scrollbar.y.use && !this.scrollbar.y.isInit) {
42708
+ var _this$overlayCanvas;
42709
+
42710
+ var scrollbarYDOM = this.scrollbar.y.dom;
42711
+ scrollbarYDOM.addEventListener('click', this.onScrollbarClick);
42712
+ scrollbarYDOM.addEventListener('mousedown', this.onScrollbarDown);
42713
+ scrollbarYDOM.addEventListener('mouseleave', this.onScrollbarLeave);
42714
+ (_this$overlayCanvas = this.overlayCanvas) === null || _this$overlayCanvas === void 0 ? void 0 : _this$overlayCanvas.addEventListener('wheel', this.onScrollbarWheel);
42715
+ }
42716
+ },
42717
+
42718
+ /**
42719
+ * Update scroll information by move event
42720
+ * @param e Event
42721
+ */
42722
+ scrolling: function scrolling(e) {
42723
+ var containerDOM = this.getScrollbarContainerDOM(e.target);
42724
+ var dir = containerDOM.dataset.type;
42725
+
42726
+ if (!this.scrollbar[dir].scrolling) {
42727
+ return;
42728
+ }
42729
+
42730
+ var _this$scrollbar$dir = this.scrollbar[dir],
42731
+ steps = _this$scrollbar$dir.steps,
42732
+ range = _this$scrollbar$dir.range,
42733
+ pointInThumb = _this$scrollbar$dir.pointInThumb,
42734
+ startValue = _this$scrollbar$dir.startValue,
42735
+ interval = _this$scrollbar$dir.interval;
42736
+ var trackDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-track');
42737
+
42738
+ var _trackDOM$0$getBoundi = trackDOM[0].getBoundingClientRect(),
42739
+ x = _trackDOM$0$getBoundi.x,
42740
+ y = _trackDOM$0$getBoundi.y,
42741
+ width = _trackDOM$0$getBoundi.width,
42742
+ height = _trackDOM$0$getBoundi.height;
42743
+
42744
+ var isXScroll = dir === 'x';
42745
+ var sp = isXScroll ? x : y;
42746
+ var trackSize = isXScroll ? width : height;
42747
+ var intervalSize = trackSize / steps;
42748
+ var endValue = startValue + (steps - 1) * interval;
42749
+ var movePoint = isXScroll ? e.clientX : e.clientY;
42750
+
42751
+ if (movePoint < sp) {
42752
+ movePoint = sp;
42753
+ } else if (movePoint > sp + trackSize) {
42754
+ movePoint = sp + trackSize;
42755
+ }
42756
+
42757
+ var move;
42758
+
42759
+ if (isXScroll) {
42760
+ move = movePoint - sp - pointInThumb;
42761
+ } else {
42762
+ move = sp + trackSize - movePoint - pointInThumb;
42763
+ }
42764
+
42765
+ if (move <= 0) {
42766
+ return;
42767
+ }
42768
+
42769
+ var movedMin;
42770
+ var movedMax;
42771
+ var currValue = Math.round(Math.abs(move) / intervalSize) * interval;
42772
+
42773
+ var _range2 = _slicedToArray(range, 2),
42774
+ min = _range2[0],
42775
+ max = _range2[1];
42776
+
42777
+ if (move > 0) {
42778
+ var incrementValue = startValue + (currValue - +min);
42779
+ movedMin = +min + incrementValue;
42780
+ movedMax = movedMin + (+max - +min);
42781
+ }
42782
+
42783
+ if (movedMin < startValue || movedMax > endValue) {
42784
+ return;
42785
+ }
42786
+
42787
+ this.scrollbar[dir].range = [movedMin, movedMax];
42788
+ this.update({
42789
+ updateSeries: false,
42790
+ updateSelTip: {
42791
+ update: false,
42792
+ keepDomain: false
42793
+ }
42794
+ });
42795
+ },
42796
+
42797
+ /**
42798
+ * init scrolling event
42799
+ * @param e
42800
+ */
42801
+ stopScrolling: function stopScrolling(e) {
42802
+ var containerDOM = this.getScrollbarContainerDOM(e.target);
42803
+ var dir = containerDOM.dataset.type;
42804
+ var scrollbarOpt = this.scrollbar[dir];
42805
+
42806
+ if (scrollbarOpt.scrolling) {
42807
+ scrollbarOpt.scrolling = false;
42808
+ var scrollbarDOM = scrollbarOpt.dom;
42809
+ scrollbarDOM.removeEventListener('mousemove', this.onScrollbarMove, false);
42810
+ scrollbarDOM.removeEventListener('mouseup', this.onScrollbarUp, false);
42811
+ }
42812
+ },
42813
+
42814
+ /**
42815
+ * hide scrollbar dom
42816
+ * @param dir axis direction ('x' | 'y')
42817
+ */
42818
+ hideScrollbar: function hideScrollbar(dir) {
42819
+ var scrollbarDOM = this.scrollbar[dir].dom;
42820
+
42821
+ if (!scrollbarDOM) {
42822
+ return;
42823
+ }
42824
+
42825
+ var scrollbarStyle = scrollbarDOM === null || scrollbarDOM === void 0 ? void 0 : scrollbarDOM.style;
42826
+ scrollbarStyle.display = 'none';
42827
+ scrollbarStyle.width = '0';
42828
+ scrollbarStyle.height = '0';
42829
+ },
42830
+
42831
+ /**
42832
+ * destroy scrollbar dom
42833
+ * @param dir axis direction ('x' | 'y')
42834
+ */
42835
+ destroyScrollbar: function destroyScrollbar(dir) {
42836
+ var scrollbarXDOM = this.scrollbar[dir].dom;
42837
+
42838
+ if (scrollbarXDOM) {
42839
+ var _this$overlayCanvas2;
42840
+
42841
+ scrollbarXDOM.remove();
42842
+ this.scrollbar[dir] = {
42843
+ isInit: false
42844
+ };
42845
+ (_this$overlayCanvas2 = this.overlayCanvas) === null || _this$overlayCanvas2 === void 0 ? void 0 : _this$overlayCanvas2.removeEventListener('wheel', this.onScrollbarWheel, false);
42846
+ }
42847
+ }
42848
+ };
42849
+ /* harmony default export */ var plugins_scrollbar = (plugins_scrollbar_module);
42004
42850
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.from-entries.js
42005
42851
  var es_object_from_entries = __webpack_require__("c1f9");
42006
42852
 
@@ -42190,14 +43036,22 @@ var plugins_interaction_modules = {
42190
43036
  }
42191
43037
 
42192
43038
  if (tooltip.use) {
42193
- _this.setTooltipLayoutPosition(hitInfo, e);
43039
+ var _tooltip$formatter;
42194
43040
 
42195
- if (type === 'scatter') {
42196
- _this.drawTooltipForScatter(hitInfo, _this.tooltipCtx);
42197
- } else if (type === 'heatMap') {
42198
- _this.drawToolTipForHeatMap(hitInfo, _this.tooltipCtx);
43041
+ if (tooltip !== null && tooltip !== void 0 && (_tooltip$formatter = tooltip.formatter) !== null && _tooltip$formatter !== void 0 && _tooltip$formatter.html) {
43042
+ _this.drawCustomTooltip(hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.items);
43043
+
43044
+ _this.setCustomTooltipLayoutPosition(hitInfo, e);
42199
43045
  } else {
42200
- _this.drawTooltip(hitInfo, _this.tooltipCtx);
43046
+ _this.setTooltipLayoutPosition(hitInfo, e);
43047
+
43048
+ if (type === 'scatter') {
43049
+ _this.drawTooltipForScatter(hitInfo, _this.tooltipCtx);
43050
+ } else if (type === 'heatMap') {
43051
+ _this.drawToolTipForHeatMap(hitInfo, _this.tooltipCtx);
43052
+ } else {
43053
+ _this.drawTooltip(hitInfo, _this.tooltipCtx);
43054
+ }
42201
43055
  }
42202
43056
  }
42203
43057
  } else if (tooltip.use) {
@@ -42396,7 +43250,11 @@ var plugins_interaction_modules = {
42396
43250
  } else if (useSelectItem) {
42397
43251
  setSelectedItemInfo();
42398
43252
  } else if (useSelectLabel) {
42399
- setSelectedLabelInfo();
43253
+ var _useBothAxis = selectLabelOpt.useBothAxis;
43254
+
43255
+ var _location = _this.getClickedLocation(offset);
43256
+
43257
+ setSelectedLabelInfo(_useBothAxis ? _location : null);
42400
43258
  }
42401
43259
 
42402
43260
  break;
@@ -43253,7 +44111,9 @@ var plugins_tooltip_modules = {
43253
44111
  * @returns {undefined}
43254
44112
  */
43255
44113
  createTooltipDOM: function createTooltipDOM() {
43256
- var _this = this;
44114
+ var _this$options$tooltip,
44115
+ _this$options$tooltip2,
44116
+ _this = this;
43257
44117
 
43258
44118
  this.tooltipDOM = document.createElement('div');
43259
44119
  this.tooltipDOM.className = 'ev-chart-tooltip';
@@ -43266,9 +44126,13 @@ var plugins_tooltip_modules = {
43266
44126
  this.tooltipCtx = this.tooltipCanvas.getContext('2d');
43267
44127
  this.tooltipDOM.style.display = 'none';
43268
44128
  this.setFontFamily();
43269
- this.tooltipBodyDOM.appendChild(this.tooltipCanvas);
43270
- this.tooltipDOM.appendChild(this.tooltipHeaderDOM);
43271
- this.tooltipDOM.appendChild(this.tooltipBodyDOM);
44129
+
44130
+ 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)) {
44131
+ this.tooltipBodyDOM.appendChild(this.tooltipCanvas);
44132
+ this.tooltipDOM.appendChild(this.tooltipHeaderDOM);
44133
+ this.tooltipDOM.appendChild(this.tooltipBodyDOM);
44134
+ }
44135
+
43272
44136
  document.body.appendChild(this.tooltipDOM);
43273
44137
 
43274
44138
  if (this.options.tooltip.debouncedHide) {
@@ -43286,9 +44150,9 @@ var plugins_tooltip_modules = {
43286
44150
  * set tooltip's font style
43287
44151
  */
43288
44152
  setFontFamily: function setFontFamily() {
43289
- var _this$options$tooltip, _this$options, _this$options$tooltip2;
44153
+ var _this$options$tooltip3, _this$options, _this$options$tooltip4;
43290
44154
 
43291
- 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';
44155
+ 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';
43292
44156
  fontStyle = "normal normal lighter 14px ".concat(fontFamily);
43293
44157
  this.tooltipHeaderDOM.style.fontFamily = fontFamily;
43294
44158
  },
@@ -43809,6 +44673,70 @@ var plugins_tooltip_modules = {
43809
44673
 
43810
44674
  ctx.restore();
43811
44675
  },
44676
+ setCustomTooltipLayoutPosition: function setCustomTooltipLayoutPosition(hitInfo, e) {
44677
+ var _document$getElements;
44678
+
44679
+ var mouseX = e.pageX;
44680
+ var mouseY = e.pageY;
44681
+ var customTooltipEl = (_document$getElements = document.getElementsByClassName('ev-chart-tooltip-custom')) === null || _document$getElements === void 0 ? void 0 : _document$getElements[0];
44682
+
44683
+ if (!customTooltipEl) {
44684
+ return;
44685
+ }
44686
+
44687
+ var contentsWidth = customTooltipEl.offsetWidth;
44688
+ var contentsHeight = customTooltipEl.offsetHeight;
44689
+ this.tooltipDOM.style.height = 'auto';
44690
+ this.tooltipBodyDOM.style.height = "".concat(contentsHeight + 6, "px");
44691
+ var bodyWidth = document.body.clientWidth;
44692
+ var bodyHeight = document.body.clientHeight;
44693
+ var distanceMouseAndTooltip = 20;
44694
+ var maximumPosX = bodyWidth - contentsWidth - distanceMouseAndTooltip;
44695
+ var maximumPosY = bodyHeight - (TITLE_HEIGHT + contentsHeight) - distanceMouseAndTooltip;
44696
+ var expectedPosX = mouseX + distanceMouseAndTooltip;
44697
+ var expectedPosY = mouseY + distanceMouseAndTooltip;
44698
+ var reversedPosX = mouseX - contentsWidth - distanceMouseAndTooltip;
44699
+ var reversedPosY = mouseY - (TITLE_HEIGHT + contentsHeight) - distanceMouseAndTooltip;
44700
+ this.tooltipDOM.style.left = expectedPosX > maximumPosX ? "".concat(reversedPosX, "px") : "".concat(expectedPosX, "px");
44701
+ this.tooltipDOM.style.top = expectedPosY > maximumPosY ? "".concat(reversedPosY, "px") : "".concat(expectedPosY, "px");
44702
+ this.tooltipDOM.style.display = 'block';
44703
+ },
44704
+
44705
+ /**
44706
+ * Draw User Custom Tooltip (tooltip > formatter > html)
44707
+ * call "formatter > html" and append to tooltip DOM
44708
+ * @param hitInfoItems
44709
+ */
44710
+ drawCustomTooltip: function drawCustomTooltip(hitInfoItems) {
44711
+ var _this$options2, _opt$formatter3;
44712
+
44713
+ var opt = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.tooltip;
44714
+
44715
+ if ((_opt$formatter3 = opt.formatter) !== null && _opt$formatter3 !== void 0 && _opt$formatter3.html) {
44716
+ var _opt$formatter4;
44717
+
44718
+ this.tooltipDOM.innerHTML = '';
44719
+ var seriesList = [];
44720
+ Object.keys(hitInfoItems).forEach(function (sId) {
44721
+ seriesList.push({
44722
+ sId: sId,
44723
+ data: hitInfoItems[sId].data,
44724
+ color: hitInfoItems[sId].color,
44725
+ name: hitInfoItems[sId].name
44726
+ });
44727
+ });
44728
+ 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));
44729
+
44730
+ if (userCustomTooltipBody) {
44731
+ this.tooltipDOM.appendChild(userCustomTooltipBody);
44732
+ }
44733
+
44734
+ this.tooltipDOM.style.overflowY = 'hidden';
44735
+ this.tooltipDOM.style.backgroundColor = opt.backgroundColor;
44736
+ this.tooltipDOM.style.border = "1px solid ".concat(opt.borderColor);
44737
+ this.tooltipDOM.style.color = opt.fontColor;
44738
+ }
44739
+ },
43812
44740
 
43813
44741
  /**
43814
44742
  * set style properties on tooltip DOM
@@ -44227,6 +45155,9 @@ var plugins_pie_modules = {
44227
45155
 
44228
45156
 
44229
45157
 
45158
+
45159
+
45160
+
44230
45161
  var element_tip_modules = {
44231
45162
  /**
44232
45163
  * Draw TextTip with tip's locationInfo
@@ -44411,6 +45342,23 @@ var element_tip_modules = {
44411
45342
  var dp;
44412
45343
 
44413
45344
  if (type === 'bar') {
45345
+ var scrollbarOpt = isHorizontal ? this.scrollbar.y : this.scrollbar.x;
45346
+
45347
+ if (scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use) {
45348
+ var _scrollbarOpt$range;
45349
+
45350
+ var _ref = (_scrollbarOpt$range = scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range) !== null && _scrollbarOpt$range !== void 0 ? _scrollbarOpt$range : [],
45351
+ _ref2 = _slicedToArray(_ref, 2),
45352
+ min = _ref2[0],
45353
+ max = _ref2[1];
45354
+
45355
+ if (ldata >= min && ldata <= max) {
45356
+ ldata -= min !== null && min !== void 0 ? min : 0;
45357
+ } else {
45358
+ return false;
45359
+ }
45360
+ }
45361
+
44414
45362
  if (isHorizontal) {
44415
45363
  halfBarSize = Math.round(size.h / 2);
44416
45364
  cp = ysp - size.cat * ldata - size.cPad;
@@ -44522,7 +45470,7 @@ var element_tip_modules = {
44522
45470
  var drawTip = false;
44523
45471
 
44524
45472
  if (dataIndex.length) {
44525
- var _this$seriesList, _this$data$groups$, _this$data$groups;
45473
+ var _this$seriesList, _this$data$groups$, _this$data$groups, _labelAxes$labels;
44526
45474
 
44527
45475
  drawTip = true;
44528
45476
  var chartRect = this.chartRect;
@@ -44538,6 +45486,7 @@ var element_tip_modules = {
44538
45486
  var valueAxesRange = isHorizontal ? this.axesRange.x[0] : this.axesRange.y[0];
44539
45487
  var valuePositionCalcFunction = isHorizontal ? helpers_canvas.calculateX : helpers_canvas.calculateY;
44540
45488
  var labelPositionCalcFunction = isHorizontal ? helpers_canvas.calculateY : helpers_canvas.calculateX;
45489
+ var scrollbarOpt = isHorizontal ? this.scrollbar.y : this.scrollbar.x;
44541
45490
  var chartWidth = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
44542
45491
  var chartHeight = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
44543
45492
  var valueSpace = isHorizontal ? chartWidth : chartHeight;
@@ -44561,11 +45510,35 @@ var element_tip_modules = {
44561
45510
  var graphX;
44562
45511
  var lineSeries;
44563
45512
  var sizeObj;
45513
+ var startIndex = 0;
45514
+ var endIndex = (_labelAxes$labels = labelAxes.labels) === null || _labelAxes$labels === void 0 ? void 0 : _labelAxes$labels.length;
44564
45515
 
44565
45516
  if (labelAxes.labels) {
45517
+ var labelCount = labelAxes.labels.length;
45518
+
45519
+ if (scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use) {
45520
+ var range = scrollbarOpt.range,
45521
+ interval = scrollbarOpt.interval,
45522
+ type = scrollbarOpt.type;
45523
+
45524
+ var _range = _slicedToArray(range, 2),
45525
+ min = _range[0],
45526
+ max = _range[1];
45527
+
45528
+ if (truthyNumber(min) && truthyNumber(max)) {
45529
+ labelCount = Math.floor((+max - +min) / interval) + 1;
45530
+ startIndex = type === 'step' ? min : labelAxes.labels.findIndex(function (v) {
45531
+ return v === +min;
45532
+ });
45533
+ endIndex = type === 'step' ? max : labelAxes.labels.findIndex(function (v) {
45534
+ return v === +max;
45535
+ });
45536
+ }
45537
+ }
45538
+
44566
45539
  labelStartPoint = aPos[labelAxes.units.rectStart];
44567
45540
  labelEndPoint = aPos[labelAxes.units.rectEnd];
44568
- labelGap = (labelEndPoint - labelStartPoint) / labelAxes.labels.length;
45541
+ labelGap = (labelEndPoint - labelStartPoint) / labelCount;
44569
45542
  } else {
44570
45543
  graphX = this.axesSteps.x[0];
44571
45544
  lineSeries = seriesList.find(function (sId) {
@@ -44605,7 +45578,12 @@ var element_tip_modules = {
44605
45578
  }
44606
45579
 
44607
45580
  if (labelAxes.labels) {
44608
- var labelCenter = Math.round(labelStartPoint + labelGap * dataIndex[i]);
45581
+ if (dataIndex[i] < startIndex || dataIndex[i] > endIndex) {
45582
+ return;
45583
+ }
45584
+
45585
+ var labelIndex = dataIndex[i] - startIndex;
45586
+ var labelCenter = Math.round(labelStartPoint + labelGap * labelIndex);
44609
45587
  dp = labelCenter + labelGap / 2;
44610
45588
  } else {
44611
45589
  dp = labelPositionCalcFunction(label[i], graphX.graphMin, graphX.graphMax, chartWidth - sizeObj.comboOffset, aPos.x1 + sizeObj.comboOffset / 2);
@@ -44911,6 +45889,7 @@ var element_tip_modules = {
44911
45889
 
44912
45890
 
44913
45891
 
45892
+
44914
45893
 
44915
45894
 
44916
45895
  var chart_core_EvChart = /*#__PURE__*/function () {
@@ -44930,6 +45909,7 @@ var chart_core_EvChart = /*#__PURE__*/function () {
44930
45909
  Object.assign(this, plugins_legend);
44931
45910
  Object.assign(this, plugins_pie);
44932
45911
  Object.assign(this, plugins_title);
45912
+ Object.assign(this, plugins_scrollbar);
44933
45913
  }
44934
45914
 
44935
45915
  if (options.type === 'heatMap' && options.legend.type === 'gradient') {
@@ -44971,6 +45951,14 @@ var chart_core_EvChart = /*#__PURE__*/function () {
44971
45951
  this.isInitLegend = false;
44972
45952
  this.isInitTitle = false;
44973
45953
  this.isInit = false;
45954
+ this.scrollbar = {
45955
+ x: {
45956
+ isInit: false
45957
+ },
45958
+ y: {
45959
+ isInit: false
45960
+ }
45961
+ };
44974
45962
  this.seriesList = {};
44975
45963
  this.lastTip = {
44976
45964
  pos: null,
@@ -45048,6 +46036,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45048
46036
  }, {
45049
46037
  key: "initRect",
45050
46038
  value: function initRect() {
46039
+ var _opt$axesX, _opt$axesX$, _opt$axesX$$scrollbar, _opt$axesY, _opt$axesY$, _opt$axesY$$scrollbar;
46040
+
45051
46041
  var opt = this.options;
45052
46042
 
45053
46043
  if (opt.title.show) {
@@ -45066,6 +46056,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45066
46056
  this.setLegendPosition();
45067
46057
  }
45068
46058
 
46059
+ 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) {
46060
+ this.initScrollbar();
46061
+ }
46062
+
45069
46063
  this.chartRect = this.getChartRect();
45070
46064
  }
45071
46065
  /**
@@ -45078,11 +46072,18 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45078
46072
  }, {
45079
46073
  key: "drawChart",
45080
46074
  value: function drawChart(hitInfo) {
46075
+ var _this$scrollbar, _this$scrollbar$x, _this$scrollbar2, _this$scrollbar2$y;
46076
+
45081
46077
  this.initScale();
45082
46078
  this.labelRange = this.getAxesLabelRange();
45083
46079
  this.axesSteps = this.calculateSteps();
45084
46080
  this.drawAxis(hitInfo);
45085
46081
  this.drawSeries(hitInfo);
46082
+
46083
+ 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) {
46084
+ this.updateScrollbarPosition();
46085
+ }
46086
+
45086
46087
  this.drawTip();
45087
46088
 
45088
46089
  if (this.bufferCanvas) {
@@ -45295,7 +46296,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45295
46296
  value: function createAxes(dir) {
45296
46297
  var axes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
45297
46298
  var ctx = this.bufferCtx;
45298
- var labels = this.options.type === 'heatMap' ? this.data.labels[dir] : this.data.labels;
46299
+ var isHeatMapType = this.options.type === 'heatMap';
46300
+ var labels = isHeatMapType ? this.data.labels[dir] : this.data.labels;
45299
46301
  var options = this.options;
45300
46302
  return axes.map(function (axis) {
45301
46303
  switch (axis.type) {
@@ -45333,10 +46335,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45333
46335
 
45334
46336
  /* eslint-disable max-len */
45335
46337
  var axesXMinMax = this.axesX.map(function (axis, index) {
45336
- return axis.calculateScaleRange(_this3.minMax.x[index], _this3.chartRect);
46338
+ return axis.calculateScaleRange(_this3.minMax.x[index], _this3.scrollbar.x, _this3.chartRect);
45337
46339
  });
45338
46340
  var axesYMinMax = this.axesY.map(function (axis, index) {
45339
- return axis.calculateScaleRange(_this3.minMax.y[index], _this3.chartRect);
46341
+ return axis.calculateScaleRange(_this3.minMax.y[index], _this3.scrollbar.y, _this3.chartRect);
45340
46342
  });
45341
46343
  /* eslint-enable max-len */
45342
46344
 
@@ -45378,6 +46380,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45378
46380
  var range = {
45379
46381
  minValue: _this5.axesRange.x[index].min,
45380
46382
  maxValue: _this5.axesRange.x[index].max,
46383
+ minIndex: _this5.axesRange.x[index].minIndex,
46384
+ maxIndex: _this5.axesRange.x[index].maxIndex,
45381
46385
  minSteps: _this5.labelRange.x[index].min,
45382
46386
  maxSteps: _this5.labelRange.x[index].max
45383
46387
  };
@@ -45387,6 +46391,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45387
46391
  var range = {
45388
46392
  minValue: _this5.axesRange.y[index].min,
45389
46393
  maxValue: _this5.axesRange.y[index].max,
46394
+ minIndex: _this5.axesRange.y[index].minIndex,
46395
+ maxIndex: _this5.axesRange.y[index].maxIndex,
45390
46396
  minSteps: _this5.labelRange.y[index].min,
45391
46397
  maxSteps: _this5.labelRange.y[index].max
45392
46398
  };
@@ -45499,14 +46505,28 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45499
46505
  yAxisTitleHeight = _fontSize + titleMargin;
45500
46506
  }
45501
46507
 
45502
- var horizontalPadding = padding.left + padding.right;
45503
- var verticalPadding = padding.top + padding.bottom + xAxisTitleHeight + yAxisTitleHeight;
46508
+ var xAxisScrollOpt = this.scrollbar.x;
46509
+ var yAxisScrollOpt = this.scrollbar.y;
46510
+ var xAxisScrollHeight = 0;
46511
+
46512
+ if (xAxisScrollOpt !== null && xAxisScrollOpt !== void 0 && xAxisScrollOpt.use) {
46513
+ xAxisScrollHeight = xAxisScrollOpt === null || xAxisScrollOpt === void 0 ? void 0 : xAxisScrollOpt.height;
46514
+ }
46515
+
46516
+ var yAxisScrollWidth = 0;
46517
+
46518
+ if (yAxisScrollOpt !== null && yAxisScrollOpt !== void 0 && yAxisScrollOpt.use) {
46519
+ yAxisScrollWidth = yAxisScrollOpt === null || yAxisScrollOpt === void 0 ? void 0 : yAxisScrollOpt.width;
46520
+ }
46521
+
46522
+ var horizontalPadding = padding.left + padding.right + yAxisScrollWidth;
46523
+ var verticalPadding = padding.top + padding.bottom + xAxisTitleHeight + yAxisTitleHeight + xAxisScrollHeight;
45504
46524
  var chartWidth = width > horizontalPadding ? width - horizontalPadding : width;
45505
46525
  var chartHeight = height > verticalPadding ? height - verticalPadding : height;
45506
46526
  var x1 = padding.left;
45507
- var x2 = Math.max(width - padding.right, x1 + 2);
46527
+ var x2 = Math.max(width - padding.right - yAxisScrollWidth, x1 + 2);
45508
46528
  var y1 = padding.top + yAxisTitleHeight;
45509
- var y2 = Math.max(height - padding.bottom - xAxisTitleHeight, y1 + 2);
46529
+ var y2 = Math.max(height - padding.bottom - xAxisTitleHeight - xAxisScrollHeight, y1 + 2);
45510
46530
  return {
45511
46531
  x1: x1,
45512
46532
  x2: x2,
@@ -45652,6 +46672,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45652
46672
  }, {
45653
46673
  key: "update",
45654
46674
  value: function update(updateInfo) {
46675
+ var _this$updateScrollbar;
46676
+
45655
46677
  var options = this.options;
45656
46678
  var data = this.data.data;
45657
46679
  var labels = this.data.labels;
@@ -45666,6 +46688,7 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45666
46688
  return;
45667
46689
  }
45668
46690
 
46691
+ (_this$updateScrollbar = this.updateScrollbar) === null || _this$updateScrollbar === void 0 ? void 0 : _this$updateScrollbar.call(this);
45669
46692
  this.resetProps();
45670
46693
 
45671
46694
  if (updateSeries) {
@@ -45872,6 +46895,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45872
46895
  this.legendBoxDOM.removeEventListener('click', this.onLegendBoxClick);
45873
46896
  this.legendBoxDOM.removeEventListener('mouseover', this.onLegendBoxOver);
45874
46897
  this.legendBoxDOM.removeEventListener('mouseleave', this.onLegendBoxLeave);
46898
+
46899
+ if (this.options.legend.type === 'gradient') {
46900
+ this.legendBoxDOM.removeEventListener('mousedown', this.onLegendMouseDown);
46901
+ }
45875
46902
  }
45876
46903
 
45877
46904
  if (this.resizeDOM) {