-
Aleksandr Lesnenko authoredAleksandr Lesnenko authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
echarts+5.5.1-rc.1.patch 4.84 KiB
diff --git a/node_modules/echarts/lib/chart/line/LineView.js b/node_modules/echarts/lib/chart/line/LineView.js
index 9da26b6..c49566f 100644
--- a/node_modules/echarts/lib/chart/line/LineView.js
+++ b/node_modules/echarts/lib/chart/line/LineView.js
@@ -140,6 +140,9 @@ function turnPointsIntoStep(points, coordSys, stepTurnAt, connectNulls) {
pt[0] = points[i];
pt[1] = points[i + 1];
stepPoints.push(pt[0], pt[1]);
+ if (isNaN(nextPt[1 - baseIndex])) {
+ continue;
+ }
switch (stepTurnAt) {
case 'end':
stepPt[baseIndex] = nextPt[baseIndex];
diff --git a/node_modules/echarts/lib/chart/line/helper.js b/node_modules/echarts/lib/chart/line/helper.js
index fa02e2f..eee577a 100644
--- a/node_modules/echarts/lib/chart/line/helper.js
+++ b/node_modules/echarts/lib/chart/line/helper.js
@@ -108,16 +108,20 @@ function getValueStart(valueAxis, valueOrigin) {
return valueStart;
}
export function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {
- var value = NaN;
+ let stackedOverValue = NaN;
+ let stackResultValue = NaN;
if (dataCoordInfo.stacked) {
- value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);
+ stackedOverValue = data.get(data.getCalculationInfo('stackedOverDimension'), idx);
+ stackResultValue = data.get(data.getCalculationInfo('stackResultDimension'), idx);
+ } else {
+ stackResultValue = data.get(dataCoordInfo.valueDim, idx);
}
- if (isNaN(value)) {
- value = dataCoordInfo.valueStart;
+ if (isNaN(stackedOverValue) && !isNaN(stackResultValue)) {
+ stackedOverValue = dataCoordInfo.valueStart;
}
var baseDataOffset = dataCoordInfo.baseDataOffset;
var stackedData = [];
stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);
- stackedData[1 - baseDataOffset] = value;
+ stackedData[1 - baseDataOffset] = stackedOverValue;
return coordSys.dataToPoint(stackedData);
}
\ No newline at end of file
diff --git a/node_modules/echarts/lib/data/helper/dataStackHelper.js b/node_modules/echarts/lib/data/helper/dataStackHelper.js
index c25de1b..a3ced22 100644
--- a/node_modules/echarts/lib/data/helper/dataStackHelper.js
+++ b/node_modules/echarts/lib/data/helper/dataStackHelper.js
@@ -83,6 +83,13 @@ export function enableDataStack(seriesModel, dimensionsInput, opt) {
var stackedDimInfo;
var stackResultDimension;
var stackedOverDimension;
+
+ var yCoordDimension = dimensionDefineList.find(
+ dimensionInfo => !isString(dimensionInfo) && dimensionInfo.coordDim === 'y'
+ );
+ var isYCoordDimensionStackable = yCoordDimension != null
+ && yCoordDimension.type !== 'ordinal' && yCoordDimension.type !== 'time';
+
each(dimensionDefineList, function (dimensionInfo, index) {
if (isString(dimensionInfo)) {
dimensionDefineList[index] = dimensionInfo = {
@@ -95,7 +102,10 @@ export function enableDataStack(seriesModel, dimensionsInput, opt) {
stackedByDimInfo = dimensionInfo;
}
// Find the first stackable dimension as the stackedDimInfo.
- if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {
+ if (!stackedDimInfo && dimensionInfo.type !== 'ordinal'
+ && dimensionInfo.type !== 'time'
+ && (yCoordDimension == null || (dimensionInfo.coordDim !== 'x' && isYCoordDimensionStackable))
+ && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {
stackedDimInfo = dimensionInfo;
}
}
@@ -105,6 +115,11 @@ export function enableDataStack(seriesModel, dimensionsInput, opt) {
// It may make sense if the user provides elaborately constructed data.
byIndex = true;
}
+ if (stackedDimInfo && !byIndex && !stackedByDimInfo) {
+ // Compatible with previous design, value axis (time axis) only stack by index.
+ // It may make sense if the user provides elaborately constructed data.
+ byIndex = true;
+ }
// Add stack dimension, they can be both calculated by coordinate system in `unionExtent`.
// That put stack logic in List is for using conveniently in echarts extensions, but it
// might not be a good way.
diff --git a/node_modules/echarts/lib/label/labelLayoutHelper.js b/node_modules/echarts/lib/label/labelLayoutHelper.js
index a75f606..52c5a0b 100644
--- a/node_modules/echarts/lib/label/labelLayoutHelper.js
+++ b/node_modules/echarts/lib/label/labelLayoutHelper.js
@@ -256,6 +256,13 @@ export function hideOverlap(labelList) {
var transform = labelItem.transform;
var label = labelItem.label;
var labelLine = labelItem.labelLine;
+
+ if (label.style.text === "") {
+ hideEl(label);
+ labelLine && hideEl(labelLine);
+ continue;
+ }
+
globalRect.copy(labelItem.rect);
// Add a threshold because layout may be aligned precisely.
globalRect.width -= 0.1;