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.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
|
|
|
@@ -38851,6 +38851,8 @@ var modules = {
|
|
|
38851
38851
|
};
|
|
38852
38852
|
|
|
38853
38853
|
for (var x = 0; x < keys.length; x++) {
|
|
38854
|
+
var _this$dataSet$key$dat, _this$dataSet$key$dat2, _this$dataSet$key$dat3;
|
|
38855
|
+
|
|
38854
38856
|
var key = keys[x];
|
|
38855
38857
|
var data = datas[key];
|
|
38856
38858
|
var storeLength = data === null || data === void 0 ? void 0 : data.length;
|
|
@@ -38869,9 +38871,6 @@ var modules = {
|
|
|
38869
38871
|
}
|
|
38870
38872
|
|
|
38871
38873
|
this.dataSet[key].length = this.options.realTimeScatter.range || 300;
|
|
38872
|
-
this.dataSet[key].toTime = Math.floor(Date.now() / 1000) * 1000;
|
|
38873
|
-
this.dataSet[key].fromTime = this.dataSet[key].toTime - this.dataSet[key].length * 1000;
|
|
38874
|
-
this.dataSet[key].endIndex = this.dataSet[key].length - 1;
|
|
38875
38874
|
|
|
38876
38875
|
for (var i = 0; i < storeLength; i++) {
|
|
38877
38876
|
var item = data[i];
|
|
@@ -38882,6 +38881,10 @@ var modules = {
|
|
|
38882
38881
|
}
|
|
38883
38882
|
|
|
38884
38883
|
lastTime = Math.floor(lastTime / 1000) * 1000;
|
|
38884
|
+
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();
|
|
38885
|
+
this.dataSet[key].toTime = lastTime || (dataGroupLastTime ? Math.floor(dataGroupLastTime / 1000) * 1000 : 0);
|
|
38886
|
+
this.dataSet[key].fromTime = this.dataSet[key].toTime - this.dataSet[key].length * 1000;
|
|
38887
|
+
this.dataSet[key].endIndex = this.dataSet[key].length - 1;
|
|
38885
38888
|
|
|
38886
38889
|
if ((this.dataSet[key].toTime - lastTime) / 1000 > this.dataSet[key].length && key === '') {
|
|
38887
38890
|
return;
|
|
@@ -42589,8 +42592,6 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42589
42592
|
_createClass(Bar, [{
|
|
42590
42593
|
key: "draw",
|
|
42591
42594
|
value: function draw(param) {
|
|
42592
|
-
var _this2 = this;
|
|
42593
|
-
|
|
42594
42595
|
if (!this.show) {
|
|
42595
42596
|
return;
|
|
42596
42597
|
}
|
|
@@ -42620,7 +42621,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42620
42621
|
var _ref2 = [minmaxX.minIndex, minmaxX.maxIndex];
|
|
42621
42622
|
minIndex = _ref2[0];
|
|
42622
42623
|
maxIndex = _ref2[1];
|
|
42623
|
-
}
|
|
42624
|
+
} // minIndex, maxIndex가 유효하면 실제 그릴 데이터 개수로 보정
|
|
42625
|
+
|
|
42624
42626
|
|
|
42625
42627
|
if (truthyNumber(minIndex) && truthyNumber(maxIndex)) {
|
|
42626
42628
|
totalCount = maxIndex - minIndex + 1;
|
|
@@ -42675,119 +42677,128 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42675
42677
|
this.labelOffset = labelOffset;
|
|
42676
42678
|
this.borderRadius = param.borderRadius;
|
|
42677
42679
|
this.filteredCount = totalCount;
|
|
42678
|
-
var
|
|
42679
|
-
this.data.
|
|
42680
|
-
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; // 스크롤 범위 내에서만 루프 돌림
|
|
42681
42682
|
|
|
42682
|
-
|
|
42683
|
-
var
|
|
42683
|
+
for (var i = startIndex; i <= endIndex; i++) {
|
|
42684
|
+
var screenIndex = i - startIndex; // 현재 화면상의 위치 인덱스
|
|
42684
42685
|
|
|
42685
|
-
|
|
42686
|
-
return;
|
|
42687
|
-
} else if (truthyNumber(minIndex) && index > maxIndex) {
|
|
42688
|
-
return;
|
|
42689
|
-
}
|
|
42686
|
+
var item = this.data[i]; // 실제 데이터 인덱스에 해당하는 항목
|
|
42690
42687
|
|
|
42691
|
-
if (
|
|
42692
|
-
|
|
42693
|
-
} else {
|
|
42694
|
-
categoryPoint = xsp + cArea * (index - (minIndex || 0)) + cPad;
|
|
42695
|
-
}
|
|
42688
|
+
if (item) {
|
|
42689
|
+
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
42696
42690
|
|
|
42697
|
-
|
|
42698
|
-
|
|
42699
|
-
y = Math.round(categoryPoint - (bArea * barSeriesX - (h + bPad)));
|
|
42700
|
-
} else {
|
|
42701
|
-
x = Math.round(categoryPoint + (bArea * barSeriesX - (w + bPad)));
|
|
42702
|
-
y = ysp;
|
|
42703
|
-
}
|
|
42691
|
+
// 스크롤 offset(minIndex)만큼 보정해서 그리기
|
|
42692
|
+
var categoryPoint = void 0;
|
|
42704
42693
|
|
|
42705
|
-
|
|
42706
|
-
|
|
42707
|
-
w = helpers_canvas.calculateX(item.x - item.b, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42708
|
-
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp);
|
|
42694
|
+
if (isHorizontal) {
|
|
42695
|
+
categoryPoint = ysp - cArea * screenIndex - cPad;
|
|
42709
42696
|
} else {
|
|
42710
|
-
|
|
42697
|
+
categoryPoint = xsp + cArea * screenIndex + cPad;
|
|
42711
42698
|
}
|
|
42712
|
-
} else if (item.b) {
|
|
42713
|
-
// vertical stack bar chart
|
|
42714
|
-
h = helpers_canvas.calculateY(item.y - item.b, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42715
|
-
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
42716
|
-
} else {
|
|
42717
|
-
// vertical bar chart
|
|
42718
|
-
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42719
|
-
}
|
|
42720
42699
|
|
|
42721
|
-
|
|
42722
|
-
|
|
42723
|
-
|
|
42724
|
-
|
|
42725
|
-
|
|
42726
|
-
|
|
42727
|
-
|
|
42728
|
-
selectedItemDataIndex = _ref3.dataIndex,
|
|
42729
|
-
selectedItemSeriesId = _ref3.seriesID;
|
|
42730
|
-
|
|
42731
|
-
var isDownplay = false;
|
|
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
|
+
}
|
|
42732
42707
|
|
|
42733
|
-
|
|
42734
|
-
|
|
42735
|
-
|
|
42736
|
-
|
|
42737
|
-
|
|
42738
|
-
|
|
42739
|
-
|
|
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);
|
|
42740
42719
|
} else {
|
|
42741
|
-
|
|
42720
|
+
// vertical bar chart
|
|
42721
|
+
h = helpers_canvas.calculateY(item.y, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42742
42722
|
}
|
|
42743
|
-
}
|
|
42744
42723
|
|
|
42745
|
-
|
|
42746
|
-
|
|
42747
|
-
|
|
42748
|
-
|
|
42749
|
-
|
|
42750
|
-
|
|
42751
|
-
|
|
42752
|
-
|
|
42753
|
-
|
|
42754
|
-
|
|
42755
|
-
|
|
42756
|
-
|
|
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
|
+
}
|
|
42757
42747
|
|
|
42758
|
-
|
|
42759
|
-
|
|
42760
|
-
|
|
42761
|
-
|
|
42762
|
-
|
|
42763
|
-
|
|
42764
|
-
|
|
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);
|
|
42765
42759
|
}
|
|
42766
|
-
});
|
|
42767
42760
|
|
|
42768
|
-
|
|
42769
|
-
|
|
42770
|
-
context: ctx,
|
|
42771
|
-
data: item,
|
|
42761
|
+
this.drawBar({
|
|
42762
|
+
ctx: ctx,
|
|
42772
42763
|
positions: {
|
|
42773
42764
|
x: x,
|
|
42774
42765
|
y: y,
|
|
42775
|
-
|
|
42776
|
-
|
|
42777
|
-
}
|
|
42778
|
-
isHighlight: false,
|
|
42779
|
-
textColor: item.dataTextColor
|
|
42766
|
+
w: w,
|
|
42767
|
+
h: h
|
|
42768
|
+
}
|
|
42780
42769
|
});
|
|
42781
|
-
}
|
|
42782
42770
|
|
|
42783
|
-
|
|
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용)
|
|
42784
42785
|
|
|
42785
|
-
item.yp = y; // eslint-disable-line
|
|
42786
42786
|
|
|
42787
|
-
|
|
42787
|
+
item.xp = x; // eslint-disable-line
|
|
42788
42788
|
|
|
42789
|
-
|
|
42790
|
-
|
|
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
|
+
}
|
|
42791
42802
|
}
|
|
42792
42803
|
/**
|
|
42793
42804
|
* Draw item highlight
|
|
@@ -43117,6 +43128,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43117
43128
|
return;
|
|
43118
43129
|
}
|
|
43119
43130
|
|
|
43131
|
+
ctx.save();
|
|
43132
|
+
|
|
43120
43133
|
if (isBorderRadius && !isStackBar) {
|
|
43121
43134
|
try {
|
|
43122
43135
|
this.drawRoundedRect(ctx, positions);
|
|
@@ -43126,6 +43139,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43126
43139
|
} else {
|
|
43127
43140
|
ctx.fillRect(x, y, w, h);
|
|
43128
43141
|
}
|
|
43142
|
+
|
|
43143
|
+
ctx.restore();
|
|
43129
43144
|
}
|
|
43130
43145
|
}, {
|
|
43131
43146
|
key: "drawRoundedRect",
|
|
@@ -43141,6 +43156,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43141
43156
|
var squarePath = new Path2D();
|
|
43142
43157
|
squarePath.rect(chartRect.x1 + labelOffset.left, chartRect.y1, chartRect.chartWidth - labelOffset.right, chartRect.chartHeight - labelOffset.bottom);
|
|
43143
43158
|
ctx.clip(squarePath);
|
|
43159
|
+
ctx.beginPath();
|
|
43144
43160
|
ctx.moveTo(x, y);
|
|
43145
43161
|
|
|
43146
43162
|
if (isHorizontal) {
|
|
@@ -49031,8 +49047,24 @@ var plugins_scrollbar_module = {
|
|
|
49031
49047
|
limitMax = +minMax.max;
|
|
49032
49048
|
}
|
|
49033
49049
|
|
|
49034
|
-
|
|
49035
|
-
|
|
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
|
+
}
|
|
49036
49068
|
}
|
|
49037
49069
|
}
|
|
49038
49070
|
},
|
|
@@ -49070,9 +49102,22 @@ var plugins_scrollbar_module = {
|
|
|
49070
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);
|
|
49071
49103
|
|
|
49072
49104
|
if (isUpdateAxesRange || updateData) {
|
|
49073
|
-
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
|
+
}
|
|
49074
49120
|
|
|
49075
|
-
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;
|
|
49076
49121
|
this.initScrollbarRange(dir);
|
|
49077
49122
|
}
|
|
49078
49123
|
|
|
@@ -49086,11 +49131,20 @@ var plugins_scrollbar_module = {
|
|
|
49086
49131
|
var _this$scrollbar$x, _this$scrollbar$x2, _this$scrollbar$y, _this$scrollbar$y2;
|
|
49087
49132
|
|
|
49088
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) {
|
|
49089
|
-
|
|
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);
|
|
49090
49139
|
}
|
|
49091
49140
|
|
|
49092
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) {
|
|
49093
|
-
|
|
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);
|
|
49094
49148
|
}
|
|
49095
49149
|
},
|
|
49096
49150
|
|
|
@@ -49173,10 +49227,12 @@ var plugins_scrollbar_module = {
|
|
|
49173
49227
|
/**
|
|
49174
49228
|
* set scrollbar position
|
|
49175
49229
|
* @param dir axis direction ('x' | 'y')
|
|
49230
|
+
* @param preservePosition 기존 위치를 유지할지 여부
|
|
49176
49231
|
*/
|
|
49177
49232
|
setScrollbarPosition: function setScrollbarPosition(dir) {
|
|
49178
49233
|
var _this$options$title, _this$options$title2;
|
|
49179
49234
|
|
|
49235
|
+
var preservePosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
49180
49236
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49181
49237
|
|
|
49182
49238
|
if (!scrollbarOpt.use || !scrollbarOpt.range) {
|
|
@@ -49197,8 +49253,17 @@ var plugins_scrollbar_module = {
|
|
|
49197
49253
|
var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
|
|
49198
49254
|
var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
|
|
49199
49255
|
var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
|
|
49200
|
-
var trackSize = fullSize - buttonSize * 2;
|
|
49201
|
-
|
|
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;
|
|
49202
49267
|
var scrollbarStyle = 'display: block;';
|
|
49203
49268
|
var scrollbarTrackStyle;
|
|
49204
49269
|
var scrollbarThumbStyle;
|
|
@@ -49265,8 +49330,9 @@ var plugins_scrollbar_module = {
|
|
|
49265
49330
|
* get scrollbar thumb size
|
|
49266
49331
|
* @param dir axis direction ('x' | 'y')
|
|
49267
49332
|
* @param trackSize scrollbar track size
|
|
49333
|
+
* @param savedThumbPosition 기존 위치를 보존해야 하는 경우 저장된 위치
|
|
49268
49334
|
*/
|
|
49269
|
-
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
|
|
49335
|
+
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize, savedThumbPosition) {
|
|
49270
49336
|
var scrollbarOpt = this.scrollbar[dir];
|
|
49271
49337
|
|
|
49272
49338
|
var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
|
|
@@ -49319,7 +49385,12 @@ var plugins_scrollbar_module = {
|
|
|
49319
49385
|
|
|
49320
49386
|
scrollbarOpt.startValue = startValue;
|
|
49321
49387
|
scrollbarOpt.steps = steps;
|
|
49322
|
-
scrollbarOpt.interval = interval;
|
|
49388
|
+
scrollbarOpt.interval = interval; // 기존 위치를 보존해야 하는 경우 저장된 위치를 사용
|
|
49389
|
+
|
|
49390
|
+
if (savedThumbPosition !== null) {
|
|
49391
|
+
thumbPosition = savedThumbPosition;
|
|
49392
|
+
}
|
|
49393
|
+
|
|
49323
49394
|
return {
|
|
49324
49395
|
size: thumbSize,
|
|
49325
49396
|
position: thumbPosition
|
|
@@ -49384,7 +49455,9 @@ var plugins_scrollbar_module = {
|
|
|
49384
49455
|
}
|
|
49385
49456
|
|
|
49386
49457
|
if (!isOutOfRange) {
|
|
49387
|
-
scrollbarOpt.range = [minValue, maxValue];
|
|
49458
|
+
scrollbarOpt.range = [minValue, maxValue]; // 사용자가 스크롤할 때는 저장된 위치를 초기화
|
|
49459
|
+
|
|
49460
|
+
delete scrollbarOpt.savedPosition;
|
|
49388
49461
|
this.update({
|
|
49389
49462
|
updateSeries: false,
|
|
49390
49463
|
updateSelTip: {
|
|
@@ -49399,7 +49472,9 @@ var plugins_scrollbar_module = {
|
|
|
49399
49472
|
* create scroll event
|
|
49400
49473
|
*/
|
|
49401
49474
|
createScrollEvent: function createScrollEvent() {
|
|
49402
|
-
var _this = this
|
|
49475
|
+
var _this = this,
|
|
49476
|
+
_this$scrollbar$x6,
|
|
49477
|
+
_this$scrollbar$y5;
|
|
49403
49478
|
|
|
49404
49479
|
this.onScrollbarClick = function (e) {
|
|
49405
49480
|
e.preventDefault();
|
|
@@ -49491,9 +49566,65 @@ var plugins_scrollbar_module = {
|
|
|
49491
49566
|
};
|
|
49492
49567
|
|
|
49493
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
|
+
|
|
49494
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);
|
|
49495
49620
|
|
|
49496
|
-
|
|
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
|
+
}
|
|
49497
49628
|
};
|
|
49498
49629
|
|
|
49499
49630
|
if (this.scrollbar.x.use && !this.scrollbar.x.isInit) {
|
|
@@ -49504,12 +49635,16 @@ var plugins_scrollbar_module = {
|
|
|
49504
49635
|
}
|
|
49505
49636
|
|
|
49506
49637
|
if (this.scrollbar.y.use && !this.scrollbar.y.isInit) {
|
|
49507
|
-
var _this$overlayCanvas;
|
|
49508
|
-
|
|
49509
49638
|
var scrollbarYDOM = this.scrollbar.y.dom;
|
|
49510
49639
|
scrollbarYDOM.addEventListener('click', this.onScrollbarClick);
|
|
49511
49640
|
scrollbarYDOM.addEventListener('mousedown', this.onScrollbarDown);
|
|
49512
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
|
+
|
|
49513
49648
|
(_this$overlayCanvas = this.overlayCanvas) === null || _this$overlayCanvas === void 0 ? void 0 : _this$overlayCanvas.addEventListener('wheel', this.onScrollbarWheel, {
|
|
49514
49649
|
passive: false
|
|
49515
49650
|
});
|
|
@@ -49585,7 +49720,9 @@ var plugins_scrollbar_module = {
|
|
|
49585
49720
|
return;
|
|
49586
49721
|
}
|
|
49587
49722
|
|
|
49588
|
-
this.scrollbar[dir].range = [movedMin, movedMax];
|
|
49723
|
+
this.scrollbar[dir].range = [movedMin, movedMax]; // 사용자가 드래그로 스크롤할 때는 저장된 위치를 초기화
|
|
49724
|
+
|
|
49725
|
+
delete this.scrollbar[dir].savedPosition;
|
|
49589
49726
|
this.update({
|
|
49590
49727
|
updateSeries: false,
|
|
49591
49728
|
updateSelTip: {
|
|
@@ -49634,15 +49771,17 @@ var plugins_scrollbar_module = {
|
|
|
49634
49771
|
* @param dir axis direction ('x' | 'y')
|
|
49635
49772
|
*/
|
|
49636
49773
|
destroyScrollbar: function destroyScrollbar(dir) {
|
|
49637
|
-
var
|
|
49774
|
+
var scrollbarDOM = this.scrollbar[dir].dom;
|
|
49775
|
+
|
|
49776
|
+
if (scrollbarDOM) {
|
|
49777
|
+
var _this$scrollbar$x7, _this$scrollbar$y6;
|
|
49638
49778
|
|
|
49639
|
-
|
|
49640
|
-
scrollbarXDOM.remove();
|
|
49779
|
+
scrollbarDOM.remove();
|
|
49641
49780
|
this.scrollbar[dir] = {
|
|
49642
49781
|
isInit: false
|
|
49643
|
-
};
|
|
49782
|
+
}; // 가로, 세로 스크롤바 모두 없어지면 휠 이벤트 제거
|
|
49644
49783
|
|
|
49645
|
-
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)) {
|
|
49646
49785
|
var _this$overlayCanvas2;
|
|
49647
49786
|
|
|
49648
49787
|
(_this$overlayCanvas2 = this.overlayCanvas) === null || _this$overlayCanvas2 === void 0 ? void 0 : _this$overlayCanvas2.removeEventListener('wheel', this.onScrollbarWheel, {
|
|
@@ -54815,6 +54954,18 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
54815
54954
|
}, {
|
|
54816
54955
|
key: "resize",
|
|
54817
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
|
+
|
|
54818
54969
|
this.clear();
|
|
54819
54970
|
this.bufferCtx.restore();
|
|
54820
54971
|
this.bufferCtx.save();
|