@visactor/react-vchart 2.1.0-alpha.2 → 2.1.0-alpha.4

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.
Files changed (155) hide show
  1. package/build/index.js +358 -84
  2. package/build/index.min.js +3 -3
  3. package/cjs/charts/AreaChart.js +1 -1
  4. package/cjs/charts/Bar3dChart.js +1 -1
  5. package/cjs/charts/BarChart.js +1 -1
  6. package/cjs/charts/BaseChart.js +1 -1
  7. package/cjs/charts/BoxPlotChart.js +1 -1
  8. package/cjs/charts/CirclePackingChart.js +1 -1
  9. package/cjs/charts/CircularProgressChart.js +1 -1
  10. package/cjs/charts/CommonChart.js +1 -1
  11. package/cjs/charts/CorrelationChart.js +1 -1
  12. package/cjs/charts/Funnel3dChart.js +1 -1
  13. package/cjs/charts/FunnelChart.js +1 -1
  14. package/cjs/charts/GaugeChart.js +1 -1
  15. package/cjs/charts/HeatmapChart.js +1 -1
  16. package/cjs/charts/Histogram3dChart.js +1 -1
  17. package/cjs/charts/HistogramChart.js +2 -1
  18. package/cjs/charts/LineChart.js +1 -1
  19. package/cjs/charts/LinearProgressChart.js +1 -1
  20. package/cjs/charts/LiquidChart.js +1 -1
  21. package/cjs/charts/MapChart.js +1 -1
  22. package/cjs/charts/MosaicChart.js +1 -1
  23. package/cjs/charts/PictogramChart.js +1 -1
  24. package/cjs/charts/Pie3dChart.js +1 -1
  25. package/cjs/charts/PieChart.js +1 -1
  26. package/cjs/charts/RadarChart.js +1 -1
  27. package/cjs/charts/RangeAreaChart.js +1 -1
  28. package/cjs/charts/RangeColumn3dChart.js +1 -1
  29. package/cjs/charts/RangeColumnChart.js +1 -1
  30. package/cjs/charts/RoseChart.js +1 -1
  31. package/cjs/charts/SankeyChart.js +1 -1
  32. package/cjs/charts/ScatterChart.js +1 -1
  33. package/cjs/charts/SequenceChart.js +2 -1
  34. package/cjs/charts/SunburstChart.js +1 -1
  35. package/cjs/charts/TreemapChart.js +1 -1
  36. package/cjs/charts/VennChart.js +1 -1
  37. package/cjs/charts/WaterfallChart.js +1 -1
  38. package/cjs/charts/WordCloud3dChart.js +1 -1
  39. package/cjs/charts/WordCloudChart.js +1 -1
  40. package/cjs/components/MarkArea.js +2 -1
  41. package/cjs/components/MarkPoint.js +1 -2
  42. package/cjs/context/chart.js +1 -1
  43. package/cjs/context/stage.js +1 -1
  44. package/cjs/series/Area.js +1 -1
  45. package/cjs/series/Bar.js +1 -1
  46. package/cjs/series/Bar3d.js +1 -1
  47. package/cjs/series/BaseSeries.js +1 -1
  48. package/cjs/series/BoxPlot.js +1 -1
  49. package/cjs/series/CirclePacking.js +1 -1
  50. package/cjs/series/CircularProgress.js +1 -1
  51. package/cjs/series/Correlation.js +1 -1
  52. package/cjs/series/Dot.js +1 -1
  53. package/cjs/series/Funnel.js +1 -1
  54. package/cjs/series/Funnel3d.js +1 -1
  55. package/cjs/series/Gauge.js +1 -2
  56. package/cjs/series/GaugePointer.js +1 -1
  57. package/cjs/series/Heatmap.js +1 -1
  58. package/cjs/series/Line.js +1 -1
  59. package/cjs/series/LinearProgress.js +1 -1
  60. package/cjs/series/Link.js +1 -1
  61. package/cjs/series/Liquid.js +1 -1
  62. package/cjs/series/Map.js +1 -1
  63. package/cjs/series/Mosaic.js +1 -1
  64. package/cjs/series/Pictogram.js +1 -1
  65. package/cjs/series/Pie.js +1 -1
  66. package/cjs/series/Pie3d.js +1 -1
  67. package/cjs/series/Radar.js +1 -1
  68. package/cjs/series/RangeArea.js +1 -1
  69. package/cjs/series/RangeColumn.js +1 -1
  70. package/cjs/series/RangeColumn3d.js +1 -1
  71. package/cjs/series/Rose.js +1 -2
  72. package/cjs/series/Sankey.js +1 -1
  73. package/cjs/series/Scatter.js +1 -1
  74. package/cjs/series/Series.js +1 -1
  75. package/cjs/series/Sunburst.js +1 -1
  76. package/cjs/series/Treemap.js +1 -1
  77. package/cjs/series/Venn.js +1 -1
  78. package/cjs/series/Waterfall.js +1 -1
  79. package/esm/charts/AreaChart.js +1 -1
  80. package/esm/charts/Bar3dChart.js +1 -1
  81. package/esm/charts/BarChart.js +1 -1
  82. package/esm/charts/BaseChart.js +1 -1
  83. package/esm/charts/BoxPlotChart.js +1 -1
  84. package/esm/charts/CirclePackingChart.js +1 -1
  85. package/esm/charts/CircularProgressChart.js +1 -1
  86. package/esm/charts/CommonChart.js +1 -1
  87. package/esm/charts/CorrelationChart.js +1 -1
  88. package/esm/charts/Funnel3dChart.js +1 -1
  89. package/esm/charts/FunnelChart.js +1 -1
  90. package/esm/charts/GaugeChart.js +1 -1
  91. package/esm/charts/HeatmapChart.js +1 -1
  92. package/esm/charts/Histogram3dChart.js +1 -1
  93. package/esm/charts/HistogramChart.js +2 -1
  94. package/esm/charts/LineChart.js +1 -1
  95. package/esm/charts/LinearProgressChart.js +1 -1
  96. package/esm/charts/LiquidChart.js +1 -1
  97. package/esm/charts/MapChart.js +1 -1
  98. package/esm/charts/MosaicChart.js +1 -1
  99. package/esm/charts/PictogramChart.js +1 -1
  100. package/esm/charts/Pie3dChart.js +1 -1
  101. package/esm/charts/PieChart.js +1 -1
  102. package/esm/charts/RadarChart.js +1 -1
  103. package/esm/charts/RangeAreaChart.js +1 -1
  104. package/esm/charts/RangeColumn3dChart.js +1 -1
  105. package/esm/charts/RangeColumnChart.js +1 -1
  106. package/esm/charts/RoseChart.js +1 -1
  107. package/esm/charts/SankeyChart.js +1 -1
  108. package/esm/charts/ScatterChart.js +1 -1
  109. package/esm/charts/SequenceChart.js +2 -1
  110. package/esm/charts/SunburstChart.js +1 -1
  111. package/esm/charts/TreemapChart.js +1 -1
  112. package/esm/charts/VennChart.js +1 -1
  113. package/esm/charts/WaterfallChart.js +1 -1
  114. package/esm/charts/WordCloud3dChart.js +1 -1
  115. package/esm/charts/WordCloudChart.js +1 -1
  116. package/esm/components/MarkArea.js +2 -1
  117. package/esm/components/MarkPoint.js +1 -2
  118. package/esm/context/chart.js +1 -1
  119. package/esm/context/stage.js +1 -1
  120. package/esm/series/Area.js +1 -1
  121. package/esm/series/Bar.js +1 -1
  122. package/esm/series/Bar3d.js +1 -1
  123. package/esm/series/BaseSeries.js +1 -1
  124. package/esm/series/BoxPlot.js +1 -1
  125. package/esm/series/CirclePacking.js +1 -1
  126. package/esm/series/CircularProgress.js +1 -1
  127. package/esm/series/Correlation.js +1 -1
  128. package/esm/series/Dot.js +1 -1
  129. package/esm/series/Funnel.js +1 -1
  130. package/esm/series/Funnel3d.js +1 -1
  131. package/esm/series/Gauge.js +1 -2
  132. package/esm/series/GaugePointer.js +1 -1
  133. package/esm/series/Heatmap.js +1 -1
  134. package/esm/series/Line.js +1 -1
  135. package/esm/series/LinearProgress.js +1 -1
  136. package/esm/series/Link.js +1 -1
  137. package/esm/series/Liquid.js +1 -1
  138. package/esm/series/Map.js +1 -1
  139. package/esm/series/Mosaic.js +1 -1
  140. package/esm/series/Pictogram.js +1 -1
  141. package/esm/series/Pie.js +1 -1
  142. package/esm/series/Pie3d.js +1 -1
  143. package/esm/series/Radar.js +1 -1
  144. package/esm/series/RangeArea.js +1 -1
  145. package/esm/series/RangeColumn.js +1 -1
  146. package/esm/series/RangeColumn3d.js +1 -1
  147. package/esm/series/Rose.js +1 -2
  148. package/esm/series/Sankey.js +1 -1
  149. package/esm/series/Scatter.js +1 -1
  150. package/esm/series/Series.js +1 -1
  151. package/esm/series/Sunburst.js +1 -1
  152. package/esm/series/Treemap.js +1 -1
  153. package/esm/series/Venn.js +1 -1
  154. package/esm/series/Waterfall.js +1 -1
  155. package/package.json +5 -5
package/build/index.js CHANGED
@@ -61263,6 +61263,15 @@
61263
61263
  compileOnlyKeys: defaultSeriesCompileOnlyCheckKeys,
61264
61264
  dataRelatedKeys: defaultSeriesDataRelatedCheckKeys
61265
61265
  },
61266
+ defaultSeriesMarkCompileOnlySubKeys = {
61267
+ interactive: !0,
61268
+ zIndex: !0,
61269
+ visible: !0,
61270
+ style: !0,
61271
+ state: !0,
61272
+ stateSort: !0,
61273
+ customShape: !0
61274
+ },
61266
61275
  isSpecObject = value => isObject$2(value) && !isArray$1(value) && !isFunction$1(value),
61267
61276
  hasOnlyAllowedSubKeyChanges = (specValue, prevSpecValue, allowedSubKeys) => {
61268
61277
  if (!isSpecObject(specValue) || !isSpecObject(prevSpecValue)) return !1;
@@ -61798,15 +61807,15 @@
61798
61807
  totalLabel: !0
61799
61808
  });
61800
61809
  if (this._compareExtensionMarksSpec(array(spec.extensionMark), array(prevSpec.extensionMark), result), !result.reMake && this._compareLabelSpec(array(spec.label), array(prevSpec.label), result), !result.reMake && this._compareLabelSpec(array(spec.totalLabel), array(prevSpec.totalLabel), result), result.reMake) return result;
61801
- !result.reCompile && this._marks.getMarks().some(m => {
61802
- var _a, _b;
61803
- return ignores[m.name] = !0, (null === (_a = prevSpec[m.name]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = spec[m.name]) || void 0 === _b ? void 0 : _b.visible);
61804
- }) && (result.reCompile = !0);
61810
+ const changedMarkCompileOnlyKeys = this.getMarksWithoutRoot().map(m => m.name).filter(name => hasOnlyAllowedSubKeyChanges(spec[name], prevSpec[name], defaultSeriesMarkCompileOnlySubKeys));
61811
+ changedMarkCompileOnlyKeys.forEach(k => {
61812
+ ignores[k] = !0;
61813
+ }), !result.reCompile && changedMarkCompileOnlyKeys.length && (result.reCompile = !0);
61805
61814
  const changedCompileKeys = currentKeys.filter(k => compileCheckKeys[k] && !isEqual(spec[k], prevSpec[k])),
61806
61815
  changedCompileOnlySubKeys = currentKeys.filter(k => compileOnlySubKeys[k] && hasOnlyAllowedSubKeyChanges(spec[k], prevSpec[k], compileOnlySubKeys[k]));
61807
61816
  return changedCompileOnlySubKeys.forEach(k => {
61808
61817
  ignores[k] = !0;
61809
- }), result.reCompile || !changedCompileKeys.length && !changedCompileOnlySubKeys.length || (result.reCompile = !0), changedCompileKeys.some(k => dataRelatedKeys[k]) ? markSeriesCompileEffect(result, !0) : result.reCompile && !(null === (_d = result.effects) || void 0 === _d ? void 0 : _d.series) && (changedCompileKeys.length || changedCompileOnlySubKeys.length) && markSeriesCompileEffect(result), currentKeys.some(k => !ignores[k] && !isEqual(spec[k], prevSpec[k])) ? (result.reMake = !0, result) : result;
61818
+ }), result.reCompile || !changedCompileKeys.length && !changedCompileOnlySubKeys.length || (result.reCompile = !0), changedCompileKeys.some(k => dataRelatedKeys[k]) ? markSeriesCompileEffect(result, !0) : result.reCompile && !(null === (_d = result.effects) || void 0 === _d ? void 0 : _d.series) && (changedCompileKeys.length || changedCompileOnlySubKeys.length || changedMarkCompileOnlyKeys.length) && markSeriesCompileEffect(result), currentKeys.some(k => !ignores[k] && !isEqual(spec[k], prevSpec[k])) ? (result.reMake = !0, result) : result;
61810
61819
  }
61811
61820
  _updateSpecData() {
61812
61821
  !this._rawData || !this._spec.data || this._spec.data instanceof DataView || updateDataViewInData(this._rawData, this._spec.data, !0);
@@ -64008,17 +64017,15 @@
64008
64017
  }
64009
64018
  }
64010
64019
  _compareSpec(spec, prevSpec) {
64020
+ var _a, _b;
64011
64021
  const result = super._compareSpec(spec, prevSpec);
64012
64022
  if (result.reMake) return result;
64013
64023
  const specChanged = !isEqual(prevSpec, spec);
64014
- return result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) || (null == prevSpec ? void 0 : prevSpec.visible) !== (null == spec ? void 0 : spec.visible) ? (result.reMake = !0, result) : (result.reMake = ["grid", "subGrid", "tick", "subTick", "label", "domainLine", "title"].some(k => {
64015
- var _a, _b;
64016
- return (null === (_a = null == prevSpec ? void 0 : prevSpec[k]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = null == spec ? void 0 : spec[k]) || void 0 === _b ? void 0 : _b.visible);
64017
- }), specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec) && (result.effects = Object.assign(Object.assign({}, result.effects), {
64024
+ return result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) || (null == prevSpec ? void 0 : prevSpec.visible) !== (null == spec ? void 0 : spec.visible) ? (result.reMake = !0, result) : !0 !== (null === (_a = null == spec ? void 0 : spec.grid) || void 0 === _a ? void 0 : _a.visible) || !0 === (null === (_b = null == prevSpec ? void 0 : prevSpec.grid) || void 0 === _b ? void 0 : _b.visible) || this._gridMark ? (specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec) && (result.effects = Object.assign(Object.assign({}, result.effects), {
64018
64025
  component: !0,
64019
64026
  layout: !0,
64020
64027
  render: !0
64021
- })), result);
64028
+ })), result) : (result.reMake = !0, result);
64022
64029
  }
64023
64030
  _isComponentOnlySpecChange(spec, prevSpec) {
64024
64031
  return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every(key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key]);
@@ -64967,16 +64974,14 @@
64967
64974
  this._zero && (domain[0] = Math.min(domain[0], 0), domain[domain.length - 1] = Math.max(last(domain), 0));
64968
64975
  }
64969
64976
  setExtendDomain(key, value) {
64970
- if (void 0 === value) return void delete this._extend[key];
64971
- this._extend[key] = value;
64972
- const domain = this._scale.domain();
64973
- if (this.extendDomain(domain), this.includeZero(domain), this.setDomainMinMax(domain), this.niceDomain(domain), this._scale.domain(domain, this._nice), this._nice) {
64974
- !this.setScaleNice() && this._scale.rescale();
64977
+ if (void 0 === value) {
64978
+ if (!Object.prototype.hasOwnProperty.call(this._extend, key)) return;
64979
+ delete this._extend[key];
64980
+ } else {
64981
+ if (this._extend[key] === value) return;
64982
+ this._extend[key] = value;
64975
64983
  }
64976
- this.event.emit(ChartEvent.scaleUpdate, {
64977
- model: this,
64978
- value: "domain"
64979
- });
64984
+ this.updateScaleDomain();
64980
64985
  }
64981
64986
  extendDomain(domain) {
64982
64987
  let temp;
@@ -66313,10 +66318,25 @@
66313
66318
  return t;
66314
66319
  };
66315
66320
  const MARKER_COMPONENT_SPEC_KEYS = {
66316
- [ComponentTypeEnum.markPoint]: !0,
66317
- [ComponentTypeEnum.markLine]: !0,
66318
- [ComponentTypeEnum.markArea]: !0
66319
- };
66321
+ [ComponentTypeEnum.markPoint]: !0,
66322
+ [ComponentTypeEnum.markLine]: !0,
66323
+ [ComponentTypeEnum.markArea]: !0
66324
+ },
66325
+ MARKER_ADDITION_REMAKE_SPEC_KEYS = {
66326
+ autoRange: !0,
66327
+ regionId: !0,
66328
+ regionIndex: !0,
66329
+ seriesId: !0,
66330
+ seriesIndex: !0,
66331
+ relativeSeriesId: !0,
66332
+ relativeSeriesIndex: !0,
66333
+ startRelativeSeriesId: !0,
66334
+ startRelativeSeriesIndex: !0,
66335
+ endRelativeSeriesId: !0,
66336
+ endRelativeSeriesIndex: !0,
66337
+ specifiedDataSeriesId: !0,
66338
+ specifiedDataSeriesIndex: !0
66339
+ };
66320
66340
  let BaseChart$1 = class BaseChart extends CompilableBase {
66321
66341
  getSpec() {
66322
66342
  return this._spec;
@@ -66392,7 +66412,7 @@
66392
66412
  }, this.getComponentsByKey = key => this._components.filter(c => (c.specKey || c.type) === key), this.getComponentByUserId = userId => {
66393
66413
  const component = this._components.find(s => s.userId === userId);
66394
66414
  if (component) return component;
66395
- }, this.getComponentsByType = type => this._components.filter(c => c.type === type), this._paddingSpec = normalizeLayoutPaddingSpec(null !== (_a = spec.padding) && void 0 !== _a ? _a : option.getTheme("padding")), this._event = new Event$1(option.eventDispatcher, option.mode), this._dataSet = option.dataSet, this._chartData = new ChartData(this._dataSet), this._modelOption = Object.assign(Object.assign({}, option), {
66415
+ }, this.getComponentsByType = type => this._components.filter(c => c.type === type), this._isMarkerAdditionSpecSafeWithoutRemake = spec => !(!spec || "object" != typeof spec || !1 === spec.visible) && !Object.keys(MARKER_ADDITION_REMAKE_SPEC_KEYS).some(key => !isNil$1(spec[key])), this._paddingSpec = normalizeLayoutPaddingSpec(null !== (_a = spec.padding) && void 0 !== _a ? _a : option.getTheme("padding")), this._event = new Event$1(option.eventDispatcher, option.mode), this._dataSet = option.dataSet, this._chartData = new ChartData(this._dataSet), this._modelOption = Object.assign(Object.assign({}, option), {
66396
66416
  mode: this._option.mode,
66397
66417
  map: this._idMap,
66398
66418
  getChartLayoutRect: () => this._layoutRect,
@@ -66706,7 +66726,7 @@
66706
66726
  return Object.keys(spec).filter(key => !ignoreKeys[key]).sort();
66707
66727
  }
66708
66728
  updateSpec(spec) {
66709
- var _a;
66729
+ var _a, _b;
66710
66730
  const result = {
66711
66731
  change: !1,
66712
66732
  reMake: !1,
@@ -66722,7 +66742,7 @@
66722
66742
  const key = currentKeys[i],
66723
66743
  currentSpec = this._spec[key],
66724
66744
  nextSpec = spec[key];
66725
- if (isArray$1(currentSpec) && currentSpec.length !== array(nextSpec).length && !this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec)) return result.reMake = !0, this.setLayoutTag(!0, null, !1), result;
66745
+ if (isArray$1(currentSpec) && currentSpec.length !== array(nextSpec).length && !this._canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec)) return result.reMake = !0, this.setLayoutTag(!0, null, !1), result;
66726
66746
  }
66727
66747
  const oldSpec = this._spec,
66728
66748
  onlyMarkerComponentsRemoved = this._isOnlyMarkerComponentsRemoved(this._spec, spec, currentKeys),
@@ -66733,9 +66753,9 @@
66733
66753
  if (this.updateGlobalScale(result), result.reMake) return this.setLayoutTag(!0, null, !1), result;
66734
66754
  if (this.updateRegionSpec(result), result.reMake) return this.setLayoutTag(!0, null, !1), result;
66735
66755
  const componentUpdateResult = this.updateComponentSpec(result);
66736
- return result.reMake ? (this.setLayoutTag(!0, null, !1), result) : isUpdateSpecResultLocalOnly(result) ? result : onlyComponentSpecsChanged && !componentUpdateResult.hasNonComponentOnlyUpdate && isUpdateSpecResultComponentOnly(result) ? (componentUpdateResult.componentOnlyUpdatedComponents.forEach(component => {
66756
+ return result.reMake ? (this.setLayoutTag(!0, null, !1), result) : (!onlyComponentSpecsChanged && (null === (_a = result.effects) || void 0 === _a ? void 0 : _a.localOnly) && delete result.effects.localOnly, isUpdateSpecResultLocalOnly(result) ? result : onlyComponentSpecsChanged && !componentUpdateResult.hasNonComponentOnlyUpdate && (isUpdateSpecResultComponentOnly(result) || this._isComponentScaleDomainOnlyUpdate(result)) ? (componentUpdateResult.componentOnlyUpdatedComponents.forEach(component => {
66737
66757
  component.reInit(component.getSpec());
66738
- }), (null === (_a = result.effects) || void 0 === _a ? void 0 : _a.layout) && this.setLayoutTag(!0, null, !1), result) : (this.setLayoutTag(!0, null, !1), this.updateSeriesSpec(result), result.reMake || (this.reInit(), onlySeriesSpecsChanged && this._canSkipChartDataStages(result) || (this.updateDataSpec(), this.updateGlobalScaleDomain())), result);
66758
+ }), (null === (_b = result.effects) || void 0 === _b ? void 0 : _b.layout) && this.setLayoutTag(!0, null, !1), result) : (this.setLayoutTag(!0, null, !1), this.updateSeriesSpec(result), result.reMake || (this.reInit(), onlySeriesSpecsChanged && this._canSkipChartDataStages(result) || (this.updateDataSpec(), this.reDataFlow(), this._reRunStackDataFlow(), this.getAllModels().forEach(model => model.onDataUpdate()))), result));
66739
66759
  }
66740
66760
  updateChartConfig(result, oldSpec) {
66741
66761
  var _a, _b;
@@ -66775,13 +66795,13 @@
66775
66795
  const componentSpec = null !== (_b = cmpSpec[c.getSpecIndex()]) && void 0 !== _b ? _b : {},
66776
66796
  previousComponentSpec = c.getSpec(),
66777
66797
  componentResult = c.updateSpec(componentSpec, cmpSpec);
66778
- isUpdateSpecResultComponentOnly(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, componentSpec) || (hasNonComponentOnlyUpdate = !0), mergeUpdateResult(result, componentResult);
66798
+ isUpdateSpecResultComponentOnly(componentResult) || this._isComponentScaleDomainOnlyUpdate(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, componentSpec) || (hasNonComponentOnlyUpdate = !0), mergeUpdateResult(result, componentResult);
66779
66799
  } else {
66780
66800
  const previousComponentSpec = c.getSpec(),
66781
66801
  componentResult = c.updateSpec(cmpSpec);
66782
- isUpdateSpecResultComponentOnly(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, cmpSpec) || (hasNonComponentOnlyUpdate = !0), mergeUpdateResult(result, componentResult);
66802
+ isUpdateSpecResultComponentOnly(componentResult) || this._isComponentScaleDomainOnlyUpdate(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, cmpSpec) || (hasNonComponentOnlyUpdate = !0), mergeUpdateResult(result, componentResult);
66783
66803
  }
66784
- });
66804
+ }), result.reMake || this._createMissingMarkerComponentsForSpecs(result, componentCache);
66785
66805
  for (const key in componentCache) if (Object.prototype.hasOwnProperty.call(componentCache, key)) {
66786
66806
  const element = componentCache[key];
66787
66807
  element.componentCount !== element.specCount && (result.reMake = !0);
@@ -66803,6 +66823,12 @@
66803
66823
  hasNonComponentOnlyUpdate: hasNonComponentOnlyUpdate
66804
66824
  };
66805
66825
  }
66826
+ _canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
66827
+ return this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) || this._canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec);
66828
+ }
66829
+ _canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
66830
+ return !!(MARKER_COMPONENT_SPEC_KEYS[key] && isArray$1(currentSpec) && isArray$1(nextSpec)) && !(nextSpec.length <= currentSpec.length) && nextSpec.slice(currentSpec.length).every(this._isMarkerAdditionSpecSafeWithoutRemake);
66831
+ }
66806
66832
  _canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
66807
66833
  return MARKER_COMPONENT_SPEC_KEYS[key] && isArray$1(currentSpec) && currentSpec.length > 0 && isArray$1(nextSpec) && 0 === nextSpec.length;
66808
66834
  }
@@ -66812,7 +66838,7 @@
66812
66838
  return hasMarkerRemoval && onlyMarkerRemoval;
66813
66839
  }
66814
66840
  _isComponentSpecKey(key) {
66815
- return this._components.some(component => (component.specKey || component.type) === key);
66841
+ return !!MARKER_COMPONENT_SPEC_KEYS[key] || this._components.some(component => (component.specKey || component.type) === key);
66816
66842
  }
66817
66843
  _isOnlyComponentSpecsChanged(currentSpec, nextSpec, specKeys) {
66818
66844
  let hasComponentSpecChange = !1;
@@ -66834,6 +66860,42 @@
66834
66860
  const effects = result.effects;
66835
66861
  return !(!(null == effects ? void 0 : effects.series) || effects.remake || effects.data || effects.scaleDomain || result.reMake);
66836
66862
  }
66863
+ _isComponentScaleDomainOnlyUpdate(result) {
66864
+ const effects = result.effects;
66865
+ return !(!(null == effects ? void 0 : effects.component) || !effects.scaleDomain || result.reMake || result.reCompile || result.reSize || effects.remake || effects.compile || effects.data || effects.series || effects.animation || result.reTransformSpec || result.reAnimate || result.changeTheme || result.changeBackground);
66866
+ }
66867
+ _reRunStackDataFlow() {
66868
+ var _a, _b;
66869
+ this._series.some(series => {
66870
+ var _a;
66871
+ return null === (_a = series.getStack) || void 0 === _a ? void 0 : _a.call(series);
66872
+ }) && (null === (_b = null === (_a = this._stack) || void 0 === _a ? void 0 : _a.stackAll) || void 0 === _b || _b.call(_a), this._series.forEach(series => {
66873
+ series.getViewDataFilter() && series.reTransformViewData();
66874
+ }));
66875
+ }
66876
+ _getModelSpecIndex(specInfo) {
66877
+ var _a;
66878
+ const specPath = null !== (_a = specInfo.specPath) && void 0 !== _a ? _a : [],
66879
+ specIndex = specPath[specPath.length - 1];
66880
+ return "number" == typeof specIndex ? specIndex : 0;
66881
+ }
66882
+ _hasComponentForSpecInfo(key, specInfo) {
66883
+ const specIndex = this._getModelSpecIndex(specInfo);
66884
+ return this._components.some(component => (component.specKey || component.type) === key && component.getSpecIndex() === specIndex);
66885
+ }
66886
+ _createMissingMarkerComponentsForSpecs(result, componentCache) {
66887
+ var _a;
66888
+ let createdCount = 0;
66889
+ null === (_a = this._specTransformer) || void 0 === _a || _a.forEachComponentInSpec(this._spec, (constructor, specInfo) => {
66890
+ if (result.reMake) return;
66891
+ const compSpecKey = constructor.specKey || constructor.type;
66892
+ MARKER_COMPONENT_SPEC_KEYS[compSpecKey] && !this._hasComponentForSpecInfo(compSpecKey, specInfo) && (this._isMarkerAdditionSpecSafeWithoutRemake(specInfo.spec) ? (this._createComponent(constructor, specInfo), componentCache[compSpecKey] && componentCache[compSpecKey].componentCount++, createdCount++) : result.reMake = !0);
66893
+ }, this._option.getSpecInfo()), createdCount && (result.change = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
66894
+ component: !0,
66895
+ layout: !0,
66896
+ render: !0
66897
+ }));
66898
+ }
66837
66899
  _removeMarkerComponentsForEmptySpecs(result) {
66838
66900
  const removedComponents = this._components.filter(component => {
66839
66901
  var _a;
@@ -67263,7 +67325,7 @@
67263
67325
  interactions: chartSpec.interactions
67264
67326
  },
67265
67327
  seriesType = this.seriesType;
67266
- return seriesType && (series.type = seriesType, series[seriesType] = chartSpec[seriesType]), pickKeys && pickKeys.length && pickKeys.forEach(k => {
67328
+ return seriesType && (this._addSeriesRelatedSpecKeys([seriesType]), series.type = seriesType, series[seriesType] = chartSpec[seriesType]), pickKeys && pickKeys.length && pickKeys.forEach(k => {
67267
67329
  series[k] = chartSpec[k];
67268
67330
  }), pickKeys2 && pickKeys2.length && pickKeys2.forEach(k => {
67269
67331
  series[k] = chartSpec[k];
@@ -87224,6 +87286,13 @@
87224
87286
  created() {
87225
87287
  super.created(), this._regions = this._option.getAllRegions(), this._initEvent();
87226
87288
  }
87289
+ _compareSpec(spec, prevSpec) {
87290
+ const result = super._compareSpec(spec, prevSpec);
87291
+ return !!isEqual(prevSpec, spec) || result.reMake || result.reCompile || (result.change = !0, result.reRender = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
87292
+ component: !0,
87293
+ render: !0
87294
+ })), result;
87295
+ }
87227
87296
  release() {
87228
87297
  var _a, _b;
87229
87298
  super.release(), this._isReleased = !0, this._hideTimer && clearTimeout(this._hideTimer), this._eventList.forEach(({
@@ -87415,11 +87484,26 @@
87415
87484
  return t;
87416
87485
  };
87417
87486
  const ORIENT_MAP = {
87418
- x: ["top", "bottom"],
87419
- y: ["left", "right"],
87420
- category: ["angle"],
87421
- value: ["radius"]
87422
- };
87487
+ x: ["top", "bottom"],
87488
+ y: ["left", "right"],
87489
+ category: ["angle"],
87490
+ value: ["radius"]
87491
+ },
87492
+ CROSSHAIR_COMPONENT_ONLY_TOP_LEVEL_CHANGE_KEYS = {
87493
+ labelZIndex: !0,
87494
+ gridZIndex: !0
87495
+ },
87496
+ CROSSHAIR_FIELD_KEYS = {
87497
+ xField: !0,
87498
+ yField: !0,
87499
+ categoryField: !0,
87500
+ valueField: !0
87501
+ },
87502
+ CROSSHAIR_LINE_COMPONENT_ONLY_CHANGE_KEYS = {
87503
+ visible: !0,
87504
+ width: !0,
87505
+ style: !0
87506
+ };
87423
87507
  class BaseCrossHair extends BaseComponent {
87424
87508
  get enableRemain() {
87425
87509
  return "none" === this.triggerOff;
@@ -87547,7 +87631,20 @@
87547
87631
  }
87548
87632
  _compareSpec(spec, prevSpec) {
87549
87633
  const result = super._compareSpec(spec, prevSpec);
87550
- return result.reMake || isEqual(prevSpec, spec) || (result.reRender = !0, result.reMake = !0), result;
87634
+ return !isEqual(prevSpec, spec) && (result.change = !0, result.reRender = !0, result.reMake || (this._isComponentOnlySpecChange(spec, prevSpec) ? result.effects = Object.assign(Object.assign({}, result.effects), {
87635
+ component: !0,
87636
+ layout: !0,
87637
+ render: !0
87638
+ }) : result.reMake = !0)), result;
87639
+ }
87640
+ _isComponentOnlySpecChange(spec, prevSpec) {
87641
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every(key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || CROSSHAIR_COMPONENT_ONLY_TOP_LEVEL_CHANGE_KEYS[key] || CROSSHAIR_FIELD_KEYS[key] && this._isFieldComponentOnlySpecChange(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]));
87642
+ }
87643
+ _isFieldComponentOnlySpecChange(prevSpec, spec) {
87644
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every(key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || "label" === key || "line" === key && this._isLineComponentOnlySpecChange(null == prevSpec ? void 0 : prevSpec.line, null == spec ? void 0 : spec.line));
87645
+ }
87646
+ _isLineComponentOnlySpecChange(prevSpec, spec) {
87647
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every(key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || CROSSHAIR_LINE_COMPONENT_ONLY_CHANGE_KEYS[key]);
87551
87648
  }
87552
87649
  _initEvent() {
87553
87650
  if (!this._option.disableTriggerEvent) if (this._spec.followTooltip) this._registerTooltipEvent();else {
@@ -88764,7 +88861,19 @@
88764
88861
  }
88765
88862
  _compareSpec(spec, prevSpec) {
88766
88863
  const result = super._compareSpec(spec, prevSpec);
88767
- return result.reMake || isEqual(prevSpec, spec) || (result.reRender = !0, result.reMake = !0), result;
88864
+ return result.reMake || isEqual(prevSpec, spec) || (result.change = !0, result.reRender = !0, !result.reCompile && this._isComponentOnlySpecChange(spec, prevSpec) ? result.effects = Object.assign(Object.assign({}, result.effects), {
88865
+ component: !0,
88866
+ layout: !0,
88867
+ render: !0
88868
+ }) : result.reMake = !0), result;
88869
+ }
88870
+ _getComponentOnlySpecKeys() {
88871
+ return null;
88872
+ }
88873
+ _isComponentOnlySpecChange(spec, prevSpec) {
88874
+ const componentOnlySpecKeys = this._getComponentOnlySpecKeys();
88875
+ if (!componentOnlySpecKeys) return !1;
88876
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every(key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || componentOnlySpecKeys[key]);
88768
88877
  }
88769
88878
  reInit(spec) {
88770
88879
  super.reInit(spec), this._marks.forEach(g => {
@@ -89247,6 +89356,22 @@
89247
89356
  backgroundChart: getBackgroundChartTheme(!0)
89248
89357
  };
89249
89358
 
89359
+ const DATA_ZOOM_COMPONENT_ONLY_CHANGE_KEYS = {
89360
+ width: !0,
89361
+ height: !0,
89362
+ showDetail: !0,
89363
+ middleHandler: !0,
89364
+ background: !0,
89365
+ startHandler: !0,
89366
+ endHandler: !0,
89367
+ startText: !0,
89368
+ endText: !0,
89369
+ dragMask: !0,
89370
+ selectedBackground: !0,
89371
+ backgroundChart: !0,
89372
+ selectedBackgroundChart: !0,
89373
+ showBackgroundChart: !0
89374
+ };
89250
89375
  let DataZoom$1 = class DataZoom extends DataFilterBaseComponent {
89251
89376
  constructor(spec, options) {
89252
89377
  var _a;
@@ -89312,6 +89437,9 @@
89312
89437
  const axis = this._relatedAxisComponent;
89313
89438
  (isReverse(axis, this._isHorizontal) && !this._isReverseCache || this._auto) && (this._isReverseCache = isReverse(axis, this._isHorizontal), this.effect.onZoomChange());
89314
89439
  }
89440
+ _getComponentOnlySpecKeys() {
89441
+ return DATA_ZOOM_COMPONENT_ONLY_CHANGE_KEYS;
89442
+ }
89315
89443
  clear() {
89316
89444
  if (this._component) {
89317
89445
  const container = this.getContainer();
@@ -89588,6 +89716,15 @@
89588
89716
  }
89589
89717
  };
89590
89718
 
89719
+ const SCROLL_BAR_COMPONENT_ONLY_CHANGE_KEYS = {
89720
+ width: !0,
89721
+ height: !0,
89722
+ rail: !0,
89723
+ slider: !0,
89724
+ round: !0,
89725
+ innerPadding: !0,
89726
+ minSliderSize: !0
89727
+ };
89591
89728
  let ScrollBar$1 = class ScrollBar extends DataFilterBaseComponent {
89592
89729
  constructor(spec, options) {
89593
89730
  var _a;
@@ -89620,6 +89757,9 @@
89620
89757
  this._data.getDataView().reRunAllTransform();
89621
89758
  }
89622
89759
  }
89760
+ _getComponentOnlySpecKeys() {
89761
+ return SCROLL_BAR_COMPONENT_ONLY_CHANGE_KEYS;
89762
+ }
89623
89763
  _beforeLayoutEnd() {
89624
89764
  var _a, _b;
89625
89765
  super._beforeLayoutEnd(), null === (_b = (_a = this.effect).onZoomChange) || void 0 === _b || _b.call(_a);
@@ -89763,6 +89903,14 @@
89763
89903
  setAttrFromSpec() {
89764
89904
  super.setAttrFromSpec(), this._gap = this._spec.gap || 0, this._title = this._spec.title, this._content = array(this._spec.content), this._regions = this._option.getRegionsInUserIdOrIndex(array(this._spec.regionId), array(this._spec.regionIndex));
89765
89905
  }
89906
+ _compareSpec(spec, prevSpec) {
89907
+ const result = super._compareSpec(spec, prevSpec);
89908
+ return !!isEqual(prevSpec, spec) || result.reMake || result.reCompile || (result.change = !0, result.reRender = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
89909
+ component: !0,
89910
+ layout: !0,
89911
+ render: !0
89912
+ })), result;
89913
+ }
89766
89914
  initEvent() {
89767
89915
  if (this._option.disableTriggerEvent) return;
89768
89916
  "none" !== this._spec.trigger && ("hover" === this._spec.trigger ? (this.event.on("element-highlight:start", params => {
@@ -89921,35 +90069,38 @@
89921
90069
  max = maxInArray(domainNum);
89922
90070
  return datum < min || datum > max;
89923
90071
  }
89924
- function getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint) {
90072
+ function getAutoRangeExtendDomainKey(keyPrefix, axisKey) {
90073
+ return keyPrefix ? `${keyPrefix}_${axisKey}_extend` : `marker_${axisKey}_extend`;
90074
+ }
90075
+ function getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint, autoRangeExtendDomainKeyPrefix) {
89925
90076
  var _a, _b;
89926
90077
  const {
89927
90078
  relativeSeries: relativeSeries
89928
90079
  } = refSeries;
89929
90080
  let x;
89930
- return isNumber$2(datum.x) && isNeedExtendDomain(xDomain, datum.x, autoRange) && (null === (_b = null == relativeSeries ? void 0 : (_a = relativeSeries.getXAxisHelper()).setExtendDomain) || void 0 === _b || _b.call(_a, "marker_xAxis_extend", datum.x)), x = isPercent(datum.x) ? convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x : convertDatumToValue(relativeSeries.getXAxisHelper(), [datum.x]) + regionStartLayoutStartPoint.x, x;
90081
+ return isNumber$2(datum.x) && isNeedExtendDomain(xDomain, datum.x, autoRange) && (null === (_b = null == relativeSeries ? void 0 : (_a = relativeSeries.getXAxisHelper()).setExtendDomain) || void 0 === _b || _b.call(_a, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "xAxis"), datum.x)), x = isPercent(datum.x) ? convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x : convertDatumToValue(relativeSeries.getXAxisHelper(), [datum.x]) + regionStartLayoutStartPoint.x, x;
89931
90082
  }
89932
- function getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint) {
90083
+ function getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint, autoRangeExtendDomainKeyPrefix) {
89933
90084
  var _a, _b;
89934
90085
  const {
89935
90086
  relativeSeries: relativeSeries
89936
90087
  } = refSeries;
89937
90088
  let y;
89938
- return isNumber$2(datum.y) && isNeedExtendDomain(yDomain, datum.y, autoRange) && (null === (_b = null === (_a = relativeSeries.getYAxisHelper()) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_yAxis_extend", datum.y)), y = isPercent(datum.y) ? convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y : convertDatumToValue(relativeSeries.getYAxisHelper(), [datum.y]) + regionStartLayoutStartPoint.y, y;
90089
+ return isNumber$2(datum.y) && isNeedExtendDomain(yDomain, datum.y, autoRange) && (null === (_b = null === (_a = relativeSeries.getYAxisHelper()) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "yAxis"), datum.y)), y = isPercent(datum.y) ? convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y : convertDatumToValue(relativeSeries.getYAxisHelper(), [datum.y]) + regionStartLayoutStartPoint.y, y;
89939
90090
  }
89940
- function getAngleValue(datum, angleDomain, autoRange, refSeries) {
90091
+ function getAngleValue(datum, angleDomain, autoRange, refSeries, autoRangeExtendDomainKeyPrefix) {
89941
90092
  var _a, _b;
89942
90093
  const {
89943
90094
  relativeSeries: relativeSeries
89944
90095
  } = refSeries;
89945
- return isNumber$2(datum.angle) && isNeedExtendDomain(angleDomain, datum.angle, autoRange) && (null === (_b = null === (_a = relativeSeries.angleAxisHelper) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_angleAxis_extend", datum.angle)), convertDatumToValue(relativeSeries.angleAxisHelper, [datum.angle]);
90096
+ return isNumber$2(datum.angle) && isNeedExtendDomain(angleDomain, datum.angle, autoRange) && (null === (_b = null === (_a = relativeSeries.angleAxisHelper) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "angleAxis"), datum.angle)), convertDatumToValue(relativeSeries.angleAxisHelper, [datum.angle]);
89946
90097
  }
89947
- function getRadiusValue(datum, radiusDomain, autoRange, refSeries) {
90098
+ function getRadiusValue(datum, radiusDomain, autoRange, refSeries, autoRangeExtendDomainKeyPrefix) {
89948
90099
  var _a, _b;
89949
90100
  const {
89950
90101
  relativeSeries: relativeSeries
89951
90102
  } = refSeries;
89952
- return isNumber$2(datum.radius) && isNeedExtendDomain(radiusDomain, datum.radius, autoRange) && (null === (_b = null === (_a = relativeSeries.radiusAxisHelper) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_radiusAxis_extend", datum.radius)), convertDatumToValue(relativeSeries.radiusAxisHelper, [datum.radius]);
90103
+ return isNumber$2(datum.radius) && isNeedExtendDomain(radiusDomain, datum.radius, autoRange) && (null === (_b = null === (_a = relativeSeries.radiusAxisHelper) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "radiusAxis"), datum.radius)), convertDatumToValue(relativeSeries.radiusAxisHelper, [datum.radius]);
89953
90104
  }
89954
90105
  function convertPercentToValue(percent, relativeLength) {
89955
90106
  return Number(percent.substring(0, percent.length - 1)) * relativeLength / 100;
@@ -89961,7 +90112,7 @@
89961
90112
  function isAggrSpec(spec) {
89962
90113
  return AGGR_TYPE.includes(spec);
89963
90114
  }
89964
- function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, includeFullBand = !1) {
90115
+ function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, includeFullBand = !1, autoRangeExtendDomainKeyPrefix) {
89965
90116
  const regionStart = startRelativeSeries.getRegion(),
89966
90117
  regionStartLayoutStartPoint = regionStart.getLayoutStartPoint(),
89967
90118
  regionEnd = endRelativeSeries.getRegion(),
@@ -89993,11 +90144,11 @@
89993
90144
  const isValidX = isValid$1(datum.x),
89994
90145
  isValidY = isValid$1(datum.y);
89995
90146
  let x, y;
89996
- if (isValidX && isValidY) x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint), setTempWithValid(x, isXExpand, xTemp, lines.length), setTempWithValid(y, isyExpand, yTemp, lines.length), lines.push([{
90147
+ if (isValidX && isValidY) x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint, autoRangeExtendDomainKeyPrefix), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint, autoRangeExtendDomainKeyPrefix), setTempWithValid(x, isXExpand, xTemp, lines.length), setTempWithValid(y, isyExpand, yTemp, lines.length), lines.push([{
89997
90148
  x: x,
89998
90149
  y: y
89999
90150
  }]);else if (isValidX) {
90000
- x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint), y = Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height);
90151
+ x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint, autoRangeExtendDomainKeyPrefix), y = Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height);
90001
90152
  const y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);
90002
90153
  setTempWithValid(x, isXExpand, xTemp, lines.length), lines.push([{
90003
90154
  x: x,
@@ -90007,7 +90158,7 @@
90007
90158
  y: y1
90008
90159
  }]);
90009
90160
  } else if (isValidY) {
90010
- x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);
90161
+ x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint, autoRangeExtendDomainKeyPrefix);
90011
90162
  const x1 = Math.max(regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width, regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width);
90012
90163
  setTempWithValid(y, isyExpand, yTemp, lines.length), lines.push([{
90013
90164
  x: x,
@@ -90038,7 +90189,7 @@
90038
90189
  index: index
90039
90190
  })), v;
90040
90191
  }
90041
- function polarLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange) {
90192
+ function polarLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, autoRangeExtendDomainKeyPrefix) {
90042
90193
  const refSeries = {
90043
90194
  relativeSeries: relativeSeries,
90044
90195
  startRelativeSeries: startRelativeSeries,
@@ -90053,14 +90204,14 @@
90053
90204
  const isValidAngle = isValid$1(datum.angle),
90054
90205
  isValidRadius = isValid$1(datum.radius);
90055
90206
  if (isValidAngle && isValidRadius) {
90056
- const angle = getAngleValue(datum, angleDomain, autoRange, refSeries),
90057
- radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries);
90207
+ const angle = getAngleValue(datum, angleDomain, autoRange, refSeries, autoRangeExtendDomainKeyPrefix),
90208
+ radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries, autoRangeExtendDomainKeyPrefix);
90058
90209
  lines.push([{
90059
90210
  angle: angle,
90060
90211
  radius: radius
90061
90212
  }]);
90062
90213
  } else if (isValidAngle) {
90063
- const angle = getAngleValue(datum, angleDomain, autoRange, refSeries);
90214
+ const angle = getAngleValue(datum, angleDomain, autoRange, refSeries, autoRangeExtendDomainKeyPrefix);
90064
90215
  lines.push([{
90065
90216
  angle: angle,
90066
90217
  radius: -regionRadius
@@ -90069,7 +90220,7 @@
90069
90220
  radius: regionRadius
90070
90221
  }]);
90071
90222
  } else if (isValidRadius) {
90072
- const radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries);
90223
+ const radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries, autoRangeExtendDomainKeyPrefix);
90073
90224
  lines.push([{
90074
90225
  radius: radius,
90075
90226
  angle: 0
@@ -90089,7 +90240,7 @@
90089
90240
  }]);
90090
90241
  }), lines;
90091
90242
  }
90092
- function cartesianCoordinateLayout(data, relativeSeries, autoRange, coordinatesOffset) {
90243
+ function cartesianCoordinateLayout(data, relativeSeries, autoRange, coordinatesOffset, autoRangeExtendDomainKeyPrefix) {
90093
90244
  const points = [],
90094
90245
  dataPoints = data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData,
90095
90246
  isArrayCoordinatesOffset = isArray$1(coordinatesOffset);
@@ -90114,13 +90265,13 @@
90114
90265
  yDomain = refRelativeSeries.getYAxisHelper().getScale(0).domain(),
90115
90266
  xValue = array(datum.x),
90116
90267
  yValue = array(datum.y);
90117
- 1 === xValue.length && isNumber$2(xValue[0]) && isNeedExtendDomain(xDomain, xValue[0], autoRange) && (null === (_b = null === (_a = refRelativeSeries.getXAxisHelper()) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_xAxis_extend", xValue[0])), 1 === yValue.length && isNumber$2(yValue[0]) && isNeedExtendDomain(yDomain, yValue[0], autoRange) && (null === (_d = null === (_c = refRelativeSeries.getYAxisHelper()) || void 0 === _c ? void 0 : _c.setExtendDomain) || void 0 === _d || _d.call(_c, "marker_yAxis_extend", yValue[0])), points.push({
90268
+ 1 === xValue.length && isNumber$2(xValue[0]) && isNeedExtendDomain(xDomain, xValue[0], autoRange) && (null === (_b = null === (_a = refRelativeSeries.getXAxisHelper()) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "xAxis"), xValue[0])), 1 === yValue.length && isNumber$2(yValue[0]) && isNeedExtendDomain(yDomain, yValue[0], autoRange) && (null === (_d = null === (_c = refRelativeSeries.getYAxisHelper()) || void 0 === _c ? void 0 : _c.setExtendDomain) || void 0 === _d || _d.call(_c, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "yAxis"), yValue[0])), points.push({
90118
90269
  x: convertDatumToValue(refRelativeSeries.getXAxisHelper(), xValue) + regionStartLayoutStartPoint.x + offsetX,
90119
90270
  y: convertDatumToValue(refRelativeSeries.getYAxisHelper(), yValue) + regionStartLayoutStartPoint.y + offsetY
90120
90271
  });
90121
90272
  }), points;
90122
90273
  }
90123
- function polarCoordinateLayout(data, relativeSeries, autoRange) {
90274
+ function polarCoordinateLayout(data, relativeSeries, autoRange, autoRangeExtendDomainKeyPrefix) {
90124
90275
  const points = [];
90125
90276
  return (data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData).forEach(datum => {
90126
90277
  var _a, _b, _c, _d;
@@ -90129,7 +90280,7 @@
90129
90280
  radiusDomain = refRelativeSeries.radiusAxisHelper.getScale(0).domain(),
90130
90281
  angleValue = array(datum.angle),
90131
90282
  radiusValue = array(datum.radius);
90132
- 1 === angleValue.length && isNumber$2(angleValue[0]) && isNeedExtendDomain(angleDomain, angleValue[0], autoRange) && (null === (_b = null === (_a = refRelativeSeries.angleAxisHelper) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_xAxis_extend", angleValue[0])), 1 === radiusValue.length && isNumber$2(radiusValue[0]) && isNeedExtendDomain(radiusDomain, radiusValue[0], autoRange) && (null === (_d = null === (_c = refRelativeSeries.radiusAxisHelper) || void 0 === _c ? void 0 : _c.setExtendDomain) || void 0 === _d || _d.call(_c, "marker_yAxis_extend", radiusValue[0])), points.push({
90283
+ 1 === angleValue.length && isNumber$2(angleValue[0]) && isNeedExtendDomain(angleDomain, angleValue[0], autoRange) && (null === (_b = null === (_a = refRelativeSeries.angleAxisHelper) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "angleAxis"), angleValue[0])), 1 === radiusValue.length && isNumber$2(radiusValue[0]) && isNeedExtendDomain(radiusDomain, radiusValue[0], autoRange) && (null === (_d = null === (_c = refRelativeSeries.radiusAxisHelper) || void 0 === _c ? void 0 : _c.setExtendDomain) || void 0 === _d || _d.call(_c, getAutoRangeExtendDomainKey(autoRangeExtendDomainKeyPrefix, "radiusAxis"), radiusValue[0])), points.push({
90133
90284
  angle: convertDatumToValue(refRelativeSeries.angleAxisHelper, angleValue),
90134
90285
  radius: convertDatumToValue(refRelativeSeries.radiusAxisHelper, radiusValue)
90135
90286
  });
@@ -90574,6 +90725,31 @@
90574
90725
  collectReleaseDependencies(dataView), releaseDataViews([dataView, ...releaseDependencies]);
90575
90726
  };
90576
90727
 
90728
+ const MARKER_FORMAT_METHOD_PLACEHOLDER = "__vchart_marker_format_method__",
90729
+ MARKER_COORDINATE_PLACEHOLDER = "__vchart_marker_coordinate__",
90730
+ MARKER_TEXT_PLACEHOLDER = "__vchart_marker_text__",
90731
+ MARKER_AUTO_RANGE_PLACEHOLDER = "__vchart_marker_auto_range__",
90732
+ MARKER_DOMAIN_POSITION_SPEC_KEYS = ["coordinate", "coordinates", "x", "y", "x1", "y1", "angle", "angle1", "radius", "radius1"],
90733
+ MARKER_LAYOUT_POSITION_SPEC_KEYS = ["position", "positions", "coordinatesOffset", "regionRelative"],
90734
+ normalizeMarkerLabelFormatMethod = label => Array.isArray(label) ? label.map(normalizeMarkerLabelFormatMethod) : label && "object" == typeof label ? "function" != typeof label.formatMethod ? label : Object.assign(Object.assign({}, label), {
90735
+ formatMethod: MARKER_FORMAT_METHOD_PLACEHOLDER
90736
+ }) : label,
90737
+ normalizeMarkerSpecForComponentOnlyUpdate = (spec, options) => {
90738
+ var _a;
90739
+ if (!spec || "object" != typeof spec) return spec;
90740
+ const normalized = Object.assign({}, spec);
90741
+ options.normalizeDomainPosition && MARKER_DOMAIN_POSITION_SPEC_KEYS.forEach(key => {
90742
+ key in normalized && (normalized[key] = MARKER_COORDINATE_PLACEHOLDER);
90743
+ }), options.normalizeAutoRange && "autoRange" in normalized && (normalized.autoRange = MARKER_AUTO_RANGE_PLACEHOLDER), MARKER_LAYOUT_POSITION_SPEC_KEYS.forEach(key => {
90744
+ key in normalized && (normalized[key] = MARKER_COORDINATE_PLACEHOLDER);
90745
+ }), "label" in normalized && (normalized.label = normalizeMarkerLabelFormatMethod(normalized.label));
90746
+ const text = null === (_a = normalized.itemContent) || void 0 === _a ? void 0 : _a.text;
90747
+ return text && "object" == typeof text && (normalized.itemContent = Object.assign(Object.assign({}, normalized.itemContent), {
90748
+ text: Object.assign(Object.assign({}, normalizeMarkerLabelFormatMethod(text)), {
90749
+ text: MARKER_TEXT_PLACEHOLDER
90750
+ })
90751
+ })), normalized;
90752
+ };
90577
90753
  class BaseMarker extends BaseComponent {
90578
90754
  constructor() {
90579
90755
  super(...arguments), this.layoutType = "none", this._markerDataChangeHandler = null, this._markerDataOwned = !1, this._layoutOffsetX = 0, this._layoutOffsetY = 0;
@@ -90611,6 +90787,22 @@
90611
90787
  getEndRelativeSeries: () => this._endRelativeSeries
90612
90788
  };
90613
90789
  }
90790
+ _getAutoRangeExtendDomainKeyPrefix() {
90791
+ return `marker_${this.type}_${this.id}`;
90792
+ }
90793
+ _getAutoRangeExtendDomainKey(axisKey) {
90794
+ return `${this._getAutoRangeExtendDomainKeyPrefix()}_${axisKey}_extend`;
90795
+ }
90796
+ _clearAutoRangeExtendDomain() {
90797
+ var _a, _b;
90798
+ array(null === (_b = (_a = this._option).getAllSeries) || void 0 === _b ? void 0 : _b.call(_a)).forEach(series => {
90799
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
90800
+ null === (_c = null === (_b = null === (_a = null == series ? void 0 : series.getXAxisHelper) || void 0 === _a ? void 0 : _a.call(series)) || void 0 === _b ? void 0 : _b.setExtendDomain) || void 0 === _c || _c.call(_b, this._getAutoRangeExtendDomainKey("xAxis"), void 0), null === (_f = null === (_e = null === (_d = null == series ? void 0 : series.getYAxisHelper) || void 0 === _d ? void 0 : _d.call(series)) || void 0 === _e ? void 0 : _e.setExtendDomain) || void 0 === _f || _f.call(_e, this._getAutoRangeExtendDomainKey("yAxis"), void 0), null === (_h = null === (_g = null == series ? void 0 : series.angleAxisHelper) || void 0 === _g ? void 0 : _g.setExtendDomain) || void 0 === _h || _h.call(_g, this._getAutoRangeExtendDomainKey("angleAxis"), void 0), null === (_k = null === (_j = null == series ? void 0 : series.radiusAxisHelper) || void 0 === _j ? void 0 : _j.setExtendDomain) || void 0 === _k || _k.call(_j, this._getAutoRangeExtendDomainKey("radiusAxis"), void 0);
90801
+ });
90802
+ }
90803
+ _updateMarkerLayout() {
90804
+ this._clearAutoRangeExtendDomain(), this._markerLayout();
90805
+ }
90614
90806
  _getFieldInfoFromSpec(dim, spec, relativeSeries) {
90615
90807
  const specKeyByDim = {
90616
90808
  x: "xField",
@@ -90656,7 +90848,7 @@
90656
90848
  _bindMarkerDataChange() {
90657
90849
  var _a;
90658
90850
  (null === (_a = this._markerData) || void 0 === _a ? void 0 : _a.target) && (this._markerDataChangeHandler = () => {
90659
- this._markerLayout();
90851
+ this._updateMarkerLayout();
90660
90852
  }, this._markerData.target.on("change", this._markerDataChangeHandler));
90661
90853
  }
90662
90854
  _releaseMarkerData() {
@@ -90672,7 +90864,7 @@
90672
90864
  this._delegateEvent(this._markerComponent, event, type, null, this.getMarkerData.bind(this));
90673
90865
  });
90674
90866
  }
90675
- this._markerLayout();
90867
+ this._updateMarkerLayout();
90676
90868
  }
90677
90869
  super.updateLayoutAttribute();
90678
90870
  }
@@ -90686,7 +90878,7 @@
90686
90878
  this._relativeSeries = this._getSeriesByIdOrIndex(spec.relativeSeriesId, spec.relativeSeriesIndex), this._startRelativeSeries = this._getSeriesByIdOrIndex(spec.startRelativeSeriesId, spec.startRelativeSeriesIndex), this._endRelativeSeries = this._getSeriesByIdOrIndex(spec.endRelativeSeriesId, spec.endRelativeSeriesIndex), spec.specifiedDataSeriesIndex && "all" === spec.specifiedDataSeriesIndex || spec.specifiedDataSeriesId && "all" === spec.specifiedDataSeriesId ? this._specifiedDataSeries = this._option.getAllSeries() : (spec.specifiedDataSeriesIndex || spec.specifiedDataSeriesId) && (this._specifiedDataSeries = this._getSeriesByIdOrIndex(spec.specifiedDataSeriesId, spec.specifiedDataSeriesIndex));
90687
90879
  }
90688
90880
  initEvent() {
90689
- "cartesian" !== this._relativeSeries.coordinate && (this._relativeSeries.event.on("zoom", this._markerLayout.bind(this)), this._relativeSeries.event.on("panmove", this._markerLayout.bind(this)), this._relativeSeries.event.on("scroll", this._markerLayout.bind(this)));
90881
+ "cartesian" !== this._relativeSeries.coordinate && (this._relativeSeries.event.on("zoom", this._updateMarkerLayout.bind(this)), this._relativeSeries.event.on("panmove", this._updateMarkerLayout.bind(this)), this._relativeSeries.event.on("scroll", this._updateMarkerLayout.bind(this)));
90690
90882
  }
90691
90883
  clear() {
90692
90884
  super.clear(), this._markerComponent = null, this._firstSeries = null;
@@ -90708,14 +90900,43 @@
90708
90900
  }
90709
90901
  _compareSpec(spec, prevSpec) {
90710
90902
  const result = super._compareSpec(spec, prevSpec);
90711
- return isEqual(prevSpec, spec) || (result.reRender = !0, result.reMake = !0, result.change = !0), result;
90903
+ return isEqual(prevSpec, spec) || (result.reRender = !0, result.change = !0, result.reMake || result.reCompile || !this._isComponentOnlySpecChange(spec, prevSpec) ? result.reMake || result.reCompile || !this._isAutoRangeSpecChange(spec, prevSpec) ? result.reMake = !0 : result.effects = Object.assign(Object.assign({}, result.effects), {
90904
+ component: !0,
90905
+ scaleDomain: !0,
90906
+ layout: !0,
90907
+ render: !0
90908
+ }) : result.effects = Object.assign(Object.assign({}, result.effects), {
90909
+ component: !0,
90910
+ layout: !0,
90911
+ render: !0
90912
+ })), result;
90913
+ }
90914
+ _isComponentOnlySpecChange(spec, prevSpec) {
90915
+ const normalizeDomainPosition = !(null == spec ? void 0 : spec.autoRange) && !(null == prevSpec ? void 0 : prevSpec.autoRange);
90916
+ return isEqual(normalizeMarkerSpecForComponentOnlyUpdate(prevSpec, {
90917
+ normalizeDomainPosition: normalizeDomainPosition
90918
+ }), normalizeMarkerSpecForComponentOnlyUpdate(spec, {
90919
+ normalizeDomainPosition: normalizeDomainPosition
90920
+ }));
90921
+ }
90922
+ _isAutoRangeSpecChange(spec, prevSpec) {
90923
+ return !(!(null == spec ? void 0 : spec.autoRange) && !(null == prevSpec ? void 0 : prevSpec.autoRange)) && isEqual(normalizeMarkerSpecForComponentOnlyUpdate(prevSpec, {
90924
+ normalizeDomainPosition: !0,
90925
+ normalizeAutoRange: !0
90926
+ }), normalizeMarkerSpecForComponentOnlyUpdate(spec, {
90927
+ normalizeDomainPosition: !0,
90928
+ normalizeAutoRange: !0
90929
+ }));
90930
+ }
90931
+ reInit(spec) {
90932
+ super.reInit(spec), this._bindSeries(), this._initDataView(), this._buildMarkerAttributeContext(), this._markerComponent && this._updateMarkerLayout();
90712
90933
  }
90713
90934
  _initCommonDataView() {
90714
90935
  const {
90715
90936
  options: options
90716
90937
  } = this._computeOptions(),
90717
90938
  seriesData = this._getRelativeDataView();
90718
- registerDataSetInstanceTransform(this._option.dataSet, "markerAggregation", markerAggregation), registerDataSetInstanceTransform(this._option.dataSet, "markerFilter", markerFilter);
90939
+ registerDataSetInstanceTransform(this._option.dataSet, "markerAggregation", markerAggregation), registerDataSetInstanceTransform(this._option.dataSet, "markerFilter", markerFilter), this._releaseMarkerData();
90719
90940
  const data = new DataView(this._option.dataSet, {
90720
90941
  name: `${this.type}_${this.id}_data`
90721
90942
  });
@@ -90986,9 +91207,9 @@
90986
91207
  } = getMarkLineProcessInfo(spec);
90987
91208
  let points = [];
90988
91209
  if (doXProcess || doXYY1Process || doYProcess || doYXX1Process || doXYProcess || isValidCoordinates && isValidProcessX || isValidCoordinates && isValidProcessY) {
90989
- const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);
91210
+ const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, !1, this._getAutoRangeExtendDomainKeyPrefix());
90990
91211
  points = 1 === xyPoints.length ? xyPoints[0] : xyPoints.map(point => point[0]);
90991
- } else doCoordinatesProcess ? points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset) : isPositionLayout && (points = positionLayout(spec.positions, relativeSeries, spec.regionRelative));
91212
+ } else doCoordinatesProcess ? points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset, this._getAutoRangeExtendDomainKeyPrefix()) : isPositionLayout && (points = positionLayout(spec.positions, relativeSeries, spec.regionRelative));
90992
91213
  return {
90993
91214
  points: points
90994
91215
  };
@@ -91198,7 +91419,7 @@
91198
91419
  y: this._relativeSeries.getRegion().getLayoutStartPoint().y + this._relativeSeries.angleAxisHelper.center().y
91199
91420
  };
91200
91421
  if (doAngleProcess || doRadiusProcess || doAngRadRad1Process || doRadAngAng1Process || doRadAngProcess) {
91201
- const polarPoints = polarLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);
91422
+ const polarPoints = polarLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, this._getAutoRangeExtendDomainKeyPrefix());
91202
91423
  points = 1 === polarPoints.length ? polarPoints[0] : polarPoints.map(point => point[0]), pointsAttr = points[0].radius === points[1].radius ? {
91203
91424
  radius: points[0].radius,
91204
91425
  startAngle: points[0].angle,
@@ -91207,7 +91428,7 @@
91207
91428
  } : {
91208
91429
  points: points.map(point => polarToCartesian(center, point.radius, point.angle))
91209
91430
  };
91210
- } else doCoordinatesProcess && (points = polarCoordinateLayout(data, relativeSeries, autoRange), pointsAttr = {
91431
+ } else doCoordinatesProcess && (points = polarCoordinateLayout(data, relativeSeries, autoRange, this._getAutoRangeExtendDomainKeyPrefix()), pointsAttr = {
91211
91432
  points: points.map(point => polarToCartesian(center, point.radius, point.angle))
91212
91433
  });
91213
91434
  return pointsAttr;
@@ -91572,7 +91793,7 @@
91572
91793
  let points = [],
91573
91794
  lines = [];
91574
91795
  if (doXYProcess) {
91575
- lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, includeFullBand);
91796
+ lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, includeFullBand, this._getAutoRangeExtendDomainKeyPrefix());
91576
91797
  const [start, end] = lines;
91577
91798
  start && start.length && end && end.length && (points = [{
91578
91799
  x: start[0].x,
@@ -91582,10 +91803,10 @@
91582
91803
  y: start[0].y
91583
91804
  }, end[0]]);
91584
91805
  } else if (doXProcess || doYProcess) {
91585
- lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, includeFullBand);
91806
+ lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, includeFullBand, this._getAutoRangeExtendDomainKeyPrefix());
91586
91807
  const [start, end] = lines;
91587
91808
  start && start.length && end && end.length && (points = [...start, end[1], end[0]]);
91588
- } else doCoordinatesProcess ? points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset) : isPositionLayout && (points = positionLayout(spec.positions, relativeSeries, spec.regionRelative));
91809
+ } else doCoordinatesProcess ? points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset, this._getAutoRangeExtendDomainKeyPrefix()) : isPositionLayout && (points = positionLayout(spec.positions, relativeSeries, spec.regionRelative));
91589
91810
  return {
91590
91811
  points: points
91591
91812
  };
@@ -91668,7 +91889,7 @@
91668
91889
  y: this._relativeSeries.getRegion().getLayoutStartPoint().y + this._relativeSeries.angleAxisHelper.center().y
91669
91890
  };
91670
91891
  if (doAngleProcess || doRadiusProcess || doRadAngProcess) {
91671
- const polarLines = polarLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);
91892
+ const polarLines = polarLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange, this._getAutoRangeExtendDomainKeyPrefix());
91672
91893
  doRadAngProcess ? pointsAttr = {
91673
91894
  innerRadius: polarLines[0][0].radius,
91674
91895
  outerRadius: polarLines[1][0].radius,
@@ -91688,7 +91909,7 @@
91688
91909
  endAngle: polarLines[1][1].angle,
91689
91910
  center: center
91690
91911
  });
91691
- } else doCoordinatesProcess && (points = polarCoordinateLayout(data, relativeSeries, autoRange), pointsAttr = {
91912
+ } else doCoordinatesProcess && (points = polarCoordinateLayout(data, relativeSeries, autoRange, this._getAutoRangeExtendDomainKeyPrefix()), pointsAttr = {
91692
91913
  points: points.map(point => polarToCartesian(center, point.radius, point.angle))
91693
91914
  });
91694
91915
  return pointsAttr;
@@ -92000,6 +92221,15 @@
92000
92221
  var _a, _b, _c, _d, _e, _f, _g, _h;
92001
92222
  super.setAttrFromSpec(), this._orient = null !== (_a = this._spec.orient) && void 0 !== _a ? _a : "bottom", this._specs = null !== (_b = this._spec.specs) && void 0 !== _b ? _b : [], this._direction = null !== (_c = this._spec.direction) && void 0 !== _c ? _c : "default", this._alternate = null !== (_d = this._spec.alternate) && void 0 !== _d && _d, this._dx = null !== (_e = this._spec.dx) && void 0 !== _e ? _e : 0, this._dy = null !== (_f = this._spec.dy) && void 0 !== _f ? _f : 0, this._position = null !== (_g = this._spec.position) && void 0 !== _g ? _g : "middle", this._visible = null === (_h = this._spec.visible) || void 0 === _h || _h;
92002
92223
  }
92224
+ _compareSpec(spec, prevSpec) {
92225
+ const result = super._compareSpec(spec, prevSpec),
92226
+ specChanged = !isEqual(prevSpec, spec);
92227
+ return (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) ? (result.reMake = !0, result) : (!specChanged || result.reMake || result.reCompile || (result.change = !0, result.reRender = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
92228
+ component: !0,
92229
+ layout: !0,
92230
+ render: !0
92231
+ })), result);
92232
+ }
92003
92233
  afterSetLayoutStartPoint(pos) {
92004
92234
  if (super.afterSetLayoutStartPoint(pos), isValidNumber$1(pos.x)) {
92005
92235
  const offsetX = isVertical(this._orient) ? pos.x + this._sliderExceededSize() / 2 : pos.x;
@@ -92106,7 +92336,11 @@
92106
92336
  }
92107
92337
  _compareSpec(spec, prevSpec) {
92108
92338
  const result = super._compareSpec(spec, prevSpec);
92109
- return result.reRender = !0, isEqual(prevSpec, spec) || (result.reMake = !0), result;
92339
+ return result.reRender = !0, isEqual(prevSpec, spec) || (result.change = !0, result.reMake || result.reCompile ? result.reMake = !0 : result.effects = Object.assign(Object.assign({}, result.effects), {
92340
+ component: !0,
92341
+ layout: !0,
92342
+ render: !0
92343
+ })), result;
92110
92344
  }
92111
92345
  _getDataLabelType(baseMark, type) {
92112
92346
  const markType = baseMark.type;
@@ -92744,7 +92978,7 @@
92744
92978
  return new MarkPoint$1(markPointAttrs);
92745
92979
  }
92746
92980
  _markerLayout() {
92747
- var _a, _b, _c, _d, _e;
92981
+ var _a, _b, _c, _d, _e, _f;
92748
92982
  const spec = this._spec,
92749
92983
  data = this._markerData,
92750
92984
  relativeSeries = this._relativeSeries,
@@ -92770,7 +93004,8 @@
92770
93004
  }
92771
93005
  if (this._markerComponent) {
92772
93006
  const attribute = null !== (_b = this._markerComponent.attribute) && void 0 !== _b ? _b : {},
92773
- textStyle = null !== (_d = null === (_c = attribute.itemContent) || void 0 === _c ? void 0 : _c.textStyle) && void 0 !== _d ? _d : {};
93007
+ textStyle = null !== (_d = null === (_c = attribute.itemContent) || void 0 === _c ? void 0 : _c.textStyle) && void 0 !== _d ? _d : {},
93008
+ specText = null === (_e = this._spec.itemContent.text) || void 0 === _e ? void 0 : _e.text;
92774
93009
  this._markerComponent.setAttributes({
92775
93010
  position: void 0 === point ? {
92776
93011
  x: null,
@@ -92778,7 +93013,7 @@
92778
93013
  } : point,
92779
93014
  itemContent: Object.assign(Object.assign({}, attribute.itemContent), {
92780
93015
  textStyle: Object.assign(Object.assign({}, textStyle), {
92781
- text: (null === (_e = this._spec.itemContent.text) || void 0 === _e ? void 0 : _e.formatMethod) ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData) : textStyle.text
93016
+ text: (null === (_f = this._spec.itemContent.text) || void 0 === _f ? void 0 : _f.formatMethod) ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData) : isValid$1(specText) ? specText : textStyle.text
92782
93017
  }),
92783
93018
  offsetX: computeOffsetFromRegion(point, attribute.itemContent.offsetX, this._relativeSeries.getRegion()),
92784
93019
  offsetY: computeOffsetFromRegion(point, attribute.itemContent.offsetY, this._relativeSeries.getRegion())
@@ -92856,7 +93091,7 @@
92856
93091
  isPositionLayout = isValid$1(spec.position),
92857
93092
  autoRange = null !== (_a = null == spec ? void 0 : spec.autoRange) && void 0 !== _a && _a;
92858
93093
  let point;
92859
- return isXYLayout ? point = null === (_c = null === (_b = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)) || void 0 === _b ? void 0 : _b[0]) || void 0 === _c ? void 0 : _c[0] : isCoordinateLayout ? point = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset)[0] : isPositionLayout && (point = positionLayout(spec.position, relativeSeries, spec.regionRelative)[0]), {
93094
+ return isXYLayout ? point = null === (_c = null === (_b = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange, !1, this._getAutoRangeExtendDomainKeyPrefix())) || void 0 === _b ? void 0 : _b[0]) || void 0 === _c ? void 0 : _c[0] : isCoordinateLayout ? point = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset, this._getAutoRangeExtendDomainKeyPrefix())[0] : isPositionLayout && (point = positionLayout(spec.position, relativeSeries, spec.regionRelative)[0]), {
92860
93095
  point: point
92861
93096
  };
92862
93097
  }
@@ -92894,7 +93129,7 @@
92894
93129
  const data = this._markerData,
92895
93130
  relativeSeries = this._relativeSeries,
92896
93131
  autoRange = null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.autoRange) && void 0 !== _b && _b,
92897
- polarPoint = polarLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0],
93132
+ polarPoint = polarLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange, this._getAutoRangeExtendDomainKeyPrefix())[0][0],
92898
93133
  center = {
92899
93134
  x: this._relativeSeries.getRegion().getLayoutStartPoint().x + this._relativeSeries.angleAxisHelper.center().x,
92900
93135
  y: this._relativeSeries.getRegion().getLayoutStartPoint().y + this._relativeSeries.angleAxisHelper.center().y
@@ -92966,6 +93201,11 @@
92966
93201
  delayTime: 0
92967
93202
  };
92968
93203
 
93204
+ const BRUSH_COMPONENT_ONLY_CHANGE_KEYS = {
93205
+ style: !0,
93206
+ inBrush: !0,
93207
+ outOfBrush: !0
93208
+ };
92969
93209
  let Brush$1 = class Brush extends BaseComponent {
92970
93210
  constructor() {
92971
93211
  super(...arguments), this.layoutType = "none", this.type = ComponentTypeEnum.brush, this.name = ComponentTypeEnum.brush, this.specKey = "brush", this.layoutZIndex = LayoutZIndex.Brush, this._linkedSeries = [], this._itemMap = {}, this._linkedItemMap = {}, this._inBrushElementsMap = {}, this._outOfBrushElementsMap = {}, this._linkedInBrushElementsMap = {}, this._linkedOutOfBrushElementsMap = {}, this._cacheInteractiveRangeAttrs = [], this._releatedAxes = [], this._regionAxisMap = {}, this._axisDataZoomMap = {}, this._zoomRecord = [];
@@ -93028,7 +93268,14 @@
93028
93268
  this._updateBrushComponent(region, index);
93029
93269
  });
93030
93270
  const result = super._compareSpec(spec, prevSpec);
93031
- return isEqual(prevSpec, spec) || (result.reRender = !0, result.reMake = !0), result;
93271
+ return isEqual(prevSpec, spec) || (result.change = !0, result.reRender = !0, result.reMake || result.reCompile || !this._isComponentOnlySpecChange(spec, prevSpec) ? result.reMake = !0 : result.effects = Object.assign(Object.assign({}, result.effects), {
93272
+ component: !0,
93273
+ layout: !0,
93274
+ render: !0
93275
+ })), result;
93276
+ }
93277
+ _isComponentOnlySpecChange(spec, prevSpec) {
93278
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every(key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || BRUSH_COMPONENT_ONLY_CHANGE_KEYS[key]);
93032
93279
  }
93033
93280
  onLayoutEnd() {
93034
93281
  var _a;
@@ -93040,9 +93287,12 @@
93040
93287
  })));
93041
93288
  }
93042
93289
  _updateBrushComponent(region, componentIndex) {
93290
+ var _a;
93043
93291
  const interactiveAttr = this._getBrushInteractiveAttr(region),
93044
93292
  brushComponent = this._brushComponents[componentIndex];
93045
- brushComponent.setAttributes(interactiveAttr), this._initMarkBrushState(componentIndex, ""), brushComponent.children[0].removeAllChild();
93293
+ brushComponent.setAttributes(Object.assign({
93294
+ brushStyle: transformToGraphic(null === (_a = this._spec) || void 0 === _a ? void 0 : _a.style)
93295
+ }, interactiveAttr)), this._initMarkBrushState(componentIndex, ""), brushComponent.children[0].removeAllChild();
93046
93296
  }
93047
93297
  _shouldEnableInteractive() {
93048
93298
  return !1 !== this.getOption().getCompiler().getOption().interactive;
@@ -93361,6 +93611,10 @@
93361
93611
  Factory.registerComponent(Brush$1.type, Brush$1);
93362
93612
  };
93363
93613
 
93614
+ const CUSTOM_MARK_COMPONENT_ONLY_CHANGE_KEYS = {
93615
+ style: !0,
93616
+ state: !0
93617
+ };
93364
93618
  class CustomMark extends BaseComponent {
93365
93619
  constructor() {
93366
93620
  super(...arguments), this.type = ComponentTypeEnum.customMark, this.specKey = "customMark", this.layoutType = "none", this.layoutZIndex = LayoutZIndex.CustomMark, this.layoutLevel = LayoutLevel.CustomMark;
@@ -93418,7 +93672,27 @@
93418
93672
  initEvent() {}
93419
93673
  _compareSpec(spec, prevSpec) {
93420
93674
  const result = super._compareSpec(spec, prevSpec);
93421
- return isEqual(prevSpec, spec) || (result.reMake = !0), result.change = !0, result.reRender = !0, result;
93675
+ return isEqual(prevSpec, spec) || (result.reMake || result.reCompile || !this._isComponentOnlySpecChange(spec, prevSpec) ? result.reMake = !0 : result.effects = Object.assign(Object.assign({}, result.effects), {
93676
+ component: !0,
93677
+ render: !0
93678
+ })), result.change = !0, result.reRender = !0, result;
93679
+ }
93680
+ _isComponentOnlySpecChange(spec, prevSpec) {
93681
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every(key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || CUSTOM_MARK_COMPONENT_ONLY_CHANGE_KEYS[key]);
93682
+ }
93683
+ reInit(spec) {
93684
+ super.reInit(spec), this._updateMarkStyleWithSpec(this._spec, this.getMarks()[0]), this.getMarks().forEach(mark => {
93685
+ mark.commit(!1, !0);
93686
+ });
93687
+ }
93688
+ _updateMarkStyleWithSpec(spec, mark) {
93689
+ var _a, _b, _c, _d;
93690
+ if (spec && mark && (this.initMarkStyleWithSpec(mark, spec), "group" === spec.type)) {
93691
+ const children = null !== (_c = null === (_b = (_a = mark).getMarks) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : [];
93692
+ null === (_d = spec.children) || void 0 === _d || _d.forEach((childSpec, index) => {
93693
+ this._updateMarkStyleWithSpec(childSpec, children[index]);
93694
+ });
93695
+ }
93422
93696
  }
93423
93697
  _getMarkAttributeContext() {
93424
93698
  return {