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.umd.js
CHANGED
|
@@ -11173,7 +11173,7 @@ module.exports = exports;
|
|
|
11173
11173
|
/***/ "9224":
|
|
11174
11174
|
/***/ (function(module) {
|
|
11175
11175
|
|
|
11176
|
-
module.exports = JSON.parse("{\"a\":\"3.4.
|
|
11176
|
+
module.exports = JSON.parse("{\"a\":\"3.4.109\"}");
|
|
11177
11177
|
|
|
11178
11178
|
/***/ }),
|
|
11179
11179
|
|
|
@@ -42601,8 +42601,6 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42601
42601
|
_createClass(Bar, [{
|
|
42602
42602
|
key: "draw",
|
|
42603
42603
|
value: function draw(param) {
|
|
42604
|
-
var _this2 = this;
|
|
42605
|
-
|
|
42606
42604
|
if (!this.show) {
|
|
42607
42605
|
return;
|
|
42608
42606
|
}
|
|
@@ -42632,7 +42630,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42632
42630
|
var _ref2 = [minmaxX.minIndex, minmaxX.maxIndex];
|
|
42633
42631
|
minIndex = _ref2[0];
|
|
42634
42632
|
maxIndex = _ref2[1];
|
|
42635
|
-
}
|
|
42633
|
+
} // minIndex, maxIndex가 유효하면 실제 그릴 데이터 개수로 보정
|
|
42634
|
+
|
|
42636
42635
|
|
|
42637
42636
|
if (truthyNumber(minIndex) && truthyNumber(maxIndex)) {
|
|
42638
42637
|
totalCount = maxIndex - minIndex + 1;
|
|
@@ -42687,119 +42686,128 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42687
42686
|
this.labelOffset = labelOffset;
|
|
42688
42687
|
this.borderRadius = param.borderRadius;
|
|
42689
42688
|
this.filteredCount = totalCount;
|
|
42690
|
-
var
|
|
42691
|
-
this.data.
|
|
42692
|
-
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
42689
|
+
var startIndex = truthyNumber(minIndex) ? minIndex : 0;
|
|
42690
|
+
var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1; // 스크롤 범위 내에서만 루프 돌림
|
|
42693
42691
|
|
|
42694
|
-
|
|
42695
|
-
var
|
|
42692
|
+
for (var i = startIndex; i <= endIndex; i++) {
|
|
42693
|
+
var screenIndex = i - startIndex; // 현재 화면상의 위치 인덱스
|
|
42696
42694
|
|
|
42697
|
-
|
|
42698
|
-
return;
|
|
42699
|
-
} else if (truthyNumber(minIndex) && index > maxIndex) {
|
|
42700
|
-
return;
|
|
42701
|
-
}
|
|
42695
|
+
var item = this.data[i]; // 실제 데이터 인덱스에 해당하는 항목
|
|
42702
42696
|
|
|
42703
|
-
if (
|
|
42704
|
-
|
|
42705
|
-
} else {
|
|
42706
|
-
categoryPoint = xsp + cArea * (index - (minIndex || 0)) + cPad;
|
|
42707
|
-
}
|
|
42697
|
+
if (item) {
|
|
42698
|
+
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
42708
42699
|
|
|
42709
|
-
|
|
42710
|
-
|
|
42711
|
-
y = Math.round(categoryPoint - (bArea * barSeriesX - (h + bPad)));
|
|
42712
|
-
} else {
|
|
42713
|
-
x = Math.round(categoryPoint + (bArea * barSeriesX - (w + bPad)));
|
|
42714
|
-
y = ysp;
|
|
42715
|
-
}
|
|
42700
|
+
// 스크롤 offset(minIndex)만큼 보정해서 그리기
|
|
42701
|
+
var categoryPoint = void 0;
|
|
42716
42702
|
|
|
42717
|
-
|
|
42718
|
-
|
|
42719
|
-
w = helpers_canvas.calculateX(item.x - item.b, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42720
|
-
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp);
|
|
42703
|
+
if (isHorizontal) {
|
|
42704
|
+
categoryPoint = ysp - cArea * screenIndex - cPad;
|
|
42721
42705
|
} else {
|
|
42722
|
-
|
|
42706
|
+
categoryPoint = xsp + cArea * screenIndex + cPad;
|
|
42723
42707
|
}
|
|
42724
|
-
} else if (item.b) {
|
|
42725
|
-
// vertical stack bar chart
|
|
42726
|
-
h = helpers_canvas.calculateY(item.y - item.b, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42727
|
-
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
42728
|
-
} else {
|
|
42729
|
-
// vertical bar chart
|
|
42730
|
-
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42731
|
-
}
|
|
42732
|
-
|
|
42733
|
-
var barColor = item.dataColor || _this2.color;
|
|
42734
|
-
var legendHitInfo = param === null || param === void 0 ? void 0 : param.legendHitInfo;
|
|
42735
|
-
var selectLabelOption = param === null || param === void 0 ? void 0 : (_param$selectLabel = param.selectLabel) === null || _param$selectLabel === void 0 ? void 0 : _param$selectLabel.option;
|
|
42736
|
-
var selectItemOption = param === null || param === void 0 ? void 0 : (_param$selectItem = param.selectItem) === null || _param$selectItem === void 0 ? void 0 : _param$selectItem.option;
|
|
42737
|
-
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 : [];
|
|
42738
|
-
|
|
42739
|
-
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 : {},
|
|
42740
|
-
selectedItemDataIndex = _ref3.dataIndex,
|
|
42741
|
-
selectedItemSeriesId = _ref3.seriesID;
|
|
42742
42708
|
|
|
42743
|
-
|
|
42709
|
+
if (isHorizontal) {
|
|
42710
|
+
x = xsp;
|
|
42711
|
+
y = Math.round(categoryPoint - (bArea * barSeriesX - (h + bPad)));
|
|
42712
|
+
} else {
|
|
42713
|
+
x = Math.round(categoryPoint + (bArea * barSeriesX - (w + bPad)));
|
|
42714
|
+
y = ysp;
|
|
42715
|
+
}
|
|
42744
42716
|
|
|
42745
|
-
|
|
42746
|
-
|
|
42747
|
-
|
|
42748
|
-
|
|
42749
|
-
|
|
42750
|
-
|
|
42751
|
-
|
|
42717
|
+
if (isHorizontal) {
|
|
42718
|
+
if (item.b) {
|
|
42719
|
+
w = helpers_canvas.calculateX(item.x - item.b, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42720
|
+
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp);
|
|
42721
|
+
} else {
|
|
42722
|
+
w = helpers_canvas.calculateX(item.x, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42723
|
+
}
|
|
42724
|
+
} else if (item.b) {
|
|
42725
|
+
// vertical stack bar chart
|
|
42726
|
+
h = helpers_canvas.calculateY(item.y - item.b, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42727
|
+
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
42752
42728
|
} else {
|
|
42753
|
-
|
|
42729
|
+
// vertical bar chart
|
|
42730
|
+
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42754
42731
|
}
|
|
42755
|
-
}
|
|
42756
42732
|
|
|
42757
|
-
|
|
42758
|
-
|
|
42759
|
-
|
|
42760
|
-
|
|
42761
|
-
|
|
42762
|
-
|
|
42763
|
-
|
|
42764
|
-
|
|
42765
|
-
|
|
42766
|
-
|
|
42767
|
-
|
|
42768
|
-
|
|
42733
|
+
var barColor = item.dataColor || this.color;
|
|
42734
|
+
var legendHitInfo = param === null || param === void 0 ? void 0 : param.legendHitInfo;
|
|
42735
|
+
var selectLabelOption = param === null || param === void 0 ? void 0 : (_param$selectLabel = param.selectLabel) === null || _param$selectLabel === void 0 ? void 0 : _param$selectLabel.option;
|
|
42736
|
+
var selectItemOption = param === null || param === void 0 ? void 0 : (_param$selectItem = param.selectItem) === null || _param$selectItem === void 0 ? void 0 : _param$selectItem.option;
|
|
42737
|
+
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 : [];
|
|
42738
|
+
|
|
42739
|
+
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 : {},
|
|
42740
|
+
selectedItemDataIndex = _ref3.dataIndex,
|
|
42741
|
+
selectedItemSeriesId = _ref3.seriesID;
|
|
42742
|
+
|
|
42743
|
+
var isDownplay = false;
|
|
42744
|
+
|
|
42745
|
+
if (legendHitInfo) {
|
|
42746
|
+
isDownplay = (legendHitInfo === null || legendHitInfo === void 0 ? void 0 : legendHitInfo.sId) !== this.sId;
|
|
42747
|
+
} else if (selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.use && selectLabelOption !== null && selectLabelOption !== void 0 && selectLabelOption.useSeriesOpacity) {
|
|
42748
|
+
isDownplay = selectedLabelList.length && !selectedLabelList.includes(i);
|
|
42749
|
+
} else if (truthy(selectedItemDataIndex) && selectItemOption !== null && selectItemOption !== void 0 && selectItemOption.useSeriesOpacity) {
|
|
42750
|
+
if (this.isExistGrp) {
|
|
42751
|
+
isDownplay = selectedItemDataIndex !== i;
|
|
42752
|
+
} else {
|
|
42753
|
+
isDownplay = selectedItemDataIndex !== i || selectedItemSeriesId !== this.sId;
|
|
42754
|
+
}
|
|
42755
|
+
}
|
|
42769
42756
|
|
|
42770
|
-
|
|
42771
|
-
|
|
42772
|
-
|
|
42773
|
-
|
|
42774
|
-
|
|
42775
|
-
|
|
42776
|
-
|
|
42757
|
+
if (typeof barColor !== 'string') {
|
|
42758
|
+
ctx.fillStyle = helpers_canvas.createGradient(ctx, isHorizontal, {
|
|
42759
|
+
x: x,
|
|
42760
|
+
y: y,
|
|
42761
|
+
w: w,
|
|
42762
|
+
h: h
|
|
42763
|
+
}, barColor, isDownplay);
|
|
42764
|
+
} else {
|
|
42765
|
+
var noneDownplayOpacity = barColor.includes('rgba') ? helpers_util.getOpacity(barColor) : 1;
|
|
42766
|
+
var opacity = isDownplay ? 0.1 : noneDownplayOpacity;
|
|
42767
|
+
ctx.fillStyle = helpers_util.colorStringToRgba(barColor, opacity);
|
|
42777
42768
|
}
|
|
42778
|
-
});
|
|
42779
42769
|
|
|
42780
|
-
|
|
42781
|
-
|
|
42782
|
-
context: ctx,
|
|
42783
|
-
data: item,
|
|
42770
|
+
this.drawBar({
|
|
42771
|
+
ctx: ctx,
|
|
42784
42772
|
positions: {
|
|
42785
42773
|
x: x,
|
|
42786
42774
|
y: y,
|
|
42787
|
-
|
|
42788
|
-
|
|
42789
|
-
}
|
|
42790
|
-
isHighlight: false,
|
|
42791
|
-
textColor: item.dataTextColor
|
|
42775
|
+
w: w,
|
|
42776
|
+
h: h
|
|
42777
|
+
}
|
|
42792
42778
|
});
|
|
42793
|
-
}
|
|
42794
42779
|
|
|
42795
|
-
|
|
42780
|
+
if (showValue.use) {
|
|
42781
|
+
this.drawValueLabels({
|
|
42782
|
+
context: ctx,
|
|
42783
|
+
data: item,
|
|
42784
|
+
positions: {
|
|
42785
|
+
x: x,
|
|
42786
|
+
y: y,
|
|
42787
|
+
h: h,
|
|
42788
|
+
w: w
|
|
42789
|
+
},
|
|
42790
|
+
isHighlight: false,
|
|
42791
|
+
textColor: item.dataTextColor
|
|
42792
|
+
});
|
|
42793
|
+
} // 좌표 및 인덱스 정보 세팅 (툴팁/hover용)
|
|
42796
42794
|
|
|
42797
|
-
item.yp = y; // eslint-disable-line
|
|
42798
42795
|
|
|
42799
|
-
|
|
42796
|
+
item.xp = x; // eslint-disable-line
|
|
42800
42797
|
|
|
42801
|
-
|
|
42802
|
-
|
|
42798
|
+
item.yp = y; // eslint-disable-line
|
|
42799
|
+
|
|
42800
|
+
item.w = w; // eslint-disable-line
|
|
42801
|
+
|
|
42802
|
+
item.h = isHorizontal ? -h : h; // eslint-disable-line
|
|
42803
|
+
|
|
42804
|
+
item.index = i; // 실제 데이터 인덱스 (스크롤 offset 포함)
|
|
42805
|
+
// 검색(hitInfo) 로직은 this.data[0..filteredCount-1] 범위만 검사하므로,
|
|
42806
|
+
// 현재 화면에 그린 항목을 배열 앞쪽으로 매핑해준다.
|
|
42807
|
+
|
|
42808
|
+
this.data[screenIndex] = item;
|
|
42809
|
+
}
|
|
42810
|
+
}
|
|
42803
42811
|
}
|
|
42804
42812
|
/**
|
|
42805
42813
|
* Draw item highlight
|
|
@@ -43129,6 +43137,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43129
43137
|
return;
|
|
43130
43138
|
}
|
|
43131
43139
|
|
|
43140
|
+
ctx.save();
|
|
43141
|
+
|
|
43132
43142
|
if (isBorderRadius && !isStackBar) {
|
|
43133
43143
|
try {
|
|
43134
43144
|
this.drawRoundedRect(ctx, positions);
|
|
@@ -43138,6 +43148,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43138
43148
|
} else {
|
|
43139
43149
|
ctx.fillRect(x, y, w, h);
|
|
43140
43150
|
}
|
|
43151
|
+
|
|
43152
|
+
ctx.restore();
|
|
43141
43153
|
}
|
|
43142
43154
|
}, {
|
|
43143
43155
|
key: "drawRoundedRect",
|
|
@@ -43153,6 +43165,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43153
43165
|
var squarePath = new Path2D();
|
|
43154
43166
|
squarePath.rect(chartRect.x1 + labelOffset.left, chartRect.y1, chartRect.chartWidth - labelOffset.right, chartRect.chartHeight - labelOffset.bottom);
|
|
43155
43167
|
ctx.clip(squarePath);
|
|
43168
|
+
ctx.beginPath();
|
|
43156
43169
|
ctx.moveTo(x, y);
|
|
43157
43170
|
|
|
43158
43171
|
if (isHorizontal) {
|
|
@@ -49043,8 +49056,24 @@ var plugins_scrollbar_module = {
|
|
|
49043
49056
|
limitMax = +minMax.max;
|
|
49044
49057
|
}
|
|
49045
49058
|
|
|
49046
|
-
|
|
49047
|
-
|
|
49059
|
+
var originalWidth = max - min;
|
|
49060
|
+
var availableWidth = limitMax - limitMin;
|
|
49061
|
+
|
|
49062
|
+
if (originalWidth >= availableWidth) {
|
|
49063
|
+
scrollbarOpt.range[0] = limitMin;
|
|
49064
|
+
scrollbarOpt.range[1] = limitMax;
|
|
49065
|
+
} else {
|
|
49066
|
+
scrollbarOpt.range[0] = +min < limitMin ? limitMin : +min;
|
|
49067
|
+
scrollbarOpt.range[1] = +max > limitMax ? limitMax : +max;
|
|
49068
|
+
|
|
49069
|
+
if (scrollbarOpt.range[1] - scrollbarOpt.range[0] < originalWidth) {
|
|
49070
|
+
scrollbarOpt.range[0] = scrollbarOpt.range[1] - originalWidth;
|
|
49071
|
+
|
|
49072
|
+
if (scrollbarOpt.range[0] < limitMin) {
|
|
49073
|
+
scrollbarOpt.range[0] = limitMin;
|
|
49074
|
+
}
|
|
49075
|
+
}
|
|
49076
|
+
}
|
|
49048
49077
|
}
|
|
49049
49078
|
}
|
|
49050
49079
|
},
|
|
@@ -49082,9 +49111,22 @@ var plugins_scrollbar_module = {
|
|
|
49082
49111
|
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);
|
|
49083
49112
|
|
|
49084
49113
|
if (isUpdateAxesRange || updateData) {
|
|
49085
|
-
var
|
|
49114
|
+
var _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2;
|
|
49115
|
+
|
|
49116
|
+
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;
|
|
49117
|
+
|
|
49118
|
+
if (isUpdateAxesRange || isResetPosition) {
|
|
49119
|
+
var _newOpt$5, _newOpt$5$range, _newOpt$6;
|
|
49120
|
+
|
|
49121
|
+
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가 업데이트되면 저장된 스크롤 위치를 초기화
|
|
49122
|
+
|
|
49123
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49124
|
+
} else if (updateData) {
|
|
49125
|
+
// 데이터가 업데이트되면 저장된 픽셀 위치는 더 이상 유효하지 않으므로 삭제하여
|
|
49126
|
+
// 논리적 범위에 따라 다시 계산하도록 합니다.
|
|
49127
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49128
|
+
}
|
|
49086
49129
|
|
|
49087
|
-
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;
|
|
49088
49130
|
this.initScrollbarRange(dir);
|
|
49089
49131
|
}
|
|
49090
49132
|
|
|
@@ -49098,11 +49140,20 @@ var plugins_scrollbar_module = {
|
|
|
49098
49140
|
var _this$scrollbar$x, _this$scrollbar$x2, _this$scrollbar$y, _this$scrollbar$y2;
|
|
49099
49141
|
|
|
49100
49142
|
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) {
|
|
49101
|
-
|
|
49143
|
+
var _this$options$axesX3, _this$options$axesX3$, _this$options$axesX3$2;
|
|
49144
|
+
|
|
49145
|
+
// resetPosition 옵션에 따라 preservePosition 결정
|
|
49146
|
+
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);
|
|
49147
|
+
this.setScrollbarPosition('x', preservePosition);
|
|
49102
49148
|
}
|
|
49103
49149
|
|
|
49104
49150
|
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) {
|
|
49105
|
-
|
|
49151
|
+
var _this$options$axesY3, _this$options$axesY3$, _this$options$axesY3$2;
|
|
49152
|
+
|
|
49153
|
+
// resetPosition 옵션에 따라 preservePosition 결정
|
|
49154
|
+
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);
|
|
49155
|
+
|
|
49156
|
+
this.setScrollbarPosition('y', _preservePosition);
|
|
49106
49157
|
}
|
|
49107
49158
|
},
|
|
49108
49159
|
|
|
@@ -49185,10 +49236,12 @@ var plugins_scrollbar_module = {
|
|
|
49185
49236
|
/**
|
|
49186
49237
|
* set scrollbar position
|
|
49187
49238
|
* @param dir axis direction ('x' | 'y')
|
|
49239
|
+
* @param preservePosition 기존 위치를 유지할지 여부
|
|
49188
49240
|
*/
|
|
49189
49241
|
setScrollbarPosition: function setScrollbarPosition(dir) {
|
|
49190
49242
|
var _this$options$title, _this$options$title2;
|
|
49191
49243
|
|
|
49244
|
+
var preservePosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
49192
49245
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49193
49246
|
|
|
49194
49247
|
if (!scrollbarOpt.use || !scrollbarOpt.range) {
|
|
@@ -49209,8 +49262,17 @@ var plugins_scrollbar_module = {
|
|
|
49209
49262
|
var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
|
|
49210
49263
|
var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
|
|
49211
49264
|
var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
|
|
49212
|
-
var trackSize = fullSize - buttonSize * 2;
|
|
49213
|
-
|
|
49265
|
+
var trackSize = fullSize - buttonSize * 2; // 현재 위치를 보존해야 하는 경우 기존 위치를 저장
|
|
49266
|
+
|
|
49267
|
+
var savedThumbPosition = null;
|
|
49268
|
+
|
|
49269
|
+
if (preservePosition && scrollbarOpt.savedPosition !== undefined) {
|
|
49270
|
+
savedThumbPosition = scrollbarOpt.savedPosition;
|
|
49271
|
+
}
|
|
49272
|
+
|
|
49273
|
+
var thumbSize = this.getScrollbarThumbSize(dir, trackSize, savedThumbPosition); // 새로 계산된 위치를 저장
|
|
49274
|
+
|
|
49275
|
+
scrollbarOpt.savedPosition = thumbSize.position;
|
|
49214
49276
|
var scrollbarStyle = 'display: block;';
|
|
49215
49277
|
var scrollbarTrackStyle;
|
|
49216
49278
|
var scrollbarThumbStyle;
|
|
@@ -49277,8 +49339,9 @@ var plugins_scrollbar_module = {
|
|
|
49277
49339
|
* get scrollbar thumb size
|
|
49278
49340
|
* @param dir axis direction ('x' | 'y')
|
|
49279
49341
|
* @param trackSize scrollbar track size
|
|
49342
|
+
* @param savedThumbPosition 기존 위치를 보존해야 하는 경우 저장된 위치
|
|
49280
49343
|
*/
|
|
49281
|
-
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
|
|
49344
|
+
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize, savedThumbPosition) {
|
|
49282
49345
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49283
49346
|
|
|
49284
49347
|
var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
|
|
@@ -49331,7 +49394,12 @@ var plugins_scrollbar_module = {
|
|
|
49331
49394
|
|
|
49332
49395
|
scrollbarOpt.startValue = startValue;
|
|
49333
49396
|
scrollbarOpt.steps = steps;
|
|
49334
|
-
scrollbarOpt.interval = interval;
|
|
49397
|
+
scrollbarOpt.interval = interval; // 기존 위치를 보존해야 하는 경우 저장된 위치를 사용
|
|
49398
|
+
|
|
49399
|
+
if (savedThumbPosition !== null) {
|
|
49400
|
+
thumbPosition = savedThumbPosition;
|
|
49401
|
+
}
|
|
49402
|
+
|
|
49335
49403
|
return {
|
|
49336
49404
|
size: thumbSize,
|
|
49337
49405
|
position: thumbPosition
|
|
@@ -49396,7 +49464,9 @@ var plugins_scrollbar_module = {
|
|
|
49396
49464
|
}
|
|
49397
49465
|
|
|
49398
49466
|
if (!isOutOfRange) {
|
|
49399
|
-
scrollbarOpt.range = [minValue, maxValue];
|
|
49467
|
+
scrollbarOpt.range = [minValue, maxValue]; // 사용자가 스크롤할 때는 저장된 위치를 초기화
|
|
49468
|
+
|
|
49469
|
+
delete scrollbarOpt.savedPosition;
|
|
49400
49470
|
this.update({
|
|
49401
49471
|
updateSeries: false,
|
|
49402
49472
|
updateSelTip: {
|
|
@@ -49411,7 +49481,9 @@ var plugins_scrollbar_module = {
|
|
|
49411
49481
|
* create scroll event
|
|
49412
49482
|
*/
|
|
49413
49483
|
createScrollEvent: function createScrollEvent() {
|
|
49414
|
-
var _this = this
|
|
49484
|
+
var _this = this,
|
|
49485
|
+
_this$scrollbar$x6,
|
|
49486
|
+
_this$scrollbar$y5;
|
|
49415
49487
|
|
|
49416
49488
|
this.onScrollbarClick = function (e) {
|
|
49417
49489
|
e.preventDefault();
|
|
@@ -49503,9 +49575,65 @@ var plugins_scrollbar_module = {
|
|
|
49503
49575
|
};
|
|
49504
49576
|
|
|
49505
49577
|
this.onScrollbarWheel = function (e) {
|
|
49578
|
+
var _this$tooltipDOM, _this$tooltipDOM$styl, _this$tooltipDOM2, _this$scrollbar$x3, _this$scrollbar$x5, _this$scrollbar$y4;
|
|
49579
|
+
|
|
49580
|
+
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';
|
|
49581
|
+
var tooltipBodyDOM = _this.tooltipBodyDOM || ((_this$tooltipDOM2 = _this.tooltipDOM) === null || _this$tooltipDOM2 === void 0 ? void 0 : _this$tooltipDOM2.querySelector(_this.options.tooltip.htmlScrollTarget));
|
|
49582
|
+
|
|
49583
|
+
if (isTooltipVisible && tooltipBodyDOM) {
|
|
49584
|
+
var scrollTop = tooltipBodyDOM.scrollTop,
|
|
49585
|
+
scrollHeight = tooltipBodyDOM.scrollHeight,
|
|
49586
|
+
clientHeight = tooltipBodyDOM.clientHeight;
|
|
49587
|
+
var isAtTop = scrollTop <= 0;
|
|
49588
|
+
var isAtBottom = scrollTop + clientHeight >= scrollHeight;
|
|
49589
|
+
var isScrollingUp = e.deltaY < 0;
|
|
49590
|
+
var isScrollingDown = e.deltaY > 0;
|
|
49591
|
+
|
|
49592
|
+
if (isAtTop && isScrollingUp || isAtBottom && isScrollingDown) {// 툴팁의 스크롤이 맨 위나 맨 아래에 닿았는데 스크롤 하면 차트 스크롤 허용
|
|
49593
|
+
} else {
|
|
49594
|
+
// 툴팁 내부 스크롤만 수행
|
|
49595
|
+
return;
|
|
49596
|
+
}
|
|
49597
|
+
}
|
|
49598
|
+
|
|
49506
49599
|
e.preventDefault();
|
|
49600
|
+
var threshold = 1; // 최소 스크롤 임계값
|
|
49601
|
+
// Shift + 휠: 가로 스크롤 (일반 마우스 휠 지원)
|
|
49602
|
+
|
|
49603
|
+
if ((_this$scrollbar$x3 = _this.scrollbar.x) !== null && _this$scrollbar$x3 !== void 0 && _this$scrollbar$x3.use && e.shiftKey && Math.abs(e.deltaY) > threshold) {
|
|
49604
|
+
_this.updateScrollbarRange('x', e.deltaY > 0);
|
|
49605
|
+
|
|
49606
|
+
return;
|
|
49607
|
+
} // 대각선 스크롤 처리: 더 큰 방향을 우선으로 처리
|
|
49608
|
+
|
|
49609
|
+
|
|
49610
|
+
var absX = Math.abs(e.deltaX);
|
|
49611
|
+
var absY = Math.abs(e.deltaY);
|
|
49612
|
+
|
|
49613
|
+
if (absX > threshold && absY > threshold) {
|
|
49614
|
+
var _this$scrollbar$x4, _this$scrollbar$y3;
|
|
49615
|
+
|
|
49616
|
+
// 두 방향 모두 임계값 이상일 때: 더 큰 방향을 우선 처리
|
|
49617
|
+
if (absX > absY && (_this$scrollbar$x4 = _this.scrollbar.x) !== null && _this$scrollbar$x4 !== void 0 && _this$scrollbar$x4.use) {
|
|
49618
|
+
_this.updateScrollbarRange('x', e.deltaX > 0);
|
|
49619
|
+
} else if (absY > absX && (_this$scrollbar$y3 = _this.scrollbar.y) !== null && _this$scrollbar$y3 !== void 0 && _this$scrollbar$y3.use) {
|
|
49620
|
+
_this.updateScrollbarRange('y', e.deltaY < 0);
|
|
49621
|
+
}
|
|
49622
|
+
|
|
49623
|
+
return;
|
|
49624
|
+
} // 가로 스크롤 처리 (deltaX - 트랙패드 좌우 스크롤)
|
|
49625
|
+
|
|
49626
|
+
|
|
49627
|
+
if ((_this$scrollbar$x5 = _this.scrollbar.x) !== null && _this$scrollbar$x5 !== void 0 && _this$scrollbar$x5.use && absX > threshold) {
|
|
49628
|
+
_this.updateScrollbarRange('x', e.deltaX > 0);
|
|
49507
49629
|
|
|
49508
|
-
|
|
49630
|
+
return;
|
|
49631
|
+
} // 세로 스크롤 처리 (deltaY)
|
|
49632
|
+
|
|
49633
|
+
|
|
49634
|
+
if ((_this$scrollbar$y4 = _this.scrollbar.y) !== null && _this$scrollbar$y4 !== void 0 && _this$scrollbar$y4.use && absY > threshold) {
|
|
49635
|
+
_this.updateScrollbarRange('y', e.deltaY < 0);
|
|
49636
|
+
}
|
|
49509
49637
|
};
|
|
49510
49638
|
|
|
49511
49639
|
if (this.scrollbar.x.use && !this.scrollbar.x.isInit) {
|
|
@@ -49516,12 +49644,16 @@ var plugins_scrollbar_module = {
|
|
|
49516
49644
|
}
|
|
49517
49645
|
|
|
49518
49646
|
if (this.scrollbar.y.use && !this.scrollbar.y.isInit) {
|
|
49519
|
-
var _this$overlayCanvas;
|
|
49520
|
-
|
|
49521
49647
|
var scrollbarYDOM = this.scrollbar.y.dom;
|
|
49522
49648
|
scrollbarYDOM.addEventListener('click', this.onScrollbarClick);
|
|
49523
49649
|
scrollbarYDOM.addEventListener('mousedown', this.onScrollbarDown);
|
|
49524
49650
|
scrollbarYDOM.addEventListener('mouseleave', this.onScrollbarLeave);
|
|
49651
|
+
} // 가로 또는 세로 스크롤바가 있으면 휠 이벤트 등록
|
|
49652
|
+
|
|
49653
|
+
|
|
49654
|
+
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) {
|
|
49655
|
+
var _this$overlayCanvas;
|
|
49656
|
+
|
|
49525
49657
|
(_this$overlayCanvas = this.overlayCanvas) === null || _this$overlayCanvas === void 0 ? void 0 : _this$overlayCanvas.addEventListener('wheel', this.onScrollbarWheel, {
|
|
49526
49658
|
passive: false
|
|
49527
49659
|
});
|
|
@@ -49597,7 +49729,9 @@ var plugins_scrollbar_module = {
|
|
|
49597
49729
|
return;
|
|
49598
49730
|
}
|
|
49599
49731
|
|
|
49600
|
-
this.scrollbar[dir].range = [movedMin, movedMax];
|
|
49732
|
+
this.scrollbar[dir].range = [movedMin, movedMax]; // 사용자가 드래그로 스크롤할 때는 저장된 위치를 초기화
|
|
49733
|
+
|
|
49734
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49601
49735
|
this.update({
|
|
49602
49736
|
updateSeries: false,
|
|
49603
49737
|
updateSelTip: {
|
|
@@ -49646,15 +49780,17 @@ var plugins_scrollbar_module = {
|
|
|
49646
49780
|
* @param dir axis direction ('x' | 'y')
|
|
49647
49781
|
*/
|
|
49648
49782
|
destroyScrollbar: function destroyScrollbar(dir) {
|
|
49649
|
-
var
|
|
49783
|
+
var scrollbarDOM = this.scrollbar[dir].dom;
|
|
49784
|
+
|
|
49785
|
+
if (scrollbarDOM) {
|
|
49786
|
+
var _this$scrollbar$x7, _this$scrollbar$y6;
|
|
49650
49787
|
|
|
49651
|
-
|
|
49652
|
-
scrollbarXDOM.remove();
|
|
49788
|
+
scrollbarDOM.remove();
|
|
49653
49789
|
this.scrollbar[dir] = {
|
|
49654
49790
|
isInit: false
|
|
49655
|
-
};
|
|
49791
|
+
}; // 가로, 세로 스크롤바 모두 없어지면 휠 이벤트 제거
|
|
49656
49792
|
|
|
49657
|
-
if (
|
|
49793
|
+
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)) {
|
|
49658
49794
|
var _this$overlayCanvas2;
|
|
49659
49795
|
|
|
49660
49796
|
(_this$overlayCanvas2 = this.overlayCanvas) === null || _this$overlayCanvas2 === void 0 ? void 0 : _this$overlayCanvas2.removeEventListener('wheel', this.onScrollbarWheel, {
|
|
@@ -54827,6 +54963,18 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
54827
54963
|
}, {
|
|
54828
54964
|
key: "resize",
|
|
54829
54965
|
value: function resize(promiseRes) {
|
|
54966
|
+
var _this$scrollbar3, _this$scrollbar4;
|
|
54967
|
+
|
|
54968
|
+
// 차트 크기가 변경될 때 저장된 스크롤 픽셀 위치를 초기화하여
|
|
54969
|
+
// 새로운 크기에 맞춰 스크롤바 크기/위치를 재계산하도록 함
|
|
54970
|
+
if ((_this$scrollbar3 = this.scrollbar) !== null && _this$scrollbar3 !== void 0 && _this$scrollbar3.x) {
|
|
54971
|
+
delete this.scrollbar.x.savedPosition;
|
|
54972
|
+
}
|
|
54973
|
+
|
|
54974
|
+
if ((_this$scrollbar4 = this.scrollbar) !== null && _this$scrollbar4 !== void 0 && _this$scrollbar4.y) {
|
|
54975
|
+
delete this.scrollbar.y.savedPosition;
|
|
54976
|
+
}
|
|
54977
|
+
|
|
54830
54978
|
this.clear();
|
|
54831
54979
|
this.bufferCtx.restore();
|
|
54832
54980
|
this.bufferCtx.save();
|