tvcharts 0.5.83 → 0.5.85

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 CHANGED
@@ -16069,6 +16069,9 @@ var GlobalModel = class extends Model_default {
16069
16069
  this._optionManager.setOption(option, optionPreprocessorFuncs2, innerOpt);
16070
16070
  this._resetOption(null, innerOpt);
16071
16071
  }
16072
+ getNewBaseOption() {
16073
+ return this._optionManager.getNewBaseOption();
16074
+ }
16072
16075
  resetOption(type, opt) {
16073
16076
  return this._resetOption(type, normalizeSetOptionInput(opt));
16074
16077
  }
@@ -16535,7 +16538,8 @@ var availableMethods = [
16535
16538
  "getConnectedDataURL",
16536
16539
  "getOption",
16537
16540
  "getId",
16538
- "updateLabelLayout"
16541
+ "updateLabelLayout",
16542
+ "trigger"
16539
16543
  ];
16540
16544
  var ExtensionAPI = class {
16541
16545
  constructor(ecInstance) {
@@ -16657,6 +16661,9 @@ var OptionManager = class {
16657
16661
  this._currentMediaIndices = indices;
16658
16662
  return result;
16659
16663
  }
16664
+ getNewBaseOption() {
16665
+ return this._newBaseOption;
16666
+ }
16660
16667
  };
16661
16668
  function parseRawOption(rawOption, optionPreprocessorFuncs2, isNew) {
16662
16669
  const mediaList = [];
@@ -18472,9 +18479,15 @@ function prepareStore(store, dimIdx, dimType, end2, append) {
18472
18479
  const oldStore = store[dimIdx];
18473
18480
  const oldLen = oldStore && oldStore.length;
18474
18481
  if (!(oldLen === end2)) {
18475
- const newStore = new DataCtor(end2);
18476
- for (let j = 0; j < oldLen; j++) {
18477
- newStore[j] = oldStore[j];
18482
+ let newStore = new DataCtor(end2);
18483
+ if (newStore instanceof Int32Array && oldStore instanceof Int32Array || newStore instanceof Float64Array && oldStore instanceof Float64Array) {
18484
+ newStore.set(oldStore);
18485
+ } else if (newStore instanceof Array && oldStore instanceof Array) {
18486
+ newStore = oldStore;
18487
+ } else {
18488
+ for (let j = 0; j < oldLen; j++) {
18489
+ newStore[j] = oldStore[j];
18490
+ }
18478
18491
  }
18479
18492
  store[dimIdx] = newStore;
18480
18493
  }
@@ -18612,6 +18625,20 @@ var DataStore2 = class {
18612
18625
  this._rawCount = this._count = end2;
18613
18626
  return {start: start2, end: end2};
18614
18627
  }
18628
+ updateValue(value) {
18629
+ const chunks = this._chunks;
18630
+ const dimensions = this._dimensions;
18631
+ const dimLen = dimensions.length;
18632
+ const rawExtent = this._rawExtent;
18633
+ const idx = this._rawCount - 1;
18634
+ for (let dimIdx = 0; dimIdx < dimLen; dimIdx++) {
18635
+ const val = value[dimIdx];
18636
+ chunks[dimIdx][idx] = val;
18637
+ const dimRawExtent = rawExtent[dimIdx];
18638
+ val < dimRawExtent[0] && (dimRawExtent[0] = val);
18639
+ val > dimRawExtent[1] && (dimRawExtent[1] = val);
18640
+ }
18641
+ }
18615
18642
  _initDataFromProvider(start2, end2, append) {
18616
18643
  const provider = this._provider;
18617
18644
  const chunks = this._chunks;
@@ -19786,6 +19813,10 @@ var SeriesModel2 = class extends Component_default {
19786
19813
  const data = this.getRawData();
19787
19814
  data.appendData(params.data);
19788
19815
  }
19816
+ updateData(params) {
19817
+ const data = this.getRawData();
19818
+ data.updateValue(params.data[0]);
19819
+ }
19789
19820
  getData(dataType) {
19790
19821
  const task = getCurrentTask(this);
19791
19822
  if (task) {
@@ -23258,7 +23289,7 @@ var ECharts = class extends Eventful_default {
23258
23289
  this.trigger(eventType, event);
23259
23290
  }, this);
23260
23291
  });
23261
- each(["selectchanged", "selectitem"], (eventType) => {
23292
+ each(["selectchanged", "selectitem", "loadmore", "zoomend"], (eventType) => {
23262
23293
  this._messageCenter.on(eventType, function(event) {
23263
23294
  this.trigger(eventType, event);
23264
23295
  }, this);
@@ -23431,6 +23462,60 @@ var ECharts = class extends Eventful_default {
23431
23462
  this._scheduler.unfinished = true;
23432
23463
  this.getZr().wakeUp();
23433
23464
  }
23465
+ updateData(batch) {
23466
+ if (this._disposed) {
23467
+ disposedWarning(this.id);
23468
+ return;
23469
+ }
23470
+ let firstSeriesModel = void 0;
23471
+ let isUpdateData = false;
23472
+ each(batch, (params, index) => {
23473
+ const seriesIndex = params.seriesIndex;
23474
+ const seriesName = params.seriesName;
23475
+ const ecModel = this.getModel();
23476
+ const seriesModel = seriesIndex !== void 0 ? ecModel.getSeriesByIndex(seriesIndex) : ecModel.getSeriesByName(seriesName)[0];
23477
+ if (true) {
23478
+ assert(params.data && seriesModel);
23479
+ }
23480
+ const seriesData = seriesModel.getData();
23481
+ let lastIndex = seriesData.count(true) - 1;
23482
+ const id = seriesData.getId(lastIndex, true);
23483
+ const paramId = params.data[0][0];
23484
+ const isUpdate = id == paramId;
23485
+ if (isUpdate) {
23486
+ seriesModel.updateData({data: map(params.data, (item) => {
23487
+ item[0] = lastIndex;
23488
+ return item;
23489
+ })});
23490
+ isUpdateData = true;
23491
+ } else {
23492
+ const categories = [];
23493
+ const formatData = map(params.data, (item) => {
23494
+ categories.push(item[0]);
23495
+ lastIndex = lastIndex + 1;
23496
+ item[0] = lastIndex;
23497
+ return item;
23498
+ });
23499
+ if (index === 0) {
23500
+ const scale5 = seriesModel.coordinateSystem.getBaseAxis().scale;
23501
+ scale5.getOrdinalMeta().appendData(categories);
23502
+ }
23503
+ seriesModel.appendData({data: formatData});
23504
+ }
23505
+ if (!firstSeriesModel) {
23506
+ firstSeriesModel = seriesModel;
23507
+ }
23508
+ });
23509
+ const coordSys = firstSeriesModel.coordinateSystem;
23510
+ const baseAxis = coordSys.getBaseAxis();
23511
+ const scale4 = baseAxis.scale;
23512
+ const payload = {
23513
+ type: "dataZoom",
23514
+ barSpace: scale4.barSpace,
23515
+ lastBarRightSideDiffBarCount: !isUpdateData && scale4.lastBarRightSideDiffBarCount < 1.5 ? scale4.lastBarRightSideDiffBarCount - 1 : scale4.lastBarRightSideDiffBarCount
23516
+ };
23517
+ doDispatchAction.call(this, payload, true);
23518
+ }
23434
23519
  };
23435
23520
  PENDING_UPDATE, IN_MAIN_PROCESS_KEY, CONNECT_STATUS_KEY, STATUS_NEEDS_UPDATE_KEY;
23436
23521
  ECharts.internalField = function() {
@@ -25096,6 +25181,9 @@ var SeriesData2 = class {
25096
25181
  const range = this._store.appendData(data);
25097
25182
  this._doInit(range[0], range[1]);
25098
25183
  }
25184
+ updateValue(value) {
25185
+ this._store.updateValue(value);
25186
+ }
25099
25187
  appendValues(values, names) {
25100
25188
  const {start: start2, end: end2} = this._store.appendValues(values, names.length);
25101
25189
  const shouldMakeIdFromName = this._shouldMakeIdFromName();
@@ -25193,8 +25281,8 @@ var SeriesData2 = class {
25193
25281
  }
25194
25282
  return ordinal;
25195
25283
  }
25196
- getId(idx) {
25197
- return getId(this, this.getRawIndex(idx));
25284
+ getId(idx, isRaw) {
25285
+ return getId(this, isRaw ? idx : this.getRawIndex(idx));
25198
25286
  }
25199
25287
  count(isRaw) {
25200
25288
  return this._store.count(isRaw);
@@ -26280,6 +26368,10 @@ var OrdinalMeta = class {
26280
26368
  getMarksByWeight() {
26281
26369
  return this._marksByWeight;
26282
26370
  }
26371
+ appendData(data) {
26372
+ this.categories.push(...data);
26373
+ this.extraCategory.slice(data.length);
26374
+ }
26283
26375
  parseAndCollect(category) {
26284
26376
  let index;
26285
26377
  const needCollect = this._needCollect;
@@ -38457,12 +38549,15 @@ var AxisView2 = class extends Component_default2 {
38457
38549
  this.axisPointerClass && fixValue(axisModel);
38458
38550
  super.render.apply(this, arguments);
38459
38551
  this._doUpdateAxisPointerClass(axisModel, api2, true);
38460
- this.updateAxisRange(axisModel, ecModel, api2, payload);
38552
+ this.updateAxisRange(axisModel, ecModel, api2, this._rangePayload);
38461
38553
  }
38462
38554
  updateAxisPointer(axisModel, ecModel, api2, payload) {
38463
38555
  this._doUpdateAxisPointerClass(axisModel, api2, false);
38464
38556
  }
38465
38557
  updateAxisRange(axisModel, ecModel, api2, payload) {
38558
+ if (!payload) {
38559
+ return;
38560
+ }
38466
38561
  const {name, y, height, style, z, zlevel, status} = payload;
38467
38562
  if (status === "hide") {
38468
38563
  this.removeRangeRect(api2);
@@ -38490,7 +38585,7 @@ var AxisView2 = class extends Component_default2 {
38490
38585
  } else {
38491
38586
  this._rangeRect = new Rect_default({
38492
38587
  shape: {
38493
- x: layoutInfo.position[0],
38588
+ x,
38494
38589
  y,
38495
38590
  width,
38496
38591
  height
@@ -38506,6 +38601,7 @@ var AxisView2 = class extends Component_default2 {
38506
38601
  if (this._rangeRect) {
38507
38602
  api2.getZr().remove(this._rangeRect);
38508
38603
  this._rangeRect = void 0;
38604
+ this._rangePayload = void 0;
38509
38605
  }
38510
38606
  ;
38511
38607
  }
@@ -39689,6 +39785,9 @@ var RoamController = class extends Eventful_default {
39689
39785
  }
39690
39786
  _mouseupHandler(e2) {
39691
39787
  if (!isMiddleOrRightButtonOnMouseUpDown(e2)) {
39788
+ if (this._dragging) {
39789
+ trigger(this, "dragEnd", "moveOnMouseMove", e2, {isAvailableBehavior: null});
39790
+ }
39692
39791
  this._dragging = false;
39693
39792
  }
39694
39793
  }
@@ -51926,9 +52025,11 @@ function isNormalBoxClipped(clipArea, itemLayout) {
51926
52025
  return clipped;
51927
52026
  }
51928
52027
  function setBoxCommon(el, data, dataIndex, isSimpleBox) {
52028
+ const itemModel = data.getItemModel(dataIndex);
51929
52029
  el.useStyle(data.getItemVisual(dataIndex, "style"));
51930
52030
  el.style.strokeNoScale = true;
51931
52031
  el.__simpleBox = isSimpleBox;
52032
+ setStatesStylesFromModel(el, itemModel);
51932
52033
  }
51933
52034
  function transInit2(points4, itemLayout) {
51934
52035
  return map(points4, function(point) {
@@ -52142,9 +52243,10 @@ var candlestickLayout = {
52142
52243
  const closeDimI = vDimsI[1];
52143
52244
  const lowestDimI = vDimsI[2];
52144
52245
  const highestDimI = vDimsI[3];
52246
+ const isSimpleBox = candleWidth <= 1.3;
52145
52247
  data.setLayout({
52146
52248
  candleWidth,
52147
- isSimpleBox: candleWidth <= 1.3
52249
+ isSimpleBox
52148
52250
  });
52149
52251
  if (cDimI < 0 || vDimsI.length < 4) {
52150
52252
  return;
@@ -52171,6 +52273,10 @@ var candlestickLayout = {
52171
52273
  addBodyEnd(ends, ocHighPoint, 0);
52172
52274
  addBodyEnd(ends, ocLowPoint, 1);
52173
52275
  ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));
52276
+ if (isSimpleBox && ends[4][1] === ends[6][1]) {
52277
+ ends[4][1] -= 0.5;
52278
+ ends[6][1] += 0.5;
52279
+ }
52174
52280
  const itemModel = data2.getItemModel(dataIndex);
52175
52281
  const hasDojiColor = !!itemModel.get(["itemStyle", "borderColorDoji"]);
52176
52282
  data2.setItemLayout(dataIndex, {
@@ -52191,6 +52297,10 @@ var candlestickLayout = {
52191
52297
  const point2 = point.slice();
52192
52298
  point1[cDimIdx] = subPixelOptimize2(point1[cDimIdx] + candleWidth / 2, 1, false);
52193
52299
  point2[cDimIdx] = subPixelOptimize2(point2[cDimIdx] - candleWidth / 2, 1, true);
52300
+ if (point1[cDimIdx] === point2[cDimIdx]) {
52301
+ point1[0] = start2 ? point1[0] - 0.5 : point1[0] + 0.5;
52302
+ point2[0] = start2 ? point1[0] + 0.5 : point1[0] - 0.5;
52303
+ }
52194
52304
  start2 ? ends.push(point1, point2) : ends.push(point2, point1);
52195
52305
  }
52196
52306
  function makeBrushRect(lowestVal, highestVal, axisDimVal) {
@@ -57054,7 +57164,7 @@ var GraphicComponentModel2 = class extends Component_default {
57054
57164
  newElOption.getElementLabels = resultItem.existing.getElementLabels;
57055
57165
  }
57056
57166
  elOptionsToUpdate.push(newElOption);
57057
- if (newElOption.getElementLabels && newElOption.labelVisible) {
57167
+ if (newElOption.getElementLabels) {
57058
57168
  includesLabelOptionsToUpdate.push(newElOption);
57059
57169
  }
57060
57170
  setKeyInfoToNewElOption(resultItem, newElOption);
@@ -57763,7 +57873,7 @@ var AxisPointerView2 = class extends Component_default2 {
57763
57873
  if (triggerOn !== "none" && (currTrigger === "leave" || triggerOn.indexOf(currTrigger) >= 0)) {
57764
57874
  let x = e2 && e2.offsetX;
57765
57875
  let y = e2 && e2.offsetY;
57766
- const lastXIndex = xAxisModel?.option.axisPointer.value;
57876
+ const lastXIndex = xAxisModel?.get("axisPointer").value;
57767
57877
  if (e2 && magnet === "magnet" && currTrigger === "mousemove") {
57768
57878
  const xData = xAxisModel.axis.pointToData([e2.offsetX, e2.offsetY]);
57769
57879
  const yData = yAxisModel.axis.pointToData([e2.offsetX, e2.offsetY]);
@@ -60411,7 +60521,8 @@ var GraphicComponentView2 = class extends Component_default2 {
60411
60521
  if (graphicModel !== this._lastGraphicModel) {
60412
60522
  this._clear();
60413
60523
  }
60414
- if (["dataZoom", "resize"].includes(payload?.type)) {
60524
+ const isUpdateGraphic = payload?.type ? ["dataZoom", "resize"].includes(payload.type) : Object.keys(ecModel.getNewBaseOption()).some((key) => ["grid", "yAxis", "xAxis"].includes(key));
60525
+ if (isUpdateGraphic) {
60415
60526
  this._dataZoomUpdateElements(graphicModel, ecIns);
60416
60527
  }
60417
60528
  this._lastGraphicModel = graphicModel;
@@ -61243,6 +61354,9 @@ var AxisProxy = class {
61243
61354
  getDataValueWindow() {
61244
61355
  return this._valueWindow.slice();
61245
61356
  }
61357
+ getDimName() {
61358
+ return this._dimName;
61359
+ }
61246
61360
  getDataPercentWindow() {
61247
61361
  return this._percentWindow.slice();
61248
61362
  }
@@ -61309,7 +61423,7 @@ var AxisProxy = class {
61309
61423
  percentWindow
61310
61424
  };
61311
61425
  }
61312
- reset(dataZoomModel) {
61426
+ reset(dataZoomModel, api2) {
61313
61427
  if (dataZoomModel !== this._dataZoomModel) {
61314
61428
  return;
61315
61429
  }
@@ -61346,6 +61460,9 @@ var AxisProxy = class {
61346
61460
  rawExtentInfo.setDeterminedMinMax("min", from);
61347
61461
  rawExtentInfo.freeze();
61348
61462
  dataZoomModel.option.lastBarRightSideDiffBarCount = lastBarRightSideDiffBarCount;
61463
+ if (from < 0 && !dataZoomModel.isDragging) {
61464
+ api2.trigger("loadmore");
61465
+ }
61349
61466
  } else {
61350
61467
  if (dataZoomModel.get("useValueRange") && (dataZoomModel.settledOption.startValue || dataZoomModel.settledOption.endValue)) {
61351
61468
  this._valueWindow = [
@@ -61518,7 +61635,7 @@ var dataZoomProcessor = {
61518
61635
  overallReset(ecModel, api2, payload) {
61519
61636
  ecModel.eachComponent("dataZoom", function(dataZoomModel) {
61520
61637
  dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) {
61521
- dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);
61638
+ dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel, api2);
61522
61639
  });
61523
61640
  dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) {
61524
61641
  dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api2);
@@ -67028,8 +67145,11 @@ var MarkLabelView2 = class extends Component_default2 {
67028
67145
  if (type !== "updateComOption") {
67029
67146
  this.updateMarkLabels(markerModel, ecModel);
67030
67147
  }
67031
- this.graphicLabelsResize(ecModel);
67032
67148
  this.updateGraphicLabels(ecModel);
67149
+ const isUpdateGraphic = payload?.type ? ["dataZoom", "resize"].includes(payload.type) : Object.keys(ecModel.getNewBaseOption()).some((key) => ["grid", "yAxis", "xAxis"].includes(key));
67150
+ if (isUpdateGraphic) {
67151
+ this.graphicLabelsResize(ecModel);
67152
+ }
67033
67153
  this.avoidOverlap();
67034
67154
  }
67035
67155
  updateMarkLabels(markerModel, ecModel) {
@@ -67116,6 +67236,9 @@ var MarkLabelView2 = class extends Component_default2 {
67116
67236
  this.removeGraphicLabels(label);
67117
67237
  return;
67118
67238
  }
67239
+ if (!item.labelVisible) {
67240
+ return;
67241
+ }
67119
67242
  const seriesId = item.seriesId || defaultSeries.id;
67120
67243
  const seriesLabels = labelsBySeriesId[seriesId] || [];
67121
67244
  seriesLabels.push(label);
@@ -68473,6 +68596,16 @@ function createCoordSysRecord(api2, coordSysModel) {
68473
68596
  controller: null
68474
68597
  };
68475
68598
  const controller = coordSysRecord.controller = new RoamController_default(api2.getZr());
68599
+ controller.on("dragEnd", () => {
68600
+ coordSysRecord.dataZoomInfoMap.each(function(dzInfo) {
68601
+ const axisProxy = dzInfo.model.findRepresentativeAxisProxy();
68602
+ const valueData = axisProxy.getDataValueWindow();
68603
+ if (axisProxy.getDimName() === "x" && valueData[0] < 0) {
68604
+ api2.trigger("loadmore");
68605
+ }
68606
+ });
68607
+ api2.trigger("zoomend");
68608
+ });
68476
68609
  each(["pan", "zoom", "scrollMove"], function(eventName) {
68477
68610
  controller.on(eventName, function(event) {
68478
68611
  const batch = [];
@@ -68493,6 +68626,7 @@ function createCoordSysRecord(api2, coordSysModel) {
68493
68626
  barSpace: range[0],
68494
68627
  lastBarRightSideDiffBarCount: range[1]
68495
68628
  });
68629
+ dzInfo.model.isDragging = controller.isDragging();
68496
68630
  axisProxy.setDataPercentWindow([range[0], range[1]]);
68497
68631
  axisModal.axis.scale.setSpace(range[0], range[1]);
68498
68632
  batch.push({