evui 3.4.155 → 3.4.157
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 +640 -117
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +640 -117
- 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 +2 -2
- package/src/components/chart/element/element.bar.js +5 -0
- package/src/components/chart/element/element.line.js +26 -0
- package/src/components/chart/element/element.tip.js +1 -1
- package/src/components/chart/helpers/helpers.util.js +23 -0
- package/src/components/chart/model/model.store.js +169 -47
- package/src/components/chart/plugins/plugins.interaction.js +74 -22
- package/src/components/chart/plugins/plugins.scrollbar.js +9 -1
- package/src/components/chart/scale/scale.step.js +26 -2
package/dist/evui.common.js
CHANGED
|
@@ -362,6 +362,81 @@ if(content.locals) module.exports = content.locals;
|
|
|
362
362
|
var add = __webpack_require__("499e").default
|
|
363
363
|
var update = add("5a9ac64a", content, true, {"sourceMap":false,"shadowMode":false});
|
|
364
364
|
|
|
365
|
+
/***/ }),
|
|
366
|
+
|
|
367
|
+
/***/ "10d1":
|
|
368
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
369
|
+
|
|
370
|
+
"use strict";
|
|
371
|
+
|
|
372
|
+
var global = __webpack_require__("da84");
|
|
373
|
+
var redefineAll = __webpack_require__("e2cc");
|
|
374
|
+
var InternalMetadataModule = __webpack_require__("f183");
|
|
375
|
+
var collection = __webpack_require__("6d61");
|
|
376
|
+
var collectionWeak = __webpack_require__("acac");
|
|
377
|
+
var isObject = __webpack_require__("861d");
|
|
378
|
+
var enforceIternalState = __webpack_require__("69f3").enforce;
|
|
379
|
+
var NATIVE_WEAK_MAP = __webpack_require__("7f9a");
|
|
380
|
+
|
|
381
|
+
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
|
|
382
|
+
var isExtensible = Object.isExtensible;
|
|
383
|
+
var InternalWeakMap;
|
|
384
|
+
|
|
385
|
+
var wrapper = function (init) {
|
|
386
|
+
return function WeakMap() {
|
|
387
|
+
return init(this, arguments.length ? arguments[0] : undefined);
|
|
388
|
+
};
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// `WeakMap` constructor
|
|
392
|
+
// https://tc39.github.io/ecma262/#sec-weakmap-constructor
|
|
393
|
+
var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);
|
|
394
|
+
|
|
395
|
+
// IE11 WeakMap frozen keys fix
|
|
396
|
+
// We can't use feature detection because it crash some old IE builds
|
|
397
|
+
// https://github.com/zloirock/core-js/issues/485
|
|
398
|
+
if (NATIVE_WEAK_MAP && IS_IE11) {
|
|
399
|
+
InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
|
|
400
|
+
InternalMetadataModule.REQUIRED = true;
|
|
401
|
+
var WeakMapPrototype = $WeakMap.prototype;
|
|
402
|
+
var nativeDelete = WeakMapPrototype['delete'];
|
|
403
|
+
var nativeHas = WeakMapPrototype.has;
|
|
404
|
+
var nativeGet = WeakMapPrototype.get;
|
|
405
|
+
var nativeSet = WeakMapPrototype.set;
|
|
406
|
+
redefineAll(WeakMapPrototype, {
|
|
407
|
+
'delete': function (key) {
|
|
408
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
409
|
+
var state = enforceIternalState(this);
|
|
410
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
411
|
+
return nativeDelete.call(this, key) || state.frozen['delete'](key);
|
|
412
|
+
} return nativeDelete.call(this, key);
|
|
413
|
+
},
|
|
414
|
+
has: function has(key) {
|
|
415
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
416
|
+
var state = enforceIternalState(this);
|
|
417
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
418
|
+
return nativeHas.call(this, key) || state.frozen.has(key);
|
|
419
|
+
} return nativeHas.call(this, key);
|
|
420
|
+
},
|
|
421
|
+
get: function get(key) {
|
|
422
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
423
|
+
var state = enforceIternalState(this);
|
|
424
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
425
|
+
return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
|
|
426
|
+
} return nativeGet.call(this, key);
|
|
427
|
+
},
|
|
428
|
+
set: function set(key, value) {
|
|
429
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
430
|
+
var state = enforceIternalState(this);
|
|
431
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
432
|
+
nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
|
|
433
|
+
} else nativeSet.call(this, key, value);
|
|
434
|
+
return this;
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
|
|
365
440
|
/***/ }),
|
|
366
441
|
|
|
367
442
|
/***/ "1148":
|
|
@@ -11235,7 +11310,7 @@ $({ target: 'Number', stat: true }, {
|
|
|
11235
11310
|
/***/ "9224":
|
|
11236
11311
|
/***/ (function(module) {
|
|
11237
11312
|
|
|
11238
|
-
module.exports = JSON.parse("{\"a\":\"3.4.
|
|
11313
|
+
module.exports = JSON.parse("{\"a\":\"3.4.157\"}");
|
|
11239
11314
|
|
|
11240
11315
|
/***/ }),
|
|
11241
11316
|
|
|
@@ -13076,6 +13151,135 @@ $({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
|
|
|
13076
13151
|
});
|
|
13077
13152
|
|
|
13078
13153
|
|
|
13154
|
+
/***/ }),
|
|
13155
|
+
|
|
13156
|
+
/***/ "acac":
|
|
13157
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
13158
|
+
|
|
13159
|
+
"use strict";
|
|
13160
|
+
|
|
13161
|
+
var redefineAll = __webpack_require__("e2cc");
|
|
13162
|
+
var getWeakData = __webpack_require__("f183").getWeakData;
|
|
13163
|
+
var anObject = __webpack_require__("825a");
|
|
13164
|
+
var isObject = __webpack_require__("861d");
|
|
13165
|
+
var anInstance = __webpack_require__("19aa");
|
|
13166
|
+
var iterate = __webpack_require__("2266");
|
|
13167
|
+
var ArrayIterationModule = __webpack_require__("b727");
|
|
13168
|
+
var $has = __webpack_require__("5135");
|
|
13169
|
+
var InternalStateModule = __webpack_require__("69f3");
|
|
13170
|
+
|
|
13171
|
+
var setInternalState = InternalStateModule.set;
|
|
13172
|
+
var internalStateGetterFor = InternalStateModule.getterFor;
|
|
13173
|
+
var find = ArrayIterationModule.find;
|
|
13174
|
+
var findIndex = ArrayIterationModule.findIndex;
|
|
13175
|
+
var id = 0;
|
|
13176
|
+
|
|
13177
|
+
// fallback for uncaught frozen keys
|
|
13178
|
+
var uncaughtFrozenStore = function (store) {
|
|
13179
|
+
return store.frozen || (store.frozen = new UncaughtFrozenStore());
|
|
13180
|
+
};
|
|
13181
|
+
|
|
13182
|
+
var UncaughtFrozenStore = function () {
|
|
13183
|
+
this.entries = [];
|
|
13184
|
+
};
|
|
13185
|
+
|
|
13186
|
+
var findUncaughtFrozen = function (store, key) {
|
|
13187
|
+
return find(store.entries, function (it) {
|
|
13188
|
+
return it[0] === key;
|
|
13189
|
+
});
|
|
13190
|
+
};
|
|
13191
|
+
|
|
13192
|
+
UncaughtFrozenStore.prototype = {
|
|
13193
|
+
get: function (key) {
|
|
13194
|
+
var entry = findUncaughtFrozen(this, key);
|
|
13195
|
+
if (entry) return entry[1];
|
|
13196
|
+
},
|
|
13197
|
+
has: function (key) {
|
|
13198
|
+
return !!findUncaughtFrozen(this, key);
|
|
13199
|
+
},
|
|
13200
|
+
set: function (key, value) {
|
|
13201
|
+
var entry = findUncaughtFrozen(this, key);
|
|
13202
|
+
if (entry) entry[1] = value;
|
|
13203
|
+
else this.entries.push([key, value]);
|
|
13204
|
+
},
|
|
13205
|
+
'delete': function (key) {
|
|
13206
|
+
var index = findIndex(this.entries, function (it) {
|
|
13207
|
+
return it[0] === key;
|
|
13208
|
+
});
|
|
13209
|
+
if (~index) this.entries.splice(index, 1);
|
|
13210
|
+
return !!~index;
|
|
13211
|
+
}
|
|
13212
|
+
};
|
|
13213
|
+
|
|
13214
|
+
module.exports = {
|
|
13215
|
+
getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
|
|
13216
|
+
var C = wrapper(function (that, iterable) {
|
|
13217
|
+
anInstance(that, C, CONSTRUCTOR_NAME);
|
|
13218
|
+
setInternalState(that, {
|
|
13219
|
+
type: CONSTRUCTOR_NAME,
|
|
13220
|
+
id: id++,
|
|
13221
|
+
frozen: undefined
|
|
13222
|
+
});
|
|
13223
|
+
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
|
|
13224
|
+
});
|
|
13225
|
+
|
|
13226
|
+
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
|
|
13227
|
+
|
|
13228
|
+
var define = function (that, key, value) {
|
|
13229
|
+
var state = getInternalState(that);
|
|
13230
|
+
var data = getWeakData(anObject(key), true);
|
|
13231
|
+
if (data === true) uncaughtFrozenStore(state).set(key, value);
|
|
13232
|
+
else data[state.id] = value;
|
|
13233
|
+
return that;
|
|
13234
|
+
};
|
|
13235
|
+
|
|
13236
|
+
redefineAll(C.prototype, {
|
|
13237
|
+
// 23.3.3.2 WeakMap.prototype.delete(key)
|
|
13238
|
+
// 23.4.3.3 WeakSet.prototype.delete(value)
|
|
13239
|
+
'delete': function (key) {
|
|
13240
|
+
var state = getInternalState(this);
|
|
13241
|
+
if (!isObject(key)) return false;
|
|
13242
|
+
var data = getWeakData(key);
|
|
13243
|
+
if (data === true) return uncaughtFrozenStore(state)['delete'](key);
|
|
13244
|
+
return data && $has(data, state.id) && delete data[state.id];
|
|
13245
|
+
},
|
|
13246
|
+
// 23.3.3.4 WeakMap.prototype.has(key)
|
|
13247
|
+
// 23.4.3.4 WeakSet.prototype.has(value)
|
|
13248
|
+
has: function has(key) {
|
|
13249
|
+
var state = getInternalState(this);
|
|
13250
|
+
if (!isObject(key)) return false;
|
|
13251
|
+
var data = getWeakData(key);
|
|
13252
|
+
if (data === true) return uncaughtFrozenStore(state).has(key);
|
|
13253
|
+
return data && $has(data, state.id);
|
|
13254
|
+
}
|
|
13255
|
+
});
|
|
13256
|
+
|
|
13257
|
+
redefineAll(C.prototype, IS_MAP ? {
|
|
13258
|
+
// 23.3.3.3 WeakMap.prototype.get(key)
|
|
13259
|
+
get: function get(key) {
|
|
13260
|
+
var state = getInternalState(this);
|
|
13261
|
+
if (isObject(key)) {
|
|
13262
|
+
var data = getWeakData(key);
|
|
13263
|
+
if (data === true) return uncaughtFrozenStore(state).get(key);
|
|
13264
|
+
return data ? data[state.id] : undefined;
|
|
13265
|
+
}
|
|
13266
|
+
},
|
|
13267
|
+
// 23.3.3.5 WeakMap.prototype.set(key, value)
|
|
13268
|
+
set: function set(key, value) {
|
|
13269
|
+
return define(this, key, value);
|
|
13270
|
+
}
|
|
13271
|
+
} : {
|
|
13272
|
+
// 23.4.3.1 WeakSet.prototype.add(value)
|
|
13273
|
+
add: function add(value) {
|
|
13274
|
+
return define(this, value, true);
|
|
13275
|
+
}
|
|
13276
|
+
});
|
|
13277
|
+
|
|
13278
|
+
return C;
|
|
13279
|
+
}
|
|
13280
|
+
};
|
|
13281
|
+
|
|
13282
|
+
|
|
13079
13283
|
/***/ }),
|
|
13080
13284
|
|
|
13081
13285
|
/***/ "ad6d":
|
|
@@ -22274,9 +22478,9 @@ var _Set_Set = _getNative(_root["a" /* default */], 'Set');
|
|
|
22274
22478
|
|
|
22275
22479
|
|
|
22276
22480
|
/* Built-in method references that are verified to be native. */
|
|
22277
|
-
var
|
|
22481
|
+
var _WeakMap_WeakMap = _getNative(_root["a" /* default */], 'WeakMap');
|
|
22278
22482
|
|
|
22279
|
-
/* harmony default export */ var _WeakMap = (
|
|
22483
|
+
/* harmony default export */ var _WeakMap = (_WeakMap_WeakMap);
|
|
22280
22484
|
|
|
22281
22485
|
// CONCATENATED MODULE: ./node_modules/lodash-es/_getTag.js
|
|
22282
22486
|
|
|
@@ -38937,6 +39141,30 @@ var textMeasureCtx = textMeasureCanvas.getContext('2d');
|
|
|
38937
39141
|
}
|
|
38938
39142
|
|
|
38939
39143
|
return "".concat(color, "80");
|
|
39144
|
+
},
|
|
39145
|
+
|
|
39146
|
+
/**
|
|
39147
|
+
* 클릭 좌표(cx, cy)에서 데이터 포인트까지의 거리²를 반환한다.
|
|
39148
|
+
* w/h 가 있으면 박스 외벽까지의 거리(내부면 0), 없으면 포인트까지의 유클리드 거리².
|
|
39149
|
+
* @param {object} data - 데이터 포인트 (xp, yp, w?, h?)
|
|
39150
|
+
* @param {number} cx - 클릭 x 좌표
|
|
39151
|
+
* @param {number} cy - 클릭 y 좌표
|
|
39152
|
+
* @returns {number}
|
|
39153
|
+
*/
|
|
39154
|
+
calcBoxDistance: function calcBoxDistance(data, cx, cy) {
|
|
39155
|
+
if (data.w !== null && data.w !== undefined && data.h !== null && data.h !== undefined) {
|
|
39156
|
+
var sx = data.xp;
|
|
39157
|
+
var sy = data.yp;
|
|
39158
|
+
var xMin = Math.min(sx, sx + data.w);
|
|
39159
|
+
var xMax = Math.max(sx, sx + data.w);
|
|
39160
|
+
var yMin = Math.min(sy, sy + data.h);
|
|
39161
|
+
var yMax = Math.max(sy, sy + data.h);
|
|
39162
|
+
var dx = Math.max(0, xMin - cx, cx - xMax);
|
|
39163
|
+
var dy = Math.max(0, yMin - cy, cy - yMax);
|
|
39164
|
+
return dx * dx + dy * dy;
|
|
39165
|
+
}
|
|
39166
|
+
|
|
39167
|
+
return Math.pow(data.xp - cx, 2) + Math.pow(data.yp - cy, 2);
|
|
38940
39168
|
}
|
|
38941
39169
|
});
|
|
38942
39170
|
// CONCATENATED MODULE: ./src/components/chart/model/model.store.js
|
|
@@ -38963,6 +39191,8 @@ var textMeasureCtx = textMeasureCanvas.getContext('2d');
|
|
|
38963
39191
|
|
|
38964
39192
|
|
|
38965
39193
|
|
|
39194
|
+
|
|
39195
|
+
|
|
38966
39196
|
|
|
38967
39197
|
|
|
38968
39198
|
|
|
@@ -39902,7 +40132,7 @@ var modules = {
|
|
|
39902
40132
|
return null;
|
|
39903
40133
|
}
|
|
39904
40134
|
|
|
39905
|
-
itemPosition = [this.
|
|
40135
|
+
itemPosition = [this.getHitItemByPosition([dataInfo.xp, dataInfo.yp], useApproximate, dataIndex, true)];
|
|
39906
40136
|
} else {
|
|
39907
40137
|
var seriesList = Object.entries(this.seriesList);
|
|
39908
40138
|
var firShowSeriesID;
|
|
@@ -39927,7 +40157,7 @@ var modules = {
|
|
|
39927
40157
|
return null;
|
|
39928
40158
|
}
|
|
39929
40159
|
|
|
39930
|
-
return _this7.
|
|
40160
|
+
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
40161
|
});
|
|
39932
40162
|
}
|
|
39933
40163
|
|
|
@@ -39951,30 +40181,110 @@ var modules = {
|
|
|
39951
40181
|
},
|
|
39952
40182
|
|
|
39953
40183
|
/**
|
|
39954
|
-
* Find
|
|
40184
|
+
* Find the hit item at the given position (x, y).
|
|
40185
|
+
*
|
|
40186
|
+
* 선택 우선순위:
|
|
40187
|
+
* 1. directHit (bar 박스 내부 클릭) — 가장 가까운 것
|
|
40188
|
+
* 2. hit (line 포인트 근접 등) — 가장 가까운 것
|
|
40189
|
+
* 3. hit 없으면 클릭 좌표에 가장 가까운 시리즈로 fallback (distance 기반)
|
|
40190
|
+
*
|
|
39955
40191
|
* @param {array} offset position x and y
|
|
39956
40192
|
* @param {boolean} useApproximate if it's true. it'll look for closed item on mouse position
|
|
39957
40193
|
* @param {number} dataIndex selected data index
|
|
39958
40194
|
* @param {boolean} useSelectLabelOrItem used to display select label/item at tooltip location
|
|
40195
|
+
* @param {boolean} disableNullLabelSnap true 이면 all-null 라벨도 그대로 반환 (click/dblclick 용)
|
|
39959
40196
|
*
|
|
39960
|
-
* @returns {object}
|
|
40197
|
+
* @returns {object} hit item information
|
|
39961
40198
|
*/
|
|
39962
|
-
|
|
39963
|
-
var
|
|
40199
|
+
getHitItemByPosition: function getHitItemByPosition(offset) {
|
|
40200
|
+
var _this8 = this,
|
|
40201
|
+
_ref4;
|
|
39964
40202
|
|
|
39965
40203
|
var useApproximate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
39966
40204
|
var dataIndex = arguments.length > 2 ? arguments[2] : undefined;
|
|
39967
40205
|
var useSelectLabelOrItem = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
40206
|
+
var disableNullLabelSnap = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
39968
40207
|
var seriesIDs = Object.keys(this.seriesList);
|
|
39969
40208
|
var isHorizontal = !!this.options.horizontal;
|
|
39970
|
-
|
|
39971
|
-
var
|
|
39972
|
-
|
|
39973
|
-
|
|
39974
|
-
|
|
40209
|
+
|
|
40210
|
+
var _offset = _slicedToArray(offset, 2),
|
|
40211
|
+
cx = _offset[0],
|
|
40212
|
+
cy = _offset[1]; // dataIndex 미지정 시 클릭 좌표에 가장 가까운 valid 라벨 인덱스 결정.
|
|
40213
|
+
// disableNullLabelSnap=true 이면 all-null 라벨도 후보로 인정.
|
|
40214
|
+
|
|
40215
|
+
|
|
40216
|
+
var resolvedDataIndex = dataIndex;
|
|
40217
|
+
|
|
40218
|
+
if (resolvedDataIndex === undefined && !useApproximate) {
|
|
40219
|
+
var refSeriesID = seriesIDs.find(function (sId) {
|
|
40220
|
+
var _s$data;
|
|
40221
|
+
|
|
40222
|
+
var s = _this8.seriesList[sId];
|
|
40223
|
+
return (s === null || s === void 0 ? void 0 : s.show) && (s === null || s === void 0 ? void 0 : (_s$data = s.data) === null || _s$data === void 0 ? void 0 : _s$data.length) > 0;
|
|
40224
|
+
});
|
|
40225
|
+
|
|
40226
|
+
if (refSeriesID) {
|
|
40227
|
+
var refData = this.seriesList[refSeriesID].data;
|
|
40228
|
+
var clickPos = isHorizontal ? offset[1] : offset[0];
|
|
40229
|
+
var nearestDistance = Infinity;
|
|
40230
|
+
var nearestIndex = -1;
|
|
40231
|
+
|
|
40232
|
+
var _loop = function _loop(i) {
|
|
40233
|
+
var hasValidData = disableNullLabelSnap || seriesIDs.some(function (sId) {
|
|
40234
|
+
var _s$data2, _s$data2$i, _s$data3, _s$data3$i;
|
|
40235
|
+
|
|
40236
|
+
var s = _this8.seriesList[sId];
|
|
40237
|
+
return (s === null || s === void 0 ? void 0 : s.show) && ((_s$data2 = s.data) === null || _s$data2 === void 0 ? void 0 : (_s$data2$i = _s$data2[i]) === null || _s$data2$i === void 0 ? void 0 : _s$data2$i.o) !== null && ((_s$data3 = s.data) === null || _s$data3 === void 0 ? void 0 : (_s$data3$i = _s$data3[i]) === null || _s$data3$i === void 0 ? void 0 : _s$data3$i.o) !== undefined;
|
|
40238
|
+
});
|
|
40239
|
+
var p = refData[i];
|
|
40240
|
+
|
|
40241
|
+
if (hasValidData && p) {
|
|
40242
|
+
var labelPos;
|
|
40243
|
+
|
|
40244
|
+
if (isHorizontal) {
|
|
40245
|
+
labelPos = p.h ? p.yp + p.h / 2 : p.yp;
|
|
40246
|
+
} else {
|
|
40247
|
+
labelPos = p.w ? p.xp + p.w / 2 : p.xp;
|
|
40248
|
+
}
|
|
40249
|
+
|
|
40250
|
+
if (labelPos !== null && labelPos !== undefined) {
|
|
40251
|
+
var d = Math.abs(clickPos - labelPos);
|
|
40252
|
+
|
|
40253
|
+
if (d < nearestDistance) {
|
|
40254
|
+
nearestDistance = d;
|
|
40255
|
+
nearestIndex = i;
|
|
40256
|
+
}
|
|
40257
|
+
}
|
|
40258
|
+
}
|
|
40259
|
+
};
|
|
40260
|
+
|
|
40261
|
+
for (var i = 0; i < refData.length; i++) {
|
|
40262
|
+
_loop(i);
|
|
40263
|
+
}
|
|
40264
|
+
|
|
40265
|
+
if (nearestIndex !== -1) resolvedDataIndex = nearestIndex;
|
|
40266
|
+
}
|
|
40267
|
+
} // hit 기반 결과 (최우선)
|
|
40268
|
+
|
|
40269
|
+
|
|
40270
|
+
var hitType = null;
|
|
40271
|
+
var hitLabel = null;
|
|
40272
|
+
var hitValuePos = null;
|
|
40273
|
+
var hitValue = null;
|
|
40274
|
+
var hitSeriesID = '';
|
|
40275
|
+
var hitDataIndex = null;
|
|
40276
|
+
var hitDistance = Infinity;
|
|
40277
|
+
var hasDirectHit = false; // hit 없을 때 쓸 fallback — 값이 있는 시리즈 중 클릭 좌표에 가장 가까운 것.
|
|
40278
|
+
|
|
40279
|
+
var fallbackType = null;
|
|
40280
|
+
var fallbackLabel = null;
|
|
40281
|
+
var fallbackValuePos = null;
|
|
40282
|
+
var fallbackValue = null;
|
|
40283
|
+
var fallbackSeriesID = '';
|
|
40284
|
+
var fallbackDataIndex = null;
|
|
40285
|
+
var fallbackDistance = Infinity;
|
|
39975
40286
|
var acc = 0;
|
|
39976
40287
|
var useStack = false;
|
|
39977
|
-
var maxIndex = null;
|
|
39978
40288
|
|
|
39979
40289
|
for (var ix = 0; ix < seriesIDs.length; ix++) {
|
|
39980
40290
|
var seriesID = seriesIDs[ix];
|
|
@@ -39982,18 +40292,19 @@ var modules = {
|
|
|
39982
40292
|
var findFn = useApproximate ? series.findApproximateData : series.findGraphData;
|
|
39983
40293
|
|
|
39984
40294
|
if (findFn) {
|
|
39985
|
-
var item = findFn.call(series, offset, isHorizontal,
|
|
40295
|
+
var item = findFn.call(series, offset, isHorizontal, resolvedDataIndex, useSelectLabelOrItem);
|
|
39986
40296
|
var data = item.data;
|
|
39987
40297
|
var index = item.index;
|
|
39988
40298
|
|
|
39989
40299
|
if (data) {
|
|
39990
40300
|
if (helpers_util.isPieType(item.type)) {
|
|
39991
|
-
|
|
39992
|
-
|
|
39993
|
-
|
|
39994
|
-
|
|
39995
|
-
|
|
39996
|
-
|
|
40301
|
+
// pie 차트는 hit detection 체계가 달라 기존 동작 유지 (단일 pie 시리즈가 일반적)
|
|
40302
|
+
hitType = item.type;
|
|
40303
|
+
hitLabel = seriesID;
|
|
40304
|
+
hitSeriesID = seriesID;
|
|
40305
|
+
hitValuePos = (data.ea - data.sa) / 2;
|
|
40306
|
+
hitValue = data.o;
|
|
40307
|
+
hitDataIndex = data.index;
|
|
39997
40308
|
} else {
|
|
39998
40309
|
var ldata = isHorizontal ? data.y : data.x;
|
|
39999
40310
|
var lp = isHorizontal ? data.yp : data.xp;
|
|
@@ -40006,47 +40317,108 @@ var modules = {
|
|
|
40006
40317
|
useStack = true;
|
|
40007
40318
|
} else {
|
|
40008
40319
|
acc += data.y;
|
|
40009
|
-
}
|
|
40320
|
+
} // fallback 후보: 값이 있는 시리즈 중 거리가 가장 가까운 쪽.
|
|
40321
|
+
// 값이 null 인 시리즈는 제외.
|
|
40322
|
+
|
|
40323
|
+
|
|
40324
|
+
var hasMeaningfulValue = g !== null && g !== undefined && !Number.isNaN(g);
|
|
40325
|
+
var hasCoords = data.xp !== null && data.xp !== undefined && data.yp !== null && data.yp !== undefined;
|
|
40010
40326
|
|
|
40011
|
-
if (
|
|
40012
|
-
|
|
40013
|
-
|
|
40014
|
-
|
|
40015
|
-
|
|
40016
|
-
|
|
40017
|
-
|
|
40018
|
-
|
|
40327
|
+
if (hasMeaningfulValue && hasCoords) {
|
|
40328
|
+
var distance = helpers_util.calcBoxDistance(data, cx, cy);
|
|
40329
|
+
|
|
40330
|
+
if (fallbackSeriesID === '' || distance < fallbackDistance) {
|
|
40331
|
+
fallbackDistance = distance;
|
|
40332
|
+
fallbackType = series.type;
|
|
40333
|
+
fallbackLabel = ldata;
|
|
40334
|
+
fallbackValuePos = lp;
|
|
40335
|
+
fallbackValue = g;
|
|
40336
|
+
fallbackSeriesID = seriesID;
|
|
40337
|
+
fallbackDataIndex = index;
|
|
40338
|
+
}
|
|
40339
|
+
} else if (hasMeaningfulValue && fallbackSeriesID === '') {
|
|
40340
|
+
// 좌표 없는 예외 케이스 — 첫 후보로만 등록
|
|
40341
|
+
fallbackType = series.type;
|
|
40342
|
+
fallbackLabel = ldata;
|
|
40343
|
+
fallbackValuePos = lp;
|
|
40344
|
+
fallbackValue = g;
|
|
40345
|
+
fallbackSeriesID = seriesID;
|
|
40346
|
+
fallbackDataIndex = index;
|
|
40347
|
+
} // hit 기반 선택: item.hit이 true이고 유효한 좌표가 있을 때만 고려
|
|
40348
|
+
|
|
40349
|
+
|
|
40350
|
+
if (item.hit && data.xp !== undefined && data.yp !== undefined) {
|
|
40351
|
+
var _distance = Math.pow(data.xp - offset[0], 2) + Math.pow(data.yp - offset[1], 2);
|
|
40352
|
+
|
|
40353
|
+
if (item.directHit) {
|
|
40354
|
+
// 직접 박스 히트는 최우선. 여러 개이면 가장 가까운 것.
|
|
40355
|
+
if (!hasDirectHit || _distance < hitDistance) {
|
|
40356
|
+
hitDistance = _distance;
|
|
40357
|
+
hitType = series.type;
|
|
40358
|
+
hitLabel = ldata;
|
|
40359
|
+
hitValuePos = lp;
|
|
40360
|
+
hitValue = g;
|
|
40361
|
+
hitSeriesID = seriesID;
|
|
40362
|
+
hitDataIndex = index;
|
|
40363
|
+
}
|
|
40364
|
+
|
|
40365
|
+
hasDirectHit = true;
|
|
40366
|
+
} else if (!hasDirectHit) {
|
|
40367
|
+
// directHit가 없을 때만 일반 hit 거리 비교 참여
|
|
40368
|
+
// (라인 근접 히트가 박스 직접 히트를 이기지 못하도록)
|
|
40369
|
+
if (_distance < hitDistance) {
|
|
40370
|
+
hitDistance = _distance;
|
|
40371
|
+
hitType = series.type;
|
|
40372
|
+
hitLabel = ldata;
|
|
40373
|
+
hitValuePos = lp;
|
|
40374
|
+
hitValue = g;
|
|
40375
|
+
hitSeriesID = seriesID;
|
|
40376
|
+
hitDataIndex = index;
|
|
40377
|
+
}
|
|
40019
40378
|
}
|
|
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
40379
|
}
|
|
40028
40380
|
}
|
|
40029
40381
|
}
|
|
40030
40382
|
}
|
|
40031
40383
|
}
|
|
40384
|
+
} // all-null 라벨인 경우 label/dataIndex 만 채워 반환 (sId='', value=0).
|
|
40385
|
+
|
|
40386
|
+
|
|
40387
|
+
if (disableNullLabelSnap && hitSeriesID === '' && fallbackSeriesID === '' && resolvedDataIndex !== undefined && resolvedDataIndex >= 0) {
|
|
40388
|
+
var _this$seriesList$_ref;
|
|
40389
|
+
|
|
40390
|
+
var _refSeriesID = seriesIDs.find(function (sId) {
|
|
40391
|
+
var _s$data4;
|
|
40392
|
+
|
|
40393
|
+
var s = _this8.seriesList[sId];
|
|
40394
|
+
return (s === null || s === void 0 ? void 0 : s.show) && (s === null || s === void 0 ? void 0 : (_s$data4 = s.data) === null || _s$data4 === void 0 ? void 0 : _s$data4.length) > 0;
|
|
40395
|
+
});
|
|
40396
|
+
|
|
40397
|
+
var refPoint = _refSeriesID ? (_this$seriesList$_ref = this.seriesList[_refSeriesID].data) === null || _this$seriesList$_ref === void 0 ? void 0 : _this$seriesList$_ref[resolvedDataIndex] : null;
|
|
40398
|
+
|
|
40399
|
+
if (refPoint) {
|
|
40400
|
+
fallbackLabel = isHorizontal ? refPoint.y : refPoint.x;
|
|
40401
|
+
fallbackDataIndex = resolvedDataIndex;
|
|
40402
|
+
}
|
|
40032
40403
|
}
|
|
40033
40404
|
|
|
40405
|
+
var hasHit = hitSeriesID !== '';
|
|
40034
40406
|
return {
|
|
40035
|
-
type:
|
|
40036
|
-
label:
|
|
40037
|
-
pos:
|
|
40038
|
-
value: (
|
|
40039
|
-
sId:
|
|
40407
|
+
type: hasHit ? hitType : fallbackType,
|
|
40408
|
+
label: hasHit ? hitLabel : fallbackLabel,
|
|
40409
|
+
pos: hasHit ? hitValuePos : fallbackValuePos,
|
|
40410
|
+
value: (_ref4 = hasHit ? hitValue : fallbackValue) !== null && _ref4 !== void 0 ? _ref4 : 0,
|
|
40411
|
+
sId: hasHit ? hitSeriesID : fallbackSeriesID,
|
|
40040
40412
|
acc: acc,
|
|
40041
40413
|
useStack: useStack,
|
|
40042
|
-
|
|
40414
|
+
dataIndex: hasHit ? hitDataIndex : fallbackDataIndex
|
|
40043
40415
|
};
|
|
40044
40416
|
},
|
|
40045
40417
|
|
|
40046
40418
|
/**
|
|
40047
40419
|
* @typedef {Object} LabelInfoResult
|
|
40048
40420
|
* @property {number} labelIndex - 선택된 라벨의 인덱스
|
|
40049
|
-
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (
|
|
40421
|
+
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (getHitItemByPosition 반환값)
|
|
40050
40422
|
*/
|
|
40051
40423
|
|
|
40052
40424
|
/**
|
|
@@ -40059,9 +40431,9 @@ var modules = {
|
|
|
40059
40431
|
getLabelInfoByPosition: function getLabelInfoByPosition(offset, targetAxis) {
|
|
40060
40432
|
var _Object$values$sort$, _Object$values$sort$2, _scrollbarOpt, _scale, _scale$labels, _scale3, _scale3$labels;
|
|
40061
40433
|
|
|
40062
|
-
var
|
|
40063
|
-
x =
|
|
40064
|
-
y =
|
|
40434
|
+
var _offset2 = _slicedToArray(offset, 2),
|
|
40435
|
+
x = _offset2[0],
|
|
40436
|
+
y = _offset2[1];
|
|
40065
40437
|
|
|
40066
40438
|
var aPos = {
|
|
40067
40439
|
x1: this.chartRect.x1 + this.labelOffset.left,
|
|
@@ -40071,9 +40443,9 @@ var modules = {
|
|
|
40071
40443
|
};
|
|
40072
40444
|
var seriesList = this.data.series;
|
|
40073
40445
|
var pointSize = (_Object$values$sort$ = (_Object$values$sort$2 = Object.values(seriesList).sort(function (a, b) {
|
|
40074
|
-
var
|
|
40446
|
+
var _ref5, _b$pointSize;
|
|
40075
40447
|
|
|
40076
|
-
return (
|
|
40448
|
+
return (_ref5 = (_b$pointSize = b.pointSize) !== null && _b$pointSize !== void 0 ? _b$pointSize : 0 - a.pointSize) !== null && _ref5 !== void 0 ? _ref5 : 0;
|
|
40077
40449
|
})[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
40450
|
|
|
40079
40451
|
var _this$options = this.options,
|
|
@@ -40105,10 +40477,10 @@ var modules = {
|
|
|
40105
40477
|
_scrollbarOpt2$interv = _scrollbarOpt2.interval,
|
|
40106
40478
|
interval = _scrollbarOpt2$interv === void 0 ? 1 : _scrollbarOpt2$interv;
|
|
40107
40479
|
|
|
40108
|
-
var
|
|
40109
|
-
|
|
40110
|
-
min =
|
|
40111
|
-
max =
|
|
40480
|
+
var _ref6 = range !== null && range !== void 0 ? range : [0, scale.labels.length],
|
|
40481
|
+
_ref7 = _slicedToArray(_ref6, 2),
|
|
40482
|
+
min = _ref7[0],
|
|
40483
|
+
max = _ref7[1];
|
|
40112
40484
|
|
|
40113
40485
|
var labelCount = Math.floor((+max - +min) / interval) + 1;
|
|
40114
40486
|
var labelGap = (endPoint - startPoint) / labelCount;
|
|
@@ -40134,7 +40506,7 @@ var modules = {
|
|
|
40134
40506
|
|
|
40135
40507
|
labelIndex = scale.labels.length > _index ? _index : -1;
|
|
40136
40508
|
} else {
|
|
40137
|
-
var _hitInfo$
|
|
40509
|
+
var _hitInfo$dataIndex;
|
|
40138
40510
|
|
|
40139
40511
|
var offsetX;
|
|
40140
40512
|
var dataIndex;
|
|
@@ -40149,8 +40521,8 @@ var modules = {
|
|
|
40149
40521
|
offsetX = x;
|
|
40150
40522
|
}
|
|
40151
40523
|
|
|
40152
|
-
hitInfo = this.
|
|
40153
|
-
labelIndex = (_hitInfo$
|
|
40524
|
+
hitInfo = this.getHitItemByPosition([offsetX, y], selectLabel === null || selectLabel === void 0 ? void 0 : selectLabel.useApproximateValue, dataIndex, true);
|
|
40525
|
+
labelIndex = (_hitInfo$dataIndex = hitInfo.dataIndex) !== null && _hitInfo$dataIndex !== void 0 ? _hitInfo$dataIndex : -1;
|
|
40154
40526
|
}
|
|
40155
40527
|
|
|
40156
40528
|
return {
|
|
@@ -40171,7 +40543,7 @@ var modules = {
|
|
|
40171
40543
|
* @returns {MouseLabelValue} current mouse target label value
|
|
40172
40544
|
*/
|
|
40173
40545
|
getCurMouseLabelVal: function getCurMouseLabelVal(targetAxis, offset, labelIndex) {
|
|
40174
|
-
var
|
|
40546
|
+
var _this9 = this;
|
|
40175
40547
|
|
|
40176
40548
|
var _this$options2 = this.options,
|
|
40177
40549
|
chartType = _this$options2.type,
|
|
@@ -40188,13 +40560,13 @@ var modules = {
|
|
|
40188
40560
|
case 'bar':
|
|
40189
40561
|
case 'line':
|
|
40190
40562
|
{
|
|
40191
|
-
result = horizontal && !isXAxis || !horizontal && isXAxis ?
|
|
40563
|
+
result = horizontal && !isXAxis || !horizontal && isXAxis ? _this9.data.labels[labelIndex] : '';
|
|
40192
40564
|
break;
|
|
40193
40565
|
}
|
|
40194
40566
|
|
|
40195
40567
|
case 'heatMap':
|
|
40196
40568
|
{
|
|
40197
|
-
result =
|
|
40569
|
+
result = _this9.data.labels[targetAxisDirection][labelIndex];
|
|
40198
40570
|
break;
|
|
40199
40571
|
}
|
|
40200
40572
|
|
|
@@ -40208,19 +40580,19 @@ var modules = {
|
|
|
40208
40580
|
var calLabelValUseMousePos = function calLabelValUseMousePos() {
|
|
40209
40581
|
var result = '';
|
|
40210
40582
|
var aPos = {
|
|
40211
|
-
x1:
|
|
40212
|
-
x2:
|
|
40213
|
-
y1:
|
|
40214
|
-
y2:
|
|
40583
|
+
x1: _this9.chartRect.x1 + _this9.labelOffset.left,
|
|
40584
|
+
x2: _this9.chartRect.x2 - _this9.labelOffset.right,
|
|
40585
|
+
y1: _this9.chartRect.y1 + _this9.labelOffset.top,
|
|
40586
|
+
y2: _this9.chartRect.y2 - _this9.labelOffset.bottom
|
|
40215
40587
|
};
|
|
40216
|
-
var
|
|
40217
|
-
steps =
|
|
40218
|
-
labelValInterval =
|
|
40219
|
-
graphMin =
|
|
40220
|
-
var
|
|
40221
|
-
labelWidth =
|
|
40222
|
-
labelHeight =
|
|
40223
|
-
var axes = isXAxis ?
|
|
40588
|
+
var _this9$axesSteps$targ = _this9.axesSteps[targetAxisDirection][0],
|
|
40589
|
+
steps = _this9$axesSteps$targ.steps,
|
|
40590
|
+
labelValInterval = _this9$axesSteps$targ.interval,
|
|
40591
|
+
graphMin = _this9$axesSteps$targ.graphMin;
|
|
40592
|
+
var _this9$axesRange$targ = _this9.axesRange[targetAxisDirection][0].size,
|
|
40593
|
+
labelWidth = _this9$axesRange$targ.width,
|
|
40594
|
+
labelHeight = _this9$axesRange$targ.height;
|
|
40595
|
+
var axes = isXAxis ? _this9.axesX : _this9.axesY;
|
|
40224
40596
|
var axisStartPoint = aPos[axes[0].units.rectStart];
|
|
40225
40597
|
var axisEndPoint = aPos[axes[0].units.rectEnd];
|
|
40226
40598
|
var curMousePosInAxis = Math.abs(offset[isXAxis ? 0 : 1] - axisStartPoint);
|
|
@@ -40258,7 +40630,7 @@ var modules = {
|
|
|
40258
40630
|
* @returns {object} min/max info for all of data
|
|
40259
40631
|
*/
|
|
40260
40632
|
getStoreMinMax: function getStoreMinMax() {
|
|
40261
|
-
var
|
|
40633
|
+
var _this10 = this;
|
|
40262
40634
|
|
|
40263
40635
|
var keys = Object.keys(this.seriesList);
|
|
40264
40636
|
var isHorizontal = this.options.horizontal;
|
|
@@ -40276,7 +40648,7 @@ var modules = {
|
|
|
40276
40648
|
if (keys.length) {
|
|
40277
40649
|
return keys.reduce(function (acc, key) {
|
|
40278
40650
|
var minmax = acc;
|
|
40279
|
-
var series =
|
|
40651
|
+
var series = _this10.seriesList[key];
|
|
40280
40652
|
var smm = series.minMax;
|
|
40281
40653
|
var axisX = series.xAxisIndex;
|
|
40282
40654
|
var axisY = series.yAxisIndex;
|
|
@@ -42133,7 +42505,7 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42133
42505
|
}, {
|
|
42134
42506
|
key: "findGraphData",
|
|
42135
42507
|
value: function findGraphData(offset, isHorizontal, dataIndex, useSelectLabelOrItem) {
|
|
42136
|
-
var _item$data;
|
|
42508
|
+
var _this$pointSize, _item$data;
|
|
42137
42509
|
|
|
42138
42510
|
var xp = offset[0];
|
|
42139
42511
|
var yp = offset[1];
|
|
@@ -42145,7 +42517,23 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42145
42517
|
var gdata = this.data.filter(function (data) {
|
|
42146
42518
|
return !helpers_util.isNullOrUndefined(data.x);
|
|
42147
42519
|
});
|
|
42148
|
-
var isLinearInterpolation = this.useLinearInterpolation();
|
|
42520
|
+
var isLinearInterpolation = this.useLinearInterpolation(); // line 포인트 "정확 히트" 판정용 반경.
|
|
42521
|
+
// combo 차트에서 line 포인트 중심을 직격한 경우, 같은 좌표의 bar(directHit)보다
|
|
42522
|
+
// line이 우선되도록 item.directHit = true로 표시한다. 그 외(단순 Y축 근접)는 기존처럼 hit만.
|
|
42523
|
+
// 포인트 반지름에 기본 포인트 크기(LINE_OPTION.pointSize)만큼의 클릭 여유 마진을 더하고,
|
|
42524
|
+
// 시각적으로 하이라이트되는 포인트 반경(highlight.maxSize)을 최소 보장값으로 사용한다.
|
|
42525
|
+
|
|
42526
|
+
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);
|
|
42527
|
+
|
|
42528
|
+
var isLinePointDirectHit = function isLinePointDirectHit(point) {
|
|
42529
|
+
if (!point || point.xp === undefined || point.yp === undefined) {
|
|
42530
|
+
return false;
|
|
42531
|
+
}
|
|
42532
|
+
|
|
42533
|
+
var dx = xp - point.xp;
|
|
42534
|
+
var dy = yp - point.yp;
|
|
42535
|
+
return dx * dx + dy * dy <= directHitRadius * directHitRadius;
|
|
42536
|
+
};
|
|
42149
42537
|
|
|
42150
42538
|
if (gdata !== null && gdata !== void 0 && gdata.length) {
|
|
42151
42539
|
if (typeof dataIndex === 'number' && this.show) {
|
|
@@ -42160,6 +42548,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42160
42548
|
if (yDist <= directHitThreshold) {
|
|
42161
42549
|
item.hit = true;
|
|
42162
42550
|
}
|
|
42551
|
+
|
|
42552
|
+
if (isLinePointDirectHit(point)) {
|
|
42553
|
+
item.hit = true;
|
|
42554
|
+
item.directHit = true;
|
|
42555
|
+
}
|
|
42163
42556
|
}
|
|
42164
42557
|
} else if (typeof this.beforeFindItemIndex === 'number' && this.beforeFindItemIndex !== -1 && this.show && useSelectLabelOrItem) {
|
|
42165
42558
|
item.data = gdata[this.beforeFindItemIndex];
|
|
@@ -42308,6 +42701,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42308
42701
|
if (_yDist <= _directHitThreshold) {
|
|
42309
42702
|
item.hit = true;
|
|
42310
42703
|
}
|
|
42704
|
+
|
|
42705
|
+
if (isLinePointDirectHit(_point3)) {
|
|
42706
|
+
item.hit = true;
|
|
42707
|
+
item.directHit = true;
|
|
42708
|
+
}
|
|
42311
42709
|
}
|
|
42312
42710
|
}
|
|
42313
42711
|
}
|
|
@@ -43248,7 +43646,10 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43248
43646
|
if (barData[clampedIndex]) {
|
|
43249
43647
|
item.data = barData[clampedIndex];
|
|
43250
43648
|
item.index = clampedIndex;
|
|
43251
|
-
item.hit = this.isPointInBar(offset, barData[clampedIndex]);
|
|
43649
|
+
item.hit = this.isPointInBar(offset, barData[clampedIndex]); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시.
|
|
43650
|
+
// findHitItem에서 line 포인트 근접 히트보다 우선 선택되도록 하기 위함.
|
|
43651
|
+
|
|
43652
|
+
item.directHit = item.hit;
|
|
43252
43653
|
}
|
|
43253
43654
|
|
|
43254
43655
|
return item;
|
|
@@ -43305,7 +43706,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43305
43706
|
if (inRange) {
|
|
43306
43707
|
item.data = barData;
|
|
43307
43708
|
item.index = barData.index;
|
|
43308
|
-
item.hit = this.isPointInBar(offset, barData);
|
|
43709
|
+
item.hit = this.isPointInBar(offset, barData); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시 (findHitItem 우선순위용).
|
|
43710
|
+
|
|
43711
|
+
item.directHit = item.hit;
|
|
43309
43712
|
return item;
|
|
43310
43713
|
}
|
|
43311
43714
|
|
|
@@ -46783,6 +47186,9 @@ var scale_logarithmic_LogarithmicScale = /*#__PURE__*/function (_Scale) {
|
|
|
46783
47186
|
}(scale_scale);
|
|
46784
47187
|
|
|
46785
47188
|
/* harmony default export */ var scale_logarithmic = (scale_logarithmic_LogarithmicScale);
|
|
47189
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.js
|
|
47190
|
+
var es_weak_map = __webpack_require__("10d1");
|
|
47191
|
+
|
|
46786
47192
|
// CONCATENATED MODULE: ./src/components/chart/scale/scale.step.js
|
|
46787
47193
|
|
|
46788
47194
|
|
|
@@ -46802,6 +47208,16 @@ var scale_logarithmic_LogarithmicScale = /*#__PURE__*/function (_Scale) {
|
|
|
46802
47208
|
|
|
46803
47209
|
|
|
46804
47210
|
|
|
47211
|
+
|
|
47212
|
+
|
|
47213
|
+
|
|
47214
|
+
|
|
47215
|
+
/**
|
|
47216
|
+
* scrollbar 사용 시 스크롤마다 labels 전체를 재순회하지 않도록 결과를 캐시
|
|
47217
|
+
*/
|
|
47218
|
+
|
|
47219
|
+
var stringMinMaxByLabels = new WeakMap();
|
|
47220
|
+
|
|
46805
47221
|
var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
|
|
46806
47222
|
_inherits(StepScale, _Scale);
|
|
46807
47223
|
|
|
@@ -46817,21 +47233,43 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
|
|
|
46817
47233
|
return _this;
|
|
46818
47234
|
}
|
|
46819
47235
|
/**
|
|
46820
|
-
*
|
|
46821
|
-
*
|
|
46822
|
-
*
|
|
46823
|
-
*
|
|
46824
|
-
*
|
|
46825
|
-
* @
|
|
47236
|
+
* labels 배열의 문자열 min/max를 반환
|
|
47237
|
+
* - alignToGridLine: 전달받은 minMax 그대로 사용
|
|
47238
|
+
* - scrollbar 사용: WeakMap 캐시를 통해 O(n) → O(1)로 단축
|
|
47239
|
+
* - 일반: 매번 getStringMinMax 계산
|
|
47240
|
+
* @param {object} minMax 축 min/max 정보 (alignToGridLine 시 사용)
|
|
47241
|
+
* @param {object} scrollbarOpt 스크롤바 옵션
|
|
47242
|
+
* @returns {{ min: string, max: string }}
|
|
46826
47243
|
*/
|
|
46827
47244
|
|
|
46828
47245
|
|
|
46829
47246
|
_createClass(StepScale, [{
|
|
47247
|
+
key: "getStepMinMax",
|
|
47248
|
+
value: function getStepMinMax(minMax, scrollbarOpt) {
|
|
47249
|
+
if (this.labelStyle.alignToGridLine) return minMax;
|
|
47250
|
+
if (!(scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use)) return helpers_util.getStringMinMax(this.labels);
|
|
47251
|
+
|
|
47252
|
+
if (!stringMinMaxByLabels.has(this.labels)) {
|
|
47253
|
+
stringMinMaxByLabels.set(this.labels, helpers_util.getStringMinMax(this.labels));
|
|
47254
|
+
}
|
|
47255
|
+
|
|
47256
|
+
return stringMinMaxByLabels.get(this.labels);
|
|
47257
|
+
}
|
|
47258
|
+
/**
|
|
47259
|
+
* Calculate min/max value, label and size information for step scale
|
|
47260
|
+
* @param {object} minMax min/max information (unused on step scale)
|
|
47261
|
+
* @param {object} scrollbarOpt scroll bar option
|
|
47262
|
+
* @param {object} chartRect chart size information
|
|
47263
|
+
*
|
|
47264
|
+
* @returns {object} min/max value and label
|
|
47265
|
+
*/
|
|
47266
|
+
|
|
47267
|
+
}, {
|
|
46830
47268
|
key: "calculateScaleRange",
|
|
46831
47269
|
value: function calculateScaleRange(minMax, scrollbarOpt, chartRect) {
|
|
46832
47270
|
var _this$labelStyle$maxW, _this$labelStyle;
|
|
46833
47271
|
|
|
46834
|
-
var stepMinMax = this.
|
|
47272
|
+
var stepMinMax = this.getStepMinMax(minMax, scrollbarOpt);
|
|
46835
47273
|
var maxValue = stepMinMax.max;
|
|
46836
47274
|
var minValue = stepMinMax.min;
|
|
46837
47275
|
var minIndex = 0;
|
|
@@ -50296,9 +50734,18 @@ var plugins_scrollbar_module = {
|
|
|
50296
50734
|
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
50735
|
|
|
50298
50736
|
if (isUpdateAxesRange) {
|
|
50299
|
-
var _newOpt$5
|
|
50737
|
+
var _newOpt$5;
|
|
50738
|
+
|
|
50739
|
+
var newOptRange = newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$5 = newOpt[0]) === null || _newOpt$5 === void 0 ? void 0 : _newOpt$5.range;
|
|
50740
|
+
var currentRange = this.scrollbar[dir].range;
|
|
50300
50741
|
|
|
50301
|
-
|
|
50742
|
+
if (!isResetPosition && newOptRange !== null && newOptRange !== void 0 && newOptRange.length && currentRange !== null && currentRange !== void 0 && currentRange.length) {
|
|
50743
|
+
// 리사이즈 등으로 range 크기만 변경된 경우, 현재 스크롤 위치(min)를 유지하고 크기만 조정
|
|
50744
|
+
var newSize = newOptRange[1] - newOptRange[0];
|
|
50745
|
+
this.scrollbar[dir].range = [currentRange[0], currentRange[0] + newSize];
|
|
50746
|
+
} else {
|
|
50747
|
+
this.scrollbar[dir].range = newOptRange !== null && newOptRange !== void 0 && newOptRange.length ? _toConsumableArray(newOptRange) : null;
|
|
50748
|
+
}
|
|
50302
50749
|
}
|
|
50303
50750
|
|
|
50304
50751
|
if (isResetPosition || updateData) {
|
|
@@ -51473,6 +51920,7 @@ function inRange_inRange(number, start, end) {
|
|
|
51473
51920
|
|
|
51474
51921
|
|
|
51475
51922
|
|
|
51923
|
+
|
|
51476
51924
|
|
|
51477
51925
|
|
|
51478
51926
|
var plugins_interaction_modules = {
|
|
@@ -51686,10 +52134,12 @@ var plugins_interaction_modules = {
|
|
|
51686
52134
|
}
|
|
51687
52135
|
|
|
51688
52136
|
var setSelectedItemInfo = function setSelectedItemInfo() {
|
|
51689
|
-
var
|
|
52137
|
+
var _hitInfo$hitId;
|
|
51690
52138
|
|
|
52139
|
+
var hitInfo = _this.findHitItem(offset, true); // 실제 클릭된 아이템의 정보 추출 (hitId가 있으면 해당 아이템, 없으면 첫 번째 아이템)
|
|
51691
52140
|
|
|
51692
|
-
|
|
52141
|
+
|
|
52142
|
+
var hitItemId = (_hitInfo$hitId = hitInfo.hitId) !== null && _hitInfo$hitId !== void 0 ? _hitInfo$hitId : Object.keys(hitInfo.items)[0];
|
|
51693
52143
|
var hitItem = hitInfo.items[hitItemId];
|
|
51694
52144
|
|
|
51695
52145
|
if (hitItem) {
|
|
@@ -51704,9 +52154,11 @@ var plugins_interaction_modules = {
|
|
|
51704
52154
|
};
|
|
51705
52155
|
|
|
51706
52156
|
var setSelectedLabelInfo = function setSelectedLabelInfo(targetAxis) {
|
|
51707
|
-
var
|
|
52157
|
+
var _hitInfo$hitId2;
|
|
52158
|
+
|
|
52159
|
+
var hitInfo = _this.findHitItem(offset, true);
|
|
51708
52160
|
|
|
51709
|
-
var hitItemId = hitInfo.hitId
|
|
52161
|
+
var hitItemId = (_hitInfo$hitId2 = hitInfo.hitId) !== null && _hitInfo$hitId2 !== void 0 ? _hitInfo$hitId2 : Object.keys(hitInfo.items)[0];
|
|
51710
52162
|
var hitItem = hitInfo.items[hitItemId];
|
|
51711
52163
|
|
|
51712
52164
|
var _this$getLabelInfoByP = _this.getLabelInfoByPosition(offset, targetAxis),
|
|
@@ -51729,9 +52181,11 @@ var plugins_interaction_modules = {
|
|
|
51729
52181
|
};
|
|
51730
52182
|
|
|
51731
52183
|
var setSelectedSeriesInfo = function setSelectedSeriesInfo() {
|
|
51732
|
-
var
|
|
52184
|
+
var _hitInfo$hitId3;
|
|
51733
52185
|
|
|
51734
|
-
var
|
|
52186
|
+
var hitInfo = _this.findHitItem(offset, true);
|
|
52187
|
+
|
|
52188
|
+
var hitItemId = (_hitInfo$hitId3 = hitInfo.hitId) !== null && _hitInfo$hitId3 !== void 0 ? _hitInfo$hitId3 : Object.keys(hitInfo.items)[0];
|
|
51735
52189
|
var hitItem = hitInfo.items[hitItemId];
|
|
51736
52190
|
|
|
51737
52191
|
if (hitItemId !== null) {
|
|
@@ -51814,19 +52268,19 @@ var plugins_interaction_modules = {
|
|
|
51814
52268
|
var useSelectSeries = (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.use) && (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.useClick);
|
|
51815
52269
|
|
|
51816
52270
|
var setSelectedItemInfo = function setSelectedItemInfo() {
|
|
51817
|
-
var hitInfo = _this.
|
|
52271
|
+
var hitInfo = _this.getHitItemByPosition(offset, false, undefined, false, true);
|
|
51818
52272
|
|
|
51819
52273
|
args.label = hitInfo.label;
|
|
51820
52274
|
args.value = hitInfo.value;
|
|
51821
52275
|
args.seriesId = hitInfo.sId;
|
|
51822
|
-
args.dataIndex = hitInfo.
|
|
52276
|
+
args.dataIndex = hitInfo.dataIndex;
|
|
51823
52277
|
args.acc = hitInfo.acc;
|
|
51824
52278
|
|
|
51825
52279
|
if (hitInfo !== null && hitInfo !== void 0 && hitInfo.sId) {
|
|
51826
52280
|
args.selected = {
|
|
51827
52281
|
eventTarget: 'item',
|
|
51828
52282
|
seriesId: _this.isDeselectItem(hitInfo) ? null : hitInfo.sId,
|
|
51829
|
-
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.
|
|
52283
|
+
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.dataIndex
|
|
51830
52284
|
};
|
|
51831
52285
|
}
|
|
51832
52286
|
};
|
|
@@ -51854,9 +52308,11 @@ var plugins_interaction_modules = {
|
|
|
51854
52308
|
};
|
|
51855
52309
|
|
|
51856
52310
|
var setSelectedSeriesInfo = function setSelectedSeriesInfo() {
|
|
51857
|
-
var
|
|
52311
|
+
var _hitInfo$hitId4;
|
|
52312
|
+
|
|
52313
|
+
var hitInfo = _this.findHitItem(offset, true);
|
|
51858
52314
|
|
|
51859
|
-
var hitItemId = hitInfo.hitId
|
|
52315
|
+
var hitItemId = (_hitInfo$hitId4 = hitInfo.hitId) !== null && _hitInfo$hitId4 !== void 0 ? _hitInfo$hitId4 : Object.keys(hitInfo.items)[0];
|
|
51860
52316
|
var hitItem = hitInfo.items[hitItemId];
|
|
51861
52317
|
|
|
51862
52318
|
if (hitItemId !== null) {
|
|
@@ -52490,19 +52946,30 @@ var plugins_interaction_modules = {
|
|
|
52490
52946
|
findHitItem: function findHitItem(offset) {
|
|
52491
52947
|
var _this4 = this;
|
|
52492
52948
|
|
|
52949
|
+
var disableNullLabelSnap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
52493
52950
|
var sIds = Object.keys(this.seriesList);
|
|
52494
52951
|
var items = {};
|
|
52495
52952
|
var isHorizontal = !!this.options.horizontal;
|
|
52496
52953
|
var ctx = this.tooltipCtx;
|
|
52954
|
+
|
|
52955
|
+
var _offset = _slicedToArray(offset, 2),
|
|
52956
|
+
cx = _offset[0],
|
|
52957
|
+
cy = _offset[1];
|
|
52958
|
+
|
|
52497
52959
|
var hitId = null;
|
|
52498
52960
|
var maxs = '';
|
|
52499
52961
|
var maxsw = 0;
|
|
52500
52962
|
var maxv = '';
|
|
52501
52963
|
var maxg = null;
|
|
52502
52964
|
var maxSID = null;
|
|
52503
|
-
var minDistance = Infinity; //
|
|
52965
|
+
var minDistance = Infinity; // directHit 가 하나라도 있으면 일반 hit 는 hitId 후보에서 배제.
|
|
52966
|
+
|
|
52967
|
+
var hasDirectHit = false; // hit 이 없을 때 거리 기반으로 선택할 fallback (기존 "첫 시리즈 고정" 대체).
|
|
52968
|
+
|
|
52969
|
+
var fallbackId = null;
|
|
52970
|
+
var fallbackDistance = Infinity; // 1. 먼저 공통으로 사용할 데이터 인덱스 결정
|
|
52504
52971
|
|
|
52505
|
-
var targetDataIndex = this.findClosestDataIndex(offset, sIds);
|
|
52972
|
+
var targetDataIndex = this.findClosestDataIndex(offset, sIds, disableNullLabelSnap);
|
|
52506
52973
|
|
|
52507
52974
|
if (targetDataIndex === -1 && !this.isNotUseIndicator()) {
|
|
52508
52975
|
return {
|
|
@@ -52576,24 +53043,79 @@ var plugins_interaction_modules = {
|
|
|
52576
53043
|
if (maxg === null || maxg <= gdata) {
|
|
52577
53044
|
maxg = gdata;
|
|
52578
53045
|
maxSID = sId;
|
|
52579
|
-
} //
|
|
53046
|
+
} // hit 기반 선택: directHit 최우선, 그 외 일반 hit 는 directHit 없을 때만.
|
|
52580
53047
|
|
|
52581
53048
|
|
|
52582
53049
|
if (item.hit && item.data.xp !== undefined && item.data.yp !== undefined) {
|
|
52583
53050
|
var distance = Math.pow(item.data.xp - offset[0], 2) + Math.pow(item.data.yp - offset[1], 2);
|
|
52584
53051
|
|
|
52585
|
-
if (
|
|
53052
|
+
if (item.directHit) {
|
|
53053
|
+
if (!hasDirectHit || distance < minDistance) {
|
|
53054
|
+
minDistance = distance;
|
|
53055
|
+
hitId = sId;
|
|
53056
|
+
}
|
|
53057
|
+
|
|
53058
|
+
hasDirectHit = true;
|
|
53059
|
+
} else if (!hasDirectHit && distance < minDistance) {
|
|
52586
53060
|
minDistance = distance;
|
|
52587
53061
|
hitId = sId;
|
|
52588
53062
|
}
|
|
53063
|
+
} // fallback 후보: hit 여부와 무관하게 거리가 가장 가까운 시리즈.
|
|
53064
|
+
// 참고: 이 블록은 outer `if (gdata !== null && gdata !== undefined)` 안에 있어서
|
|
53065
|
+
// 값이 null 인 시리즈는 items 수집 단계에서 이미 걸러진 상태. 별도 null 값 가드 불필요.
|
|
53066
|
+
|
|
53067
|
+
|
|
53068
|
+
if (item.data.xp !== undefined && item.data.yp !== undefined && item.data.xp !== null && item.data.yp !== null) {
|
|
53069
|
+
var fbDistance = helpers_util.calcBoxDistance(item.data, cx, cy);
|
|
53070
|
+
|
|
53071
|
+
if (fbDistance < fallbackDistance) {
|
|
53072
|
+
fallbackDistance = fbDistance;
|
|
53073
|
+
fallbackId = sId;
|
|
53074
|
+
}
|
|
52589
53075
|
}
|
|
52590
53076
|
}
|
|
52591
53077
|
}
|
|
52592
53078
|
}
|
|
53079
|
+
} // hit 없으면 거리 기반 fallback, 그것도 없으면 items 첫 키(항상 비어있을 가능성 방어).
|
|
53080
|
+
|
|
53081
|
+
|
|
53082
|
+
if (hitId === null) {
|
|
53083
|
+
hitId = fallbackId !== null ? fallbackId : Object.keys(items)[0];
|
|
53084
|
+
}
|
|
53085
|
+
|
|
53086
|
+
var maxHighlight = maxg !== null ? [maxSID, maxg] : null; // all-null 라벨인 경우 synthetic items[''] 로 label/index 만 채워 전달.
|
|
53087
|
+
|
|
53088
|
+
if (disableNullLabelSnap && Object.keys(items).length === 0 && targetDataIndex !== -1) {
|
|
53089
|
+
var _this$seriesList$refS;
|
|
53090
|
+
|
|
53091
|
+
var refSeriesID = sIds.find(function (sId) {
|
|
53092
|
+
var _s$data;
|
|
53093
|
+
|
|
53094
|
+
var s = _this4.seriesList[sId];
|
|
53095
|
+
return (s === null || s === void 0 ? void 0 : s.show) && (s === null || s === void 0 ? void 0 : (_s$data = s.data) === null || _s$data === void 0 ? void 0 : _s$data.length) > 0;
|
|
53096
|
+
});
|
|
53097
|
+
var refPoint = refSeriesID ? (_this$seriesList$refS = this.seriesList[refSeriesID].data) === null || _this$seriesList$refS === void 0 ? void 0 : _this$seriesList$refS[targetDataIndex] : null;
|
|
53098
|
+
|
|
53099
|
+
if (refPoint) {
|
|
53100
|
+
items[''] = {
|
|
53101
|
+
id: '',
|
|
53102
|
+
name: '',
|
|
53103
|
+
label: isHorizontal ? refPoint.y : refPoint.x,
|
|
53104
|
+
index: targetDataIndex,
|
|
53105
|
+
axis: {
|
|
53106
|
+
x: 0,
|
|
53107
|
+
y: 0
|
|
53108
|
+
},
|
|
53109
|
+
data: {
|
|
53110
|
+
o: undefined,
|
|
53111
|
+
x: refPoint.x,
|
|
53112
|
+
y: refPoint.y
|
|
53113
|
+
}
|
|
53114
|
+
};
|
|
53115
|
+
hitId = '';
|
|
53116
|
+
}
|
|
52593
53117
|
}
|
|
52594
53118
|
|
|
52595
|
-
hitId = hitId === null ? Object.keys(items)[0] : hitId;
|
|
52596
|
-
var maxHighlight = maxg !== null ? [maxSID, maxg] : null;
|
|
52597
53119
|
return {
|
|
52598
53120
|
items: items,
|
|
52599
53121
|
hitId: hitId,
|
|
@@ -52612,9 +53134,11 @@ var plugins_interaction_modules = {
|
|
|
52612
53134
|
var _this5 = this,
|
|
52613
53135
|
_this$seriesList$refe;
|
|
52614
53136
|
|
|
52615
|
-
var
|
|
52616
|
-
|
|
52617
|
-
|
|
53137
|
+
var disableNullLabelSnap = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
53138
|
+
|
|
53139
|
+
var _offset2 = _slicedToArray(offset, 2),
|
|
53140
|
+
xp = _offset2[0],
|
|
53141
|
+
yp = _offset2[1];
|
|
52618
53142
|
|
|
52619
53143
|
var isHorizontal = !!this.options.horizontal;
|
|
52620
53144
|
var mousePos = isHorizontal ? yp : xp; // 데이터 있는 시리즈를 기준으로 라벨 위치 확인
|
|
@@ -52667,11 +53191,10 @@ var plugins_interaction_modules = {
|
|
|
52667
53191
|
}
|
|
52668
53192
|
|
|
52669
53193
|
var closestDistance = Infinity;
|
|
52670
|
-
var closestIndex = -1; // 각 라벨에서 가장 가까운 것 찾기
|
|
53194
|
+
var closestIndex = -1; // 각 라벨에서 가장 가까운 것 찾기 (disableNullLabelSnap=true 면 all-null 라벨도 후보)
|
|
52671
53195
|
|
|
52672
53196
|
var _loop = function _loop(_i) {
|
|
52673
|
-
|
|
52674
|
-
var hasValidData = sIds.some(function (sId) {
|
|
53197
|
+
var hasValidData = disableNullLabelSnap || sIds.some(function (sId) {
|
|
52675
53198
|
var _series$data2, _series$data2$_i, _series$data3, _series$data3$_i;
|
|
52676
53199
|
|
|
52677
53200
|
var series = _this5.seriesList[sId];
|
|
@@ -53278,7 +53801,7 @@ var plugins_interaction_modules = {
|
|
|
53278
53801
|
isDeselectItem: function isDeselectItem(hitInfo) {
|
|
53279
53802
|
var _this$defaultSelectIt, _this$defaultSelectIt2;
|
|
53280
53803
|
|
|
53281
|
-
return this.options.selectItem.useDeselectItem && (hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.
|
|
53804
|
+
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);
|
|
53282
53805
|
},
|
|
53283
53806
|
|
|
53284
53807
|
/**
|
|
@@ -53287,9 +53810,9 @@ var plugins_interaction_modules = {
|
|
|
53287
53810
|
* @returns {string}
|
|
53288
53811
|
*/
|
|
53289
53812
|
getCurMouseLocation: function getCurMouseLocation(offset) {
|
|
53290
|
-
var
|
|
53291
|
-
offsetX =
|
|
53292
|
-
offsetY =
|
|
53813
|
+
var _offset3 = _slicedToArray(offset, 2),
|
|
53814
|
+
offsetX = _offset3[0],
|
|
53815
|
+
offsetY = _offset3[1];
|
|
53293
53816
|
|
|
53294
53817
|
var aPos = {
|
|
53295
53818
|
x1: this.chartRect.x1 + this.labelOffset.left,
|
|
@@ -54952,7 +55475,7 @@ var element_tip_modules = {
|
|
|
54952
55475
|
|
|
54953
55476
|
if (tipType === 'sel') {
|
|
54954
55477
|
if (hitInfo && hitInfo.label !== null) {
|
|
54955
|
-
lastTip.pos = type === 'bar' ? hitInfo.
|
|
55478
|
+
lastTip.pos = type === 'bar' ? hitInfo.dataIndex : hitInfo.label;
|
|
54956
55479
|
ldata = lastTip.pos;
|
|
54957
55480
|
} else if (lastTip.pos !== null) {
|
|
54958
55481
|
ldata = lastTip.pos;
|
|
@@ -56051,10 +56574,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56051
56574
|
var lastHitInfo = this.lastHitInfo;
|
|
56052
56575
|
var defaultSelectInfo = this.defaultSelectItemInfo;
|
|
56053
56576
|
|
|
56054
|
-
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.
|
|
56577
|
+
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.dataIndex || (lastHitInfo === null || lastHitInfo === void 0 ? void 0 : lastHitInfo.dataIndex) === 0) {
|
|
56055
56578
|
_selectInfo = {
|
|
56056
56579
|
seriesID: lastHitInfo.sId,
|
|
56057
|
-
dataIndex: lastHitInfo.
|
|
56580
|
+
dataIndex: lastHitInfo.dataIndex
|
|
56058
56581
|
};
|
|
56059
56582
|
} else if (defaultSelectInfo !== null && defaultSelectInfo !== void 0 && defaultSelectInfo.dataIndex || (defaultSelectInfo === null || defaultSelectInfo === void 0 ? void 0 : defaultSelectInfo.dataIndex) === 0) {
|
|
56060
56583
|
_selectInfo = _objectSpread2({}, defaultSelectInfo);
|