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.
@@ -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 globalSymbol = seriesModel.get('symbol');
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
- var offset = 0;
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
- var isRawLast = i + 1 === params.end ? data.getRawIndex(i) === data.count(true) - 1 : false;
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);
@@ -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, 60);
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: !isUpdateData && scale.lastBarRightSideDiffBarCount < 1.5 ? scale.lastBarRightSideDiffBarCount - 1 : scale.lastBarRightSideDiffBarCount
1192
+ lastBarRightSideDiffBarCount: isMove ? scale.lastBarRightSideDiffBarCount - 1 : scale.lastBarRightSideDiffBarCount
1191
1193
  };
1192
- doDispatchAction.call(this, payload, true);
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
- var data = getSeriesPointData(ecModel);
1874
- var messageCenter = ecIns._messageCenter;
1875
- messageCenter.trigger('selectitem', {
1876
- data: data,
1877
- type: 'series'
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
  };
@@ -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 = !payload.dataIndex;
583
- var index = (_a = payload.dataIndex) !== null && _a !== void 0 ? _a : data.count(isRaw) - 1;
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 (isLinesPlot) {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tvcharts",
3
- "version": "0.6.21",
3
+ "version": "0.6.22",
4
4
  "description": "基于echarts5.5.0二次开发",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -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[];
@@ -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;