evui 3.4.154 → 3.4.156
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 +267 -132
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +267 -132
- 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 +19 -10
- package/src/components/chart/element/element.bar.js +23 -17
- package/src/components/chart/element/element.line.js +26 -0
- package/src/components/chart/element/element.tip.js +2 -2
- package/src/components/chart/model/model.store.js +90 -51
- package/src/components/chart/plugins/plugins.interaction.js +21 -7
- package/src/components/chart/plugins/plugins.scrollbar.js +57 -26
package/dist/evui.common.js
CHANGED
|
@@ -11235,7 +11235,7 @@ $({ target: 'Number', stat: true }, {
|
|
|
11235
11235
|
/***/ "9224":
|
|
11236
11236
|
/***/ (function(module) {
|
|
11237
11237
|
|
|
11238
|
-
module.exports = JSON.parse("{\"a\":\"3.4.
|
|
11238
|
+
module.exports = JSON.parse("{\"a\":\"3.4.156\"}");
|
|
11239
11239
|
|
|
11240
11240
|
/***/ }),
|
|
11241
11241
|
|
|
@@ -39902,7 +39902,7 @@ var modules = {
|
|
|
39902
39902
|
return null;
|
|
39903
39903
|
}
|
|
39904
39904
|
|
|
39905
|
-
itemPosition = [this.
|
|
39905
|
+
itemPosition = [this.getHitItemByPosition([dataInfo.xp, dataInfo.yp], useApproximate, dataIndex, true)];
|
|
39906
39906
|
} else {
|
|
39907
39907
|
var seriesList = Object.entries(this.seriesList);
|
|
39908
39908
|
var firShowSeriesID;
|
|
@@ -39927,7 +39927,7 @@ var modules = {
|
|
|
39927
39927
|
return null;
|
|
39928
39928
|
}
|
|
39929
39929
|
|
|
39930
|
-
return _this7.
|
|
39930
|
+
return _this7.getHitItemByPosition([(_dataInfo$xp = dataInfo === null || dataInfo === void 0 ? void 0 : dataInfo.xp) !== null && _dataInfo$xp !== void 0 ? _dataInfo$xp : 0, (_dataInfo$yp = dataInfo === null || dataInfo === void 0 ? void 0 : dataInfo.yp) !== null && _dataInfo$yp !== void 0 ? _dataInfo$yp : 0], useApproximate, idx, true);
|
|
39931
39931
|
});
|
|
39932
39932
|
}
|
|
39933
39933
|
|
|
@@ -39951,30 +39951,50 @@ var modules = {
|
|
|
39951
39951
|
},
|
|
39952
39952
|
|
|
39953
39953
|
/**
|
|
39954
|
-
* Find
|
|
39954
|
+
* Find the hit item at the given position (x, y).
|
|
39955
|
+
*
|
|
39956
|
+
* 선택 우선순위:
|
|
39957
|
+
* 1. directHit (bar 박스 내부 클릭) — 가장 가까운 것
|
|
39958
|
+
* 2. hit (line 포인트 근접 등) — 가장 가까운 것
|
|
39959
|
+
* 3. hit이 전혀 없으면 데이터가 있는 첫 시리즈로 fallback (기존 동작 호환)
|
|
39960
|
+
*
|
|
39961
|
+
* 과거에는 "같은 라벨 위에서 값이 가장 큰 시리즈"를 돌려주는 max-value 덮어쓰기 방식이었으나,
|
|
39962
|
+
* bar + line combo 차트에서 작은 bar를 클릭해도 큰 값의 line이 선택되는 버그의 원인이었다.
|
|
39963
|
+
* 이번 수정으로 사용자가 실제로 가리킨 시리즈(hit)가 선택되도록 바뀐다.
|
|
39964
|
+
*
|
|
39955
39965
|
* @param {array} offset position x and y
|
|
39956
39966
|
* @param {boolean} useApproximate if it's true. it'll look for closed item on mouse position
|
|
39957
39967
|
* @param {number} dataIndex selected data index
|
|
39958
39968
|
* @param {boolean} useSelectLabelOrItem used to display select label/item at tooltip location
|
|
39959
39969
|
*
|
|
39960
|
-
* @returns {object}
|
|
39970
|
+
* @returns {object} hit item information
|
|
39961
39971
|
*/
|
|
39962
|
-
|
|
39963
|
-
var
|
|
39972
|
+
getHitItemByPosition: function getHitItemByPosition(offset) {
|
|
39973
|
+
var _ref4;
|
|
39964
39974
|
|
|
39965
39975
|
var useApproximate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
39966
39976
|
var dataIndex = arguments.length > 2 ? arguments[2] : undefined;
|
|
39967
39977
|
var useSelectLabelOrItem = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
39968
39978
|
var seriesIDs = Object.keys(this.seriesList);
|
|
39969
|
-
var isHorizontal = !!this.options.horizontal;
|
|
39970
|
-
|
|
39971
|
-
var
|
|
39972
|
-
var
|
|
39973
|
-
var
|
|
39974
|
-
var
|
|
39979
|
+
var isHorizontal = !!this.options.horizontal; // hit 기반 결과 (최우선)
|
|
39980
|
+
|
|
39981
|
+
var hitType = null;
|
|
39982
|
+
var hitLabel = null;
|
|
39983
|
+
var hitValuePos = null;
|
|
39984
|
+
var hitValue = null;
|
|
39985
|
+
var hitSeriesID = '';
|
|
39986
|
+
var hitDataIndex = null;
|
|
39987
|
+
var hitDistance = Infinity;
|
|
39988
|
+
var hasDirectHit = false; // fallback: hit이 전혀 없을 때 사용할 "데이터 있는 첫 시리즈" 정보
|
|
39989
|
+
|
|
39990
|
+
var fallbackType = null;
|
|
39991
|
+
var fallbackLabel = null;
|
|
39992
|
+
var fallbackValuePos = null;
|
|
39993
|
+
var fallbackValue = null;
|
|
39994
|
+
var fallbackSeriesID = '';
|
|
39995
|
+
var fallbackDataIndex = null;
|
|
39975
39996
|
var acc = 0;
|
|
39976
39997
|
var useStack = false;
|
|
39977
|
-
var maxIndex = null;
|
|
39978
39998
|
|
|
39979
39999
|
for (var ix = 0; ix < seriesIDs.length; ix++) {
|
|
39980
40000
|
var seriesID = seriesIDs[ix];
|
|
@@ -39988,12 +40008,13 @@ var modules = {
|
|
|
39988
40008
|
|
|
39989
40009
|
if (data) {
|
|
39990
40010
|
if (helpers_util.isPieType(item.type)) {
|
|
39991
|
-
|
|
39992
|
-
|
|
39993
|
-
|
|
39994
|
-
|
|
39995
|
-
|
|
39996
|
-
|
|
40011
|
+
// pie 차트는 hit detection 체계가 달라 기존 동작 유지 (단일 pie 시리즈가 일반적)
|
|
40012
|
+
hitType = item.type;
|
|
40013
|
+
hitLabel = seriesID;
|
|
40014
|
+
hitSeriesID = seriesID;
|
|
40015
|
+
hitValuePos = (data.ea - data.sa) / 2;
|
|
40016
|
+
hitValue = data.o;
|
|
40017
|
+
hitDataIndex = data.index;
|
|
39997
40018
|
} else {
|
|
39998
40019
|
var ldata = isHorizontal ? data.y : data.x;
|
|
39999
40020
|
var lp = isHorizontal ? data.yp : data.xp;
|
|
@@ -40006,24 +40027,48 @@ var modules = {
|
|
|
40006
40027
|
useStack = true;
|
|
40007
40028
|
} else {
|
|
40008
40029
|
acc += data.y;
|
|
40009
|
-
}
|
|
40030
|
+
} // fallback 기록: 데이터가 있는 첫 시리즈를 저장
|
|
40031
|
+
|
|
40032
|
+
|
|
40033
|
+
if (fallbackSeriesID === '') {
|
|
40034
|
+
fallbackType = series.type;
|
|
40035
|
+
fallbackLabel = ldata;
|
|
40036
|
+
fallbackValuePos = lp;
|
|
40037
|
+
fallbackValue = g;
|
|
40038
|
+
fallbackSeriesID = seriesID;
|
|
40039
|
+
fallbackDataIndex = index;
|
|
40040
|
+
} // hit 기반 선택: item.hit이 true이고 유효한 좌표가 있을 때만 고려
|
|
40041
|
+
|
|
40042
|
+
|
|
40043
|
+
if (item.hit && data.xp !== undefined && data.yp !== undefined) {
|
|
40044
|
+
var distance = Math.pow(data.xp - offset[0], 2) + Math.pow(data.yp - offset[1], 2);
|
|
40045
|
+
|
|
40046
|
+
if (item.directHit) {
|
|
40047
|
+
// 직접 박스 히트는 최우선. 여러 개이면 가장 가까운 것.
|
|
40048
|
+
if (!hasDirectHit || distance < hitDistance) {
|
|
40049
|
+
hitDistance = distance;
|
|
40050
|
+
hitType = series.type;
|
|
40051
|
+
hitLabel = ldata;
|
|
40052
|
+
hitValuePos = lp;
|
|
40053
|
+
hitValue = g;
|
|
40054
|
+
hitSeriesID = seriesID;
|
|
40055
|
+
hitDataIndex = index;
|
|
40056
|
+
}
|
|
40010
40057
|
|
|
40011
|
-
|
|
40012
|
-
if (
|
|
40013
|
-
|
|
40014
|
-
|
|
40015
|
-
|
|
40016
|
-
|
|
40017
|
-
|
|
40018
|
-
|
|
40058
|
+
hasDirectHit = true;
|
|
40059
|
+
} else if (!hasDirectHit) {
|
|
40060
|
+
// directHit가 없을 때만 일반 hit 거리 비교 참여
|
|
40061
|
+
// (라인 근접 히트가 박스 직접 히트를 이기지 못하도록)
|
|
40062
|
+
if (distance < hitDistance) {
|
|
40063
|
+
hitDistance = distance;
|
|
40064
|
+
hitType = series.type;
|
|
40065
|
+
hitLabel = ldata;
|
|
40066
|
+
hitValuePos = lp;
|
|
40067
|
+
hitValue = g;
|
|
40068
|
+
hitSeriesID = seriesID;
|
|
40069
|
+
hitDataIndex = index;
|
|
40070
|
+
}
|
|
40019
40071
|
}
|
|
40020
|
-
} else if (maxValue === null || maxValue <= g) {
|
|
40021
|
-
maxValue = g;
|
|
40022
|
-
maxSeriesID = seriesID;
|
|
40023
|
-
maxLabel = ldata;
|
|
40024
|
-
maxValuePos = lp;
|
|
40025
|
-
maxIndex = index;
|
|
40026
|
-
maxType = series.type;
|
|
40027
40072
|
}
|
|
40028
40073
|
}
|
|
40029
40074
|
}
|
|
@@ -40031,22 +40076,23 @@ var modules = {
|
|
|
40031
40076
|
}
|
|
40032
40077
|
}
|
|
40033
40078
|
|
|
40079
|
+
var hasHit = hitSeriesID !== '';
|
|
40034
40080
|
return {
|
|
40035
|
-
type:
|
|
40036
|
-
label:
|
|
40037
|
-
pos:
|
|
40038
|
-
value: (
|
|
40039
|
-
sId:
|
|
40081
|
+
type: hasHit ? hitType : fallbackType,
|
|
40082
|
+
label: hasHit ? hitLabel : fallbackLabel,
|
|
40083
|
+
pos: hasHit ? hitValuePos : fallbackValuePos,
|
|
40084
|
+
value: (_ref4 = hasHit ? hitValue : fallbackValue) !== null && _ref4 !== void 0 ? _ref4 : 0,
|
|
40085
|
+
sId: hasHit ? hitSeriesID : fallbackSeriesID,
|
|
40040
40086
|
acc: acc,
|
|
40041
40087
|
useStack: useStack,
|
|
40042
|
-
|
|
40088
|
+
dataIndex: hasHit ? hitDataIndex : fallbackDataIndex
|
|
40043
40089
|
};
|
|
40044
40090
|
},
|
|
40045
40091
|
|
|
40046
40092
|
/**
|
|
40047
40093
|
* @typedef {Object} LabelInfoResult
|
|
40048
40094
|
* @property {number} labelIndex - 선택된 라벨의 인덱스
|
|
40049
|
-
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (
|
|
40095
|
+
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (getHitItemByPosition 반환값)
|
|
40050
40096
|
*/
|
|
40051
40097
|
|
|
40052
40098
|
/**
|
|
@@ -40071,9 +40117,9 @@ var modules = {
|
|
|
40071
40117
|
};
|
|
40072
40118
|
var seriesList = this.data.series;
|
|
40073
40119
|
var pointSize = (_Object$values$sort$ = (_Object$values$sort$2 = Object.values(seriesList).sort(function (a, b) {
|
|
40074
|
-
var
|
|
40120
|
+
var _ref5, _b$pointSize;
|
|
40075
40121
|
|
|
40076
|
-
return (
|
|
40122
|
+
return (_ref5 = (_b$pointSize = b.pointSize) !== null && _b$pointSize !== void 0 ? _b$pointSize : 0 - a.pointSize) !== null && _ref5 !== void 0 ? _ref5 : 0;
|
|
40077
40123
|
})[0]) === null || _Object$values$sort$2 === void 0 ? void 0 : _Object$values$sort$2.pointSize) !== null && _Object$values$sort$ !== void 0 ? _Object$values$sort$ : 3; // default pointSize 3
|
|
40078
40124
|
|
|
40079
40125
|
var _this$options = this.options,
|
|
@@ -40105,10 +40151,10 @@ var modules = {
|
|
|
40105
40151
|
_scrollbarOpt2$interv = _scrollbarOpt2.interval,
|
|
40106
40152
|
interval = _scrollbarOpt2$interv === void 0 ? 1 : _scrollbarOpt2$interv;
|
|
40107
40153
|
|
|
40108
|
-
var
|
|
40109
|
-
|
|
40110
|
-
min =
|
|
40111
|
-
max =
|
|
40154
|
+
var _ref6 = range !== null && range !== void 0 ? range : [0, scale.labels.length],
|
|
40155
|
+
_ref7 = _slicedToArray(_ref6, 2),
|
|
40156
|
+
min = _ref7[0],
|
|
40157
|
+
max = _ref7[1];
|
|
40112
40158
|
|
|
40113
40159
|
var labelCount = Math.floor((+max - +min) / interval) + 1;
|
|
40114
40160
|
var labelGap = (endPoint - startPoint) / labelCount;
|
|
@@ -40134,7 +40180,7 @@ var modules = {
|
|
|
40134
40180
|
|
|
40135
40181
|
labelIndex = scale.labels.length > _index ? _index : -1;
|
|
40136
40182
|
} else {
|
|
40137
|
-
var _hitInfo$
|
|
40183
|
+
var _hitInfo$dataIndex;
|
|
40138
40184
|
|
|
40139
40185
|
var offsetX;
|
|
40140
40186
|
var dataIndex;
|
|
@@ -40149,8 +40195,8 @@ var modules = {
|
|
|
40149
40195
|
offsetX = x;
|
|
40150
40196
|
}
|
|
40151
40197
|
|
|
40152
|
-
hitInfo = this.
|
|
40153
|
-
labelIndex = (_hitInfo$
|
|
40198
|
+
hitInfo = this.getHitItemByPosition([offsetX, y], selectLabel === null || selectLabel === void 0 ? void 0 : selectLabel.useApproximateValue, dataIndex, true);
|
|
40199
|
+
labelIndex = (_hitInfo$dataIndex = hitInfo.dataIndex) !== null && _hitInfo$dataIndex !== void 0 ? _hitInfo$dataIndex : -1;
|
|
40154
40200
|
}
|
|
40155
40201
|
|
|
40156
40202
|
return {
|
|
@@ -42133,7 +42179,7 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42133
42179
|
}, {
|
|
42134
42180
|
key: "findGraphData",
|
|
42135
42181
|
value: function findGraphData(offset, isHorizontal, dataIndex, useSelectLabelOrItem) {
|
|
42136
|
-
var _item$data;
|
|
42182
|
+
var _this$pointSize, _item$data;
|
|
42137
42183
|
|
|
42138
42184
|
var xp = offset[0];
|
|
42139
42185
|
var yp = offset[1];
|
|
@@ -42145,7 +42191,23 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42145
42191
|
var gdata = this.data.filter(function (data) {
|
|
42146
42192
|
return !helpers_util.isNullOrUndefined(data.x);
|
|
42147
42193
|
});
|
|
42148
|
-
var isLinearInterpolation = this.useLinearInterpolation();
|
|
42194
|
+
var isLinearInterpolation = this.useLinearInterpolation(); // line 포인트 "정확 히트" 판정용 반경.
|
|
42195
|
+
// combo 차트에서 line 포인트 중심을 직격한 경우, 같은 좌표의 bar(directHit)보다
|
|
42196
|
+
// line이 우선되도록 item.directHit = true로 표시한다. 그 외(단순 Y축 근접)는 기존처럼 hit만.
|
|
42197
|
+
// 포인트 반지름에 기본 포인트 크기(LINE_OPTION.pointSize)만큼의 클릭 여유 마진을 더하고,
|
|
42198
|
+
// 시각적으로 하이라이트되는 포인트 반경(highlight.maxSize)을 최소 보장값으로 사용한다.
|
|
42199
|
+
|
|
42200
|
+
var directHitRadius = Math.max(((_this$pointSize = this.pointSize) !== null && _this$pointSize !== void 0 ? _this$pointSize : LINE_OPTION.pointSize) + LINE_OPTION.pointSize, LINE_OPTION.highlight.maxSize);
|
|
42201
|
+
|
|
42202
|
+
var isLinePointDirectHit = function isLinePointDirectHit(point) {
|
|
42203
|
+
if (!point || point.xp === undefined || point.yp === undefined) {
|
|
42204
|
+
return false;
|
|
42205
|
+
}
|
|
42206
|
+
|
|
42207
|
+
var dx = xp - point.xp;
|
|
42208
|
+
var dy = yp - point.yp;
|
|
42209
|
+
return dx * dx + dy * dy <= directHitRadius * directHitRadius;
|
|
42210
|
+
};
|
|
42149
42211
|
|
|
42150
42212
|
if (gdata !== null && gdata !== void 0 && gdata.length) {
|
|
42151
42213
|
if (typeof dataIndex === 'number' && this.show) {
|
|
@@ -42160,6 +42222,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42160
42222
|
if (yDist <= directHitThreshold) {
|
|
42161
42223
|
item.hit = true;
|
|
42162
42224
|
}
|
|
42225
|
+
|
|
42226
|
+
if (isLinePointDirectHit(point)) {
|
|
42227
|
+
item.hit = true;
|
|
42228
|
+
item.directHit = true;
|
|
42229
|
+
}
|
|
42163
42230
|
}
|
|
42164
42231
|
} else if (typeof this.beforeFindItemIndex === 'number' && this.beforeFindItemIndex !== -1 && this.show && useSelectLabelOrItem) {
|
|
42165
42232
|
item.data = gdata[this.beforeFindItemIndex];
|
|
@@ -42308,6 +42375,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42308
42375
|
if (_yDist <= _directHitThreshold) {
|
|
42309
42376
|
item.hit = true;
|
|
42310
42377
|
}
|
|
42378
|
+
|
|
42379
|
+
if (isLinePointDirectHit(_point3)) {
|
|
42380
|
+
item.hit = true;
|
|
42381
|
+
item.directHit = true;
|
|
42382
|
+
}
|
|
42311
42383
|
}
|
|
42312
42384
|
}
|
|
42313
42385
|
}
|
|
@@ -43038,17 +43110,16 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43038
43110
|
this.borderRadius = param.borderRadius;
|
|
43039
43111
|
this.filteredCount = totalCount;
|
|
43040
43112
|
var startIndex = truthyNumber(minIndex) ? minIndex : 0;
|
|
43041
|
-
var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1;
|
|
43113
|
+
var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1;
|
|
43114
|
+
this.visibleStartIndex = startIndex;
|
|
43042
43115
|
|
|
43043
43116
|
for (var i = startIndex; i <= endIndex; i++) {
|
|
43044
|
-
var screenIndex = i - startIndex;
|
|
43045
|
-
|
|
43046
|
-
var item = this.data[i]; // 실제 데이터 인덱스에 해당하는 항목
|
|
43117
|
+
var screenIndex = i - startIndex;
|
|
43118
|
+
var item = this.data[i];
|
|
43047
43119
|
|
|
43048
43120
|
if (item) {
|
|
43049
43121
|
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
43050
43122
|
|
|
43051
|
-
// 스크롤 offset(minIndex)만큼 보정해서 그리기
|
|
43052
43123
|
var categoryPoint = isHorizontal ? ysp - cArea * screenIndex - cPad : xsp + cArea * screenIndex + cPad;
|
|
43053
43124
|
|
|
43054
43125
|
if (isHorizontal) {
|
|
@@ -43147,11 +43218,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43147
43218
|
|
|
43148
43219
|
item.h = isHorizontal ? -h : h; // eslint-disable-line
|
|
43149
43220
|
|
|
43150
|
-
item.index = i;
|
|
43151
|
-
// 검색(hitInfo) 로직은 this.data[0..filteredCount-1] 범위만 검사하므로,
|
|
43152
|
-
// 현재 화면에 그린 항목을 배열 앞쪽으로 매핑해준다.
|
|
43153
|
-
|
|
43154
|
-
this.data[screenIndex] = item;
|
|
43221
|
+
item.index = i;
|
|
43155
43222
|
}
|
|
43156
43223
|
}
|
|
43157
43224
|
}
|
|
@@ -43237,17 +43304,26 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43237
43304
|
key: "findGraphData",
|
|
43238
43305
|
value: function findGraphData(offset, isHorizontal, dataIndex, useIndicatorOnLabel) {
|
|
43239
43306
|
if (typeof dataIndex === 'number' && this.show && useIndicatorOnLabel) {
|
|
43240
|
-
var
|
|
43307
|
+
var _this$visibleStartInd, _this$filteredCount;
|
|
43308
|
+
|
|
43309
|
+
var barData = this.data;
|
|
43241
43310
|
var item = {
|
|
43242
43311
|
data: null,
|
|
43243
43312
|
hit: false,
|
|
43244
43313
|
color: this.color
|
|
43245
|
-
};
|
|
43314
|
+
}; // dataIndex를 현재 화면에 보이는 범위로 clamp하여 stale xp/yp 참조 방지
|
|
43246
43315
|
|
|
43247
|
-
|
|
43248
|
-
|
|
43249
|
-
|
|
43250
|
-
|
|
43316
|
+
var visStart = (_this$visibleStartInd = this.visibleStartIndex) !== null && _this$visibleStartInd !== void 0 ? _this$visibleStartInd : 0;
|
|
43317
|
+
var visEnd = visStart + ((_this$filteredCount = this.filteredCount) !== null && _this$filteredCount !== void 0 ? _this$filteredCount : barData.length) - 1;
|
|
43318
|
+
var clampedIndex = Math.max(visStart, Math.min(dataIndex, visEnd));
|
|
43319
|
+
|
|
43320
|
+
if (barData[clampedIndex]) {
|
|
43321
|
+
item.data = barData[clampedIndex];
|
|
43322
|
+
item.index = clampedIndex;
|
|
43323
|
+
item.hit = this.isPointInBar(offset, barData[clampedIndex]); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시.
|
|
43324
|
+
// findHitItem에서 line 포인트 근접 히트보다 우선 선택되도록 하기 위함.
|
|
43325
|
+
|
|
43326
|
+
item.directHit = item.hit;
|
|
43251
43327
|
}
|
|
43252
43328
|
|
|
43253
43329
|
return item;
|
|
@@ -43273,7 +43349,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43273
43349
|
}, {
|
|
43274
43350
|
key: "binarySearchBar",
|
|
43275
43351
|
value: function binarySearchBar(offset, isHorizontal) {
|
|
43276
|
-
var _this$
|
|
43352
|
+
var _this$visibleStartInd2, _this$filteredCount2;
|
|
43277
43353
|
|
|
43278
43354
|
var _offset = _slicedToArray(offset, 2),
|
|
43279
43355
|
xp = _offset[0],
|
|
@@ -43285,9 +43361,10 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43285
43361
|
color: this.color
|
|
43286
43362
|
};
|
|
43287
43363
|
var gdata = this.data;
|
|
43288
|
-
var
|
|
43289
|
-
var
|
|
43290
|
-
var
|
|
43364
|
+
var startIdx = (_this$visibleStartInd2 = this.visibleStartIndex) !== null && _this$visibleStartInd2 !== void 0 ? _this$visibleStartInd2 : 0;
|
|
43365
|
+
var totalCount = (_this$filteredCount2 = this.filteredCount) !== null && _this$filteredCount2 !== void 0 ? _this$filteredCount2 : gdata.length;
|
|
43366
|
+
var s = startIdx;
|
|
43367
|
+
var e = startIdx + totalCount - 1;
|
|
43291
43368
|
|
|
43292
43369
|
while (s <= e) {
|
|
43293
43370
|
var m = Math.floor((s + e) / 2);
|
|
@@ -43303,7 +43380,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43303
43380
|
if (inRange) {
|
|
43304
43381
|
item.data = barData;
|
|
43305
43382
|
item.index = barData.index;
|
|
43306
|
-
item.hit = this.isPointInBar(offset, barData);
|
|
43383
|
+
item.hit = this.isPointInBar(offset, barData); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시 (findHitItem 우선순위용).
|
|
43384
|
+
|
|
43385
|
+
item.directHit = item.hit;
|
|
43307
43386
|
return item;
|
|
43308
43387
|
}
|
|
43309
43388
|
|
|
@@ -50194,13 +50273,20 @@ var plugins_scrollbar_module = {
|
|
|
50194
50273
|
Object.keys(merged).forEach(function (key) {
|
|
50195
50274
|
scrollbarOpt[key] = merged[key];
|
|
50196
50275
|
});
|
|
50197
|
-
|
|
50276
|
+
|
|
50277
|
+
if (scrollbarOpt.resetPosition) {
|
|
50278
|
+
var _axisOpt$2, _axisOpt$2$range, _axisOpt$3;
|
|
50279
|
+
|
|
50280
|
+
scrollbarOpt.range = axisOpt !== null && axisOpt !== void 0 && (_axisOpt$2 = axisOpt[0]) !== null && _axisOpt$2 !== void 0 && (_axisOpt$2$range = _axisOpt$2.range) !== null && _axisOpt$2$range !== void 0 && _axisOpt$2$range.length ? _toConsumableArray(axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$3 = axisOpt[0]) === null || _axisOpt$3 === void 0 ? void 0 : _axisOpt$3.range) : null;
|
|
50281
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50282
|
+
}
|
|
50198
50283
|
|
|
50199
50284
|
if (!scrollbarOpt.isInit) {
|
|
50200
|
-
var _axisOpt$
|
|
50285
|
+
var _axisOpt$4, _axisOpt$5, _axisOpt$5$range, _axisOpt$6;
|
|
50201
50286
|
|
|
50202
|
-
scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$
|
|
50203
|
-
scrollbarOpt.range = axisOpt !== null && axisOpt !== void 0 && (_axisOpt$
|
|
50287
|
+
scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$4 = axisOpt[0]) === null || _axisOpt$4 === void 0 ? void 0 : _axisOpt$4.type;
|
|
50288
|
+
scrollbarOpt.range = axisOpt !== null && axisOpt !== void 0 && (_axisOpt$5 = axisOpt[0]) !== null && _axisOpt$5 !== void 0 && (_axisOpt$5$range = _axisOpt$5.range) !== null && _axisOpt$5$range !== void 0 && _axisOpt$5$range.length ? _toConsumableArray(axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$6 = axisOpt[0]) === null || _axisOpt$6 === void 0 ? void 0 : _axisOpt$6.range) : null;
|
|
50289
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50204
50290
|
this.initScrollbarRange(dir);
|
|
50205
50291
|
this.createScrollbarLayout(dir);
|
|
50206
50292
|
this.createScrollbar(dir);
|
|
@@ -50263,7 +50349,7 @@ var plugins_scrollbar_module = {
|
|
|
50263
50349
|
* @param updateData is update data
|
|
50264
50350
|
*/
|
|
50265
50351
|
updateScrollbarInfo: function updateScrollbarInfo(dir, updateData) {
|
|
50266
|
-
var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$
|
|
50352
|
+
var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$7, _newOpt$0$scrollbar2;
|
|
50267
50353
|
|
|
50268
50354
|
var _this$options = this.options,
|
|
50269
50355
|
axesX = _this$options.axesX,
|
|
@@ -50279,23 +50365,21 @@ var plugins_scrollbar_module = {
|
|
|
50279
50365
|
}
|
|
50280
50366
|
|
|
50281
50367
|
var axisOpt = dir === 'x' ? this.axesX : this.axesY;
|
|
50282
|
-
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$
|
|
50368
|
+
var isUpdateAxesRange = !lodash_es_isEqual(newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$4 = newOpt[0]) === null || _newOpt$4 === void 0 ? void 0 : _newOpt$4.range, axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$7 = axisOpt[0]) === null || _axisOpt$7 === void 0 ? void 0 : _axisOpt$7.range);
|
|
50283
50369
|
|
|
50284
50370
|
if (isUpdateAxesRange || updateData) {
|
|
50285
50371
|
var _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2;
|
|
50286
50372
|
|
|
50287
50373
|
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;
|
|
50288
50374
|
|
|
50289
|
-
if (isUpdateAxesRange
|
|
50375
|
+
if (isUpdateAxesRange) {
|
|
50290
50376
|
var _newOpt$5, _newOpt$5$range, _newOpt$6;
|
|
50291
50377
|
|
|
50292
|
-
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;
|
|
50378
|
+
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;
|
|
50379
|
+
}
|
|
50293
50380
|
|
|
50294
|
-
|
|
50295
|
-
|
|
50296
|
-
// 데이터가 업데이트되면 저장된 픽셀 위치는 더 이상 유효하지 않으므로 삭제하여
|
|
50297
|
-
// 논리적 범위에 따라 다시 계산하도록 합니다.
|
|
50298
|
-
delete this.scrollbar[dir].savedPosition;
|
|
50381
|
+
if (isResetPosition || updateData) {
|
|
50382
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50299
50383
|
}
|
|
50300
50384
|
|
|
50301
50385
|
this.initScrollbarRange(dir);
|
|
@@ -50433,17 +50517,32 @@ var plugins_scrollbar_module = {
|
|
|
50433
50517
|
var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
|
|
50434
50518
|
var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
|
|
50435
50519
|
var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
|
|
50436
|
-
var trackSize = fullSize - buttonSize * 2;
|
|
50520
|
+
var trackSize = fullSize - buttonSize * 2;
|
|
50521
|
+
var thumbSize = this.getScrollbarThumbSize(dir, trackSize); // 비율로 저장된 위치가 있으면 새 track 크기에 맞게 복원
|
|
50437
50522
|
|
|
50438
|
-
|
|
50523
|
+
if (preservePosition && scrollbarOpt.savedPositionRatio !== undefined) {
|
|
50524
|
+
var maxPosition = Math.max(0, trackSize - thumbSize.size);
|
|
50525
|
+
|
|
50526
|
+
if (scrollbarOpt.savedAtStart) {
|
|
50527
|
+
thumbSize.position = 0;
|
|
50528
|
+
} else if (scrollbarOpt.savedAtEnd) {
|
|
50529
|
+
thumbSize.position = maxPosition;
|
|
50530
|
+
} else {
|
|
50531
|
+
thumbSize.position = Math.min(scrollbarOpt.savedPositionRatio * trackSize, maxPosition);
|
|
50532
|
+
}
|
|
50533
|
+
} // 위치를 비율 및 처음/끝 고정 여부로 저장
|
|
50534
|
+
// currentMaxPosition === 0 (thumbSize >= trackSize) 인 경우 저장하지 않음
|
|
50535
|
+
// → trackSize가 다시 커졌을 때 이전 savedAtEnd/savedAtStart/savedPositionRatio 상태를 유지
|
|
50439
50536
|
|
|
50440
|
-
if (preservePosition && scrollbarOpt.savedPosition !== undefined) {
|
|
50441
|
-
savedThumbPosition = scrollbarOpt.savedPosition;
|
|
50442
|
-
}
|
|
50443
50537
|
|
|
50444
|
-
var
|
|
50538
|
+
var currentMaxPosition = Math.max(0, trackSize - thumbSize.size);
|
|
50539
|
+
|
|
50540
|
+
if (currentMaxPosition > 0) {
|
|
50541
|
+
scrollbarOpt.savedPositionRatio = thumbSize.position / trackSize;
|
|
50542
|
+
scrollbarOpt.savedAtStart = thumbSize.position <= 0;
|
|
50543
|
+
scrollbarOpt.savedAtEnd = thumbSize.position >= currentMaxPosition;
|
|
50544
|
+
}
|
|
50445
50545
|
|
|
50446
|
-
scrollbarOpt.savedPosition = thumbSize.position;
|
|
50447
50546
|
var scrollbarStyle = 'display: block;';
|
|
50448
50547
|
var scrollbarTrackStyle;
|
|
50449
50548
|
var scrollbarThumbStyle;
|
|
@@ -50510,9 +50609,8 @@ var plugins_scrollbar_module = {
|
|
|
50510
50609
|
* get scrollbar thumb size
|
|
50511
50610
|
* @param dir axis direction ('x' | 'y')
|
|
50512
50611
|
* @param trackSize scrollbar track size
|
|
50513
|
-
* @param savedThumbPosition 기존 위치를 보존해야 하는 경우 저장된 위치
|
|
50514
50612
|
*/
|
|
50515
|
-
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize
|
|
50613
|
+
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
|
|
50516
50614
|
var scrollbarOpt = this.scrollbar[dir];
|
|
50517
50615
|
|
|
50518
50616
|
var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
|
|
@@ -50543,9 +50641,9 @@ var plugins_scrollbar_module = {
|
|
|
50543
50641
|
var _range = +max - +min;
|
|
50544
50642
|
|
|
50545
50643
|
if (axesType === 'time') {
|
|
50546
|
-
var _axisOpt$
|
|
50644
|
+
var _axisOpt$8, _this$labelRange$dir, _this$labelRange$dir$;
|
|
50547
50645
|
|
|
50548
|
-
interval = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$
|
|
50646
|
+
interval = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$8 = axisOpt[0]) === null || _axisOpt$8 === void 0 ? void 0 : _axisOpt$8.getInterval({
|
|
50549
50647
|
minValue: minMax.min,
|
|
50550
50648
|
maxValue: minMax.max,
|
|
50551
50649
|
maxSteps: (_this$labelRange$dir = this.labelRange[dir]) === null || _this$labelRange$dir === void 0 ? void 0 : (_this$labelRange$dir$ = _this$labelRange$dir[0]) === null || _this$labelRange$dir$ === void 0 ? void 0 : _this$labelRange$dir$.max
|
|
@@ -50565,12 +50663,7 @@ var plugins_scrollbar_module = {
|
|
|
50565
50663
|
|
|
50566
50664
|
scrollbarOpt.startValue = startValue;
|
|
50567
50665
|
scrollbarOpt.steps = steps;
|
|
50568
|
-
scrollbarOpt.interval = interval;
|
|
50569
|
-
|
|
50570
|
-
if (savedThumbPosition !== null) {
|
|
50571
|
-
thumbPosition = savedThumbPosition;
|
|
50572
|
-
}
|
|
50573
|
-
|
|
50666
|
+
scrollbarOpt.interval = interval;
|
|
50574
50667
|
return {
|
|
50575
50668
|
size: thumbSize,
|
|
50576
50669
|
position: thumbPosition
|
|
@@ -50637,18 +50730,35 @@ var plugins_scrollbar_module = {
|
|
|
50637
50730
|
if (!isOutOfRange) {
|
|
50638
50731
|
scrollbarOpt.range = [minValue, maxValue]; // 사용자가 스크롤할 때는 저장된 위치를 초기화
|
|
50639
50732
|
|
|
50640
|
-
|
|
50733
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50641
50734
|
this.update({
|
|
50642
50735
|
updateSeries: false,
|
|
50643
50736
|
updateSelTip: {
|
|
50644
50737
|
update: false,
|
|
50645
50738
|
keepDomain: false
|
|
50646
50739
|
},
|
|
50647
|
-
lightUpdate: minValue > 1
|
|
50740
|
+
lightUpdate: minValue > 1,
|
|
50741
|
+
updateByScrollbar: true
|
|
50648
50742
|
});
|
|
50649
50743
|
}
|
|
50650
50744
|
},
|
|
50651
50745
|
|
|
50746
|
+
/**
|
|
50747
|
+
* reset scrollbar saved positions
|
|
50748
|
+
* @param dir axis direction ('x' | 'y')
|
|
50749
|
+
*/
|
|
50750
|
+
resetScrollbarSavedPositions: function resetScrollbarSavedPositions(dir) {
|
|
50751
|
+
var scrollbarOpt = this.scrollbar[dir];
|
|
50752
|
+
|
|
50753
|
+
if (!scrollbarOpt) {
|
|
50754
|
+
return;
|
|
50755
|
+
}
|
|
50756
|
+
|
|
50757
|
+
delete scrollbarOpt.savedPositionRatio;
|
|
50758
|
+
delete scrollbarOpt.savedAtStart;
|
|
50759
|
+
delete scrollbarOpt.savedAtEnd;
|
|
50760
|
+
},
|
|
50761
|
+
|
|
50652
50762
|
/**
|
|
50653
50763
|
* create scroll event
|
|
50654
50764
|
*/
|
|
@@ -50903,13 +51013,15 @@ var plugins_scrollbar_module = {
|
|
|
50903
51013
|
|
|
50904
51014
|
this.scrollbar[dir].range = [movedMin, movedMax]; // 사용자가 드래그로 스크롤할 때는 저장된 위치를 초기화
|
|
50905
51015
|
|
|
50906
|
-
|
|
51016
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50907
51017
|
this.update({
|
|
50908
51018
|
updateSeries: false,
|
|
50909
51019
|
updateSelTip: {
|
|
50910
51020
|
update: false,
|
|
50911
51021
|
keepDomain: false
|
|
50912
|
-
}
|
|
51022
|
+
},
|
|
51023
|
+
lightUpdate: movedMin > 1,
|
|
51024
|
+
updateByScrollbar: true
|
|
50913
51025
|
});
|
|
50914
51026
|
},
|
|
50915
51027
|
|
|
@@ -51779,19 +51891,19 @@ var plugins_interaction_modules = {
|
|
|
51779
51891
|
var useSelectSeries = (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.use) && (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.useClick);
|
|
51780
51892
|
|
|
51781
51893
|
var setSelectedItemInfo = function setSelectedItemInfo() {
|
|
51782
|
-
var hitInfo = _this.
|
|
51894
|
+
var hitInfo = _this.getHitItemByPosition(offset, false);
|
|
51783
51895
|
|
|
51784
51896
|
args.label = hitInfo.label;
|
|
51785
51897
|
args.value = hitInfo.value;
|
|
51786
51898
|
args.seriesId = hitInfo.sId;
|
|
51787
|
-
args.dataIndex = hitInfo.
|
|
51899
|
+
args.dataIndex = hitInfo.dataIndex;
|
|
51788
51900
|
args.acc = hitInfo.acc;
|
|
51789
51901
|
|
|
51790
51902
|
if (hitInfo !== null && hitInfo !== void 0 && hitInfo.sId) {
|
|
51791
51903
|
args.selected = {
|
|
51792
51904
|
eventTarget: 'item',
|
|
51793
51905
|
seriesId: _this.isDeselectItem(hitInfo) ? null : hitInfo.sId,
|
|
51794
|
-
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.
|
|
51906
|
+
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.dataIndex
|
|
51795
51907
|
};
|
|
51796
51908
|
}
|
|
51797
51909
|
};
|
|
@@ -52465,7 +52577,10 @@ var plugins_interaction_modules = {
|
|
|
52465
52577
|
var maxv = '';
|
|
52466
52578
|
var maxg = null;
|
|
52467
52579
|
var maxSID = null;
|
|
52468
|
-
var minDistance = Infinity; //
|
|
52580
|
+
var minDistance = Infinity; // directHit(bar 박스 내부 클릭/hover) 시리즈가 발견되었는지 추적.
|
|
52581
|
+
// 한 번이라도 directHit가 있으면 line의 근접 포인트 히트는 hitId 후보에서 배제된다.
|
|
52582
|
+
|
|
52583
|
+
var hasDirectHit = false; // 1. 먼저 공통으로 사용할 데이터 인덱스 결정
|
|
52469
52584
|
|
|
52470
52585
|
var targetDataIndex = this.findClosestDataIndex(offset, sIds);
|
|
52471
52586
|
|
|
@@ -52541,13 +52656,25 @@ var plugins_interaction_modules = {
|
|
|
52541
52656
|
if (maxg === null || maxg <= gdata) {
|
|
52542
52657
|
maxg = gdata;
|
|
52543
52658
|
maxSID = sId;
|
|
52544
|
-
} // 마우스 위치와의 거리 계산하여 가장 가까운 시리즈
|
|
52659
|
+
} // 마우스 위치와의 거리 계산하여 가장 가까운 시리즈 선택.
|
|
52660
|
+
// directHit(bar 박스 내부)가 하나라도 있으면 그중에서만 선택하고,
|
|
52661
|
+
// 라인의 근접 포인트 히트(item.hit=true, directHit=false)는 hitId 후보에서 배제한다.
|
|
52662
|
+
// bar + line combo 차트에서 작은 bar 클릭 시 큰 값의 line이 잡히던 버그 방지.
|
|
52545
52663
|
|
|
52546
52664
|
|
|
52547
52665
|
if (item.hit && item.data.xp !== undefined && item.data.yp !== undefined) {
|
|
52548
52666
|
var distance = Math.pow(item.data.xp - offset[0], 2) + Math.pow(item.data.yp - offset[1], 2);
|
|
52549
52667
|
|
|
52550
|
-
if (
|
|
52668
|
+
if (item.directHit) {
|
|
52669
|
+
// directHit는 최우선. 여러 directHit 중에서는 가장 가까운 것 선택.
|
|
52670
|
+
if (!hasDirectHit || distance < minDistance) {
|
|
52671
|
+
minDistance = distance;
|
|
52672
|
+
hitId = sId;
|
|
52673
|
+
}
|
|
52674
|
+
|
|
52675
|
+
hasDirectHit = true;
|
|
52676
|
+
} else if (!hasDirectHit && distance < minDistance) {
|
|
52677
|
+
// directHit가 없을 때만 일반 hit 거리 비교
|
|
52551
52678
|
minDistance = distance;
|
|
52552
52679
|
hitId = sId;
|
|
52553
52680
|
}
|
|
@@ -53243,7 +53370,7 @@ var plugins_interaction_modules = {
|
|
|
53243
53370
|
isDeselectItem: function isDeselectItem(hitInfo) {
|
|
53244
53371
|
var _this$defaultSelectIt, _this$defaultSelectIt2;
|
|
53245
53372
|
|
|
53246
|
-
return this.options.selectItem.useDeselectItem && (hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.
|
|
53373
|
+
return this.options.selectItem.useDeselectItem && (hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.dataIndex) === ((_this$defaultSelectIt = this.defaultSelectItemInfo) === null || _this$defaultSelectIt === void 0 ? void 0 : _this$defaultSelectIt.dataIndex) && (hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.sId) === ((_this$defaultSelectIt2 = this.defaultSelectItemInfo) === null || _this$defaultSelectIt2 === void 0 ? void 0 : _this$defaultSelectIt2.seriesID) && !isNaN(hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.dataIndex);
|
|
53247
53374
|
},
|
|
53248
53375
|
|
|
53249
53376
|
/**
|
|
@@ -54917,7 +55044,7 @@ var element_tip_modules = {
|
|
|
54917
55044
|
|
|
54918
55045
|
if (tipType === 'sel') {
|
|
54919
55046
|
if (hitInfo && hitInfo.label !== null) {
|
|
54920
|
-
lastTip.pos = type === 'bar' ? hitInfo.
|
|
55047
|
+
lastTip.pos = type === 'bar' ? hitInfo.dataIndex : hitInfo.label;
|
|
54921
55048
|
ldata = lastTip.pos;
|
|
54922
55049
|
} else if (lastTip.pos !== null) {
|
|
54923
55050
|
ldata = lastTip.pos;
|
|
@@ -55129,9 +55256,10 @@ var element_tip_modules = {
|
|
|
55129
55256
|
interval = scrollbarOpt.interval,
|
|
55130
55257
|
type = scrollbarOpt.type;
|
|
55131
55258
|
|
|
55132
|
-
var
|
|
55133
|
-
|
|
55134
|
-
|
|
55259
|
+
var _ref3 = range !== null && range !== void 0 ? range : [],
|
|
55260
|
+
_ref4 = _slicedToArray(_ref3, 2),
|
|
55261
|
+
min = _ref4[0],
|
|
55262
|
+
max = _ref4[1];
|
|
55135
55263
|
|
|
55136
55264
|
if (truthyNumber(min) && truthyNumber(max)) {
|
|
55137
55265
|
labelCount = Math.floor((+max - +min) / interval) + 1;
|
|
@@ -55800,15 +55928,15 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
55800
55928
|
this.axesRange = this.getAxesRange();
|
|
55801
55929
|
this.labelOffset = this.getLabelOffset();
|
|
55802
55930
|
this.labelRange = this.getAxesLabelRange();
|
|
55803
|
-
this.axesSteps = this.calculateSteps();
|
|
55804
|
-
this.adjustXAndYAxisWidth();
|
|
55805
|
-
this.drawAxis(hitInfo);
|
|
55806
|
-
this.drawSeries(hitInfo);
|
|
55807
55931
|
|
|
55808
55932
|
if ((_this$scrollbar = this.scrollbar) !== null && _this$scrollbar !== void 0 && (_this$scrollbar$x = _this$scrollbar.x) !== null && _this$scrollbar$x !== void 0 && _this$scrollbar$x.use || (_this$scrollbar2 = this.scrollbar) !== null && _this$scrollbar2 !== void 0 && (_this$scrollbar2$y = _this$scrollbar2.y) !== null && _this$scrollbar2$y !== void 0 && _this$scrollbar2$y.use) {
|
|
55809
55933
|
this.updateScrollbarPosition();
|
|
55810
55934
|
}
|
|
55811
55935
|
|
|
55936
|
+
this.axesSteps = this.calculateSteps();
|
|
55937
|
+
this.adjustXAndYAxisWidth();
|
|
55938
|
+
this.drawAxis(hitInfo);
|
|
55939
|
+
this.drawSeries(hitInfo);
|
|
55812
55940
|
this.drawTip();
|
|
55813
55941
|
|
|
55814
55942
|
if (this.bufferCanvas && ((_this$bufferCanvas = this.bufferCanvas) === null || _this$bufferCanvas === void 0 ? void 0 : _this$bufferCanvas.width) > 1 && ((_this$bufferCanvas2 = this.bufferCanvas) === null || _this$bufferCanvas2 === void 0 ? void 0 : _this$bufferCanvas2.height) > 1) {
|
|
@@ -56015,10 +56143,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56015
56143
|
var lastHitInfo = this.lastHitInfo;
|
|
56016
56144
|
var defaultSelectInfo = this.defaultSelectItemInfo;
|
|
56017
56145
|
|
|
56018
|
-
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.
|
|
56146
|
+
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.dataIndex || (lastHitInfo === null || lastHitInfo === void 0 ? void 0 : lastHitInfo.dataIndex) === 0) {
|
|
56019
56147
|
_selectInfo = {
|
|
56020
56148
|
seriesID: lastHitInfo.sId,
|
|
56021
|
-
dataIndex: lastHitInfo.
|
|
56149
|
+
dataIndex: lastHitInfo.dataIndex
|
|
56022
56150
|
};
|
|
56023
56151
|
} else if (defaultSelectInfo !== null && defaultSelectInfo !== void 0 && defaultSelectInfo.dataIndex || (defaultSelectInfo === null || defaultSelectInfo === void 0 ? void 0 : defaultSelectInfo.dataIndex) === 0) {
|
|
56024
56152
|
_selectInfo = _objectSpread2({}, defaultSelectInfo);
|
|
@@ -56467,14 +56595,20 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56467
56595
|
|
|
56468
56596
|
}, {
|
|
56469
56597
|
key: "updateScrollbar",
|
|
56470
|
-
value: function updateScrollbar(updateData) {
|
|
56471
|
-
var _this$
|
|
56598
|
+
value: function updateScrollbar(updateData, updateByScrollbar) {
|
|
56599
|
+
var _this$options$axesX$2, _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$options$axesY$2, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2, _this$scrollbar$x$use, _this$scrollbar3, _this$scrollbar3$x, _this$scrollbar$y$use, _this$scrollbar4, _this$scrollbar4$y;
|
|
56600
|
+
|
|
56601
|
+
var isForceUpdate = updateByScrollbar || updateData;
|
|
56602
|
+
var xUse = (_this$options$axesX$2 = (_this$options$axesX2 = this.options.axesX) === null || _this$options$axesX2 === void 0 ? void 0 : (_this$options$axesX2$ = _this$options$axesX2[0]) === null || _this$options$axesX2$ === void 0 ? void 0 : (_this$options$axesX2$2 = _this$options$axesX2$.scrollbar) === null || _this$options$axesX2$2 === void 0 ? void 0 : _this$options$axesX2$2.use) !== null && _this$options$axesX$2 !== void 0 ? _this$options$axesX$2 : false;
|
|
56603
|
+
var yUse = (_this$options$axesY$2 = (_this$options$axesY2 = this.options.axesY) === null || _this$options$axesY2 === void 0 ? void 0 : (_this$options$axesY2$ = _this$options$axesY2[0]) === null || _this$options$axesY2$ === void 0 ? void 0 : (_this$options$axesY2$2 = _this$options$axesY2$.scrollbar) === null || _this$options$axesY2$2 === void 0 ? void 0 : _this$options$axesY2$2.use) !== null && _this$options$axesY$2 !== void 0 ? _this$options$axesY$2 : false;
|
|
56604
|
+
var prevXUse = (_this$scrollbar$x$use = (_this$scrollbar3 = this.scrollbar) === null || _this$scrollbar3 === void 0 ? void 0 : (_this$scrollbar3$x = _this$scrollbar3.x) === null || _this$scrollbar3$x === void 0 ? void 0 : _this$scrollbar3$x.use) !== null && _this$scrollbar$x$use !== void 0 ? _this$scrollbar$x$use : false;
|
|
56605
|
+
var prevYUse = (_this$scrollbar$y$use = (_this$scrollbar4 = this.scrollbar) === null || _this$scrollbar4 === void 0 ? void 0 : (_this$scrollbar4$y = _this$scrollbar4.y) === null || _this$scrollbar4$y === void 0 ? void 0 : _this$scrollbar4$y.use) !== null && _this$scrollbar$y$use !== void 0 ? _this$scrollbar$y$use : false;
|
|
56472
56606
|
|
|
56473
|
-
if (
|
|
56607
|
+
if (xUse !== prevXUse || xUse || isForceUpdate && xUse) {
|
|
56474
56608
|
this.updateScrollbarInfo('x', updateData);
|
|
56475
56609
|
}
|
|
56476
56610
|
|
|
56477
|
-
if (
|
|
56611
|
+
if (yUse !== prevYUse || yUse || isForceUpdate && yUse) {
|
|
56478
56612
|
this.updateScrollbarInfo('y', updateData);
|
|
56479
56613
|
}
|
|
56480
56614
|
}
|
|
@@ -56500,13 +56634,14 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56500
56634
|
updateLegend = updateInfo.updateLegend,
|
|
56501
56635
|
updateData = updateInfo.updateData,
|
|
56502
56636
|
updateTooltip = updateInfo.updateTooltip,
|
|
56503
|
-
lightUpdate = updateInfo.lightUpdate
|
|
56637
|
+
lightUpdate = updateInfo.lightUpdate,
|
|
56638
|
+
updateByScrollbar = updateInfo.updateByScrollbar;
|
|
56504
56639
|
|
|
56505
56640
|
if (!this.isInit) {
|
|
56506
56641
|
return;
|
|
56507
56642
|
}
|
|
56508
56643
|
|
|
56509
|
-
this.updateScrollbar(updateData);
|
|
56644
|
+
this.updateScrollbar(updateData, updateByScrollbar);
|
|
56510
56645
|
this.resetProps();
|
|
56511
56646
|
this.updateSeries = updateSeries;
|
|
56512
56647
|
|