tvcharts 0.6.21 → 0.6.23
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/echarts.js +145 -30
- package/dist/echarts.js.map +2 -2
- package/lib/chart/bgColor/BgColorLayout.js +5 -0
- package/lib/chart/fills/fillsLayout.js +5 -0
- package/lib/chart/labels/labelsLayout.js +5 -0
- package/lib/chart/labels/labelsVisual.js +5 -0
- package/lib/chart/linesPlot/linesPlotLayout.js +10 -4
- package/lib/core/echarts.js +52 -19
- package/lib/data/DataStore.js +17 -0
- package/lib/data/SeriesData.js +7 -0
- package/lib/data/helper/dataProvider.js +40 -3
- package/lib/model/Series.js +5 -1
- package/lib/util/states.js +23 -13
- package/package.json +1 -1
- package/types/dist/echarts.d.ts +15 -2
- package/types/dist/shared.d.ts +15 -2
- package/types/src/chart/labels/LabelsSeries.d.ts +1 -0
- package/types/src/chart/linesPlot/LinesPlotSeries.d.ts +1 -0
- package/types/src/core/echarts.d.ts +2 -2
- package/types/src/data/DataStore.d.ts +1 -0
- package/types/src/data/SeriesData.d.ts +4 -0
- package/types/src/data/helper/dataProvider.d.ts +6 -0
- package/types/src/model/Series.d.ts +3 -0
- package/types/src/util/states.d.ts +2 -0
- package/types/src/util/types.d.ts +1 -0
|
@@ -75,6 +75,7 @@ var bgColorLayout = {
|
|
|
75
75
|
var store = data.getStore();
|
|
76
76
|
var dimIdx0 = data.getDimensionIndex(dims[0]);
|
|
77
77
|
var xOffset = seriesModel.get("offset") || 0;
|
|
78
|
+
var showLast = seriesModel.get("showLast");
|
|
78
79
|
return {
|
|
79
80
|
progress: function (params, bgColorData) {
|
|
80
81
|
var rectsByColor = {};
|
|
@@ -83,7 +84,11 @@ var bgColorLayout = {
|
|
|
83
84
|
var _a = getHeight(seriesModel),
|
|
84
85
|
height = _a.height,
|
|
85
86
|
startY = _a.startY;
|
|
87
|
+
var lastIndex = bgColorData.count(true) - 1;
|
|
86
88
|
for (var i = params.start; i < params.end; i++) {
|
|
89
|
+
if (showLast && lastIndex - bgColorData.getRawIndex(i) >= showLast) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
87
92
|
var itemModel = bgColorData.getItemModel(i);
|
|
88
93
|
var color = itemModel.get("itemStyle").color;
|
|
89
94
|
if (!color) {
|
|
@@ -71,6 +71,7 @@ var fillsLayout = {
|
|
|
71
71
|
// });
|
|
72
72
|
var fillgaps = seriesModel.get("fillgaps");
|
|
73
73
|
var isMonoHline = seriesModel.get("isMonoHline");
|
|
74
|
+
var showLast = seriesModel.get("showLast");
|
|
74
75
|
var dimIdx0 = 0;
|
|
75
76
|
var dimIdP1 = 1;
|
|
76
77
|
var dimIdP2 = 2;
|
|
@@ -100,7 +101,11 @@ var fillsLayout = {
|
|
|
100
101
|
var lastKey = "";
|
|
101
102
|
var plot1Points = [];
|
|
102
103
|
var plot2Points = [];
|
|
104
|
+
var lastIndex = fillsData.count(true) - 1;
|
|
103
105
|
for (var i = params.start; i < params.end; i++) {
|
|
106
|
+
if (showLast && lastIndex - fillsData.getRawIndex(i) >= showLast) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
104
109
|
var last = i + 1 === params.end;
|
|
105
110
|
var get = last ? "getByRawIndex" : "get";
|
|
106
111
|
var index = last ? fillsData.getRawIndex(i) : i;
|
|
@@ -78,13 +78,18 @@ var labelsLayout = {
|
|
|
78
78
|
var dimIdx1 = data.getDimensionIndex(dims[1]);
|
|
79
79
|
var xOffset = seriesModel.get("offset") || 0;
|
|
80
80
|
var price = getYByLocation(seriesModel);
|
|
81
|
+
var showLast = seriesModel.get("showLast");
|
|
81
82
|
return {
|
|
82
83
|
progress: function (params, labelsData) {
|
|
83
84
|
// const segCount = params.end - params.start;
|
|
84
85
|
// const points = createFloat32Array(segCount * dimLen);
|
|
85
86
|
var tmpIn = [];
|
|
86
87
|
var tmpOut = [];
|
|
88
|
+
var lastIndex = data.count(true) - 1;
|
|
87
89
|
for (var i = params.start; i < params.end; i++) {
|
|
90
|
+
if (showLast && lastIndex - data.getRawIndex(i) >= showLast) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
88
93
|
tmpIn[0] = store.get(dimIdx0, i) + xOffset;
|
|
89
94
|
tmpIn[1] = store.get(dimIdx1, i);
|
|
90
95
|
// Let coordinate system to handle the NaN data.
|
|
@@ -104,6 +104,7 @@ var LabelsVisual = {
|
|
|
104
104
|
var data = seriesModel.getData();
|
|
105
105
|
// const bandWidth = getBandWidth(seriesModel, data);
|
|
106
106
|
var location = seriesModel.get('location');
|
|
107
|
+
var showLast = seriesModel.get("showLast");
|
|
107
108
|
var symbolOptions = {};
|
|
108
109
|
// const symbolOptionsCb = {} as Record<(typeof SYMBOL_PROPS_WITH_CB)[number], any>;
|
|
109
110
|
for (var i = 0; i < SYMBOL_PROPS_WITH_CB.length; i++) {
|
|
@@ -116,8 +117,12 @@ var LabelsVisual = {
|
|
|
116
117
|
// legendIcon: seriesModel.legendIcon || symbolOptions.symbol,
|
|
117
118
|
symbolKeepAspect: seriesModel.get('symbolKeepAspect')
|
|
118
119
|
}, symbolOptions));
|
|
120
|
+
var lastIndex = data.count(true) - 1;
|
|
119
121
|
function dataEach(data, idx) {
|
|
120
122
|
var _a;
|
|
123
|
+
if (showLast && lastIndex - data.getRawIndex(idx) >= showLast) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
121
126
|
var itemModel = data.getItemModel(idx);
|
|
122
127
|
var symbol = itemModel.getShallow('symbol');
|
|
123
128
|
var symbolSize = itemModel.getShallow('symbolSize');
|
|
@@ -77,7 +77,8 @@ var linesPlotLayout = {
|
|
|
77
77
|
var xOffset = seriesModel.get("offset") || 0;
|
|
78
78
|
var symbolVisible = seriesModel.get("symbolVisible");
|
|
79
79
|
var symbolSize = seriesModel.get("symbolSize");
|
|
80
|
-
var
|
|
80
|
+
var showLast = seriesModel.get("showLast");
|
|
81
|
+
// const globalSymbol = seriesModel.get('symbol')
|
|
81
82
|
return {
|
|
82
83
|
progress: function (params, lineData) {
|
|
83
84
|
// const lineCoords: number[][] = [];
|
|
@@ -87,7 +88,7 @@ var linesPlotLayout = {
|
|
|
87
88
|
var symbolPointsByColor = {};
|
|
88
89
|
// const allLinePoints = [];
|
|
89
90
|
var lastKey = "";
|
|
90
|
-
|
|
91
|
+
// let offset = 0;
|
|
91
92
|
var stroke = seriesModel.getLineStyle().stroke;
|
|
92
93
|
var defaultColor = Array.isArray(stroke) ? stroke[0] : stroke;
|
|
93
94
|
function setSymbolPoint(point, index) {
|
|
@@ -108,8 +109,12 @@ var linesPlotLayout = {
|
|
|
108
109
|
});
|
|
109
110
|
symbolPointsByColor[symbolKey] = symbolData;
|
|
110
111
|
}
|
|
112
|
+
var lastIndex = data.count(true) - 1;
|
|
111
113
|
for (var i = params.start; i < params.end; i++) {
|
|
112
|
-
|
|
114
|
+
if (showLast && lastIndex - data.getRawIndex(i) >= showLast) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
var isRawLast = i + 1 === params.end ? data.getRawIndex(i) === lastIndex : false;
|
|
113
118
|
var isRawFirst = i === 0 ? data.getRawIndex(i) === 0 : false;
|
|
114
119
|
var x = store.get(dimIdx0, i);
|
|
115
120
|
var y = store.get(dimIdx1, i);
|
|
@@ -126,8 +131,9 @@ var linesPlotLayout = {
|
|
|
126
131
|
var nextPoint = [];
|
|
127
132
|
// pts[1] = coordSys.dataToPoint([nextX, nextY]);
|
|
128
133
|
if (!isSingle && isRawLast) {
|
|
129
|
-
var lastPoints = linePointsByKey[lastKey];
|
|
134
|
+
var lastPoints = linePointsByKey[lastKey] || [];
|
|
130
135
|
lastPoints.push(point);
|
|
136
|
+
// linePointsByKey[lastKey] = lastPoints;
|
|
131
137
|
break;
|
|
132
138
|
}
|
|
133
139
|
var isStep = step && !isRawFirst && !isRawLast;
|
package/lib/core/echarts.js
CHANGED
|
@@ -207,7 +207,8 @@ var triggerSelectItem = function (_a) {
|
|
|
207
207
|
_b = _a.eventObj,
|
|
208
208
|
eventObj = _b === void 0 ? {} : _b;
|
|
209
209
|
var data = getSeriesPointData(ecModel, {
|
|
210
|
-
dataIndex: eventObj.dataIndexInside
|
|
210
|
+
dataIndex: eventObj.dataIndexInside,
|
|
211
|
+
rawDataIndex: eventObj.dataIndex
|
|
211
212
|
});
|
|
212
213
|
messageCenter.trigger('selectitem', {
|
|
213
214
|
data: data,
|
|
@@ -221,7 +222,7 @@ var ECharts = /** @class */function (_super) {
|
|
|
221
222
|
// Theme name or themeOption.
|
|
222
223
|
theme, opts) {
|
|
223
224
|
var _this = _super.call(this, new ECEventProcessor()) || this;
|
|
224
|
-
_this._throttledSelectItem = throttle(triggerSelectItem,
|
|
225
|
+
_this._throttledSelectItem = throttle(triggerSelectItem, 80);
|
|
225
226
|
_this._chartsViews = [];
|
|
226
227
|
_this._chartsMap = {};
|
|
227
228
|
_this._componentsViews = [];
|
|
@@ -1124,8 +1125,11 @@ var ECharts = /** @class */function (_super) {
|
|
|
1124
1125
|
this._scheduler.unfinished = true;
|
|
1125
1126
|
this.getZr().wakeUp();
|
|
1126
1127
|
};
|
|
1127
|
-
ECharts.prototype.updateData = function (batch) {
|
|
1128
|
+
ECharts.prototype.updateData = function (batch, silent) {
|
|
1128
1129
|
var _this = this;
|
|
1130
|
+
if (silent === void 0) {
|
|
1131
|
+
silent = false;
|
|
1132
|
+
}
|
|
1129
1133
|
if (this._disposed) {
|
|
1130
1134
|
disposedWarning(this.id);
|
|
1131
1135
|
return;
|
|
@@ -1133,26 +1137,32 @@ var ECharts = /** @class */function (_super) {
|
|
|
1133
1137
|
var firstSeriesModel = void 0;
|
|
1134
1138
|
var isUpdateData = false;
|
|
1135
1139
|
each(batch, function (params, index) {
|
|
1140
|
+
var ecModel = _this.getModel();
|
|
1136
1141
|
var seriesIndex = params.seriesIndex;
|
|
1137
1142
|
var seriesName = params.seriesName;
|
|
1143
|
+
if (params.type === "component") {
|
|
1144
|
+
var tableModal = ecModel.findComponents({
|
|
1145
|
+
mainType: 'table'
|
|
1146
|
+
})[0];
|
|
1147
|
+
console.log('%c [ tableModal ]-1621', 'font-size:13px; background:pink; color:#bf2c9f;', tableModal);
|
|
1148
|
+
// tableModal.option.data =
|
|
1149
|
+
return;
|
|
1150
|
+
}
|
|
1138
1151
|
// const isMain = params.type === "symbol"
|
|
1139
|
-
var ecModel = _this.getModel();
|
|
1140
1152
|
var seriesModel = seriesIndex !== void 0 ? ecModel.getSeriesByIndex(seriesIndex) : ecModel.getSeriesByName(seriesName)[0];
|
|
1141
1153
|
if (process.env.NODE_ENV !== 'production') {
|
|
1142
1154
|
assert(params.data && seriesModel);
|
|
1143
1155
|
}
|
|
1144
1156
|
var seriesData = seriesModel.getData();
|
|
1145
1157
|
var lastIndex = seriesData.count(true) - 1;
|
|
1146
|
-
// const
|
|
1147
|
-
// const id = seriesData.getName(lastIndex, true);
|
|
1148
|
-
var paramId = params.data[0][0];
|
|
1158
|
+
// const paramId = params.data[0][0];
|
|
1149
1159
|
var scale = seriesModel.coordinateSystem.getBaseAxis().scale;
|
|
1150
1160
|
var ordinalMeta = scale.getOrdinalMeta();
|
|
1151
|
-
|
|
1161
|
+
// const id = ordinalMeta.getLastCategories();
|
|
1152
1162
|
// eslint-disable-next-line
|
|
1153
|
-
var isUpdate = params.operation
|
|
1163
|
+
var isUpdate = params.operation === "update";
|
|
1154
1164
|
if (isUpdate) {
|
|
1155
|
-
seriesModel.
|
|
1165
|
+
seriesModel.updateValue({
|
|
1156
1166
|
data: map(params.data, function (item, index) {
|
|
1157
1167
|
var idx = lastIndex + index;
|
|
1158
1168
|
seriesModel.option.data[idx] = item.slice(1);
|
|
@@ -1161,17 +1171,34 @@ var ECharts = /** @class */function (_super) {
|
|
|
1161
1171
|
})
|
|
1162
1172
|
});
|
|
1163
1173
|
isUpdateData = true;
|
|
1164
|
-
} else {
|
|
1174
|
+
} else if (params.operation === "script") {
|
|
1165
1175
|
var categories_1 = [];
|
|
1176
|
+
var data = map(params.data, function (item, index) {
|
|
1177
|
+
var idx = lastIndex + index;
|
|
1178
|
+
// (seriesModel.option.data as any)[idx] = item;
|
|
1179
|
+
if (index !== 0) {
|
|
1180
|
+
categories_1.push(item.value[0]);
|
|
1181
|
+
}
|
|
1182
|
+
item.value[0] = idx;
|
|
1183
|
+
return item;
|
|
1184
|
+
});
|
|
1185
|
+
if (params.isMainSeries && data.length > 1) {
|
|
1186
|
+
ordinalMeta.appendData(categories_1);
|
|
1187
|
+
}
|
|
1188
|
+
seriesModel.updateData({
|
|
1189
|
+
data: data
|
|
1190
|
+
});
|
|
1191
|
+
} else {
|
|
1192
|
+
var categories_2 = [];
|
|
1166
1193
|
var formatData = map(params.data, function (item) {
|
|
1167
1194
|
var idx = lastIndex + index + 1;
|
|
1168
1195
|
seriesModel.option.data[idx] = item.slice(1);
|
|
1169
|
-
|
|
1196
|
+
categories_2.push(item[0]);
|
|
1170
1197
|
item[0] = idx;
|
|
1171
1198
|
return item;
|
|
1172
1199
|
});
|
|
1173
1200
|
if (params.isMainSeries) {
|
|
1174
|
-
ordinalMeta.appendData(
|
|
1201
|
+
ordinalMeta.appendData(categories_2);
|
|
1175
1202
|
}
|
|
1176
1203
|
seriesModel.appendData({
|
|
1177
1204
|
data: formatData
|
|
@@ -1181,13 +1208,17 @@ var ECharts = /** @class */function (_super) {
|
|
|
1181
1208
|
firstSeriesModel = seriesModel;
|
|
1182
1209
|
}
|
|
1183
1210
|
});
|
|
1211
|
+
if (!firstSeriesModel) {
|
|
1212
|
+
return;
|
|
1213
|
+
}
|
|
1184
1214
|
var coordSys = firstSeriesModel.coordinateSystem;
|
|
1185
1215
|
var baseAxis = coordSys.getBaseAxis();
|
|
1186
1216
|
var scale = baseAxis.scale;
|
|
1217
|
+
var isMove = !isUpdateData && scale.lastBarRightSideDiffBarCount < 1.5;
|
|
1187
1218
|
var payload = {
|
|
1188
1219
|
type: 'dataZoom',
|
|
1189
1220
|
barSpace: scale.barSpace,
|
|
1190
|
-
lastBarRightSideDiffBarCount:
|
|
1221
|
+
lastBarRightSideDiffBarCount: isMove ? scale.lastBarRightSideDiffBarCount - 1 : scale.lastBarRightSideDiffBarCount
|
|
1191
1222
|
};
|
|
1192
1223
|
doDispatchAction.call(this, payload, true);
|
|
1193
1224
|
};
|
|
@@ -1870,11 +1901,13 @@ var ECharts = /** @class */function (_super) {
|
|
|
1870
1901
|
// If use hover layer
|
|
1871
1902
|
updateHoverLayerStatus(ecIns, ecModel);
|
|
1872
1903
|
// todo 这个数据推送先这样
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
messageCenter.trigger('selectitem', {
|
|
1876
|
-
|
|
1877
|
-
|
|
1904
|
+
// const data = getSeriesPointData(ecModel);
|
|
1905
|
+
// const messageCenter = ecIns._messageCenter;
|
|
1906
|
+
// messageCenter.trigger('selectitem', { data, type: 'series' });
|
|
1907
|
+
ecIns._throttledSelectItem({
|
|
1908
|
+
messageCenter: ecIns._messageCenter,
|
|
1909
|
+
ecModel: ecModel,
|
|
1910
|
+
type: "series"
|
|
1878
1911
|
});
|
|
1879
1912
|
lifecycle.trigger('series:afterupdate', ecModel, api, updateParams);
|
|
1880
1913
|
};
|
package/lib/data/DataStore.js
CHANGED
|
@@ -237,6 +237,23 @@ var DataStore = /** @class */function () {
|
|
|
237
237
|
}
|
|
238
238
|
return [start, end];
|
|
239
239
|
};
|
|
240
|
+
DataStore.prototype.updateData = function (data) {
|
|
241
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
242
|
+
assert(!this._indices, 'appendData can only be called on raw data.');
|
|
243
|
+
}
|
|
244
|
+
var provider = this._provider;
|
|
245
|
+
var start = this.count();
|
|
246
|
+
var update = provider.updateData(data).update;
|
|
247
|
+
var end = provider.count();
|
|
248
|
+
start = start - update;
|
|
249
|
+
if (!provider.persistent) {
|
|
250
|
+
end += start;
|
|
251
|
+
}
|
|
252
|
+
if (start < end) {
|
|
253
|
+
this._initDataFromProvider(start, end, true);
|
|
254
|
+
}
|
|
255
|
+
return [start, end];
|
|
256
|
+
};
|
|
240
257
|
DataStore.prototype.appendValues = function (values, minFillLen) {
|
|
241
258
|
var chunks = this._chunks;
|
|
242
259
|
var dimensions = this._dimensions;
|
package/lib/data/SeriesData.js
CHANGED
|
@@ -346,6 +346,13 @@ var SeriesData = /** @class */function () {
|
|
|
346
346
|
var range = this._store.appendData(data);
|
|
347
347
|
this._doInit(range[0], range[1]);
|
|
348
348
|
};
|
|
349
|
+
/**
|
|
350
|
+
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
351
|
+
*/
|
|
352
|
+
SeriesData.prototype.updateData = function (data) {
|
|
353
|
+
var range = this._store.updateData(data);
|
|
354
|
+
this._doInit(range[0], range[1]);
|
|
355
|
+
};
|
|
349
356
|
SeriesData.prototype.updateValue = function (value) {
|
|
350
357
|
this._store.updateValue(value);
|
|
351
358
|
};
|
|
@@ -85,6 +85,11 @@ var DefaultDataProvider = /** @class */function () {
|
|
|
85
85
|
return;
|
|
86
86
|
};
|
|
87
87
|
DefaultDataProvider.prototype.appendData = function (newData) {};
|
|
88
|
+
DefaultDataProvider.prototype.updateData = function (newData) {
|
|
89
|
+
return {
|
|
90
|
+
update: 0
|
|
91
|
+
};
|
|
92
|
+
};
|
|
88
93
|
DefaultDataProvider.prototype.clean = function () {};
|
|
89
94
|
DefaultDataProvider.protoInitialize = function () {
|
|
90
95
|
// PENDING: To avoid potential incompat (e.g., prototype
|
|
@@ -152,7 +157,8 @@ var DefaultDataProvider = /** @class */function () {
|
|
|
152
157
|
};
|
|
153
158
|
providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {
|
|
154
159
|
pure: true,
|
|
155
|
-
appendData: appendDataSimply
|
|
160
|
+
appendData: appendDataSimply,
|
|
161
|
+
updateData: updateDataSimply
|
|
156
162
|
}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {
|
|
157
163
|
pure: true,
|
|
158
164
|
appendData: function () {
|
|
@@ -160,7 +166,8 @@ var DefaultDataProvider = /** @class */function () {
|
|
|
160
166
|
}
|
|
161
167
|
}, _a[SOURCE_FORMAT_OBJECT_ROWS] = {
|
|
162
168
|
pure: true,
|
|
163
|
-
appendData: appendDataSimply
|
|
169
|
+
appendData: appendDataSimply,
|
|
170
|
+
updateData: updateDataSimply
|
|
164
171
|
}, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {
|
|
165
172
|
pure: true,
|
|
166
173
|
appendData: function (newData) {
|
|
@@ -173,7 +180,8 @@ var DefaultDataProvider = /** @class */function () {
|
|
|
173
180
|
});
|
|
174
181
|
}
|
|
175
182
|
}, _a[SOURCE_FORMAT_ORIGINAL] = {
|
|
176
|
-
appendData: appendDataSimply
|
|
183
|
+
appendData: appendDataSimply,
|
|
184
|
+
updateData: updateDataSimply
|
|
177
185
|
}, _a[SOURCE_FORMAT_TYPED_ARRAY] = {
|
|
178
186
|
persistent: false,
|
|
179
187
|
pure: true,
|
|
@@ -195,6 +203,35 @@ var DefaultDataProvider = /** @class */function () {
|
|
|
195
203
|
this._data.push(newData[i]);
|
|
196
204
|
}
|
|
197
205
|
}
|
|
206
|
+
function updateDataSimply(newData) {
|
|
207
|
+
var data = this._data;
|
|
208
|
+
var lastIndex = data.length - 1;
|
|
209
|
+
var update = 0;
|
|
210
|
+
for (var i = 0; i < newData.length; i++) {
|
|
211
|
+
var ele = newData[i];
|
|
212
|
+
// if (Array.isArray(ele)) {
|
|
213
|
+
// if (ele[0] === data[lastIndex][0]) {
|
|
214
|
+
// data[lastIndex] = ele;
|
|
215
|
+
// update++;
|
|
216
|
+
// continue;
|
|
217
|
+
// }
|
|
218
|
+
// }
|
|
219
|
+
// else if (typeof ele === 'object' && Array.isArray(ele.value) && ele.value[0] == data[lastIndex].value[0]) {
|
|
220
|
+
// data[lastIndex] = ele;
|
|
221
|
+
// update++;
|
|
222
|
+
// continue;
|
|
223
|
+
// }
|
|
224
|
+
if (!update) {
|
|
225
|
+
data[lastIndex] = ele;
|
|
226
|
+
update++;
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
data.push(ele);
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
update: update
|
|
233
|
+
};
|
|
234
|
+
}
|
|
198
235
|
}();
|
|
199
236
|
return DefaultDataProvider;
|
|
200
237
|
}();
|
package/lib/model/Series.js
CHANGED
|
@@ -181,10 +181,14 @@ var SeriesModel = /** @class */function (_super) {
|
|
|
181
181
|
var data = this.getRawData();
|
|
182
182
|
data.appendData(params.data);
|
|
183
183
|
};
|
|
184
|
-
SeriesModel.prototype.
|
|
184
|
+
SeriesModel.prototype.updateValue = function (params) {
|
|
185
185
|
var data = this.getRawData();
|
|
186
186
|
data.updateValue(params.data[0]);
|
|
187
187
|
};
|
|
188
|
+
SeriesModel.prototype.updateData = function (params) {
|
|
189
|
+
var data = this.getRawData();
|
|
190
|
+
data.updateData(params.data);
|
|
191
|
+
};
|
|
188
192
|
/**
|
|
189
193
|
* Consider some method like `filter`, `map` need make new data,
|
|
190
194
|
* We should make sure that `seriesModel.getData()` get correct
|
package/lib/util/states.js
CHANGED
|
@@ -571,20 +571,29 @@ export function getSeriesPointData(ecModel, payload) {
|
|
|
571
571
|
payload = {};
|
|
572
572
|
}
|
|
573
573
|
var seriesPointData = {};
|
|
574
|
+
var dataIndex = payload.dataIndex,
|
|
575
|
+
rawDataIndex = payload.rawDataIndex;
|
|
574
576
|
// let id = '';
|
|
575
577
|
ecModel.eachSeries(function (seriesModel) {
|
|
576
|
-
var _a;
|
|
578
|
+
var _a, _b, _c;
|
|
577
579
|
if (seriesModel.get('statusLineInvisible')) {
|
|
578
580
|
return;
|
|
579
581
|
}
|
|
580
582
|
var formatter = seriesModel.get('formatter');
|
|
583
|
+
var offset = (_a = seriesModel.get('offset')) !== null && _a !== void 0 ? _a : 0;
|
|
584
|
+
var showLast = (_b = seriesModel.get('showLast')) !== null && _b !== void 0 ? _b : 0;
|
|
581
585
|
var data = seriesModel.getData();
|
|
582
|
-
var isRaw = !
|
|
583
|
-
var
|
|
586
|
+
var isRaw = !dataIndex;
|
|
587
|
+
var lastIndex = data.count(true) - 1;
|
|
588
|
+
var index = dataIndex ? dataIndex - offset : rawDataIndex ? rawDataIndex - offset : lastIndex;
|
|
589
|
+
if (showLast && (isRaw ? index : data.getRawIndex(index)) <= lastIndex - showLast) {
|
|
590
|
+
index = lastIndex;
|
|
591
|
+
isRaw = true;
|
|
592
|
+
}
|
|
593
|
+
index = Math.min(lastIndex, index);
|
|
584
594
|
var values = isRaw ? data.getValuesByRawIndex(index) : data.getValues(index);
|
|
585
|
-
var color = data.getItemVisual(index, 'style').fill;
|
|
595
|
+
var color = (_c = data.getItemVisual(index, 'style')) === null || _c === void 0 ? void 0 : _c.fill;
|
|
586
596
|
var isCandlesStick = seriesModel.subType === 'candlestick';
|
|
587
|
-
var isLinesPlot = seriesModel.subType === 'linesPlot';
|
|
588
597
|
var dim = seriesModel.subType === 'candlestick' ? 'close' : 'y';
|
|
589
598
|
var fnKey = isRaw ? "getByRawIndex" : "get";
|
|
590
599
|
if (isCandlesStick) {
|
|
@@ -596,9 +605,13 @@ export function getSeriesPointData(ecModel, payload) {
|
|
|
596
605
|
if (fill) {
|
|
597
606
|
color = fill;
|
|
598
607
|
}
|
|
599
|
-
} else if (
|
|
608
|
+
} else if (['linesPlot', 'labels'].includes(seriesModel.subType)) {
|
|
609
|
+
var isLinesPlot = seriesModel.subType === 'linesPlot';
|
|
600
610
|
var dataItem = data.getItemModel(index, isRaw);
|
|
601
|
-
var fill = dataItem.get(['lineStyle', 'color']);
|
|
611
|
+
var fill = dataItem.get([isLinesPlot ? 'lineStyle' : 'itemStyle', 'color']);
|
|
612
|
+
if (!isLinesPlot) {
|
|
613
|
+
values = [index, dataItem.get('showValue')];
|
|
614
|
+
}
|
|
602
615
|
if (fill) {
|
|
603
616
|
color = fill;
|
|
604
617
|
}
|
|
@@ -618,19 +631,16 @@ export function getSeriesPointData(ecModel, payload) {
|
|
|
618
631
|
var changePercent = (diffValue / prevValue * 100).toFixed(2) + '%';
|
|
619
632
|
var seriesId = seriesModel.id;
|
|
620
633
|
var seriesName = seriesModel.name;
|
|
621
|
-
// if (!id) {
|
|
622
|
-
// const axisInfo = seriesModel.getBaseAxis();
|
|
623
|
-
// id = axisInfo.scale.getLabel({ value: data.getRawIndex(index) })
|
|
624
|
-
// }
|
|
625
634
|
seriesPointData[seriesName] = {
|
|
626
635
|
name: seriesName,
|
|
627
636
|
data: values.map(function (item, index) {
|
|
628
|
-
return formatter && index !== 0 ? formatter(item) : item;
|
|
637
|
+
return formatter && index !== 0 && item ? formatter(item) : item;
|
|
629
638
|
}),
|
|
630
639
|
color: color,
|
|
631
640
|
seriesId: seriesId,
|
|
632
641
|
changePercent: changePercent,
|
|
633
|
-
diffValue: diffValue
|
|
642
|
+
diffValue: diffValue,
|
|
643
|
+
type: seriesModel.subType
|
|
634
644
|
};
|
|
635
645
|
});
|
|
636
646
|
return seriesPointData;
|
package/package.json
CHANGED
package/types/dist/echarts.d.ts
CHANGED
|
@@ -4289,6 +4289,9 @@ declare class SeriesModel<Opt extends SeriesOption = SeriesOption> extends Compo
|
|
|
4289
4289
|
appendData(params: {
|
|
4290
4290
|
data: ArrayLike<any>;
|
|
4291
4291
|
}): void;
|
|
4292
|
+
updateValue(params: {
|
|
4293
|
+
data: any[];
|
|
4294
|
+
}): void;
|
|
4292
4295
|
updateData(params: {
|
|
4293
4296
|
data: any[];
|
|
4294
4297
|
}): void;
|
|
@@ -4452,6 +4455,7 @@ declare class DataStore {
|
|
|
4452
4455
|
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
4453
4456
|
*/
|
|
4454
4457
|
appendData(data: ArrayLike<any>): number[];
|
|
4458
|
+
updateData(data: ArrayLike<any>): number[];
|
|
4455
4459
|
appendValues(values: any[][], minFillLen?: number): {
|
|
4456
4460
|
start: number;
|
|
4457
4461
|
end: number;
|
|
@@ -4995,6 +4999,9 @@ interface DataProvider {
|
|
|
4995
4999
|
getItem(idx: number, out?: OptionDataItem): OptionDataItem;
|
|
4996
5000
|
fillStorage?(start: number, end: number, out: ArrayLike$1<ParsedValue>[], extent: number[][]): void;
|
|
4997
5001
|
appendData?(newData: ArrayLike$1<OptionDataItem>): void;
|
|
5002
|
+
updateData?(updateData: ArrayLike$1<OptionDataItem>): {
|
|
5003
|
+
update: number;
|
|
5004
|
+
};
|
|
4998
5005
|
clean?(): void;
|
|
4999
5006
|
}
|
|
5000
5007
|
|
|
@@ -5610,6 +5617,10 @@ declare class SeriesData<HostModel extends Model = Model, Visual extends Default
|
|
|
5610
5617
|
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
5611
5618
|
*/
|
|
5612
5619
|
appendData(data: ArrayLike$1<any>): void;
|
|
5620
|
+
/**
|
|
5621
|
+
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
5622
|
+
*/
|
|
5623
|
+
updateData(data: ArrayLike$1<any>): void;
|
|
5613
5624
|
updateValue(value: any): void;
|
|
5614
5625
|
/**
|
|
5615
5626
|
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
@@ -7798,6 +7809,7 @@ interface SeriesOption<StateOption = unknown, StatesMixin extends StatesMixinBas
|
|
|
7798
7809
|
formatter?: (val: string | number) => string | number;
|
|
7799
7810
|
notFilterData?: boolean;
|
|
7800
7811
|
offset?: number;
|
|
7812
|
+
showLast?: number;
|
|
7801
7813
|
}
|
|
7802
7814
|
interface SeriesOnCartesianOptionMixin {
|
|
7803
7815
|
xAxisIndex?: number;
|
|
@@ -8258,10 +8270,10 @@ declare class ECharts extends Eventful<ECEventDefinition> {
|
|
|
8258
8270
|
seriesIndex?: number;
|
|
8259
8271
|
seriesName?: string;
|
|
8260
8272
|
isMainSeries?: boolean;
|
|
8261
|
-
operation?: "append" | "update";
|
|
8273
|
+
operation?: "append" | "update" | "script";
|
|
8262
8274
|
data: any;
|
|
8263
8275
|
type: string;
|
|
8264
|
-
}[]): void;
|
|
8276
|
+
}[], silent?: boolean): void;
|
|
8265
8277
|
updateXAxisData(time: string): void;
|
|
8266
8278
|
private static internalField;
|
|
8267
8279
|
}
|
|
@@ -10742,6 +10754,7 @@ interface LinesPlotSeriesOption extends SeriesOption<LinesStateOption$1, LinesSt
|
|
|
10742
10754
|
shadowShape?: boolean;
|
|
10743
10755
|
step?: boolean;
|
|
10744
10756
|
z2?: number;
|
|
10757
|
+
showLast?: number;
|
|
10745
10758
|
}
|
|
10746
10759
|
|
|
10747
10760
|
declare type HeatmapDataValue = OptionDataValue[];
|
package/types/dist/shared.d.ts
CHANGED
|
@@ -4289,6 +4289,9 @@ declare class SeriesModel<Opt extends SeriesOption = SeriesOption> extends Compo
|
|
|
4289
4289
|
appendData(params: {
|
|
4290
4290
|
data: ArrayLike<any>;
|
|
4291
4291
|
}): void;
|
|
4292
|
+
updateValue(params: {
|
|
4293
|
+
data: any[];
|
|
4294
|
+
}): void;
|
|
4292
4295
|
updateData(params: {
|
|
4293
4296
|
data: any[];
|
|
4294
4297
|
}): void;
|
|
@@ -4452,6 +4455,7 @@ declare class DataStore {
|
|
|
4452
4455
|
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
4453
4456
|
*/
|
|
4454
4457
|
appendData(data: ArrayLike<any>): number[];
|
|
4458
|
+
updateData(data: ArrayLike<any>): number[];
|
|
4455
4459
|
appendValues(values: any[][], minFillLen?: number): {
|
|
4456
4460
|
start: number;
|
|
4457
4461
|
end: number;
|
|
@@ -4996,6 +5000,9 @@ interface DataProvider {
|
|
|
4996
5000
|
getItem(idx: number, out?: OptionDataItem): OptionDataItem;
|
|
4997
5001
|
fillStorage?(start: number, end: number, out: ArrayLike$1<ParsedValue>[], extent: number[][]): void;
|
|
4998
5002
|
appendData?(newData: ArrayLike$1<OptionDataItem>): void;
|
|
5003
|
+
updateData?(updateData: ArrayLike$1<OptionDataItem>): {
|
|
5004
|
+
update: number;
|
|
5005
|
+
};
|
|
4999
5006
|
clean?(): void;
|
|
5000
5007
|
}
|
|
5001
5008
|
|
|
@@ -5611,6 +5618,10 @@ declare class SeriesData<HostModel extends Model = Model, Visual extends Default
|
|
|
5611
5618
|
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
5612
5619
|
*/
|
|
5613
5620
|
appendData(data: ArrayLike$1<any>): void;
|
|
5621
|
+
/**
|
|
5622
|
+
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
5623
|
+
*/
|
|
5624
|
+
updateData(data: ArrayLike$1<any>): void;
|
|
5614
5625
|
updateValue(value: any): void;
|
|
5615
5626
|
/**
|
|
5616
5627
|
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
@@ -7799,6 +7810,7 @@ interface SeriesOption<StateOption = unknown, StatesMixin extends StatesMixinBas
|
|
|
7799
7810
|
formatter?: (val: string | number) => string | number;
|
|
7800
7811
|
notFilterData?: boolean;
|
|
7801
7812
|
offset?: number;
|
|
7813
|
+
showLast?: number;
|
|
7802
7814
|
}
|
|
7803
7815
|
interface SeriesOnCartesianOptionMixin {
|
|
7804
7816
|
xAxisIndex?: number;
|
|
@@ -8259,10 +8271,10 @@ declare class ECharts extends Eventful<ECEventDefinition> {
|
|
|
8259
8271
|
seriesIndex?: number;
|
|
8260
8272
|
seriesName?: string;
|
|
8261
8273
|
isMainSeries?: boolean;
|
|
8262
|
-
operation?: "append" | "update";
|
|
8274
|
+
operation?: "append" | "update" | "script";
|
|
8263
8275
|
data: any;
|
|
8264
8276
|
type: string;
|
|
8265
|
-
}[]): void;
|
|
8277
|
+
}[], silent?: boolean): void;
|
|
8266
8278
|
updateXAxisData(time: string): void;
|
|
8267
8279
|
private static internalField;
|
|
8268
8280
|
}
|
|
@@ -10798,6 +10810,7 @@ interface LinesPlotSeriesOption extends SeriesOption<LinesStateOption$1, LinesSt
|
|
|
10798
10810
|
shadowShape?: boolean;
|
|
10799
10811
|
step?: boolean;
|
|
10800
10812
|
z2?: number;
|
|
10813
|
+
showLast?: number;
|
|
10801
10814
|
}
|
|
10802
10815
|
|
|
10803
10816
|
declare type HeatmapDataValue = OptionDataValue[];
|
|
@@ -9,6 +9,7 @@ interface LabelsStateOption<TCbParams = never> {
|
|
|
9
9
|
size?: "auto" | "huge" | "large" | "normal" | "small" | "tiny";
|
|
10
10
|
location?: "abovebar" | "absolute" | "belowbar" | "bottom" | "top";
|
|
11
11
|
isShape?: boolean;
|
|
12
|
+
showValue?: boolean | number;
|
|
12
13
|
}
|
|
13
14
|
interface LabelsStatesOptionMixin {
|
|
14
15
|
emphasis?: {
|
|
@@ -58,6 +58,7 @@ export interface LinesPlotSeriesOption extends SeriesOption<LinesStateOption, Li
|
|
|
58
58
|
shadowShape?: boolean;
|
|
59
59
|
step?: boolean;
|
|
60
60
|
z2?: number;
|
|
61
|
+
showLast?: number;
|
|
61
62
|
}
|
|
62
63
|
declare class LinesPlotSeriesModel extends SeriesModel<LinesPlotSeriesOption> {
|
|
63
64
|
static readonly type = "series.linesPlot";
|
|
@@ -275,10 +275,10 @@ declare class ECharts extends Eventful<ECEventDefinition> {
|
|
|
275
275
|
seriesIndex?: number;
|
|
276
276
|
seriesName?: string;
|
|
277
277
|
isMainSeries?: boolean;
|
|
278
|
-
operation?: "append" | "update";
|
|
278
|
+
operation?: "append" | "update" | "script";
|
|
279
279
|
data: any;
|
|
280
280
|
type: string;
|
|
281
|
-
}[]): void;
|
|
281
|
+
}[], silent?: boolean): void;
|
|
282
282
|
updateXAxisData(time: string): void;
|
|
283
283
|
private static internalField;
|
|
284
284
|
}
|
|
@@ -86,6 +86,7 @@ declare class DataStore {
|
|
|
86
86
|
* Caution: Can be only called on raw data (before `this._indices` created).
|
|
87
87
|
*/
|
|
88
88
|
appendData(data: ArrayLike<any>): number[];
|
|
89
|
+
updateData(data: ArrayLike<any>): number[];
|
|
89
90
|
appendValues(values: any[][], minFillLen?: number): {
|
|
90
91
|
start: number;
|
|
91
92
|
end: number;
|