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.umd.js
CHANGED
|
@@ -371,6 +371,81 @@ if(content.locals) module.exports = content.locals;
|
|
|
371
371
|
var add = __webpack_require__("499e").default
|
|
372
372
|
var update = add("5a9ac64a", content, true, {"sourceMap":false,"shadowMode":false});
|
|
373
373
|
|
|
374
|
+
/***/ }),
|
|
375
|
+
|
|
376
|
+
/***/ "10d1":
|
|
377
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
378
|
+
|
|
379
|
+
"use strict";
|
|
380
|
+
|
|
381
|
+
var global = __webpack_require__("da84");
|
|
382
|
+
var redefineAll = __webpack_require__("e2cc");
|
|
383
|
+
var InternalMetadataModule = __webpack_require__("f183");
|
|
384
|
+
var collection = __webpack_require__("6d61");
|
|
385
|
+
var collectionWeak = __webpack_require__("acac");
|
|
386
|
+
var isObject = __webpack_require__("861d");
|
|
387
|
+
var enforceIternalState = __webpack_require__("69f3").enforce;
|
|
388
|
+
var NATIVE_WEAK_MAP = __webpack_require__("7f9a");
|
|
389
|
+
|
|
390
|
+
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
|
|
391
|
+
var isExtensible = Object.isExtensible;
|
|
392
|
+
var InternalWeakMap;
|
|
393
|
+
|
|
394
|
+
var wrapper = function (init) {
|
|
395
|
+
return function WeakMap() {
|
|
396
|
+
return init(this, arguments.length ? arguments[0] : undefined);
|
|
397
|
+
};
|
|
398
|
+
};
|
|
399
|
+
|
|
400
|
+
// `WeakMap` constructor
|
|
401
|
+
// https://tc39.github.io/ecma262/#sec-weakmap-constructor
|
|
402
|
+
var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);
|
|
403
|
+
|
|
404
|
+
// IE11 WeakMap frozen keys fix
|
|
405
|
+
// We can't use feature detection because it crash some old IE builds
|
|
406
|
+
// https://github.com/zloirock/core-js/issues/485
|
|
407
|
+
if (NATIVE_WEAK_MAP && IS_IE11) {
|
|
408
|
+
InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
|
|
409
|
+
InternalMetadataModule.REQUIRED = true;
|
|
410
|
+
var WeakMapPrototype = $WeakMap.prototype;
|
|
411
|
+
var nativeDelete = WeakMapPrototype['delete'];
|
|
412
|
+
var nativeHas = WeakMapPrototype.has;
|
|
413
|
+
var nativeGet = WeakMapPrototype.get;
|
|
414
|
+
var nativeSet = WeakMapPrototype.set;
|
|
415
|
+
redefineAll(WeakMapPrototype, {
|
|
416
|
+
'delete': function (key) {
|
|
417
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
418
|
+
var state = enforceIternalState(this);
|
|
419
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
420
|
+
return nativeDelete.call(this, key) || state.frozen['delete'](key);
|
|
421
|
+
} return nativeDelete.call(this, key);
|
|
422
|
+
},
|
|
423
|
+
has: function has(key) {
|
|
424
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
425
|
+
var state = enforceIternalState(this);
|
|
426
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
427
|
+
return nativeHas.call(this, key) || state.frozen.has(key);
|
|
428
|
+
} return nativeHas.call(this, key);
|
|
429
|
+
},
|
|
430
|
+
get: function get(key) {
|
|
431
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
432
|
+
var state = enforceIternalState(this);
|
|
433
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
434
|
+
return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
|
|
435
|
+
} return nativeGet.call(this, key);
|
|
436
|
+
},
|
|
437
|
+
set: function set(key, value) {
|
|
438
|
+
if (isObject(key) && !isExtensible(key)) {
|
|
439
|
+
var state = enforceIternalState(this);
|
|
440
|
+
if (!state.frozen) state.frozen = new InternalWeakMap();
|
|
441
|
+
nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
|
|
442
|
+
} else nativeSet.call(this, key, value);
|
|
443
|
+
return this;
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
|
|
374
449
|
/***/ }),
|
|
375
450
|
|
|
376
451
|
/***/ "1148":
|
|
@@ -11244,7 +11319,7 @@ $({ target: 'Number', stat: true }, {
|
|
|
11244
11319
|
/***/ "9224":
|
|
11245
11320
|
/***/ (function(module) {
|
|
11246
11321
|
|
|
11247
|
-
module.exports = JSON.parse("{\"a\":\"3.4.
|
|
11322
|
+
module.exports = JSON.parse("{\"a\":\"3.4.157\"}");
|
|
11248
11323
|
|
|
11249
11324
|
/***/ }),
|
|
11250
11325
|
|
|
@@ -13085,6 +13160,135 @@ $({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
|
|
|
13085
13160
|
});
|
|
13086
13161
|
|
|
13087
13162
|
|
|
13163
|
+
/***/ }),
|
|
13164
|
+
|
|
13165
|
+
/***/ "acac":
|
|
13166
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
13167
|
+
|
|
13168
|
+
"use strict";
|
|
13169
|
+
|
|
13170
|
+
var redefineAll = __webpack_require__("e2cc");
|
|
13171
|
+
var getWeakData = __webpack_require__("f183").getWeakData;
|
|
13172
|
+
var anObject = __webpack_require__("825a");
|
|
13173
|
+
var isObject = __webpack_require__("861d");
|
|
13174
|
+
var anInstance = __webpack_require__("19aa");
|
|
13175
|
+
var iterate = __webpack_require__("2266");
|
|
13176
|
+
var ArrayIterationModule = __webpack_require__("b727");
|
|
13177
|
+
var $has = __webpack_require__("5135");
|
|
13178
|
+
var InternalStateModule = __webpack_require__("69f3");
|
|
13179
|
+
|
|
13180
|
+
var setInternalState = InternalStateModule.set;
|
|
13181
|
+
var internalStateGetterFor = InternalStateModule.getterFor;
|
|
13182
|
+
var find = ArrayIterationModule.find;
|
|
13183
|
+
var findIndex = ArrayIterationModule.findIndex;
|
|
13184
|
+
var id = 0;
|
|
13185
|
+
|
|
13186
|
+
// fallback for uncaught frozen keys
|
|
13187
|
+
var uncaughtFrozenStore = function (store) {
|
|
13188
|
+
return store.frozen || (store.frozen = new UncaughtFrozenStore());
|
|
13189
|
+
};
|
|
13190
|
+
|
|
13191
|
+
var UncaughtFrozenStore = function () {
|
|
13192
|
+
this.entries = [];
|
|
13193
|
+
};
|
|
13194
|
+
|
|
13195
|
+
var findUncaughtFrozen = function (store, key) {
|
|
13196
|
+
return find(store.entries, function (it) {
|
|
13197
|
+
return it[0] === key;
|
|
13198
|
+
});
|
|
13199
|
+
};
|
|
13200
|
+
|
|
13201
|
+
UncaughtFrozenStore.prototype = {
|
|
13202
|
+
get: function (key) {
|
|
13203
|
+
var entry = findUncaughtFrozen(this, key);
|
|
13204
|
+
if (entry) return entry[1];
|
|
13205
|
+
},
|
|
13206
|
+
has: function (key) {
|
|
13207
|
+
return !!findUncaughtFrozen(this, key);
|
|
13208
|
+
},
|
|
13209
|
+
set: function (key, value) {
|
|
13210
|
+
var entry = findUncaughtFrozen(this, key);
|
|
13211
|
+
if (entry) entry[1] = value;
|
|
13212
|
+
else this.entries.push([key, value]);
|
|
13213
|
+
},
|
|
13214
|
+
'delete': function (key) {
|
|
13215
|
+
var index = findIndex(this.entries, function (it) {
|
|
13216
|
+
return it[0] === key;
|
|
13217
|
+
});
|
|
13218
|
+
if (~index) this.entries.splice(index, 1);
|
|
13219
|
+
return !!~index;
|
|
13220
|
+
}
|
|
13221
|
+
};
|
|
13222
|
+
|
|
13223
|
+
module.exports = {
|
|
13224
|
+
getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
|
|
13225
|
+
var C = wrapper(function (that, iterable) {
|
|
13226
|
+
anInstance(that, C, CONSTRUCTOR_NAME);
|
|
13227
|
+
setInternalState(that, {
|
|
13228
|
+
type: CONSTRUCTOR_NAME,
|
|
13229
|
+
id: id++,
|
|
13230
|
+
frozen: undefined
|
|
13231
|
+
});
|
|
13232
|
+
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
|
|
13233
|
+
});
|
|
13234
|
+
|
|
13235
|
+
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
|
|
13236
|
+
|
|
13237
|
+
var define = function (that, key, value) {
|
|
13238
|
+
var state = getInternalState(that);
|
|
13239
|
+
var data = getWeakData(anObject(key), true);
|
|
13240
|
+
if (data === true) uncaughtFrozenStore(state).set(key, value);
|
|
13241
|
+
else data[state.id] = value;
|
|
13242
|
+
return that;
|
|
13243
|
+
};
|
|
13244
|
+
|
|
13245
|
+
redefineAll(C.prototype, {
|
|
13246
|
+
// 23.3.3.2 WeakMap.prototype.delete(key)
|
|
13247
|
+
// 23.4.3.3 WeakSet.prototype.delete(value)
|
|
13248
|
+
'delete': function (key) {
|
|
13249
|
+
var state = getInternalState(this);
|
|
13250
|
+
if (!isObject(key)) return false;
|
|
13251
|
+
var data = getWeakData(key);
|
|
13252
|
+
if (data === true) return uncaughtFrozenStore(state)['delete'](key);
|
|
13253
|
+
return data && $has(data, state.id) && delete data[state.id];
|
|
13254
|
+
},
|
|
13255
|
+
// 23.3.3.4 WeakMap.prototype.has(key)
|
|
13256
|
+
// 23.4.3.4 WeakSet.prototype.has(value)
|
|
13257
|
+
has: function has(key) {
|
|
13258
|
+
var state = getInternalState(this);
|
|
13259
|
+
if (!isObject(key)) return false;
|
|
13260
|
+
var data = getWeakData(key);
|
|
13261
|
+
if (data === true) return uncaughtFrozenStore(state).has(key);
|
|
13262
|
+
return data && $has(data, state.id);
|
|
13263
|
+
}
|
|
13264
|
+
});
|
|
13265
|
+
|
|
13266
|
+
redefineAll(C.prototype, IS_MAP ? {
|
|
13267
|
+
// 23.3.3.3 WeakMap.prototype.get(key)
|
|
13268
|
+
get: function get(key) {
|
|
13269
|
+
var state = getInternalState(this);
|
|
13270
|
+
if (isObject(key)) {
|
|
13271
|
+
var data = getWeakData(key);
|
|
13272
|
+
if (data === true) return uncaughtFrozenStore(state).get(key);
|
|
13273
|
+
return data ? data[state.id] : undefined;
|
|
13274
|
+
}
|
|
13275
|
+
},
|
|
13276
|
+
// 23.3.3.5 WeakMap.prototype.set(key, value)
|
|
13277
|
+
set: function set(key, value) {
|
|
13278
|
+
return define(this, key, value);
|
|
13279
|
+
}
|
|
13280
|
+
} : {
|
|
13281
|
+
// 23.4.3.1 WeakSet.prototype.add(value)
|
|
13282
|
+
add: function add(value) {
|
|
13283
|
+
return define(this, value, true);
|
|
13284
|
+
}
|
|
13285
|
+
});
|
|
13286
|
+
|
|
13287
|
+
return C;
|
|
13288
|
+
}
|
|
13289
|
+
};
|
|
13290
|
+
|
|
13291
|
+
|
|
13088
13292
|
/***/ }),
|
|
13089
13293
|
|
|
13090
13294
|
/***/ "ad6d":
|
|
@@ -22283,9 +22487,9 @@ var _Set_Set = _getNative(_root["a" /* default */], 'Set');
|
|
|
22283
22487
|
|
|
22284
22488
|
|
|
22285
22489
|
/* Built-in method references that are verified to be native. */
|
|
22286
|
-
var
|
|
22490
|
+
var _WeakMap_WeakMap = _getNative(_root["a" /* default */], 'WeakMap');
|
|
22287
22491
|
|
|
22288
|
-
/* harmony default export */ var _WeakMap = (
|
|
22492
|
+
/* harmony default export */ var _WeakMap = (_WeakMap_WeakMap);
|
|
22289
22493
|
|
|
22290
22494
|
// CONCATENATED MODULE: ./node_modules/lodash-es/_getTag.js
|
|
22291
22495
|
|
|
@@ -38946,6 +39150,30 @@ var textMeasureCtx = textMeasureCanvas.getContext('2d');
|
|
|
38946
39150
|
}
|
|
38947
39151
|
|
|
38948
39152
|
return "".concat(color, "80");
|
|
39153
|
+
},
|
|
39154
|
+
|
|
39155
|
+
/**
|
|
39156
|
+
* 클릭 좌표(cx, cy)에서 데이터 포인트까지의 거리²를 반환한다.
|
|
39157
|
+
* w/h 가 있으면 박스 외벽까지의 거리(내부면 0), 없으면 포인트까지의 유클리드 거리².
|
|
39158
|
+
* @param {object} data - 데이터 포인트 (xp, yp, w?, h?)
|
|
39159
|
+
* @param {number} cx - 클릭 x 좌표
|
|
39160
|
+
* @param {number} cy - 클릭 y 좌표
|
|
39161
|
+
* @returns {number}
|
|
39162
|
+
*/
|
|
39163
|
+
calcBoxDistance: function calcBoxDistance(data, cx, cy) {
|
|
39164
|
+
if (data.w !== null && data.w !== undefined && data.h !== null && data.h !== undefined) {
|
|
39165
|
+
var sx = data.xp;
|
|
39166
|
+
var sy = data.yp;
|
|
39167
|
+
var xMin = Math.min(sx, sx + data.w);
|
|
39168
|
+
var xMax = Math.max(sx, sx + data.w);
|
|
39169
|
+
var yMin = Math.min(sy, sy + data.h);
|
|
39170
|
+
var yMax = Math.max(sy, sy + data.h);
|
|
39171
|
+
var dx = Math.max(0, xMin - cx, cx - xMax);
|
|
39172
|
+
var dy = Math.max(0, yMin - cy, cy - yMax);
|
|
39173
|
+
return dx * dx + dy * dy;
|
|
39174
|
+
}
|
|
39175
|
+
|
|
39176
|
+
return Math.pow(data.xp - cx, 2) + Math.pow(data.yp - cy, 2);
|
|
38949
39177
|
}
|
|
38950
39178
|
});
|
|
38951
39179
|
// CONCATENATED MODULE: ./src/components/chart/model/model.store.js
|
|
@@ -38972,6 +39200,8 @@ var textMeasureCtx = textMeasureCanvas.getContext('2d');
|
|
|
38972
39200
|
|
|
38973
39201
|
|
|
38974
39202
|
|
|
39203
|
+
|
|
39204
|
+
|
|
38975
39205
|
|
|
38976
39206
|
|
|
38977
39207
|
|
|
@@ -39911,7 +40141,7 @@ var modules = {
|
|
|
39911
40141
|
return null;
|
|
39912
40142
|
}
|
|
39913
40143
|
|
|
39914
|
-
itemPosition = [this.
|
|
40144
|
+
itemPosition = [this.getHitItemByPosition([dataInfo.xp, dataInfo.yp], useApproximate, dataIndex, true)];
|
|
39915
40145
|
} else {
|
|
39916
40146
|
var seriesList = Object.entries(this.seriesList);
|
|
39917
40147
|
var firShowSeriesID;
|
|
@@ -39936,7 +40166,7 @@ var modules = {
|
|
|
39936
40166
|
return null;
|
|
39937
40167
|
}
|
|
39938
40168
|
|
|
39939
|
-
return _this7.
|
|
40169
|
+
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
40170
|
});
|
|
39941
40171
|
}
|
|
39942
40172
|
|
|
@@ -39960,30 +40190,110 @@ var modules = {
|
|
|
39960
40190
|
},
|
|
39961
40191
|
|
|
39962
40192
|
/**
|
|
39963
|
-
* Find
|
|
40193
|
+
* Find the hit item at the given position (x, y).
|
|
40194
|
+
*
|
|
40195
|
+
* 선택 우선순위:
|
|
40196
|
+
* 1. directHit (bar 박스 내부 클릭) — 가장 가까운 것
|
|
40197
|
+
* 2. hit (line 포인트 근접 등) — 가장 가까운 것
|
|
40198
|
+
* 3. hit 없으면 클릭 좌표에 가장 가까운 시리즈로 fallback (distance 기반)
|
|
40199
|
+
*
|
|
39964
40200
|
* @param {array} offset position x and y
|
|
39965
40201
|
* @param {boolean} useApproximate if it's true. it'll look for closed item on mouse position
|
|
39966
40202
|
* @param {number} dataIndex selected data index
|
|
39967
40203
|
* @param {boolean} useSelectLabelOrItem used to display select label/item at tooltip location
|
|
40204
|
+
* @param {boolean} disableNullLabelSnap true 이면 all-null 라벨도 그대로 반환 (click/dblclick 용)
|
|
39968
40205
|
*
|
|
39969
|
-
* @returns {object}
|
|
40206
|
+
* @returns {object} hit item information
|
|
39970
40207
|
*/
|
|
39971
|
-
|
|
39972
|
-
var
|
|
40208
|
+
getHitItemByPosition: function getHitItemByPosition(offset) {
|
|
40209
|
+
var _this8 = this,
|
|
40210
|
+
_ref4;
|
|
39973
40211
|
|
|
39974
40212
|
var useApproximate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
39975
40213
|
var dataIndex = arguments.length > 2 ? arguments[2] : undefined;
|
|
39976
40214
|
var useSelectLabelOrItem = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
40215
|
+
var disableNullLabelSnap = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
39977
40216
|
var seriesIDs = Object.keys(this.seriesList);
|
|
39978
40217
|
var isHorizontal = !!this.options.horizontal;
|
|
39979
|
-
|
|
39980
|
-
var
|
|
39981
|
-
|
|
39982
|
-
|
|
39983
|
-
|
|
40218
|
+
|
|
40219
|
+
var _offset = _slicedToArray(offset, 2),
|
|
40220
|
+
cx = _offset[0],
|
|
40221
|
+
cy = _offset[1]; // dataIndex 미지정 시 클릭 좌표에 가장 가까운 valid 라벨 인덱스 결정.
|
|
40222
|
+
// disableNullLabelSnap=true 이면 all-null 라벨도 후보로 인정.
|
|
40223
|
+
|
|
40224
|
+
|
|
40225
|
+
var resolvedDataIndex = dataIndex;
|
|
40226
|
+
|
|
40227
|
+
if (resolvedDataIndex === undefined && !useApproximate) {
|
|
40228
|
+
var refSeriesID = seriesIDs.find(function (sId) {
|
|
40229
|
+
var _s$data;
|
|
40230
|
+
|
|
40231
|
+
var s = _this8.seriesList[sId];
|
|
40232
|
+
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;
|
|
40233
|
+
});
|
|
40234
|
+
|
|
40235
|
+
if (refSeriesID) {
|
|
40236
|
+
var refData = this.seriesList[refSeriesID].data;
|
|
40237
|
+
var clickPos = isHorizontal ? offset[1] : offset[0];
|
|
40238
|
+
var nearestDistance = Infinity;
|
|
40239
|
+
var nearestIndex = -1;
|
|
40240
|
+
|
|
40241
|
+
var _loop = function _loop(i) {
|
|
40242
|
+
var hasValidData = disableNullLabelSnap || seriesIDs.some(function (sId) {
|
|
40243
|
+
var _s$data2, _s$data2$i, _s$data3, _s$data3$i;
|
|
40244
|
+
|
|
40245
|
+
var s = _this8.seriesList[sId];
|
|
40246
|
+
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;
|
|
40247
|
+
});
|
|
40248
|
+
var p = refData[i];
|
|
40249
|
+
|
|
40250
|
+
if (hasValidData && p) {
|
|
40251
|
+
var labelPos;
|
|
40252
|
+
|
|
40253
|
+
if (isHorizontal) {
|
|
40254
|
+
labelPos = p.h ? p.yp + p.h / 2 : p.yp;
|
|
40255
|
+
} else {
|
|
40256
|
+
labelPos = p.w ? p.xp + p.w / 2 : p.xp;
|
|
40257
|
+
}
|
|
40258
|
+
|
|
40259
|
+
if (labelPos !== null && labelPos !== undefined) {
|
|
40260
|
+
var d = Math.abs(clickPos - labelPos);
|
|
40261
|
+
|
|
40262
|
+
if (d < nearestDistance) {
|
|
40263
|
+
nearestDistance = d;
|
|
40264
|
+
nearestIndex = i;
|
|
40265
|
+
}
|
|
40266
|
+
}
|
|
40267
|
+
}
|
|
40268
|
+
};
|
|
40269
|
+
|
|
40270
|
+
for (var i = 0; i < refData.length; i++) {
|
|
40271
|
+
_loop(i);
|
|
40272
|
+
}
|
|
40273
|
+
|
|
40274
|
+
if (nearestIndex !== -1) resolvedDataIndex = nearestIndex;
|
|
40275
|
+
}
|
|
40276
|
+
} // hit 기반 결과 (최우선)
|
|
40277
|
+
|
|
40278
|
+
|
|
40279
|
+
var hitType = null;
|
|
40280
|
+
var hitLabel = null;
|
|
40281
|
+
var hitValuePos = null;
|
|
40282
|
+
var hitValue = null;
|
|
40283
|
+
var hitSeriesID = '';
|
|
40284
|
+
var hitDataIndex = null;
|
|
40285
|
+
var hitDistance = Infinity;
|
|
40286
|
+
var hasDirectHit = false; // hit 없을 때 쓸 fallback — 값이 있는 시리즈 중 클릭 좌표에 가장 가까운 것.
|
|
40287
|
+
|
|
40288
|
+
var fallbackType = null;
|
|
40289
|
+
var fallbackLabel = null;
|
|
40290
|
+
var fallbackValuePos = null;
|
|
40291
|
+
var fallbackValue = null;
|
|
40292
|
+
var fallbackSeriesID = '';
|
|
40293
|
+
var fallbackDataIndex = null;
|
|
40294
|
+
var fallbackDistance = Infinity;
|
|
39984
40295
|
var acc = 0;
|
|
39985
40296
|
var useStack = false;
|
|
39986
|
-
var maxIndex = null;
|
|
39987
40297
|
|
|
39988
40298
|
for (var ix = 0; ix < seriesIDs.length; ix++) {
|
|
39989
40299
|
var seriesID = seriesIDs[ix];
|
|
@@ -39991,18 +40301,19 @@ var modules = {
|
|
|
39991
40301
|
var findFn = useApproximate ? series.findApproximateData : series.findGraphData;
|
|
39992
40302
|
|
|
39993
40303
|
if (findFn) {
|
|
39994
|
-
var item = findFn.call(series, offset, isHorizontal,
|
|
40304
|
+
var item = findFn.call(series, offset, isHorizontal, resolvedDataIndex, useSelectLabelOrItem);
|
|
39995
40305
|
var data = item.data;
|
|
39996
40306
|
var index = item.index;
|
|
39997
40307
|
|
|
39998
40308
|
if (data) {
|
|
39999
40309
|
if (helpers_util.isPieType(item.type)) {
|
|
40000
|
-
|
|
40001
|
-
|
|
40002
|
-
|
|
40003
|
-
|
|
40004
|
-
|
|
40005
|
-
|
|
40310
|
+
// pie 차트는 hit detection 체계가 달라 기존 동작 유지 (단일 pie 시리즈가 일반적)
|
|
40311
|
+
hitType = item.type;
|
|
40312
|
+
hitLabel = seriesID;
|
|
40313
|
+
hitSeriesID = seriesID;
|
|
40314
|
+
hitValuePos = (data.ea - data.sa) / 2;
|
|
40315
|
+
hitValue = data.o;
|
|
40316
|
+
hitDataIndex = data.index;
|
|
40006
40317
|
} else {
|
|
40007
40318
|
var ldata = isHorizontal ? data.y : data.x;
|
|
40008
40319
|
var lp = isHorizontal ? data.yp : data.xp;
|
|
@@ -40015,47 +40326,108 @@ var modules = {
|
|
|
40015
40326
|
useStack = true;
|
|
40016
40327
|
} else {
|
|
40017
40328
|
acc += data.y;
|
|
40018
|
-
}
|
|
40329
|
+
} // fallback 후보: 값이 있는 시리즈 중 거리가 가장 가까운 쪽.
|
|
40330
|
+
// 값이 null 인 시리즈는 제외.
|
|
40331
|
+
|
|
40332
|
+
|
|
40333
|
+
var hasMeaningfulValue = g !== null && g !== undefined && !Number.isNaN(g);
|
|
40334
|
+
var hasCoords = data.xp !== null && data.xp !== undefined && data.yp !== null && data.yp !== undefined;
|
|
40019
40335
|
|
|
40020
|
-
if (
|
|
40021
|
-
|
|
40022
|
-
|
|
40023
|
-
|
|
40024
|
-
|
|
40025
|
-
|
|
40026
|
-
|
|
40027
|
-
|
|
40336
|
+
if (hasMeaningfulValue && hasCoords) {
|
|
40337
|
+
var distance = helpers_util.calcBoxDistance(data, cx, cy);
|
|
40338
|
+
|
|
40339
|
+
if (fallbackSeriesID === '' || distance < fallbackDistance) {
|
|
40340
|
+
fallbackDistance = distance;
|
|
40341
|
+
fallbackType = series.type;
|
|
40342
|
+
fallbackLabel = ldata;
|
|
40343
|
+
fallbackValuePos = lp;
|
|
40344
|
+
fallbackValue = g;
|
|
40345
|
+
fallbackSeriesID = seriesID;
|
|
40346
|
+
fallbackDataIndex = index;
|
|
40347
|
+
}
|
|
40348
|
+
} else if (hasMeaningfulValue && fallbackSeriesID === '') {
|
|
40349
|
+
// 좌표 없는 예외 케이스 — 첫 후보로만 등록
|
|
40350
|
+
fallbackType = series.type;
|
|
40351
|
+
fallbackLabel = ldata;
|
|
40352
|
+
fallbackValuePos = lp;
|
|
40353
|
+
fallbackValue = g;
|
|
40354
|
+
fallbackSeriesID = seriesID;
|
|
40355
|
+
fallbackDataIndex = index;
|
|
40356
|
+
} // hit 기반 선택: item.hit이 true이고 유효한 좌표가 있을 때만 고려
|
|
40357
|
+
|
|
40358
|
+
|
|
40359
|
+
if (item.hit && data.xp !== undefined && data.yp !== undefined) {
|
|
40360
|
+
var _distance = Math.pow(data.xp - offset[0], 2) + Math.pow(data.yp - offset[1], 2);
|
|
40361
|
+
|
|
40362
|
+
if (item.directHit) {
|
|
40363
|
+
// 직접 박스 히트는 최우선. 여러 개이면 가장 가까운 것.
|
|
40364
|
+
if (!hasDirectHit || _distance < hitDistance) {
|
|
40365
|
+
hitDistance = _distance;
|
|
40366
|
+
hitType = series.type;
|
|
40367
|
+
hitLabel = ldata;
|
|
40368
|
+
hitValuePos = lp;
|
|
40369
|
+
hitValue = g;
|
|
40370
|
+
hitSeriesID = seriesID;
|
|
40371
|
+
hitDataIndex = index;
|
|
40372
|
+
}
|
|
40373
|
+
|
|
40374
|
+
hasDirectHit = true;
|
|
40375
|
+
} else if (!hasDirectHit) {
|
|
40376
|
+
// directHit가 없을 때만 일반 hit 거리 비교 참여
|
|
40377
|
+
// (라인 근접 히트가 박스 직접 히트를 이기지 못하도록)
|
|
40378
|
+
if (_distance < hitDistance) {
|
|
40379
|
+
hitDistance = _distance;
|
|
40380
|
+
hitType = series.type;
|
|
40381
|
+
hitLabel = ldata;
|
|
40382
|
+
hitValuePos = lp;
|
|
40383
|
+
hitValue = g;
|
|
40384
|
+
hitSeriesID = seriesID;
|
|
40385
|
+
hitDataIndex = index;
|
|
40386
|
+
}
|
|
40028
40387
|
}
|
|
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
40388
|
}
|
|
40037
40389
|
}
|
|
40038
40390
|
}
|
|
40039
40391
|
}
|
|
40040
40392
|
}
|
|
40393
|
+
} // all-null 라벨인 경우 label/dataIndex 만 채워 반환 (sId='', value=0).
|
|
40394
|
+
|
|
40395
|
+
|
|
40396
|
+
if (disableNullLabelSnap && hitSeriesID === '' && fallbackSeriesID === '' && resolvedDataIndex !== undefined && resolvedDataIndex >= 0) {
|
|
40397
|
+
var _this$seriesList$_ref;
|
|
40398
|
+
|
|
40399
|
+
var _refSeriesID = seriesIDs.find(function (sId) {
|
|
40400
|
+
var _s$data4;
|
|
40401
|
+
|
|
40402
|
+
var s = _this8.seriesList[sId];
|
|
40403
|
+
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;
|
|
40404
|
+
});
|
|
40405
|
+
|
|
40406
|
+
var refPoint = _refSeriesID ? (_this$seriesList$_ref = this.seriesList[_refSeriesID].data) === null || _this$seriesList$_ref === void 0 ? void 0 : _this$seriesList$_ref[resolvedDataIndex] : null;
|
|
40407
|
+
|
|
40408
|
+
if (refPoint) {
|
|
40409
|
+
fallbackLabel = isHorizontal ? refPoint.y : refPoint.x;
|
|
40410
|
+
fallbackDataIndex = resolvedDataIndex;
|
|
40411
|
+
}
|
|
40041
40412
|
}
|
|
40042
40413
|
|
|
40414
|
+
var hasHit = hitSeriesID !== '';
|
|
40043
40415
|
return {
|
|
40044
|
-
type:
|
|
40045
|
-
label:
|
|
40046
|
-
pos:
|
|
40047
|
-
value: (
|
|
40048
|
-
sId:
|
|
40416
|
+
type: hasHit ? hitType : fallbackType,
|
|
40417
|
+
label: hasHit ? hitLabel : fallbackLabel,
|
|
40418
|
+
pos: hasHit ? hitValuePos : fallbackValuePos,
|
|
40419
|
+
value: (_ref4 = hasHit ? hitValue : fallbackValue) !== null && _ref4 !== void 0 ? _ref4 : 0,
|
|
40420
|
+
sId: hasHit ? hitSeriesID : fallbackSeriesID,
|
|
40049
40421
|
acc: acc,
|
|
40050
40422
|
useStack: useStack,
|
|
40051
|
-
|
|
40423
|
+
dataIndex: hasHit ? hitDataIndex : fallbackDataIndex
|
|
40052
40424
|
};
|
|
40053
40425
|
},
|
|
40054
40426
|
|
|
40055
40427
|
/**
|
|
40056
40428
|
* @typedef {Object} LabelInfoResult
|
|
40057
40429
|
* @property {number} labelIndex - 선택된 라벨의 인덱스
|
|
40058
|
-
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (
|
|
40430
|
+
* @property {object} hitInfo - 해당 위치에서의 히트 정보 (getHitItemByPosition 반환값)
|
|
40059
40431
|
*/
|
|
40060
40432
|
|
|
40061
40433
|
/**
|
|
@@ -40068,9 +40440,9 @@ var modules = {
|
|
|
40068
40440
|
getLabelInfoByPosition: function getLabelInfoByPosition(offset, targetAxis) {
|
|
40069
40441
|
var _Object$values$sort$, _Object$values$sort$2, _scrollbarOpt, _scale, _scale$labels, _scale3, _scale3$labels;
|
|
40070
40442
|
|
|
40071
|
-
var
|
|
40072
|
-
x =
|
|
40073
|
-
y =
|
|
40443
|
+
var _offset2 = _slicedToArray(offset, 2),
|
|
40444
|
+
x = _offset2[0],
|
|
40445
|
+
y = _offset2[1];
|
|
40074
40446
|
|
|
40075
40447
|
var aPos = {
|
|
40076
40448
|
x1: this.chartRect.x1 + this.labelOffset.left,
|
|
@@ -40080,9 +40452,9 @@ var modules = {
|
|
|
40080
40452
|
};
|
|
40081
40453
|
var seriesList = this.data.series;
|
|
40082
40454
|
var pointSize = (_Object$values$sort$ = (_Object$values$sort$2 = Object.values(seriesList).sort(function (a, b) {
|
|
40083
|
-
var
|
|
40455
|
+
var _ref5, _b$pointSize;
|
|
40084
40456
|
|
|
40085
|
-
return (
|
|
40457
|
+
return (_ref5 = (_b$pointSize = b.pointSize) !== null && _b$pointSize !== void 0 ? _b$pointSize : 0 - a.pointSize) !== null && _ref5 !== void 0 ? _ref5 : 0;
|
|
40086
40458
|
})[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
40459
|
|
|
40088
40460
|
var _this$options = this.options,
|
|
@@ -40114,10 +40486,10 @@ var modules = {
|
|
|
40114
40486
|
_scrollbarOpt2$interv = _scrollbarOpt2.interval,
|
|
40115
40487
|
interval = _scrollbarOpt2$interv === void 0 ? 1 : _scrollbarOpt2$interv;
|
|
40116
40488
|
|
|
40117
|
-
var
|
|
40118
|
-
|
|
40119
|
-
min =
|
|
40120
|
-
max =
|
|
40489
|
+
var _ref6 = range !== null && range !== void 0 ? range : [0, scale.labels.length],
|
|
40490
|
+
_ref7 = _slicedToArray(_ref6, 2),
|
|
40491
|
+
min = _ref7[0],
|
|
40492
|
+
max = _ref7[1];
|
|
40121
40493
|
|
|
40122
40494
|
var labelCount = Math.floor((+max - +min) / interval) + 1;
|
|
40123
40495
|
var labelGap = (endPoint - startPoint) / labelCount;
|
|
@@ -40143,7 +40515,7 @@ var modules = {
|
|
|
40143
40515
|
|
|
40144
40516
|
labelIndex = scale.labels.length > _index ? _index : -1;
|
|
40145
40517
|
} else {
|
|
40146
|
-
var _hitInfo$
|
|
40518
|
+
var _hitInfo$dataIndex;
|
|
40147
40519
|
|
|
40148
40520
|
var offsetX;
|
|
40149
40521
|
var dataIndex;
|
|
@@ -40158,8 +40530,8 @@ var modules = {
|
|
|
40158
40530
|
offsetX = x;
|
|
40159
40531
|
}
|
|
40160
40532
|
|
|
40161
|
-
hitInfo = this.
|
|
40162
|
-
labelIndex = (_hitInfo$
|
|
40533
|
+
hitInfo = this.getHitItemByPosition([offsetX, y], selectLabel === null || selectLabel === void 0 ? void 0 : selectLabel.useApproximateValue, dataIndex, true);
|
|
40534
|
+
labelIndex = (_hitInfo$dataIndex = hitInfo.dataIndex) !== null && _hitInfo$dataIndex !== void 0 ? _hitInfo$dataIndex : -1;
|
|
40163
40535
|
}
|
|
40164
40536
|
|
|
40165
40537
|
return {
|
|
@@ -40180,7 +40552,7 @@ var modules = {
|
|
|
40180
40552
|
* @returns {MouseLabelValue} current mouse target label value
|
|
40181
40553
|
*/
|
|
40182
40554
|
getCurMouseLabelVal: function getCurMouseLabelVal(targetAxis, offset, labelIndex) {
|
|
40183
|
-
var
|
|
40555
|
+
var _this9 = this;
|
|
40184
40556
|
|
|
40185
40557
|
var _this$options2 = this.options,
|
|
40186
40558
|
chartType = _this$options2.type,
|
|
@@ -40197,13 +40569,13 @@ var modules = {
|
|
|
40197
40569
|
case 'bar':
|
|
40198
40570
|
case 'line':
|
|
40199
40571
|
{
|
|
40200
|
-
result = horizontal && !isXAxis || !horizontal && isXAxis ?
|
|
40572
|
+
result = horizontal && !isXAxis || !horizontal && isXAxis ? _this9.data.labels[labelIndex] : '';
|
|
40201
40573
|
break;
|
|
40202
40574
|
}
|
|
40203
40575
|
|
|
40204
40576
|
case 'heatMap':
|
|
40205
40577
|
{
|
|
40206
|
-
result =
|
|
40578
|
+
result = _this9.data.labels[targetAxisDirection][labelIndex];
|
|
40207
40579
|
break;
|
|
40208
40580
|
}
|
|
40209
40581
|
|
|
@@ -40217,19 +40589,19 @@ var modules = {
|
|
|
40217
40589
|
var calLabelValUseMousePos = function calLabelValUseMousePos() {
|
|
40218
40590
|
var result = '';
|
|
40219
40591
|
var aPos = {
|
|
40220
|
-
x1:
|
|
40221
|
-
x2:
|
|
40222
|
-
y1:
|
|
40223
|
-
y2:
|
|
40592
|
+
x1: _this9.chartRect.x1 + _this9.labelOffset.left,
|
|
40593
|
+
x2: _this9.chartRect.x2 - _this9.labelOffset.right,
|
|
40594
|
+
y1: _this9.chartRect.y1 + _this9.labelOffset.top,
|
|
40595
|
+
y2: _this9.chartRect.y2 - _this9.labelOffset.bottom
|
|
40224
40596
|
};
|
|
40225
|
-
var
|
|
40226
|
-
steps =
|
|
40227
|
-
labelValInterval =
|
|
40228
|
-
graphMin =
|
|
40229
|
-
var
|
|
40230
|
-
labelWidth =
|
|
40231
|
-
labelHeight =
|
|
40232
|
-
var axes = isXAxis ?
|
|
40597
|
+
var _this9$axesSteps$targ = _this9.axesSteps[targetAxisDirection][0],
|
|
40598
|
+
steps = _this9$axesSteps$targ.steps,
|
|
40599
|
+
labelValInterval = _this9$axesSteps$targ.interval,
|
|
40600
|
+
graphMin = _this9$axesSteps$targ.graphMin;
|
|
40601
|
+
var _this9$axesRange$targ = _this9.axesRange[targetAxisDirection][0].size,
|
|
40602
|
+
labelWidth = _this9$axesRange$targ.width,
|
|
40603
|
+
labelHeight = _this9$axesRange$targ.height;
|
|
40604
|
+
var axes = isXAxis ? _this9.axesX : _this9.axesY;
|
|
40233
40605
|
var axisStartPoint = aPos[axes[0].units.rectStart];
|
|
40234
40606
|
var axisEndPoint = aPos[axes[0].units.rectEnd];
|
|
40235
40607
|
var curMousePosInAxis = Math.abs(offset[isXAxis ? 0 : 1] - axisStartPoint);
|
|
@@ -40267,7 +40639,7 @@ var modules = {
|
|
|
40267
40639
|
* @returns {object} min/max info for all of data
|
|
40268
40640
|
*/
|
|
40269
40641
|
getStoreMinMax: function getStoreMinMax() {
|
|
40270
|
-
var
|
|
40642
|
+
var _this10 = this;
|
|
40271
40643
|
|
|
40272
40644
|
var keys = Object.keys(this.seriesList);
|
|
40273
40645
|
var isHorizontal = this.options.horizontal;
|
|
@@ -40285,7 +40657,7 @@ var modules = {
|
|
|
40285
40657
|
if (keys.length) {
|
|
40286
40658
|
return keys.reduce(function (acc, key) {
|
|
40287
40659
|
var minmax = acc;
|
|
40288
|
-
var series =
|
|
40660
|
+
var series = _this10.seriesList[key];
|
|
40289
40661
|
var smm = series.minMax;
|
|
40290
40662
|
var axisX = series.xAxisIndex;
|
|
40291
40663
|
var axisY = series.yAxisIndex;
|
|
@@ -42142,7 +42514,7 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42142
42514
|
}, {
|
|
42143
42515
|
key: "findGraphData",
|
|
42144
42516
|
value: function findGraphData(offset, isHorizontal, dataIndex, useSelectLabelOrItem) {
|
|
42145
|
-
var _item$data;
|
|
42517
|
+
var _this$pointSize, _item$data;
|
|
42146
42518
|
|
|
42147
42519
|
var xp = offset[0];
|
|
42148
42520
|
var yp = offset[1];
|
|
@@ -42154,7 +42526,23 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42154
42526
|
var gdata = this.data.filter(function (data) {
|
|
42155
42527
|
return !helpers_util.isNullOrUndefined(data.x);
|
|
42156
42528
|
});
|
|
42157
|
-
var isLinearInterpolation = this.useLinearInterpolation();
|
|
42529
|
+
var isLinearInterpolation = this.useLinearInterpolation(); // line 포인트 "정확 히트" 판정용 반경.
|
|
42530
|
+
// combo 차트에서 line 포인트 중심을 직격한 경우, 같은 좌표의 bar(directHit)보다
|
|
42531
|
+
// line이 우선되도록 item.directHit = true로 표시한다. 그 외(단순 Y축 근접)는 기존처럼 hit만.
|
|
42532
|
+
// 포인트 반지름에 기본 포인트 크기(LINE_OPTION.pointSize)만큼의 클릭 여유 마진을 더하고,
|
|
42533
|
+
// 시각적으로 하이라이트되는 포인트 반경(highlight.maxSize)을 최소 보장값으로 사용한다.
|
|
42534
|
+
|
|
42535
|
+
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);
|
|
42536
|
+
|
|
42537
|
+
var isLinePointDirectHit = function isLinePointDirectHit(point) {
|
|
42538
|
+
if (!point || point.xp === undefined || point.yp === undefined) {
|
|
42539
|
+
return false;
|
|
42540
|
+
}
|
|
42541
|
+
|
|
42542
|
+
var dx = xp - point.xp;
|
|
42543
|
+
var dy = yp - point.yp;
|
|
42544
|
+
return dx * dx + dy * dy <= directHitRadius * directHitRadius;
|
|
42545
|
+
};
|
|
42158
42546
|
|
|
42159
42547
|
if (gdata !== null && gdata !== void 0 && gdata.length) {
|
|
42160
42548
|
if (typeof dataIndex === 'number' && this.show) {
|
|
@@ -42169,6 +42557,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42169
42557
|
if (yDist <= directHitThreshold) {
|
|
42170
42558
|
item.hit = true;
|
|
42171
42559
|
}
|
|
42560
|
+
|
|
42561
|
+
if (isLinePointDirectHit(point)) {
|
|
42562
|
+
item.hit = true;
|
|
42563
|
+
item.directHit = true;
|
|
42564
|
+
}
|
|
42172
42565
|
}
|
|
42173
42566
|
} else if (typeof this.beforeFindItemIndex === 'number' && this.beforeFindItemIndex !== -1 && this.show && useSelectLabelOrItem) {
|
|
42174
42567
|
item.data = gdata[this.beforeFindItemIndex];
|
|
@@ -42317,6 +42710,11 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42317
42710
|
if (_yDist <= _directHitThreshold) {
|
|
42318
42711
|
item.hit = true;
|
|
42319
42712
|
}
|
|
42713
|
+
|
|
42714
|
+
if (isLinePointDirectHit(_point3)) {
|
|
42715
|
+
item.hit = true;
|
|
42716
|
+
item.directHit = true;
|
|
42717
|
+
}
|
|
42320
42718
|
}
|
|
42321
42719
|
}
|
|
42322
42720
|
}
|
|
@@ -43257,7 +43655,10 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43257
43655
|
if (barData[clampedIndex]) {
|
|
43258
43656
|
item.data = barData[clampedIndex];
|
|
43259
43657
|
item.index = clampedIndex;
|
|
43260
|
-
item.hit = this.isPointInBar(offset, barData[clampedIndex]);
|
|
43658
|
+
item.hit = this.isPointInBar(offset, barData[clampedIndex]); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시.
|
|
43659
|
+
// findHitItem에서 line 포인트 근접 히트보다 우선 선택되도록 하기 위함.
|
|
43660
|
+
|
|
43661
|
+
item.directHit = item.hit;
|
|
43261
43662
|
}
|
|
43262
43663
|
|
|
43263
43664
|
return item;
|
|
@@ -43314,7 +43715,9 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43314
43715
|
if (inRange) {
|
|
43315
43716
|
item.data = barData;
|
|
43316
43717
|
item.index = barData.index;
|
|
43317
|
-
item.hit = this.isPointInBar(offset, barData);
|
|
43718
|
+
item.hit = this.isPointInBar(offset, barData); // bar 박스 내부 클릭은 "직접 박스 히트"로 표시 (findHitItem 우선순위용).
|
|
43719
|
+
|
|
43720
|
+
item.directHit = item.hit;
|
|
43318
43721
|
return item;
|
|
43319
43722
|
}
|
|
43320
43723
|
|
|
@@ -46792,6 +47195,9 @@ var scale_logarithmic_LogarithmicScale = /*#__PURE__*/function (_Scale) {
|
|
|
46792
47195
|
}(scale_scale);
|
|
46793
47196
|
|
|
46794
47197
|
/* harmony default export */ var scale_logarithmic = (scale_logarithmic_LogarithmicScale);
|
|
47198
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.js
|
|
47199
|
+
var es_weak_map = __webpack_require__("10d1");
|
|
47200
|
+
|
|
46795
47201
|
// CONCATENATED MODULE: ./src/components/chart/scale/scale.step.js
|
|
46796
47202
|
|
|
46797
47203
|
|
|
@@ -46811,6 +47217,16 @@ var scale_logarithmic_LogarithmicScale = /*#__PURE__*/function (_Scale) {
|
|
|
46811
47217
|
|
|
46812
47218
|
|
|
46813
47219
|
|
|
47220
|
+
|
|
47221
|
+
|
|
47222
|
+
|
|
47223
|
+
|
|
47224
|
+
/**
|
|
47225
|
+
* scrollbar 사용 시 스크롤마다 labels 전체를 재순회하지 않도록 결과를 캐시
|
|
47226
|
+
*/
|
|
47227
|
+
|
|
47228
|
+
var stringMinMaxByLabels = new WeakMap();
|
|
47229
|
+
|
|
46814
47230
|
var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
|
|
46815
47231
|
_inherits(StepScale, _Scale);
|
|
46816
47232
|
|
|
@@ -46826,21 +47242,43 @@ var scale_step_StepScale = /*#__PURE__*/function (_Scale) {
|
|
|
46826
47242
|
return _this;
|
|
46827
47243
|
}
|
|
46828
47244
|
/**
|
|
46829
|
-
*
|
|
46830
|
-
*
|
|
46831
|
-
*
|
|
46832
|
-
*
|
|
46833
|
-
*
|
|
46834
|
-
* @
|
|
47245
|
+
* labels 배열의 문자열 min/max를 반환
|
|
47246
|
+
* - alignToGridLine: 전달받은 minMax 그대로 사용
|
|
47247
|
+
* - scrollbar 사용: WeakMap 캐시를 통해 O(n) → O(1)로 단축
|
|
47248
|
+
* - 일반: 매번 getStringMinMax 계산
|
|
47249
|
+
* @param {object} minMax 축 min/max 정보 (alignToGridLine 시 사용)
|
|
47250
|
+
* @param {object} scrollbarOpt 스크롤바 옵션
|
|
47251
|
+
* @returns {{ min: string, max: string }}
|
|
46835
47252
|
*/
|
|
46836
47253
|
|
|
46837
47254
|
|
|
46838
47255
|
_createClass(StepScale, [{
|
|
47256
|
+
key: "getStepMinMax",
|
|
47257
|
+
value: function getStepMinMax(minMax, scrollbarOpt) {
|
|
47258
|
+
if (this.labelStyle.alignToGridLine) return minMax;
|
|
47259
|
+
if (!(scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use)) return helpers_util.getStringMinMax(this.labels);
|
|
47260
|
+
|
|
47261
|
+
if (!stringMinMaxByLabels.has(this.labels)) {
|
|
47262
|
+
stringMinMaxByLabels.set(this.labels, helpers_util.getStringMinMax(this.labels));
|
|
47263
|
+
}
|
|
47264
|
+
|
|
47265
|
+
return stringMinMaxByLabels.get(this.labels);
|
|
47266
|
+
}
|
|
47267
|
+
/**
|
|
47268
|
+
* Calculate min/max value, label and size information for step scale
|
|
47269
|
+
* @param {object} minMax min/max information (unused on step scale)
|
|
47270
|
+
* @param {object} scrollbarOpt scroll bar option
|
|
47271
|
+
* @param {object} chartRect chart size information
|
|
47272
|
+
*
|
|
47273
|
+
* @returns {object} min/max value and label
|
|
47274
|
+
*/
|
|
47275
|
+
|
|
47276
|
+
}, {
|
|
46839
47277
|
key: "calculateScaleRange",
|
|
46840
47278
|
value: function calculateScaleRange(minMax, scrollbarOpt, chartRect) {
|
|
46841
47279
|
var _this$labelStyle$maxW, _this$labelStyle;
|
|
46842
47280
|
|
|
46843
|
-
var stepMinMax = this.
|
|
47281
|
+
var stepMinMax = this.getStepMinMax(minMax, scrollbarOpt);
|
|
46844
47282
|
var maxValue = stepMinMax.max;
|
|
46845
47283
|
var minValue = stepMinMax.min;
|
|
46846
47284
|
var minIndex = 0;
|
|
@@ -50305,9 +50743,18 @@ var plugins_scrollbar_module = {
|
|
|
50305
50743
|
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;
|
|
50306
50744
|
|
|
50307
50745
|
if (isUpdateAxesRange) {
|
|
50308
|
-
var _newOpt$5
|
|
50746
|
+
var _newOpt$5;
|
|
50747
|
+
|
|
50748
|
+
var newOptRange = newOpt === null || newOpt === void 0 ? void 0 : (_newOpt$5 = newOpt[0]) === null || _newOpt$5 === void 0 ? void 0 : _newOpt$5.range;
|
|
50749
|
+
var currentRange = this.scrollbar[dir].range;
|
|
50309
50750
|
|
|
50310
|
-
|
|
50751
|
+
if (!isResetPosition && newOptRange !== null && newOptRange !== void 0 && newOptRange.length && currentRange !== null && currentRange !== void 0 && currentRange.length) {
|
|
50752
|
+
// 리사이즈 등으로 range 크기만 변경된 경우, 현재 스크롤 위치(min)를 유지하고 크기만 조정
|
|
50753
|
+
var newSize = newOptRange[1] - newOptRange[0];
|
|
50754
|
+
this.scrollbar[dir].range = [currentRange[0], currentRange[0] + newSize];
|
|
50755
|
+
} else {
|
|
50756
|
+
this.scrollbar[dir].range = newOptRange !== null && newOptRange !== void 0 && newOptRange.length ? _toConsumableArray(newOptRange) : null;
|
|
50757
|
+
}
|
|
50311
50758
|
}
|
|
50312
50759
|
|
|
50313
50760
|
if (isResetPosition || updateData) {
|
|
@@ -51482,6 +51929,7 @@ function inRange_inRange(number, start, end) {
|
|
|
51482
51929
|
|
|
51483
51930
|
|
|
51484
51931
|
|
|
51932
|
+
|
|
51485
51933
|
|
|
51486
51934
|
|
|
51487
51935
|
var plugins_interaction_modules = {
|
|
@@ -51695,10 +52143,12 @@ var plugins_interaction_modules = {
|
|
|
51695
52143
|
}
|
|
51696
52144
|
|
|
51697
52145
|
var setSelectedItemInfo = function setSelectedItemInfo() {
|
|
51698
|
-
var
|
|
52146
|
+
var _hitInfo$hitId;
|
|
51699
52147
|
|
|
52148
|
+
var hitInfo = _this.findHitItem(offset, true); // 실제 클릭된 아이템의 정보 추출 (hitId가 있으면 해당 아이템, 없으면 첫 번째 아이템)
|
|
51700
52149
|
|
|
51701
|
-
|
|
52150
|
+
|
|
52151
|
+
var hitItemId = (_hitInfo$hitId = hitInfo.hitId) !== null && _hitInfo$hitId !== void 0 ? _hitInfo$hitId : Object.keys(hitInfo.items)[0];
|
|
51702
52152
|
var hitItem = hitInfo.items[hitItemId];
|
|
51703
52153
|
|
|
51704
52154
|
if (hitItem) {
|
|
@@ -51713,9 +52163,11 @@ var plugins_interaction_modules = {
|
|
|
51713
52163
|
};
|
|
51714
52164
|
|
|
51715
52165
|
var setSelectedLabelInfo = function setSelectedLabelInfo(targetAxis) {
|
|
51716
|
-
var
|
|
52166
|
+
var _hitInfo$hitId2;
|
|
52167
|
+
|
|
52168
|
+
var hitInfo = _this.findHitItem(offset, true);
|
|
51717
52169
|
|
|
51718
|
-
var hitItemId = hitInfo.hitId
|
|
52170
|
+
var hitItemId = (_hitInfo$hitId2 = hitInfo.hitId) !== null && _hitInfo$hitId2 !== void 0 ? _hitInfo$hitId2 : Object.keys(hitInfo.items)[0];
|
|
51719
52171
|
var hitItem = hitInfo.items[hitItemId];
|
|
51720
52172
|
|
|
51721
52173
|
var _this$getLabelInfoByP = _this.getLabelInfoByPosition(offset, targetAxis),
|
|
@@ -51738,9 +52190,11 @@ var plugins_interaction_modules = {
|
|
|
51738
52190
|
};
|
|
51739
52191
|
|
|
51740
52192
|
var setSelectedSeriesInfo = function setSelectedSeriesInfo() {
|
|
51741
|
-
var
|
|
52193
|
+
var _hitInfo$hitId3;
|
|
51742
52194
|
|
|
51743
|
-
var
|
|
52195
|
+
var hitInfo = _this.findHitItem(offset, true);
|
|
52196
|
+
|
|
52197
|
+
var hitItemId = (_hitInfo$hitId3 = hitInfo.hitId) !== null && _hitInfo$hitId3 !== void 0 ? _hitInfo$hitId3 : Object.keys(hitInfo.items)[0];
|
|
51744
52198
|
var hitItem = hitInfo.items[hitItemId];
|
|
51745
52199
|
|
|
51746
52200
|
if (hitItemId !== null) {
|
|
@@ -51823,19 +52277,19 @@ var plugins_interaction_modules = {
|
|
|
51823
52277
|
var useSelectSeries = (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.use) && (selectSeriesOpt === null || selectSeriesOpt === void 0 ? void 0 : selectSeriesOpt.useClick);
|
|
51824
52278
|
|
|
51825
52279
|
var setSelectedItemInfo = function setSelectedItemInfo() {
|
|
51826
|
-
var hitInfo = _this.
|
|
52280
|
+
var hitInfo = _this.getHitItemByPosition(offset, false, undefined, false, true);
|
|
51827
52281
|
|
|
51828
52282
|
args.label = hitInfo.label;
|
|
51829
52283
|
args.value = hitInfo.value;
|
|
51830
52284
|
args.seriesId = hitInfo.sId;
|
|
51831
|
-
args.dataIndex = hitInfo.
|
|
52285
|
+
args.dataIndex = hitInfo.dataIndex;
|
|
51832
52286
|
args.acc = hitInfo.acc;
|
|
51833
52287
|
|
|
51834
52288
|
if (hitInfo !== null && hitInfo !== void 0 && hitInfo.sId) {
|
|
51835
52289
|
args.selected = {
|
|
51836
52290
|
eventTarget: 'item',
|
|
51837
52291
|
seriesId: _this.isDeselectItem(hitInfo) ? null : hitInfo.sId,
|
|
51838
|
-
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.
|
|
52292
|
+
dataIndex: _this.isDeselectItem(hitInfo) ? null : hitInfo.dataIndex
|
|
51839
52293
|
};
|
|
51840
52294
|
}
|
|
51841
52295
|
};
|
|
@@ -51863,9 +52317,11 @@ var plugins_interaction_modules = {
|
|
|
51863
52317
|
};
|
|
51864
52318
|
|
|
51865
52319
|
var setSelectedSeriesInfo = function setSelectedSeriesInfo() {
|
|
51866
|
-
var
|
|
52320
|
+
var _hitInfo$hitId4;
|
|
52321
|
+
|
|
52322
|
+
var hitInfo = _this.findHitItem(offset, true);
|
|
51867
52323
|
|
|
51868
|
-
var hitItemId = hitInfo.hitId
|
|
52324
|
+
var hitItemId = (_hitInfo$hitId4 = hitInfo.hitId) !== null && _hitInfo$hitId4 !== void 0 ? _hitInfo$hitId4 : Object.keys(hitInfo.items)[0];
|
|
51869
52325
|
var hitItem = hitInfo.items[hitItemId];
|
|
51870
52326
|
|
|
51871
52327
|
if (hitItemId !== null) {
|
|
@@ -52499,19 +52955,30 @@ var plugins_interaction_modules = {
|
|
|
52499
52955
|
findHitItem: function findHitItem(offset) {
|
|
52500
52956
|
var _this4 = this;
|
|
52501
52957
|
|
|
52958
|
+
var disableNullLabelSnap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
52502
52959
|
var sIds = Object.keys(this.seriesList);
|
|
52503
52960
|
var items = {};
|
|
52504
52961
|
var isHorizontal = !!this.options.horizontal;
|
|
52505
52962
|
var ctx = this.tooltipCtx;
|
|
52963
|
+
|
|
52964
|
+
var _offset = _slicedToArray(offset, 2),
|
|
52965
|
+
cx = _offset[0],
|
|
52966
|
+
cy = _offset[1];
|
|
52967
|
+
|
|
52506
52968
|
var hitId = null;
|
|
52507
52969
|
var maxs = '';
|
|
52508
52970
|
var maxsw = 0;
|
|
52509
52971
|
var maxv = '';
|
|
52510
52972
|
var maxg = null;
|
|
52511
52973
|
var maxSID = null;
|
|
52512
|
-
var minDistance = Infinity; //
|
|
52974
|
+
var minDistance = Infinity; // directHit 가 하나라도 있으면 일반 hit 는 hitId 후보에서 배제.
|
|
52975
|
+
|
|
52976
|
+
var hasDirectHit = false; // hit 이 없을 때 거리 기반으로 선택할 fallback (기존 "첫 시리즈 고정" 대체).
|
|
52977
|
+
|
|
52978
|
+
var fallbackId = null;
|
|
52979
|
+
var fallbackDistance = Infinity; // 1. 먼저 공통으로 사용할 데이터 인덱스 결정
|
|
52513
52980
|
|
|
52514
|
-
var targetDataIndex = this.findClosestDataIndex(offset, sIds);
|
|
52981
|
+
var targetDataIndex = this.findClosestDataIndex(offset, sIds, disableNullLabelSnap);
|
|
52515
52982
|
|
|
52516
52983
|
if (targetDataIndex === -1 && !this.isNotUseIndicator()) {
|
|
52517
52984
|
return {
|
|
@@ -52585,24 +53052,79 @@ var plugins_interaction_modules = {
|
|
|
52585
53052
|
if (maxg === null || maxg <= gdata) {
|
|
52586
53053
|
maxg = gdata;
|
|
52587
53054
|
maxSID = sId;
|
|
52588
|
-
} //
|
|
53055
|
+
} // hit 기반 선택: directHit 최우선, 그 외 일반 hit 는 directHit 없을 때만.
|
|
52589
53056
|
|
|
52590
53057
|
|
|
52591
53058
|
if (item.hit && item.data.xp !== undefined && item.data.yp !== undefined) {
|
|
52592
53059
|
var distance = Math.pow(item.data.xp - offset[0], 2) + Math.pow(item.data.yp - offset[1], 2);
|
|
52593
53060
|
|
|
52594
|
-
if (
|
|
53061
|
+
if (item.directHit) {
|
|
53062
|
+
if (!hasDirectHit || distance < minDistance) {
|
|
53063
|
+
minDistance = distance;
|
|
53064
|
+
hitId = sId;
|
|
53065
|
+
}
|
|
53066
|
+
|
|
53067
|
+
hasDirectHit = true;
|
|
53068
|
+
} else if (!hasDirectHit && distance < minDistance) {
|
|
52595
53069
|
minDistance = distance;
|
|
52596
53070
|
hitId = sId;
|
|
52597
53071
|
}
|
|
53072
|
+
} // fallback 후보: hit 여부와 무관하게 거리가 가장 가까운 시리즈.
|
|
53073
|
+
// 참고: 이 블록은 outer `if (gdata !== null && gdata !== undefined)` 안에 있어서
|
|
53074
|
+
// 값이 null 인 시리즈는 items 수집 단계에서 이미 걸러진 상태. 별도 null 값 가드 불필요.
|
|
53075
|
+
|
|
53076
|
+
|
|
53077
|
+
if (item.data.xp !== undefined && item.data.yp !== undefined && item.data.xp !== null && item.data.yp !== null) {
|
|
53078
|
+
var fbDistance = helpers_util.calcBoxDistance(item.data, cx, cy);
|
|
53079
|
+
|
|
53080
|
+
if (fbDistance < fallbackDistance) {
|
|
53081
|
+
fallbackDistance = fbDistance;
|
|
53082
|
+
fallbackId = sId;
|
|
53083
|
+
}
|
|
52598
53084
|
}
|
|
52599
53085
|
}
|
|
52600
53086
|
}
|
|
52601
53087
|
}
|
|
53088
|
+
} // hit 없으면 거리 기반 fallback, 그것도 없으면 items 첫 키(항상 비어있을 가능성 방어).
|
|
53089
|
+
|
|
53090
|
+
|
|
53091
|
+
if (hitId === null) {
|
|
53092
|
+
hitId = fallbackId !== null ? fallbackId : Object.keys(items)[0];
|
|
53093
|
+
}
|
|
53094
|
+
|
|
53095
|
+
var maxHighlight = maxg !== null ? [maxSID, maxg] : null; // all-null 라벨인 경우 synthetic items[''] 로 label/index 만 채워 전달.
|
|
53096
|
+
|
|
53097
|
+
if (disableNullLabelSnap && Object.keys(items).length === 0 && targetDataIndex !== -1) {
|
|
53098
|
+
var _this$seriesList$refS;
|
|
53099
|
+
|
|
53100
|
+
var refSeriesID = sIds.find(function (sId) {
|
|
53101
|
+
var _s$data;
|
|
53102
|
+
|
|
53103
|
+
var s = _this4.seriesList[sId];
|
|
53104
|
+
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;
|
|
53105
|
+
});
|
|
53106
|
+
var refPoint = refSeriesID ? (_this$seriesList$refS = this.seriesList[refSeriesID].data) === null || _this$seriesList$refS === void 0 ? void 0 : _this$seriesList$refS[targetDataIndex] : null;
|
|
53107
|
+
|
|
53108
|
+
if (refPoint) {
|
|
53109
|
+
items[''] = {
|
|
53110
|
+
id: '',
|
|
53111
|
+
name: '',
|
|
53112
|
+
label: isHorizontal ? refPoint.y : refPoint.x,
|
|
53113
|
+
index: targetDataIndex,
|
|
53114
|
+
axis: {
|
|
53115
|
+
x: 0,
|
|
53116
|
+
y: 0
|
|
53117
|
+
},
|
|
53118
|
+
data: {
|
|
53119
|
+
o: undefined,
|
|
53120
|
+
x: refPoint.x,
|
|
53121
|
+
y: refPoint.y
|
|
53122
|
+
}
|
|
53123
|
+
};
|
|
53124
|
+
hitId = '';
|
|
53125
|
+
}
|
|
52602
53126
|
}
|
|
52603
53127
|
|
|
52604
|
-
hitId = hitId === null ? Object.keys(items)[0] : hitId;
|
|
52605
|
-
var maxHighlight = maxg !== null ? [maxSID, maxg] : null;
|
|
52606
53128
|
return {
|
|
52607
53129
|
items: items,
|
|
52608
53130
|
hitId: hitId,
|
|
@@ -52621,9 +53143,11 @@ var plugins_interaction_modules = {
|
|
|
52621
53143
|
var _this5 = this,
|
|
52622
53144
|
_this$seriesList$refe;
|
|
52623
53145
|
|
|
52624
|
-
var
|
|
52625
|
-
|
|
52626
|
-
|
|
53146
|
+
var disableNullLabelSnap = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
53147
|
+
|
|
53148
|
+
var _offset2 = _slicedToArray(offset, 2),
|
|
53149
|
+
xp = _offset2[0],
|
|
53150
|
+
yp = _offset2[1];
|
|
52627
53151
|
|
|
52628
53152
|
var isHorizontal = !!this.options.horizontal;
|
|
52629
53153
|
var mousePos = isHorizontal ? yp : xp; // 데이터 있는 시리즈를 기준으로 라벨 위치 확인
|
|
@@ -52676,11 +53200,10 @@ var plugins_interaction_modules = {
|
|
|
52676
53200
|
}
|
|
52677
53201
|
|
|
52678
53202
|
var closestDistance = Infinity;
|
|
52679
|
-
var closestIndex = -1; // 각 라벨에서 가장 가까운 것 찾기
|
|
53203
|
+
var closestIndex = -1; // 각 라벨에서 가장 가까운 것 찾기 (disableNullLabelSnap=true 면 all-null 라벨도 후보)
|
|
52680
53204
|
|
|
52681
53205
|
var _loop = function _loop(_i) {
|
|
52682
|
-
|
|
52683
|
-
var hasValidData = sIds.some(function (sId) {
|
|
53206
|
+
var hasValidData = disableNullLabelSnap || sIds.some(function (sId) {
|
|
52684
53207
|
var _series$data2, _series$data2$_i, _series$data3, _series$data3$_i;
|
|
52685
53208
|
|
|
52686
53209
|
var series = _this5.seriesList[sId];
|
|
@@ -53287,7 +53810,7 @@ var plugins_interaction_modules = {
|
|
|
53287
53810
|
isDeselectItem: function isDeselectItem(hitInfo) {
|
|
53288
53811
|
var _this$defaultSelectIt, _this$defaultSelectIt2;
|
|
53289
53812
|
|
|
53290
|
-
return this.options.selectItem.useDeselectItem && (hitInfo === null || hitInfo === void 0 ? void 0 : hitInfo.
|
|
53813
|
+
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);
|
|
53291
53814
|
},
|
|
53292
53815
|
|
|
53293
53816
|
/**
|
|
@@ -53296,9 +53819,9 @@ var plugins_interaction_modules = {
|
|
|
53296
53819
|
* @returns {string}
|
|
53297
53820
|
*/
|
|
53298
53821
|
getCurMouseLocation: function getCurMouseLocation(offset) {
|
|
53299
|
-
var
|
|
53300
|
-
offsetX =
|
|
53301
|
-
offsetY =
|
|
53822
|
+
var _offset3 = _slicedToArray(offset, 2),
|
|
53823
|
+
offsetX = _offset3[0],
|
|
53824
|
+
offsetY = _offset3[1];
|
|
53302
53825
|
|
|
53303
53826
|
var aPos = {
|
|
53304
53827
|
x1: this.chartRect.x1 + this.labelOffset.left,
|
|
@@ -54961,7 +55484,7 @@ var element_tip_modules = {
|
|
|
54961
55484
|
|
|
54962
55485
|
if (tipType === 'sel') {
|
|
54963
55486
|
if (hitInfo && hitInfo.label !== null) {
|
|
54964
|
-
lastTip.pos = type === 'bar' ? hitInfo.
|
|
55487
|
+
lastTip.pos = type === 'bar' ? hitInfo.dataIndex : hitInfo.label;
|
|
54965
55488
|
ldata = lastTip.pos;
|
|
54966
55489
|
} else if (lastTip.pos !== null) {
|
|
54967
55490
|
ldata = lastTip.pos;
|
|
@@ -56060,10 +56583,10 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
56060
56583
|
var lastHitInfo = this.lastHitInfo;
|
|
56061
56584
|
var defaultSelectInfo = this.defaultSelectItemInfo;
|
|
56062
56585
|
|
|
56063
|
-
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.
|
|
56586
|
+
if (lastHitInfo !== null && lastHitInfo !== void 0 && lastHitInfo.dataIndex || (lastHitInfo === null || lastHitInfo === void 0 ? void 0 : lastHitInfo.dataIndex) === 0) {
|
|
56064
56587
|
_selectInfo = {
|
|
56065
56588
|
seriesID: lastHitInfo.sId,
|
|
56066
|
-
dataIndex: lastHitInfo.
|
|
56589
|
+
dataIndex: lastHitInfo.dataIndex
|
|
56067
56590
|
};
|
|
56068
56591
|
} else if (defaultSelectInfo !== null && defaultSelectInfo !== void 0 && defaultSelectInfo.dataIndex || (defaultSelectInfo === null || defaultSelectInfo === void 0 ? void 0 : defaultSelectInfo.dataIndex) === 0) {
|
|
56069
56592
|
_selectInfo = _objectSpread2({}, defaultSelectInfo);
|