evui 3.3.55 → 3.3.57

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.55\"}");
8048
+ module.exports = JSON.parse("{\"a\":\"3.3.57\"}");
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,6 +36332,7 @@ 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
36338
  var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
@@ -36261,10 +36340,16 @@ var element_bar_Bar = /*#__PURE__*/function () {
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) {
@@ -36297,9 +36382,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
36297
36382
  var selectItemOption = param === null || param === void 0 ? void 0 : (_param$selectItem = param.selectItem) === null || _param$selectItem === void 0 ? void 0 : _param$selectItem.option;
36298
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 : [];
36299
36384
 
36300
- var _ref = (_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 : {},
36301
- selectedItemDataIndex = _ref.dataIndex,
36302
- selectedItemSeriesId = _ref.seriesID;
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;
36303
36388
 
36304
36389
  var isDownplay = false;
36305
36390
 
@@ -36449,6 +36534,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
36449
36534
  }, {
36450
36535
  key: "findGraphRange",
36451
36536
  value: function findGraphRange(offset) {
36537
+ var _this$range;
36538
+
36452
36539
  var xp = offset[0];
36453
36540
  var yp = offset[1];
36454
36541
  var item = {
@@ -36457,8 +36544,19 @@ var element_bar_Bar = /*#__PURE__*/function () {
36457
36544
  color: this.color
36458
36545
  };
36459
36546
  var gdata = this.data;
36547
+ var totalCount = gdata.length;
36548
+
36549
+ var _ref4 = (_this$range = this.range) !== null && _this$range !== void 0 ? _this$range : [],
36550
+ _ref5 = _slicedToArray(_ref4, 2),
36551
+ min = _ref5[0],
36552
+ max = _ref5[1];
36553
+
36554
+ if (truthyNumber(min) && truthyNumber(max)) {
36555
+ totalCount = max - min + 1;
36556
+ }
36557
+
36460
36558
  var s = 0;
36461
- var e = gdata.length - 1;
36559
+ var e = totalCount - 1;
36462
36560
 
36463
36561
  while (s <= e) {
36464
36562
  var m = Math.floor((s + e) / 2);
@@ -36495,6 +36593,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
36495
36593
  }, {
36496
36594
  key: "findGraphRangeCount",
36497
36595
  value: function findGraphRangeCount(offset) {
36596
+ var _this$range2;
36597
+
36498
36598
  var xp = offset[0];
36499
36599
  var yp = offset[1];
36500
36600
  var item = {
@@ -36503,8 +36603,19 @@ var element_bar_Bar = /*#__PURE__*/function () {
36503
36603
  color: this.color
36504
36604
  };
36505
36605
  var gdata = this.data;
36606
+ var totalCount = gdata.length;
36607
+
36608
+ var _ref6 = (_this$range2 = this.range) !== null && _this$range2 !== void 0 ? _this$range2 : [],
36609
+ _ref7 = _slicedToArray(_ref6, 2),
36610
+ min = _ref7[0],
36611
+ max = _ref7[1];
36612
+
36613
+ if (truthyNumber(min) && truthyNumber(max)) {
36614
+ totalCount = max - min + 1;
36615
+ }
36616
+
36506
36617
  var s = 0;
36507
- var e = gdata.length - 1;
36618
+ var e = totalCount - 1;
36508
36619
 
36509
36620
  while (s <= e) {
36510
36621
  var m = Math.floor((s + e) / 2);
@@ -36542,11 +36653,11 @@ var element_bar_Bar = /*#__PURE__*/function () {
36542
36653
 
36543
36654
  }, {
36544
36655
  key: "drawValueLabels",
36545
- value: function drawValueLabels(_ref2) {
36546
- var context = _ref2.context,
36547
- data = _ref2.data,
36548
- positions = _ref2.positions,
36549
- isHighlight = _ref2.isHighlight;
36656
+ value: function drawValueLabels(_ref8) {
36657
+ var context = _ref8.context,
36658
+ data = _ref8.data,
36659
+ positions = _ref8.positions,
36660
+ isHighlight = _ref8.isHighlight;
36550
36661
  var isHorizontal = this.isHorizontal;
36551
36662
  var _this$showValue = this.showValue,
36552
36663
  fontSize = _this$showValue.fontSize,
@@ -36572,9 +36683,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
36572
36683
  if (isStacked) {
36573
36684
  value = data.o;
36574
36685
  } else {
36575
- var _ref3;
36686
+ var _ref9;
36576
36687
 
36577
- value = (_ref3 = isHorizontal ? data.x : data.y) !== null && _ref3 !== void 0 ? _ref3 : '';
36688
+ value = (_ref9 = isHorizontal ? data.x : data.y) !== null && _ref9 !== void 0 ? _ref9 : '';
36578
36689
  }
36579
36690
 
36580
36691
  var formattedTxt;
@@ -36663,9 +36774,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
36663
36774
  }
36664
36775
  }, {
36665
36776
  key: "drawBar",
36666
- value: function drawBar(_ref4) {
36667
- var ctx = _ref4.ctx,
36668
- positions = _ref4.positions;
36777
+ value: function drawBar(_ref10) {
36778
+ var ctx = _ref10.ctx,
36779
+ positions = _ref10.positions;
36669
36780
  var isHorizontal = this.isHorizontal;
36670
36781
  var isStackBar = ('stackIndex' in this);
36671
36782
  var isBorderRadius = this.borderRadius && this.borderRadius > 0;
@@ -37457,6 +37568,10 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37457
37568
  value: function drawItem(ctx, x, y, w, h, borderOpt) {
37458
37569
  ctx.beginPath();
37459
37570
 
37571
+ if (w < 0 || h < 0) {
37572
+ return;
37573
+ }
37574
+
37460
37575
  if (borderOpt.show) {
37461
37576
  var radius = borderOpt.radius;
37462
37577
 
@@ -37488,7 +37603,7 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37488
37603
  }
37489
37604
  }, {
37490
37605
  key: "calculateXY",
37491
- value: function calculateXY(dir, value, startPoint) {
37606
+ value: function calculateXY(dir, value, startPoint, minMax) {
37492
37607
  var point = null;
37493
37608
 
37494
37609
  if (this.labels[dir] && this.labels[dir].length) {
@@ -37496,17 +37611,39 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37496
37611
  return label === value;
37497
37612
  });
37498
37613
 
37499
- if (index > -1) {
37500
- point = dir === 'x' ? startPoint + this.size.w * index : startPoint - this.size.h * (index + 1);
37501
- } else {
37502
- var timeIndex = this.labels[dir].findIndex(function (label) {
37503
- return new Date(label).getTime() === new Date(value).getTime();
37614
+ if (index === -1) {
37615
+ index = this.labels[dir].findIndex(function (label) {
37616
+ return +label === +value;
37504
37617
  });
37618
+ }
37505
37619
 
37506
- if (timeIndex > -1) {
37507
- point = dir === 'x' ? startPoint + this.size.w * timeIndex : startPoint - this.size.h * (timeIndex + 1);
37620
+ var minIndex = minMax.minIndex,
37621
+ maxIndex = minMax.maxIndex,
37622
+ graphMin = minMax.graphMin,
37623
+ graphMax = minMax.graphMax;
37624
+
37625
+ if (truthyNumber(maxIndex) && index > maxIndex) {
37626
+ return null;
37627
+ }
37628
+
37629
+ if (truthyNumber(minIndex) && index < minIndex) {
37630
+ return null;
37631
+ }
37632
+
37633
+ if (checkNullAndUndefined(minIndex) && checkNullAndUndefined(maxIndex)) {
37634
+ if (value < graphMin || value > graphMax) {
37635
+ return null;
37508
37636
  }
37509
37637
  }
37638
+
37639
+ var startIndex = minIndex !== null && minIndex !== void 0 ? minIndex : this.labels[dir].findIndex(function (label) {
37640
+ return +label === +graphMin;
37641
+ });
37642
+
37643
+ if (index > -1) {
37644
+ index -= startIndex > -1 ? startIndex : 0;
37645
+ point = dir === 'x' ? startPoint + this.size.w * index : startPoint - this.size.h * (index + 1);
37646
+ }
37510
37647
  }
37511
37648
 
37512
37649
  return point;
@@ -37526,13 +37663,16 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37526
37663
  overlayCtx = param.overlayCtx,
37527
37664
  selectLabel = param.selectLabel,
37528
37665
  legendHitInfo = param.legendHitInfo,
37529
- selectItem = param.selectItem;
37666
+ selectItem = param.selectItem,
37667
+ axesSteps = param.axesSteps;
37530
37668
  var xArea = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
37531
37669
  var yArea = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
37532
37670
  var xsp = chartRect.x1 + labelOffset.left;
37533
37671
  var ysp = chartRect.y2 - labelOffset.bottom;
37534
- this.size.w = xArea / this.labels.x.length;
37535
- this.size.h = yArea / this.labels.y.length;
37672
+ var minmaxX = axesSteps.x[this.xAxisIndex];
37673
+ var minmaxY = axesSteps.y[this.yAxisIndex];
37674
+ this.size.w = xArea / minmaxX.oriSteps;
37675
+ this.size.h = yArea / minmaxY.oriSteps;
37536
37676
 
37537
37677
  var getOpacity = function getOpacity(item, opacity, index) {
37538
37678
  if (!legendHitInfo) {
@@ -37562,9 +37702,10 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37562
37702
 
37563
37703
  this.data.forEach(function (item, index) {
37564
37704
  var axisLineWidth = 1;
37565
- var xp = _this2.calculateXY('x', item.x, xsp) + axisLineWidth;
37566
37705
 
37567
- var yp = _this2.calculateXY('y', item.y, ysp);
37706
+ var xp = _this2.calculateXY('x', item.x, xsp, minmaxX);
37707
+
37708
+ var yp = _this2.calculateXY('y', item.y, ysp, minmaxY);
37568
37709
 
37569
37710
  var w = _this2.size.w;
37570
37711
  var h = _this2.size.h;
@@ -37603,14 +37744,19 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37603
37744
  color = _borderOpt.color,
37604
37745
  lineWidth = _borderOpt.lineWidth,
37605
37746
  borderOpacity = _borderOpt.opacity;
37606
- ctx.strokeStyle = helpers_util.colorStringToRgba(color, itemOpacity === 1 ? borderOpacity : itemOpacity);
37607
- ctx.lineWidth = lineWidth;
37608
- xp += lineWidth * 0.5;
37609
- yp += lineWidth * 0.5;
37610
- w -= lineWidth;
37611
- h -= lineWidth;
37747
+ ctx.strokeStyle = helpers_util.colorStringToRgba(color, itemOpacity === 1 ? borderOpacity : itemOpacity); // item 사이즈 보다 border 선 굵기가 큰 경우 lineWidth props 무시
37748
+
37749
+ if (lineWidth < w && lineWidth < h) {
37750
+ ctx.lineWidth = lineWidth;
37751
+ xp += lineWidth * 0.5;
37752
+ yp += lineWidth * 0.5;
37753
+ w -= lineWidth;
37754
+ h -= lineWidth;
37755
+ }
37612
37756
  }
37613
37757
 
37758
+ xp += axisLineWidth;
37759
+
37614
37760
  _this2.drawItem(ctx, xp, yp, w, h, borderOpt);
37615
37761
 
37616
37762
  ctx.restore();
@@ -37807,10 +37953,14 @@ var element_heatmap_HeatMap = /*#__PURE__*/function () {
37807
37953
 
37808
37954
  if (this.stroke.show) {
37809
37955
  var lineWidth = this.stroke.lineWidth;
37810
- x += lineWidth * 0.5;
37811
- y += lineWidth * 0.5;
37812
- w -= lineWidth;
37813
- h -= lineWidth;
37956
+
37957
+ if (lineWidth < w && lineWidth < h) {
37958
+ ctx.lineWidth = lineWidth;
37959
+ x += lineWidth * 0.5;
37960
+ y += lineWidth * 0.5;
37961
+ w -= lineWidth;
37962
+ h -= lineWidth;
37963
+ }
37814
37964
  }
37815
37965
 
37816
37966
  this.drawItem(ctx, x - 0.5, y - 0.5, w + 1, h + 1, this.stroke);
@@ -38169,12 +38319,12 @@ var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
38169
38319
 
38170
38320
 
38171
38321
  var scale_Scale = /*#__PURE__*/function () {
38172
- function Scale(type, opt, ctx, options) {
38322
+ function Scale(type, axisOpt, ctx, options) {
38173
38323
  var _this = this;
38174
38324
 
38175
38325
  _classCallCheck(this, Scale);
38176
38326
 
38177
- var merged = lodash_es_defaultsDeep({}, opt, AXIS_OPTION);
38327
+ var merged = lodash_es_defaultsDeep({}, axisOpt, AXIS_OPTION);
38178
38328
  Object.keys(merged).forEach(function (key) {
38179
38329
  _this[key] = merged[key];
38180
38330
  });
@@ -38226,21 +38376,21 @@ var scale_Scale = /*#__PURE__*/function () {
38226
38376
  /**
38227
38377
  * Calculate min/max value, label and size information for axis
38228
38378
  * @param {object} minMax min/max information
38379
+ * @param {object} scrollbarOpt scrollbar option
38229
38380
  *
38230
38381
  * @returns {object} min/max value and label
38231
38382
  */
38232
38383
 
38233
38384
  }, {
38234
38385
  key: "calculateScaleRange",
38235
- value: function calculateScaleRange(minMax) {
38236
- var _this$range;
38237
-
38386
+ value: function calculateScaleRange(minMax, scrollbarOpt) {
38238
38387
  var maxValue;
38239
38388
  var minValue;
38389
+ var range = scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use ? scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range : this.range;
38240
38390
 
38241
- if (((_this$range = this.range) === null || _this$range === void 0 ? void 0 : _this$range.length) === 2) {
38242
- maxValue = this.range[1];
38243
- minValue = this.range[0];
38391
+ if ((range === null || range === void 0 ? void 0 : range.length) === 2) {
38392
+ maxValue = range[1] > +minMax.max ? +minMax.max : range[1];
38393
+ minValue = range[0] < +minMax.min ? +minMax.min : range[0];
38244
38394
  } else {
38245
38395
  maxValue = minMax.max;
38246
38396
  minValue = minMax.min;
@@ -39353,23 +39503,26 @@ var scale_logarithmic_LogarithmicScale = /*#__PURE__*/function (_Scale) {
39353
39503
 
39354
39504
 
39355
39505
 
39506
+
39507
+
39356
39508
  var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39357
39509
  _inherits(StepScale, _Scale);
39358
39510
 
39359
39511
  var _super = _createSuper(StepScale);
39360
39512
 
39361
- function StepScale(type, opt, ctx, labels, options) {
39513
+ function StepScale(type, axisOpt, ctx, labels, options) {
39362
39514
  var _this;
39363
39515
 
39364
39516
  _classCallCheck(this, StepScale);
39365
39517
 
39366
- _this = _super.call(this, type, opt, ctx, options);
39518
+ _this = _super.call(this, type, axisOpt, ctx, options);
39367
39519
  _this.labels = labels;
39368
39520
  return _this;
39369
39521
  }
39370
39522
  /**
39371
39523
  * Calculate min/max value, label and size information for step scale
39372
39524
  * @param {object} minMax min/max information (unused on step scale)
39525
+ * @param {object} scrollbarOpt scroll bar option
39373
39526
  * @param {object} chartRect chart size information
39374
39527
  *
39375
39528
  * @returns {object} min/max value and label
@@ -39378,14 +39531,35 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39378
39531
 
39379
39532
  _createClass(StepScale, [{
39380
39533
  key: "calculateScaleRange",
39381
- value: function calculateScaleRange(minMax, chartRect) {
39534
+ value: function calculateScaleRange(minMax, scrollbarOpt, chartRect) {
39382
39535
  var stepMinMax = this.labelStyle.alignToGridLine ? minMax : helpers_util.getStringMinMax(this.labels);
39383
39536
  var maxValue = stepMinMax.max;
39384
39537
  var minValue = stepMinMax.min;
39385
- var maxWidth = chartRect.chartWidth / (this.labels.length + 2);
39538
+ var minIndex = 0;
39539
+ var maxIndex = this.labels.length - 1;
39540
+ var labelCount = this.labels.length;
39541
+ var range = scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use ? scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range : this.range;
39542
+
39543
+ if (range !== null && range !== void 0 && range.length) {
39544
+ var _range = _slicedToArray(range, 2),
39545
+ min = _range[0],
39546
+ max = _range[1];
39547
+
39548
+ if (truthyNumber(min) && truthyNumber(max)) {
39549
+ minIndex = min < minIndex ? minIndex : min;
39550
+ maxIndex = max > maxIndex ? maxIndex : max;
39551
+ maxValue = this.labels[maxIndex];
39552
+ minValue = this.labels[minIndex];
39553
+ labelCount = maxIndex - minIndex + 1;
39554
+ }
39555
+ }
39556
+
39557
+ var maxWidth = chartRect.chartWidth / (labelCount + 2);
39386
39558
  return {
39387
39559
  min: minValue,
39388
39560
  max: maxValue,
39561
+ minIndex: minIndex,
39562
+ maxIndex: maxIndex,
39389
39563
  minLabel: this.getLabelFormat(minValue, maxWidth),
39390
39564
  maxLabel: this.getLabelFormat(maxValue, maxWidth),
39391
39565
  size: helpers_util.calcTextSize(this.getLabelFormat(maxValue, maxWidth), helpers_util.getLabelStyle(this.labelStyle))
@@ -39401,30 +39575,39 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39401
39575
  }, {
39402
39576
  key: "calculateSteps",
39403
39577
  value: function calculateSteps(range) {
39404
- var numberOfSteps = this.labels.length;
39578
+ var minValue = range.minValue,
39579
+ maxValue = range.maxValue,
39580
+ minIndex = range.minIndex,
39581
+ maxIndex = range.maxIndex,
39582
+ maxSteps = range.maxSteps;
39583
+ var numberOfSteps = maxIndex - minIndex + 1;
39405
39584
  var interval = 1;
39585
+ var oriSteps = numberOfSteps;
39406
39586
  var isNumbersArray = this.labels.every(function (label) {
39407
39587
  return !isNaN(label);
39408
39588
  });
39409
39589
 
39410
39590
  if (this.labelStyle.alignToGridLine && isNumbersArray) {
39411
- var maxSteps = range.maxSteps;
39412
-
39413
39591
  if (maxSteps > 2) {
39414
39592
  while (numberOfSteps > maxSteps * 2) {
39415
39593
  interval *= 2;
39416
39594
  numberOfSteps = Math.round(numberOfSteps / interval);
39417
39595
  }
39418
39596
  } else {
39419
- interval = this.labels.length;
39597
+ interval = oriSteps;
39420
39598
  }
39599
+ } else if (numberOfSteps > maxSteps * 2) {
39600
+ interval *= 2;
39421
39601
  }
39422
39602
 
39423
39603
  return {
39604
+ oriSteps: oriSteps,
39424
39605
  steps: numberOfSteps,
39425
39606
  interval: interval,
39426
- graphMin: range.minValue,
39427
- graphMax: range.maxValue
39607
+ graphMin: minValue,
39608
+ graphMax: maxValue,
39609
+ minIndex: minIndex,
39610
+ maxIndex: maxIndex
39428
39611
  };
39429
39612
  }
39430
39613
  /**
@@ -39454,14 +39637,14 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39454
39637
  y1: chartRect.y1 + labelOffset.top,
39455
39638
  y2: chartRect.y2 - labelOffset.bottom
39456
39639
  };
39457
- var oriSteps = this.labels.length;
39458
39640
  var steps = stepInfo.steps;
39459
39641
  var count = stepInfo.interval;
39642
+ var startIndex = stepInfo.minIndex;
39460
39643
  var startPoint = aPos[this.units.rectStart];
39461
39644
  var endPoint = aPos[this.units.rectEnd];
39462
39645
  var offsetPoint = aPos[this.units.rectOffset(this.position)];
39463
39646
  var offsetCounterPoint = aPos[this.units.rectOffsetCounter(this.position)];
39464
- var maxWidth = chartRect.chartWidth / (this.labels.length + 2);
39647
+ var maxWidth = chartRect.chartWidth / (steps + 2);
39465
39648
  this.drawAxisTitle(chartRect, labelOffset);
39466
39649
 
39467
39650
  if ((_this$labelStyle = this.labelStyle) !== null && _this$labelStyle !== void 0 && _this$labelStyle.show) {
@@ -39496,7 +39679,7 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39496
39679
  return;
39497
39680
  }
39498
39681
 
39499
- var labelGap = (endPoint - startPoint) / labels.length;
39682
+ var labelGap = (endPoint - startPoint) / steps;
39500
39683
  var alignToGridLine = this.labelStyle.alignToGridLine;
39501
39684
  var labelCenter = null;
39502
39685
  var linePosition = null;
@@ -39506,10 +39689,11 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39506
39689
  var labelPoint;
39507
39690
  var index;
39508
39691
 
39509
- for (index = 0; index < oriSteps; index += count) {
39692
+ for (index = 0; index < steps; index += count) {
39510
39693
  var _selectedLabelInfo$da, _selectedLabelInfo$da2;
39511
39694
 
39512
- var item = this.labels[index];
39695
+ var labelIndex = startIndex + index;
39696
+ var item = this.labels[labelIndex];
39513
39697
  labelCenter = Math.round(startPoint + labelGap * index);
39514
39698
  linePosition = labelCenter + aliasPixel;
39515
39699
  labelText = this.getLabelFormat(item, maxWidth);
@@ -39525,7 +39709,7 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39525
39709
  targetAxis = horizontal ? 'y' : 'x';
39526
39710
  }
39527
39711
 
39528
- 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));
39712
+ 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));
39529
39713
  var labelColor = this.labelStyle.color;
39530
39714
  var defaultOpacity = 1;
39531
39715
 
@@ -39744,17 +39928,18 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
39744
39928
 
39745
39929
 
39746
39930
 
39931
+
39747
39932
  var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39748
39933
  _inherits(TimeCategoryScale, _Scale);
39749
39934
 
39750
39935
  var _super = _createSuper(TimeCategoryScale);
39751
39936
 
39752
- function TimeCategoryScale(type, opt, ctx, labels, options) {
39937
+ function TimeCategoryScale(type, axisOpt, ctx, labels, options) {
39753
39938
  var _this;
39754
39939
 
39755
39940
  _classCallCheck(this, TimeCategoryScale);
39756
39941
 
39757
- _this = _super.call(this, type, opt, ctx);
39942
+ _this = _super.call(this, type, axisOpt, ctx);
39758
39943
  _this.labels = labels;
39759
39944
  _this.options = options;
39760
39945
  return _this;
@@ -39870,6 +40055,8 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39870
40055
  }, {
39871
40056
  key: "draw",
39872
40057
  value: function draw(chartRect, labelOffset, stepInfo, hitInfo, selectLabelInfo) {
40058
+ var _this2 = this;
40059
+
39873
40060
  var ctx = this.ctx;
39874
40061
  var labels = this.labels;
39875
40062
  var aPos = {
@@ -39922,7 +40109,7 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39922
40109
  }
39923
40110
 
39924
40111
  var alignToGridLine = this.labelStyle.alignToGridLine;
39925
- var graphGap = (endPoint - startPoint) / (labels.length || 1);
40112
+ var graphGap = (endPoint - startPoint) / (oriSteps || 1);
39926
40113
 
39927
40114
  if (this.categoryMode && !alignToGridLine) {
39928
40115
  startPoint += Math.ceil(graphGap / 2) - 2;
@@ -39935,15 +40122,18 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39935
40122
  ctx.strokeStyle = this.gridLineColor;
39936
40123
  var labelText;
39937
40124
  var labelPoint;
40125
+ var ix;
39938
40126
 
39939
- for (var ix = 0; ix < oriSteps; ix += count) {
39940
- var _this$options, _this$options$selectL, _this$options2, _this$options2$select, _selectLabelInfo$data, _selectLabelInfo$data2;
40127
+ for (ix = 0; ix < oriSteps; ix += count) {
40128
+ var _this$options, _this$options$selectL, _this$options2, _this$options2$select, _selectLabelInfo$data;
39941
40129
 
39942
40130
  ticks[ix] = axisMin + ix * stepValue;
39943
40131
  labelCenter = Math.round(startPoint + graphGap * ix);
39944
40132
  linePosition = labelCenter + aliasPixel;
39945
40133
  labelText = this.getLabelFormat(Math.min(axisMax, ticks[ix]));
39946
- 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));
40134
+ 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) {
40135
+ return _this2.getLabelFormat(Math.min(axisMax, t));
40136
+ }).includes(labelText));
39947
40137
  var labelColor = this.labelStyle.color;
39948
40138
  var defaultOpacity = 1;
39949
40139
 
@@ -39998,10 +40188,10 @@ var scale_time_category_TimeCategoryScale = /*#__PURE__*/function (_Scale) {
39998
40188
  ctx.stroke();
39999
40189
  }
40000
40190
 
40001
- if (this.categoryMode && alignToGridLine && count * steps === oriSteps) {
40191
+ if (this.categoryMode && alignToGridLine && ix * count === oriSteps) {
40002
40192
  var diffTime = dayjs_min_default()(labels[1]).diff(dayjs_min_default()(labels[0]));
40003
- var labelLastText = this.getLabelFormat(dayjs_min_default()(labels[labels.length - 1] + diffTime));
40004
- labelCenter = Math.round(startPoint + graphGap * labels.length);
40193
+ var labelLastText = this.getLabelFormat(dayjs_min_default()(ticks[oriSteps - 1] + diffTime));
40194
+ labelCenter = Math.round(startPoint + graphGap * oriSteps);
40005
40195
  linePosition = labelCenter + aliasPixel;
40006
40196
 
40007
40197
  if (this.type === 'x') {
@@ -42013,6 +42203,711 @@ var plugins_legend_gradient_modules = {
42013
42203
  }
42014
42204
  };
42015
42205
  /* harmony default export */ var plugins_legend_gradient = (plugins_legend_gradient_modules);
42206
+ // CONCATENATED MODULE: ./src/components/chart/plugins/plugins.scrollbar.js
42207
+
42208
+
42209
+
42210
+
42211
+
42212
+
42213
+
42214
+
42215
+
42216
+
42217
+
42218
+ var plugins_scrollbar_module = {
42219
+ /**
42220
+ * init scrollbar information
42221
+ */
42222
+ initScrollbar: function initScrollbar() {
42223
+ var _this$options$axesX, _this$options$axesX$, _this$options$axesX$$, _this$options$axesY, _this$options$axesY$, _this$options$axesY$$;
42224
+
42225
+ 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) {
42226
+ this.initScrollbarInfo(this.options.axesX, 'x');
42227
+ }
42228
+
42229
+ 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) {
42230
+ this.initScrollbarInfo(this.options.axesY, 'y');
42231
+ }
42232
+ },
42233
+
42234
+ /**
42235
+ * init scrollbar information with axis information
42236
+ * @param axisOpt axis option
42237
+ * @param dir axis direction (x | y)
42238
+ */
42239
+ initScrollbarInfo: function initScrollbarInfo(axisOpt, dir) {
42240
+ var scrollbarOpt = this.scrollbar[dir];
42241
+
42242
+ if (!scrollbarOpt.isInit) {
42243
+ var _axisOpt$, _axisOpt$2, _axisOpt$3;
42244
+
42245
+ 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);
42246
+ Object.keys(merged).forEach(function (key) {
42247
+ scrollbarOpt[key] = merged[key];
42248
+ });
42249
+ scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$2 = axisOpt[0]) === null || _axisOpt$2 === void 0 ? void 0 : _axisOpt$2.type;
42250
+ scrollbarOpt.range = (axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$3 = axisOpt[0]) === null || _axisOpt$3 === void 0 ? void 0 : _axisOpt$3.range) || null;
42251
+ this.createScrollbarLayout(dir);
42252
+ this.createScrollbar(dir);
42253
+ this.createScrollEvent(dir);
42254
+ scrollbarOpt.isInit = true;
42255
+ }
42256
+ },
42257
+ checkValidRange: function checkValidRange(dir) {
42258
+ var _scrollbarOpt$range;
42259
+
42260
+ var scrollbarOpt = this.scrollbar[dir];
42261
+ var axesType = scrollbarOpt.type;
42262
+
42263
+ if ((_scrollbarOpt$range = scrollbarOpt.range) !== null && _scrollbarOpt$range !== void 0 && _scrollbarOpt$range.length) {
42264
+ var _scrollbarOpt$range2 = _slicedToArray(scrollbarOpt.range, 2),
42265
+ min = _scrollbarOpt$range2[0],
42266
+ max = _scrollbarOpt$range2[1];
42267
+
42268
+ if (!(truthyNumber(min) && truthyNumber(max))) {
42269
+ return true;
42270
+ }
42271
+
42272
+ if (axesType === 'step') {
42273
+ var labels = this.options.type === 'heatMap' ? this.data.labels[dir] : this.data.labels;
42274
+
42275
+ if (min < 0 || max > labels.length - 1) {
42276
+ return true;
42277
+ }
42278
+ } else {
42279
+ var _this$minMax$dir;
42280
+
42281
+ var minMax = (_this$minMax$dir = this.minMax[dir]) === null || _this$minMax$dir === void 0 ? void 0 : _this$minMax$dir[0];
42282
+
42283
+ if (+min < +minMax.min || +max > +minMax.max) {
42284
+ return true;
42285
+ }
42286
+ }
42287
+ }
42288
+
42289
+ return false;
42290
+ },
42291
+
42292
+ /**
42293
+ * update scrollbar information
42294
+ */
42295
+ updateScrollbar: function updateScrollbar(updateData) {
42296
+ this.updateScrollbarInfo('x', updateData);
42297
+ this.updateScrollbarInfo('y', updateData);
42298
+ },
42299
+
42300
+ /**
42301
+ * Updated scrollbar information with updated axis information
42302
+ * @param dir axis direction (x | y)
42303
+ * @param updateData is update data
42304
+ */
42305
+ updateScrollbarInfo: function updateScrollbarInfo(dir, updateData) {
42306
+ var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$4, _newOpt$0$scrollbar2;
42307
+
42308
+ var _this$options = this.options,
42309
+ axesX = _this$options.axesX,
42310
+ axesY = _this$options.axesY;
42311
+ var newOpt = dir === 'x' ? axesX : axesY;
42312
+
42313
+ 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) {
42314
+ this.initScrollbarInfo(newOpt, dir);
42315
+ return;
42316
+ } 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)) {
42317
+ this.destroyScrollbar(dir);
42318
+ return;
42319
+ }
42320
+
42321
+ var axisOpt = dir === 'x' ? this.axesX : this.axesY;
42322
+ 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);
42323
+
42324
+ if (isUpdateAxesRange || updateData) {
42325
+ var _newOpt$5;
42326
+
42327
+ 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;
42328
+ }
42329
+
42330
+ 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);
42331
+ },
42332
+
42333
+ /**
42334
+ * update scrollbar position
42335
+ */
42336
+ updateScrollbarPosition: function updateScrollbarPosition() {
42337
+ var _this$scrollbar$x, _this$scrollbar$x2, _this$scrollbar$y, _this$scrollbar$y2;
42338
+
42339
+ 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) {
42340
+ if (this.checkValidRange('x')) {
42341
+ return;
42342
+ }
42343
+
42344
+ this.setScrollbarPosition('x');
42345
+ }
42346
+
42347
+ 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) {
42348
+ if (this.checkValidRange('y')) {
42349
+ return;
42350
+ }
42351
+
42352
+ this.setScrollbarPosition('y');
42353
+ }
42354
+ },
42355
+
42356
+ /**
42357
+ * create scrollbar layout
42358
+ * @param dir axis direction ('x' | 'y')
42359
+ */
42360
+ createScrollbarLayout: function createScrollbarLayout(dir) {
42361
+ var scrollbarOpt = this.scrollbar[dir];
42362
+ scrollbarOpt.dom = document.createElement('div');
42363
+ scrollbarOpt.dom.className = 'ev-chart-scrollbar';
42364
+ scrollbarOpt.dom.dataset.type = 'scrollbar';
42365
+ var containerDOM = document.createElement('div');
42366
+ containerDOM.className = 'ev-chart-scrollbar-container';
42367
+ containerDOM.dataset.type = dir;
42368
+ scrollbarOpt.dom.appendChild(containerDOM);
42369
+ this.wrapperDOM.appendChild(scrollbarOpt.dom);
42370
+ },
42371
+
42372
+ /**
42373
+ * create scrollbar
42374
+ * @param dir axis direction ('x' | 'y')
42375
+ */
42376
+ createScrollbar: function createScrollbar(dir) {
42377
+ var scrollbarOpt = this.scrollbar[dir];
42378
+ var containerDOM = scrollbarOpt.dom.children[0];
42379
+ this.createScrollbarTrack(containerDOM);
42380
+ this.createScrollbarThumb(containerDOM);
42381
+
42382
+ if (scrollbarOpt.showButton) {
42383
+ this.createScrollbarButton(containerDOM);
42384
+ }
42385
+ },
42386
+
42387
+ /**
42388
+ * create scrollbar track
42389
+ * @param containerDOM
42390
+ */
42391
+ createScrollbarTrack: function createScrollbarTrack(containerDOM) {
42392
+ var trackDOM = document.createElement('div');
42393
+ trackDOM.className = 'ev-chart-scrollbar-track';
42394
+ trackDOM.dataset.type = 'track';
42395
+ containerDOM.appendChild(trackDOM);
42396
+ },
42397
+
42398
+ /**
42399
+ * create scrollbar thumb
42400
+ * @param containerDOM
42401
+ */
42402
+ createScrollbarThumb: function createScrollbarThumb(containerDOM) {
42403
+ var thumbDOM = document.createElement('div');
42404
+ thumbDOM.className = 'ev-chart-scrollbar-thumb';
42405
+ thumbDOM.dataset.type = 'thumb';
42406
+ containerDOM.appendChild(thumbDOM);
42407
+ },
42408
+
42409
+ /**
42410
+ * create scrollbar up, down button
42411
+ * @param containerDOM
42412
+ */
42413
+ createScrollbarButton: function createScrollbarButton(containerDOM) {
42414
+ var upBtnDOM = document.createElement('div');
42415
+ upBtnDOM.className = 'ev-chart-scrollbar-button ev-chart-scrollbar-button-up';
42416
+ upBtnDOM.dataset.type = 'button';
42417
+ var iconUpBtn = document.createElement('i');
42418
+ iconUpBtn.className = 'ev-icon ev-icon-triangle-up ev-chart-scrollbar-button-icon';
42419
+ iconUpBtn.dataset.type = 'button-icon';
42420
+ upBtnDOM.appendChild(iconUpBtn);
42421
+ var downBtnDOM = document.createElement('div');
42422
+ downBtnDOM.className = 'ev-chart-scrollbar-button ev-chart-scrollbar-button-down';
42423
+ downBtnDOM.dataset.type = 'button';
42424
+ var iconDownBtn = document.createElement('i');
42425
+ iconDownBtn.className = 'ev-icon ev-icon-triangle-down ev-chart-scrollbar-button-icon';
42426
+ iconDownBtn.dataset.type = 'button-icon';
42427
+ downBtnDOM.appendChild(iconDownBtn);
42428
+ containerDOM.appendChild(upBtnDOM);
42429
+ containerDOM.appendChild(downBtnDOM);
42430
+ },
42431
+
42432
+ /**
42433
+ * set scrollbar position
42434
+ * @param dir axis direction ('x' | 'y')
42435
+ */
42436
+ setScrollbarPosition: function setScrollbarPosition(dir) {
42437
+ var _this$options$title, _this$options$title2;
42438
+
42439
+ var scrollbarOpt = this.scrollbar[dir];
42440
+
42441
+ if (!scrollbarOpt.use || !scrollbarOpt.range) {
42442
+ return;
42443
+ }
42444
+
42445
+ var scrollbarDOM = scrollbarOpt.dom;
42446
+ var chartRect = this.chartRect;
42447
+ var labelOffset = this.labelOffset;
42448
+ var aPos = {
42449
+ x1: chartRect.x1 + labelOffset.left,
42450
+ x2: chartRect.x2 - labelOffset.right,
42451
+ y1: chartRect.y1 + labelOffset.top,
42452
+ y2: chartRect.y2 - labelOffset.bottom
42453
+ };
42454
+ 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;
42455
+ var isXScroll = dir === 'x';
42456
+ var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
42457
+ var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
42458
+ var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
42459
+ var trackSize = fullSize - buttonSize * 2;
42460
+ var thumbSize = this.getScrollbarThumbSize(dir, trackSize);
42461
+ var scrollbarStyle = 'display: block;';
42462
+ var scrollbarTrackStyle;
42463
+ var scrollbarThumbStyle;
42464
+ var upBtnStyle;
42465
+ var downBtnStyle;
42466
+ var commonBtnStyle = "width:".concat(buttonSize, "px;height:").concat(buttonSize, "px;");
42467
+
42468
+ if (isXScroll) {
42469
+ scrollbarStyle = "top: ".concat(chartRect.y2 + titleHeight + labelOffset.top, "px;");
42470
+ scrollbarStyle += "left: ".concat(aPos.x1, "px;");
42471
+ scrollbarStyle += "width: ".concat(fullSize, "px;");
42472
+ scrollbarStyle += " height: ".concat(scrollHeight, "px;");
42473
+ scrollbarTrackStyle = 'top: 0;';
42474
+ scrollbarTrackStyle += "left: ".concat(buttonSize, "px;");
42475
+ scrollbarTrackStyle += "width: ".concat(trackSize, "px;");
42476
+ scrollbarTrackStyle += 'height: 100%;';
42477
+ scrollbarThumbStyle = "width: ".concat(thumbSize.size, "px;");
42478
+ scrollbarThumbStyle += 'height: 100%;';
42479
+ scrollbarThumbStyle += "left: ".concat(thumbSize.position + buttonSize, "px");
42480
+ commonBtnStyle += 'transform:rotate(90deg);top: 0;';
42481
+ upBtnStyle = "".concat(commonBtnStyle, "right:0;");
42482
+ downBtnStyle = "".concat(commonBtnStyle, "left:0;");
42483
+ } else {
42484
+ scrollbarStyle = "top: ".concat(aPos.y1 + titleHeight, "px;");
42485
+ scrollbarStyle += "left: ".concat(aPos.x2 + 10, "px;");
42486
+ scrollbarStyle += "width: ".concat(scrollHeight, "px;");
42487
+ scrollbarStyle += "height: ".concat(fullSize, "px;");
42488
+ scrollbarTrackStyle = "top: ".concat(buttonSize, "px;");
42489
+ scrollbarTrackStyle += 'left: 0;';
42490
+ scrollbarTrackStyle += 'width: 100%;';
42491
+ scrollbarTrackStyle += "height: ".concat(trackSize, "px;");
42492
+ scrollbarThumbStyle = 'width: 100%;';
42493
+ scrollbarThumbStyle += "height: ".concat(thumbSize.size, "px;");
42494
+ scrollbarThumbStyle += "bottom: ".concat(thumbSize.position + buttonSize, "px");
42495
+ commonBtnStyle += 'left:0;';
42496
+ upBtnStyle = "".concat(commonBtnStyle, "top: 0;");
42497
+ downBtnStyle = "".concat(commonBtnStyle, "bottom: 0;");
42498
+ }
42499
+
42500
+ scrollbarDOM.style.cssText = scrollbarStyle;
42501
+ var scrollbarTrackDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-track');
42502
+ scrollbarTrackDOM[0].style.cssText = scrollbarTrackStyle;
42503
+ scrollbarTrackDOM[0].style.backgroundColor = scrollbarOpt.background;
42504
+ var scrollbarThumbDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42505
+ scrollbarThumbDOM[0].style.cssText = scrollbarThumbStyle;
42506
+ scrollbarThumbDOM[0].style.backgroundColor = scrollbarOpt.thumbStyle.background;
42507
+ scrollbarThumbDOM[0].style.borderRadius = "".concat(scrollbarOpt.thumbStyle.radius, "px");
42508
+
42509
+ if (scrollbarOpt.showButton) {
42510
+ var upBtnDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-button-up');
42511
+ var endPosition = Math.floor(trackSize - thumbSize.size);
42512
+ var upBtnOpacity = Math.floor(thumbSize.position) > endPosition ? 0.5 : 1;
42513
+ upBtnDOM[0].style.cssText = "background-color: ".concat(scrollbarOpt.background, ";").concat(upBtnStyle);
42514
+ upBtnDOM[0].style.opacity = upBtnOpacity;
42515
+ upBtnDOM[0].children[0].style.display = 'block';
42516
+ var downBtnDOM = scrollbarDOM.getElementsByClassName('ev-chart-scrollbar-button-down');
42517
+ downBtnDOM[0].style.cssText = "background-color: ".concat(scrollbarOpt.background, ";").concat(downBtnStyle);
42518
+ downBtnDOM[0].style.opacity = Math.floor(thumbSize.position) < 0 ? 0.5 : 1;
42519
+ downBtnDOM[0].children[0].style.display = 'block';
42520
+ }
42521
+ },
42522
+
42523
+ /**
42524
+ * get scrollbar thumb size
42525
+ * @param dir axis direction ('x' | 'y')
42526
+ * @param trackSize scrollbar track size
42527
+ */
42528
+ getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
42529
+ var scrollbarOpt = this.scrollbar[dir];
42530
+
42531
+ var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
42532
+ min = _scrollbarOpt$range3[0],
42533
+ max = _scrollbarOpt$range3[1];
42534
+
42535
+ var axesType = scrollbarOpt.type;
42536
+ var thumbSize;
42537
+ var steps;
42538
+ var interval = 1;
42539
+ var startValue = 0;
42540
+ var thumbPosition = 0;
42541
+
42542
+ if (axesType === 'step') {
42543
+ var labels = this.options.type === 'heatMap' ? this.data.labels[dir] : this.data.labels;
42544
+ var range = max - min + 1;
42545
+ steps = labels.length;
42546
+ var intervalSize = trackSize / steps;
42547
+ thumbSize = intervalSize * range;
42548
+ thumbPosition = intervalSize * min;
42549
+ } else {
42550
+ var _this$minMax$dir2;
42551
+
42552
+ var axisOpt = dir === 'x' ? this.axesX : this.axesY;
42553
+ var minMax = (_this$minMax$dir2 = this.minMax[dir]) === null || _this$minMax$dir2 === void 0 ? void 0 : _this$minMax$dir2[0];
42554
+ var graphRange = +minMax.max - +minMax.min;
42555
+
42556
+ var _range = +max - +min;
42557
+
42558
+ if (axesType === 'time') {
42559
+ var _axisOpt$5, _this$labelRange$dir, _this$labelRange$dir$;
42560
+
42561
+ interval = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$5 = axisOpt[0]) === null || _axisOpt$5 === void 0 ? void 0 : _axisOpt$5.getInterval({
42562
+ minValue: minMax.min,
42563
+ maxValue: minMax.max,
42564
+ maxSteps: (_this$labelRange$dir = this.labelRange[dir]) === null || _this$labelRange$dir === void 0 ? void 0 : (_this$labelRange$dir$ = _this$labelRange$dir[0]) === null || _this$labelRange$dir$ === void 0 ? void 0 : _this$labelRange$dir$.max
42565
+ });
42566
+ }
42567
+
42568
+ steps = Math.ceil(graphRange / interval) + 1;
42569
+ startValue = +minMax.min;
42570
+
42571
+ var _intervalSize = trackSize / steps;
42572
+
42573
+ var count = _range / interval + 1;
42574
+ var point = +min - startValue;
42575
+ thumbSize = _intervalSize * count;
42576
+ thumbPosition = _intervalSize * (point / interval);
42577
+ }
42578
+
42579
+ scrollbarOpt.startValue = startValue;
42580
+ scrollbarOpt.steps = steps;
42581
+ scrollbarOpt.interval = interval;
42582
+ return {
42583
+ size: thumbSize,
42584
+ position: thumbPosition
42585
+ };
42586
+ },
42587
+
42588
+ /**
42589
+ * get scrollbar containerDOM
42590
+ * @param targetDOM event target dom
42591
+ * @returns {HTMLElement|Element|*}
42592
+ */
42593
+ getScrollbarContainerDOM: function getScrollbarContainerDOM(targetDOM) {
42594
+ var childTypes = ['track', 'thumb', 'button'];
42595
+ var type = targetDOM.dataset.type;
42596
+
42597
+ if (childTypes.includes(type)) {
42598
+ return targetDOM.parentElement;
42599
+ } else if (type === 'button-icon') {
42600
+ return targetDOM.parentElement.parentElement;
42601
+ } else if (type === 'scrollbar') {
42602
+ return targetDOM.getElementsByClassName('ev-chart-scrollbar-container')[0];
42603
+ }
42604
+
42605
+ return targetDOM;
42606
+ },
42607
+
42608
+ /**
42609
+ * update scrollbar option range
42610
+ * @param dir axis direction ('x' | 'y')
42611
+ * @param isUp
42612
+ */
42613
+ updateScrollbarRange: function updateScrollbarRange(dir, isUp) {
42614
+ var scrollbarOpt = this.scrollbar[dir];
42615
+ var startValue = scrollbarOpt.startValue,
42616
+ range = scrollbarOpt.range,
42617
+ interval = scrollbarOpt.interval,
42618
+ steps = scrollbarOpt.steps;
42619
+ var endValue = startValue + interval * steps;
42620
+ var axisOpt = dir === 'x' ? this.axesX[0] : this.axesY[0];
42621
+
42622
+ var _ref = range !== null && range !== void 0 ? range : [],
42623
+ _ref2 = _slicedToArray(_ref, 2),
42624
+ min = _ref2[0],
42625
+ max = _ref2[1];
42626
+
42627
+ if (!truthyNumber(min) || !truthyNumber(max)) {
42628
+ scrollbarOpt.range = (axisOpt === null || axisOpt === void 0 ? void 0 : axisOpt.range) || null;
42629
+ }
42630
+
42631
+ var minValue;
42632
+ var maxValue;
42633
+ var isOutOfRange = false;
42634
+
42635
+ if (isUp) {
42636
+ minValue = min + interval;
42637
+ maxValue = max + interval;
42638
+ isOutOfRange = maxValue >= endValue;
42639
+ } else {
42640
+ minValue = min - interval;
42641
+ maxValue = max - interval;
42642
+ isOutOfRange = minValue < startValue;
42643
+ }
42644
+
42645
+ if (!isOutOfRange) {
42646
+ scrollbarOpt.range = [minValue, maxValue];
42647
+ this.update({
42648
+ updateSeries: false,
42649
+ updateSelTip: {
42650
+ update: false,
42651
+ keepDomain: false
42652
+ }
42653
+ });
42654
+ }
42655
+ },
42656
+
42657
+ /**
42658
+ * create scroll event
42659
+ */
42660
+ createScrollEvent: function createScrollEvent() {
42661
+ var _this = this;
42662
+
42663
+ this.onScrollbarClick = function (e) {
42664
+ e.preventDefault();
42665
+ var type = e.target.dataset.type;
42666
+
42667
+ var containerDOM = _this.getScrollbarContainerDOM(e.target);
42668
+
42669
+ var buttonTypes = ['button', 'button-icon'];
42670
+ var dir = containerDOM.dataset.type;
42671
+ var isUp;
42672
+
42673
+ if (buttonTypes.includes(type)) {
42674
+ var buttonDOM;
42675
+
42676
+ if (type === 'button') {
42677
+ buttonDOM = e.target;
42678
+ } else if (type === 'button-icon') {
42679
+ buttonDOM = e.target.parentElement;
42680
+ }
42681
+
42682
+ isUp = buttonDOM.className.includes('up');
42683
+ } else if (type === 'track') {
42684
+ var thumbDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42685
+
42686
+ var _thumbDOM$0$getBoundi = thumbDOM[0].getBoundingClientRect(),
42687
+ x = _thumbDOM$0$getBoundi.x,
42688
+ y = _thumbDOM$0$getBoundi.y;
42689
+
42690
+ var isXScroll = dir === 'x';
42691
+ var clickPoint = isXScroll ? e.clientX : -e.clientY;
42692
+ var thumbPosition = isXScroll ? x : -y;
42693
+ isUp = clickPoint > thumbPosition;
42694
+ } else {
42695
+ return;
42696
+ }
42697
+
42698
+ _this.updateScrollbarRange(dir, isUp);
42699
+ };
42700
+
42701
+ this.onScrollbarDown = function (e) {
42702
+ e.preventDefault();
42703
+
42704
+ if (e.target.dataset.type !== 'thumb') {
42705
+ return;
42706
+ }
42707
+
42708
+ var containerDOM = _this.getScrollbarContainerDOM(e.target);
42709
+
42710
+ var dir = containerDOM.dataset.type;
42711
+ var thumbDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-thumb');
42712
+
42713
+ var _thumbDOM$0$getBoundi2 = thumbDOM[0].getBoundingClientRect(),
42714
+ x = _thumbDOM$0$getBoundi2.x,
42715
+ y = _thumbDOM$0$getBoundi2.y,
42716
+ height = _thumbDOM$0$getBoundi2.height;
42717
+
42718
+ var scrollbarOpt = _this.scrollbar[dir];
42719
+ scrollbarOpt.scrolling = true;
42720
+
42721
+ if (dir === 'x') {
42722
+ scrollbarOpt.pointInThumb = e.clientX - x;
42723
+ } else {
42724
+ scrollbarOpt.pointInThumb = y + height - e.clientY;
42725
+ }
42726
+
42727
+ var scrollbarDOM = scrollbarOpt.dom;
42728
+ scrollbarDOM.addEventListener('mousemove', _this.onScrollbarMove);
42729
+ scrollbarDOM.addEventListener('mouseup', _this.onScrollbarUp);
42730
+ };
42731
+
42732
+ var onScrollbarMove = function onScrollbarMove(e) {
42733
+ _this.scrolling(e);
42734
+ };
42735
+
42736
+ this.onScrollbarMove = lodash_es_throttle(onScrollbarMove, 5);
42737
+
42738
+ this.onScrollbarUp = function (e) {
42739
+ e.preventDefault();
42740
+
42741
+ _this.stopScrolling(e);
42742
+ };
42743
+
42744
+ this.onScrollbarLeave = function (e) {
42745
+ e.preventDefault();
42746
+
42747
+ _this.scrolling(e);
42748
+
42749
+ _this.stopScrolling(e);
42750
+ };
42751
+
42752
+ this.onScrollbarWheel = function (e) {
42753
+ e.preventDefault();
42754
+
42755
+ _this.updateScrollbarRange('y', e.deltaY < 0);
42756
+ };
42757
+
42758
+ if (this.scrollbar.x.use && !this.scrollbar.x.isInit) {
42759
+ var scrollbarXDOM = this.scrollbar.x.dom;
42760
+ scrollbarXDOM.addEventListener('click', this.onScrollbarClick);
42761
+ scrollbarXDOM.addEventListener('mousedown', this.onScrollbarDown);
42762
+ scrollbarXDOM.addEventListener('mouseleave', this.onScrollbarLeave);
42763
+ }
42764
+
42765
+ if (this.scrollbar.y.use && !this.scrollbar.y.isInit) {
42766
+ var _this$overlayCanvas;
42767
+
42768
+ var scrollbarYDOM = this.scrollbar.y.dom;
42769
+ scrollbarYDOM.addEventListener('click', this.onScrollbarClick);
42770
+ scrollbarYDOM.addEventListener('mousedown', this.onScrollbarDown);
42771
+ scrollbarYDOM.addEventListener('mouseleave', this.onScrollbarLeave);
42772
+ (_this$overlayCanvas = this.overlayCanvas) === null || _this$overlayCanvas === void 0 ? void 0 : _this$overlayCanvas.addEventListener('wheel', this.onScrollbarWheel);
42773
+ }
42774
+ },
42775
+
42776
+ /**
42777
+ * Update scroll information by move event
42778
+ * @param e Event
42779
+ */
42780
+ scrolling: function scrolling(e) {
42781
+ var containerDOM = this.getScrollbarContainerDOM(e.target);
42782
+ var dir = containerDOM.dataset.type;
42783
+
42784
+ if (!this.scrollbar[dir].scrolling) {
42785
+ return;
42786
+ }
42787
+
42788
+ var _this$scrollbar$dir = this.scrollbar[dir],
42789
+ steps = _this$scrollbar$dir.steps,
42790
+ range = _this$scrollbar$dir.range,
42791
+ pointInThumb = _this$scrollbar$dir.pointInThumb,
42792
+ startValue = _this$scrollbar$dir.startValue,
42793
+ interval = _this$scrollbar$dir.interval;
42794
+ var trackDOM = containerDOM.getElementsByClassName('ev-chart-scrollbar-track');
42795
+
42796
+ var _trackDOM$0$getBoundi = trackDOM[0].getBoundingClientRect(),
42797
+ x = _trackDOM$0$getBoundi.x,
42798
+ y = _trackDOM$0$getBoundi.y,
42799
+ width = _trackDOM$0$getBoundi.width,
42800
+ height = _trackDOM$0$getBoundi.height;
42801
+
42802
+ var isXScroll = dir === 'x';
42803
+ var sp = isXScroll ? x : y;
42804
+ var trackSize = isXScroll ? width : height;
42805
+ var intervalSize = trackSize / steps;
42806
+ var endValue = startValue + (steps - 1) * interval;
42807
+ var movePoint = isXScroll ? e.clientX : e.clientY;
42808
+
42809
+ if (movePoint < sp) {
42810
+ movePoint = sp;
42811
+ } else if (movePoint > sp + trackSize) {
42812
+ movePoint = sp + trackSize;
42813
+ }
42814
+
42815
+ var move;
42816
+
42817
+ if (isXScroll) {
42818
+ move = movePoint - sp - pointInThumb;
42819
+ } else {
42820
+ move = sp + trackSize - movePoint - pointInThumb;
42821
+ }
42822
+
42823
+ if (move <= 0) {
42824
+ return;
42825
+ }
42826
+
42827
+ var movedMin;
42828
+ var movedMax;
42829
+ var currValue = Math.round(Math.abs(move) / intervalSize) * interval;
42830
+
42831
+ var _range2 = _slicedToArray(range, 2),
42832
+ min = _range2[0],
42833
+ max = _range2[1];
42834
+
42835
+ if (move > 0) {
42836
+ var incrementValue = startValue + (currValue - +min);
42837
+ movedMin = +min + incrementValue;
42838
+ movedMax = movedMin + (+max - +min);
42839
+ }
42840
+
42841
+ if (movedMin < startValue || movedMax > endValue) {
42842
+ return;
42843
+ }
42844
+
42845
+ this.scrollbar[dir].range = [movedMin, movedMax];
42846
+ this.update({
42847
+ updateSeries: false,
42848
+ updateSelTip: {
42849
+ update: false,
42850
+ keepDomain: false
42851
+ }
42852
+ });
42853
+ },
42854
+
42855
+ /**
42856
+ * init scrolling event
42857
+ * @param e
42858
+ */
42859
+ stopScrolling: function stopScrolling(e) {
42860
+ var containerDOM = this.getScrollbarContainerDOM(e.target);
42861
+ var dir = containerDOM.dataset.type;
42862
+ var scrollbarOpt = this.scrollbar[dir];
42863
+
42864
+ if (scrollbarOpt.scrolling) {
42865
+ scrollbarOpt.scrolling = false;
42866
+ var scrollbarDOM = scrollbarOpt.dom;
42867
+ scrollbarDOM.removeEventListener('mousemove', this.onScrollbarMove, false);
42868
+ scrollbarDOM.removeEventListener('mouseup', this.onScrollbarUp, false);
42869
+ }
42870
+ },
42871
+
42872
+ /**
42873
+ * hide scrollbar dom
42874
+ * @param dir axis direction ('x' | 'y')
42875
+ */
42876
+ hideScrollbar: function hideScrollbar(dir) {
42877
+ var scrollbarDOM = this.scrollbar[dir].dom;
42878
+
42879
+ if (!scrollbarDOM) {
42880
+ return;
42881
+ }
42882
+
42883
+ var scrollbarStyle = scrollbarDOM === null || scrollbarDOM === void 0 ? void 0 : scrollbarDOM.style;
42884
+ scrollbarStyle.display = 'none';
42885
+ scrollbarStyle.width = '0';
42886
+ scrollbarStyle.height = '0';
42887
+ },
42888
+
42889
+ /**
42890
+ * destroy scrollbar dom
42891
+ * @param dir axis direction ('x' | 'y')
42892
+ */
42893
+ destroyScrollbar: function destroyScrollbar(dir) {
42894
+ var scrollbarXDOM = this.scrollbar[dir].dom;
42895
+
42896
+ if (scrollbarXDOM) {
42897
+ scrollbarXDOM.remove();
42898
+ this.scrollbar[dir] = {
42899
+ isInit: false
42900
+ };
42901
+
42902
+ if (dir === 'y') {
42903
+ var _this$overlayCanvas2;
42904
+
42905
+ (_this$overlayCanvas2 = this.overlayCanvas) === null || _this$overlayCanvas2 === void 0 ? void 0 : _this$overlayCanvas2.removeEventListener('wheel', this.onScrollbarWheel, false);
42906
+ }
42907
+ }
42908
+ }
42909
+ };
42910
+ /* harmony default export */ var plugins_scrollbar = (plugins_scrollbar_module);
42016
42911
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.from-entries.js
42017
42912
  var es_object_from_entries = __webpack_require__("c1f9");
42018
42913
 
@@ -42202,14 +43097,22 @@ var plugins_interaction_modules = {
42202
43097
  }
42203
43098
 
42204
43099
  if (tooltip.use) {
42205
- _this.setTooltipLayoutPosition(hitInfo, e);
43100
+ var _tooltip$formatter;
42206
43101
 
42207
- if (type === 'scatter') {
42208
- _this.drawTooltipForScatter(hitInfo, _this.tooltipCtx);
42209
- } else if (type === 'heatMap') {
42210
- _this.drawToolTipForHeatMap(hitInfo, _this.tooltipCtx);
43102
+ if (tooltip !== null && tooltip !== void 0 && (_tooltip$formatter = tooltip.formatter) !== null && _tooltip$formatter !== void 0 && _tooltip$formatter.html) {
43103
+ _this.drawCustomTooltip(hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.items);
43104
+
43105
+ _this.setCustomTooltipLayoutPosition(hitInfo, e);
42211
43106
  } else {
42212
- _this.drawTooltip(hitInfo, _this.tooltipCtx);
43107
+ _this.setTooltipLayoutPosition(hitInfo, e);
43108
+
43109
+ if (type === 'scatter') {
43110
+ _this.drawTooltipForScatter(hitInfo, _this.tooltipCtx);
43111
+ } else if (type === 'heatMap') {
43112
+ _this.drawToolTipForHeatMap(hitInfo, _this.tooltipCtx);
43113
+ } else {
43114
+ _this.drawTooltip(hitInfo, _this.tooltipCtx);
43115
+ }
42213
43116
  }
42214
43117
  }
42215
43118
  } else if (tooltip.use) {
@@ -42385,6 +43288,8 @@ var plugins_interaction_modules = {
42385
43288
 
42386
43289
  case 'heatMap':
42387
43290
  {
43291
+ var isHorizontal = !!_this.options.horizontal;
43292
+
42388
43293
  if (useSelectItem && useSelectLabel) {
42389
43294
  var useBothAxis = selectLabelOpt.useBothAxis;
42390
43295
 
@@ -42403,12 +43308,33 @@ var plugins_interaction_modules = {
42403
43308
  args.deselected = {
42404
43309
  eventTarget: 'item'
42405
43310
  };
42406
- setSelectedLabelInfo(useBothAxis ? location : null);
43311
+
43312
+ if (!useBothAxis) {
43313
+ var selectLabelAxis = isHorizontal ? 'yAxis' : 'xAxis';
43314
+
43315
+ if (location !== selectLabelAxis) {
43316
+ return;
43317
+ }
43318
+ }
43319
+
43320
+ setSelectedLabelInfo(location, useBothAxis);
42407
43321
  }
42408
43322
  } else if (useSelectItem) {
42409
43323
  setSelectedItemInfo();
42410
43324
  } else if (useSelectLabel) {
42411
- setSelectedLabelInfo();
43325
+ var _useBothAxis = selectLabelOpt.useBothAxis;
43326
+
43327
+ var _location = _this.getClickedLocation(offset);
43328
+
43329
+ if (!_useBothAxis && _location !== 'chartBackground') {
43330
+ var _selectLabelAxis = isHorizontal ? 'yAxis' : 'xAxis';
43331
+
43332
+ if (_location !== _selectLabelAxis) {
43333
+ return;
43334
+ }
43335
+ }
43336
+
43337
+ setSelectedLabelInfo(_useBothAxis ? _location : null);
42412
43338
  }
42413
43339
 
42414
43340
  break;
@@ -43003,7 +43929,7 @@ var plugins_interaction_modules = {
43003
43929
  var _this$options$selectL2, _this$options7, _this$defaultSelectIn;
43004
43930
 
43005
43931
  var option = (_this$options$selectL2 = (_this$options7 = this.options) === null || _this$options7 === void 0 ? void 0 : _this$options7.selectLabel) !== null && _this$options$selectL2 !== void 0 ? _this$options$selectL2 : {};
43006
- var before = ((_this$defaultSelectIn = this.defaultSelectInfo) === null || _this$defaultSelectIn === void 0 ? void 0 : _this$defaultSelectIn.targetAxis) === targetAxis ? _objectSpread2(_objectSpread2({}, this.defaultSelectInfo), {}, {
43932
+ var before = targetAxis === null || ((_this$defaultSelectIn = this.defaultSelectInfo) === null || _this$defaultSelectIn === void 0 ? void 0 : _this$defaultSelectIn.targetAxis) === targetAxis ? _objectSpread2(_objectSpread2({}, this.defaultSelectInfo), {}, {
43007
43933
  targetAxis: targetAxis
43008
43934
  }) : {
43009
43935
  dataIndex: [],
@@ -43265,7 +44191,9 @@ var plugins_tooltip_modules = {
43265
44191
  * @returns {undefined}
43266
44192
  */
43267
44193
  createTooltipDOM: function createTooltipDOM() {
43268
- var _this = this;
44194
+ var _this$options$tooltip,
44195
+ _this$options$tooltip2,
44196
+ _this = this;
43269
44197
 
43270
44198
  this.tooltipDOM = document.createElement('div');
43271
44199
  this.tooltipDOM.className = 'ev-chart-tooltip';
@@ -43278,9 +44206,13 @@ var plugins_tooltip_modules = {
43278
44206
  this.tooltipCtx = this.tooltipCanvas.getContext('2d');
43279
44207
  this.tooltipDOM.style.display = 'none';
43280
44208
  this.setFontFamily();
43281
- this.tooltipBodyDOM.appendChild(this.tooltipCanvas);
43282
- this.tooltipDOM.appendChild(this.tooltipHeaderDOM);
43283
- this.tooltipDOM.appendChild(this.tooltipBodyDOM);
44209
+
44210
+ 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)) {
44211
+ this.tooltipBodyDOM.appendChild(this.tooltipCanvas);
44212
+ this.tooltipDOM.appendChild(this.tooltipHeaderDOM);
44213
+ this.tooltipDOM.appendChild(this.tooltipBodyDOM);
44214
+ }
44215
+
43284
44216
  document.body.appendChild(this.tooltipDOM);
43285
44217
 
43286
44218
  if (this.options.tooltip.debouncedHide) {
@@ -43298,9 +44230,9 @@ var plugins_tooltip_modules = {
43298
44230
  * set tooltip's font style
43299
44231
  */
43300
44232
  setFontFamily: function setFontFamily() {
43301
- var _this$options$tooltip, _this$options, _this$options$tooltip2;
44233
+ var _this$options$tooltip3, _this$options, _this$options$tooltip4;
43302
44234
 
43303
- 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';
44235
+ 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';
43304
44236
  fontStyle = "normal normal lighter 14px ".concat(fontFamily);
43305
44237
  this.tooltipHeaderDOM.style.fontFamily = fontFamily;
43306
44238
  },
@@ -43821,6 +44753,70 @@ var plugins_tooltip_modules = {
43821
44753
 
43822
44754
  ctx.restore();
43823
44755
  },
44756
+ setCustomTooltipLayoutPosition: function setCustomTooltipLayoutPosition(hitInfo, e) {
44757
+ var _document$getElements;
44758
+
44759
+ var mouseX = e.pageX;
44760
+ var mouseY = e.pageY;
44761
+ var customTooltipEl = (_document$getElements = document.getElementsByClassName('ev-chart-tooltip-custom')) === null || _document$getElements === void 0 ? void 0 : _document$getElements[0];
44762
+
44763
+ if (!customTooltipEl) {
44764
+ return;
44765
+ }
44766
+
44767
+ var contentsWidth = customTooltipEl.offsetWidth;
44768
+ var contentsHeight = customTooltipEl.offsetHeight;
44769
+ this.tooltipDOM.style.height = 'auto';
44770
+ this.tooltipBodyDOM.style.height = "".concat(contentsHeight + 6, "px");
44771
+ var bodyWidth = document.body.clientWidth;
44772
+ var bodyHeight = document.body.clientHeight;
44773
+ var distanceMouseAndTooltip = 20;
44774
+ var maximumPosX = bodyWidth - contentsWidth - distanceMouseAndTooltip;
44775
+ var maximumPosY = bodyHeight - (TITLE_HEIGHT + contentsHeight) - distanceMouseAndTooltip;
44776
+ var expectedPosX = mouseX + distanceMouseAndTooltip;
44777
+ var expectedPosY = mouseY + distanceMouseAndTooltip;
44778
+ var reversedPosX = mouseX - contentsWidth - distanceMouseAndTooltip;
44779
+ var reversedPosY = mouseY - (TITLE_HEIGHT + contentsHeight) - distanceMouseAndTooltip;
44780
+ this.tooltipDOM.style.left = expectedPosX > maximumPosX ? "".concat(reversedPosX, "px") : "".concat(expectedPosX, "px");
44781
+ this.tooltipDOM.style.top = expectedPosY > maximumPosY ? "".concat(reversedPosY, "px") : "".concat(expectedPosY, "px");
44782
+ this.tooltipDOM.style.display = 'block';
44783
+ },
44784
+
44785
+ /**
44786
+ * Draw User Custom Tooltip (tooltip > formatter > html)
44787
+ * call "formatter > html" and append to tooltip DOM
44788
+ * @param hitInfoItems
44789
+ */
44790
+ drawCustomTooltip: function drawCustomTooltip(hitInfoItems) {
44791
+ var _this$options2, _opt$formatter3;
44792
+
44793
+ var opt = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.tooltip;
44794
+
44795
+ if ((_opt$formatter3 = opt.formatter) !== null && _opt$formatter3 !== void 0 && _opt$formatter3.html) {
44796
+ var _opt$formatter4;
44797
+
44798
+ this.tooltipDOM.innerHTML = '';
44799
+ var seriesList = [];
44800
+ Object.keys(hitInfoItems).forEach(function (sId) {
44801
+ seriesList.push({
44802
+ sId: sId,
44803
+ data: hitInfoItems[sId].data,
44804
+ color: hitInfoItems[sId].color,
44805
+ name: hitInfoItems[sId].name
44806
+ });
44807
+ });
44808
+ 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));
44809
+
44810
+ if (userCustomTooltipBody) {
44811
+ this.tooltipDOM.appendChild(userCustomTooltipBody);
44812
+ }
44813
+
44814
+ this.tooltipDOM.style.overflowY = 'hidden';
44815
+ this.tooltipDOM.style.backgroundColor = opt.backgroundColor;
44816
+ this.tooltipDOM.style.border = "1px solid ".concat(opt.borderColor);
44817
+ this.tooltipDOM.style.color = opt.fontColor;
44818
+ }
44819
+ },
43824
44820
 
43825
44821
  /**
43826
44822
  * set style properties on tooltip DOM
@@ -44239,6 +45235,9 @@ var plugins_pie_modules = {
44239
45235
 
44240
45236
 
44241
45237
 
45238
+
45239
+
45240
+
44242
45241
  var element_tip_modules = {
44243
45242
  /**
44244
45243
  * Draw TextTip with tip's locationInfo
@@ -44423,6 +45422,23 @@ var element_tip_modules = {
44423
45422
  var dp;
44424
45423
 
44425
45424
  if (type === 'bar') {
45425
+ var scrollbarOpt = isHorizontal ? this.scrollbar.y : this.scrollbar.x;
45426
+
45427
+ if (scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use) {
45428
+ var _scrollbarOpt$range;
45429
+
45430
+ var _ref = (_scrollbarOpt$range = scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range) !== null && _scrollbarOpt$range !== void 0 ? _scrollbarOpt$range : [],
45431
+ _ref2 = _slicedToArray(_ref, 2),
45432
+ min = _ref2[0],
45433
+ max = _ref2[1];
45434
+
45435
+ if (ldata >= min && ldata <= max) {
45436
+ ldata -= min !== null && min !== void 0 ? min : 0;
45437
+ } else {
45438
+ return false;
45439
+ }
45440
+ }
45441
+
44426
45442
  if (isHorizontal) {
44427
45443
  halfBarSize = Math.round(size.h / 2);
44428
45444
  cp = ysp - size.cat * ldata - size.cPad;
@@ -44534,7 +45550,7 @@ var element_tip_modules = {
44534
45550
  var drawTip = false;
44535
45551
 
44536
45552
  if (dataIndex.length) {
44537
- var _this$seriesList, _this$data$groups$, _this$data$groups;
45553
+ var _this$seriesList, _this$data$groups$, _this$data$groups, _labelAxes$labels;
44538
45554
 
44539
45555
  drawTip = true;
44540
45556
  var chartRect = this.chartRect;
@@ -44550,6 +45566,7 @@ var element_tip_modules = {
44550
45566
  var valueAxesRange = isHorizontal ? this.axesRange.x[0] : this.axesRange.y[0];
44551
45567
  var valuePositionCalcFunction = isHorizontal ? helpers_canvas.calculateX : helpers_canvas.calculateY;
44552
45568
  var labelPositionCalcFunction = isHorizontal ? helpers_canvas.calculateY : helpers_canvas.calculateX;
45569
+ var scrollbarOpt = isHorizontal ? this.scrollbar.y : this.scrollbar.x;
44553
45570
  var chartWidth = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
44554
45571
  var chartHeight = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
44555
45572
  var valueSpace = isHorizontal ? chartWidth : chartHeight;
@@ -44573,11 +45590,35 @@ var element_tip_modules = {
44573
45590
  var graphX;
44574
45591
  var lineSeries;
44575
45592
  var sizeObj;
45593
+ var startIndex = 0;
45594
+ var endIndex = (_labelAxes$labels = labelAxes.labels) === null || _labelAxes$labels === void 0 ? void 0 : _labelAxes$labels.length;
44576
45595
 
44577
45596
  if (labelAxes.labels) {
45597
+ var labelCount = labelAxes.labels.length;
45598
+
45599
+ if (scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use) {
45600
+ var range = scrollbarOpt.range,
45601
+ interval = scrollbarOpt.interval,
45602
+ type = scrollbarOpt.type;
45603
+
45604
+ var _range = _slicedToArray(range, 2),
45605
+ min = _range[0],
45606
+ max = _range[1];
45607
+
45608
+ if (truthyNumber(min) && truthyNumber(max)) {
45609
+ labelCount = Math.floor((+max - +min) / interval) + 1;
45610
+ startIndex = type === 'step' ? min : labelAxes.labels.findIndex(function (v) {
45611
+ return v === +min;
45612
+ });
45613
+ endIndex = type === 'step' ? max : labelAxes.labels.findIndex(function (v) {
45614
+ return v === +max;
45615
+ });
45616
+ }
45617
+ }
45618
+
44578
45619
  labelStartPoint = aPos[labelAxes.units.rectStart];
44579
45620
  labelEndPoint = aPos[labelAxes.units.rectEnd];
44580
- labelGap = (labelEndPoint - labelStartPoint) / labelAxes.labels.length;
45621
+ labelGap = (labelEndPoint - labelStartPoint) / labelCount;
44581
45622
  } else {
44582
45623
  graphX = this.axesSteps.x[0];
44583
45624
  lineSeries = seriesList.find(function (sId) {
@@ -44617,7 +45658,12 @@ var element_tip_modules = {
44617
45658
  }
44618
45659
 
44619
45660
  if (labelAxes.labels) {
44620
- var labelCenter = Math.round(labelStartPoint + labelGap * dataIndex[i]);
45661
+ if (dataIndex[i] < startIndex || dataIndex[i] > endIndex) {
45662
+ return;
45663
+ }
45664
+
45665
+ var labelIndex = dataIndex[i] - startIndex;
45666
+ var labelCenter = Math.round(labelStartPoint + labelGap * labelIndex);
44621
45667
  dp = labelCenter + labelGap / 2;
44622
45668
  } else {
44623
45669
  dp = labelPositionCalcFunction(label[i], graphX.graphMin, graphX.graphMax, chartWidth - sizeObj.comboOffset, aPos.x1 + sizeObj.comboOffset / 2);
@@ -44923,6 +45969,7 @@ var element_tip_modules = {
44923
45969
 
44924
45970
 
44925
45971
 
45972
+
44926
45973
 
44927
45974
 
44928
45975
  var chart_core_EvChart = /*#__PURE__*/function () {
@@ -44942,6 +45989,7 @@ var chart_core_EvChart = /*#__PURE__*/function () {
44942
45989
  Object.assign(this, plugins_legend);
44943
45990
  Object.assign(this, plugins_pie);
44944
45991
  Object.assign(this, plugins_title);
45992
+ Object.assign(this, plugins_scrollbar);
44945
45993
  }
44946
45994
 
44947
45995
  if (options.type === 'heatMap' && options.legend.type === 'gradient') {
@@ -44983,6 +46031,14 @@ var chart_core_EvChart = /*#__PURE__*/function () {
44983
46031
  this.isInitLegend = false;
44984
46032
  this.isInitTitle = false;
44985
46033
  this.isInit = false;
46034
+ this.scrollbar = {
46035
+ x: {
46036
+ isInit: false
46037
+ },
46038
+ y: {
46039
+ isInit: false
46040
+ }
46041
+ };
44986
46042
  this.seriesList = {};
44987
46043
  this.lastTip = {
44988
46044
  pos: null,
@@ -45060,6 +46116,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45060
46116
  }, {
45061
46117
  key: "initRect",
45062
46118
  value: function initRect() {
46119
+ var _opt$axesX, _opt$axesX$, _opt$axesX$$scrollbar, _opt$axesY, _opt$axesY$, _opt$axesY$$scrollbar;
46120
+
45063
46121
  var opt = this.options;
45064
46122
 
45065
46123
  if (opt.title.show) {
@@ -45078,6 +46136,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45078
46136
  this.setLegendPosition();
45079
46137
  }
45080
46138
 
46139
+ 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) {
46140
+ this.initScrollbar();
46141
+ }
46142
+
45081
46143
  this.chartRect = this.getChartRect();
45082
46144
  }
45083
46145
  /**
@@ -45090,11 +46152,18 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45090
46152
  }, {
45091
46153
  key: "drawChart",
45092
46154
  value: function drawChart(hitInfo) {
46155
+ var _this$scrollbar, _this$scrollbar$x, _this$scrollbar2, _this$scrollbar2$y;
46156
+
45093
46157
  this.initScale();
45094
46158
  this.labelRange = this.getAxesLabelRange();
45095
46159
  this.axesSteps = this.calculateSteps();
45096
46160
  this.drawAxis(hitInfo);
45097
46161
  this.drawSeries(hitInfo);
46162
+
46163
+ 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) {
46164
+ this.updateScrollbarPosition();
46165
+ }
46166
+
45098
46167
  this.drawTip();
45099
46168
 
45100
46169
  if (this.bufferCanvas) {
@@ -45307,7 +46376,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45307
46376
  value: function createAxes(dir) {
45308
46377
  var axes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
45309
46378
  var ctx = this.bufferCtx;
45310
- var labels = this.options.type === 'heatMap' ? this.data.labels[dir] : this.data.labels;
46379
+ var isHeatMapType = this.options.type === 'heatMap';
46380
+ var labels = isHeatMapType ? this.data.labels[dir] : this.data.labels;
45311
46381
  var options = this.options;
45312
46382
  return axes.map(function (axis) {
45313
46383
  switch (axis.type) {
@@ -45345,10 +46415,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45345
46415
 
45346
46416
  /* eslint-disable max-len */
45347
46417
  var axesXMinMax = this.axesX.map(function (axis, index) {
45348
- return axis.calculateScaleRange(_this3.minMax.x[index], _this3.chartRect);
46418
+ return axis.calculateScaleRange(_this3.minMax.x[index], _this3.scrollbar.x, _this3.chartRect);
45349
46419
  });
45350
46420
  var axesYMinMax = this.axesY.map(function (axis, index) {
45351
- return axis.calculateScaleRange(_this3.minMax.y[index], _this3.chartRect);
46421
+ return axis.calculateScaleRange(_this3.minMax.y[index], _this3.scrollbar.y, _this3.chartRect);
45352
46422
  });
45353
46423
  /* eslint-enable max-len */
45354
46424
 
@@ -45390,6 +46460,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45390
46460
  var range = {
45391
46461
  minValue: _this5.axesRange.x[index].min,
45392
46462
  maxValue: _this5.axesRange.x[index].max,
46463
+ minIndex: _this5.axesRange.x[index].minIndex,
46464
+ maxIndex: _this5.axesRange.x[index].maxIndex,
45393
46465
  minSteps: _this5.labelRange.x[index].min,
45394
46466
  maxSteps: _this5.labelRange.x[index].max
45395
46467
  };
@@ -45399,6 +46471,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45399
46471
  var range = {
45400
46472
  minValue: _this5.axesRange.y[index].min,
45401
46473
  maxValue: _this5.axesRange.y[index].max,
46474
+ minIndex: _this5.axesRange.y[index].minIndex,
46475
+ maxIndex: _this5.axesRange.y[index].maxIndex,
45402
46476
  minSteps: _this5.labelRange.y[index].min,
45403
46477
  maxSteps: _this5.labelRange.y[index].max
45404
46478
  };
@@ -45511,14 +46585,28 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45511
46585
  yAxisTitleHeight = _fontSize + titleMargin;
45512
46586
  }
45513
46587
 
45514
- var horizontalPadding = padding.left + padding.right;
45515
- var verticalPadding = padding.top + padding.bottom + xAxisTitleHeight + yAxisTitleHeight;
46588
+ var xAxisScrollOpt = this.scrollbar.x;
46589
+ var yAxisScrollOpt = this.scrollbar.y;
46590
+ var xAxisScrollHeight = 0;
46591
+
46592
+ if (xAxisScrollOpt !== null && xAxisScrollOpt !== void 0 && xAxisScrollOpt.use) {
46593
+ xAxisScrollHeight = xAxisScrollOpt === null || xAxisScrollOpt === void 0 ? void 0 : xAxisScrollOpt.height;
46594
+ }
46595
+
46596
+ var yAxisScrollWidth = 0;
46597
+
46598
+ if (yAxisScrollOpt !== null && yAxisScrollOpt !== void 0 && yAxisScrollOpt.use) {
46599
+ yAxisScrollWidth = yAxisScrollOpt === null || yAxisScrollOpt === void 0 ? void 0 : yAxisScrollOpt.width;
46600
+ }
46601
+
46602
+ var horizontalPadding = padding.left + padding.right + yAxisScrollWidth;
46603
+ var verticalPadding = padding.top + padding.bottom + xAxisTitleHeight + yAxisTitleHeight + xAxisScrollHeight;
45516
46604
  var chartWidth = width > horizontalPadding ? width - horizontalPadding : width;
45517
46605
  var chartHeight = height > verticalPadding ? height - verticalPadding : height;
45518
46606
  var x1 = padding.left;
45519
- var x2 = Math.max(width - padding.right, x1 + 2);
46607
+ var x2 = Math.max(width - padding.right - yAxisScrollWidth, x1 + 2);
45520
46608
  var y1 = padding.top + yAxisTitleHeight;
45521
- var y2 = Math.max(height - padding.bottom - xAxisTitleHeight, y1 + 2);
46609
+ var y2 = Math.max(height - padding.bottom - xAxisTitleHeight - xAxisScrollHeight, y1 + 2);
45522
46610
  return {
45523
46611
  x1: x1,
45524
46612
  x2: x2,
@@ -45664,6 +46752,8 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45664
46752
  }, {
45665
46753
  key: "update",
45666
46754
  value: function update(updateInfo) {
46755
+ var _this$updateScrollbar;
46756
+
45667
46757
  var options = this.options;
45668
46758
  var data = this.data.data;
45669
46759
  var labels = this.data.labels;
@@ -45678,6 +46768,7 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45678
46768
  return;
45679
46769
  }
45680
46770
 
46771
+ (_this$updateScrollbar = this.updateScrollbar) === null || _this$updateScrollbar === void 0 ? void 0 : _this$updateScrollbar.call(this, updateData);
45681
46772
  this.resetProps();
45682
46773
 
45683
46774
  if (updateSeries) {
@@ -45884,6 +46975,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
45884
46975
  this.legendBoxDOM.removeEventListener('click', this.onLegendBoxClick);
45885
46976
  this.legendBoxDOM.removeEventListener('mouseover', this.onLegendBoxOver);
45886
46977
  this.legendBoxDOM.removeEventListener('mouseleave', this.onLegendBoxLeave);
46978
+
46979
+ if (this.options.legend.type === 'gradient') {
46980
+ this.legendBoxDOM.removeEventListener('mousedown', this.onLegendMouseDown);
46981
+ }
45887
46982
  }
45888
46983
 
45889
46984
  if (this.resizeDOM) {