evui 3.4.108 → 3.4.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evui.common.js +263 -115
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +263 -115
- package/dist/evui.umd.js.map +1 -1
- package/dist/evui.umd.min.js +1 -1
- package/dist/evui.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chart/chart.core.js +9 -0
- package/src/components/chart/element/element.bar.js +102 -92
- package/src/components/chart/plugins/plugins.scrollbar.js +123 -13
package/dist/evui.common.js
CHANGED
|
@@ -11164,7 +11164,7 @@ module.exports = exports;
|
|
|
11164
11164
|
/***/ "9224":
|
|
11165
11165
|
/***/ (function(module) {
|
|
11166
11166
|
|
|
11167
|
-
module.exports = JSON.parse("{\"a\":\"3.4.
|
|
11167
|
+
module.exports = JSON.parse("{\"a\":\"3.4.109\"}");
|
|
11168
11168
|
|
|
11169
11169
|
/***/ }),
|
|
11170
11170
|
|
|
@@ -42592,8 +42592,6 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42592
42592
|
_createClass(Bar, [{
|
|
42593
42593
|
key: "draw",
|
|
42594
42594
|
value: function draw(param) {
|
|
42595
|
-
var _this2 = this;
|
|
42596
|
-
|
|
42597
42595
|
if (!this.show) {
|
|
42598
42596
|
return;
|
|
42599
42597
|
}
|
|
@@ -42623,7 +42621,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42623
42621
|
var _ref2 = [minmaxX.minIndex, minmaxX.maxIndex];
|
|
42624
42622
|
minIndex = _ref2[0];
|
|
42625
42623
|
maxIndex = _ref2[1];
|
|
42626
|
-
}
|
|
42624
|
+
} // minIndex, maxIndex가 유효하면 실제 그릴 데이터 개수로 보정
|
|
42625
|
+
|
|
42627
42626
|
|
|
42628
42627
|
if (truthyNumber(minIndex) && truthyNumber(maxIndex)) {
|
|
42629
42628
|
totalCount = maxIndex - minIndex + 1;
|
|
@@ -42678,119 +42677,128 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42678
42677
|
this.labelOffset = labelOffset;
|
|
42679
42678
|
this.borderRadius = param.borderRadius;
|
|
42680
42679
|
this.filteredCount = totalCount;
|
|
42681
|
-
var
|
|
42682
|
-
this.data.
|
|
42683
|
-
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
42680
|
+
var startIndex = truthyNumber(minIndex) ? minIndex : 0;
|
|
42681
|
+
var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1; // 스크롤 범위 내에서만 루프 돌림
|
|
42684
42682
|
|
|
42685
|
-
|
|
42686
|
-
var
|
|
42683
|
+
for (var i = startIndex; i <= endIndex; i++) {
|
|
42684
|
+
var screenIndex = i - startIndex; // 현재 화면상의 위치 인덱스
|
|
42687
42685
|
|
|
42688
|
-
|
|
42689
|
-
return;
|
|
42690
|
-
} else if (truthyNumber(minIndex) && index > maxIndex) {
|
|
42691
|
-
return;
|
|
42692
|
-
}
|
|
42686
|
+
var item = this.data[i]; // 실제 데이터 인덱스에 해당하는 항목
|
|
42693
42687
|
|
|
42694
|
-
if (
|
|
42695
|
-
|
|
42696
|
-
} else {
|
|
42697
|
-
categoryPoint = xsp + cArea * (index - (minIndex || 0)) + cPad;
|
|
42698
|
-
}
|
|
42688
|
+
if (item) {
|
|
42689
|
+
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
42699
42690
|
|
|
42700
|
-
|
|
42701
|
-
|
|
42702
|
-
y = Math.round(categoryPoint - (bArea * barSeriesX - (h + bPad)));
|
|
42703
|
-
} else {
|
|
42704
|
-
x = Math.round(categoryPoint + (bArea * barSeriesX - (w + bPad)));
|
|
42705
|
-
y = ysp;
|
|
42706
|
-
}
|
|
42691
|
+
// 스크롤 offset(minIndex)만큼 보정해서 그리기
|
|
42692
|
+
var categoryPoint = void 0;
|
|
42707
42693
|
|
|
42708
|
-
|
|
42709
|
-
|
|
42710
|
-
w = helpers_canvas.calculateX(item.x - item.b, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42711
|
-
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp);
|
|
42694
|
+
if (isHorizontal) {
|
|
42695
|
+
categoryPoint = ysp - cArea * screenIndex - cPad;
|
|
42712
42696
|
} else {
|
|
42713
|
-
|
|
42697
|
+
categoryPoint = xsp + cArea * screenIndex + cPad;
|
|
42714
42698
|
}
|
|
42715
|
-
} else if (item.b) {
|
|
42716
|
-
// vertical stack bar chart
|
|
42717
|
-
h = helpers_canvas.calculateY(item.y - item.b, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42718
|
-
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
42719
|
-
} else {
|
|
42720
|
-
// vertical bar chart
|
|
42721
|
-
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42722
|
-
}
|
|
42723
|
-
|
|
42724
|
-
var barColor = item.dataColor || _this2.color;
|
|
42725
|
-
var legendHitInfo = param === null || param === void 0 ? void 0 : param.legendHitInfo;
|
|
42726
|
-
var selectLabelOption = param === null || param === void 0 ? void 0 : (_param$selectLabel = param.selectLabel) === null || _param$selectLabel === void 0 ? void 0 : _param$selectLabel.option;
|
|
42727
|
-
var selectItemOption = param === null || param === void 0 ? void 0 : (_param$selectItem = param.selectItem) === null || _param$selectItem === void 0 ? void 0 : _param$selectItem.option;
|
|
42728
|
-
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 : [];
|
|
42729
|
-
|
|
42730
|
-
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 : {},
|
|
42731
|
-
selectedItemDataIndex = _ref3.dataIndex,
|
|
42732
|
-
selectedItemSeriesId = _ref3.seriesID;
|
|
42733
42699
|
|
|
42734
|
-
|
|
42700
|
+
if (isHorizontal) {
|
|
42701
|
+
x = xsp;
|
|
42702
|
+
y = Math.round(categoryPoint - (bArea * barSeriesX - (h + bPad)));
|
|
42703
|
+
} else {
|
|
42704
|
+
x = Math.round(categoryPoint + (bArea * barSeriesX - (w + bPad)));
|
|
42705
|
+
y = ysp;
|
|
42706
|
+
}
|
|
42735
42707
|
|
|
42736
|
-
|
|
42737
|
-
|
|
42738
|
-
|
|
42739
|
-
|
|
42740
|
-
|
|
42741
|
-
|
|
42742
|
-
|
|
42708
|
+
if (isHorizontal) {
|
|
42709
|
+
if (item.b) {
|
|
42710
|
+
w = helpers_canvas.calculateX(item.x - item.b, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42711
|
+
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp);
|
|
42712
|
+
} else {
|
|
42713
|
+
w = helpers_canvas.calculateX(item.x, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42714
|
+
}
|
|
42715
|
+
} else if (item.b) {
|
|
42716
|
+
// vertical stack bar chart
|
|
42717
|
+
h = helpers_canvas.calculateY(item.y - item.b, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42718
|
+
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
42743
42719
|
} else {
|
|
42744
|
-
|
|
42720
|
+
// vertical bar chart
|
|
42721
|
+
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42745
42722
|
}
|
|
42746
|
-
}
|
|
42747
42723
|
|
|
42748
|
-
|
|
42749
|
-
|
|
42750
|
-
|
|
42751
|
-
|
|
42752
|
-
|
|
42753
|
-
|
|
42754
|
-
|
|
42755
|
-
|
|
42756
|
-
|
|
42757
|
-
|
|
42758
|
-
|
|
42759
|
-
|
|
42724
|
+
var barColor = item.dataColor || this.color;
|
|
42725
|
+
var legendHitInfo = param === null || param === void 0 ? void 0 : param.legendHitInfo;
|
|
42726
|
+
var selectLabelOption = param === null || param === void 0 ? void 0 : (_param$selectLabel = param.selectLabel) === null || _param$selectLabel === void 0 ? void 0 : _param$selectLabel.option;
|
|
42727
|
+
var selectItemOption = param === null || param === void 0 ? void 0 : (_param$selectItem = param.selectItem) === null || _param$selectItem === void 0 ? void 0 : _param$selectItem.option;
|
|
42728
|
+
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 : [];
|
|
42729
|
+
|
|
42730
|
+
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 : {},
|
|
42731
|
+
selectedItemDataIndex = _ref3.dataIndex,
|
|
42732
|
+
selectedItemSeriesId = _ref3.seriesID;
|
|
42733
|
+
|
|
42734
|
+
var isDownplay = false;
|
|
42735
|
+
|
|
42736
|
+
if (legendHitInfo) {
|
|
42737
|
+
isDownplay = (legendHitInfo === null || legendHitInfo === void 0 ? void 0 : legendHitInfo.sId) !== this.sId;
|
|
42738
|
+
} else if (selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.use && selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.useSeriesOpacity) {
|
|
42739
|
+
isDownplay = selectedLabelList.length && !selectedLabelList.includes(i);
|
|
42740
|
+
} else if (truthy(selectedItemDataIndex) && selectItemOption !== null && selectItemOption !== void 0 && selectItemOption.useSeriesOpacity) {
|
|
42741
|
+
if (this.isExistGrp) {
|
|
42742
|
+
isDownplay = selectedItemDataIndex !== i;
|
|
42743
|
+
} else {
|
|
42744
|
+
isDownplay = selectedItemDataIndex !== i || selectedItemSeriesId !== this.sId;
|
|
42745
|
+
}
|
|
42746
|
+
}
|
|
42760
42747
|
|
|
42761
|
-
|
|
42762
|
-
|
|
42763
|
-
|
|
42764
|
-
|
|
42765
|
-
|
|
42766
|
-
|
|
42767
|
-
|
|
42748
|
+
if (typeof barColor !== 'string') {
|
|
42749
|
+
ctx.fillStyle = helpers_canvas.createGradient(ctx, isHorizontal, {
|
|
42750
|
+
x: x,
|
|
42751
|
+
y: y,
|
|
42752
|
+
w: w,
|
|
42753
|
+
h: h
|
|
42754
|
+
}, barColor, isDownplay);
|
|
42755
|
+
} else {
|
|
42756
|
+
var noneDownplayOpacity = barColor.includes('rgba') ? helpers_util.getOpacity(barColor) : 1;
|
|
42757
|
+
var opacity = isDownplay ? 0.1 : noneDownplayOpacity;
|
|
42758
|
+
ctx.fillStyle = helpers_util.colorStringToRgba(barColor, opacity);
|
|
42768
42759
|
}
|
|
42769
|
-
});
|
|
42770
42760
|
|
|
42771
|
-
|
|
42772
|
-
|
|
42773
|
-
context: ctx,
|
|
42774
|
-
data: item,
|
|
42761
|
+
this.drawBar({
|
|
42762
|
+
ctx: ctx,
|
|
42775
42763
|
positions: {
|
|
42776
42764
|
x: x,
|
|
42777
42765
|
y: y,
|
|
42778
|
-
|
|
42779
|
-
|
|
42780
|
-
}
|
|
42781
|
-
isHighlight: false,
|
|
42782
|
-
textColor: item.dataTextColor
|
|
42766
|
+
w: w,
|
|
42767
|
+
h: h
|
|
42768
|
+
}
|
|
42783
42769
|
});
|
|
42784
|
-
}
|
|
42785
42770
|
|
|
42786
|
-
|
|
42771
|
+
if (showValue.use) {
|
|
42772
|
+
this.drawValueLabels({
|
|
42773
|
+
context: ctx,
|
|
42774
|
+
data: item,
|
|
42775
|
+
positions: {
|
|
42776
|
+
x: x,
|
|
42777
|
+
y: y,
|
|
42778
|
+
h: h,
|
|
42779
|
+
w: w
|
|
42780
|
+
},
|
|
42781
|
+
isHighlight: false,
|
|
42782
|
+
textColor: item.dataTextColor
|
|
42783
|
+
});
|
|
42784
|
+
} // 좌표 및 인덱스 정보 세팅 (툴팁/hover용)
|
|
42787
42785
|
|
|
42788
|
-
item.yp = y; // eslint-disable-line
|
|
42789
42786
|
|
|
42790
|
-
|
|
42787
|
+
item.xp = x; // eslint-disable-line
|
|
42791
42788
|
|
|
42792
|
-
|
|
42793
|
-
|
|
42789
|
+
item.yp = y; // eslint-disable-line
|
|
42790
|
+
|
|
42791
|
+
item.w = w; // eslint-disable-line
|
|
42792
|
+
|
|
42793
|
+
item.h = isHorizontal ? -h : h; // eslint-disable-line
|
|
42794
|
+
|
|
42795
|
+
item.index = i; // 실제 데이터 인덱스 (스크롤 offset 포함)
|
|
42796
|
+
// 검색(hitInfo) 로직은 this.data[0..filteredCount-1] 범위만 검사하므로,
|
|
42797
|
+
// 현재 화면에 그린 항목을 배열 앞쪽으로 매핑해준다.
|
|
42798
|
+
|
|
42799
|
+
this.data[screenIndex] = item;
|
|
42800
|
+
}
|
|
42801
|
+
}
|
|
42794
42802
|
}
|
|
42795
42803
|
/**
|
|
42796
42804
|
* Draw item highlight
|
|
@@ -43120,6 +43128,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43120
43128
|
return;
|
|
43121
43129
|
}
|
|
43122
43130
|
|
|
43131
|
+
ctx.save();
|
|
43132
|
+
|
|
43123
43133
|
if (isBorderRadius && !isStackBar) {
|
|
43124
43134
|
try {
|
|
43125
43135
|
this.drawRoundedRect(ctx, positions);
|
|
@@ -43129,6 +43139,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43129
43139
|
} else {
|
|
43130
43140
|
ctx.fillRect(x, y, w, h);
|
|
43131
43141
|
}
|
|
43142
|
+
|
|
43143
|
+
ctx.restore();
|
|
43132
43144
|
}
|
|
43133
43145
|
}, {
|
|
43134
43146
|
key: "drawRoundedRect",
|
|
@@ -43144,6 +43156,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43144
43156
|
var squarePath = new Path2D();
|
|
43145
43157
|
squarePath.rect(chartRect.x1 + labelOffset.left, chartRect.y1, chartRect.chartWidth - labelOffset.right, chartRect.chartHeight - labelOffset.bottom);
|
|
43146
43158
|
ctx.clip(squarePath);
|
|
43159
|
+
ctx.beginPath();
|
|
43147
43160
|
ctx.moveTo(x, y);
|
|
43148
43161
|
|
|
43149
43162
|
if (isHorizontal) {
|
|
@@ -49034,8 +49047,24 @@ var plugins_scrollbar_module = {
|
|
|
49034
49047
|
limitMax = +minMax.max;
|
|
49035
49048
|
}
|
|
49036
49049
|
|
|
49037
|
-
|
|
49038
|
-
|
|
49050
|
+
var originalWidth = max - min;
|
|
49051
|
+
var availableWidth = limitMax - limitMin;
|
|
49052
|
+
|
|
49053
|
+
if (originalWidth >= availableWidth) {
|
|
49054
|
+
scrollbarOpt.range[0] = limitMin;
|
|
49055
|
+
scrollbarOpt.range[1] = limitMax;
|
|
49056
|
+
} else {
|
|
49057
|
+
scrollbarOpt.range[0] = +min < limitMin ? limitMin : +min;
|
|
49058
|
+
scrollbarOpt.range[1] = +max > limitMax ? limitMax : +max;
|
|
49059
|
+
|
|
49060
|
+
if (scrollbarOpt.range[1] - scrollbarOpt.range[0] < originalWidth) {
|
|
49061
|
+
scrollbarOpt.range[0] = scrollbarOpt.range[1] - originalWidth;
|
|
49062
|
+
|
|
49063
|
+
if (scrollbarOpt.range[0] < limitMin) {
|
|
49064
|
+
scrollbarOpt.range[0] = limitMin;
|
|
49065
|
+
}
|
|
49066
|
+
}
|
|
49067
|
+
}
|
|
49039
49068
|
}
|
|
49040
49069
|
}
|
|
49041
49070
|
},
|
|
@@ -49073,9 +49102,22 @@ var plugins_scrollbar_module = {
|
|
|
49073
49102
|
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);
|
|
49074
49103
|
|
|
49075
49104
|
if (isUpdateAxesRange || updateData) {
|
|
49076
|
-
var
|
|
49105
|
+
var _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2;
|
|
49106
|
+
|
|
49107
|
+
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;
|
|
49108
|
+
|
|
49109
|
+
if (isUpdateAxesRange || isResetPosition) {
|
|
49110
|
+
var _newOpt$5, _newOpt$5$range, _newOpt$6;
|
|
49111
|
+
|
|
49112
|
+
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가 업데이트되면 저장된 스크롤 위치를 초기화
|
|
49113
|
+
|
|
49114
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49115
|
+
} else if (updateData) {
|
|
49116
|
+
// 데이터가 업데이트되면 저장된 픽셀 위치는 더 이상 유효하지 않으므로 삭제하여
|
|
49117
|
+
// 논리적 범위에 따라 다시 계산하도록 합니다.
|
|
49118
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49119
|
+
}
|
|
49077
49120
|
|
|
49078
|
-
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;
|
|
49079
49121
|
this.initScrollbarRange(dir);
|
|
49080
49122
|
}
|
|
49081
49123
|
|
|
@@ -49089,11 +49131,20 @@ var plugins_scrollbar_module = {
|
|
|
49089
49131
|
var _this$scrollbar$x, _this$scrollbar$x2, _this$scrollbar$y, _this$scrollbar$y2;
|
|
49090
49132
|
|
|
49091
49133
|
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) {
|
|
49092
|
-
|
|
49134
|
+
var _this$options$axesX3, _this$options$axesX3$, _this$options$axesX3$2;
|
|
49135
|
+
|
|
49136
|
+
// resetPosition 옵션에 따라 preservePosition 결정
|
|
49137
|
+
var preservePosition = !((_this$options$axesX3 = this.options.axesX) !== null && _this$options$axesX3 !== void 0 && (_this$options$axesX3$ = _this$options$axesX3[0]) !== null && _this$options$axesX3$ !== void 0 && (_this$options$axesX3$2 = _this$options$axesX3$.scrollbar) !== null && _this$options$axesX3$2 !== void 0 && _this$options$axesX3$2.resetPosition);
|
|
49138
|
+
this.setScrollbarPosition('x', preservePosition);
|
|
49093
49139
|
}
|
|
49094
49140
|
|
|
49095
49141
|
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) {
|
|
49096
|
-
|
|
49142
|
+
var _this$options$axesY3, _this$options$axesY3$, _this$options$axesY3$2;
|
|
49143
|
+
|
|
49144
|
+
// resetPosition 옵션에 따라 preservePosition 결정
|
|
49145
|
+
var _preservePosition = !((_this$options$axesY3 = this.options.axesY) !== null && _this$options$axesY3 !== void 0 && (_this$options$axesY3$ = _this$options$axesY3[0]) !== null && _this$options$axesY3$ !== void 0 && (_this$options$axesY3$2 = _this$options$axesY3$.scrollbar) !== null && _this$options$axesY3$2 !== void 0 && _this$options$axesY3$2.resetPosition);
|
|
49146
|
+
|
|
49147
|
+
this.setScrollbarPosition('y', _preservePosition);
|
|
49097
49148
|
}
|
|
49098
49149
|
},
|
|
49099
49150
|
|
|
@@ -49176,10 +49227,12 @@ var plugins_scrollbar_module = {
|
|
|
49176
49227
|
/**
|
|
49177
49228
|
* set scrollbar position
|
|
49178
49229
|
* @param dir axis direction ('x' | 'y')
|
|
49230
|
+
* @param preservePosition 기존 위치를 유지할지 여부
|
|
49179
49231
|
*/
|
|
49180
49232
|
setScrollbarPosition: function setScrollbarPosition(dir) {
|
|
49181
49233
|
var _this$options$title, _this$options$title2;
|
|
49182
49234
|
|
|
49235
|
+
var preservePosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
49183
49236
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49184
49237
|
|
|
49185
49238
|
if (!scrollbarOpt.use || !scrollbarOpt.range) {
|
|
@@ -49200,8 +49253,17 @@ var plugins_scrollbar_module = {
|
|
|
49200
49253
|
var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
|
|
49201
49254
|
var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
|
|
49202
49255
|
var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
|
|
49203
|
-
var trackSize = fullSize - buttonSize * 2;
|
|
49204
|
-
|
|
49256
|
+
var trackSize = fullSize - buttonSize * 2; // 현재 위치를 보존해야 하는 경우 기존 위치를 저장
|
|
49257
|
+
|
|
49258
|
+
var savedThumbPosition = null;
|
|
49259
|
+
|
|
49260
|
+
if (preservePosition && scrollbarOpt.savedPosition !== undefined) {
|
|
49261
|
+
savedThumbPosition = scrollbarOpt.savedPosition;
|
|
49262
|
+
}
|
|
49263
|
+
|
|
49264
|
+
var thumbSize = this.getScrollbarThumbSize(dir, trackSize, savedThumbPosition); // 새로 계산된 위치를 저장
|
|
49265
|
+
|
|
49266
|
+
scrollbarOpt.savedPosition = thumbSize.position;
|
|
49205
49267
|
var scrollbarStyle = 'display: block;';
|
|
49206
49268
|
var scrollbarTrackStyle;
|
|
49207
49269
|
var scrollbarThumbStyle;
|
|
@@ -49268,8 +49330,9 @@ var plugins_scrollbar_module = {
|
|
|
49268
49330
|
* get scrollbar thumb size
|
|
49269
49331
|
* @param dir axis direction ('x' | 'y')
|
|
49270
49332
|
* @param trackSize scrollbar track size
|
|
49333
|
+
* @param savedThumbPosition 기존 위치를 보존해야 하는 경우 저장된 위치
|
|
49271
49334
|
*/
|
|
49272
|
-
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
|
|
49335
|
+
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize, savedThumbPosition) {
|
|
49273
49336
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49274
49337
|
|
|
49275
49338
|
var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
|
|
@@ -49322,7 +49385,12 @@ var plugins_scrollbar_module = {
|
|
|
49322
49385
|
|
|
49323
49386
|
scrollbarOpt.startValue = startValue;
|
|
49324
49387
|
scrollbarOpt.steps = steps;
|
|
49325
|
-
scrollbarOpt.interval = interval;
|
|
49388
|
+
scrollbarOpt.interval = interval; // 기존 위치를 보존해야 하는 경우 저장된 위치를 사용
|
|
49389
|
+
|
|
49390
|
+
if (savedThumbPosition !== null) {
|
|
49391
|
+
thumbPosition = savedThumbPosition;
|
|
49392
|
+
}
|
|
49393
|
+
|
|
49326
49394
|
return {
|
|
49327
49395
|
size: thumbSize,
|
|
49328
49396
|
position: thumbPosition
|
|
@@ -49387,7 +49455,9 @@ var plugins_scrollbar_module = {
|
|
|
49387
49455
|
}
|
|
49388
49456
|
|
|
49389
49457
|
if (!isOutOfRange) {
|
|
49390
|
-
scrollbarOpt.range = [minValue, maxValue];
|
|
49458
|
+
scrollbarOpt.range = [minValue, maxValue]; // 사용자가 스크롤할 때는 저장된 위치를 초기화
|
|
49459
|
+
|
|
49460
|
+
delete scrollbarOpt.savedPosition;
|
|
49391
49461
|
this.update({
|
|
49392
49462
|
updateSeries: false,
|
|
49393
49463
|
updateSelTip: {
|
|
@@ -49402,7 +49472,9 @@ var plugins_scrollbar_module = {
|
|
|
49402
49472
|
* create scroll event
|
|
49403
49473
|
*/
|
|
49404
49474
|
createScrollEvent: function createScrollEvent() {
|
|
49405
|
-
var _this = this
|
|
49475
|
+
var _this = this,
|
|
49476
|
+
_this$scrollbar$x6,
|
|
49477
|
+
_this$scrollbar$y5;
|
|
49406
49478
|
|
|
49407
49479
|
this.onScrollbarClick = function (e) {
|
|
49408
49480
|
e.preventDefault();
|
|
@@ -49494,9 +49566,65 @@ var plugins_scrollbar_module = {
|
|
|
49494
49566
|
};
|
|
49495
49567
|
|
|
49496
49568
|
this.onScrollbarWheel = function (e) {
|
|
49569
|
+
var _this$tooltipDOM, _this$tooltipDOM$styl, _this$tooltipDOM2, _this$scrollbar$x3, _this$scrollbar$x5, _this$scrollbar$y4;
|
|
49570
|
+
|
|
49571
|
+
var isTooltipVisible = ((_this$tooltipDOM = _this.tooltipDOM) === null || _this$tooltipDOM === void 0 ? void 0 : (_this$tooltipDOM$styl = _this$tooltipDOM.style) === null || _this$tooltipDOM$styl === void 0 ? void 0 : _this$tooltipDOM$styl.display) === 'block';
|
|
49572
|
+
var tooltipBodyDOM = _this.tooltipBodyDOM || ((_this$tooltipDOM2 = _this.tooltipDOM) === null || _this$tooltipDOM2 === void 0 ? void 0 : _this$tooltipDOM2.querySelector(_this.options.tooltip.htmlScrollTarget));
|
|
49573
|
+
|
|
49574
|
+
if (isTooltipVisible && tooltipBodyDOM) {
|
|
49575
|
+
var scrollTop = tooltipBodyDOM.scrollTop,
|
|
49576
|
+
scrollHeight = tooltipBodyDOM.scrollHeight,
|
|
49577
|
+
clientHeight = tooltipBodyDOM.clientHeight;
|
|
49578
|
+
var isAtTop = scrollTop <= 0;
|
|
49579
|
+
var isAtBottom = scrollTop + clientHeight >= scrollHeight;
|
|
49580
|
+
var isScrollingUp = e.deltaY < 0;
|
|
49581
|
+
var isScrollingDown = e.deltaY > 0;
|
|
49582
|
+
|
|
49583
|
+
if (isAtTop && isScrollingUp || isAtBottom && isScrollingDown) {// 툴팁의 스크롤이 맨 위나 맨 아래에 닿았는데 스크롤 하면 차트 스크롤 허용
|
|
49584
|
+
} else {
|
|
49585
|
+
// 툴팁 내부 스크롤만 수행
|
|
49586
|
+
return;
|
|
49587
|
+
}
|
|
49588
|
+
}
|
|
49589
|
+
|
|
49497
49590
|
e.preventDefault();
|
|
49591
|
+
var threshold = 1; // 최소 스크롤 임계값
|
|
49592
|
+
// Shift + 휠: 가로 스크롤 (일반 마우스 휠 지원)
|
|
49593
|
+
|
|
49594
|
+
if ((_this$scrollbar$x3 = _this.scrollbar.x) !== null && _this$scrollbar$x3 !== void 0 && _this$scrollbar$x3.use && e.shiftKey && Math.abs(e.deltaY) > threshold) {
|
|
49595
|
+
_this.updateScrollbarRange('x', e.deltaY > 0);
|
|
49596
|
+
|
|
49597
|
+
return;
|
|
49598
|
+
} // 대각선 스크롤 처리: 더 큰 방향을 우선으로 처리
|
|
49599
|
+
|
|
49600
|
+
|
|
49601
|
+
var absX = Math.abs(e.deltaX);
|
|
49602
|
+
var absY = Math.abs(e.deltaY);
|
|
49603
|
+
|
|
49604
|
+
if (absX > threshold && absY > threshold) {
|
|
49605
|
+
var _this$scrollbar$x4, _this$scrollbar$y3;
|
|
49606
|
+
|
|
49607
|
+
// 두 방향 모두 임계값 이상일 때: 더 큰 방향을 우선 처리
|
|
49608
|
+
if (absX > absY && (_this$scrollbar$x4 = _this.scrollbar.x) !== null && _this$scrollbar$x4 !== void 0 && _this$scrollbar$x4.use) {
|
|
49609
|
+
_this.updateScrollbarRange('x', e.deltaX > 0);
|
|
49610
|
+
} else if (absY > absX && (_this$scrollbar$y3 = _this.scrollbar.y) !== null && _this$scrollbar$y3 !== void 0 && _this$scrollbar$y3.use) {
|
|
49611
|
+
_this.updateScrollbarRange('y', e.deltaY < 0);
|
|
49612
|
+
}
|
|
49613
|
+
|
|
49614
|
+
return;
|
|
49615
|
+
} // 가로 스크롤 처리 (deltaX - 트랙패드 좌우 스크롤)
|
|
49616
|
+
|
|
49617
|
+
|
|
49618
|
+
if ((_this$scrollbar$x5 = _this.scrollbar.x) !== null && _this$scrollbar$x5 !== void 0 && _this$scrollbar$x5.use && absX > threshold) {
|
|
49619
|
+
_this.updateScrollbarRange('x', e.deltaX > 0);
|
|
49498
49620
|
|
|
49499
|
-
|
|
49621
|
+
return;
|
|
49622
|
+
} // 세로 스크롤 처리 (deltaY)
|
|
49623
|
+
|
|
49624
|
+
|
|
49625
|
+
if ((_this$scrollbar$y4 = _this.scrollbar.y) !== null && _this$scrollbar$y4 !== void 0 && _this$scrollbar$y4.use && absY > threshold) {
|
|
49626
|
+
_this.updateScrollbarRange('y', e.deltaY < 0);
|
|
49627
|
+
}
|
|
49500
49628
|
};
|
|
49501
49629
|
|
|
49502
49630
|
if (this.scrollbar.x.use && !this.scrollbar.x.isInit) {
|
|
@@ -49507,12 +49635,16 @@ var plugins_scrollbar_module = {
|
|
|
49507
49635
|
}
|
|
49508
49636
|
|
|
49509
49637
|
if (this.scrollbar.y.use && !this.scrollbar.y.isInit) {
|
|
49510
|
-
var _this$overlayCanvas;
|
|
49511
|
-
|
|
49512
49638
|
var scrollbarYDOM = this.scrollbar.y.dom;
|
|
49513
49639
|
scrollbarYDOM.addEventListener('click', this.onScrollbarClick);
|
|
49514
49640
|
scrollbarYDOM.addEventListener('mousedown', this.onScrollbarDown);
|
|
49515
49641
|
scrollbarYDOM.addEventListener('mouseleave', this.onScrollbarLeave);
|
|
49642
|
+
} // 가로 또는 세로 스크롤바가 있으면 휠 이벤트 등록
|
|
49643
|
+
|
|
49644
|
+
|
|
49645
|
+
if ((_this$scrollbar$x6 = this.scrollbar.x) !== null && _this$scrollbar$x6 !== void 0 && _this$scrollbar$x6.use || (_this$scrollbar$y5 = this.scrollbar.y) !== null && _this$scrollbar$y5 !== void 0 && _this$scrollbar$y5.use) {
|
|
49646
|
+
var _this$overlayCanvas;
|
|
49647
|
+
|
|
49516
49648
|
(_this$overlayCanvas = this.overlayCanvas) === null || _this$overlayCanvas === void 0 ? void 0 : _this$overlayCanvas.addEventListener('wheel', this.onScrollbarWheel, {
|
|
49517
49649
|
passive: false
|
|
49518
49650
|
});
|
|
@@ -49588,7 +49720,9 @@ var plugins_scrollbar_module = {
|
|
|
49588
49720
|
return;
|
|
49589
49721
|
}
|
|
49590
49722
|
|
|
49591
|
-
this.scrollbar[dir].range = [movedMin, movedMax];
|
|
49723
|
+
this.scrollbar[dir].range = [movedMin, movedMax]; // 사용자가 드래그로 스크롤할 때는 저장된 위치를 초기화
|
|
49724
|
+
|
|
49725
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49592
49726
|
this.update({
|
|
49593
49727
|
updateSeries: false,
|
|
49594
49728
|
updateSelTip: {
|
|
@@ -49637,15 +49771,17 @@ var plugins_scrollbar_module = {
|
|
|
49637
49771
|
* @param dir axis direction ('x' | 'y')
|
|
49638
49772
|
*/
|
|
49639
49773
|
destroyScrollbar: function destroyScrollbar(dir) {
|
|
49640
|
-
var
|
|
49774
|
+
var scrollbarDOM = this.scrollbar[dir].dom;
|
|
49775
|
+
|
|
49776
|
+
if (scrollbarDOM) {
|
|
49777
|
+
var _this$scrollbar$x7, _this$scrollbar$y6;
|
|
49641
49778
|
|
|
49642
|
-
|
|
49643
|
-
scrollbarXDOM.remove();
|
|
49779
|
+
scrollbarDOM.remove();
|
|
49644
49780
|
this.scrollbar[dir] = {
|
|
49645
49781
|
isInit: false
|
|
49646
|
-
};
|
|
49782
|
+
}; // 가로, 세로 스크롤바 모두 없어지면 휠 이벤트 제거
|
|
49647
49783
|
|
|
49648
|
-
if (
|
|
49784
|
+
if (!((_this$scrollbar$x7 = this.scrollbar.x) !== null && _this$scrollbar$x7 !== void 0 && _this$scrollbar$x7.use) && !((_this$scrollbar$y6 = this.scrollbar.y) !== null && _this$scrollbar$y6 !== void 0 && _this$scrollbar$y6.use)) {
|
|
49649
49785
|
var _this$overlayCanvas2;
|
|
49650
49786
|
|
|
49651
49787
|
(_this$overlayCanvas2 = this.overlayCanvas) === null || _this$overlayCanvas2 === void 0 ? void 0 : _this$overlayCanvas2.removeEventListener('wheel', this.onScrollbarWheel, {
|
|
@@ -54818,6 +54954,18 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
54818
54954
|
}, {
|
|
54819
54955
|
key: "resize",
|
|
54820
54956
|
value: function resize(promiseRes) {
|
|
54957
|
+
var _this$scrollbar3, _this$scrollbar4;
|
|
54958
|
+
|
|
54959
|
+
// 차트 크기가 변경될 때 저장된 스크롤 픽셀 위치를 초기화하여
|
|
54960
|
+
// 새로운 크기에 맞춰 스크롤바 크기/위치를 재계산하도록 함
|
|
54961
|
+
if ((_this$scrollbar3 = this.scrollbar) !== null && _this$scrollbar3 !== void 0 && _this$scrollbar3.x) {
|
|
54962
|
+
delete this.scrollbar.x.savedPosition;
|
|
54963
|
+
}
|
|
54964
|
+
|
|
54965
|
+
if ((_this$scrollbar4 = this.scrollbar) !== null && _this$scrollbar4 !== void 0 && _this$scrollbar4.y) {
|
|
54966
|
+
delete this.scrollbar.y.savedPosition;
|
|
54967
|
+
}
|
|
54968
|
+
|
|
54821
54969
|
this.clear();
|
|
54822
54970
|
this.bufferCtx.restore();
|
|
54823
54971
|
this.bufferCtx.save();
|