tvcharts 0.6.21 → 0.6.22
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 +45 -17
- package/dist/echarts.js.map +2 -2
- package/lib/chart/labels/labelsLayout.js +5 -0
- package/lib/chart/labels/labelsVisual.js +5 -0
- package/lib/chart/linesPlot/linesPlotLayout.js +8 -3
- package/lib/core/echarts.js +13 -9
- package/lib/util/states.js +22 -12
- package/package.json +1 -1
- package/types/dist/echarts.d.ts +2 -0
- package/types/dist/shared.d.ts +2 -0
- package/types/src/chart/labels/LabelsSeries.d.ts +1 -0
- package/types/src/chart/linesPlot/LinesPlotSeries.d.ts +1 -0
- package/types/src/util/states.d.ts +2 -0
- package/types/src/util/types.d.ts +1 -0
|
@@ -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);
|
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 = [];
|
|
@@ -1184,12 +1185,13 @@ var ECharts = /** @class */function (_super) {
|
|
|
1184
1185
|
var coordSys = firstSeriesModel.coordinateSystem;
|
|
1185
1186
|
var baseAxis = coordSys.getBaseAxis();
|
|
1186
1187
|
var scale = baseAxis.scale;
|
|
1188
|
+
var isMove = !isUpdateData && scale.lastBarRightSideDiffBarCount < 1.5;
|
|
1187
1189
|
var payload = {
|
|
1188
1190
|
type: 'dataZoom',
|
|
1189
1191
|
barSpace: scale.barSpace,
|
|
1190
|
-
lastBarRightSideDiffBarCount:
|
|
1192
|
+
lastBarRightSideDiffBarCount: isMove ? scale.lastBarRightSideDiffBarCount - 1 : scale.lastBarRightSideDiffBarCount
|
|
1191
1193
|
};
|
|
1192
|
-
doDispatchAction.call(this, payload,
|
|
1194
|
+
doDispatchAction.call(this, payload, !isMove);
|
|
1193
1195
|
};
|
|
1194
1196
|
ECharts.prototype.updateXAxisData = function (time) {
|
|
1195
1197
|
if (this._disposed) {
|
|
@@ -1870,11 +1872,13 @@ var ECharts = /** @class */function (_super) {
|
|
|
1870
1872
|
// If use hover layer
|
|
1871
1873
|
updateHoverLayerStatus(ecIns, ecModel);
|
|
1872
1874
|
// todo 这个数据推送先这样
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
messageCenter.trigger('selectitem', {
|
|
1876
|
-
|
|
1877
|
-
|
|
1875
|
+
// const data = getSeriesPointData(ecModel);
|
|
1876
|
+
// const messageCenter = ecIns._messageCenter;
|
|
1877
|
+
// messageCenter.trigger('selectitem', { data, type: 'series' });
|
|
1878
|
+
ecIns._throttledSelectItem({
|
|
1879
|
+
messageCenter: ecIns._messageCenter,
|
|
1880
|
+
ecModel: ecModel,
|
|
1881
|
+
type: "series"
|
|
1878
1882
|
});
|
|
1879
1883
|
lifecycle.trigger('series:afterupdate', ecModel, api, updateParams);
|
|
1880
1884
|
};
|
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,10 +631,6 @@ 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) {
|
|
@@ -630,7 +639,8 @@ export function getSeriesPointData(ecModel, payload) {
|
|
|
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
|
@@ -7798,6 +7798,7 @@ interface SeriesOption<StateOption = unknown, StatesMixin extends StatesMixinBas
|
|
|
7798
7798
|
formatter?: (val: string | number) => string | number;
|
|
7799
7799
|
notFilterData?: boolean;
|
|
7800
7800
|
offset?: number;
|
|
7801
|
+
showLast?: number;
|
|
7801
7802
|
}
|
|
7802
7803
|
interface SeriesOnCartesianOptionMixin {
|
|
7803
7804
|
xAxisIndex?: number;
|
|
@@ -10742,6 +10743,7 @@ interface LinesPlotSeriesOption extends SeriesOption<LinesStateOption$1, LinesSt
|
|
|
10742
10743
|
shadowShape?: boolean;
|
|
10743
10744
|
step?: boolean;
|
|
10744
10745
|
z2?: number;
|
|
10746
|
+
showLast?: number;
|
|
10745
10747
|
}
|
|
10746
10748
|
|
|
10747
10749
|
declare type HeatmapDataValue = OptionDataValue[];
|
package/types/dist/shared.d.ts
CHANGED
|
@@ -7799,6 +7799,7 @@ interface SeriesOption<StateOption = unknown, StatesMixin extends StatesMixinBas
|
|
|
7799
7799
|
formatter?: (val: string | number) => string | number;
|
|
7800
7800
|
notFilterData?: boolean;
|
|
7801
7801
|
offset?: number;
|
|
7802
|
+
showLast?: number;
|
|
7802
7803
|
}
|
|
7803
7804
|
interface SeriesOnCartesianOptionMixin {
|
|
7804
7805
|
xAxisIndex?: number;
|
|
@@ -10798,6 +10799,7 @@ interface LinesPlotSeriesOption extends SeriesOption<LinesStateOption$1, LinesSt
|
|
|
10798
10799
|
shadowShape?: boolean;
|
|
10799
10800
|
step?: boolean;
|
|
10800
10801
|
z2?: number;
|
|
10802
|
+
showLast?: number;
|
|
10801
10803
|
}
|
|
10802
10804
|
|
|
10803
10805
|
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";
|
|
@@ -66,9 +66,11 @@ interface ISeriesPointData {
|
|
|
66
66
|
color: string;
|
|
67
67
|
changePercent: string;
|
|
68
68
|
diffValue: number;
|
|
69
|
+
type: string;
|
|
69
70
|
}
|
|
70
71
|
export declare function getSeriesPointData(ecModel: GlobalModel, payload?: {
|
|
71
72
|
dataIndex?: number;
|
|
73
|
+
rawDataIndex?: number;
|
|
72
74
|
}): Record<string, ISeriesPointData>;
|
|
73
75
|
/**
|
|
74
76
|
* Enable the function that mouseover will trigger the emphasis state.
|
|
@@ -1246,6 +1246,7 @@ export interface SeriesOption<StateOption = unknown, StatesMixin extends StatesM
|
|
|
1246
1246
|
formatter?: (val: string | number) => string | number;
|
|
1247
1247
|
notFilterData?: boolean;
|
|
1248
1248
|
offset?: number;
|
|
1249
|
+
showLast?: number;
|
|
1249
1250
|
}
|
|
1250
1251
|
export interface SeriesOnCartesianOptionMixin {
|
|
1251
1252
|
xAxisIndex?: number;
|