@visactor/vchart 2.1.0-alpha.0 → 2.1.0-alpha.2
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/build/es5/index.js +3 -3
- package/build/index.es.js +2290 -473
- package/build/index.js +2290 -473
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart-transformer.d.ts +3 -0
- package/cjs/chart/base/base-chart-transformer.js +21 -1
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +15 -9
- package/cjs/chart/base/base-chart.js +115 -24
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -0
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/pie/base/pie-transformer.js +2 -2
- package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
- package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -2
- package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/cjs/chart/util.d.ts +4 -1
- package/cjs/chart/util.js +40 -4
- package/cjs/chart/util.js.map +1 -1
- package/cjs/chart/waterfall/waterfall-transformer.js +2 -1
- package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/cjs/compile/compiler.js +2 -2
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/data/compilable-data.d.ts +1 -1
- package/cjs/compile/data/compilable-data.js +1 -1
- package/cjs/compile/data/compilable-data.js.map +1 -1
- package/cjs/compile/grammar-item.d.ts +1 -1
- package/cjs/compile/grammar-item.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +1 -1
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +2 -7
- package/cjs/component/axis/base-axis.js +25 -3
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +1 -7
- package/cjs/component/base/base-component.d.ts +7 -7
- package/cjs/component/base/base-component.js +41 -6
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/base/release-vrender-component.d.ts +10 -0
- package/cjs/component/base/release-vrender-component.js +37 -0
- package/cjs/component/base/release-vrender-component.js.map +1 -0
- package/cjs/component/brush/brush.d.ts +2 -7
- package/cjs/component/brush/brush.js +3 -0
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +1 -7
- package/cjs/component/custom-mark/custom-mark.d.ts +1 -7
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -7
- package/cjs/component/geo/geo-coordinate.d.ts +1 -7
- package/cjs/component/index.js +1 -2
- package/cjs/component/label/base-label.d.ts +1 -7
- package/cjs/component/label/label.js +1 -1
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +2 -7
- package/cjs/component/legend/base-legend.js +20 -3
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +7 -7
- package/cjs/component/marker/base-marker.js +23 -6
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/mark-line/base-mark-line.js +2 -4
- package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/cjs/component/title/title.d.ts +1 -7
- package/cjs/component/title/title.js +6 -2
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/constant/attribute.js +2 -1
- package/cjs/constant/scatter.js +1 -2
- package/cjs/constant/waterfall.js +2 -1
- package/cjs/core/factory.js +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/vchart.d.ts +5 -1
- package/cjs/core/vchart.js +28 -12
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/data-view-utils.d.ts +5 -0
- package/cjs/data/data-view-utils.js +58 -0
- package/cjs/data/data-view-utils.js.map +1 -0
- package/cjs/env/env.js +1 -1
- package/cjs/env/index.js +1 -1
- package/cjs/mark/base/base-mark.d.ts +12 -2
- package/cjs/mark/base/base-mark.js +85 -21
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/component.d.ts +9 -0
- package/cjs/mark/component.js +51 -3
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/group.js +1 -1
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/mark.d.ts +2 -0
- package/cjs/mark/interface/mark.js.map +1 -1
- package/cjs/model/base-model.d.ts +3 -15
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +13 -0
- package/cjs/model/interface.js.map +1 -1
- package/cjs/region/region.d.ts +1 -7
- package/cjs/series/area/area.d.ts +2 -0
- package/cjs/series/area/area.js +6 -0
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +3 -0
- package/cjs/series/bar/bar.js +30 -4
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +8 -7
- package/cjs/series/base/base-series.js +54 -13
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/constant.d.ts +3 -0
- package/cjs/series/base/constant.js +9 -1
- package/cjs/series/base/constant.js.map +1 -1
- package/cjs/series/box-plot/box-plot.d.ts +2 -0
- package/cjs/series/box-plot/box-plot.js +14 -2
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +2 -0
- package/cjs/series/heatmap/heatmap.js +10 -0
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/line/line.d.ts +2 -0
- package/cjs/series/line/line.js +6 -0
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +1 -0
- package/cjs/series/mixin/line-mixin.js +6 -1
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +3 -7
- package/cjs/series/pie/pie.js +16 -1
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/progress/circular/circular.d.ts +2 -0
- package/cjs/series/progress/circular/circular.js +9 -1
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +2 -0
- package/cjs/series/progress/linear/linear.js +17 -1
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/scatter/scatter.d.ts +2 -0
- package/cjs/series/scatter/scatter.js +9 -1
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +2 -0
- package/cjs/series/waterfall/waterfall.js +10 -0
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/util/graphic-state.d.ts +1 -0
- package/cjs/util/graphic-state.js +19 -4
- package/cjs/util/graphic-state.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.d.ts +3 -0
- package/esm/chart/base/base-chart-transformer.js +22 -0
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +15 -9
- package/esm/chart/base/base-chart.js +111 -23
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +1 -0
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/pie/base/pie-transformer.js +2 -2
- package/esm/chart/pie/base/pie-transformer.js.map +1 -1
- package/esm/chart/progress/circular/circular-progress-transformer.js +2 -2
- package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/esm/chart/util.d.ts +4 -1
- package/esm/chart/util.js +34 -1
- package/esm/chart/util.js.map +1 -1
- package/esm/chart/waterfall/waterfall-transformer.js +2 -1
- package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/esm/compile/compiler.js +2 -2
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/data/compilable-data.d.ts +1 -1
- package/esm/compile/data/compilable-data.js +1 -1
- package/esm/compile/data/compilable-data.js.map +1 -1
- package/esm/compile/grammar-item.d.ts +1 -1
- package/esm/compile/grammar-item.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +1 -1
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +2 -7
- package/esm/component/axis/base-axis.js +25 -2
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +1 -7
- package/esm/component/base/base-component.d.ts +7 -7
- package/esm/component/base/base-component.js +41 -5
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/base/release-vrender-component.d.ts +10 -0
- package/esm/component/base/release-vrender-component.js +24 -0
- package/esm/component/base/release-vrender-component.js.map +1 -0
- package/esm/component/brush/brush.d.ts +2 -7
- package/esm/component/brush/brush.js +3 -0
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +1 -7
- package/esm/component/custom-mark/custom-mark.d.ts +1 -7
- package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -7
- package/esm/component/geo/geo-coordinate.d.ts +1 -7
- package/esm/component/index.js +1 -2
- package/esm/component/label/base-label.d.ts +1 -7
- package/esm/component/label/label.js +1 -1
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +2 -7
- package/esm/component/legend/base-legend.js +20 -2
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +7 -7
- package/esm/component/marker/base-marker.js +24 -5
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/mark-line/base-mark-line.js +2 -4
- package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/esm/component/title/title.d.ts +1 -7
- package/esm/component/title/title.js +6 -2
- package/esm/component/title/title.js.map +1 -1
- package/esm/constant/attribute.js +2 -1
- package/esm/constant/scatter.js +1 -2
- package/esm/constant/waterfall.js +2 -1
- package/esm/core/factory.js +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/vchart.d.ts +5 -1
- package/esm/core/vchart.js +29 -12
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/data-view-utils.d.ts +5 -0
- package/esm/data/data-view-utils.js +46 -0
- package/esm/data/data-view-utils.js.map +1 -0
- package/esm/env/env.js +1 -1
- package/esm/env/index.js +1 -1
- package/esm/mark/base/base-mark.d.ts +12 -2
- package/esm/mark/base/base-mark.js +85 -20
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/component.d.ts +9 -0
- package/esm/mark/component.js +51 -2
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/group.js +1 -1
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/mark.d.ts +2 -0
- package/esm/mark/interface/mark.js.map +1 -1
- package/esm/model/base-model.d.ts +3 -15
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +13 -0
- package/esm/model/interface.js.map +1 -1
- package/esm/region/region.d.ts +1 -7
- package/esm/series/area/area.d.ts +2 -0
- package/esm/series/area/area.js +7 -1
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar.d.ts +3 -0
- package/esm/series/bar/bar.js +30 -4
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +8 -7
- package/esm/series/base/base-series.js +50 -11
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/constant.d.ts +3 -0
- package/esm/series/base/constant.js +10 -0
- package/esm/series/base/constant.js.map +1 -1
- package/esm/series/box-plot/box-plot.d.ts +2 -0
- package/esm/series/box-plot/box-plot.js +13 -2
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +2 -0
- package/esm/series/heatmap/heatmap.js +10 -0
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/line/line.d.ts +2 -0
- package/esm/series/line/line.js +7 -1
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +1 -0
- package/esm/series/mixin/line-mixin.js +5 -0
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.d.ts +3 -7
- package/esm/series/pie/pie.js +17 -0
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/progress/circular/circular.d.ts +2 -0
- package/esm/series/progress/circular/circular.js +10 -0
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +2 -0
- package/esm/series/progress/linear/linear.js +18 -0
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/scatter/scatter.d.ts +2 -0
- package/esm/series/scatter/scatter.js +10 -0
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +2 -0
- package/esm/series/waterfall/waterfall.js +10 -0
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/util/graphic-state.d.ts +1 -0
- package/esm/util/graphic-state.js +16 -3
- package/esm/util/graphic-state.js.map +1 -1
- package/package.json +11 -10
|
@@ -38,7 +38,7 @@ import { ChartEvent, HOOK_EVENT } from "../../constant/event";
|
|
|
38
38
|
|
|
39
39
|
import { DimensionEventEnum } from "../../event/events/dimension/interface";
|
|
40
40
|
|
|
41
|
-
import { calculateChartSize, mergeUpdateResult } from "../util";
|
|
41
|
+
import { calculateChartSize, isUpdateSpecResultComponentOnly, isUpdateSpecResultLocalOnly, mergeUpdateResult } from "../util";
|
|
42
42
|
|
|
43
43
|
import { isDiscrete } from "@visactor/vscale";
|
|
44
44
|
|
|
@@ -50,6 +50,12 @@ import { Interaction } from "../../interaction/interaction";
|
|
|
50
50
|
|
|
51
51
|
import { animationConfig, userAnimationConfig } from "../../animation/utils";
|
|
52
52
|
|
|
53
|
+
const MARKER_COMPONENT_SPEC_KEYS = {
|
|
54
|
+
[ComponentTypeEnum.markPoint]: !0,
|
|
55
|
+
[ComponentTypeEnum.markLine]: !0,
|
|
56
|
+
[ComponentTypeEnum.markArea]: !0
|
|
57
|
+
};
|
|
58
|
+
|
|
53
59
|
export class BaseChart extends CompilableBase {
|
|
54
60
|
getSpec() {
|
|
55
61
|
return this._spec;
|
|
@@ -94,7 +100,7 @@ export class BaseChart extends CompilableBase {
|
|
|
94
100
|
constructor(spec, option) {
|
|
95
101
|
var _a, _b, _c, _d;
|
|
96
102
|
super(option), this.type = "chart", this.id = createID(), this._regions = [], this._series = [],
|
|
97
|
-
this._components = [], this._layoutRect = {
|
|
103
|
+
this._components = [], this._specTransformer = null, this._layoutRect = {
|
|
98
104
|
x: 0,
|
|
99
105
|
y: 0,
|
|
100
106
|
width: DEFAULT_CHART_WIDTH,
|
|
@@ -153,8 +159,8 @@ export class BaseChart extends CompilableBase {
|
|
|
153
159
|
}), this._setModelOption && this._setModelOption(), this._spec = spec;
|
|
154
160
|
}
|
|
155
161
|
created(transformer) {
|
|
156
|
-
this._chartData.parseData(this._spec.data),
|
|
157
|
-
this._createLayout(), transformer.forEachRegionInSpec(this._spec, this._createRegion.bind(this)),
|
|
162
|
+
this._specTransformer = transformer, this._chartData.parseData(this._spec.data),
|
|
163
|
+
this._createGlobalScale(), this._createBackground(), this._createLayout(), transformer.forEachRegionInSpec(this._spec, this._createRegion.bind(this)),
|
|
158
164
|
transformer.forEachSeriesInSpec(this._spec, this._createSeries.bind(this)), transformer.forEachComponentInSpec(this._spec, this._createComponent.bind(this), this._option.getSpecInfo());
|
|
159
165
|
}
|
|
160
166
|
_initInteractions() {
|
|
@@ -446,11 +452,14 @@ export class BaseChart extends CompilableBase {
|
|
|
446
452
|
_getSpecKeys(spec) {
|
|
447
453
|
const ignoreKeys = {
|
|
448
454
|
width: !0,
|
|
449
|
-
height: !0
|
|
455
|
+
height: !0,
|
|
456
|
+
xField: !0,
|
|
457
|
+
yField: !0
|
|
450
458
|
};
|
|
451
459
|
return Object.keys(spec).filter((key => !ignoreKeys[key])).sort();
|
|
452
460
|
}
|
|
453
461
|
updateSpec(spec) {
|
|
462
|
+
var _a;
|
|
454
463
|
const result = {
|
|
455
464
|
change: !1,
|
|
456
465
|
reMake: !1,
|
|
@@ -458,20 +467,32 @@ export class BaseChart extends CompilableBase {
|
|
|
458
467
|
reSize: !1,
|
|
459
468
|
reCompile: !1
|
|
460
469
|
};
|
|
461
|
-
if (
|
|
470
|
+
if (spec.type !== this.type) return result.reMake = !0, this.setLayoutTag(!0, null, !1),
|
|
462
471
|
result;
|
|
463
472
|
const currentKeys = this._getSpecKeys(this._spec), nextKeys = this._getSpecKeys(spec);
|
|
464
|
-
if (!isEqual(currentKeys, nextKeys)) return result.reMake = !0,
|
|
473
|
+
if (!isEqual(currentKeys, nextKeys)) return result.reMake = !0, this.setLayoutTag(!0, null, !1),
|
|
474
|
+
result;
|
|
465
475
|
for (let i = 0; i < currentKeys.length; i++) {
|
|
466
|
-
const key = currentKeys[i];
|
|
467
|
-
if (isArray(
|
|
468
|
-
result;
|
|
476
|
+
const key = currentKeys[i], currentSpec = this._spec[key], nextSpec = spec[key];
|
|
477
|
+
if (isArray(currentSpec) && currentSpec.length !== array(nextSpec).length && !this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec)) return result.reMake = !0,
|
|
478
|
+
this.setLayoutTag(!0, null, !1), result;
|
|
469
479
|
}
|
|
470
|
-
const oldSpec = this._spec;
|
|
471
|
-
|
|
472
|
-
result
|
|
473
|
-
|
|
474
|
-
|
|
480
|
+
const oldSpec = this._spec, onlyMarkerComponentsRemoved = this._isOnlyMarkerComponentsRemoved(this._spec, spec, currentKeys), onlyComponentSpecsChanged = this._isOnlyComponentSpecsChanged(this._spec, spec, currentKeys), onlySeriesSpecsChanged = this._isOnlySeriesSpecsChanged(this._spec, spec, currentKeys);
|
|
481
|
+
if (this._spec = spec, onlyMarkerComponentsRemoved) return this._removeMarkerComponentsForEmptySpecs(result),
|
|
482
|
+
result;
|
|
483
|
+
if (this.updateChartConfig(result, oldSpec), result.reMake) return this.setLayoutTag(!0, null, !1),
|
|
484
|
+
result;
|
|
485
|
+
if (this.updateGlobalScale(result), result.reMake) return this.setLayoutTag(!0, null, !1),
|
|
486
|
+
result;
|
|
487
|
+
if (this.updateRegionSpec(result), result.reMake) return this.setLayoutTag(!0, null, !1),
|
|
488
|
+
result;
|
|
489
|
+
const componentUpdateResult = this.updateComponentSpec(result);
|
|
490
|
+
return result.reMake ? (this.setLayoutTag(!0, null, !1), result) : isUpdateSpecResultLocalOnly(result) ? result : onlyComponentSpecsChanged && !componentUpdateResult.hasNonComponentOnlyUpdate && isUpdateSpecResultComponentOnly(result) ? (componentUpdateResult.componentOnlyUpdatedComponents.forEach((component => {
|
|
491
|
+
component.reInit(component.getSpec());
|
|
492
|
+
})), (null === (_a = result.effects) || void 0 === _a ? void 0 : _a.layout) && this.setLayoutTag(!0, null, !1),
|
|
493
|
+
result) : (this.setLayoutTag(!0, null, !1), this.updateSeriesSpec(result), result.reMake || (this.reInit(),
|
|
494
|
+
onlySeriesSpecsChanged && this._canSkipChartDataStages(result) || (this.updateDataSpec(),
|
|
495
|
+
this.updateGlobalScaleDomain())), result);
|
|
475
496
|
}
|
|
476
497
|
updateChartConfig(result, oldSpec) {
|
|
477
498
|
var _a, _b;
|
|
@@ -488,32 +509,99 @@ export class BaseChart extends CompilableBase {
|
|
|
488
509
|
})) : result.reMake = !0);
|
|
489
510
|
}
|
|
490
511
|
updateComponentSpec(result) {
|
|
512
|
+
const componentOnlyUpdatedComponents = [];
|
|
513
|
+
let hasNonComponentOnlyUpdate = !1;
|
|
491
514
|
const componentCache = {}, checkVisibleComponents = {
|
|
492
515
|
[ComponentTypeEnum.title]: !0,
|
|
493
516
|
[ComponentTypeEnum.brush]: !0,
|
|
494
517
|
[ComponentTypeEnum.indicator]: !0
|
|
495
|
-
};
|
|
518
|
+
}, removedComponents = [];
|
|
496
519
|
this._components.forEach((c => {
|
|
497
520
|
var _a, _b;
|
|
498
521
|
if (c.type === ComponentTypeEnum.label || c.type === ComponentTypeEnum.totalLabel) return;
|
|
499
522
|
checkVisibleComponents[c.type] && (checkVisibleComponents[c.type] = !1);
|
|
500
523
|
const compSpecKey = c.specKey || c.type, cmpSpec = null !== (_a = this._spec[compSpecKey]) && void 0 !== _a ? _a : {};
|
|
501
|
-
isArray(cmpSpec)
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
524
|
+
if (isArray(cmpSpec)) {
|
|
525
|
+
if (componentCache[compSpecKey] = componentCache[compSpecKey] || {
|
|
526
|
+
specCount: cmpSpec.length,
|
|
527
|
+
componentCount: 0
|
|
528
|
+
}, this._canRemoveMarkerComponentsWithoutRemake(compSpecKey, [ c.getSpec() ], cmpSpec)) return void removedComponents.push(c);
|
|
529
|
+
componentCache[compSpecKey].componentCount++;
|
|
530
|
+
const componentSpec = null !== (_b = cmpSpec[c.getSpecIndex()]) && void 0 !== _b ? _b : {}, previousComponentSpec = c.getSpec(), componentResult = c.updateSpec(componentSpec, cmpSpec);
|
|
531
|
+
isUpdateSpecResultComponentOnly(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, componentSpec) || (hasNonComponentOnlyUpdate = !0),
|
|
532
|
+
mergeUpdateResult(result, componentResult);
|
|
533
|
+
} else {
|
|
534
|
+
const previousComponentSpec = c.getSpec(), componentResult = c.updateSpec(cmpSpec);
|
|
535
|
+
isUpdateSpecResultComponentOnly(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, cmpSpec) || (hasNonComponentOnlyUpdate = !0),
|
|
536
|
+
mergeUpdateResult(result, componentResult);
|
|
537
|
+
}
|
|
505
538
|
}));
|
|
506
539
|
for (const key in componentCache) if (Object.prototype.hasOwnProperty.call(componentCache, key)) {
|
|
507
540
|
const element = componentCache[key];
|
|
508
541
|
element.componentCount !== element.specCount && (result.reMake = !0);
|
|
509
542
|
}
|
|
543
|
+
removedComponents.length && (removedComponents.forEach((component => {
|
|
544
|
+
this._removeComponent(component);
|
|
545
|
+
})), result.change = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
|
|
546
|
+
component: !0,
|
|
547
|
+
localOnly: !0
|
|
548
|
+
}));
|
|
510
549
|
const isVisible = compSpec => compSpec && !1 !== compSpec.visible;
|
|
511
|
-
Object.keys(checkVisibleComponents).forEach((type => {
|
|
550
|
+
return Object.keys(checkVisibleComponents).forEach((type => {
|
|
512
551
|
if (checkVisibleComponents[type]) {
|
|
513
552
|
const compSpec = this._spec[type];
|
|
514
553
|
(isArray(compSpec) ? compSpec.some(isVisible) : isVisible(compSpec)) && (result.reMake = !0);
|
|
515
554
|
}
|
|
555
|
+
})), {
|
|
556
|
+
componentOnlyUpdatedComponents: componentOnlyUpdatedComponents,
|
|
557
|
+
hasNonComponentOnlyUpdate: hasNonComponentOnlyUpdate
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
_canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
|
|
561
|
+
return MARKER_COMPONENT_SPEC_KEYS[key] && isArray(currentSpec) && currentSpec.length > 0 && isArray(nextSpec) && 0 === nextSpec.length;
|
|
562
|
+
}
|
|
563
|
+
_isOnlyMarkerComponentsRemoved(currentSpec, nextSpec, specKeys) {
|
|
564
|
+
let hasMarkerRemoval = !1;
|
|
565
|
+
const onlyMarkerRemoval = specKeys.every((key => this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec[key], nextSpec[key]) ? (hasMarkerRemoval = !0,
|
|
566
|
+
!0) : isEqual(currentSpec[key], nextSpec[key])));
|
|
567
|
+
return hasMarkerRemoval && onlyMarkerRemoval;
|
|
568
|
+
}
|
|
569
|
+
_isComponentSpecKey(key) {
|
|
570
|
+
return this._components.some((component => (component.specKey || component.type) === key));
|
|
571
|
+
}
|
|
572
|
+
_isOnlyComponentSpecsChanged(currentSpec, nextSpec, specKeys) {
|
|
573
|
+
let hasComponentSpecChange = !1;
|
|
574
|
+
const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, onlyComponentSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !!this._isComponentSpecKey(key) && (hasComponentSpecChange = !0,
|
|
575
|
+
!0)));
|
|
576
|
+
return hasComponentSpecChange && onlyComponentSpecChange;
|
|
577
|
+
}
|
|
578
|
+
_isOnlySeriesSpecsChanged(currentSpec, nextSpec, specKeys) {
|
|
579
|
+
var _a, _b;
|
|
580
|
+
let hasSeriesSpecChange = !1;
|
|
581
|
+
const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, seriesRelatedSpecKeys = null !== (_b = null === (_a = this._specTransformer) || void 0 === _a ? void 0 : _a.getSeriesRelatedSpecKeys()) && void 0 !== _b ? _b : {}, onlySeriesSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !!seriesRelatedSpecKeys[key] && (hasSeriesSpecChange = !0,
|
|
582
|
+
!0)));
|
|
583
|
+
return hasSeriesSpecChange && onlySeriesSpecChange;
|
|
584
|
+
}
|
|
585
|
+
_canSkipChartDataStages(result) {
|
|
586
|
+
const effects = result.effects;
|
|
587
|
+
return !(!(null == effects ? void 0 : effects.series) || effects.remake || effects.data || effects.scaleDomain || result.reMake);
|
|
588
|
+
}
|
|
589
|
+
_removeMarkerComponentsForEmptySpecs(result) {
|
|
590
|
+
const removedComponents = this._components.filter((component => {
|
|
591
|
+
var _a;
|
|
592
|
+
const compSpecKey = component.specKey || component.type, cmpSpec = null !== (_a = this._spec[compSpecKey]) && void 0 !== _a ? _a : {};
|
|
593
|
+
return this._canRemoveMarkerComponentsWithoutRemake(compSpecKey, [ component.getSpec() ], cmpSpec);
|
|
516
594
|
}));
|
|
595
|
+
removedComponents.length && (removedComponents.forEach((component => {
|
|
596
|
+
this._removeComponent(component);
|
|
597
|
+
})), result.change = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
|
|
598
|
+
component: !0,
|
|
599
|
+
localOnly: !0
|
|
600
|
+
}));
|
|
601
|
+
}
|
|
602
|
+
_removeComponent(component) {
|
|
603
|
+
this._components = this._components.filter((c => c !== component)), this._idMap.delete(component.id),
|
|
604
|
+
component.release();
|
|
517
605
|
}
|
|
518
606
|
updateSeriesSpec(result) {
|
|
519
607
|
this._spec.series.length === this._series.length ? this._series.forEach((s => {
|
|
@@ -610,8 +698,8 @@ export class BaseChart extends CompilableBase {
|
|
|
610
698
|
c.compile();
|
|
611
699
|
})), null === (_d = null === (_c = this._option.performanceHook) || void 0 === _c ? void 0 : _c.afterComponentCompile) || void 0 === _d || _d.call(_c, this._option.globalInstance);
|
|
612
700
|
}
|
|
613
|
-
release() {
|
|
614
|
-
[ ...this._components, ...this._regions, ...this._series ].forEach((m => {
|
|
701
|
+
release(forceReleaseVRenderComponents = !0) {
|
|
702
|
+
forceReleaseVRenderComponents && [ ...this._components, ...this._regions, ...this._series ].forEach((m => {
|
|
615
703
|
m.beforeRelease();
|
|
616
704
|
})), super.release(), this.clear(), [ ...this._components, ...this._regions, ...this._series ].forEach((m => {
|
|
617
705
|
m.release();
|