evui 3.4.153 → 3.4.155

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.
@@ -11235,7 +11235,7 @@ $({ target: 'Number', stat: true }, {
11235
11235
  /***/ "9224":
11236
11236
  /***/ (function(module) {
11237
11237
 
11238
- module.exports = JSON.parse("{\"a\":\"3.4.153\"}");
11238
+ module.exports = JSON.parse("{\"a\":\"3.4.155\"}");
11239
11239
 
11240
11240
  /***/ }),
11241
11241
 
@@ -43038,17 +43038,16 @@ var element_bar_Bar = /*#__PURE__*/function () {
43038
43038
  this.borderRadius = param.borderRadius;
43039
43039
  this.filteredCount = totalCount;
43040
43040
  var startIndex = truthyNumber(minIndex) ? minIndex : 0;
43041
- var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1; // 스크롤 범위 내에서만 루프 돌림
43041
+ var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1;
43042
+ this.visibleStartIndex = startIndex;
43042
43043
 
43043
43044
  for (var i = startIndex; i <= endIndex; i++) {
43044
- var screenIndex = i - startIndex; // 현재 화면상의 위치 인덱스
43045
-
43046
- var item = this.data[i]; // 실제 데이터 인덱스에 해당하는 항목
43045
+ var screenIndex = i - startIndex;
43046
+ var item = this.data[i];
43047
43047
 
43048
43048
  if (item) {
43049
43049
  var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
43050
43050
 
43051
- // 스크롤 offset(minIndex)만큼 보정해서 그리기
43052
43051
  var categoryPoint = isHorizontal ? ysp - cArea * screenIndex - cPad : xsp + cArea * screenIndex + cPad;
43053
43052
 
43054
43053
  if (isHorizontal) {
@@ -43147,11 +43146,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
43147
43146
 
43148
43147
  item.h = isHorizontal ? -h : h; // eslint-disable-line
43149
43148
 
43150
- item.index = i; // 실제 데이터 인덱스 (스크롤 offset 포함)
43151
- // 검색(hitInfo) 로직은 this.data[0..filteredCount-1] 범위만 검사하므로,
43152
- // 현재 화면에 그린 항목을 배열 앞쪽으로 매핑해준다.
43153
-
43154
- this.data[screenIndex] = item;
43149
+ item.index = i;
43155
43150
  }
43156
43151
  }
43157
43152
  }
@@ -43237,17 +43232,23 @@ var element_bar_Bar = /*#__PURE__*/function () {
43237
43232
  key: "findGraphData",
43238
43233
  value: function findGraphData(offset, isHorizontal, dataIndex, useIndicatorOnLabel) {
43239
43234
  if (typeof dataIndex === 'number' && this.show && useIndicatorOnLabel) {
43240
- var gdata = this.data;
43235
+ var _this$visibleStartInd, _this$filteredCount;
43236
+
43237
+ var barData = this.data;
43241
43238
  var item = {
43242
43239
  data: null,
43243
43240
  hit: false,
43244
43241
  color: this.color
43245
- };
43242
+ }; // dataIndex를 현재 화면에 보이는 범위로 clamp하여 stale xp/yp 참조 방지
43246
43243
 
43247
- if (gdata[dataIndex]) {
43248
- item.data = gdata[dataIndex];
43249
- item.index = dataIndex;
43250
- item.hit = this.isPointInBar(offset, gdata[dataIndex]);
43244
+ var visStart = (_this$visibleStartInd = this.visibleStartIndex) !== null && _this$visibleStartInd !== void 0 ? _this$visibleStartInd : 0;
43245
+ var visEnd = visStart + ((_this$filteredCount = this.filteredCount) !== null && _this$filteredCount !== void 0 ? _this$filteredCount : barData.length) - 1;
43246
+ var clampedIndex = Math.max(visStart, Math.min(dataIndex, visEnd));
43247
+
43248
+ if (barData[clampedIndex]) {
43249
+ item.data = barData[clampedIndex];
43250
+ item.index = clampedIndex;
43251
+ item.hit = this.isPointInBar(offset, barData[clampedIndex]);
43251
43252
  }
43252
43253
 
43253
43254
  return item;
@@ -43273,7 +43274,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
43273
43274
  }, {
43274
43275
  key: "binarySearchBar",
43275
43276
  value: function binarySearchBar(offset, isHorizontal) {
43276
- var _this$filteredCount;
43277
+ var _this$visibleStartInd2, _this$filteredCount2;
43277
43278
 
43278
43279
  var _offset = _slicedToArray(offset, 2),
43279
43280
  xp = _offset[0],
@@ -43285,9 +43286,10 @@ var element_bar_Bar = /*#__PURE__*/function () {
43285
43286
  color: this.color
43286
43287
  };
43287
43288
  var gdata = this.data;
43288
- var totalCount = (_this$filteredCount = this.filteredCount) !== null && _this$filteredCount !== void 0 ? _this$filteredCount : gdata.length;
43289
- var s = 0;
43290
- var e = totalCount - 1;
43289
+ var startIdx = (_this$visibleStartInd2 = this.visibleStartIndex) !== null && _this$visibleStartInd2 !== void 0 ? _this$visibleStartInd2 : 0;
43290
+ var totalCount = (_this$filteredCount2 = this.filteredCount) !== null && _this$filteredCount2 !== void 0 ? _this$filteredCount2 : gdata.length;
43291
+ var s = startIdx;
43292
+ var e = startIdx + totalCount - 1;
43291
43293
 
43292
43294
  while (s <= e) {
43293
43295
  var m = Math.floor((s + e) / 2);
@@ -46350,96 +46352,6 @@ var scale_time_TimeScale = /*#__PURE__*/function (_Scale) {
46350
46352
 
46351
46353
  return Math.ceil((max - min) / step);
46352
46354
  }
46353
- /**
46354
- * With range information, calculate how many labels in axis
46355
- * @param {object} range min/max information
46356
- *
46357
- * @returns {object} steps, interval, min/max graph value
46358
- */
46359
-
46360
- }, {
46361
- key: "calculateSteps",
46362
- value: function calculateSteps(range) {
46363
- var maxValue = range.maxValue,
46364
- minValue = range.minValue,
46365
- maxSteps = range.maxSteps; // 사용자 interval로 인식하는 경우: 숫자 또는 객체({ time, unit }) 형태만
46366
- // 문자열('hour', 'second' 등)은 기존 로직(분기 D)으로 처리
46367
-
46368
- var hasUserRange = Array.isArray(this.range) && this.range.length === 2;
46369
- var hasUserInterval = typeof this.interval === 'number' || _typeof(this.interval) === 'object' && this.interval !== null;
46370
- var resolvedInterval = hasUserInterval ? this.getInterval(range) : null;
46371
- var isValidInterval = resolvedInterval != null && resolvedInterval > 0 && isFinite(resolvedInterval);
46372
- var graphMin = +minValue;
46373
- var graphMax = +maxValue;
46374
- var graphRange = graphMax - graphMin;
46375
- var interval;
46376
- var steps;
46377
-
46378
- if (hasUserRange && isValidInterval) {
46379
- // 1) user range + interval
46380
- var candidateSteps = graphRange / resolvedInterval;
46381
- var isExactlyDividable = Math.abs(candidateSteps - Math.round(candidateSteps)) < 1e-10;
46382
-
46383
- if (isExactlyDividable && candidateSteps <= maxSteps) {
46384
- // 1-1) interval 호환되는 경우
46385
- interval = resolvedInterval;
46386
- steps = Math.round(candidateSteps);
46387
- } else {
46388
- // 1-2) interval 호환되지 않음 -> 사용자 interval을 사용하지 않음
46389
- steps = maxSteps;
46390
- interval = graphRange / steps;
46391
- }
46392
- } else if (hasUserRange) {
46393
- // 2) user range only
46394
- steps = maxSteps;
46395
- interval = graphRange / steps;
46396
- } else if (isValidInterval) {
46397
- // 3) user interval only
46398
- interval = resolvedInterval;
46399
- steps = Math.ceil(graphRange / interval);
46400
-
46401
- while (steps > maxSteps) {
46402
- interval *= 2;
46403
- steps = Math.ceil(graphRange / interval);
46404
- }
46405
-
46406
- graphMax = graphMin + interval * steps;
46407
- } else {
46408
- // 4) 기존 로직
46409
- interval = this.getInterval(range);
46410
- var increase = minValue;
46411
- var numberOfSteps;
46412
-
46413
- while (increase < maxValue) {
46414
- increase += interval;
46415
- }
46416
-
46417
- graphMax = increase;
46418
- numberOfSteps = Math.round(graphRange / interval);
46419
-
46420
- while (numberOfSteps > maxSteps) {
46421
- interval *= 2;
46422
- numberOfSteps = Math.round(graphRange / interval);
46423
- var tempInterval = graphRange / numberOfSteps;
46424
- interval = this.decimalPoint ? tempInterval : Math.ceil(tempInterval);
46425
- }
46426
-
46427
- if (graphMax - graphMin > numberOfSteps * interval) {
46428
- var _tempInterval = (graphMax - graphMin) / numberOfSteps;
46429
-
46430
- interval = this.decimalPoint ? _tempInterval : Math.ceil(_tempInterval);
46431
- }
46432
-
46433
- steps = numberOfSteps;
46434
- }
46435
-
46436
- return {
46437
- steps: steps,
46438
- interval: interval,
46439
- graphMin: graphMin,
46440
- graphMax: graphMax
46441
- };
46442
- }
46443
46355
  }]);
46444
46356
 
46445
46357
  return TimeScale;
@@ -50284,13 +50196,20 @@ var plugins_scrollbar_module = {
50284
50196
  Object.keys(merged).forEach(function (key) {
50285
50197
  scrollbarOpt[key] = merged[key];
50286
50198
  });
50287
- delete scrollbarOpt.savedPosition;
50199
+
50200
+ if (scrollbarOpt.resetPosition) {
50201
+ var _axisOpt$2, _axisOpt$2$range, _axisOpt$3;
50202
+
50203
+ scrollbarOpt.range = axisOpt !== null && axisOpt !== void 0 && (_axisOpt$2 = axisOpt[0]) !== null && _axisOpt$2 !== void 0 && (_axisOpt$2$range = _axisOpt$2.range) !== null && _axisOpt$2$range !== void 0 && _axisOpt$2$range.length ? _toConsumableArray(axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$3 = axisOpt[0]) === null || _axisOpt$3 === void 0 ? void 0 : _axisOpt$3.range) : null;
50204
+ this.resetScrollbarSavedPositions(dir);
50205
+ }
50288
50206
 
50289
50207
  if (!scrollbarOpt.isInit) {
50290
- var _axisOpt$2, _axisOpt$3, _axisOpt$3$range, _axisOpt$4;
50208
+ var _axisOpt$4, _axisOpt$5, _axisOpt$5$range, _axisOpt$6;
50291
50209
 
50292
- scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$2 = axisOpt[0]) === null || _axisOpt$2 === void 0 ? void 0 : _axisOpt$2.type;
50293
- scrollbarOpt.range = axisOpt !== null && axisOpt !== void 0 && (_axisOpt$3 = axisOpt[0]) !== null && _axisOpt$3 !== void 0 && (_axisOpt$3$range = _axisOpt$3.range) !== null && _axisOpt$3$range !== void 0 && _axisOpt$3$range.length ? _toConsumableArray(axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$4 = axisOpt[0]) === null || _axisOpt$4 === void 0 ? void 0 : _axisOpt$4.range) : null;
50210
+ scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$4 = axisOpt[0]) === null || _axisOpt$4 === void 0 ? void 0 : _axisOpt$4.type;
50211
+ scrollbarOpt.range = axisOpt !== null && axisOpt !== void 0 && (_axisOpt$5 = axisOpt[0]) !== null && _axisOpt$5 !== void 0 && (_axisOpt$5$range = _axisOpt$5.range) !== null && _axisOpt$5$range !== void 0 && _axisOpt$5$range.length ? _toConsumableArray(axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$6 = axisOpt[0]) === null || _axisOpt$6 === void 0 ? void 0 : _axisOpt$6.range) : null;
50212
+ this.resetScrollbarSavedPositions(dir);
50294
50213
  this.initScrollbarRange(dir);
50295
50214
  this.createScrollbarLayout(dir);
50296
50215
  this.createScrollbar(dir);
@@ -50353,7 +50272,7 @@ var plugins_scrollbar_module = {
50353
50272
  * @param updateData is update data
50354
50273
  */
50355
50274
  updateScrollbarInfo: function updateScrollbarInfo(dir, updateData) {
50356
- var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$5, _newOpt$0$scrollbar2;
50275
+ var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$7, _newOpt$0$scrollbar2;
50357
50276
 
50358
50277
  var _this$options = this.options,
50359
50278
  axesX = _this$options.axesX,
@@ -50369,23 +50288,21 @@ var plugins_scrollbar_module = {
50369
50288
  }
50370
50289
 
50371
50290
  var axisOpt = dir === 'x' ? this.axesX : this.axesY;
50372
- 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$5 = axisOpt[0]) === null || _axisOpt$5 === void 0 ? void 0 : _axisOpt$5.range);
50291
+ 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$7 = axisOpt[0]) === null || _axisOpt$7 === void 0 ? void 0 : _axisOpt$7.range);
50373
50292
 
50374
50293
  if (isUpdateAxesRange || updateData) {
50375
50294
  var _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2;
50376
50295
 
50377
50296
  var isResetPosition = dir === 'x' ? (_this$options$axesX2 = this.options.axesX) === null || _this$options$axesX2 === void 0 ? void 0 : (_this$options$axesX2$ = _this$options$axesX2[0]) === null || _this$options$axesX2$ === void 0 ? void 0 : (_this$options$axesX2$2 = _this$options$axesX2$.scrollbar) === null || _this$options$axesX2$2 === void 0 ? void 0 : _this$options$axesX2$2.resetPosition : (_this$options$axesY2 = this.options.axesY) === null || _this$options$axesY2 === void 0 ? void 0 : (_this$options$axesY2$ = _this$options$axesY2[0]) === null || _this$options$axesY2$ === void 0 ? void 0 : (_this$options$axesY2$2 = _this$options$axesY2$.scrollbar) === null || _this$options$axesY2$2 === void 0 ? void 0 : _this$options$axesY2$2.resetPosition;
50378
50297
 
50379
- if (isUpdateAxesRange || isResetPosition) {
50298
+ if (isUpdateAxesRange) {
50380
50299
  var _newOpt$5, _newOpt$5$range, _newOpt$6;
50381
50300
 
50382
- this.scrollbar[dir].range = newOpt !== null && newOpt !== void 0 && (_newOpt$5 = newOpt[0]) !== null && _newOpt$5 !== void 0 && (_newOpt$5$range = _newOpt$5.range) !== null && _newOpt$5$range !== void 0 && _newOpt$5$range.length ? _toConsumableArray(newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$6 = newOpt[0]) === null || _newOpt$6 === void 0 ? void 0 : _newOpt$6.range) : null; // range가 업데이트되면 저장된 스크롤 위치를 초기화
50301
+ this.scrollbar[dir].range = newOpt !== null && newOpt !== void 0 && (_newOpt$5 = newOpt[0]) !== null && _newOpt$5 !== void 0 && (_newOpt$5$range = _newOpt$5.range) !== null && _newOpt$5$range !== void 0 && _newOpt$5$range.length ? _toConsumableArray(newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$6 = newOpt[0]) === null || _newOpt$6 === void 0 ? void 0 : _newOpt$6.range) : null;
50302
+ }
50383
50303
 
50384
- delete this.scrollbar[dir].savedPosition;
50385
- } else if (updateData) {
50386
- // 데이터가 업데이트되면 저장된 픽셀 위치는 더 이상 유효하지 않으므로 삭제하여
50387
- // 논리적 범위에 따라 다시 계산하도록 합니다.
50388
- delete this.scrollbar[dir].savedPosition;
50304
+ if (isResetPosition || updateData) {
50305
+ this.resetScrollbarSavedPositions(dir);
50389
50306
  }
50390
50307
 
50391
50308
  this.initScrollbarRange(dir);
@@ -50523,17 +50440,32 @@ var plugins_scrollbar_module = {
50523
50440
  var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
50524
50441
  var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
50525
50442
  var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
50526
- var trackSize = fullSize - buttonSize * 2; // 현재 위치를 보존해야 하는 경우 기존 위치를 저장
50443
+ var trackSize = fullSize - buttonSize * 2;
50444
+ var thumbSize = this.getScrollbarThumbSize(dir, trackSize); // 비율로 저장된 위치가 있으면 새 track 크기에 맞게 복원
50527
50445
 
50528
- var savedThumbPosition = null;
50446
+ if (preservePosition && scrollbarOpt.savedPositionRatio !== undefined) {
50447
+ var maxPosition = Math.max(0, trackSize - thumbSize.size);
50448
+
50449
+ if (scrollbarOpt.savedAtStart) {
50450
+ thumbSize.position = 0;
50451
+ } else if (scrollbarOpt.savedAtEnd) {
50452
+ thumbSize.position = maxPosition;
50453
+ } else {
50454
+ thumbSize.position = Math.min(scrollbarOpt.savedPositionRatio * trackSize, maxPosition);
50455
+ }
50456
+ } // 위치를 비율 및 처음/끝 고정 여부로 저장
50457
+ // currentMaxPosition === 0 (thumbSize >= trackSize) 인 경우 저장하지 않음
50458
+ // → trackSize가 다시 커졌을 때 이전 savedAtEnd/savedAtStart/savedPositionRatio 상태를 유지
50529
50459
 
50530
- if (preservePosition && scrollbarOpt.savedPosition !== undefined) {
50531
- savedThumbPosition = scrollbarOpt.savedPosition;
50532
- }
50533
50460
 
50534
- var thumbSize = this.getScrollbarThumbSize(dir, trackSize, savedThumbPosition); // 새로 계산된 위치를 저장
50461
+ var currentMaxPosition = Math.max(0, trackSize - thumbSize.size);
50462
+
50463
+ if (currentMaxPosition > 0) {
50464
+ scrollbarOpt.savedPositionRatio = thumbSize.position / trackSize;
50465
+ scrollbarOpt.savedAtStart = thumbSize.position <= 0;
50466
+ scrollbarOpt.savedAtEnd = thumbSize.position >= currentMaxPosition;
50467
+ }
50535
50468
 
50536
- scrollbarOpt.savedPosition = thumbSize.position;
50537
50469
  var scrollbarStyle = 'display: block;';
50538
50470
  var scrollbarTrackStyle;
50539
50471
  var scrollbarThumbStyle;
@@ -50600,9 +50532,8 @@ var plugins_scrollbar_module = {
50600
50532
  * get scrollbar thumb size
50601
50533
  * @param dir axis direction ('x' | 'y')
50602
50534
  * @param trackSize scrollbar track size
50603
- * @param savedThumbPosition 기존 위치를 보존해야 하는 경우 저장된 위치
50604
50535
  */
50605
- getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize, savedThumbPosition) {
50536
+ getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
50606
50537
  var scrollbarOpt = this.scrollbar[dir];
50607
50538
 
50608
50539
  var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
@@ -50633,9 +50564,9 @@ var plugins_scrollbar_module = {
50633
50564
  var _range = +max - +min;
50634
50565
 
50635
50566
  if (axesType === 'time') {
50636
- var _axisOpt$6, _this$labelRange$dir, _this$labelRange$dir$;
50567
+ var _axisOpt$8, _this$labelRange$dir, _this$labelRange$dir$;
50637
50568
 
50638
- interval = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$6 = axisOpt[0]) === null || _axisOpt$6 === void 0 ? void 0 : _axisOpt$6.getInterval({
50569
+ interval = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$8 = axisOpt[0]) === null || _axisOpt$8 === void 0 ? void 0 : _axisOpt$8.getInterval({
50639
50570
  minValue: minMax.min,
50640
50571
  maxValue: minMax.max,
50641
50572
  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
@@ -50655,12 +50586,7 @@ var plugins_scrollbar_module = {
50655
50586
 
50656
50587
  scrollbarOpt.startValue = startValue;
50657
50588
  scrollbarOpt.steps = steps;
50658
- scrollbarOpt.interval = interval; // 기존 위치를 보존해야 하는 경우 저장된 위치를 사용
50659
-
50660
- if (savedThumbPosition !== null) {
50661
- thumbPosition = savedThumbPosition;
50662
- }
50663
-
50589
+ scrollbarOpt.interval = interval;
50664
50590
  return {
50665
50591
  size: thumbSize,
50666
50592
  position: thumbPosition
@@ -50727,18 +50653,35 @@ var plugins_scrollbar_module = {
50727
50653
  if (!isOutOfRange) {
50728
50654
  scrollbarOpt.range = [minValue, maxValue]; // 사용자가 스크롤할 때는 저장된 위치를 초기화
50729
50655
 
50730
- delete scrollbarOpt.savedPosition;
50656
+ this.resetScrollbarSavedPositions(dir);
50731
50657
  this.update({
50732
50658
  updateSeries: false,
50733
50659
  updateSelTip: {
50734
50660
  update: false,
50735
50661
  keepDomain: false
50736
50662
  },
50737
- lightUpdate: minValue > 1
50663
+ lightUpdate: minValue > 1,
50664
+ updateByScrollbar: true
50738
50665
  });
50739
50666
  }
50740
50667
  },
50741
50668
 
50669
+ /**
50670
+ * reset scrollbar saved positions
50671
+ * @param dir axis direction ('x' | 'y')
50672
+ */
50673
+ resetScrollbarSavedPositions: function resetScrollbarSavedPositions(dir) {
50674
+ var scrollbarOpt = this.scrollbar[dir];
50675
+
50676
+ if (!scrollbarOpt) {
50677
+ return;
50678
+ }
50679
+
50680
+ delete scrollbarOpt.savedPositionRatio;
50681
+ delete scrollbarOpt.savedAtStart;
50682
+ delete scrollbarOpt.savedAtEnd;
50683
+ },
50684
+
50742
50685
  /**
50743
50686
  * create scroll event
50744
50687
  */
@@ -50993,13 +50936,15 @@ var plugins_scrollbar_module = {
50993
50936
 
50994
50937
  this.scrollbar[dir].range = [movedMin, movedMax]; // 사용자가 드래그로 스크롤할 때는 저장된 위치를 초기화
50995
50938
 
50996
- delete this.scrollbar[dir].savedPosition;
50939
+ this.resetScrollbarSavedPositions(dir);
50997
50940
  this.update({
50998
50941
  updateSeries: false,
50999
50942
  updateSelTip: {
51000
50943
  update: false,
51001
50944
  keepDomain: false
51002
- }
50945
+ },
50946
+ lightUpdate: movedMin > 1,
50947
+ updateByScrollbar: true
51003
50948
  });
51004
50949
  },
51005
50950
 
@@ -55219,9 +55164,10 @@ var element_tip_modules = {
55219
55164
  interval = scrollbarOpt.interval,
55220
55165
  type = scrollbarOpt.type;
55221
55166
 
55222
- var _range = _slicedToArray(range, 2),
55223
- min = _range[0],
55224
- max = _range[1];
55167
+ var _ref3 = range !== null && range !== void 0 ? range : [],
55168
+ _ref4 = _slicedToArray(_ref3, 2),
55169
+ min = _ref4[0],
55170
+ max = _ref4[1];
55225
55171
 
55226
55172
  if (truthyNumber(min) && truthyNumber(max)) {
55227
55173
  labelCount = Math.floor((+max - +min) / interval) + 1;
@@ -55890,15 +55836,15 @@ var chart_core_EvChart = /*#__PURE__*/function () {
55890
55836
  this.axesRange = this.getAxesRange();
55891
55837
  this.labelOffset = this.getLabelOffset();
55892
55838
  this.labelRange = this.getAxesLabelRange();
55893
- this.axesSteps = this.calculateSteps();
55894
- this.adjustXAndYAxisWidth();
55895
- this.drawAxis(hitInfo);
55896
- this.drawSeries(hitInfo);
55897
55839
 
55898
55840
  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) {
55899
55841
  this.updateScrollbarPosition();
55900
55842
  }
55901
55843
 
55844
+ this.axesSteps = this.calculateSteps();
55845
+ this.adjustXAndYAxisWidth();
55846
+ this.drawAxis(hitInfo);
55847
+ this.drawSeries(hitInfo);
55902
55848
  this.drawTip();
55903
55849
 
55904
55850
  if (this.bufferCanvas && ((_this$bufferCanvas = this.bufferCanvas) === null || _this$bufferCanvas === void 0 ? void 0 : _this$bufferCanvas.width) > 1 && ((_this$bufferCanvas2 = this.bufferCanvas) === null || _this$bufferCanvas2 === void 0 ? void 0 : _this$bufferCanvas2.height) > 1) {
@@ -56557,14 +56503,20 @@ var chart_core_EvChart = /*#__PURE__*/function () {
56557
56503
 
56558
56504
  }, {
56559
56505
  key: "updateScrollbar",
56560
- value: function updateScrollbar(updateData) {
56561
- var _this$scrollbar3, _this$scrollbar3$x, _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$scrollbar4, _this$scrollbar4$y, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2;
56506
+ value: function updateScrollbar(updateData, updateByScrollbar) {
56507
+ var _this$options$axesX$2, _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$options$axesY$2, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2, _this$scrollbar$x$use, _this$scrollbar3, _this$scrollbar3$x, _this$scrollbar$y$use, _this$scrollbar4, _this$scrollbar4$y;
56508
+
56509
+ var isForceUpdate = updateByScrollbar || updateData;
56510
+ var xUse = (_this$options$axesX$2 = (_this$options$axesX2 = this.options.axesX) === null || _this$options$axesX2 === void 0 ? void 0 : (_this$options$axesX2$ = _this$options$axesX2[0]) === null || _this$options$axesX2$ === void 0 ? void 0 : (_this$options$axesX2$2 = _this$options$axesX2$.scrollbar) === null || _this$options$axesX2$2 === void 0 ? void 0 : _this$options$axesX2$2.use) !== null && _this$options$axesX$2 !== void 0 ? _this$options$axesX$2 : false;
56511
+ var yUse = (_this$options$axesY$2 = (_this$options$axesY2 = this.options.axesY) === null || _this$options$axesY2 === void 0 ? void 0 : (_this$options$axesY2$ = _this$options$axesY2[0]) === null || _this$options$axesY2$ === void 0 ? void 0 : (_this$options$axesY2$2 = _this$options$axesY2$.scrollbar) === null || _this$options$axesY2$2 === void 0 ? void 0 : _this$options$axesY2$2.use) !== null && _this$options$axesY$2 !== void 0 ? _this$options$axesY$2 : false;
56512
+ var prevXUse = (_this$scrollbar$x$use = (_this$scrollbar3 = this.scrollbar) === null || _this$scrollbar3 === void 0 ? void 0 : (_this$scrollbar3$x = _this$scrollbar3.x) === null || _this$scrollbar3$x === void 0 ? void 0 : _this$scrollbar3$x.use) !== null && _this$scrollbar$x$use !== void 0 ? _this$scrollbar$x$use : false;
56513
+ var prevYUse = (_this$scrollbar$y$use = (_this$scrollbar4 = this.scrollbar) === null || _this$scrollbar4 === void 0 ? void 0 : (_this$scrollbar4$y = _this$scrollbar4.y) === null || _this$scrollbar4$y === void 0 ? void 0 : _this$scrollbar4$y.use) !== null && _this$scrollbar$y$use !== void 0 ? _this$scrollbar$y$use : false;
56562
56514
 
56563
- if ((_this$scrollbar3 = this.scrollbar) !== null && _this$scrollbar3 !== void 0 && (_this$scrollbar3$x = _this$scrollbar3.x) !== null && _this$scrollbar3$x !== void 0 && _this$scrollbar3$x.isInit || (_this$options$axesX2 = this.options.axesX) !== null && _this$options$axesX2 !== void 0 && (_this$options$axesX2$ = _this$options$axesX2[0]) !== null && _this$options$axesX2$ !== void 0 && (_this$options$axesX2$2 = _this$options$axesX2$.scrollbar) !== null && _this$options$axesX2$2 !== void 0 && _this$options$axesX2$2.use) {
56515
+ if (xUse !== prevXUse || xUse || isForceUpdate && xUse) {
56564
56516
  this.updateScrollbarInfo('x', updateData);
56565
56517
  }
56566
56518
 
56567
- if ((_this$scrollbar4 = this.scrollbar) !== null && _this$scrollbar4 !== void 0 && (_this$scrollbar4$y = _this$scrollbar4.y) !== null && _this$scrollbar4$y !== void 0 && _this$scrollbar4$y.isInit || (_this$options$axesY2 = this.options.axesY) !== null && _this$options$axesY2 !== void 0 && (_this$options$axesY2$ = _this$options$axesY2[0]) !== null && _this$options$axesY2$ !== void 0 && (_this$options$axesY2$2 = _this$options$axesY2$.scrollbar) !== null && _this$options$axesY2$2 !== void 0 && _this$options$axesY2$2.use) {
56519
+ if (yUse !== prevYUse || yUse || isForceUpdate && yUse) {
56568
56520
  this.updateScrollbarInfo('y', updateData);
56569
56521
  }
56570
56522
  }
@@ -56590,13 +56542,14 @@ var chart_core_EvChart = /*#__PURE__*/function () {
56590
56542
  updateLegend = updateInfo.updateLegend,
56591
56543
  updateData = updateInfo.updateData,
56592
56544
  updateTooltip = updateInfo.updateTooltip,
56593
- lightUpdate = updateInfo.lightUpdate;
56545
+ lightUpdate = updateInfo.lightUpdate,
56546
+ updateByScrollbar = updateInfo.updateByScrollbar;
56594
56547
 
56595
56548
  if (!this.isInit) {
56596
56549
  return;
56597
56550
  }
56598
56551
 
56599
- this.updateScrollbar(updateData);
56552
+ this.updateScrollbar(updateData, updateByScrollbar);
56600
56553
  this.resetProps();
56601
56554
  this.updateSeries = updateSeries;
56602
56555