evui 3.4.128 → 3.4.129
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 +702 -279
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +702 -279
- 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 +131 -61
- package/src/components/chart/element/element.line.js +11 -9
- package/src/components/chart/element/element.tip.js +120 -60
- package/src/components/chart/helpers/helpers.util.js +19 -15
- package/src/components/chart/model/model.store.js +40 -17
- package/src/components/chart/plugins/plugins.interaction.js +69 -8
- package/src/components/chart/plugins/plugins.legend.js +4 -6
- package/src/components/chart/plugins/plugins.tooltip.js +15 -4
- package/src/components/chart/scale/scale.js +17 -7
- package/src/components/chart/scale/scale.linear.js +183 -3
- package/src/components/chart/uses.js +1 -0
package/dist/evui.common.js
CHANGED
|
@@ -11174,7 +11174,7 @@ module.exports = exports;
|
|
|
11174
11174
|
/***/ "9224":
|
|
11175
11175
|
/***/ (function(module) {
|
|
11176
11176
|
|
|
11177
|
-
module.exports = JSON.parse("{\"a\":\"3.4.
|
|
11177
|
+
module.exports = JSON.parse("{\"a\":\"3.4.129\"}");
|
|
11178
11178
|
|
|
11179
11179
|
/***/ }),
|
|
11180
11180
|
|
|
@@ -38503,26 +38503,26 @@ var es_string_match = __webpack_require__("466d");
|
|
|
38503
38503
|
return value;
|
|
38504
38504
|
}
|
|
38505
38505
|
|
|
38506
|
-
var
|
|
38507
|
-
|
|
38508
|
-
return "".concat((v / target).toFixed(decimalPoint)).concat(lb);
|
|
38509
|
-
}
|
|
38506
|
+
var isNegative = value < 0;
|
|
38507
|
+
var absValue = Math.abs(value);
|
|
38510
38508
|
|
|
38511
|
-
|
|
38512
|
-
|
|
38513
|
-
|
|
38514
|
-
|
|
38515
|
-
|
|
38516
|
-
|
|
38517
|
-
label = assignLabelWith(
|
|
38518
|
-
} else if (
|
|
38519
|
-
label = assignLabelWith(
|
|
38520
|
-
} else if (
|
|
38521
|
-
label = assignLabelWith(
|
|
38522
|
-
} else if (
|
|
38523
|
-
label = assignLabelWith(
|
|
38509
|
+
var assignLabelWith = function assignLabelWith(v, target, lb) {
|
|
38510
|
+
var result = v % target === 0 ? "".concat((v / target).toFixed(decimalPoint)).concat(lb) : "".concat((v / target).toFixed(1)).concat(lb);
|
|
38511
|
+
return isNegative ? "-".concat(result) : result;
|
|
38512
|
+
};
|
|
38513
|
+
|
|
38514
|
+
if (absValue >= quad) {
|
|
38515
|
+
label = assignLabelWith(absValue, quad, 'P');
|
|
38516
|
+
} else if (absValue >= trill) {
|
|
38517
|
+
label = assignLabelWith(absValue, trill, 'T');
|
|
38518
|
+
} else if (absValue >= billi) {
|
|
38519
|
+
label = assignLabelWith(absValue, billi, 'G');
|
|
38520
|
+
} else if (absValue >= milli) {
|
|
38521
|
+
label = assignLabelWith(absValue, milli, 'M');
|
|
38522
|
+
} else if (absValue >= killo) {
|
|
38523
|
+
label = assignLabelWith(absValue, 1000, 'K');
|
|
38524
38524
|
} else {
|
|
38525
|
-
label = value.toFixed(decimalPoint);
|
|
38525
|
+
label = isNegative ? "-".concat(absValue.toFixed(decimalPoint)) : value.toFixed(decimalPoint);
|
|
38526
38526
|
}
|
|
38527
38527
|
|
|
38528
38528
|
return label;
|
|
@@ -38796,21 +38796,23 @@ var modules = {
|
|
|
38796
38796
|
seriesIDs.forEach(function (seriesID) {
|
|
38797
38797
|
var series = _this.seriesList[seriesID];
|
|
38798
38798
|
var sData = data[seriesID];
|
|
38799
|
+
var passingValue = series === null || series === void 0 ? void 0 : series.passingValue;
|
|
38799
38800
|
|
|
38800
38801
|
if (series && sData) {
|
|
38801
38802
|
series.data = _this.addSeriesDSforScatter(sData);
|
|
38802
|
-
series.minMax = _this.getSeriesMinMax(series.data);
|
|
38803
|
+
series.minMax = _this.getSeriesMinMax(series.data, passingValue);
|
|
38803
38804
|
}
|
|
38804
38805
|
});
|
|
38805
38806
|
} else if (typeKey === 'heatMap') {
|
|
38806
38807
|
seriesIDs.forEach(function (seriesID) {
|
|
38807
38808
|
var series = _this.seriesList[seriesID];
|
|
38809
|
+
var passingValue = series === null || series === void 0 ? void 0 : series.passingValue;
|
|
38808
38810
|
var sData = data[seriesID];
|
|
38809
38811
|
|
|
38810
38812
|
if (series && sData) {
|
|
38811
38813
|
series.labels = label;
|
|
38812
38814
|
series.data = _this.addSeriesDSForHeatMap(sData);
|
|
38813
|
-
series.minMax = _this.getSeriesMinMax(series.data);
|
|
38815
|
+
series.minMax = _this.getSeriesMinMax(series.data, passingValue);
|
|
38814
38816
|
series.valueOpt = _this.getSeriesValueOptForHeatMap(series);
|
|
38815
38817
|
}
|
|
38816
38818
|
});
|
|
@@ -38842,7 +38844,7 @@ var modules = {
|
|
|
38842
38844
|
series.data = _this.addSeriesDS(sData, label, series.isExistGrp);
|
|
38843
38845
|
}
|
|
38844
38846
|
|
|
38845
|
-
series.minMax = _this.getSeriesMinMax(series.data);
|
|
38847
|
+
series.minMax = _this.getSeriesMinMax(series.data, series.passingValue);
|
|
38846
38848
|
}
|
|
38847
38849
|
});
|
|
38848
38850
|
}
|
|
@@ -39238,17 +39240,19 @@ var modules = {
|
|
|
39238
39240
|
var isHorizontal = this.options.horizontal;
|
|
39239
39241
|
var sdata = [];
|
|
39240
39242
|
|
|
39241
|
-
var getBaseDataPosition = function getBaseDataPosition(baseIndex, dataIndex) {
|
|
39243
|
+
var getBaseDataPosition = function getBaseDataPosition(baseIndex, dataIndex, curr) {
|
|
39242
39244
|
var nextBaseSeriesIndex = baseIndex - 1;
|
|
39243
39245
|
var baseSeries = _this4.seriesList[bsIds[baseIndex]];
|
|
39244
39246
|
var baseDataList = baseSeries.data;
|
|
39245
39247
|
var baseData = baseDataList[dataIndex];
|
|
39246
39248
|
var position = isHorizontal ? baseData === null || baseData === void 0 ? void 0 : baseData.x : baseData === null || baseData === void 0 ? void 0 : baseData.y;
|
|
39247
|
-
var
|
|
39249
|
+
var baseValue = baseData === null || baseData === void 0 ? void 0 : baseData.o;
|
|
39250
|
+
var isPassingValue = !helpers_util.isNullOrUndefined(baseSeries === null || baseSeries === void 0 ? void 0 : baseSeries.passingValue) && (baseSeries === null || baseSeries === void 0 ? void 0 : baseSeries.passingValue) === baseValue;
|
|
39251
|
+
var isSameSign = curr >= 0 && baseValue >= 0 || curr < 0 && baseValue < 0;
|
|
39248
39252
|
|
|
39249
|
-
if (isPassingValue || position == null || !baseSeries.show) {
|
|
39253
|
+
if (isPassingValue || position == null || !isSameSign || !baseSeries.show) {
|
|
39250
39254
|
if (nextBaseSeriesIndex > -1) {
|
|
39251
|
-
return getBaseDataPosition(nextBaseSeriesIndex, dataIndex);
|
|
39255
|
+
return getBaseDataPosition(nextBaseSeriesIndex, dataIndex, curr);
|
|
39252
39256
|
}
|
|
39253
39257
|
|
|
39254
39258
|
return 0;
|
|
@@ -39259,7 +39263,7 @@ var modules = {
|
|
|
39259
39263
|
|
|
39260
39264
|
data.forEach(function (curr, index) {
|
|
39261
39265
|
var baseIndex = bsIds.length - 1 < 0 ? 0 : bsIds.length - 1;
|
|
39262
|
-
var bdata = getBaseDataPosition(baseIndex, index); // base(previous) series data
|
|
39266
|
+
var bdata = getBaseDataPosition(baseIndex, index, curr); // base(previous) series data
|
|
39263
39267
|
|
|
39264
39268
|
var odata = curr; // current series original data
|
|
39265
39269
|
|
|
@@ -39442,7 +39446,7 @@ var modules = {
|
|
|
39442
39446
|
*
|
|
39443
39447
|
* @returns {object} min/max info for series
|
|
39444
39448
|
*/
|
|
39445
|
-
getSeriesMinMax: function getSeriesMinMax(data) {
|
|
39449
|
+
getSeriesMinMax: function getSeriesMinMax(data, passingValue) {
|
|
39446
39450
|
var def = {
|
|
39447
39451
|
minX: null,
|
|
39448
39452
|
minY: null,
|
|
@@ -39453,22 +39457,24 @@ var modules = {
|
|
|
39453
39457
|
var isHorizontal = this.options.horizontal;
|
|
39454
39458
|
|
|
39455
39459
|
if (data.length) {
|
|
39460
|
+
var usePassingValue = !helpers_util.isNullOrUndefined(passingValue);
|
|
39456
39461
|
return data.reduce(function (acc, p, index) {
|
|
39457
|
-
var _p$x, _p$y;
|
|
39462
|
+
var _p$x, _p$y, _p$o;
|
|
39458
39463
|
|
|
39459
39464
|
var minmax = acc;
|
|
39460
39465
|
var px = ((_p$x = p.x) === null || _p$x === void 0 ? void 0 : _p$x.value) || p.x;
|
|
39461
39466
|
var py = ((_p$y = p.y) === null || _p$y === void 0 ? void 0 : _p$y.value) || p.y;
|
|
39467
|
+
var po = ((_p$o = p.o) === null || _p$o === void 0 ? void 0 : _p$o.value) || p.o;
|
|
39462
39468
|
|
|
39463
|
-
if (px <= minmax.minX) {
|
|
39469
|
+
if (usePassingValue ? po !== passingValue && px <= minmax.minX : px <= minmax.minX) {
|
|
39464
39470
|
minmax.minX = px === null ? 0 : px;
|
|
39465
39471
|
}
|
|
39466
39472
|
|
|
39467
|
-
if (py <= minmax.minY) {
|
|
39473
|
+
if (usePassingValue ? po !== passingValue && py <= minmax.minY : py <= minmax.minY) {
|
|
39468
39474
|
minmax.minY = py === null ? 0 : py;
|
|
39469
39475
|
}
|
|
39470
39476
|
|
|
39471
|
-
if (px >= minmax.maxX) {
|
|
39477
|
+
if (usePassingValue ? po !== passingValue && px >= minmax.maxX : px >= minmax.maxX) {
|
|
39472
39478
|
minmax.maxX = px === null ? 0 : px;
|
|
39473
39479
|
|
|
39474
39480
|
if (isHorizontal && px !== null) {
|
|
@@ -39477,7 +39483,7 @@ var modules = {
|
|
|
39477
39483
|
}
|
|
39478
39484
|
}
|
|
39479
39485
|
|
|
39480
|
-
if (py >= minmax.maxY) {
|
|
39486
|
+
if (usePassingValue ? po !== passingValue && py >= minmax.maxY : py >= minmax.maxY) {
|
|
39481
39487
|
minmax.maxY = py === null ? 0 : py;
|
|
39482
39488
|
|
|
39483
39489
|
if (!isHorizontal && py !== null) {
|
|
@@ -40231,14 +40237,25 @@ var modules = {
|
|
|
40231
40237
|
}
|
|
40232
40238
|
}
|
|
40233
40239
|
|
|
40234
|
-
|
|
40240
|
+
var isExistGrp = _this10.seriesList[key].isExistGrp;
|
|
40241
|
+
var maxXisNegative = minmax.x[axisX].max < 0;
|
|
40242
|
+
|
|
40243
|
+
if (isExistGrp && maxXisNegative) {
|
|
40244
|
+
minmax.x[axisX].max = smm.maxX;
|
|
40245
|
+
minmax.x[axisX].maxSID = key;
|
|
40246
|
+
} else if (!minmax.x[axisX].max || smm.maxX >= minmax.x[axisX].max) {
|
|
40235
40247
|
minmax.x[axisX].max = smm.maxX;
|
|
40236
40248
|
minmax.x[axisX].maxSID = key;
|
|
40237
40249
|
}
|
|
40238
40250
|
|
|
40239
|
-
|
|
40251
|
+
var maxYisNegative = minmax.y[axisY].max < 0;
|
|
40252
|
+
|
|
40253
|
+
if (isExistGrp && maxYisNegative) {
|
|
40254
|
+
minmax.y[axisY].max = smm.maxY;
|
|
40255
|
+
minmax.y[axisY].maxSID = key;
|
|
40256
|
+
} else if (!minmax.y[axisY].max || smm.maxY >= minmax.y[axisY].max) {
|
|
40240
40257
|
minmax.y[axisY].max = smm.maxY;
|
|
40241
|
-
minmax.y[
|
|
40258
|
+
minmax.y[axisY].maxSID = key;
|
|
40242
40259
|
}
|
|
40243
40260
|
}
|
|
40244
40261
|
|
|
@@ -41699,6 +41716,7 @@ var TIME_INTERVALS = {
|
|
|
41699
41716
|
|
|
41700
41717
|
|
|
41701
41718
|
|
|
41719
|
+
|
|
41702
41720
|
var element_line_Line = /*#__PURE__*/function () {
|
|
41703
41721
|
function Line(sId, opt, sIdx) {
|
|
41704
41722
|
var _this = this;
|
|
@@ -41832,7 +41850,6 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
41832
41850
|
ctx.setLineDash(this.segments);
|
|
41833
41851
|
}
|
|
41834
41852
|
|
|
41835
|
-
var endPoint = chartRect.y2 - labelOffset.bottom;
|
|
41836
41853
|
var isLinearInterpolation = this.useLinearInterpolation();
|
|
41837
41854
|
var barAreaByCombo = 0;
|
|
41838
41855
|
var minmaxX = axesSteps.x[this.xAxisIndex];
|
|
@@ -41855,8 +41872,12 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
41855
41872
|
|
|
41856
41873
|
var getYPos = function getYPos(val) {
|
|
41857
41874
|
return helpers_canvas.calculateY(val, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
41858
|
-
};
|
|
41875
|
+
};
|
|
41859
41876
|
|
|
41877
|
+
var includeNegativeValue = this.data.some(function (data) {
|
|
41878
|
+
return data.o < 0;
|
|
41879
|
+
});
|
|
41880
|
+
var endPoint = includeNegativeValue ? getYPos(0) : chartRect.y2 - labelOffset.bottom; // draw line
|
|
41860
41881
|
|
|
41861
41882
|
var prevValid;
|
|
41862
41883
|
this.data.forEach(function (curr) {
|
|
@@ -41916,9 +41937,10 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
41916
41937
|
}
|
|
41917
41938
|
});
|
|
41918
41939
|
var gradient = ctx.createLinearGradient(0, chartRect.y2, 0, maxValueYPos);
|
|
41919
|
-
|
|
41940
|
+
var mainGradientColor = extent.opacity < 1 ? fillColor : mainColor;
|
|
41941
|
+
gradient.addColorStop(0, includeNegativeValue ? mainGradientColor : fillColor);
|
|
41920
41942
|
gradient.addColorStop(0.5, fillColor);
|
|
41921
|
-
gradient.addColorStop(1,
|
|
41943
|
+
gradient.addColorStop(1, mainGradientColor);
|
|
41922
41944
|
ctx.fillStyle = gradient;
|
|
41923
41945
|
} else {
|
|
41924
41946
|
ctx.fillStyle = fillColor;
|
|
@@ -41986,7 +42008,7 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
41986
42008
|
|
|
41987
42009
|
var nextData = _this2.data[jx];
|
|
41988
42010
|
var xp = getXPos(nextData.x);
|
|
41989
|
-
var bp = (_getYPos2 = getYPos(nextData.b)) !== null && _getYPos2 !== void 0 ? _getYPos2 :
|
|
42011
|
+
var bp = (_getYPos2 = getYPos(nextData.b)) !== null && _getYPos2 !== void 0 ? _getYPos2 : getYPos(0);
|
|
41990
42012
|
ctx.lineTo(xp, bp);
|
|
41991
42013
|
}
|
|
41992
42014
|
|
|
@@ -42097,22 +42119,23 @@ var element_line_Line = /*#__PURE__*/function () {
|
|
|
42097
42119
|
|
|
42098
42120
|
var s = 0;
|
|
42099
42121
|
var e = gdata.length - 1;
|
|
42100
|
-
var
|
|
42122
|
+
var gap = Math.ceil(Math.abs(((_gdata$ = gdata[1]) === null || _gdata$ === void 0 ? void 0 : _gdata$.xp) - gdata[0].xp) / 2) || 0;
|
|
42123
|
+
var xpInterval = Math.max(gap, 6);
|
|
42101
42124
|
|
|
42102
42125
|
while (s <= e) {
|
|
42103
42126
|
var m = Math.floor((s + e) / 2);
|
|
42104
42127
|
var x = gdata[m].xp;
|
|
42105
42128
|
var y = gdata[m].yp;
|
|
42106
42129
|
|
|
42107
|
-
if (x - xpInterval
|
|
42130
|
+
if (x - xpInterval <= xp && xp <= x + xpInterval) {
|
|
42108
42131
|
var _gdata$m, _gdata$xp, _gdata, _gdata2, _gdata3;
|
|
42109
42132
|
|
|
42110
42133
|
var curXpInterval = ((_gdata$m = gdata[m]) === null || _gdata$m === void 0 ? void 0 : _gdata$m.xp) - ((_gdata$xp = (_gdata = gdata[m - 1]) === null || _gdata === void 0 ? void 0 : _gdata.xp) !== null && _gdata$xp !== void 0 ? _gdata$xp : 0);
|
|
42111
42134
|
|
|
42112
42135
|
if ((_gdata2 = gdata[m - 1]) !== null && _gdata2 !== void 0 && _gdata2.xp && (_gdata3 = gdata[m + 1]) !== null && _gdata3 !== void 0 && _gdata3.xp && curXpInterval > 0) {
|
|
42113
|
-
var leftXp = xp - gdata[m - 1].xp;
|
|
42136
|
+
var leftXp = Math.abs(xp - gdata[m - 1].xp);
|
|
42114
42137
|
var midXp = Math.abs(xp - gdata[m].xp);
|
|
42115
|
-
var rightXp = gdata[m + 1].xp - xp;
|
|
42138
|
+
var rightXp = Math.abs(gdata[m + 1].xp - xp);
|
|
42116
42139
|
|
|
42117
42140
|
if (Math.abs(this.beforeMouseXp - xp) >= curXpInterval - SPARE_XP && (this.beforeFindItemIndex === m || midXp === rightXp || midXp === leftXp)) {
|
|
42118
42141
|
if (this.beforeMouseXp - xp > 0) {
|
|
@@ -42760,8 +42783,12 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42760
42783
|
|
|
42761
42784
|
var xArea = chartRect.chartWidth - (labelOffset.left + labelOffset.right);
|
|
42762
42785
|
var yArea = chartRect.chartHeight - (labelOffset.top + labelOffset.bottom);
|
|
42763
|
-
var
|
|
42764
|
-
var
|
|
42786
|
+
var xAxisPosition = chartRect.x1 + labelOffset.left;
|
|
42787
|
+
var yAxisPosition = chartRect.y2 - labelOffset.bottom;
|
|
42788
|
+
var xZeroPosition = helpers_canvas.calculateX(0, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42789
|
+
var yZeroPosition = helpers_canvas.calculateY(0, minmaxY.graphMin, minmaxY.graphMax, yArea);
|
|
42790
|
+
var xsp = isHorizontal ? xAxisPosition + xZeroPosition : xAxisPosition;
|
|
42791
|
+
var ysp = isHorizontal ? yAxisPosition : yAxisPosition + yZeroPosition;
|
|
42765
42792
|
var dArea = isHorizontal ? yArea : xArea;
|
|
42766
42793
|
var cArea = dArea / (totalCount || 1);
|
|
42767
42794
|
var cPad;
|
|
@@ -42825,7 +42852,8 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42825
42852
|
categoryPoint = ysp - cArea * screenIndex - cPad;
|
|
42826
42853
|
} else {
|
|
42827
42854
|
categoryPoint = xsp + cArea * screenIndex + cPad;
|
|
42828
|
-
}
|
|
42855
|
+
} // 기본 위치 설정
|
|
42856
|
+
|
|
42829
42857
|
|
|
42830
42858
|
if (isHorizontal) {
|
|
42831
42859
|
x = xsp;
|
|
@@ -42833,22 +42861,30 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
42833
42861
|
} else {
|
|
42834
42862
|
x = Math.round(categoryPoint + (bArea * barSeriesX - (w + bPad)));
|
|
42835
42863
|
y = ysp;
|
|
42836
|
-
}
|
|
42864
|
+
} // 너비 / 높이 계산, 스택의 경우 위치 값 재계산
|
|
42865
|
+
|
|
42837
42866
|
|
|
42838
42867
|
if (isHorizontal) {
|
|
42868
|
+
var barValue = item.b ? item.o : item.x;
|
|
42869
|
+
w = helpers_canvas.calculateX(barValue, minmaxX.graphMin, minmaxX.graphMax, xArea, -xZeroPosition);
|
|
42870
|
+
|
|
42839
42871
|
if (item.b) {
|
|
42840
|
-
|
|
42841
|
-
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp);
|
|
42842
|
-
} else {
|
|
42843
|
-
w = helpers_canvas.calculateX(item.x, minmaxX.graphMin, minmaxX.graphMax, xArea);
|
|
42872
|
+
x = helpers_canvas.calculateX(item.b, minmaxX.graphMin, minmaxX.graphMax, xArea, xsp - xZeroPosition);
|
|
42844
42873
|
}
|
|
42845
|
-
|
|
42846
|
-
|
|
42847
|
-
|
|
42848
|
-
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp);
|
|
42874
|
+
|
|
42875
|
+
var minimumBarWidth = barValue > 0 ? -1 : 1;
|
|
42876
|
+
w = barValue && Math.abs(w) === 0 ? minimumBarWidth : w;
|
|
42849
42877
|
} else {
|
|
42850
|
-
|
|
42851
|
-
|
|
42878
|
+
var _barValue = item.b ? item.o : item.y;
|
|
42879
|
+
|
|
42880
|
+
h = helpers_canvas.calculateY(_barValue, minmaxY.graphMin, minmaxY.graphMax, yArea, -yZeroPosition);
|
|
42881
|
+
|
|
42882
|
+
if (item.b) {
|
|
42883
|
+
y = helpers_canvas.calculateY(item.b, minmaxY.graphMin, minmaxY.graphMax, yArea, ysp - yZeroPosition);
|
|
42884
|
+
}
|
|
42885
|
+
|
|
42886
|
+
var minimumBarHeight = _barValue > 0 ? -1 : 1;
|
|
42887
|
+
h = _barValue && Math.abs(h) === 0 ? minimumBarHeight : h;
|
|
42852
42888
|
}
|
|
42853
42889
|
|
|
42854
42890
|
var barColor = item.dataColor || this.color;
|
|
@@ -43137,10 +43173,10 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43137
43173
|
align = _this$showValue.align,
|
|
43138
43174
|
formatter = _this$showValue.formatter,
|
|
43139
43175
|
decimalPoint = _this$showValue.decimalPoint;
|
|
43140
|
-
var
|
|
43141
|
-
|
|
43142
|
-
|
|
43143
|
-
|
|
43176
|
+
var barX = positions.x,
|
|
43177
|
+
barY = positions.y,
|
|
43178
|
+
barWidth = positions.w,
|
|
43179
|
+
barHeight = positions.h;
|
|
43144
43180
|
var ctx = context;
|
|
43145
43181
|
ctx.save();
|
|
43146
43182
|
ctx.beginPath();
|
|
@@ -43175,25 +43211,27 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43175
43211
|
formattedTxt = (_Util$labelSignFormat = helpers_util.labelSignFormat(value, decimalPoint)) !== null && _Util$labelSignFormat !== void 0 ? _Util$labelSignFormat : '';
|
|
43176
43212
|
}
|
|
43177
43213
|
|
|
43214
|
+
var isNegativeValue = value < 0;
|
|
43178
43215
|
var textWidth = Math.round(ctx.measureText(formattedTxt).width);
|
|
43179
|
-
var textHeight = fontSize
|
|
43180
|
-
|
|
43181
|
-
var
|
|
43182
|
-
var
|
|
43183
|
-
var
|
|
43184
|
-
var
|
|
43185
|
-
var
|
|
43186
|
-
var
|
|
43216
|
+
var textHeight = fontSize; // fontSize와 textHeight는 같을 수 없지만, 정확히 구할 필요 없음
|
|
43217
|
+
|
|
43218
|
+
var GAP = 10;
|
|
43219
|
+
var minXPos = isNegativeValue ? barX - GAP : barX + GAP;
|
|
43220
|
+
var minYPos = isNegativeValue ? barY + GAP : barY - GAP;
|
|
43221
|
+
var centerXOnBar = barX + barWidth / 2;
|
|
43222
|
+
var centerYOnBar = isHighlight ? barY + barHeight / 2 : barY - barHeight / 2;
|
|
43223
|
+
var drawableBarWidth = Math.abs(barWidth) - GAP;
|
|
43224
|
+
var drawableBarHeight = Math.abs(barHeight) - GAP;
|
|
43187
43225
|
|
|
43188
43226
|
switch (align) {
|
|
43189
43227
|
case 'start':
|
|
43190
43228
|
{
|
|
43191
|
-
if (isHorizontal) {
|
|
43192
|
-
|
|
43193
|
-
|
|
43194
|
-
|
|
43195
|
-
|
|
43196
|
-
ctx.fillText(formattedTxt,
|
|
43229
|
+
if (isHorizontal && textWidth < drawableBarWidth) {
|
|
43230
|
+
var xPos = isNegativeValue ? minXPos - textWidth : minXPos;
|
|
43231
|
+
ctx.fillText(formattedTxt, xPos, centerYOnBar);
|
|
43232
|
+
} else if (!isHorizontal && textHeight < drawableBarHeight) {
|
|
43233
|
+
var yPos = isNegativeValue ? barY + GAP : barY - GAP;
|
|
43234
|
+
ctx.fillText(formattedTxt, centerXOnBar, yPos);
|
|
43197
43235
|
}
|
|
43198
43236
|
|
|
43199
43237
|
break;
|
|
@@ -43201,12 +43239,10 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43201
43239
|
|
|
43202
43240
|
case 'center':
|
|
43203
43241
|
{
|
|
43204
|
-
if (isHorizontal) {
|
|
43205
|
-
|
|
43206
|
-
|
|
43207
|
-
|
|
43208
|
-
} else if (textHeight < heightFreeSpaceToDraw) {
|
|
43209
|
-
ctx.fillText(formattedTxt, centerX, centerY);
|
|
43242
|
+
if (isHorizontal && textWidth < drawableBarWidth) {
|
|
43243
|
+
ctx.fillText(formattedTxt, centerXOnBar, centerYOnBar);
|
|
43244
|
+
} else if (!isHorizontal && textHeight < drawableBarHeight) {
|
|
43245
|
+
ctx.fillText(formattedTxt, centerXOnBar, barY + barHeight / 2);
|
|
43210
43246
|
}
|
|
43211
43247
|
|
|
43212
43248
|
break;
|
|
@@ -43220,9 +43256,26 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43220
43256
|
}
|
|
43221
43257
|
|
|
43222
43258
|
if (isHorizontal) {
|
|
43223
|
-
|
|
43259
|
+
var minXOnChart = this.chartRect.x1 + this.labelOffset.left;
|
|
43260
|
+
var maxXOnChart = this.chartRect.x2 - this.labelOffset.right;
|
|
43261
|
+
|
|
43262
|
+
if (isNegativeValue) {
|
|
43263
|
+
var _xPos = barX - GAP + barWidth - textWidth;
|
|
43264
|
+
|
|
43265
|
+
if (_xPos > minXOnChart) {
|
|
43266
|
+
ctx.fillText(formattedTxt, _xPos, centerYOnBar);
|
|
43267
|
+
}
|
|
43268
|
+
} else {
|
|
43269
|
+
var _xPos2 = barX + GAP + barWidth;
|
|
43270
|
+
|
|
43271
|
+
if (_xPos2 + textWidth < maxXOnChart) {
|
|
43272
|
+
ctx.fillText(formattedTxt, _xPos2, centerYOnBar);
|
|
43273
|
+
}
|
|
43274
|
+
}
|
|
43224
43275
|
} else {
|
|
43225
|
-
|
|
43276
|
+
var _yPos = isNegativeValue ? barY + barHeight + GAP : barY + barHeight - GAP;
|
|
43277
|
+
|
|
43278
|
+
ctx.fillText(formattedTxt, centerXOnBar, _yPos);
|
|
43226
43279
|
}
|
|
43227
43280
|
|
|
43228
43281
|
break;
|
|
@@ -43231,14 +43284,22 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43231
43284
|
default:
|
|
43232
43285
|
case 'end':
|
|
43233
43286
|
{
|
|
43234
|
-
if (isHorizontal) {
|
|
43235
|
-
|
|
43236
|
-
|
|
43237
|
-
|
|
43287
|
+
if (isHorizontal && textWidth < drawableBarWidth) {
|
|
43288
|
+
var _xPos3 = isNegativeValue ? barX + barWidth + GAP : barX + barWidth - textWidth - GAP;
|
|
43289
|
+
|
|
43290
|
+
ctx.fillText(formattedTxt, _xPos3, centerYOnBar);
|
|
43291
|
+
} else if (!isHorizontal) {
|
|
43292
|
+
if (isNegativeValue) {
|
|
43293
|
+
var _yPos2 = barY + barHeight - GAP;
|
|
43294
|
+
|
|
43295
|
+
if (_yPos2 > minYPos) {
|
|
43296
|
+
ctx.fillText(formattedTxt, centerXOnBar, _yPos2);
|
|
43297
|
+
}
|
|
43298
|
+
} else if (textHeight < drawableBarHeight) {
|
|
43299
|
+
var _yPos3 = barY + barHeight + GAP;
|
|
43300
|
+
|
|
43301
|
+
ctx.fillText(formattedTxt, centerXOnBar, _yPos3);
|
|
43238
43302
|
}
|
|
43239
|
-
} else if (textHeight < heightFreeSpaceToDraw) {
|
|
43240
|
-
var yPos = y + h + textHeight;
|
|
43241
|
-
ctx.fillText(formattedTxt, centerX, yPos >= minYPos ? minYPos : yPos);
|
|
43242
43303
|
}
|
|
43243
43304
|
|
|
43244
43305
|
break;
|
|
@@ -43295,28 +43356,50 @@ var element_bar_Bar = /*#__PURE__*/function () {
|
|
|
43295
43356
|
ctx.beginPath();
|
|
43296
43357
|
ctx.moveTo(x, y);
|
|
43297
43358
|
|
|
43359
|
+
if (Math.abs(w) < r * 2) {
|
|
43360
|
+
r = Math.abs(w) / 2;
|
|
43361
|
+
}
|
|
43362
|
+
|
|
43363
|
+
if (Math.abs(h) < r * 2) {
|
|
43364
|
+
r = Math.abs(h) / 2;
|
|
43365
|
+
}
|
|
43366
|
+
|
|
43298
43367
|
if (isHorizontal) {
|
|
43299
|
-
|
|
43300
|
-
|
|
43368
|
+
var isNegativeValue = w < 0;
|
|
43369
|
+
|
|
43370
|
+
if (isNegativeValue) {
|
|
43371
|
+
w += r;
|
|
43372
|
+
ctx.lineTo(x + w, y);
|
|
43373
|
+
ctx.arcTo(x + w - r, y, x + w - r, y - r, r);
|
|
43374
|
+
ctx.arcTo(x + w - r, y - h, x + w, y - h, r);
|
|
43375
|
+
ctx.lineTo(x, y - h);
|
|
43376
|
+
ctx.lineTo(x, y);
|
|
43377
|
+
} else {
|
|
43378
|
+
w -= r;
|
|
43379
|
+
ctx.lineTo(x + w, y);
|
|
43380
|
+
ctx.arcTo(x + w + r, y, x + w + r, y - r, r);
|
|
43381
|
+
ctx.arcTo(x + w + r, y - h, x + w, y - h, r);
|
|
43382
|
+
ctx.lineTo(x, y - h);
|
|
43383
|
+
ctx.lineTo(x, y);
|
|
43301
43384
|
}
|
|
43302
|
-
|
|
43303
|
-
w -= r;
|
|
43304
|
-
ctx.lineTo(x + w, y);
|
|
43305
|
-
ctx.arcTo(x + w + r, y, x + w + r, y - r, r);
|
|
43306
|
-
ctx.arcTo(x + w + r, y - h, x + w, y - h, r);
|
|
43307
|
-
ctx.lineTo(x, y - h);
|
|
43308
|
-
ctx.lineTo(x, y);
|
|
43309
43385
|
} else {
|
|
43310
|
-
|
|
43311
|
-
|
|
43386
|
+
var _isNegativeValue = h > 0;
|
|
43387
|
+
|
|
43388
|
+
if (_isNegativeValue) {
|
|
43389
|
+
h -= r;
|
|
43390
|
+
ctx.lineTo(x + w, y);
|
|
43391
|
+
ctx.lineTo(x + w, y + h);
|
|
43392
|
+
ctx.arcTo(x + w, y + h + r, x - w + r, y + h + r, r);
|
|
43393
|
+
ctx.arcTo(x, y + h + r, x, y + h, r);
|
|
43394
|
+
ctx.lineTo(x, y);
|
|
43395
|
+
} else {
|
|
43396
|
+
h += r;
|
|
43397
|
+
ctx.lineTo(x + w, y);
|
|
43398
|
+
ctx.lineTo(x + w, y + h);
|
|
43399
|
+
ctx.arcTo(x + w, y + h - r, x + w - r, y + h - r, r);
|
|
43400
|
+
ctx.arcTo(x, y + h - r, x, y + h, r);
|
|
43401
|
+
ctx.lineTo(x, y);
|
|
43312
43402
|
}
|
|
43313
|
-
|
|
43314
|
-
h += r;
|
|
43315
|
-
ctx.lineTo(x + w, y);
|
|
43316
|
-
ctx.lineTo(x + w, y + h);
|
|
43317
|
-
ctx.arcTo(x + w, y + h - r, x + w - r, y + h - r, r);
|
|
43318
|
-
ctx.arcTo(x, y + h - r, x, y + h, r);
|
|
43319
|
-
ctx.lineTo(x, y);
|
|
43320
43403
|
}
|
|
43321
43404
|
|
|
43322
43405
|
ctx.fill();
|
|
@@ -45071,6 +45154,7 @@ var scale_Scale = /*#__PURE__*/function () {
|
|
|
45071
45154
|
}
|
|
45072
45155
|
/**
|
|
45073
45156
|
* With range information, calculate how many labels in axis
|
|
45157
|
+
* linear type은 scale.linear.js에서 처리
|
|
45074
45158
|
* @param {object} range min/max information
|
|
45075
45159
|
*
|
|
45076
45160
|
* @returns {object} steps, interval, min/max graph value
|
|
@@ -45279,6 +45363,14 @@ var scale_Scale = /*#__PURE__*/function () {
|
|
|
45279
45363
|
|
|
45280
45364
|
ctx.beginPath();
|
|
45281
45365
|
ticks[ix] = axisMinForLabel + ix * stepValue;
|
|
45366
|
+
var isZeroLine = ticks[ix] === 0;
|
|
45367
|
+
|
|
45368
|
+
if (isZeroLine && _this3.zeroLineColor) {
|
|
45369
|
+
ctx.strokeStyle = _this3.zeroLineColor;
|
|
45370
|
+
} else {
|
|
45371
|
+
ctx.strokeStyle = _this3.gridLineColor;
|
|
45372
|
+
}
|
|
45373
|
+
|
|
45282
45374
|
linePosition = labelCenter + aliasPixel;
|
|
45283
45375
|
labelText = _this3.getLabelFormat(Math.min(axisMax, ticks[ix]), {
|
|
45284
45376
|
prev: (_ticks = ticks[ix - 1]) !== null && _ticks !== void 0 ? _ticks : ''
|
|
@@ -45384,9 +45476,11 @@ var scale_Scale = /*#__PURE__*/function () {
|
|
|
45384
45476
|
}
|
|
45385
45477
|
|
|
45386
45478
|
var mergedPlotBandOpt = lodash_es_defaultsDeep({}, plotBand, PLOT_BAND_OPTION);
|
|
45387
|
-
var
|
|
45388
|
-
|
|
45479
|
+
var userDefinedFrom = mergedPlotBandOpt.from,
|
|
45480
|
+
userDefinedTo = mergedPlotBandOpt.to,
|
|
45389
45481
|
labelOpt = mergedPlotBandOpt.label;
|
|
45482
|
+
var from = userDefinedFrom ? Math.max(userDefinedFrom, axisMin) : axisMin;
|
|
45483
|
+
var to = userDefinedTo ? Math.min(userDefinedTo, axisMax) : axisMax;
|
|
45390
45484
|
|
|
45391
45485
|
_this3.setPlotBandStyle(mergedPlotBandOpt);
|
|
45392
45486
|
|
|
@@ -45394,8 +45488,8 @@ var scale_Scale = /*#__PURE__*/function () {
|
|
|
45394
45488
|
var toPos;
|
|
45395
45489
|
|
|
45396
45490
|
if (_this3.type === 'x') {
|
|
45397
|
-
fromPos = helpers_canvas.calculateX(from
|
|
45398
|
-
toPos = helpers_canvas.calculateX(to
|
|
45491
|
+
fromPos = helpers_canvas.calculateX(from, axisMin, axisMax, xArea, minX);
|
|
45492
|
+
toPos = helpers_canvas.calculateX(to, axisMin, axisMax, xArea, minX);
|
|
45399
45493
|
|
|
45400
45494
|
if (fromPos === null || toPos === null) {
|
|
45401
45495
|
return;
|
|
@@ -45403,8 +45497,8 @@ var scale_Scale = /*#__PURE__*/function () {
|
|
|
45403
45497
|
|
|
45404
45498
|
_this3.drawXPlotBand(fromPos, toPos, minX, maxX, minY, maxY);
|
|
45405
45499
|
} else {
|
|
45406
|
-
fromPos = helpers_canvas.calculateY(from
|
|
45407
|
-
toPos = helpers_canvas.calculateY(to
|
|
45500
|
+
fromPos = helpers_canvas.calculateY(from, axisMin, axisMax, yArea, maxY);
|
|
45501
|
+
toPos = helpers_canvas.calculateY(to, axisMin, axisMax, yArea, maxY);
|
|
45408
45502
|
|
|
45409
45503
|
if (fromPos === null || toPos === null) {
|
|
45410
45504
|
return;
|
|
@@ -45975,6 +46069,7 @@ var scale_time_TimeScale = /*#__PURE__*/function (_Scale) {
|
|
|
45975
46069
|
|
|
45976
46070
|
|
|
45977
46071
|
|
|
46072
|
+
|
|
45978
46073
|
var scale_linear_LinearScale = /*#__PURE__*/function (_Scale) {
|
|
45979
46074
|
_inherits(LinearScale, _Scale);
|
|
45980
46075
|
|
|
@@ -46013,16 +46108,192 @@ var scale_linear_LinearScale = /*#__PURE__*/function (_Scale) {
|
|
|
46013
46108
|
* Calculate interval
|
|
46014
46109
|
* @param {object} range range information
|
|
46015
46110
|
*
|
|
46016
|
-
* @returns {number}
|
|
46111
|
+
* @returns {number} interval (한 칸에 표시할 값의 간격)
|
|
46017
46112
|
*/
|
|
46018
46113
|
|
|
46019
46114
|
}, {
|
|
46020
46115
|
key: "getInterval",
|
|
46021
46116
|
value: function getInterval(range) {
|
|
46117
|
+
if (this.interval) return this.interval;
|
|
46022
46118
|
var max = range.maxValue;
|
|
46023
46119
|
var min = range.minValue;
|
|
46024
|
-
var
|
|
46025
|
-
|
|
46120
|
+
var steps = range.maxSteps; // step이 0이면 interval 계산 불가
|
|
46121
|
+
|
|
46122
|
+
if (!steps || steps <= 0) return 0; // startToZero이고, 최소값이 음수일 경우 0을 반드시 포함
|
|
46123
|
+
|
|
46124
|
+
if (this.startToZero && min < 0) {
|
|
46125
|
+
var totalRange = Math.abs(min) + Math.abs(max); // 비율로 나눔
|
|
46126
|
+
|
|
46127
|
+
var negativeRatio = Math.abs(min) / totalRange;
|
|
46128
|
+
var positiveRatio = Math.abs(max) / totalRange; // 각 방향에 최소 1칸 이상 배정되도록 보장
|
|
46129
|
+
|
|
46130
|
+
var negativeSteps = Math.max(1, Math.round(negativeRatio * steps));
|
|
46131
|
+
var positiveSteps = Math.max(1, steps - negativeSteps); // 다시 합이 steps보다 커질 수도 있으니, 조정
|
|
46132
|
+
|
|
46133
|
+
if (negativeSteps + positiveSteps > steps) {
|
|
46134
|
+
// 가장 큰 쪽에서 하나 줄임
|
|
46135
|
+
if (negativeRatio > positiveRatio) {
|
|
46136
|
+
negativeSteps -= 1;
|
|
46137
|
+
} else {
|
|
46138
|
+
positiveSteps -= 1;
|
|
46139
|
+
}
|
|
46140
|
+
}
|
|
46141
|
+
|
|
46142
|
+
return Math.ceil(Math.max(Math.abs(min) / (negativeSteps || 1), Math.abs(max) / (positiveSteps || 1)));
|
|
46143
|
+
}
|
|
46144
|
+
|
|
46145
|
+
return Math.ceil((max - min) / steps);
|
|
46146
|
+
}
|
|
46147
|
+
/**
|
|
46148
|
+
* With range information, calculate how many labels in axis
|
|
46149
|
+
* @param {object} range min/max information
|
|
46150
|
+
*
|
|
46151
|
+
* @returns {object} steps, interval, min/max graph value
|
|
46152
|
+
*/
|
|
46153
|
+
|
|
46154
|
+
}, {
|
|
46155
|
+
key: "calculateSteps",
|
|
46156
|
+
value: function calculateSteps(range) {
|
|
46157
|
+
var maxValue = range.maxValue,
|
|
46158
|
+
minValue = range.minValue;
|
|
46159
|
+
var _range$maxSteps = range.maxSteps,
|
|
46160
|
+
maxSteps = _range$maxSteps === void 0 ? 1 : _range$maxSteps;
|
|
46161
|
+
var interval = this.getInterval(range);
|
|
46162
|
+
var graphMin = 0;
|
|
46163
|
+
var graphMax = 0; // 그래프 최대/최소 값 계산
|
|
46164
|
+
|
|
46165
|
+
if (minValue >= 0) {
|
|
46166
|
+
// 전부 양수
|
|
46167
|
+
graphMin = +minValue;
|
|
46168
|
+
graphMax = Math.ceil(maxValue / interval) * interval;
|
|
46169
|
+
} else if (maxValue >= 0) {
|
|
46170
|
+
// 양수/음수 혼합
|
|
46171
|
+
graphMin = Math.floor(minValue / interval) * interval;
|
|
46172
|
+
graphMax = Math.ceil(maxValue / interval) * interval;
|
|
46173
|
+
} else {
|
|
46174
|
+
// 전부 음수
|
|
46175
|
+
graphMax = +maxValue;
|
|
46176
|
+
graphMin = Math.floor(minValue / interval) * interval;
|
|
46177
|
+
}
|
|
46178
|
+
|
|
46179
|
+
var graphRange = graphMax - graphMin;
|
|
46180
|
+
var numberOfSteps = Math.round(graphRange / interval); // 특수 케이스: 양수 최소값, 최대값이 1일 경우
|
|
46181
|
+
|
|
46182
|
+
if (minValue > 0 && maxValue === 1) {
|
|
46183
|
+
if (!this.decimalPoint) {
|
|
46184
|
+
interval = 1;
|
|
46185
|
+
numberOfSteps = 1;
|
|
46186
|
+
maxSteps = 1;
|
|
46187
|
+
} else if (maxSteps > 2) {
|
|
46188
|
+
interval = 0.2;
|
|
46189
|
+
numberOfSteps = 5;
|
|
46190
|
+
maxSteps = 5;
|
|
46191
|
+
} else {
|
|
46192
|
+
interval = 0.5;
|
|
46193
|
+
numberOfSteps = 2;
|
|
46194
|
+
maxSteps = 2;
|
|
46195
|
+
}
|
|
46196
|
+
} // 최대 스텝 수 조정
|
|
46197
|
+
|
|
46198
|
+
|
|
46199
|
+
while (numberOfSteps > maxSteps) {
|
|
46200
|
+
interval *= 2;
|
|
46201
|
+
numberOfSteps = Math.round(graphRange / interval);
|
|
46202
|
+
interval = Math.ceil(graphRange / numberOfSteps);
|
|
46203
|
+
}
|
|
46204
|
+
|
|
46205
|
+
if (graphRange > numberOfSteps * interval) {
|
|
46206
|
+
interval = Math.ceil(graphRange / numberOfSteps);
|
|
46207
|
+
}
|
|
46208
|
+
|
|
46209
|
+
return {
|
|
46210
|
+
steps: numberOfSteps,
|
|
46211
|
+
interval: interval,
|
|
46212
|
+
graphMin: graphMin,
|
|
46213
|
+
graphMax: graphMax
|
|
46214
|
+
};
|
|
46215
|
+
}
|
|
46216
|
+
/**
|
|
46217
|
+
* Calculate min/max value, label and size information for axis
|
|
46218
|
+
* @param {object} minMax min/max information
|
|
46219
|
+
* @param {object} scrollbarOpt scrollbar option
|
|
46220
|
+
*
|
|
46221
|
+
* @returns {object} min/max value and label
|
|
46222
|
+
*/
|
|
46223
|
+
|
|
46224
|
+
}, {
|
|
46225
|
+
key: "calculateScaleRange",
|
|
46226
|
+
value: function calculateScaleRange(minMax, scrollbarOpt) {
|
|
46227
|
+
var _this$labelStyle;
|
|
46228
|
+
|
|
46229
|
+
var maxValue;
|
|
46230
|
+
var minValue;
|
|
46231
|
+
var isDefaultMaxSameAsMin = false;
|
|
46232
|
+
var range = scrollbarOpt !== null && scrollbarOpt !== void 0 && scrollbarOpt.use ? scrollbarOpt === null || scrollbarOpt === void 0 ? void 0 : scrollbarOpt.range : this.range;
|
|
46233
|
+
|
|
46234
|
+
if (Array.isArray(range) && (range === null || range === void 0 ? void 0 : range.length) === 2) {
|
|
46235
|
+
if (this.options.type === 'heatMap') {
|
|
46236
|
+
maxValue = range[1] > +minMax.max ? +minMax.max : range[1];
|
|
46237
|
+
minValue = range[0] < +minMax.min ? +minMax.min : range[0];
|
|
46238
|
+
} else {
|
|
46239
|
+
maxValue = range[1];
|
|
46240
|
+
minValue = range[0];
|
|
46241
|
+
}
|
|
46242
|
+
} else if (typeof range === 'function') {
|
|
46243
|
+
var _range = range(minMax.min, minMax.max);
|
|
46244
|
+
|
|
46245
|
+
var _range2 = _slicedToArray(_range, 2);
|
|
46246
|
+
|
|
46247
|
+
minValue = _range2[0];
|
|
46248
|
+
maxValue = _range2[1];
|
|
46249
|
+
} else {
|
|
46250
|
+
maxValue = minMax.max;
|
|
46251
|
+
minValue = minMax.min;
|
|
46252
|
+
} // autoScaleRatio 적용 케이스
|
|
46253
|
+
|
|
46254
|
+
|
|
46255
|
+
if (this.autoScaleRatio) {
|
|
46256
|
+
var temp = maxValue; // 양수 방향에만 autoScaleRatio 적용
|
|
46257
|
+
|
|
46258
|
+
maxValue = Math.ceil(maxValue * (this.autoScaleRatio + 1));
|
|
46259
|
+
|
|
46260
|
+
if (maxValue > 0 && minValue < 0) {
|
|
46261
|
+
// 양수/음수 혼합 케이스 -- 음수 방향에도 maxValue 증가분만큼 더하기
|
|
46262
|
+
var diff = temp - maxValue;
|
|
46263
|
+
minValue += diff;
|
|
46264
|
+
} else if (maxValue < 0 && minValue < 0) {
|
|
46265
|
+
// 전부 음수 케이스 -- 음수 방향에도 autoScaleRatio 적용
|
|
46266
|
+
minValue = Math.ceil(minValue * (this.autoScaleRatio + 1));
|
|
46267
|
+
}
|
|
46268
|
+
} // 0 기준 축 설정 케이스
|
|
46269
|
+
|
|
46270
|
+
|
|
46271
|
+
if (this.startToZero) {
|
|
46272
|
+
if (minValue > 0) {
|
|
46273
|
+
minValue = 0;
|
|
46274
|
+
}
|
|
46275
|
+
|
|
46276
|
+
if (maxValue < 0) {
|
|
46277
|
+
maxValue = 0;
|
|
46278
|
+
}
|
|
46279
|
+
}
|
|
46280
|
+
|
|
46281
|
+
if (maxValue === minValue) {
|
|
46282
|
+
maxValue += 1;
|
|
46283
|
+
isDefaultMaxSameAsMin = true;
|
|
46284
|
+
}
|
|
46285
|
+
|
|
46286
|
+
var minLabel = this.getLabelFormat(minValue);
|
|
46287
|
+
var maxLabel = this.getLabelFormat(maxValue, {
|
|
46288
|
+
isMaxValueSameAsMin: isDefaultMaxSameAsMin
|
|
46289
|
+
});
|
|
46290
|
+
return {
|
|
46291
|
+
min: minValue,
|
|
46292
|
+
max: maxValue,
|
|
46293
|
+
minLabel: minLabel,
|
|
46294
|
+
maxLabel: maxLabel,
|
|
46295
|
+
size: helpers_util.calcTextSize(maxLabel, helpers_util.getLabelStyle(this.labelStyle), (_this$labelStyle = this.labelStyle) === null || _this$labelStyle === void 0 ? void 0 : _this$labelStyle.padding)
|
|
46296
|
+
};
|
|
46026
46297
|
}
|
|
46027
46298
|
}]);
|
|
46028
46299
|
|
|
@@ -47252,7 +47523,7 @@ var plugins_legend_modules = {
|
|
|
47252
47523
|
var useLegendSeries = [];
|
|
47253
47524
|
|
|
47254
47525
|
if (groups) {
|
|
47255
|
-
useLegendSeries = groups.
|
|
47526
|
+
useLegendSeries = groups.filter(function (sId) {
|
|
47256
47527
|
return _this3.seriesList[sId].showLegend;
|
|
47257
47528
|
}).map(function (sId) {
|
|
47258
47529
|
return [sId, _this3.seriesList[sId]];
|
|
@@ -47303,9 +47574,8 @@ var plugins_legend_modules = {
|
|
|
47303
47574
|
},
|
|
47304
47575
|
|
|
47305
47576
|
/**
|
|
47306
|
-
* Adds legends for each group in `groups` array, iterating through each series
|
|
47307
|
-
*
|
|
47308
|
-
* order as displayed in the chart. Only adds series with `showLegend` set to `true`.
|
|
47577
|
+
* Adds legends for each group in `groups` array, iterating through each series within the group.
|
|
47578
|
+
* Only adds series with `showLegend` set to `true`.
|
|
47309
47579
|
*
|
|
47310
47580
|
* @param {Array} groups - Array of groups containing series identifiers.
|
|
47311
47581
|
* @param {Object} seriesList - Object containing all series, keyed by series ID.
|
|
@@ -47316,7 +47586,7 @@ var plugins_legend_modules = {
|
|
|
47316
47586
|
var _this5 = this;
|
|
47317
47587
|
|
|
47318
47588
|
groups.forEach(function (group) {
|
|
47319
|
-
group.
|
|
47589
|
+
group.forEach(function (sId) {
|
|
47320
47590
|
var series = seriesList[sId];
|
|
47321
47591
|
|
|
47322
47592
|
if (series && series.showLegend) {
|
|
@@ -50458,6 +50728,15 @@ function inRange(number, start, end) {
|
|
|
50458
50728
|
|
|
50459
50729
|
|
|
50460
50730
|
|
|
50731
|
+
|
|
50732
|
+
|
|
50733
|
+
|
|
50734
|
+
|
|
50735
|
+
|
|
50736
|
+
|
|
50737
|
+
|
|
50738
|
+
|
|
50739
|
+
|
|
50461
50740
|
|
|
50462
50741
|
|
|
50463
50742
|
|
|
@@ -50564,14 +50843,30 @@ var plugins_interaction_modules = {
|
|
|
50564
50843
|
}
|
|
50565
50844
|
|
|
50566
50845
|
if (indicator.use && type !== 'pie' && type !== 'scatter' && type !== 'heatMap') {
|
|
50567
|
-
|
|
50846
|
+
// Use data point position instead of mouse position for indicator when tooltip is enabled
|
|
50847
|
+
var indicatorOffset = offset;
|
|
50568
50848
|
|
|
50569
50849
|
var label = _this.getTimeLabel(offset);
|
|
50570
50850
|
|
|
50851
|
+
var useAxisTrigger = tooltip.use && tooltip.trigger === 'axis' && type === 'line';
|
|
50852
|
+
|
|
50853
|
+
if (useAxisTrigger && Object.keys(hitInfo.items).length) {
|
|
50854
|
+
var hitId = hitInfo.hitId || Object.keys(hitInfo.items)[0];
|
|
50855
|
+
var hitItem = hitInfo.items[hitId];
|
|
50856
|
+
|
|
50857
|
+
if (hitItem && hitItem.data && hitItem.data.xp !== undefined && hitItem.data.yp !== undefined) {
|
|
50858
|
+
indicatorOffset = [hitItem.data.xp, hitItem.data.yp];
|
|
50859
|
+
label = _this.data.labels[hitItem.index];
|
|
50860
|
+
}
|
|
50861
|
+
}
|
|
50862
|
+
|
|
50863
|
+
_this.drawIndicator(indicatorOffset, indicator.color);
|
|
50864
|
+
|
|
50571
50865
|
args.hoveredLabel = {
|
|
50572
50866
|
horizontal: _this.options.horizontal,
|
|
50573
50867
|
label: label,
|
|
50574
|
-
mousePosition: [e.clientX, e.clientY]
|
|
50868
|
+
mousePosition: [e.clientX, e.clientY],
|
|
50869
|
+
useAxisTrigger: useAxisTrigger
|
|
50575
50870
|
};
|
|
50576
50871
|
} else {
|
|
50577
50872
|
args.hoveredLabel = {
|
|
@@ -51431,17 +51726,59 @@ var plugins_interaction_modules = {
|
|
|
51431
51726
|
}
|
|
51432
51727
|
},
|
|
51433
51728
|
|
|
51729
|
+
/**
|
|
51730
|
+
* @typedef {object} HitInfo
|
|
51731
|
+
* @property {object} items
|
|
51732
|
+
* @property {string} hitId
|
|
51733
|
+
* @property {object} maxTip
|
|
51734
|
+
* @property {object} maxHighlight
|
|
51735
|
+
*/
|
|
51736
|
+
|
|
51434
51737
|
/**
|
|
51435
51738
|
* Find graph item on mouse position
|
|
51436
51739
|
* @param {array} offset return value from getMousePosition()
|
|
51437
51740
|
*
|
|
51438
|
-
* @returns {
|
|
51741
|
+
* @returns {HitInfo} hit item information
|
|
51439
51742
|
*/
|
|
51440
51743
|
findHitItem: function findHitItem(offset) {
|
|
51744
|
+
var _this4 = this;
|
|
51745
|
+
|
|
51441
51746
|
var sIds = Object.keys(this.seriesList);
|
|
51442
51747
|
var items = {};
|
|
51443
51748
|
var isHorizontal = !!this.options.horizontal;
|
|
51444
|
-
var ctx = this.tooltipCtx;
|
|
51749
|
+
var ctx = this.tooltipCtx; // Cache for measureText to avoid repeated calculations
|
|
51750
|
+
|
|
51751
|
+
if (!this._measureTextCache) {
|
|
51752
|
+
this._measureTextCache = new Map();
|
|
51753
|
+
} // Use sliding window cache based on text length to maintain frequently used entries
|
|
51754
|
+
|
|
51755
|
+
|
|
51756
|
+
if (this._measureTextCache.size > 1000) {
|
|
51757
|
+
var entries = Array.from(this._measureTextCache.entries()); // Sort by text length (shorter texts are likely more frequently used)
|
|
51758
|
+
|
|
51759
|
+
entries.sort(function (_ref2, _ref3) {
|
|
51760
|
+
var _ref4 = _slicedToArray(_ref2, 1),
|
|
51761
|
+
keyA = _ref4[0];
|
|
51762
|
+
|
|
51763
|
+
var _ref5 = _slicedToArray(_ref3, 1),
|
|
51764
|
+
keyB = _ref5[0];
|
|
51765
|
+
|
|
51766
|
+
var textA = keyA.split('-')[0];
|
|
51767
|
+
var textB = keyB.split('-')[0];
|
|
51768
|
+
return textA.length - textB.length;
|
|
51769
|
+
}); // Keep the first 500 entries (shorter texts)
|
|
51770
|
+
|
|
51771
|
+
this._measureTextCache.clear();
|
|
51772
|
+
|
|
51773
|
+
entries.slice(0, 500).forEach(function (_ref6) {
|
|
51774
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
|
51775
|
+
key = _ref7[0],
|
|
51776
|
+
value = _ref7[1];
|
|
51777
|
+
|
|
51778
|
+
_this4._measureTextCache.set(key, value);
|
|
51779
|
+
});
|
|
51780
|
+
}
|
|
51781
|
+
|
|
51445
51782
|
var hitId = null;
|
|
51446
51783
|
var maxs = '';
|
|
51447
51784
|
var maxsw = 0;
|
|
@@ -51451,64 +51788,81 @@ var plugins_interaction_modules = {
|
|
|
51451
51788
|
|
|
51452
51789
|
for (var ix = 0; ix < sIds.length; ix++) {
|
|
51453
51790
|
var sId = sIds[ix];
|
|
51454
|
-
var series = this.seriesList[sId];
|
|
51791
|
+
var series = this.seriesList[sId]; // Skip hidden series for performance
|
|
51455
51792
|
|
|
51456
|
-
if (series.findGraphData) {
|
|
51457
|
-
|
|
51793
|
+
if (!series.show || !series.findGraphData) {
|
|
51794
|
+
// eslint-disable-next-line no-continue
|
|
51795
|
+
continue;
|
|
51796
|
+
}
|
|
51458
51797
|
|
|
51459
|
-
|
|
51460
|
-
var gdata = void 0;
|
|
51798
|
+
var item = series.findGraphData(offset, isHorizontal);
|
|
51461
51799
|
|
|
51462
|
-
|
|
51463
|
-
|
|
51464
|
-
|
|
51465
|
-
|
|
51466
|
-
|
|
51467
|
-
gdata = item.data.
|
|
51800
|
+
if (item !== null && item !== void 0 && item.data) {
|
|
51801
|
+
var gdata = void 0;
|
|
51802
|
+
|
|
51803
|
+
if (item.data.o === null && series.interpolation !== 'zero') {
|
|
51804
|
+
if (!series.isExistGrp) {
|
|
51805
|
+
gdata = isHorizontal ? item.data.x : item.data.y;
|
|
51468
51806
|
}
|
|
51807
|
+
} else if (!isNaN(item.data.o)) {
|
|
51808
|
+
gdata = item.data.o;
|
|
51809
|
+
}
|
|
51469
51810
|
|
|
51470
|
-
|
|
51471
|
-
|
|
51472
|
-
|
|
51473
|
-
|
|
51474
|
-
|
|
51475
|
-
|
|
51476
|
-
|
|
51477
|
-
var sw = ctx ? ctx.measureText(formattedSeriesName).width : 1;
|
|
51478
|
-
item.id = series.id;
|
|
51479
|
-
item.name = formattedSeriesName;
|
|
51480
|
-
item.axis = {
|
|
51481
|
-
x: series.xAxisIndex,
|
|
51482
|
-
y: series.yAxisIndex
|
|
51483
|
-
};
|
|
51484
|
-
items[sId] = item;
|
|
51485
|
-
var formattedTxt = this.getFormattedTooltipValue({
|
|
51486
|
-
dataId: series.id,
|
|
51487
|
-
seriesId: sId,
|
|
51488
|
-
seriesName: formattedSeriesName,
|
|
51489
|
-
value: gdata,
|
|
51490
|
-
itemData: item.data
|
|
51491
|
-
});
|
|
51492
|
-
item.data.formatted = formattedTxt;
|
|
51811
|
+
if (gdata !== null && gdata !== undefined) {
|
|
51812
|
+
var formattedSeriesName = this.getFormattedTooltipLabel({
|
|
51813
|
+
dataId: series.id,
|
|
51814
|
+
seriesId: sId,
|
|
51815
|
+
seriesName: series.name,
|
|
51816
|
+
itemData: item.data
|
|
51817
|
+
}); // Use cached measureText for better performance
|
|
51493
51818
|
|
|
51494
|
-
|
|
51495
|
-
maxs = formattedSeriesName;
|
|
51496
|
-
maxsw = sw;
|
|
51497
|
-
}
|
|
51819
|
+
var sw = 1;
|
|
51498
51820
|
|
|
51499
|
-
|
|
51500
|
-
|
|
51501
|
-
}
|
|
51821
|
+
if (ctx) {
|
|
51822
|
+
var cacheKey = "".concat(formattedSeriesName, "-").concat(ctx.font);
|
|
51502
51823
|
|
|
51503
|
-
if (
|
|
51504
|
-
|
|
51505
|
-
|
|
51506
|
-
|
|
51824
|
+
if (this._measureTextCache.has(cacheKey)) {
|
|
51825
|
+
sw = this._measureTextCache.get(cacheKey);
|
|
51826
|
+
} else {
|
|
51827
|
+
sw = ctx.measureText(formattedSeriesName).width;
|
|
51507
51828
|
|
|
51508
|
-
|
|
51509
|
-
hitId = sId;
|
|
51829
|
+
this._measureTextCache.set(cacheKey, sw);
|
|
51510
51830
|
}
|
|
51511
51831
|
}
|
|
51832
|
+
|
|
51833
|
+
item.id = series.id;
|
|
51834
|
+
item.name = formattedSeriesName;
|
|
51835
|
+
item.axis = {
|
|
51836
|
+
x: series.xAxisIndex,
|
|
51837
|
+
y: series.yAxisIndex
|
|
51838
|
+
};
|
|
51839
|
+
items[sId] = item;
|
|
51840
|
+
var formattedTxt = this.getFormattedTooltipValue({
|
|
51841
|
+
dataId: series.id,
|
|
51842
|
+
seriesId: sId,
|
|
51843
|
+
seriesName: formattedSeriesName,
|
|
51844
|
+
value: gdata,
|
|
51845
|
+
itemData: item.data
|
|
51846
|
+
});
|
|
51847
|
+
item.data.formatted = formattedTxt;
|
|
51848
|
+
|
|
51849
|
+
if (maxsw < sw) {
|
|
51850
|
+
maxs = formattedSeriesName;
|
|
51851
|
+
maxsw = sw;
|
|
51852
|
+
}
|
|
51853
|
+
|
|
51854
|
+
if (maxv.length <= "".concat(formattedTxt).length) {
|
|
51855
|
+
maxv = "".concat(formattedTxt);
|
|
51856
|
+
}
|
|
51857
|
+
|
|
51858
|
+
if (maxg === null || maxg <= gdata) {
|
|
51859
|
+
maxg = gdata;
|
|
51860
|
+
maxSID = sId;
|
|
51861
|
+
}
|
|
51862
|
+
|
|
51863
|
+
if (item.hit) {
|
|
51864
|
+
hitId = sId;
|
|
51865
|
+
}
|
|
51512
51866
|
}
|
|
51513
51867
|
}
|
|
51514
51868
|
}
|
|
@@ -51531,13 +51885,13 @@ var plugins_interaction_modules = {
|
|
|
51531
51885
|
* @param itemData
|
|
51532
51886
|
* @returns {string}
|
|
51533
51887
|
*/
|
|
51534
|
-
getFormattedTooltipLabel: function getFormattedTooltipLabel(
|
|
51888
|
+
getFormattedTooltipLabel: function getFormattedTooltipLabel(_ref8) {
|
|
51535
51889
|
var _tooltipOpt$formatter;
|
|
51536
51890
|
|
|
51537
|
-
var dataId =
|
|
51538
|
-
seriesId =
|
|
51539
|
-
seriesName =
|
|
51540
|
-
itemData =
|
|
51891
|
+
var dataId = _ref8.dataId,
|
|
51892
|
+
seriesId = _ref8.seriesId,
|
|
51893
|
+
seriesName = _ref8.seriesName,
|
|
51894
|
+
itemData = _ref8.itemData;
|
|
51541
51895
|
var opt = this.options;
|
|
51542
51896
|
var tooltipOpt = opt.tooltip;
|
|
51543
51897
|
var tooltipLabelFormatter = tooltipOpt === null || tooltipOpt === void 0 ? void 0 : (_tooltipOpt$formatter = tooltipOpt.formatter) === null || _tooltipOpt$formatter === void 0 ? void 0 : _tooltipOpt$formatter.label;
|
|
@@ -51564,14 +51918,14 @@ var plugins_interaction_modules = {
|
|
|
51564
51918
|
* @param itemData
|
|
51565
51919
|
* @returns {string}
|
|
51566
51920
|
*/
|
|
51567
|
-
getFormattedTooltipValue: function getFormattedTooltipValue(
|
|
51921
|
+
getFormattedTooltipValue: function getFormattedTooltipValue(_ref9) {
|
|
51568
51922
|
var _tooltipOpt$formatter2;
|
|
51569
51923
|
|
|
51570
|
-
var dataId =
|
|
51571
|
-
seriesId =
|
|
51572
|
-
seriesName =
|
|
51573
|
-
value =
|
|
51574
|
-
itemData =
|
|
51924
|
+
var dataId = _ref9.dataId,
|
|
51925
|
+
seriesId = _ref9.seriesId,
|
|
51926
|
+
seriesName = _ref9.seriesName,
|
|
51927
|
+
value = _ref9.value,
|
|
51928
|
+
itemData = _ref9.itemData;
|
|
51575
51929
|
var opt = this.options;
|
|
51576
51930
|
var isHorizontal = !!opt.horizontal;
|
|
51577
51931
|
var tooltipOpt = opt.tooltip;
|
|
@@ -51744,7 +52098,7 @@ var plugins_interaction_modules = {
|
|
|
51744
52098
|
* @returns {object[]}
|
|
51745
52099
|
*/
|
|
51746
52100
|
getSelectedLabelInfoWithLabelData: function getSelectedLabelInfoWithLabelData(labelIndexList, targetAxis) {
|
|
51747
|
-
var
|
|
52101
|
+
var _this5 = this;
|
|
51748
52102
|
|
|
51749
52103
|
var _this$options9 = this.options,
|
|
51750
52104
|
selectLabelOpt = _this$options9.selectLabel,
|
|
@@ -51760,14 +52114,14 @@ var plugins_interaction_modules = {
|
|
|
51760
52114
|
{
|
|
51761
52115
|
result.dataIndex.splice(selectLabelOpt.limit);
|
|
51762
52116
|
result.label = result.dataIndex.map(function (i) {
|
|
51763
|
-
return
|
|
52117
|
+
return _this5.data.labels[i];
|
|
51764
52118
|
});
|
|
51765
52119
|
var dataEntries = Object.entries(this.data.data);
|
|
51766
52120
|
result.data = result.dataIndex.map(function (labelIdx) {
|
|
51767
|
-
return Object.fromEntries(dataEntries.map(function (
|
|
51768
|
-
var
|
|
51769
|
-
sId =
|
|
51770
|
-
data =
|
|
52121
|
+
return Object.fromEntries(dataEntries.map(function (_ref10) {
|
|
52122
|
+
var _ref11 = _slicedToArray(_ref10, 2),
|
|
52123
|
+
sId = _ref11[0],
|
|
52124
|
+
data = _ref11[1];
|
|
51771
52125
|
|
|
51772
52126
|
return [sId, data[labelIdx]];
|
|
51773
52127
|
}));
|
|
@@ -51790,12 +52144,12 @@ var plugins_interaction_modules = {
|
|
|
51790
52144
|
}
|
|
51791
52145
|
|
|
51792
52146
|
result.label = result.dataIndex.map(function (i) {
|
|
51793
|
-
return
|
|
52147
|
+
return _this5.data.labels[targetAxisDirection][i];
|
|
51794
52148
|
});
|
|
51795
52149
|
var dataValues = Object.values(this.data.data)[0];
|
|
51796
|
-
result.data = dataValues.filter(function (
|
|
51797
|
-
var x =
|
|
51798
|
-
y =
|
|
52150
|
+
result.data = dataValues.filter(function (_ref12) {
|
|
52151
|
+
var x = _ref12.x,
|
|
52152
|
+
y = _ref12.y;
|
|
51799
52153
|
return result.label.includes(targetAxisDirection === 'y' ? y : x);
|
|
51800
52154
|
});
|
|
51801
52155
|
break;
|
|
@@ -51918,14 +52272,14 @@ var plugins_interaction_modules = {
|
|
|
51918
52272
|
* object.range: coordinate-based range in graph
|
|
51919
52273
|
* @returns {object}
|
|
51920
52274
|
*/
|
|
51921
|
-
getSelectionRange: function getSelectionRange(
|
|
52275
|
+
getSelectionRange: function getSelectionRange(_ref13) {
|
|
51922
52276
|
var _this$boxOverflow, _this$boxOverflow2, _this$boxOverflow3, _this$boxOverflow4;
|
|
51923
52277
|
|
|
51924
|
-
var xsp =
|
|
51925
|
-
ysp =
|
|
51926
|
-
width =
|
|
51927
|
-
height =
|
|
51928
|
-
range =
|
|
52278
|
+
var xsp = _ref13.xsp,
|
|
52279
|
+
ysp = _ref13.ysp,
|
|
52280
|
+
width = _ref13.width,
|
|
52281
|
+
height = _ref13.height,
|
|
52282
|
+
range = _ref13.range;
|
|
51929
52283
|
var dataRangeX = this.axesSteps.x.length ? this.axesSteps.x[0] : null;
|
|
51930
52284
|
var dataRangeY = this.axesSteps.y.length ? this.axesSteps.y[0] : null;
|
|
51931
52285
|
|
|
@@ -51982,11 +52336,11 @@ var plugins_interaction_modules = {
|
|
|
51982
52336
|
|
|
51983
52337
|
var sId = Object.keys(this.seriesList)[0];
|
|
51984
52338
|
|
|
51985
|
-
var
|
|
51986
|
-
xMin =
|
|
51987
|
-
xMax =
|
|
51988
|
-
yMin =
|
|
51989
|
-
yMax =
|
|
52339
|
+
var _ref14 = (_this$seriesList$sId$ = this.seriesList[sId].findSelectionRange(range)) !== null && _this$seriesList$sId$ !== void 0 ? _this$seriesList$sId$ : {},
|
|
52340
|
+
xMin = _ref14.xMin,
|
|
52341
|
+
xMax = _ref14.xMax,
|
|
52342
|
+
yMin = _ref14.yMin,
|
|
52343
|
+
yMax = _ref14.yMax;
|
|
51990
52344
|
|
|
51991
52345
|
return {
|
|
51992
52346
|
xMin: xMin !== null && xMin !== void 0 ? xMin : dataRangeX.graphMin,
|
|
@@ -52076,6 +52430,7 @@ var plugins_interaction_modules = {
|
|
|
52076
52430
|
|
|
52077
52431
|
|
|
52078
52432
|
|
|
52433
|
+
|
|
52079
52434
|
var LINE_SPACING = 8;
|
|
52080
52435
|
var VALUE_MARGIN = 50;
|
|
52081
52436
|
var SCROLL_WIDTH = 17;
|
|
@@ -52866,7 +53221,7 @@ var plugins_tooltip_modules = {
|
|
|
52866
53221
|
y1: this.chartRect.y1 + this.labelOffset.top,
|
|
52867
53222
|
y2: this.chartRect.y2 - this.labelOffset.bottom
|
|
52868
53223
|
};
|
|
52869
|
-
var mouseXIp =
|
|
53224
|
+
var mouseXIp = 5; // mouseInterpolation - increased for better edge detection
|
|
52870
53225
|
|
|
52871
53226
|
var mouseYIp = 10;
|
|
52872
53227
|
var options = this.options;
|
|
@@ -52962,7 +53317,8 @@ var plugins_tooltip_modules = {
|
|
|
52962
53317
|
|
|
52963
53318
|
var horizontal = _ref5.horizontal,
|
|
52964
53319
|
label = _ref5.label,
|
|
52965
|
-
mousePosition = _ref5.mousePosition
|
|
53320
|
+
mousePosition = _ref5.mousePosition,
|
|
53321
|
+
useAxisTrigger = _ref5.useAxisTrigger;
|
|
52966
53322
|
|
|
52967
53323
|
if (!mousePosition || !!horizontal !== !!this.options.horizontal) {
|
|
52968
53324
|
return;
|
|
@@ -53009,7 +53365,25 @@ var plugins_tooltip_modules = {
|
|
|
53009
53365
|
y2: this.chartRect.y2 - this.labelOffset.bottom
|
|
53010
53366
|
};
|
|
53011
53367
|
|
|
53012
|
-
if (
|
|
53368
|
+
if (useAxisTrigger && label) {
|
|
53369
|
+
var _this$data$labels5;
|
|
53370
|
+
|
|
53371
|
+
var matchIndex = (_this$data$labels5 = this.data.labels) === null || _this$data$labels5 === void 0 ? void 0 : _this$data$labels5.findIndex(function (l) {
|
|
53372
|
+
return (l === null || l === void 0 ? void 0 : l.valueOf()) === (label === null || label === void 0 ? void 0 : label.valueOf());
|
|
53373
|
+
});
|
|
53374
|
+
|
|
53375
|
+
if (matchIndex >= 0) {
|
|
53376
|
+
var _Object$keys, _this$seriesList, _this$seriesList$seri, _this$seriesList$seri2;
|
|
53377
|
+
|
|
53378
|
+
var seriesId = (_Object$keys = Object.keys(this.seriesList)) === null || _Object$keys === void 0 ? void 0 : _Object$keys[0];
|
|
53379
|
+
var dataPoint = (_this$seriesList = this.seriesList) === null || _this$seriesList === void 0 ? void 0 : (_this$seriesList$seri = _this$seriesList[seriesId]) === null || _this$seriesList$seri === void 0 ? void 0 : (_this$seriesList$seri2 = _this$seriesList$seri.data) === null || _this$seriesList$seri2 === void 0 ? void 0 : _this$seriesList$seri2[matchIndex];
|
|
53380
|
+
|
|
53381
|
+
if ((dataPoint === null || dataPoint === void 0 ? void 0 : dataPoint.xp) !== undefined && (dataPoint === null || dataPoint === void 0 ? void 0 : dataPoint.xp) !== null) {
|
|
53382
|
+
var yPosition = !lodash_es_isNil(dataPoint.yp) ? dataPoint.yp : (graphPos.y1 + graphPos.y2) / 2;
|
|
53383
|
+
this.drawIndicator([dataPoint.xp, yPosition], this.options.indicator.color);
|
|
53384
|
+
}
|
|
53385
|
+
}
|
|
53386
|
+
} else if (horizontal) {
|
|
53013
53387
|
var chartHeight = graphPos.y2 - graphPos.y1;
|
|
53014
53388
|
var offsetY = chartHeight * (label - fromTime) / (toTime - fromTime) + graphPos.y1;
|
|
53015
53389
|
this.drawIndicator([graphPos.x2, offsetY], this.options.indicator.color);
|
|
@@ -53360,7 +53734,6 @@ var plugins_pie_modules = {
|
|
|
53360
53734
|
|
|
53361
53735
|
|
|
53362
53736
|
|
|
53363
|
-
|
|
53364
53737
|
var element_tip_modules = {
|
|
53365
53738
|
/**
|
|
53366
53739
|
* Draw TextTip with tip's locationInfo
|
|
@@ -53394,8 +53767,7 @@ var element_tip_modules = {
|
|
|
53394
53767
|
}
|
|
53395
53768
|
|
|
53396
53769
|
if (labelTipOpt.use && labelTipOpt.showTip) {
|
|
53397
|
-
|
|
53398
|
-
isExistSelectedLabel = isHeatMap ? this.drawLabelTipForHeatMap() : this.drawLabelTip();
|
|
53770
|
+
isExistSelectedLabel = opt.type === 'heatMap' ? this.drawLabelTipForHeatMap() : this.drawTipForSelectedLabel();
|
|
53399
53771
|
}
|
|
53400
53772
|
|
|
53401
53773
|
var executeDrawIndicator = function executeDrawIndicator(tipOpt) {
|
|
@@ -53681,9 +54053,10 @@ var element_tip_modules = {
|
|
|
53681
54053
|
|
|
53682
54054
|
/**
|
|
53683
54055
|
* Draw Selected Label Tip
|
|
54056
|
+
* none Text
|
|
53684
54057
|
* @returns {boolean} Whether drew at least one tip
|
|
53685
54058
|
*/
|
|
53686
|
-
|
|
54059
|
+
drawTipForSelectedLabel: function drawTipForSelectedLabel() {
|
|
53687
54060
|
var _this2 = this;
|
|
53688
54061
|
|
|
53689
54062
|
var opt = this.options;
|
|
@@ -53709,7 +54082,7 @@ var element_tip_modules = {
|
|
|
53709
54082
|
};
|
|
53710
54083
|
var labelAxes = isHorizontal ? this.axesY[0] : this.axesX[0];
|
|
53711
54084
|
var valueAxes = isHorizontal ? this.axesX[0] : this.axesY[0];
|
|
53712
|
-
var
|
|
54085
|
+
var valueAxesSteps = isHorizontal ? this.axesSteps.x[0] : this.axesSteps.y[0];
|
|
53713
54086
|
var valuePositionCalcFunction = isHorizontal ? helpers_canvas.calculateX : helpers_canvas.calculateY;
|
|
53714
54087
|
var labelPositionCalcFunction = isHorizontal ? helpers_canvas.calculateY : helpers_canvas.calculateX;
|
|
53715
54088
|
var scrollbarOpt = isHorizontal ? this.scrollbar.y : this.scrollbar.x;
|
|
@@ -53727,8 +54100,8 @@ var element_tip_modules = {
|
|
|
53727
54100
|
return _this2.seriesList[sId].isExistGrp && !_this2.seriesList[sId].isOverlapping;
|
|
53728
54101
|
});
|
|
53729
54102
|
var groups = (_this$data$groups$ = (_this$data$groups = this.data.groups) === null || _this$data$groups === void 0 ? void 0 : _this$data$groups[0]) !== null && _this$data$groups$ !== void 0 ? _this$data$groups$ : [];
|
|
53730
|
-
var
|
|
53731
|
-
var
|
|
54103
|
+
var labelPos;
|
|
54104
|
+
var dataPos;
|
|
53732
54105
|
var value;
|
|
53733
54106
|
var labelStartPoint;
|
|
53734
54107
|
var labelEndPoint;
|
|
@@ -53776,31 +54149,39 @@ var element_tip_modules = {
|
|
|
53776
54149
|
}
|
|
53777
54150
|
|
|
53778
54151
|
data.forEach(function (selectedData, i) {
|
|
53779
|
-
|
|
53780
|
-
|
|
53781
|
-
|
|
53782
|
-
|
|
53783
|
-
var
|
|
53784
|
-
|
|
53785
|
-
|
|
53786
|
-
|
|
53787
|
-
|
|
53788
|
-
|
|
53789
|
-
|
|
53790
|
-
var
|
|
53791
|
-
|
|
53792
|
-
|
|
53793
|
-
|
|
53794
|
-
|
|
53795
|
-
|
|
53796
|
-
|
|
53797
|
-
var
|
|
53798
|
-
|
|
53799
|
-
|
|
53800
|
-
|
|
53801
|
-
|
|
53802
|
-
|
|
53803
|
-
|
|
54152
|
+
value = valueAxesSteps.graphMax;
|
|
54153
|
+
|
|
54154
|
+
if (!labelTipOpt.fixedPosTop) {
|
|
54155
|
+
if (isExistGrp) {
|
|
54156
|
+
var _visibleSeries$filter, _visibleSeries$filter2;
|
|
54157
|
+
|
|
54158
|
+
var positiveSum = visibleSeries === null || visibleSeries === void 0 ? void 0 : visibleSeries.reduce(function (ac, sId) {
|
|
54159
|
+
var _selectedData$sId$val, _selectedData$sId, _selectedData$sId$val2, _selectedData$sId2;
|
|
54160
|
+
|
|
54161
|
+
return groups.includes(sId) && ((_selectedData$sId$val = (_selectedData$sId = selectedData[sId]) === null || _selectedData$sId === void 0 ? void 0 : _selectedData$sId.value) !== null && _selectedData$sId$val !== void 0 ? _selectedData$sId$val : selectedData[sId]) > 0 ? ac + ((_selectedData$sId$val2 = (_selectedData$sId2 = selectedData[sId]) === null || _selectedData$sId2 === void 0 ? void 0 : _selectedData$sId2.value) !== null && _selectedData$sId$val2 !== void 0 ? _selectedData$sId$val2 : selectedData[sId]) : ac;
|
|
54162
|
+
}, 0);
|
|
54163
|
+
var nonGroupValues = (_visibleSeries$filter = visibleSeries === null || visibleSeries === void 0 ? void 0 : (_visibleSeries$filter2 = visibleSeries.filter(function (sId) {
|
|
54164
|
+
return !groups.includes(sId);
|
|
54165
|
+
})) === null || _visibleSeries$filter2 === void 0 ? void 0 : _visibleSeries$filter2.map(function (sId) {
|
|
54166
|
+
var _selectedData$sId$val3, _selectedData$sId3;
|
|
54167
|
+
|
|
54168
|
+
return (_selectedData$sId$val3 = (_selectedData$sId3 = selectedData[sId]) === null || _selectedData$sId3 === void 0 ? void 0 : _selectedData$sId3.value) !== null && _selectedData$sId$val3 !== void 0 ? _selectedData$sId$val3 : selectedData[sId];
|
|
54169
|
+
})) !== null && _visibleSeries$filter !== void 0 ? _visibleSeries$filter : [];
|
|
54170
|
+
var maxNonGroupValue = (nonGroupValues === null || nonGroupValues === void 0 ? void 0 : nonGroupValues.length) > 0 ? nonGroupValues.reduce(function (max, val) {
|
|
54171
|
+
return Math.max(max, val !== null && val !== void 0 ? val : -Infinity);
|
|
54172
|
+
}, -Infinity) : -Infinity;
|
|
54173
|
+
value = positiveSum > 0 ? Math.max(maxNonGroupValue, positiveSum) : Math.max(maxNonGroupValue, 0);
|
|
54174
|
+
} else if (visibleSeries.length) {
|
|
54175
|
+
var visibleValue = visibleSeries.map(function (sId) {
|
|
54176
|
+
var _selectedData$sId$val4, _selectedData$sId4;
|
|
54177
|
+
|
|
54178
|
+
return (_selectedData$sId$val4 = (_selectedData$sId4 = selectedData[sId]) === null || _selectedData$sId4 === void 0 ? void 0 : _selectedData$sId4.value) !== null && _selectedData$sId$val4 !== void 0 ? _selectedData$sId$val4 : selectedData[sId];
|
|
54179
|
+
});
|
|
54180
|
+
var maxValue = visibleValue.length > 0 ? visibleValue.reduce(function (max, val) {
|
|
54181
|
+
return Math.max(max, val !== null && val !== void 0 ? val : -Infinity);
|
|
54182
|
+
}, -Infinity) : -Infinity;
|
|
54183
|
+
value = maxValue > 0 || _this2.options.type !== 'bar' ? maxValue : 0;
|
|
54184
|
+
}
|
|
53804
54185
|
}
|
|
53805
54186
|
|
|
53806
54187
|
if (labelAxes.labels) {
|
|
@@ -53810,18 +54191,17 @@ var element_tip_modules = {
|
|
|
53810
54191
|
|
|
53811
54192
|
var labelIndex = dataIndex[i] - startIndex;
|
|
53812
54193
|
var labelCenter = Math.round(labelStartPoint + labelGap * labelIndex);
|
|
53813
|
-
|
|
54194
|
+
labelPos = labelCenter + labelGap / 2;
|
|
53814
54195
|
} else {
|
|
53815
|
-
|
|
54196
|
+
labelPos = labelPositionCalcFunction(label[i], graphX.graphMin, graphX.graphMax, chartWidth - sizeObj.comboOffset, aPos.x1 + sizeObj.comboOffset / 2);
|
|
53816
54197
|
}
|
|
53817
54198
|
|
|
53818
|
-
|
|
53819
|
-
gp += offset;
|
|
54199
|
+
dataPos = valuePositionCalcFunction(value, valueAxesSteps.graphMin, valueAxesSteps.graphMax, valueSpace, valueStartPoint) + offset;
|
|
53820
54200
|
|
|
53821
54201
|
_this2.showTip({
|
|
53822
54202
|
context: _this2.bufferCtx,
|
|
53823
|
-
x: isHorizontal ?
|
|
53824
|
-
y: isHorizontal ?
|
|
54203
|
+
x: isHorizontal ? dataPos : labelPos,
|
|
54204
|
+
y: isHorizontal ? labelPos : dataPos,
|
|
53825
54205
|
opt: labelTipOpt,
|
|
53826
54206
|
isSamePos: false
|
|
53827
54207
|
});
|
|
@@ -53933,10 +54313,11 @@ var element_tip_modules = {
|
|
|
53933
54313
|
}
|
|
53934
54314
|
} else if (isHorizontal) {
|
|
53935
54315
|
gp = helpers_canvas.calculateX(value, graphX.graphMin, graphX.graphMax, xArea, xsp);
|
|
53936
|
-
gp
|
|
54316
|
+
gp = value < 0 ? gp - offset : gp + offset;
|
|
53937
54317
|
} else {
|
|
53938
|
-
|
|
53939
|
-
gp
|
|
54318
|
+
var adjustedValue = type === 'bar' && value < 0 ? 0 : value;
|
|
54319
|
+
gp = helpers_canvas.calculateY(adjustedValue, graphY.graphMin, graphY.graphMax, yArea, ysp);
|
|
54320
|
+
gp = adjustedValue < 0 ? gp + offset : gp - offset;
|
|
53940
54321
|
}
|
|
53941
54322
|
|
|
53942
54323
|
var maxTipType = 'center';
|
|
@@ -53968,7 +54349,8 @@ var element_tip_modules = {
|
|
|
53968
54349
|
arrowSize: arrowSize,
|
|
53969
54350
|
borderRadius: borderRadius,
|
|
53970
54351
|
text: text,
|
|
53971
|
-
textStyle: textStyle
|
|
54352
|
+
textStyle: textStyle,
|
|
54353
|
+
isNegative: value < 0
|
|
53972
54354
|
});
|
|
53973
54355
|
}
|
|
53974
54356
|
|
|
@@ -54002,12 +54384,21 @@ var element_tip_modules = {
|
|
|
54002
54384
|
borderRadius = param.borderRadius,
|
|
54003
54385
|
text = param.text,
|
|
54004
54386
|
opt = param.opt,
|
|
54005
|
-
textStyle = param.textStyle
|
|
54387
|
+
textStyle = param.textStyle,
|
|
54388
|
+
isNegative = param.isNegative;
|
|
54006
54389
|
var ctx = param.context;
|
|
54007
54390
|
var sx = x - width / 2;
|
|
54008
54391
|
var ex = x + width / 2;
|
|
54009
54392
|
var sy = y - height;
|
|
54010
54393
|
var ey = y;
|
|
54394
|
+
|
|
54395
|
+
if (isNegative) {
|
|
54396
|
+
if (isHorizontal) {
|
|
54397
|
+
sx = x - width / 2 - width;
|
|
54398
|
+
ex = x - width / 2;
|
|
54399
|
+
}
|
|
54400
|
+
}
|
|
54401
|
+
|
|
54011
54402
|
ctx.save();
|
|
54012
54403
|
ctx.font = textStyle;
|
|
54013
54404
|
ctx.fillStyle = (_opt$tipBackground = opt.tipBackground) !== null && _opt$tipBackground !== void 0 ? _opt$tipBackground : opt.tipStyle.background;
|
|
@@ -54015,44 +54406,73 @@ var element_tip_modules = {
|
|
|
54015
54406
|
ctx.beginPath();
|
|
54016
54407
|
ctx.moveTo(sx + borderRadius, sy);
|
|
54017
54408
|
ctx.quadraticCurveTo(sx, sy, sx, sy + borderRadius);
|
|
54018
|
-
|
|
54019
|
-
if (isHorizontal) {
|
|
54020
|
-
ctx.lineTo(sx, sy + borderRadius + arrowSize / 2);
|
|
54021
|
-
ctx.lineTo(sx - arrowSize, ey - height / 2);
|
|
54022
|
-
ctx.lineTo(sx, ey - borderRadius - arrowSize / 2);
|
|
54023
|
-
}
|
|
54024
|
-
|
|
54025
54409
|
ctx.lineTo(sx, ey - borderRadius);
|
|
54026
54410
|
ctx.quadraticCurveTo(sx, ey, sx + borderRadius, ey);
|
|
54027
|
-
|
|
54028
|
-
if (!isHorizontal) {
|
|
54029
|
-
if (type === 'left') {
|
|
54030
|
-
ctx.lineTo(sx + borderRadius + arrowSize, ey + arrowSize);
|
|
54031
|
-
ctx.lineTo(sx + borderRadius + arrowSize * 2, ey);
|
|
54032
|
-
} else if (type === 'right') {
|
|
54033
|
-
ctx.lineTo(ex - arrowSize * 2 - borderRadius, ey);
|
|
54034
|
-
ctx.lineTo(ex - arrowSize - borderRadius, ey + arrowSize);
|
|
54035
|
-
} else {
|
|
54036
|
-
ctx.lineTo(x - arrowSize, ey);
|
|
54037
|
-
ctx.lineTo(x, ey + arrowSize);
|
|
54038
|
-
ctx.lineTo(x + arrowSize, ey);
|
|
54039
|
-
}
|
|
54040
|
-
}
|
|
54041
|
-
|
|
54042
54411
|
ctx.lineTo(ex - borderRadius, ey);
|
|
54043
54412
|
ctx.quadraticCurveTo(ex, ey, ex, ey - borderRadius);
|
|
54044
54413
|
ctx.lineTo(ex, sy + borderRadius);
|
|
54045
54414
|
ctx.quadraticCurveTo(ex, sy, ex - borderRadius, sy);
|
|
54046
54415
|
ctx.lineTo(sx + borderRadius, sy);
|
|
54047
54416
|
ctx.closePath();
|
|
54048
|
-
ctx.fill();
|
|
54417
|
+
ctx.fill(); // draw arrow
|
|
54418
|
+
|
|
54419
|
+
ctx.beginPath();
|
|
54420
|
+
|
|
54421
|
+
if (isHorizontal) {
|
|
54422
|
+
if (isNegative) {
|
|
54423
|
+
ctx.moveTo(ex, ey);
|
|
54424
|
+
ctx.lineTo(ex, sy + borderRadius + arrowSize / 2);
|
|
54425
|
+
ctx.lineTo(ex + arrowSize, ey - height / 2);
|
|
54426
|
+
ctx.lineTo(ex, ey - borderRadius - arrowSize / 2);
|
|
54427
|
+
} else {
|
|
54428
|
+
ctx.moveTo(sx, sy);
|
|
54429
|
+
ctx.lineTo(sx, sy + borderRadius + arrowSize / 2);
|
|
54430
|
+
ctx.lineTo(sx - arrowSize, ey - height / 2);
|
|
54431
|
+
ctx.lineTo(sx, ey - borderRadius - arrowSize / 2);
|
|
54432
|
+
}
|
|
54433
|
+
|
|
54434
|
+
ctx.closePath();
|
|
54435
|
+
ctx.fill();
|
|
54436
|
+
} else {
|
|
54437
|
+
if (isNegative) {
|
|
54438
|
+
if (type === 'left') {
|
|
54439
|
+
ctx.lineTo(sx + borderRadius + arrowSize, ey + arrowSize);
|
|
54440
|
+
ctx.lineTo(sx + borderRadius + arrowSize * 2, ey);
|
|
54441
|
+
} else if (type === 'right') {
|
|
54442
|
+
ctx.lineTo(ex - arrowSize * 2 - borderRadius, ey);
|
|
54443
|
+
ctx.lineTo(ex - arrowSize - borderRadius, ey + arrowSize);
|
|
54444
|
+
} else {
|
|
54445
|
+
ctx.lineTo(x - arrowSize, ey);
|
|
54446
|
+
ctx.lineTo(x, ey + arrowSize);
|
|
54447
|
+
ctx.lineTo(x + arrowSize, ey);
|
|
54448
|
+
}
|
|
54449
|
+
} else if (!isNegative) {
|
|
54450
|
+
if (type === 'left') {
|
|
54451
|
+
ctx.moveTo(sx, sy);
|
|
54452
|
+
ctx.lineTo(sx + borderRadius + arrowSize, ey + arrowSize);
|
|
54453
|
+
ctx.lineTo(sx + borderRadius + arrowSize * 2, ey);
|
|
54454
|
+
} else if (type === 'right') {
|
|
54455
|
+
ctx.moveTo(ex, sy);
|
|
54456
|
+
ctx.lineTo(ex - arrowSize * 2 - borderRadius, ey);
|
|
54457
|
+
ctx.lineTo(ex - arrowSize - borderRadius, ey + arrowSize);
|
|
54458
|
+
} else {
|
|
54459
|
+
ctx.lineTo(x - arrowSize, ey);
|
|
54460
|
+
ctx.lineTo(x, ey + arrowSize);
|
|
54461
|
+
ctx.lineTo(x + arrowSize, ey);
|
|
54462
|
+
}
|
|
54463
|
+
}
|
|
54464
|
+
|
|
54465
|
+
ctx.closePath();
|
|
54466
|
+
ctx.fill();
|
|
54467
|
+
}
|
|
54468
|
+
|
|
54049
54469
|
ctx.restore();
|
|
54050
54470
|
ctx.save();
|
|
54051
54471
|
ctx.font = textStyle;
|
|
54052
54472
|
ctx.fillStyle = (_opt$tipTextColor = opt.tipTextColor) !== null && _opt$tipTextColor !== void 0 ? _opt$tipTextColor : opt.tipStyle.textColor;
|
|
54053
54473
|
ctx.textBaseline = 'middle';
|
|
54054
54474
|
ctx.textAlign = 'center';
|
|
54055
|
-
ctx.fillText("".concat(text),
|
|
54475
|
+
ctx.fillText("".concat(text), sx + width / 2, sy + height / 2);
|
|
54056
54476
|
ctx.restore();
|
|
54057
54477
|
},
|
|
54058
54478
|
|
|
@@ -54304,11 +54724,13 @@ var chart_core_EvChart = /*#__PURE__*/function () {
|
|
|
54304
54724
|
value: function drawSyncedIndicator(_ref) {
|
|
54305
54725
|
var horizontal = _ref.horizontal,
|
|
54306
54726
|
label = _ref.label,
|
|
54307
|
-
mousePosition = _ref.mousePosition
|
|
54727
|
+
mousePosition = _ref.mousePosition,
|
|
54728
|
+
useAxisTrigger = _ref.useAxisTrigger;
|
|
54308
54729
|
this.drawSyncedIndicator({
|
|
54309
54730
|
horizontal: horizontal,
|
|
54310
54731
|
label: label,
|
|
54311
|
-
mousePosition: mousePosition
|
|
54732
|
+
mousePosition: mousePosition,
|
|
54733
|
+
useAxisTrigger: useAxisTrigger
|
|
54312
54734
|
});
|
|
54313
54735
|
}
|
|
54314
54736
|
}, {
|
|
@@ -56136,6 +56558,7 @@ var DEFAULT_OPTIONS = {
|
|
|
56136
56558
|
combo: false,
|
|
56137
56559
|
tooltip: {
|
|
56138
56560
|
use: true,
|
|
56561
|
+
trigger: 'axis',
|
|
56139
56562
|
sortByValue: true,
|
|
56140
56563
|
backgroundColor: '#4C4C4C',
|
|
56141
56564
|
fontColor: '#FFFFFF',
|