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.umd.js
CHANGED
|
@@ -11244,7 +11244,7 @@ $({ target: 'Number', stat: true }, {
|
|
|
11244
11244
|
/***/ "9224":
|
|
11245
11245
|
/***/ (function(module) {
|
|
11246
11246
|
|
|
11247
|
-
module.exports = JSON.parse("{\"a\":\"3.4.
|
|
11247
|
+
module.exports = JSON.parse("{\"a\":\"3.4.156\"}");
|
|
11248
11248
|
|
|
11249
11249
|
/***/ }),
|
|
11250
11250
|
|
|
@@ -39911,7 +39911,7 @@ var modules = {
|
|
|
39911
39911
|
return null;
|
|
39912
39912
|
}
|
|
39913
39913
|
|
|
39914
|
-
itemPosition = [this.
|
|
39914
|
+
itemPosition = [this.getHitItemByPosition([dataInfo.xp, dataInfo.yp], useApproximate, dataIndex, true)];
|
|
39915
39915
|
} else {
|
|
39916
39916
|
var seriesList = Object.entries(this.seriesList);
|
|
39917
39917
|
var firShowSeriesID;
|
|
@@ -39936,7 +39936,7 @@ var modules = {
|
|
|
39936
39936
|
return null;
|
|
39937
39937
|
}
|
|
39938
39938
|
|
|
39939
|
-
return _this7.
|
|
39939
|
+
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);
|
|
39940
39940
|
});
|
|
39941
39941
|
}
|
|
39942
39942
|
|
|
@@ -39960,30 +39960,50 @@ var modules = {
|
|
|
39960
39960
|
},
|
|
39961
39961
|
|
|
39962
39962
|
/**
|
|
39963
|
-
* Find
|
|
39963
|
+
* Find the hit item at the given position (x, y).
|
|
39964
|
+
*
|
|
39965
|
+
* 선택 우선순위:
|
|
39966
|
+
* 1. directHit (bar 박스 내부 클릭) — 가장 가까운 것
|
|
39967
|
+
* 2. hit (line 포인트 근접 등) — 가장 가까운 것
|
|
39968
|
+
* 3. hit이 전혀 없으면 데이터가 있는 첫 시리즈로 fallback (기존 동작 호환)
|
|
39969
|
+
*
|
|
39970
|
+
* 과거에는 "같은 라벨 위에서 값이 가장 큰 시리즈"를 돌려주는 max-value 덮어쓰기 방식이었으나,
|
|
39971
|
+
* bar + line combo 차트에서 작은 bar를 클릭해도 큰 값의 line이 선택되는 버그의 원인이었다.
|
|
39972
|
+
* 이번 수정으로 사용자가 실제로 가리킨 시리즈(hit)가 선택되도록 바뀐다.
|
|
39973
|
+
*
|
|
39964
39974
|
* @param {array} offset position x and y
|
|
39965
39975
|
* @param {boolean} useApproximate if it's true. it'll look for closed item on mouse position
|
|
39966
39976
|
* @param {number} dataIndex selected data index
|
|
39967
39977
|
* @param {boolean} useSelectLabelOrItem used to display select label/item at tooltip location
|
|
39968
39978
|
*
|
|
39969
|
-
* @returns {object}
|
|
39979
|
+
* @returns {object} hit item information
|
|
39970
39980
|
*/
|
|
39971
|
-
|
|
39972
|
-
var
|
|
39981
|
+
getHitItemByPosition: function getHitItemByPosition(offset) {
|
|
39982
|
+
var _ref4;
|
|
39973
39983
|
|
|
39974
39984
|
var useApproximate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
39975
39985
|
var dataIndex = arguments.length > 2 ? arguments[2] : undefined;
|
|
39976
39986
|
var useSelectLabelOrItem = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
39977
39987
|
var seriesIDs = Object.keys(this.seriesList);
|
|
39978
|
-
var isHorizontal = !!this.options.horizontal;
|
|
39979
|
-
|
|
39980
|
-
var
|
|
39981
|
-
var
|
|
39982
|
-
var
|
|
39983
|
-
var
|
|
39988
|
+
var isHorizontal = !!this.options.horizontal; // hit 기반 결과 (최우선)
|
|
39989
|
+
|
|
39990
|
+
var hitType = null;
|
|
39991
|
+
var hitLabel = null;
|
|
39992
|
+
var hitValuePos = null;
|
|
39993
|
+
var hitValue = null;
|
|
39994
|
+
var hitSeriesID = '';
|
|
39995
|
+
var hitDataIndex = null;
|
|
39996
|
+
var hitDistance = Infinity;
|
|
39997
|
+
var hasDirectHit = false; // fallback: hit이 전혀 없을 때 사용할 "데이터 있는 첫 시리즈" 정보
|
|
39998
|
+
|
|
39999
|
+
var fallbackType = null;
|
|
40000
|
+
var fallbackLabel = null;
|
|
40001
|
+
var fallbackValuePos = null;
|
|
40002
|
+
var fallbackValue = null;
|
|
40003
|
+
var fallbackSeriesID = '';
|
|
40004
|
+
var fallbackDataIndex = null;
|
|
39984
40005
|
var acc = 0;
|
|
39985
40006
|
var useStack = false;
|
|
39986
|
-
var maxIndex = null;
|
|
39987
40007
|
|
|
39988
40008
|
for (var ix = 0; ix < seriesIDs.length; ix++) {
|
|
39989
40009
|
var seriesID = seriesIDs[ix];
|
|
@@ -39997,12 +40017,13 @@ var modules = {
|
|
|
39997
40017
|
|
|
39998
40018
|
if (data) {
|
|
39999
40019
|
if (helpers_util.isPieType(item.type)) {
|
|
40000
|
-
|
|
40001
|
-
|
|
40002
|
-
|
|
40003
|
-
|
|
40004
|
-
|
|
40005
|
-
|
|
40020
|
+
// pie 차트는 hit detection 체계가 달라 기존 동작 유지 (단일 pie 시리즈가 일반적)
|
|
40021
|
+
hitType = item.type;
|
|
40022
|
+
hitLabel = seriesID;
|
|
40023
|
+
hitSeriesID = seriesID;
|
|
40024
|
+
hitValuePos = (data.ea - data.sa) / 2;
|
|
40025
|
+
hitValue = data.o;
|
|
40026
|
+
hitDataIndex = data.index;
|
|
40006
40027
|
} else {
|
|
40007
40028
|
var ldata = isHorizontal ? data.y : data.x;
|
|
40008
40029
|
var lp = isHorizontal ? data.yp : data.xp;
|
|
@@ -40015,24 +40036,48 @@ var modules = {
|
|
|
40015
40036
|
useStack = true;
|
|
40016
40037
|
} else {
|
|
40017
40038
|
acc += data.y;
|
|
40018
|
-
}
|
|
40039
|
+
} // fallback 기록: 데이터가 있는 첫 시리즈를 저장
|
|
40040
|
+
|
|
40041
|
+
|
|
40042
|
+
if (fallbackSeriesID === '') {
|
|
40043
|
+
fallbackType = series.type;
|
|
40044
|
+
fallbackLabel = ldata;
|
|
40045
|
+
fallbackValuePos = lp;
|
|
40046
|
+
fallbackValue = g;
|
|
40047
|
+
fallbackSeriesID = seriesID;
|
|
40048
|
+
fallbackDataIndex = index;
|
|
40049
|
+
} // hit 기반 선택: item.hit이 true이고 유효한 좌표가 있을 때만 고려
|
|
40050
|
+
|
|
40051
|
+
|
|
40052
|
+
if (item.hit && data.xp !== undefined && data.yp !== undefined) {
|
|
40053
|
+
var distance = Math.pow(data.xp - offset[0], 2) + Math.pow(data.yp - offset[1], 2);
|
|
40054
|
+
|
|
40055
|
+
if (item.directHit) {
|
|
40056
|
+
// 직접 박스 히트는 최우선. 여러 개이면 가장 가까운 것.
|
|
40057
|
+
if (!hasDirectHit || distance < hitDistance) {
|
|
40058
|
+
hitDistance = distance;
|
|
40059
|
+
hitType = series.type;
|
|
40060
|
+
hitLabel = ldata;
|
|
40061
|
+
hitValuePos = lp;
|
|
40062
|
+
hitValue = g;
|
|
40063
|
+
hitSeriesID = seriesID;
|
|
40064
|
+
hitDataIndex = index;
|
|
40065
|
+
}
|
|
40019
40066
|
|
|
40020
|
-
|
|
40021
|
-
if (
|
|
40022
|
-
|
|
40023
|
-
|
|
40024
|
-
|
|
40025
|
-
|
|
40026
|
-
|
|
40027
|
-
|
|
40067
|
+
hasDirectHit = true;
|
|
40068
|
+
} else if (!hasDirectHit) {
|
|
40069
|
+
// directHit가 없을 때만 일반 hit 거리 비교 참여
|
|
40070
|
+
// (라인 근접 히트가 박스 직접 히트를 이기지 못하도록)
|
|
40071
|
+
if (distance < hitDistance) {
|
|
40072
|
+
hitDistance = distance;
|
|
40073
|
+
hitType = series.type;
|
|
40074
|
+
hitLabel = ldata;
|
|
40075
|
+
hitValuePos = lp;
|
|
40076
|
+
hitValue = g;
|
|
40077
|
+
hitSeriesID = seriesID;
|
|
40078
|
+
hitDataIndex = index;
|
|
40079
|
+
}
|
|
40028
40080
|
}
|
|
40029
|
-
} else if (maxValue === null || maxValue <= g) {
|
|
40030
|
-
maxValue = g;
|
|
40031
|
-
maxSeriesID = seriesID;
|
|
40032
|
-
maxLabel = ldata;
|
|
40033
|
-
maxValuePos = lp;
|
|
40034
|
-
maxIndex = index;
|
|
40035
|
-
maxType = series.type;
|
|
40036
40081
|
}
|
|
40037
40082
|
}
|
|
40038
40083
|
}
|
|
@@ -40040,22 +40085,23 @@ var modules = {
|
|
|
40040
40085
|
}
|
|
40041
40086
|
}
|
|
40042
40087
|
|
|
40088
|
+
var hasHit = hitSeriesID !== '';
|
|
40043
40089
|
return {
|
|
40044
|
-
type:
|
|
40045
|
-
label:
|
|
40046
|
-
pos:
|
|
40047
|
-
value: (
|
|
40048
|
-
sId:
|
|
40090
|
+
type: hasHit ? hitType : fallbackType,
|
|
40091
|
+
label: hasHit ? hitLabel : fallbackLabel,
|
|
40092
|
+
pos: hasHit ? hitValuePos : fallbackValuePos,
|
|
40093
|
+
value: (_ref4 = hasHit ? hitValue : fallbackValue) !== null && _ref4 !== void 0 ? _ref4 : 0,
|
|
40094
|
+
sId: hasHit ? hitSeriesID : fallbackSeriesID,
|
|
40049
40095
|
acc: acc,
|
|
40050
40096
|
useStack: useStack,
|
|
40051
|
-
|
|
40097
|
+
dataIndex: hasHit ? hitDataIndex : fallbackDataIndex
|
|
40052
40098
|
};
|
|
40053
40099
|
},
|
|
40054
40100
|
|
|
40055
40101
|
/**
|
|
40056
40102
|
* @typedef {Object} LabelInfoResult
|
|
40057
40103
|
* @property {number} labelIndex - 선택된 라벨의 인덱스
|
|
40058
|
-
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (
|
|
40104
|
+
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (getHitItemByPosition 반환값)
|
|
40059
40105
|
*/
|
|
40060
40106
|
|
|
40061
40107
|
/**
|
|
@@ -40080,9 +40126,9 @@ var modules = {
|
|
|
40080
40126
|
};
|
|
40081
40127
|
var seriesList = this.data.series;
|
|
40082
40128
|
var pointSize = (_Object$values$sort$ = (_Object$values$sort$2 = Object.values(seriesList).sort(function (a, b) {
|
|
40083
|
-
var
|
|
40129
|
+
var _ref5, _b$pointSize;
|
|
40084
40130
|
|
|
40085
|
-
return (
|
|
40131
|
+
return (_ref5 = (_b$pointSize = b.pointSize) !== null && _b$pointSize !== void 0 ? _b$pointSize : 0 - a.pointSize) !== null && _ref5 !== void 0 ? _ref5 : 0;
|
|
40086
40132
|
})[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
|
|
40087
40133
|
|
|
40088
40134
|
var _this$options = this.options,
|
|
@@ -40114,10 +40160,10 @@ var modules = {
|
|
|
40114
40160
|
_scrollbarOpt2$interv = _scrollbarOpt2.interval,
|
|
40115
40161
|
interval = _scrollbarOpt2$interv === void 0 ? 1 : _scrollbarOpt2$interv;
|
|
40116
40162
|
|
|
40117
|
-
var
|
|
40118
|
-
|
|
40119
|
-
min =
|
|
40120
|
-
max =
|
|
40163
|
+
var _ref6 = range !== null && range !== void 0 ? range : [0, scale.labels.length],
|
|
40164
|
+
_ref7 = _slicedToArray(_ref6, 2),
|
|
40165
|
+
min = _ref7[0],
|
|
40166
|
+
max = _ref7[1];
|
|
40121
40167
|
|
|
40122
40168
|
var labelCount = Math.floor((+max - +min) / interval) + 1;
|
|
40123
40169
|
var labelGap = (endPoint - startPoint) / labelCount;
|
|
@@ -40143,7 +40189,7 @@ var modules = {
|
|
|
40143
40189
|
|
|
40144
40190
|
labelIndex = scale.labels.length > _index ? _index : -1;
|
|
40145
40191
|
} else {
|
|
40146
|
-
var _hitInfo$
|
|
40192
|
+
var _hitInfo$dataIndex;
|
|
40147
40193
|
|
|
40148
40194
|
var offsetX;
|
|
40149
40195
|
var dataIndex;
|
|
@@ -40158,8 +40204,8 @@ var modules = {
|
|
|
40158
40204
|
offsetX = x;
|
|
40159
40205
|
}
|
|
40160
40206
|
|
|
40161
|
-
hitInfo = this.
|
|
40162
|
-
labelIndex = (_hitInfo$
|
|
40207
|
+
hitInfo = this.getHitItemByPosition([offsetX, y], selectLabel === null || selectLabel === void 0 ? void 0 : selectLabel.useApproximateValue, dataIndex, true);
|
|
40208
|
+
labelIndex = (_hitInfo$dataIndex = hitInfo.dataIndex) !== null && _hitInfo$dataIndex !== void 0 ? _hitInfo$dataIndex : -1;
|
|
40163
40209
|
}
|
|
40164
40210
|
|
|
40165
40211
|
return {
|
|
@@ -42142,7 +42188,7 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42142
42188
|
}, {
|
|
42143
42189
|
key: "findGraphData",
|
|
42144
42190
|
value: function findGraphData(offset, isHorizontal, dataIndex, useSelectLabelOrItem) {
|
|
42145
|
-
var _item$data;
|
|
42191
|
+
var _this$pointSize, _item$data;
|
|
42146
42192
|
|
|
42147
42193
|
var xp = offset[0];
|
|
42148
42194
|
var yp = offset[1];
|
|
@@ -42154,7 +42200,23 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42154
42200
|
var gdata = this.data.filter(function (data) {
|
|
42155
42201
|
return !helpers_util.isNullOrUndefined(data.x);
|
|
42156
42202
|
});
|
|
42157
|
-
var isLinearInterpolation = this.useLinearInterpolation();
|
|
42203
|
+
var isLinearInterpolation = this.useLinearInterpolation(); // line 포인트 "정확 히트" 판정용 반경.
|
|
42204
|
+
// combo 차트에서 line 포인트 중심을 직격한 경우, 같은 좌표의 bar(directHit)보다
|
|
42205
|
+
// line이 우선되도록 item.directHit = true로 표시한다. 그 외(단순 Y축 근접)는 기존처럼 hit만.
|
|
42206
|
+
// 포인트 반지름에 기본 포인트 크기(LINE_OPTION.pointSize)만큼의 클릭 여유 마진을 더하고,
|
|
42207
|
+
// 시각적으로 하이라이트되는 포인트 반경(highlight.maxSize)을 최소 보장값으로 사용한다.
|
|
42208
|
+
|
|
42209
|
+
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);
|
|
42210
|
+
|
|
42211
|
+
var isLinePointDirectHit = function isLinePointDirectHit(point) {
|
|
42212
|
+
if (!point || point.xp === undefined || point.yp === undefined) {
|
|
42213
|
+
return false;
|
|
42214
|
+
}
|
|
42215
|
+
|
|
42216
|
+
var dx = xp - point.xp;
|
|
42217
|
+
var dy = yp - point.yp;
|
|
42218
|
+
return dx * dx + dy * dy <= directHitRadius * directHitRadius;
|
|
42219
|
+
};
|
|
42158
42220
|
|
|
42159
42221
|
if (gdata !== null && gdata !== void 0 && gdata.length) {
|
|
42160
42222
|
if (typeof dataIndex === 'number' && this.show) {
|
|
@@ -42169,6 +42231,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42169
42231
|
if (yDist <= directHitThreshold) {
|
|
42170
42232
|
item.hit = true;
|
|
42171
42233
|
}
|
|
42234
|
+
|
|
42235
|
+
if (isLinePointDirectHit(point)) {
|
|
42236
|
+
item.hit = true;
|
|
42237
|
+
item.directHit = true;
|
|
42238
|
+
}
|
|
42172
42239
|
}
|
|
42173
42240
|
} else if (typeof this.beforeFindItemIndex === 'number' && this.beforeFindItemIndex !== -1 && this.show && useSelectLabelOrItem) {
|
|
42174
42241
|
item.data = gdata[this.beforeFindItemIndex];
|
|
@@ -42317,6 +42384,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42317
42384
|
if (_yDist <= _directHitThreshold) {
|
|
42318
42385
|
item.hit = true;
|
|
42319
42386
|
}
|
|
42387
|
+
|
|
42388
|
+
if (isLinePointDirectHit(_point3)) {
|
|
42389
|
+
item.hit = true;
|
|
42390
|
+
item.directHit = true;
|
|
42391
|
+
}
|
|
42320
42392
|
}
|
|
42321
42393
|
}
|
|
42322
42394
|
}
|
|
@@ -43047,17 +43119,16 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43047
43119
|
this.borderRadius = param.borderRadius;
|
|
43048
43120
|
this.filteredCount = totalCount;
|
|
43049
43121
|
var startIndex = truthyNumber(minIndex) ? minIndex : 0;
|
|
43050
|
-
var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1;
|
|
43122
|
+
var endIndex = truthyNumber(maxIndex) ? maxIndex : this.data.length - 1;
|
|
43123
|
+
this.visibleStartIndex = startIndex;
|
|
43051
43124
|
|
|
43052
43125
|
for (var i = startIndex; i <= endIndex; i++) {
|
|
43053
|
-
var screenIndex = i - startIndex;
|
|
43054
|
-
|
|
43055
|
-
var item = this.data[i]; // 실제 데이터 인덱스에 해당하는 항목
|
|
43126
|
+
var screenIndex = i - startIndex;
|
|
43127
|
+
var item = this.data[i];
|
|
43056
43128
|
|
|
43057
43129
|
if (item) {
|
|
43058
43130
|
var _param$selectLabel, _param$selectItem, _param$selectLabel$se, _param$selectLabel2, _param$selectLabel2$s, _param$selectItem$sel, _param$selectItem2;
|
|
43059
43131
|
|
|
43060
|
-
// 스크롤 offset(minIndex)만큼 보정해서 그리기
|
|
43061
43132
|
var categoryPoint = isHorizontal ? ysp - cArea * screenIndex - cPad : xsp + cArea * screenIndex + cPad;
|
|
43062
43133
|
|
|
43063
43134
|
if (isHorizontal) {
|
|
@@ -43156,11 +43227,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43156
43227
|
|
|
43157
43228
|
item.h = isHorizontal ? -h : h; // eslint-disable-line
|
|
43158
43229
|
|
|
43159
|
-
item.index = i;
|
|
43160
|
-
// 검색(hitInfo) 로직은 this.data[0..filteredCount-1] 범위만 검사하므로,
|
|
43161
|
-
// 현재 화면에 그린 항목을 배열 앞쪽으로 매핑해준다.
|
|
43162
|
-
|
|
43163
|
-
this.data[screenIndex] = item;
|
|
43230
|
+
item.index = i;
|
|
43164
43231
|
}
|
|
43165
43232
|
}
|
|
43166
43233
|
}
|
|
@@ -43246,17 +43313,26 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43246
43313
|
key: "findGraphData",
|
|
43247
43314
|
value: function findGraphData(offset, isHorizontal, dataIndex, useIndicatorOnLabel) {
|
|
43248
43315
|
if (typeof dataIndex === 'number' && this.show && useIndicatorOnLabel) {
|
|
43249
|
-
var
|
|
43316
|
+
var _this$visibleStartInd, _this$filteredCount;
|
|
43317
|
+
|
|
43318
|
+
var barData = this.data;
|
|
43250
43319
|
var item = {
|
|
43251
43320
|
data: null,
|
|
43252
43321
|
hit: false,
|
|
43253
43322
|
color: this.color
|
|
43254
|
-
};
|
|
43323
|
+
}; // dataIndex를 현재 화면에 보이는 범위로 clamp하여 stale xp/yp 참조 방지
|
|
43255
43324
|
|
|
43256
|
-
|
|
43257
|
-
|
|
43258
|
-
|
|
43259
|
-
|
|
43325
|
+
var visStart = (_this$visibleStartInd = this.visibleStartIndex) !== null && _this$visibleStartInd !== void 0 ? _this$visibleStartInd : 0;
|
|
43326
|
+
var visEnd = visStart + ((_this$filteredCount = this.filteredCount) !== null && _this$filteredCount !== void 0 ? _this$filteredCount : barData.length) - 1;
|
|
43327
|
+
var clampedIndex = Math.max(visStart, Math.min(dataIndex, visEnd));
|
|
43328
|
+
|
|
43329
|
+
if (barData[clampedIndex]) {
|
|
43330
|
+
item.data = barData[clampedIndex];
|
|
43331
|
+
item.index = clampedIndex;
|
|
43332
|
+
item.hit = this.isPointInBar(offset, barData[clampedIndex]); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시.
|
|
43333
|
+
// findHitItem에서 line 포인트 근접 히트보다 우선 선택되도록 하기 위함.
|
|
43334
|
+
|
|
43335
|
+
item.directHit = item.hit;
|
|
43260
43336
|
}
|
|
43261
43337
|
|
|
43262
43338
|
return item;
|
|
@@ -43282,7 +43358,7 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43282
43358
|
}, {
|
|
43283
43359
|
key: "binarySearchBar",
|
|
43284
43360
|
value: function binarySearchBar(offset, isHorizontal) {
|
|
43285
|
-
var _this$
|
|
43361
|
+
var _this$visibleStartInd2, _this$filteredCount2;
|
|
43286
43362
|
|
|
43287
43363
|
var _offset = _slicedToArray(offset, 2),
|
|
43288
43364
|
xp = _offset[0],
|
|
@@ -43294,9 +43370,10 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43294
43370
|
color: this.color
|
|
43295
43371
|
};
|
|
43296
43372
|
var gdata = this.data;
|
|
43297
|
-
var
|
|
43298
|
-
var
|
|
43299
|
-
var
|
|
43373
|
+
var startIdx = (_this$visibleStartInd2 = this.visibleStartIndex) !== null && _this$visibleStartInd2 !== void 0 ? _this$visibleStartInd2 : 0;
|
|
43374
|
+
var totalCount = (_this$filteredCount2 = this.filteredCount) !== null && _this$filteredCount2 !== void 0 ? _this$filteredCount2 : gdata.length;
|
|
43375
|
+
var s = startIdx;
|
|
43376
|
+
var e = startIdx + totalCount - 1;
|
|
43300
43377
|
|
|
43301
43378
|
while (s <= e) {
|
|
43302
43379
|
var m = Math.floor((s + e) / 2);
|
|
@@ -43312,7 +43389,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43312
43389
|
if (inRange) {
|
|
43313
43390
|
item.data = barData;
|
|
43314
43391
|
item.index = barData.index;
|
|
43315
|
-
item.hit = this.isPointInBar(offset, barData);
|
|
43392
|
+
item.hit = this.isPointInBar(offset, barData); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시 (findHitItem 우선순위용).
|
|
43393
|
+
|
|
43394
|
+
item.directHit = item.hit;
|
|
43316
43395
|
return item;
|
|
43317
43396
|
}
|
|
43318
43397
|
|
|
@@ -50203,13 +50282,20 @@ var plugins_scrollbar_module = {
|
|
|
50203
50282
|
Object.keys(merged).forEach(function (key) {
|
|
50204
50283
|
scrollbarOpt[key] = merged[key];
|
|
50205
50284
|
});
|
|
50206
|
-
|
|
50285
|
+
|
|
50286
|
+
if (scrollbarOpt.resetPosition) {
|
|
50287
|
+
var _axisOpt$2, _axisOpt$2$range, _axisOpt$3;
|
|
50288
|
+
|
|
50289
|
+
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;
|
|
50290
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50291
|
+
}
|
|
50207
50292
|
|
|
50208
50293
|
if (!scrollbarOpt.isInit) {
|
|
50209
|
-
var _axisOpt$
|
|
50294
|
+
var _axisOpt$4, _axisOpt$5, _axisOpt$5$range, _axisOpt$6;
|
|
50210
50295
|
|
|
50211
|
-
scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$
|
|
50212
|
-
scrollbarOpt.range = axisOpt !== null && axisOpt !== void 0 && (_axisOpt$
|
|
50296
|
+
scrollbarOpt.type = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$4 = axisOpt[0]) === null || _axisOpt$4 === void 0 ? void 0 : _axisOpt$4.type;
|
|
50297
|
+
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;
|
|
50298
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50213
50299
|
this.initScrollbarRange(dir);
|
|
50214
50300
|
this.createScrollbarLayout(dir);
|
|
50215
50301
|
this.createScrollbar(dir);
|
|
@@ -50272,7 +50358,7 @@ var plugins_scrollbar_module = {
|
|
|
50272
50358
|
* @param updateData is update data
|
|
50273
50359
|
*/
|
|
50274
50360
|
updateScrollbarInfo: function updateScrollbarInfo(dir, updateData) {
|
|
50275
|
-
var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$
|
|
50361
|
+
var _newOpt$, _newOpt$$scrollbar, _newOpt$2, _newOpt$0$scrollbar, _newOpt$3, _newOpt$4, _axisOpt$7, _newOpt$0$scrollbar2;
|
|
50276
50362
|
|
|
50277
50363
|
var _this$options = this.options,
|
|
50278
50364
|
axesX = _this$options.axesX,
|
|
@@ -50288,23 +50374,21 @@ var plugins_scrollbar_module = {
|
|
|
50288
50374
|
}
|
|
50289
50375
|
|
|
50290
50376
|
var axisOpt = dir === 'x' ? this.axesX : this.axesY;
|
|
50291
|
-
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$
|
|
50377
|
+
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);
|
|
50292
50378
|
|
|
50293
50379
|
if (isUpdateAxesRange || updateData) {
|
|
50294
50380
|
var _this$options$axesX2, _this$options$axesX2$, _this$options$axesX2$2, _this$options$axesY2, _this$options$axesY2$, _this$options$axesY2$2;
|
|
50295
50381
|
|
|
50296
50382
|
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;
|
|
50297
50383
|
|
|
50298
|
-
if (isUpdateAxesRange
|
|
50384
|
+
if (isUpdateAxesRange) {
|
|
50299
50385
|
var _newOpt$5, _newOpt$5$range, _newOpt$6;
|
|
50300
50386
|
|
|
50301
|
-
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;
|
|
50387
|
+
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;
|
|
50388
|
+
}
|
|
50302
50389
|
|
|
50303
|
-
|
|
50304
|
-
|
|
50305
|
-
// 데이터가 업데이트되면 저장된 픽셀 위치는 더 이상 유효하지 않으므로 삭제하여
|
|
50306
|
-
// 논리적 범위에 따라 다시 계산하도록 합니다.
|
|
50307
|
-
delete this.scrollbar[dir].savedPosition;
|
|
50390
|
+
if (isResetPosition || updateData) {
|
|
50391
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50308
50392
|
}
|
|
50309
50393
|
|
|
50310
50394
|
this.initScrollbarRange(dir);
|
|
@@ -50442,17 +50526,32 @@ var plugins_scrollbar_module = {
|
|
|
50442
50526
|
var scrollHeight = isXScroll ? scrollbarOpt.height : scrollbarOpt.width;
|
|
50443
50527
|
var fullSize = isXScroll ? aPos.x2 - aPos.x1 : aPos.y2 - aPos.y1;
|
|
50444
50528
|
var buttonSize = scrollbarOpt.showButton ? scrollHeight : 0;
|
|
50445
|
-
var trackSize = fullSize - buttonSize * 2;
|
|
50529
|
+
var trackSize = fullSize - buttonSize * 2;
|
|
50530
|
+
var thumbSize = this.getScrollbarThumbSize(dir, trackSize); // 비율로 저장된 위치가 있으면 새 track 크기에 맞게 복원
|
|
50446
50531
|
|
|
50447
|
-
|
|
50532
|
+
if (preservePosition && scrollbarOpt.savedPositionRatio !== undefined) {
|
|
50533
|
+
var maxPosition = Math.max(0, trackSize - thumbSize.size);
|
|
50534
|
+
|
|
50535
|
+
if (scrollbarOpt.savedAtStart) {
|
|
50536
|
+
thumbSize.position = 0;
|
|
50537
|
+
} else if (scrollbarOpt.savedAtEnd) {
|
|
50538
|
+
thumbSize.position = maxPosition;
|
|
50539
|
+
} else {
|
|
50540
|
+
thumbSize.position = Math.min(scrollbarOpt.savedPositionRatio * trackSize, maxPosition);
|
|
50541
|
+
}
|
|
50542
|
+
} // 위치를 비율 및 처음/끝 고정 여부로 저장
|
|
50543
|
+
// currentMaxPosition === 0 (thumbSize >= trackSize) 인 경우 저장하지 않음
|
|
50544
|
+
// → trackSize가 다시 커졌을 때 이전 savedAtEnd/savedAtStart/savedPositionRatio 상태를 유지
|
|
50448
50545
|
|
|
50449
|
-
if (preservePosition && scrollbarOpt.savedPosition !== undefined) {
|
|
50450
|
-
savedThumbPosition = scrollbarOpt.savedPosition;
|
|
50451
|
-
}
|
|
50452
50546
|
|
|
50453
|
-
var
|
|
50547
|
+
var currentMaxPosition = Math.max(0, trackSize - thumbSize.size);
|
|
50548
|
+
|
|
50549
|
+
if (currentMaxPosition > 0) {
|
|
50550
|
+
scrollbarOpt.savedPositionRatio = thumbSize.position / trackSize;
|
|
50551
|
+
scrollbarOpt.savedAtStart = thumbSize.position <= 0;
|
|
50552
|
+
scrollbarOpt.savedAtEnd = thumbSize.position >= currentMaxPosition;
|
|
50553
|
+
}
|
|
50454
50554
|
|
|
50455
|
-
scrollbarOpt.savedPosition = thumbSize.position;
|
|
50456
50555
|
var scrollbarStyle = 'display: block;';
|
|
50457
50556
|
var scrollbarTrackStyle;
|
|
50458
50557
|
var scrollbarThumbStyle;
|
|
@@ -50519,9 +50618,8 @@ var plugins_scrollbar_module = {
|
|
|
50519
50618
|
* get scrollbar thumb size
|
|
50520
50619
|
* @param dir axis direction ('x' | 'y')
|
|
50521
50620
|
* @param trackSize scrollbar track size
|
|
50522
|
-
* @param savedThumbPosition 기존 위치를 보존해야 하는 경우 저장된 위치
|
|
50523
50621
|
*/
|
|
50524
|
-
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize
|
|
50622
|
+
getScrollbarThumbSize: function getScrollbarThumbSize(dir, trackSize) {
|
|
50525
50623
|
var scrollbarOpt = this.scrollbar[dir];
|
|
50526
50624
|
|
|
50527
50625
|
var _scrollbarOpt$range3 = _slicedToArray(scrollbarOpt.range, 2),
|
|
@@ -50552,9 +50650,9 @@ var plugins_scrollbar_module = {
|
|
|
50552
50650
|
var _range = +max - +min;
|
|
50553
50651
|
|
|
50554
50652
|
if (axesType === 'time') {
|
|
50555
|
-
var _axisOpt$
|
|
50653
|
+
var _axisOpt$8, _this$labelRange$dir, _this$labelRange$dir$;
|
|
50556
50654
|
|
|
50557
|
-
interval = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$
|
|
50655
|
+
interval = axisOpt === null || axisOpt === void 0 ? void 0 : (_axisOpt$8 = axisOpt[0]) === null || _axisOpt$8 === void 0 ? void 0 : _axisOpt$8.getInterval({
|
|
50558
50656
|
minValue: minMax.min,
|
|
50559
50657
|
maxValue: minMax.max,
|
|
50560
50658
|
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
|
|
@@ -50574,12 +50672,7 @@ var plugins_scrollbar_module = {
|
|
|
50574
50672
|
|
|
50575
50673
|
scrollbarOpt.startValue = startValue;
|
|
50576
50674
|
scrollbarOpt.steps = steps;
|
|
50577
|
-
scrollbarOpt.interval = interval;
|
|
50578
|
-
|
|
50579
|
-
if (savedThumbPosition !== null) {
|
|
50580
|
-
thumbPosition = savedThumbPosition;
|
|
50581
|
-
}
|
|
50582
|
-
|
|
50675
|
+
scrollbarOpt.interval = interval;
|
|
50583
50676
|
return {
|
|
50584
50677
|
size: thumbSize,
|
|
50585
50678
|
position: thumbPosition
|
|
@@ -50646,18 +50739,35 @@ var plugins_scrollbar_module = {
|
|
|
50646
50739
|
if (!isOutOfRange) {
|
|
50647
50740
|
scrollbarOpt.range = [minValue, maxValue]; // 사용자가 스크롤할 때는 저장된 위치를 초기화
|
|
50648
50741
|
|
|
50649
|
-
|
|
50742
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50650
50743
|
this.update({
|
|
50651
50744
|
updateSeries: false,
|
|
50652
50745
|
updateSelTip: {
|
|
50653
50746
|
update: false,
|
|
50654
50747
|
keepDomain: false
|
|
50655
50748
|
},
|
|
50656
|
-
lightUpdate: minValue > 1
|
|
50749
|
+
lightUpdate: minValue > 1,
|
|
50750
|
+
updateByScrollbar: true
|
|
50657
50751
|
});
|
|
50658
50752
|
}
|
|
50659
50753
|
},
|
|
50660
50754
|
|
|
50755
|
+
/**
|
|
50756
|
+
* reset scrollbar saved positions
|
|
50757
|
+
* @param dir axis direction ('x' | 'y')
|
|
50758
|
+
*/
|
|
50759
|
+
resetScrollbarSavedPositions: function resetScrollbarSavedPositions(dir) {
|
|
50760
|
+
var scrollbarOpt = this.scrollbar[dir];
|
|
50761
|
+
|
|
50762
|
+
if (!scrollbarOpt) {
|
|
50763
|
+
return;
|
|
50764
|
+
}
|
|
50765
|
+
|
|
50766
|
+
delete scrollbarOpt.savedPositionRatio;
|
|
50767
|
+
delete scrollbarOpt.savedAtStart;
|
|
50768
|
+
delete scrollbarOpt.savedAtEnd;
|
|
50769
|
+
},
|
|
50770
|
+
|
|
50661
50771
|
/**
|
|
50662
50772
|
* create scroll event
|
|
50663
50773
|
*/
|
|
@@ -50912,13 +51022,15 @@ var plugins_scrollbar_module = {
|
|
|
50912
51022
|
|
|
50913
51023
|
this.scrollbar[dir].range = [movedMin, movedMax]; // 사용자가 드래그로 스크롤할 때는 저장된 위치를 초기화
|
|
50914
51024
|
|
|
50915
|
-
|
|
51025
|
+
this.resetScrollbarSavedPositions(dir);
|
|
50916
51026
|
this.update({
|
|
50917
51027
|
updateSeries: false,
|
|
50918
51028
|
updateSelTip: {
|
|
50919
51029
|
update: false,
|
|
50920
51030
|
keepDomain: false
|
|
50921
|
-
}
|
|
51031
|
+
},
|
|
51032
|
+
lightUpdate: movedMin > 1,
|
|
51033
|
+
updateByScrollbar: true
|
|
50922
51034
|
});
|
|
50923
51035
|
},
|
|
50924
51036
|
|
|
@@ -51788,19 +51900,19 @@ var plugins_interaction_modules = {
|
|
|
51788
51900
|
var useSelectSeries = (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.use) && (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.useClick);
|
|
51789
51901
|
|
|
51790
51902
|
var setSelectedItemInfo = function setSelectedItemInfo() {
|
|
51791
|
-
var hitInfo = _this.
|
|
51903
|
+
var hitInfo = _this.getHitItemByPosition(offset, false);
|
|
51792
51904
|
|
|
51793
51905
|
args.label = hitInfo.label;
|
|
51794
51906
|
args.value = hitInfo.value;
|
|
51795
51907
|
args.seriesId = hitInfo.sId;
|
|
51796
|
-
args.dataIndex = hitInfo.
|
|
51908
|
+
args.dataIndex = hitInfo.dataIndex;
|
|
51797
51909
|
args.acc = hitInfo.acc;
|
|
51798
51910
|
|
|
51799
51911
|
if (hitInfo !== null && hitInfo !== void 0 && hitInfo.sId) {
|
|
51800
51912
|
args.selected = {
|
|
51801
51913
|
eventTarget: 'item',
|
|
51802
51914
|
seriesId: _this.isDeselectItem(hitInfo) ? null : hitInfo.sId,
|
|
51803
|
-
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.
|
|
51915
|
+
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.dataIndex
|
|
51804
51916
|
};
|
|
51805
51917
|
}
|
|
51806
51918
|
};
|
|
@@ -52474,7 +52586,10 @@ var plugins_interaction_modules = {
|
|
|
52474
52586
|
var maxv = '';
|
|
52475
52587
|
var maxg = null;
|
|
52476
52588
|
var maxSID = null;
|
|
52477
|
-
var minDistance = Infinity; //
|
|
52589
|
+
var minDistance = Infinity; // directHit(bar 박스 내부 클릭/hover) 시리즈가 발견되었는지 추적.
|
|
52590
|
+
// 한 번이라도 directHit가 있으면 line의 근접 포인트 히트는 hitId 후보에서 배제된다.
|
|
52591
|
+
|
|
52592
|
+
var hasDirectHit = false; // 1. 먼저 공통으로 사용할 데이터 인덱스 결정
|
|
52478
52593
|
|
|
52479
52594
|
var targetDataIndex = this.findClosestDataIndex(offset, sIds);
|
|
52480
52595
|
|
|
@@ -52550,13 +52665,25 @@ var plugins_interaction_modules = {
|
|
|
52550
52665
|
if (maxg === null || maxg <= gdata) {
|
|
52551
52666
|
maxg = gdata;
|
|
52552
52667
|
maxSID = sId;
|
|
52553
|
-
} // 마우스 위치와의 거리 계산하여 가장 가까운 시리즈
|
|
52668
|
+
} // 마우스 위치와의 거리 계산하여 가장 가까운 시리즈 선택.
|
|
52669
|
+
// directHit(bar 박스 내부)가 하나라도 있으면 그중에서만 선택하고,
|
|
52670
|
+
// 라인의 근접 포인트 히트(item.hit=true, directHit=false)는 hitId 후보에서 배제한다.
|
|
52671
|
+
// bar + line combo 차트에서 작은 bar 클릭 시 큰 값의 line이 잡히던 버그 방지.
|
|
52554
52672
|
|
|
52555
52673
|
|
|
52556
52674
|
if (item.hit && item.data.xp !== undefined && item.data.yp !== undefined) {
|
|
52557
52675
|
var distance = Math.pow(item.data.xp - offset[0], 2) + Math.pow(item.data.yp - offset[1], 2);
|
|
52558
52676
|
|
|
52559
|
-
if (
|
|
52677
|
+
if (item.directHit) {
|
|
52678
|
+
// directHit는 최우선. 여러 directHit 중에서는 가장 가까운 것 선택.
|
|
52679
|
+
if (!hasDirectHit || distance < minDistance) {
|
|
52680
|
+
minDistance = distance;
|
|
52681
|
+
hitId = sId;
|
|
52682
|
+
}
|
|
52683
|
+
|
|
52684
|
+
hasDirectHit = true;
|
|
52685
|
+
} else if (!hasDirectHit && distance < minDistance) {
|
|
52686
|
+
// directHit가 없을 때만 일반 hit 거리 비교
|
|
52560
52687
|
minDistance = distance;
|
|
52561
52688
|
hitId = sId;
|
|
52562
52689
|
}
|
|
@@ -53252,7 +53379,7 @@ var plugins_interaction_modules = {
|
|
|
53252
53379
|
isDeselectItem: function isDeselectItem(hitInfo) {
|
|
53253
53380
|
var _this$defaultSelectIt, _this$defaultSelectIt2;
|
|
53254
53381
|
|
|
53255
|
-
return this.options.selectItem.useDeselectItem && (hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.
|
|
53382
|
+
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);
|
|
53256
53383
|
},
|
|
53257
53384
|
|
|
53258
53385
|
/**
|
|
@@ -54926,7 +55053,7 @@ var element_tip_modules = {
|
|
|
54926
55053
|
|
|
54927
55054
|
if (tipType === 'sel') {
|
|
54928
55055
|
if (hitInfo && hitInfo.label !== null) {
|
|
54929
|
-
lastTip.pos = type === 'bar' ? hitInfo.
|
|
55056
|
+
lastTip.pos = type === 'bar' ? hitInfo.dataIndex : hitInfo.label;
|
|
54930
55057
|
ldata = lastTip.pos;
|
|
54931
55058
|
} else if (lastTip.pos !== null) {
|
|
54932
55059
|
ldata = lastTip.pos;
|
|
@@ -55138,9 +55265,10 @@ var element_tip_modules = {
|
|
|
55138
55265
|
interval = scrollbarOpt.interval,
|
|
55139
55266
|
type = scrollbarOpt.type;
|
|
55140
55267
|
|
|
55141
|
-
var
|
|
55142
|
-
|
|
55143
|
-
|
|
55268
|
+
var _ref3 = range !== null && range !== void 0 ? range : [],
|
|
55269
|
+
_ref4 = _slicedToArray(_ref3, 2),
|
|
55270
|
+
min = _ref4[0],
|
|
55271
|
+
max = _ref4[1];
|
|
55144
55272
|
|
|
55145
55273
|
if (truthyNumber(min) && truthyNumber(max)) {
|
|
55146
55274
|
labelCount = Math.floor((+max - +min) / interval) + 1;
|
|
@@ -55809,15 +55937,15 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
55809
55937
|
this.axesRange = this.getAxesRange();
|
|
55810
55938
|
this.labelOffset = this.getLabelOffset();
|
|
55811
55939
|
this.labelRange = this.getAxesLabelRange();
|
|
55812
|
-
this.axesSteps = this.calculateSteps();
|
|
55813
|
-
this.adjustXAndYAxisWidth();
|
|
55814
|
-
this.drawAxis(hitInfo);
|
|
55815
|
-
this.drawSeries(hitInfo);
|
|
55816
55940
|
|
|
55817
55941
|
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) {
|
|
55818
55942
|
this.updateScrollbarPosition();
|
|
55819
55943
|
}
|
|
55820
55944
|
|
|
55945
|
+
this.axesSteps = this.calculateSteps();
|
|
55946
|
+
this.adjustXAndYAxisWidth();
|
|
55947
|
+
this.drawAxis(hitInfo);
|
|
55948
|
+
this.drawSeries(hitInfo);
|
|
55821
55949
|
this.drawTip();
|
|
55822
55950
|
|
|
55823
55951
|
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) {
|
|
@@ -56024,10 +56152,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56024
56152
|
var lastHitInfo = this.lastHitInfo;
|
|
56025
56153
|
var defaultSelectInfo = this.defaultSelectItemInfo;
|
|
56026
56154
|
|
|
56027
|
-
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.
|
|
56155
|
+
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.dataIndex || (lastHitInfo === null || lastHitInfo === void 0 ? void 0 : lastHitInfo.dataIndex) === 0) {
|
|
56028
56156
|
_selectInfo = {
|
|
56029
56157
|
seriesID: lastHitInfo.sId,
|
|
56030
|
-
dataIndex: lastHitInfo.
|
|
56158
|
+
dataIndex: lastHitInfo.dataIndex
|
|
56031
56159
|
};
|
|
56032
56160
|
} else if (defaultSelectInfo !== null && defaultSelectInfo !== void 0 && defaultSelectInfo.dataIndex || (defaultSelectInfo === null || defaultSelectInfo === void 0 ? void 0 : defaultSelectInfo.dataIndex) === 0) {
|
|
56033
56161
|
_selectInfo = _objectSpread2({}, defaultSelectInfo);
|
|
@@ -56476,14 +56604,20 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56476
56604
|
|
|
56477
56605
|
}, {
|
|
56478
56606
|
key: "updateScrollbar",
|
|
56479
|
-
value: function updateScrollbar(updateData) {
|
|
56480
|
-
var _this$
|
|
56607
|
+
value: function updateScrollbar(updateData, updateByScrollbar) {
|
|
56608
|
+
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;
|
|
56609
|
+
|
|
56610
|
+
var isForceUpdate = updateByScrollbar || updateData;
|
|
56611
|
+
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;
|
|
56612
|
+
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;
|
|
56613
|
+
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;
|
|
56614
|
+
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;
|
|
56481
56615
|
|
|
56482
|
-
if (
|
|
56616
|
+
if (xUse !== prevXUse || xUse || isForceUpdate && xUse) {
|
|
56483
56617
|
this.updateScrollbarInfo('x', updateData);
|
|
56484
56618
|
}
|
|
56485
56619
|
|
|
56486
|
-
if (
|
|
56620
|
+
if (yUse !== prevYUse || yUse || isForceUpdate && yUse) {
|
|
56487
56621
|
this.updateScrollbarInfo('y', updateData);
|
|
56488
56622
|
}
|
|
56489
56623
|
}
|
|
@@ -56509,13 +56643,14 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56509
56643
|
updateLegend = updateInfo.updateLegend,
|
|
56510
56644
|
updateData = updateInfo.updateData,
|
|
56511
56645
|
updateTooltip = updateInfo.updateTooltip,
|
|
56512
|
-
lightUpdate = updateInfo.lightUpdate
|
|
56646
|
+
lightUpdate = updateInfo.lightUpdate,
|
|
56647
|
+
updateByScrollbar = updateInfo.updateByScrollbar;
|
|
56513
56648
|
|
|
56514
56649
|
if (!this.isInit) {
|
|
56515
56650
|
return;
|
|
56516
56651
|
}
|
|
56517
56652
|
|
|
56518
|
-
this.updateScrollbar(updateData);
|
|
56653
|
+
this.updateScrollbar(updateData, updateByScrollbar);
|
|
56519
56654
|
this.resetProps();
|
|
56520
56655
|
this.updateSeries = updateSeries;
|
|
56521
56656
|
|