evui 3.4.132 → 3.4.134

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.
@@ -11216,7 +11216,7 @@ $({ target: 'Number', stat: true }, {
11216
11216
  /***/ "9224":
11217
11217
  /***/ (function(module) {
11218
11218
 
11219
- module.exports = JSON.parse("{\"a\":\"3.4.132\"}");
11219
+ module.exports = JSON.parse("{\"a\":\"3.4.134\"}");
11220
11220
 
11221
11221
  /***/ }),
11222
11222
 
@@ -42090,7 +42090,7 @@ var element_line_Line = /*#__PURE__*/function () {
42090
42090
  item.hit = true;
42091
42091
  }
42092
42092
  }
42093
- } else if (typeof this.beforeFindItemIndex === 'number' && this.show && useSelectLabelOrItem) {
42093
+ } else if (typeof this.beforeFindItemIndex === 'number' && this.beforeFindItemIndex !== -1 && this.show && useSelectLabelOrItem) {
42094
42094
  item.data = gdata[this.beforeFindItemIndex];
42095
42095
  item.index = this.beforeFindItemIndex;
42096
42096
  } else {
@@ -42108,7 +42108,11 @@ var element_line_Line = /*#__PURE__*/function () {
42108
42108
  });
42109
42109
 
42110
42110
  if (validData.length === 0) {
42111
- return item;
42111
+ gdata.forEach(function (point, idx) {
42112
+ validData.push(_objectSpread2(_objectSpread2({}, point), {}, {
42113
+ originalIndex: idx
42114
+ }));
42115
+ });
42112
42116
  } // 이진 탐색으로 가장 가까운 포인트 찾기
42113
42117
 
42114
42118
 
@@ -42194,30 +42198,29 @@ var element_line_Line = /*#__PURE__*/function () {
42194
42198
  } // 두 가지 임계값 설정
42195
42199
 
42196
42200
 
42197
- var strictThreshold = avgInterval * 0.3; // 엄격한 임계값: 데이터 간격의 30%
42201
+ var threshold = Math.max(avgInterval, 1); // 1. 먼저 엄격한 임계값으로 정확한 매치 확인
42198
42202
 
42199
- var relaxedThreshold = avgInterval; // 느슨한 임계값: 데이터 간격 전체
42200
- // 1. 먼저 엄격한 임계값으로 정확한 매치 확인
42201
-
42202
- if (closestXDistance <= strictThreshold) {
42203
+ if (closestXDistance <= threshold) {
42203
42204
  // 정확히 일치하거나 매우 가까운 데이터가 있음
42204
42205
  item.data = gdata[closestIndex];
42205
42206
  item.index = closestIndex;
42206
42207
  } else {
42207
- // 2. 정확한 매치가 없을 때, 현재 X 위치 근처에 다른 유효 데이터가 있는지 확인
42208
- var hasNearbyValidData = false;
42209
-
42210
- for (var _i2 = 0; _i2 < validData.length; _i2++) {
42211
- var xDist = Math.abs(xp - validData[_i2].xp);
42212
-
42213
- if (xDist <= strictThreshold) {
42214
- hasNearbyValidData = true;
42215
- break;
42208
+ // 2. 정확한 매치가 없을 때, 현재 X 위치 근처에 다른 데이터가 있는지 확인
42209
+ var hasNearbyAnyData = false;
42210
+ var closestDistance = isLinearInterpolation ? Infinity : threshold;
42211
+ var dataSet = isLinearInterpolation ? validData : gdata;
42212
+
42213
+ for (var _i2 = 0; _i2 < dataSet.length; _i2++) {
42214
+ var xDist = Math.abs(xp - dataSet[_i2].xp);
42215
+
42216
+ if (xDist <= closestDistance) {
42217
+ hasNearbyAnyData = true;
42218
+ closestDistance = xDist;
42219
+ closestIndex = isLinearInterpolation ? dataSet[_i2].originalIndex : _i2;
42216
42220
  }
42217
- } // 3. 근처에 다른 유효 데이터가 없을 때만 느슨한 임계값 적용
42218
-
42221
+ }
42219
42222
 
42220
- if (!hasNearbyValidData && closestXDistance <= relaxedThreshold) {
42223
+ if (hasNearbyAnyData) {
42221
42224
  item.data = gdata[closestIndex];
42222
42225
  item.index = closestIndex;
42223
42226
  }
@@ -50850,6 +50853,7 @@ function inRange_inRange(number, start, end) {
50850
50853
 
50851
50854
 
50852
50855
 
50856
+
50853
50857
 
50854
50858
 
50855
50859
  var plugins_interaction_modules = {
@@ -51213,7 +51217,7 @@ var plugins_interaction_modules = {
51213
51217
  };
51214
51218
 
51215
51219
  var setSelectedLabelInfo = function setSelectedLabelInfo(targetAxis) {
51216
- var itemHitInfo = _this.getItemByPosition(offset, false);
51220
+ var _this$defaultSelectIn, _this$defaultSelectIn2, _this$defaultSelectIn3, _this$defaultSelectIn4;
51217
51221
 
51218
51222
  var _this$getLabelInfoByP2 = _this.getLabelInfoByPosition(offset, targetAxis),
51219
51223
  clickedLabelIndex = _this$getLabelInfoByP2.labelIndex;
@@ -51230,8 +51234,8 @@ var plugins_interaction_modules = {
51230
51234
  args.selected = _objectSpread2({
51231
51235
  eventTarget: 'label'
51232
51236
  }, lodash_es_cloneDeep(_this.defaultSelectInfo));
51233
- args.label = itemHitInfo.label;
51234
- args.dataIndex = itemHitInfo.maxIndex;
51237
+ args.label = (_this$defaultSelectIn = _this.defaultSelectInfo) === null || _this$defaultSelectIn === void 0 ? void 0 : (_this$defaultSelectIn2 = _this$defaultSelectIn.label) === null || _this$defaultSelectIn2 === void 0 ? void 0 : _this$defaultSelectIn2.at(0);
51238
+ args.dataIndex = (_this$defaultSelectIn3 = _this.defaultSelectInfo) === null || _this$defaultSelectIn3 === void 0 ? void 0 : (_this$defaultSelectIn4 = _this$defaultSelectIn3.dataIndex) === null || _this$defaultSelectIn4 === void 0 ? void 0 : _this$defaultSelectIn4.at(0);
51235
51239
  };
51236
51240
 
51237
51241
  var setSelectedSeriesInfo = function setSelectedSeriesInfo() {
@@ -51865,77 +51869,11 @@ var plugins_interaction_modules = {
51865
51869
  var maxsw = 0;
51866
51870
  var maxv = '';
51867
51871
  var maxg = null;
51868
- var maxSID = null; // 파이 차트는 특별한 처리가 필요
51869
-
51870
- if (this.options.type === 'pie') {
51871
- for (var ix = 0; ix < sIds.length; ix++) {
51872
- var sId = sIds[ix];
51873
- var series = this.seriesList[sId];
51874
-
51875
- if (series.findGraphData && series.show) {
51876
- var item = series.findGraphData(offset);
51877
-
51878
- if (item !== null && item !== void 0 && item.data && item.hit) {
51879
- var gdata = item.data.o;
51880
-
51881
- if (gdata !== null && gdata !== undefined) {
51882
- var formattedSeriesName = this.getFormattedTooltipLabel({
51883
- dataId: series.id,
51884
- seriesId: sId,
51885
- seriesName: series.name,
51886
- itemData: item.data
51887
- });
51888
- var sw = ctx ? ctx.measureText(formattedSeriesName).width : 1;
51889
- item.id = series.id;
51890
- item.name = formattedSeriesName;
51891
- item.axis = {
51892
- x: 0,
51893
- y: 0
51894
- };
51895
- items[sId] = item;
51896
- var formattedTxt = this.getFormattedTooltipValue({
51897
- dataId: series.id,
51898
- seriesId: sId,
51899
- seriesName: formattedSeriesName,
51900
- value: gdata,
51901
- itemData: item.data
51902
- });
51903
- item.data.formatted = formattedTxt;
51904
-
51905
- if (maxsw < sw) {
51906
- maxs = formattedSeriesName;
51907
- maxsw = sw;
51908
- }
51909
-
51910
- if (maxv.length <= "".concat(formattedTxt).length) {
51911
- maxv = "".concat(formattedTxt);
51912
- }
51913
-
51914
- if (maxg === null || maxg <= gdata) {
51915
- maxg = gdata;
51916
- maxSID = sId;
51917
- }
51918
-
51919
- hitId = sId;
51920
- }
51921
- }
51922
- }
51923
- }
51924
-
51925
- var _maxHighlight2 = maxg !== null ? [maxSID, maxg] : null;
51926
-
51927
- return {
51928
- items: items,
51929
- hitId: hitId,
51930
- maxTip: [maxs, maxv],
51931
- maxHighlight: _maxHighlight2
51932
- };
51933
- } // 1. 먼저 공통으로 사용할 데이터 인덱스 결정
51934
-
51872
+ var maxSID = null; // 1. 먼저 공통으로 사용할 데이터 인덱스 결정
51935
51873
 
51936
51874
  var targetDataIndex = this.findClosestDataIndex(offset, sIds);
51937
51875
 
51938
- if (targetDataIndex === -1) {
51876
+ if (targetDataIndex === -1 && this.options.type !== 'pie') {
51939
51877
  return {
51940
51878
  items: items,
51941
51879
  hitId: hitId,
@@ -51949,69 +51887,65 @@ var plugins_interaction_modules = {
51949
51887
  return _this4.seriesList[sId].type === 'bar';
51950
51888
  });
51951
51889
 
51952
- for (var _ix = 0; _ix < sIds.length; _ix++) {
51953
- var _sId = sIds[_ix];
51954
- var _series = this.seriesList[_sId];
51890
+ for (var ix = 0; ix < sIds.length; ix++) {
51891
+ var sId = sIds[ix];
51892
+ var series = this.seriesList[sId];
51955
51893
 
51956
- if (_series.findGraphData && _series.show) {
51894
+ if (series.findGraphData && series.show) {
51957
51895
  // 특정 데이터 인덱스로 데이터 요청
51958
- var _item = _series.findGraphData(offset, isHorizontal, targetDataIndex, !allSeriesIsBar);
51896
+ var item = series.findGraphData(offset, isHorizontal, targetDataIndex, !allSeriesIsBar);
51959
51897
 
51960
- if (_item !== null && _item !== void 0 && _item.data) {
51961
- var _gdata = void 0;
51898
+ if (item !== null && item !== void 0 && item.data) {
51899
+ var gdata = void 0;
51962
51900
 
51963
- if (_item.data.o === null && _series.interpolation !== 'zero') {
51964
- if (!_series.isExistGrp) {
51965
- _gdata = isHorizontal ? _item.data.x : _item.data.y;
51901
+ if (item.data.o === null && series.interpolation !== 'zero') {
51902
+ if (!series.isExistGrp) {
51903
+ gdata = isHorizontal ? item.data.x : item.data.y;
51966
51904
  }
51967
- } else if (!isNaN(_item.data.o)) {
51968
- _gdata = _item.data.o;
51905
+ } else if (!isNaN(item.data.o)) {
51906
+ gdata = item.data.o;
51969
51907
  }
51970
51908
 
51971
- if (_gdata !== null && _gdata !== undefined) {
51972
- var _formattedSeriesName = this.getFormattedTooltipLabel({
51973
- dataId: _series.id,
51974
- seriesId: _sId,
51975
- seriesName: _series.name,
51976
- itemData: _item.data
51909
+ if (gdata !== null && gdata !== undefined) {
51910
+ var formattedSeriesName = this.getFormattedTooltipLabel({
51911
+ dataId: series.id,
51912
+ seriesId: sId,
51913
+ seriesName: series.name,
51914
+ itemData: item.data
51977
51915
  });
51978
-
51979
- var _sw = ctx ? ctx.measureText(_formattedSeriesName).width : 1;
51980
-
51981
- _item.id = _series.id;
51982
- _item.name = _formattedSeriesName;
51983
- _item.axis = {
51984
- x: _series.xAxisIndex,
51985
- y: _series.yAxisIndex
51916
+ var sw = ctx ? ctx.measureText(formattedSeriesName).width : 1;
51917
+ item.id = series.id;
51918
+ item.name = formattedSeriesName;
51919
+ item.axis = {
51920
+ x: series.xAxisIndex,
51921
+ y: series.yAxisIndex
51986
51922
  };
51987
- items[_sId] = _item;
51988
-
51989
- var _formattedTxt = this.getFormattedTooltipValue({
51990
- dataId: _series.id,
51991
- seriesId: _sId,
51992
- seriesName: _formattedSeriesName,
51993
- value: _gdata,
51994
- itemData: _item.data
51923
+ items[sId] = item;
51924
+ var formattedTxt = this.getFormattedTooltipValue({
51925
+ dataId: series.id,
51926
+ seriesId: sId,
51927
+ seriesName: formattedSeriesName,
51928
+ value: gdata,
51929
+ itemData: item.data
51995
51930
  });
51931
+ item.data.formatted = formattedTxt;
51996
51932
 
51997
- _item.data.formatted = _formattedTxt;
51998
-
51999
- if (maxsw < _sw) {
52000
- maxs = _formattedSeriesName;
52001
- maxsw = _sw;
51933
+ if (maxsw < sw) {
51934
+ maxs = formattedSeriesName;
51935
+ maxsw = sw;
52002
51936
  }
52003
51937
 
52004
- if (maxv.length <= "".concat(_formattedTxt).length) {
52005
- maxv = "".concat(_formattedTxt);
51938
+ if (maxv.length <= "".concat(formattedTxt).length) {
51939
+ maxv = "".concat(formattedTxt);
52006
51940
  }
52007
51941
 
52008
- if (maxg === null || maxg <= _gdata) {
52009
- maxg = _gdata;
52010
- maxSID = _sId;
51942
+ if (maxg === null || maxg <= gdata) {
51943
+ maxg = gdata;
51944
+ maxSID = sId;
52011
51945
  }
52012
51946
 
52013
- if (_item.hit) {
52014
- hitId = _sId;
51947
+ if (item.hit) {
51948
+ hitId = sId;
52015
51949
  }
52016
51950
  }
52017
51951
  }
@@ -52043,9 +51977,7 @@ var plugins_interaction_modules = {
52043
51977
  yp = _offset[1];
52044
51978
 
52045
51979
  var isHorizontal = !!this.options.horizontal;
52046
- var mousePos = isHorizontal ? yp : xp;
52047
- var closestDistance = Infinity;
52048
- var closestIndex = -1; // 첫 번째 표시 중인 시리즈를 기준으로 라벨 위치 확인
51980
+ var mousePos = isHorizontal ? yp : xp; // 첫 번째 표시 중인 시리즈를 기준으로 라벨 위치 확인
52049
51981
 
52050
51982
  var referenceSeries = sIds.find(function (sId) {
52051
51983
  var _this5$seriesList$sId;
@@ -52057,19 +51989,56 @@ var plugins_interaction_modules = {
52057
51989
  return -1;
52058
51990
  }
52059
51991
 
52060
- var referenceData = this.seriesList[referenceSeries].data; // 라벨에서 가장 가까운 찾기
51992
+ var referenceData = this.seriesList[referenceSeries].data; // 데이터 간격 계산 - 모든 데이터(null 포함)의 평균 간격 사용
51993
+
51994
+ var avgInterval = 50;
51995
+
51996
+ if (referenceData.length > 1) {
51997
+ var intervals = [];
51998
+
51999
+ for (var i = 1; i < referenceData.length; i++) {
52000
+ var prevPoint = referenceData[i - 1];
52001
+ var currPoint = referenceData[i];
52002
+
52003
+ if (prevPoint && currPoint) {
52004
+ var prevPos = void 0;
52005
+ var currPos = void 0;
52006
+
52007
+ if (isHorizontal) {
52008
+ prevPos = prevPoint.h ? prevPoint.yp + prevPoint.h / 2 : prevPoint.yp;
52009
+ currPos = currPoint.h ? currPoint.yp + currPoint.h / 2 : currPoint.yp;
52010
+ } else {
52011
+ prevPos = prevPoint.w ? prevPoint.xp + prevPoint.w / 2 : prevPoint.xp;
52012
+ currPos = currPoint.w ? currPoint.xp + currPoint.w / 2 : currPoint.xp;
52013
+ }
52014
+
52015
+ if (prevPos !== null && currPos !== null) {
52016
+ intervals.push(Math.abs(currPos - prevPos));
52017
+ }
52018
+ }
52019
+ }
52020
+
52021
+ if (intervals.length > 0) {
52022
+ avgInterval = intervals.reduce(function (a, b) {
52023
+ return a + b;
52024
+ }, 0) / intervals.length;
52025
+ }
52026
+ }
52027
+
52028
+ var closestDistance = Infinity;
52029
+ var closestIndex = -1; // 각 라벨에서 가장 가까운 것 찾기
52061
52030
 
52062
- var _loop = function _loop(i) {
52031
+ var _loop = function _loop(_i) {
52063
52032
  // 이 라벨에 유효한 데이터가 있는 시리즈가 하나 이상 있는지 확인
52064
52033
  var hasValidData = sIds.some(function (sId) {
52065
- var _series$data, _series$data$i, _series$data2, _series$data2$i;
52034
+ var _series$data, _series$data$_i, _series$data2, _series$data2$_i;
52066
52035
 
52067
52036
  var series = _this5.seriesList[sId];
52068
- return (series === null || series === void 0 ? void 0 : series.show) && ((_series$data = series.data) === null || _series$data === void 0 ? void 0 : (_series$data$i = _series$data[i]) === null || _series$data$i === void 0 ? void 0 : _series$data$i.o) !== null && ((_series$data2 = series.data) === null || _series$data2 === void 0 ? void 0 : (_series$data2$i = _series$data2[i]) === null || _series$data2$i === void 0 ? void 0 : _series$data2$i.o) !== undefined;
52037
+ return (series === null || series === void 0 ? void 0 : series.show) && ((_series$data = series.data) === null || _series$data === void 0 ? void 0 : (_series$data$_i = _series$data[_i]) === null || _series$data$_i === void 0 ? void 0 : _series$data$_i.o) !== null && ((_series$data2 = series.data) === null || _series$data2 === void 0 ? void 0 : (_series$data2$_i = _series$data2[_i]) === null || _series$data2$_i === void 0 ? void 0 : _series$data2$_i.o) !== undefined;
52069
52038
  });
52070
52039
 
52071
52040
  if (hasValidData) {
52072
- var point = referenceData[i];
52041
+ var point = referenceData[_i];
52073
52042
 
52074
52043
  if (point) {
52075
52044
  // 라벨 위치 계산
@@ -52086,15 +52055,31 @@ var plugins_interaction_modules = {
52086
52055
 
52087
52056
  if (distance < closestDistance) {
52088
52057
  closestDistance = distance;
52089
- closestIndex = i;
52058
+ closestIndex = _i;
52090
52059
  }
52091
52060
  }
52092
52061
  }
52093
52062
  }
52094
52063
  };
52095
52064
 
52096
- for (var i = 0; i < referenceData.length; i++) {
52097
- _loop(i);
52065
+ for (var _i = 0; _i < referenceData.length; _i++) {
52066
+ _loop(_i);
52067
+ }
52068
+
52069
+ if (closestDistance >= avgInterval) {
52070
+ var useLinearInterpolation = sIds.some(function (sId) {
52071
+ var series = _this5.seriesList[sId];
52072
+
52073
+ if (series !== null && series !== void 0 && series.show) {
52074
+ var passingValue = series.passingValue;
52075
+ var interpolation = series.interpolation;
52076
+ var hasPassingValueInData = series.hasPassingValueInData;
52077
+ return interpolation === 'linear' || interpolation === 'none' && !!passingValue && hasPassingValueInData;
52078
+ }
52079
+
52080
+ return false;
52081
+ });
52082
+ return useLinearInterpolation ? closestIndex : -1;
52098
52083
  }
52099
52084
 
52100
52085
  return closestIndex;
@@ -52389,10 +52374,10 @@ var plugins_interaction_modules = {
52389
52374
  * @returns after {number[]} '[0, 1 ...]' result Label index List
52390
52375
  */
52391
52376
  regulateSelectedLabelInfo: function regulateSelectedLabelInfo(labelIndex, targetAxis) {
52392
- var _this$options$selectL2, _this$options10, _this$defaultSelectIn;
52377
+ var _this$options$selectL2, _this$options10, _this$defaultSelectIn5;
52393
52378
 
52394
52379
  var option = (_this$options$selectL2 = (_this$options10 = this.options) === null || _this$options10 === void 0 ? void 0 : _this$options10.selectLabel) !== null && _this$options$selectL2 !== void 0 ? _this$options$selectL2 : {};
52395
- var before = targetAxis === null || ((_this$defaultSelectIn = this.defaultSelectInfo) === null || _this$defaultSelectIn === void 0 ? void 0 : _this$defaultSelectIn.targetAxis) === targetAxis ? _objectSpread2(_objectSpread2({}, this.defaultSelectInfo), {}, {
52380
+ var before = targetAxis === null || ((_this$defaultSelectIn5 = this.defaultSelectInfo) === null || _this$defaultSelectIn5 === void 0 ? void 0 : _this$defaultSelectIn5.targetAxis) === targetAxis ? _objectSpread2(_objectSpread2({}, this.defaultSelectInfo), {}, {
52396
52381
  targetAxis: targetAxis
52397
52382
  }) : {
52398
52383
  dataIndex: [],
@@ -52425,10 +52410,10 @@ var plugins_interaction_modules = {
52425
52410
  * @returns after {number[]} '[0, 1 ...]' result series Id List
52426
52411
  */
52427
52412
  updateSelectedSeriesInfo: function updateSelectedSeriesInfo(seriesId, keepSelection) {
52428
- var _this$options$selectS, _this$options11, _this$defaultSelectIn2;
52413
+ var _this$options$selectS, _this$options11, _this$defaultSelectIn6;
52429
52414
 
52430
52415
  var option = (_this$options$selectS = (_this$options11 = this.options) === null || _this$options11 === void 0 ? void 0 : _this$options11.selectSeries) !== null && _this$options$selectS !== void 0 ? _this$options$selectS : {};
52431
- var before = (_this$defaultSelectIn2 = this.defaultSelectInfo) !== null && _this$defaultSelectIn2 !== void 0 ? _this$defaultSelectIn2 : {
52416
+ var before = (_this$defaultSelectIn6 = this.defaultSelectInfo) !== null && _this$defaultSelectIn6 !== void 0 ? _this$defaultSelectIn6 : {
52432
52417
  seriesId: []
52433
52418
  };
52434
52419