evui 3.4.107 → 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 +269 -118
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +269 -118
- 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/model/model.store.js +8 -3
- 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
|
|
|
@@ -38860,6 +38860,8 @@ var modules = {
|
|
|
38860
38860
|
};
|
|
38861
38861
|
|
|
38862
38862
|
for (var x = 0; x < keys.length; x++) {
|
|
38863
|
+
var _this$dataSet$key$dat, _this$dataSet$key$dat2, _this$dataSet$key$dat3;
|
|
38864
|
+
|
|
38863
38865
|
var key = keys[x];
|
|
38864
38866
|
var data = datas[key];
|
|
38865
38867
|
var storeLength = data === null || data === void 0 ? void 0 : data.length;
|
|
@@ -38878,9 +38880,6 @@ var modules = {
|
|
|
38878
38880
|
}
|
|
38879
38881
|
|
|
38880
38882
|
this.dataSet[key].length = this.options.realTimeScatter.range || 300;
|
|
38881
|
-
this.dataSet[key].toTime = Math.floor(Date.now() / 1000) * 1000;
|
|
38882
|
-
this.dataSet[key].fromTime = this.dataSet[key].toTime - this.dataSet[key].length * 1000;
|
|
38883
|
-
this.dataSet[key].endIndex = this.dataSet[key].length - 1;
|
|
38884
38883
|
|
|
38885
38884
|
for (var i = 0; i < storeLength; i++) {
|
|
38886
38885
|
var item = data[i];
|
|
@@ -38891,6 +38890,10 @@ var modules = {
|
|
|
38891
38890
|
}
|
|
38892
38891
|
|
|
38893
38892
|
lastTime = Math.floor(lastTime / 1000) * 1000;
|
|
38893
|
+
var dataGroupLastTime = ((_this$dataSet$key$dat = this.dataSet[key].dataGroup.at(-1)) === null || _this$dataSet$key$dat === void 0 ? void 0 : (_this$dataSet$key$dat2 = _this$dataSet$key$dat.data) === null || _this$dataSet$key$dat2 === void 0 ? void 0 : (_this$dataSet$key$dat3 = _this$dataSet$key$dat2.at(-1)) === null || _this$dataSet$key$dat3 === void 0 ? void 0 : _this$dataSet$key$dat3.x) || Date.now();
|
|
38894
|
+
this.dataSet[key].toTime = lastTime || (dataGroupLastTime ? Math.floor(dataGroupLastTime / 1000) * 1000 : 0);
|
|
38895
|
+
this.dataSet[key].fromTime = this.dataSet[key].toTime - this.dataSet[key].length * 1000;
|
|
38896
|
+
this.dataSet[key].endIndex = this.dataSet[key].length - 1;
|
|
38894
38897
|
|
|
38895
38898
|
if ((this.dataSet[key].toTime - lastTime) / 1000 > this.dataSet[key].length && key === '') {
|
|
38896
38899
|
return;
|
|
@@ -42598,8 +42601,6 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42598
42601
|
_createClass(Bar, [{
|
|
42599
42602
|
key: "draw",
|
|
42600
42603
|
value: function draw(param) {
|
|
42601
|
-
var _this2 = this;
|
|
42602
|
-
|
|
42603
42604
|
if (!this.show) {
|
|
42604
42605
|
return;
|
|
42605
42606
|
}
|
|
@@ -42629,7 +42630,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42629
42630
|
var _ref2 = [minmaxX.minIndex, minmaxX.maxIndex];
|
|
42630
42631
|
minIndex = _ref2[0];
|
|
42631
42632
|
maxIndex = _ref2[1];
|
|
42632
|
-
}
|
|
42633
|
+
} // minIndex, maxIndex가 유효하면 실제 그릴 데이터 개수로 보정
|
|
42634
|
+
|
|
42633
42635
|
|
|
42634
42636
|
if (truthyNumber(minIndex) && truthyNumber(maxIndex)) {
|
|
42635
42637
|
totalCount = maxIndex - minIndex + 1;
|
|
@@ -42684,119 +42686,128 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42684
42686
|
this.labelOffset = labelOffset;
|
|
42685
42687
|
this.borderRadius = param.borderRadius;
|
|
42686
42688
|
this.filteredCount = totalCount;
|
|
42687
|
-
var
|
|
42688
|
-
this.data.
|
|
42689
|
-
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; // 스크롤 범위 내에서만 루프 돌림
|
|
42690
42691
|
|
|
42691
|
-
|
|
42692
|
-
var
|
|
42692
|
+
for (var i = startIndex; i <= endIndex; i++) {
|
|
42693
|
+
var screenIndex = i - startIndex; // 현재 화면상의 위치 인덱스
|
|
42693
42694
|
|
|
42694
|
-
|
|
42695
|
-
return;
|
|
42696
|
-
} else if (truthyNumber(minIndex) && index > maxIndex) {
|
|
42697
|
-
return;
|
|
42698
|
-
}
|
|
42695
|
+
var item = this.data[i]; // 실제 데이터 인덱스에 해당하는 항목
|
|
42699
42696
|
|
|
42700
|
-
if (
|
|
42701
|
-
|
|
42702
|
-
} else {
|
|
42703
|
-
categoryPoint = xsp + cArea * (index - (minIndex || 0)) + cPad;
|
|
42704
|
-
}
|
|
42697
|
+
if (item) {
|
|
42698
|
+
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
42705
42699
|
|
|
42706
|
-
|
|
42707
|
-
|
|
42708
|
-
y = Math.round(categoryPoint - (bArea * barSeriesX - (h + bPad)));
|
|
42709
|
-
} else {
|
|
42710
|
-
x = Math.round(categoryPoint + (bArea * barSeriesX - (w + bPad)));
|
|
42711
|
-
y = ysp;
|
|
42712
|
-
}
|
|
42700
|
+
// 스크롤 offset(minIndex)만큼 보정해서 그리기
|
|
42701
|
+
var categoryPoint = void 0;
|
|
42713
42702
|
|
|
42714
|
-
|
|
42715
|
-
|
|
42716
|
-
w = helpers_canvas.calculateX(item.x - item.b, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42717
|
-
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp);
|
|
42703
|
+
if (isHorizontal) {
|
|
42704
|
+
categoryPoint = ysp - cArea * screenIndex - cPad;
|
|
42718
42705
|
} else {
|
|
42719
|
-
|
|
42706
|
+
categoryPoint = xsp + cArea * screenIndex + cPad;
|
|
42720
42707
|
}
|
|
42721
|
-
} else if (item.b) {
|
|
42722
|
-
// vertical stack bar chart
|
|
42723
|
-
h = helpers_canvas.calculateY(item.y - item.b, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42724
|
-
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
42725
|
-
} else {
|
|
42726
|
-
// vertical bar chart
|
|
42727
|
-
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42728
|
-
}
|
|
42729
42708
|
|
|
42730
|
-
|
|
42731
|
-
|
|
42732
|
-
|
|
42733
|
-
|
|
42734
|
-
|
|
42735
|
-
|
|
42736
|
-
|
|
42737
|
-
selectedItemDataIndex = _ref3.dataIndex,
|
|
42738
|
-
selectedItemSeriesId = _ref3.seriesID;
|
|
42739
|
-
|
|
42740
|
-
var isDownplay = false;
|
|
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
|
+
}
|
|
42741
42716
|
|
|
42742
|
-
|
|
42743
|
-
|
|
42744
|
-
|
|
42745
|
-
|
|
42746
|
-
|
|
42747
|
-
|
|
42748
|
-
|
|
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);
|
|
42749
42728
|
} else {
|
|
42750
|
-
|
|
42729
|
+
// vertical bar chart
|
|
42730
|
+
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42751
42731
|
}
|
|
42752
|
-
}
|
|
42753
42732
|
|
|
42754
|
-
|
|
42755
|
-
|
|
42756
|
-
|
|
42757
|
-
|
|
42758
|
-
|
|
42759
|
-
|
|
42760
|
-
|
|
42761
|
-
|
|
42762
|
-
|
|
42763
|
-
|
|
42764
|
-
|
|
42765
|
-
|
|
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
|
+
}
|
|
42766
42756
|
|
|
42767
|
-
|
|
42768
|
-
|
|
42769
|
-
|
|
42770
|
-
|
|
42771
|
-
|
|
42772
|
-
|
|
42773
|
-
|
|
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);
|
|
42774
42768
|
}
|
|
42775
|
-
});
|
|
42776
42769
|
|
|
42777
|
-
|
|
42778
|
-
|
|
42779
|
-
context: ctx,
|
|
42780
|
-
data: item,
|
|
42770
|
+
this.drawBar({
|
|
42771
|
+
ctx: ctx,
|
|
42781
42772
|
positions: {
|
|
42782
42773
|
x: x,
|
|
42783
42774
|
y: y,
|
|
42784
|
-
|
|
42785
|
-
|
|
42786
|
-
}
|
|
42787
|
-
isHighlight: false,
|
|
42788
|
-
textColor: item.dataTextColor
|
|
42775
|
+
w: w,
|
|
42776
|
+
h: h
|
|
42777
|
+
}
|
|
42789
42778
|
});
|
|
42790
|
-
}
|
|
42791
42779
|
|
|
42792
|
-
|
|
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용)
|
|
42793
42794
|
|
|
42794
|
-
item.yp = y; // eslint-disable-line
|
|
42795
42795
|
|
|
42796
|
-
|
|
42796
|
+
item.xp = x; // eslint-disable-line
|
|
42797
42797
|
|
|
42798
|
-
|
|
42799
|
-
|
|
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
|
+
}
|
|
42800
42811
|
}
|
|
42801
42812
|
/**
|
|
42802
42813
|
* Draw item highlight
|
|
@@ -43126,6 +43137,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43126
43137
|
return;
|
|
43127
43138
|
}
|
|
43128
43139
|
|
|
43140
|
+
ctx.save();
|
|
43141
|
+
|
|
43129
43142
|
if (isBorderRadius && !isStackBar) {
|
|
43130
43143
|
try {
|
|
43131
43144
|
this.drawRoundedRect(ctx, positions);
|
|
@@ -43135,6 +43148,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43135
43148
|
} else {
|
|
43136
43149
|
ctx.fillRect(x, y, w, h);
|
|
43137
43150
|
}
|
|
43151
|
+
|
|
43152
|
+
ctx.restore();
|
|
43138
43153
|
}
|
|
43139
43154
|
}, {
|
|
43140
43155
|
key: "drawRoundedRect",
|
|
@@ -43150,6 +43165,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43150
43165
|
var squarePath = new Path2D();
|
|
43151
43166
|
squarePath.rect(chartRect.x1 + labelOffset.left, chartRect.y1, chartRect.chartWidth - labelOffset.right, chartRect.chartHeight - labelOffset.bottom);
|
|
43152
43167
|
ctx.clip(squarePath);
|
|
43168
|
+
ctx.beginPath();
|
|
43153
43169
|
ctx.moveTo(x, y);
|
|
43154
43170
|
|
|
43155
43171
|
if (isHorizontal) {
|
|
@@ -49040,8 +49056,24 @@ var plugins_scrollbar_module = {
|
|
|
49040
49056
|
limitMax = +minMax.max;
|
|
49041
49057
|
}
|
|
49042
49058
|
|
|
49043
|
-
|
|
49044
|
-
|
|
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
|
+
}
|
|
49045
49077
|
}
|
|
49046
49078
|
}
|
|
49047
49079
|
},
|
|
@@ -49079,9 +49111,22 @@ var plugins_scrollbar_module = {
|
|
|
49079
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);
|
|
49080
49112
|
|
|
49081
49113
|
if (isUpdateAxesRange || updateData) {
|
|
49082
|
-
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
|
+
}
|
|
49083
49129
|
|
|
49084
|
-
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;
|
|
49085
49130
|
this.initScrollbarRange(dir);
|
|
49086
49131
|
}
|
|
49087
49132
|
|
|
@@ -49095,11 +49140,20 @@ var plugins_scrollbar_module = {
|
|
|
49095
49140
|
var _this$scrollbar$x, _this$scrollbar$x2, _this$scrollbar$y, _this$scrollbar$y2;
|
|
49096
49141
|
|
|
49097
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) {
|
|
49098
|
-
|
|
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);
|
|
49099
49148
|
}
|
|
49100
49149
|
|
|
49101
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) {
|
|
49102
|
-
|
|
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);
|
|
49103
49157
|
}
|
|
49104
49158
|
},
|
|
49105
49159
|
|
|
@@ -49182,10 +49236,12 @@ var plugins_scrollbar_module = {
|
|
|
49182
49236
|
/**
|
|
49183
49237
|
* set scrollbar position
|
|
49184
49238
|
* @param dir axis direction ('x' | 'y')
|
|
49239
|
+
* @param preservePosition 기존 위치를 유지할지 여부
|
|
49185
49240
|
*/
|
|
49186
49241
|
setScrollbarPosition: function setScrollbarPosition(dir) {
|
|
49187
49242
|
var _this$options$title, _this$options$title2;
|
|
49188
49243
|
|
|
49244
|
+
var preservePosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
49189
49245
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49190
49246
|
|
|
49191
49247
|
if (!scrollbarOpt.use || !scrollbarOpt.range) {
|
|
@@ -49206,8 +49262,17 @@ var plugins_scrollbar_module = {
|
|
|
49206
49262
|
var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
|
|
49207
49263
|
var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
|
|
49208
49264
|
var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
|
|
49209
|
-
var trackSize = fullSize - buttonSize * 2;
|
|
49210
|
-
|
|
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;
|
|
49211
49276
|
var scrollbarStyle = 'display: block;';
|
|
49212
49277
|
var scrollbarTrackStyle;
|
|
49213
49278
|
var scrollbarThumbStyle;
|
|
@@ -49274,8 +49339,9 @@ var plugins_scrollbar_module = {
|
|
|
49274
49339
|
* get scrollbar thumb size
|
|
49275
49340
|
* @param dir axis direction ('x' | 'y')
|
|
49276
49341
|
* @param trackSize scrollbar track size
|
|
49342
|
+
* @param savedThumbPosition 기존 위치를 보존해야 하는 경우 저장된 위치
|
|
49277
49343
|
*/
|
|
49278
|
-
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
|
|
49344
|
+
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize, savedThumbPosition) {
|
|
49279
49345
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49280
49346
|
|
|
49281
49347
|
var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
|
|
@@ -49328,7 +49394,12 @@ var plugins_scrollbar_module = {
|
|
|
49328
49394
|
|
|
49329
49395
|
scrollbarOpt.startValue = startValue;
|
|
49330
49396
|
scrollbarOpt.steps = steps;
|
|
49331
|
-
scrollbarOpt.interval = interval;
|
|
49397
|
+
scrollbarOpt.interval = interval; // 기존 위치를 보존해야 하는 경우 저장된 위치를 사용
|
|
49398
|
+
|
|
49399
|
+
if (savedThumbPosition !== null) {
|
|
49400
|
+
thumbPosition = savedThumbPosition;
|
|
49401
|
+
}
|
|
49402
|
+
|
|
49332
49403
|
return {
|
|
49333
49404
|
size: thumbSize,
|
|
49334
49405
|
position: thumbPosition
|
|
@@ -49393,7 +49464,9 @@ var plugins_scrollbar_module = {
|
|
|
49393
49464
|
}
|
|
49394
49465
|
|
|
49395
49466
|
if (!isOutOfRange) {
|
|
49396
|
-
scrollbarOpt.range = [minValue, maxValue];
|
|
49467
|
+
scrollbarOpt.range = [minValue, maxValue]; // 사용자가 스크롤할 때는 저장된 위치를 초기화
|
|
49468
|
+
|
|
49469
|
+
delete scrollbarOpt.savedPosition;
|
|
49397
49470
|
this.update({
|
|
49398
49471
|
updateSeries: false,
|
|
49399
49472
|
updateSelTip: {
|
|
@@ -49408,7 +49481,9 @@ var plugins_scrollbar_module = {
|
|
|
49408
49481
|
* create scroll event
|
|
49409
49482
|
*/
|
|
49410
49483
|
createScrollEvent: function createScrollEvent() {
|
|
49411
|
-
var _this = this
|
|
49484
|
+
var _this = this,
|
|
49485
|
+
_this$scrollbar$x6,
|
|
49486
|
+
_this$scrollbar$y5;
|
|
49412
49487
|
|
|
49413
49488
|
this.onScrollbarClick = function (e) {
|
|
49414
49489
|
e.preventDefault();
|
|
@@ -49500,9 +49575,65 @@ var plugins_scrollbar_module = {
|
|
|
49500
49575
|
};
|
|
49501
49576
|
|
|
49502
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
|
+
|
|
49503
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);
|
|
49504
49629
|
|
|
49505
|
-
|
|
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
|
+
}
|
|
49506
49637
|
};
|
|
49507
49638
|
|
|
49508
49639
|
if (this.scrollbar.x.use && !this.scrollbar.x.isInit) {
|
|
@@ -49513,12 +49644,16 @@ var plugins_scrollbar_module = {
|
|
|
49513
49644
|
}
|
|
49514
49645
|
|
|
49515
49646
|
if (this.scrollbar.y.use && !this.scrollbar.y.isInit) {
|
|
49516
|
-
var _this$overlayCanvas;
|
|
49517
|
-
|
|
49518
49647
|
var scrollbarYDOM = this.scrollbar.y.dom;
|
|
49519
49648
|
scrollbarYDOM.addEventListener('click', this.onScrollbarClick);
|
|
49520
49649
|
scrollbarYDOM.addEventListener('mousedown', this.onScrollbarDown);
|
|
49521
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
|
+
|
|
49522
49657
|
(_this$overlayCanvas = this.overlayCanvas) === null || _this$overlayCanvas === void 0 ? void 0 : _this$overlayCanvas.addEventListener('wheel', this.onScrollbarWheel, {
|
|
49523
49658
|
passive: false
|
|
49524
49659
|
});
|
|
@@ -49594,7 +49729,9 @@ var plugins_scrollbar_module = {
|
|
|
49594
49729
|
return;
|
|
49595
49730
|
}
|
|
49596
49731
|
|
|
49597
|
-
this.scrollbar[dir].range = [movedMin, movedMax];
|
|
49732
|
+
this.scrollbar[dir].range = [movedMin, movedMax]; // 사용자가 드래그로 스크롤할 때는 저장된 위치를 초기화
|
|
49733
|
+
|
|
49734
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49598
49735
|
this.update({
|
|
49599
49736
|
updateSeries: false,
|
|
49600
49737
|
updateSelTip: {
|
|
@@ -49643,15 +49780,17 @@ var plugins_scrollbar_module = {
|
|
|
49643
49780
|
* @param dir axis direction ('x' | 'y')
|
|
49644
49781
|
*/
|
|
49645
49782
|
destroyScrollbar: function destroyScrollbar(dir) {
|
|
49646
|
-
var
|
|
49783
|
+
var scrollbarDOM = this.scrollbar[dir].dom;
|
|
49784
|
+
|
|
49785
|
+
if (scrollbarDOM) {
|
|
49786
|
+
var _this$scrollbar$x7, _this$scrollbar$y6;
|
|
49647
49787
|
|
|
49648
|
-
|
|
49649
|
-
scrollbarXDOM.remove();
|
|
49788
|
+
scrollbarDOM.remove();
|
|
49650
49789
|
this.scrollbar[dir] = {
|
|
49651
49790
|
isInit: false
|
|
49652
|
-
};
|
|
49791
|
+
}; // 가로, 세로 스크롤바 모두 없어지면 휠 이벤트 제거
|
|
49653
49792
|
|
|
49654
|
-
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)) {
|
|
49655
49794
|
var _this$overlayCanvas2;
|
|
49656
49795
|
|
|
49657
49796
|
(_this$overlayCanvas2 = this.overlayCanvas) === null || _this$overlayCanvas2 === void 0 ? void 0 : _this$overlayCanvas2.removeEventListener('wheel', this.onScrollbarWheel, {
|
|
@@ -54824,6 +54963,18 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
54824
54963
|
}, {
|
|
54825
54964
|
key: "resize",
|
|
54826
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
|
+
|
|
54827
54978
|
this.clear();
|
|
54828
54979
|
this.bufferCtx.restore();
|
|
54829
54980
|
this.bufferCtx.save();
|