evui 3.4.132 → 3.4.133

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