@visactor/vchart 2.0.0-alpha.4 → 2.0.1-alpha.0

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 (156) hide show
  1. package/build/es5/index.js +2 -2
  2. package/build/index.es.js +401 -237
  3. package/build/index.js +401 -236
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/interface.d.ts +1 -0
  7. package/cjs/animation/interface.js.map +1 -1
  8. package/cjs/chart/base/base-chart.d.ts +1 -0
  9. package/cjs/chart/base/base-chart.js +3 -0
  10. package/cjs/chart/base/base-chart.js.map +1 -1
  11. package/cjs/chart/histogram/base/histogram-base-transformer.js +1 -1
  12. package/cjs/chart/histogram/base/histogram-base-transformer.js.map +1 -1
  13. package/cjs/chart/interface/chart.d.ts +1 -0
  14. package/cjs/chart/interface/chart.js.map +1 -1
  15. package/cjs/compile/compiler.js +6 -2
  16. package/cjs/compile/compiler.js.map +1 -1
  17. package/cjs/component/axis/base-axis.js.map +1 -1
  18. package/cjs/component/axis/interface/common.js.map +1 -1
  19. package/cjs/component/brush/brush.d.ts +1 -1
  20. package/cjs/component/brush/brush.js +24 -20
  21. package/cjs/component/brush/brush.js.map +1 -1
  22. package/cjs/component/brush/interface.d.ts +1 -0
  23. package/cjs/component/brush/interface.js.map +1 -1
  24. package/cjs/component/crosshair/base.d.ts +1 -1
  25. package/cjs/component/crosshair/base.js +5 -4
  26. package/cjs/component/crosshair/base.js.map +1 -1
  27. package/cjs/component/crosshair/cartesian.js +3 -2
  28. package/cjs/component/crosshair/cartesian.js.map +1 -1
  29. package/cjs/component/crosshair/interface/common.d.ts +3 -1
  30. package/cjs/component/crosshair/interface/common.js.map +1 -1
  31. package/cjs/component/crosshair/interface/spec.d.ts +1 -0
  32. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  33. package/cjs/component/crosshair/interface/theme.d.ts +2 -0
  34. package/cjs/component/crosshair/interface/theme.js.map +1 -1
  35. package/cjs/component/crosshair/utils/cartesian.js +15 -13
  36. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  37. package/cjs/component/crosshair/utils/common.js +8 -4
  38. package/cjs/component/crosshair/utils/common.js.map +1 -1
  39. package/cjs/component/marker/utils.js +14 -9
  40. package/cjs/component/marker/utils.js.map +1 -1
  41. package/cjs/component/tooltip/interface/theme.d.ts +3 -0
  42. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  43. package/cjs/component/tooltip/tooltip-transformer.js +3 -1
  44. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  45. package/cjs/core/index.d.ts +1 -1
  46. package/cjs/core/index.js +1 -1
  47. package/cjs/core/index.js.map +1 -1
  48. package/cjs/core/vchart.js +6 -7
  49. package/cjs/core/vchart.js.map +1 -1
  50. package/cjs/mark/base/base-mark.d.ts +3 -1
  51. package/cjs/mark/base/base-mark.js +49 -43
  52. package/cjs/mark/base/base-mark.js.map +1 -1
  53. package/cjs/mark/group.d.ts +1 -1
  54. package/cjs/mark/group.js +14 -10
  55. package/cjs/mark/group.js.map +1 -1
  56. package/cjs/mark/interface/common.d.ts +1 -1
  57. package/cjs/mark/interface/common.js.map +1 -1
  58. package/cjs/model/base-model.d.ts +1 -0
  59. package/cjs/model/base-model.js +1 -0
  60. package/cjs/model/base-model.js.map +1 -1
  61. package/cjs/model/interface.d.ts +1 -0
  62. package/cjs/model/interface.js.map +1 -1
  63. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +2 -3
  64. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  65. package/cjs/series/bar/bar.d.ts +3 -0
  66. package/cjs/series/bar/bar.js +28 -7
  67. package/cjs/series/bar/bar.js.map +1 -1
  68. package/cjs/series/bar/interface.d.ts +1 -0
  69. package/cjs/series/bar/interface.js.map +1 -1
  70. package/cjs/series/base/base-series.js +2 -3
  71. package/cjs/series/base/base-series.js.map +1 -1
  72. package/cjs/series/funnel/funnel.js +0 -2
  73. package/cjs/series/funnel/funnel.js.map +1 -1
  74. package/cjs/series/map/map.js +1 -2
  75. package/cjs/series/map/map.js.map +1 -1
  76. package/cjs/series/pie/pie.js +0 -1
  77. package/cjs/series/pie/pie.js.map +1 -1
  78. package/cjs/util/mark.d.ts +1 -0
  79. package/cjs/util/mark.js +10 -1
  80. package/cjs/util/mark.js.map +1 -1
  81. package/esm/animation/interface.d.ts +1 -0
  82. package/esm/animation/interface.js.map +1 -1
  83. package/esm/chart/base/base-chart.d.ts +1 -0
  84. package/esm/chart/base/base-chart.js +3 -0
  85. package/esm/chart/base/base-chart.js.map +1 -1
  86. package/esm/chart/histogram/base/histogram-base-transformer.js +1 -1
  87. package/esm/chart/histogram/base/histogram-base-transformer.js.map +1 -1
  88. package/esm/chart/interface/chart.d.ts +1 -0
  89. package/esm/chart/interface/chart.js.map +1 -1
  90. package/esm/compile/compiler.js +7 -4
  91. package/esm/compile/compiler.js.map +1 -1
  92. package/esm/component/axis/base-axis.js.map +1 -1
  93. package/esm/component/axis/interface/common.js.map +1 -1
  94. package/esm/component/brush/brush.d.ts +1 -1
  95. package/esm/component/brush/brush.js +24 -20
  96. package/esm/component/brush/brush.js.map +1 -1
  97. package/esm/component/brush/interface.d.ts +1 -0
  98. package/esm/component/brush/interface.js.map +1 -1
  99. package/esm/component/crosshair/base.d.ts +1 -1
  100. package/esm/component/crosshair/base.js +5 -4
  101. package/esm/component/crosshair/base.js.map +1 -1
  102. package/esm/component/crosshair/cartesian.js +3 -2
  103. package/esm/component/crosshair/cartesian.js.map +1 -1
  104. package/esm/component/crosshair/interface/common.d.ts +3 -1
  105. package/esm/component/crosshair/interface/common.js.map +1 -1
  106. package/esm/component/crosshair/interface/spec.d.ts +1 -0
  107. package/esm/component/crosshair/interface/spec.js.map +1 -1
  108. package/esm/component/crosshair/interface/theme.d.ts +2 -0
  109. package/esm/component/crosshair/interface/theme.js.map +1 -1
  110. package/esm/component/crosshair/utils/cartesian.js +15 -13
  111. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  112. package/esm/component/crosshair/utils/common.js +8 -4
  113. package/esm/component/crosshair/utils/common.js.map +1 -1
  114. package/esm/component/marker/utils.js +15 -8
  115. package/esm/component/marker/utils.js.map +1 -1
  116. package/esm/component/tooltip/interface/theme.d.ts +3 -0
  117. package/esm/component/tooltip/interface/theme.js.map +1 -1
  118. package/esm/component/tooltip/tooltip-transformer.js +3 -1
  119. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  120. package/esm/core/index.d.ts +1 -1
  121. package/esm/core/index.js +1 -1
  122. package/esm/core/index.js.map +1 -1
  123. package/esm/core/vchart.js +5 -6
  124. package/esm/core/vchart.js.map +1 -1
  125. package/esm/mark/base/base-mark.d.ts +3 -1
  126. package/esm/mark/base/base-mark.js +50 -42
  127. package/esm/mark/base/base-mark.js.map +1 -1
  128. package/esm/mark/group.d.ts +1 -1
  129. package/esm/mark/group.js +17 -9
  130. package/esm/mark/group.js.map +1 -1
  131. package/esm/mark/interface/common.d.ts +1 -1
  132. package/esm/mark/interface/common.js.map +1 -1
  133. package/esm/model/base-model.d.ts +1 -0
  134. package/esm/model/base-model.js +1 -0
  135. package/esm/model/base-model.js.map +1 -1
  136. package/esm/model/interface.d.ts +1 -0
  137. package/esm/model/interface.js.map +1 -1
  138. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +2 -3
  139. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  140. package/esm/series/bar/bar.d.ts +3 -0
  141. package/esm/series/bar/bar.js +26 -7
  142. package/esm/series/bar/bar.js.map +1 -1
  143. package/esm/series/bar/interface.d.ts +1 -0
  144. package/esm/series/bar/interface.js.map +1 -1
  145. package/esm/series/base/base-series.js +2 -3
  146. package/esm/series/base/base-series.js.map +1 -1
  147. package/esm/series/funnel/funnel.js +0 -2
  148. package/esm/series/funnel/funnel.js.map +1 -1
  149. package/esm/series/map/map.js +1 -2
  150. package/esm/series/map/map.js.map +1 -1
  151. package/esm/series/pie/pie.js +0 -1
  152. package/esm/series/pie/pie.js.map +1 -1
  153. package/esm/util/mark.d.ts +1 -0
  154. package/esm/util/mark.js +7 -0
  155. package/esm/util/mark.js.map +1 -1
  156. package/package.json +6 -6
package/build/index.es.js CHANGED
@@ -14167,9 +14167,9 @@ class Graphic extends Node {
14167
14167
  setWidthHeightWithoutTransform(aabbBounds) {
14168
14168
  this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1, this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;
14169
14169
  }
14170
- setAttributesAndPreventAnimate(params, forceUpdateTag = !1, context) {
14170
+ setAttributesAndPreventAnimate(params, forceUpdateTag = !1, context, ignorePriority) {
14171
14171
  this.setAttributes(params, forceUpdateTag, context), this.animates && this.animates.forEach(animate => {
14172
- Object.keys(params).forEach(key => {
14172
+ (animate.priority !== 1 / 0 || ignorePriority) && Object.keys(params).forEach(key => {
14173
14173
  animate.preventAttr(key);
14174
14174
  });
14175
14175
  });
@@ -14340,7 +14340,7 @@ class Graphic extends Node {
14340
14340
  });
14341
14341
  } else this.stopStateAnimates(), this.setAttributesAndPreventAnimate(attrs, !1, {
14342
14342
  type: AttributeUpdateType.STATE
14343
- });
14343
+ }), this.finalAttribute && Object.assign(this.finalAttribute, attrs);
14344
14344
  this._emitCustomEvent("afterStateUpdate", {
14345
14345
  type: AttributeUpdateType.STATE
14346
14346
  });
@@ -23546,6 +23546,18 @@ class AbstractComponent extends Group$1 {
23546
23546
  const changeEvent = new CustomEvent(eventName, details);
23547
23547
  changeEvent.manager = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventSystem.manager, this.dispatchEvent(changeEvent);
23548
23548
  }
23549
+ eventPosToStagePos(e) {
23550
+ var _a, _b;
23551
+ const result = {
23552
+ x: 0,
23553
+ y: 0
23554
+ },
23555
+ stagePoints = null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventPointTransform(e)) && void 0 !== _b ? _b : {
23556
+ x: 0,
23557
+ y: 0
23558
+ };
23559
+ return this.globalTransMatrix.transformPoint(stagePoints, result), result;
23560
+ }
23549
23561
  }
23550
23562
 
23551
23563
  const MathPickerContribution = Symbol.for("MathPickerContribution");
@@ -31536,6 +31548,10 @@ class InterpolateUpdateStore {
31536
31548
  target.attribute.x = interpolateNumber(from, to, ratio), target.addUpdateBoundTag(), target.addUpdatePositionTag();
31537
31549
  }, this.y = (key, from, to, ratio, step, target) => {
31538
31550
  target.attribute.y = interpolateNumber(from, to, ratio), target.addUpdateBoundTag(), target.addUpdatePositionTag();
31551
+ }, this.dx = (key, from, to, ratio, step, target) => {
31552
+ target.attribute.dx = interpolateNumber(from, to, ratio), target.addUpdateBoundTag(), target.addUpdatePositionTag();
31553
+ }, this.dy = (key, from, to, ratio, step, target) => {
31554
+ target.attribute.dy = interpolateNumber(from, to, ratio), target.addUpdateBoundTag(), target.addUpdatePositionTag();
31539
31555
  }, this.angle = (key, from, to, ratio, step, target) => {
31540
31556
  target.attribute.angle = interpolateNumber(from, to, ratio), target.addUpdateBoundTag(), target.addUpdatePositionTag();
31541
31557
  }, this.scaleX = (key, from, to, ratio, step, target) => {
@@ -31712,7 +31728,7 @@ class DefaultTimeline extends EventEmitter {
31712
31728
  return this._animateCount;
31713
31729
  }
31714
31730
  constructor() {
31715
- super(), this.head = null, this.tail = null, this.animateMap = new Map(), this._animateCount = 0, this._playSpeed = 1, this._totalDuration = 0, this._startTime = 0, this._currentTime = 0, this.id = Generator.GenAutoIncrementId(), this.paused = !1;
31731
+ super(), this.head = null, this.tail = null, this.animateMap = new Map(), this._animateCount = 0, this._playSpeed = 1, this._totalDuration = 0, this._startTime = 0, this._currentTime = 0, this._animationEndFlag = !0, this.id = Generator.GenAutoIncrementId(), this.paused = !1;
31716
31732
  }
31717
31733
  isRunning() {
31718
31734
  return !this.paused && this._animateCount > 0;
@@ -31741,10 +31757,11 @@ class DefaultTimeline extends EventEmitter {
31741
31757
  }
31742
31758
  tick(delta) {
31743
31759
  if (this.paused) return;
31760
+ this._animationEndFlag && (this._animationEndFlag = !1, this.emit("animationStart"));
31744
31761
  const scaledDelta = delta * this._playSpeed;
31745
31762
  this._currentTime += scaledDelta, this.forEachAccessAnimate((animate, i) => {
31746
31763
  animate.status === AnimateStatus.END ? this.removeAnimate(animate, !0) : animate.status !== AnimateStatus.RUNNING && animate.status !== AnimateStatus.INITIAL || animate.advance(scaledDelta);
31747
- }), 0 === this._animateCount && this.emit("animationEnd");
31764
+ }), 0 === this._animateCount && (this._animationEndFlag = !0, this.emit("animationEnd"));
31748
31765
  }
31749
31766
  clear() {
31750
31767
  this.forEachAccessAnimate(animate => {
@@ -31808,7 +31825,9 @@ class Animate {
31808
31825
  return this._timeline;
31809
31826
  }
31810
31827
  bind(target) {
31811
- return this.target = target, this.target.onAnimateBind && !this.slience && this.target.onAnimateBind(this), this.target.animationAttribute || (this.target.animationAttribute = {}), this;
31828
+ return this.target = target, this.target.animates || (this.target.animates = new Map()), this.target.animates.set(this.id, this), this.onRemove(() => {
31829
+ this.stop(), this.target.animates.delete(this.id);
31830
+ }), this.target.onAnimateBind && !this.slience && this.target.onAnimateBind(this), this.target.animationAttribute || (this.target.animationAttribute = {}), this;
31812
31831
  }
31813
31832
  to(props, duration = 300, easing = "linear") {
31814
31833
  const step = new Step(AnimateStepType.to, props, duration, easing);
@@ -32022,8 +32041,8 @@ class DefaultTicker extends EventEmitter {
32022
32041
  }
32023
32042
  init() {
32024
32043
  this.interval = 16, this.status = STATUS$1.INITIAL, application.global.hooks.onSetEnv.tap("graph-ticker", () => {
32025
- this.initHandler();
32026
- }), application.global.env && this.initHandler();
32044
+ this.initHandler(!1);
32045
+ }), application.global.env && this.initHandler(!1);
32027
32046
  }
32028
32047
  addTimeline(timeline) {
32029
32048
  this.timelines.push(timeline);
@@ -32034,10 +32053,11 @@ class DefaultTicker extends EventEmitter {
32034
32053
  getTimelines() {
32035
32054
  return this.timelines;
32036
32055
  }
32037
- initHandler() {
32038
- this.setupTickHandler();
32056
+ initHandler(force = !1) {
32057
+ this.setupTickHandler(force);
32039
32058
  }
32040
- setupTickHandler() {
32059
+ setupTickHandler(force = !1) {
32060
+ if (!force && this.tickerHandler) return !0;
32041
32061
  const handler = new RAFTickHandler();
32042
32062
  return this.tickerHandler && this.tickerHandler.release(), this.tickerHandler = handler, !0;
32043
32063
  }
@@ -32088,7 +32108,7 @@ class DefaultTicker extends EventEmitter {
32088
32108
  return this.status = STATUS$1.RUNNING, this.tickerHandler.tick(0, this.handleTick), !0;
32089
32109
  }
32090
32110
  stop() {
32091
- this.status = STATUS$1.INITIAL, this.setupTickHandler(), this.lastFrameTime = -1;
32111
+ this.status = STATUS$1.INITIAL, this.setupTickHandler(!0), this.lastFrameTime = -1;
32092
32112
  }
32093
32113
  trySyncTickStatus() {
32094
32114
  this.status === STATUS$1.INITIAL && this.timelines.some(timeline => timeline.isRunning()) ? this.start() : this.status === STATUS$1.RUNNING && this.timelines.every(timeline => !timeline.isRunning()) && this.stop();
@@ -32396,7 +32416,11 @@ class AnimateExecutor {
32396
32416
  _handleRunAnimate(animate, custom, customType, from, props, duration, easing, customParameters, controlOptions, options, type, graphic) {
32397
32417
  var _a, _b, _c, _d;
32398
32418
  if (custom && customType) {
32399
- const customParams = this.resolveValue(customParameters, graphic, {}),
32419
+ const customParams = Object.assign({
32420
+ width: graphic.stage.width,
32421
+ height: graphic.stage.height,
32422
+ group: this._target.parent
32423
+ }, this.resolveValue(customParameters, graphic)),
32400
32424
  objOptions = isFunction$1(options) ? options.call(null, null !== (_b = customParams && (null === (_a = customParams.data) || void 0 === _a ? void 0 : _a[0])) && void 0 !== _b ? _b : null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, customParams) : options;
32401
32425
  customParams.options = objOptions, customParams.controlOptions = controlOptions, 1 === customType ? this.createCustomAnimation(animate, custom, from, props, duration, easing, customParams) : 2 === customType && this.createCustomInterpolatorAnimation(animate, custom, props, duration, easing, customParams);
32402
32426
  } else "to" === type ? animate.to(props, duration, easing) : "from" === type && animate.from(props, duration, easing);
@@ -32661,7 +32685,6 @@ class AnimateExtension {
32661
32685
  }
32662
32686
  animate(params) {
32663
32687
  var _a, _b, _c;
32664
- this.animates || (this.animates = new Map());
32665
32688
  const animate = new Animate(null == params ? void 0 : params.id, null !== (_b = null !== (_a = null == params ? void 0 : params.timeline) && void 0 !== _a ? _a : this.stage && this.stage.getTimeline()) && void 0 !== _b ? _b : defaultTimeline, null == params ? void 0 : params.slience);
32666
32689
  if (animate.bind(this), params) {
32667
32690
  const {
@@ -32671,9 +32694,7 @@ class AnimateExtension {
32671
32694
  } = params;
32672
32695
  null != onStart && animate.onStart(onStart), null != onEnd && animate.onEnd(onEnd), null != onRemove && animate.onRemove(onRemove);
32673
32696
  }
32674
- return this.animates.set(animate.id, animate), animate.onRemove(() => {
32675
- animate.stop(), this.animates.delete(animate.id);
32676
- }), null === (_c = this.stage) || void 0 === _c || _c.ticker.start(), animate;
32697
+ return null === (_c = this.stage) || void 0 === _c || _c.ticker.start(), animate;
32677
32698
  }
32678
32699
  createTimeline() {
32679
32700
  return new DefaultTimeline();
@@ -32712,7 +32733,7 @@ function registerAnimate$1() {
32712
32733
 
32713
32734
  class ACustomAnimate extends Step {
32714
32735
  constructor(customFrom, customTo, duration, easing, params) {
32715
- super("customAnimate", customTo, duration, easing), this.type = "customAnimate", this.customFrom = customFrom, this.params = params;
32736
+ super("customAnimate", customTo, duration, easing), this.type = "customAnimate", this.customFrom = customFrom, this.params = params, this.from = customFrom, this.to = customTo;
32716
32737
  }
32717
32738
  update(end, ratio, out) {
32718
32739
  if (this.onStart(), !this.props || !this.propKeys) return;
@@ -35789,18 +35810,19 @@ const moveIn = (graphic, options, animationParameters) => {
35789
35810
  }
35790
35811
  };
35791
35812
  const moveOut = (graphic, options, animationParameters) => {
35792
- var _a, _b, _c, _d, _e, _f;
35813
+ var _a, _b, _c, _d;
35793
35814
  const {
35794
35815
  offset = 0,
35795
35816
  orient: orient,
35796
35817
  direction: direction,
35797
35818
  point: pointOpt
35798
35819
  } = null != options ? options : {},
35799
- groupWidth = null !== (_b = null === (_a = options.layoutRect) || void 0 === _a ? void 0 : _a.width) && void 0 !== _b ? _b : graphic.stage.viewWidth,
35800
- groupHeight = null !== (_d = null === (_c = options.layoutRect) || void 0 === _c ? void 0 : _c.height) && void 0 !== _d ? _d : graphic.stage.viewHeight,
35820
+ groupBounds = animationParameters.group ? animationParameters.group.AABBBounds : null,
35821
+ groupWidth = null !== (_a = groupBounds.width()) && void 0 !== _a ? _a : animationParameters.width,
35822
+ groupHeight = null !== (_b = groupBounds.height()) && void 0 !== _b ? _b : animationParameters.height,
35801
35823
  changedX = ("negative" === orient ? groupWidth : 0) + offset,
35802
35824
  changedY = ("negative" === orient ? groupHeight : 0) + offset,
35803
- point = isFunction$1(pointOpt) ? pointOpt.call(null, null === (_f = null === (_e = graphic.context) || void 0 === _e ? void 0 : _e.data) || void 0 === _f ? void 0 : _f[0], graphic, animationParameters) : pointOpt,
35825
+ point = isFunction$1(pointOpt) ? pointOpt.call(null, null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, animationParameters) : pointOpt,
35804
35826
  fromX = point && isValidNumber$1(point.x) ? point.x : changedX,
35805
35827
  fromY = point && isValidNumber$1(point.y) ? point.y : changedY;
35806
35828
  switch (direction) {
@@ -35959,11 +35981,11 @@ class FromTo extends ACustomAnimate {
35959
35981
  }
35960
35982
  onBind() {
35961
35983
  var _a, _b;
35962
- super.onBind();
35984
+ super.onBind(), Object.keys(this.from).forEach(key => {
35985
+ null == this.props[key] && (this.props[key] = this.target.getGraphicAttribute(key));
35986
+ });
35963
35987
  const finalAttribute = this.target.getFinalAttribute();
35964
- Object.keys(this.from).forEach(key => {
35965
- null == this.props[key] && (this.props[key] = finalAttribute[key]);
35966
- }), "appear" === (null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.animationState) && finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_b = this.params.controlOptions) || void 0 === _b ? void 0 : _b.immediatelyApply) && this.target.setAttributes(this.from);
35988
+ "appear" === (null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.animationState) && finalAttribute && this.target.setAttributes(finalAttribute), !1 !== (null === (_b = this.params.controlOptions) || void 0 === _b ? void 0 : _b.immediatelyApply) && this.target.setAttributes(this.from);
35967
35989
  }
35968
35990
  onFirstRun() {
35969
35991
  this.from = Object.assign(Object.assign({}, this.getLastProps()), this.from);
@@ -35973,6 +35995,9 @@ class FromTo extends ACustomAnimate {
35973
35995
  this.from[key] = null !== (_a = this.from[key]) && void 0 !== _a ? _a : startProps[key];
35974
35996
  }), this.target.setAttributes(this.from);
35975
35997
  }
35998
+ deleteSelfAttr(key) {
35999
+ super.deleteSelfAttr(key), delete this.from[key];
36000
+ }
35976
36001
  update(end, ratio, out) {
35977
36002
  if (this.onStart(), !this.props || !this.propKeys) return;
35978
36003
  const easedRatio = this.easing(ratio);
@@ -36969,7 +36994,7 @@ const labelOverlap = (prevLabel, nextLabel, gap = 0) => {
36969
36994
  const MIN_TICK_GAP = 12;
36970
36995
  const calculateFlushPos = (basePosition, size, rangePosition, otherEnd) => rangePosition < basePosition ? Math.max(basePosition - size / 2, rangePosition) : rangePosition > basePosition ? Math.min(basePosition - size / 2, rangePosition - size) : rangePosition < otherEnd ? rangePosition : rangePosition - size;
36971
36996
  const getCartesianLabelBounds = (scale, domain, op) => {
36972
- var _a;
36997
+ var _a, _b, _c;
36973
36998
  const {
36974
36999
  labelStyle: labelStyle,
36975
37000
  axisOrientType: axisOrientType,
@@ -36985,27 +37010,32 @@ const getCartesianLabelBounds = (scale, domain, op) => {
36985
37010
  scaleY = 0;
36986
37011
  isHorizontal || (isVertical ? (scaleX = 0, scaleY = 1) : startAngle && (scaleX = Math.cos(startAngle), scaleY = -Math.sin(startAngle)));
36987
37012
  const textMeasure = initTextMeasure$1(labelStyle),
36988
- range = scale.range(),
36989
- labelBoundsList = domain.map((v, i) => {
36990
- var _a, _b;
36991
- const str = labelFormatter ? labelFormatter(v) : `${v}`,
36992
- {
36993
- width: width,
36994
- height: height
36995
- } = textMeasure.quickMeasure(str),
36996
- textWidth = Math.max(width, 12),
36997
- textHeight = Math.max(height, 12),
36998
- pos = scale.scale(v),
36999
- baseTextX = scaleX * pos,
37000
- baseTextY = scaleY * pos;
37001
- let align,
37002
- baseline,
37003
- textX = baseTextX,
37004
- textY = baseTextY;
37005
- labelFlush && isHorizontal && 0 === i ? textX = calculateFlushPos(baseTextX, textWidth, range[0], range[range.length - 1]) : labelFlush && isHorizontal && i === domain.length - 1 ? textX = calculateFlushPos(baseTextX, textWidth, range[range.length - 1], range[0]) : align = null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center", "right" === align ? textX -= textWidth : "center" === align && (textX -= textWidth / 2), labelFlush && isVertical && 0 === i ? textY = calculateFlushPos(baseTextY, textHeight, range[0], range[range.length - 1]) : labelFlush && isVertical && i === domain.length - 1 ? textY = calculateFlushPos(baseTextY, textHeight, range[range.length - 1], range[0]) : baseline = null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle", "bottom" === baseline ? textY -= textHeight : "middle" === baseline && (textY -= textHeight / 2);
37006
- const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);
37007
- return labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), bounds;
37008
- });
37013
+ range = scale.range();
37014
+ let labelBoundsList = [];
37015
+ for (let i = 0; i < domain.length; i++) {
37016
+ const v = domain[i],
37017
+ str = labelFormatter ? labelFormatter(v) : `${v}`;
37018
+ if (isPlainObject$1(str)) {
37019
+ labelBoundsList = void 0;
37020
+ break;
37021
+ }
37022
+ const {
37023
+ width: width,
37024
+ height: height
37025
+ } = textMeasure.quickMeasure(str),
37026
+ textWidth = Math.max(width, 12),
37027
+ textHeight = Math.max(height, 12),
37028
+ pos = scale.scale(v),
37029
+ baseTextX = scaleX * pos,
37030
+ baseTextY = scaleY * pos;
37031
+ let align,
37032
+ baseline,
37033
+ textX = baseTextX,
37034
+ textY = baseTextY;
37035
+ labelFlush && isHorizontal && 0 === i ? textX = calculateFlushPos(baseTextX, textWidth, range[0], range[range.length - 1]) : labelFlush && isHorizontal && i === domain.length - 1 ? textX = calculateFlushPos(baseTextX, textWidth, range[range.length - 1], range[0]) : align = null !== (_b = labelStyle.textAlign) && void 0 !== _b ? _b : "center", "right" === align ? textX -= textWidth : "center" === align && (textX -= textWidth / 2), labelFlush && isVertical && 0 === i ? textY = calculateFlushPos(baseTextY, textHeight, range[0], range[range.length - 1]) : labelFlush && isVertical && i === domain.length - 1 ? textY = calculateFlushPos(baseTextY, textHeight, range[range.length - 1], range[0]) : baseline = null !== (_c = labelStyle.textBaseline) && void 0 !== _c ? _c : "middle", "bottom" === baseline ? textY -= textHeight : "middle" === baseline && (textY -= textHeight / 2);
37036
+ const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);
37037
+ labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), labelBoundsList.push(bounds);
37038
+ }
37009
37039
  return labelBoundsList;
37010
37040
  };
37011
37041
  const isAxisHorizontal = axisOrientType => ["bottom", "top", "z"].includes(axisOrientType);
@@ -38025,7 +38055,7 @@ function forceItemVisible(sourceItem, items, check, comparator, inverse = !1) {
38025
38055
  }
38026
38056
  }
38027
38057
  const continuousTicks = (scale, op) => {
38028
- var _a, _b;
38058
+ var _a, _b, _c, _d;
38029
38059
  if (!isContinuous(scale.type)) return convertDomainToTickData(scale.domain());
38030
38060
  const range = scale.range(),
38031
38061
  rangeSize = Math.abs(range[range.length - 1] - range[0]);
@@ -38077,23 +38107,25 @@ const continuousTicks = (scale, op) => {
38077
38107
  step = Math.floor(scaleTicks.length * MIN_FONT_SIZE / rangeSize);
38078
38108
  scaleTicks.forEach((tick, index) => {
38079
38109
  index % step != 0 && index !== scaleTicks.length - 1 || samplingScaleTicks.push(tick);
38080
- }), items = getCartesianLabelBounds(scale, samplingScaleTicks, op).map((bounds, i) => ({
38110
+ }), items = null === (_c = getCartesianLabelBounds(scale, samplingScaleTicks, op)) || void 0 === _c ? void 0 : _c.map((bounds, i) => ({
38081
38111
  AABBBounds: bounds,
38082
38112
  value: samplingScaleTicks[i]
38083
38113
  }));
38084
- } else items = getCartesianLabelBounds(scale, scaleTicks, op).map((bounds, i) => ({
38114
+ } else items = null === (_d = getCartesianLabelBounds(scale, scaleTicks, op)) || void 0 === _d ? void 0 : _d.map((bounds, i) => ({
38085
38115
  AABBBounds: bounds,
38086
38116
  value: scaleTicks[i]
38087
38117
  }));
38088
- const firstSourceItem = items[0],
38089
- lastSourceItem = last(items),
38090
- samplingMethod = breakData && breakData() ? methods$1.greedy : methods$1.parity;
38091
- for (; items.length >= 3 && hasOverlap$1(items, labelGap);) items = samplingMethod(items, labelGap);
38092
- const checkFirst = op.labelFirstVisible;
38093
- let checkLast = op.labelLastVisible;
38094
- textIntersect(firstSourceItem, lastSourceItem, labelGap) && items.includes(lastSourceItem) && items.length > 1 && checkFirst && checkLast && (items.splice(items.indexOf(lastSourceItem), 1), checkLast = !1), forceItemVisible(firstSourceItem, items, checkFirst, item => textIntersect(item, firstSourceItem, labelGap)), forceItemVisible(lastSourceItem, items, checkLast, item => textIntersect(item, lastSourceItem, labelGap) || !(!checkFirst || item === firstSourceItem) && textIntersect(item, firstSourceItem, labelGap), !0);
38095
- const ticks = items.map(item => item.value);
38096
- ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), last(ticks) !== last(scaleTicks) && ticks.push(last(scaleTicks))), scaleTicks = ticks;
38118
+ if (items) {
38119
+ const firstSourceItem = items[0],
38120
+ lastSourceItem = last(items),
38121
+ samplingMethod = breakData && breakData() ? methods$1.greedy : methods$1.parity;
38122
+ for (; items.length >= 3 && hasOverlap$1(items, labelGap);) items = samplingMethod(items, labelGap);
38123
+ const checkFirst = op.labelFirstVisible;
38124
+ let checkLast = op.labelLastVisible;
38125
+ textIntersect(firstSourceItem, lastSourceItem, labelGap) && items.includes(lastSourceItem) && items.length > 1 && checkFirst && checkLast && (items.splice(items.indexOf(lastSourceItem), 1), checkLast = !1), forceItemVisible(firstSourceItem, items, checkFirst, item => textIntersect(item, firstSourceItem, labelGap)), forceItemVisible(lastSourceItem, items, checkLast, item => textIntersect(item, lastSourceItem, labelGap) || !(!checkFirst || item === firstSourceItem) && textIntersect(item, firstSourceItem, labelGap), !0);
38126
+ const ticks = items.map(item => item.value);
38127
+ ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), last(ticks) !== last(scaleTicks) && ticks.push(last(scaleTicks))), scaleTicks = ticks;
38128
+ }
38097
38129
  }
38098
38130
  return convertDomainToTickData(scaleTicks);
38099
38131
  };
@@ -38107,7 +38139,10 @@ const methods$1 = {
38107
38139
  }
38108
38140
  };
38109
38141
 
38110
- const getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) => getCartesianLabelBounds(scale, domain, op).map(bounds => isHorizontal ? [bounds.x1, bounds.x2, bounds.width()] : [bounds.y1, bounds.y2, bounds.height()]),
38142
+ const getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) => {
38143
+ const labelBoundsList = getCartesianLabelBounds(scale, domain, op);
38144
+ return labelBoundsList && labelBoundsList.map(bounds => isHorizontal ? [bounds.x1, bounds.x2, bounds.width()] : [bounds.y1, bounds.y2, bounds.height()]);
38145
+ },
38111
38146
  boundsOverlap = (prevBounds, nextBounds, gap = 0) => Math.max(prevBounds[0], nextBounds[0]) - gap / 2 <= Math.min(prevBounds[1], nextBounds[1]) + gap / 2;
38112
38147
  const boundsDistance = (prevBounds, nextBounds) => prevBounds[1] < nextBounds[0] ? nextBounds[0] - prevBounds[1] : nextBounds[1] < prevBounds[0] ? prevBounds[0] - nextBounds[1] : 0;
38113
38148
  const linearDiscreteTicks = (scale, op) => {
@@ -38138,23 +38173,27 @@ const linearDiscreteTicks = (scale, op) => {
38138
38173
  rangeStart = minInArray(range),
38139
38174
  rangeEnd = maxInArray(range);
38140
38175
  if (domain.length <= rangeSize / fontSize) {
38141
- const incrementUnit = (rangeEnd - rangeStart) / domain.length,
38142
- labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal),
38143
- minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2])),
38144
- stepResult = getStep$1(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), !1);
38145
- scaleTicks = scale.stepTicks(stepResult.step), op.labelLastVisible && (stepResult.delCount && (scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount)), scaleTicks.push(domain[domain.length - 1]));
38176
+ const labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal);
38177
+ if (labelBoundsList) {
38178
+ const minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2])),
38179
+ incrementUnit = (rangeEnd - rangeStart) / domain.length,
38180
+ stepResult = getStep$1(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), !1);
38181
+ scaleTicks = scale.stepTicks(stepResult.step), op.labelLastVisible && (stepResult.delCount && (scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount)), scaleTicks.push(domain[domain.length - 1]));
38182
+ }
38146
38183
  } else {
38147
38184
  const tempDomain = [domain[0], domain[Math.floor(domain.length / 2)], domain[domain.length - 1]],
38148
38185
  tempList = getOneDimensionalLabelBounds(scale, tempDomain, op, isHorizontal);
38149
- let maxBounds = null;
38150
- tempList.forEach(current => {
38151
- maxBounds ? maxBounds[2] < current[2] && (maxBounds = current) : maxBounds = current;
38152
- });
38153
- const step = rangeEnd - rangeStart - labelGap > 0 ? Math.ceil(domain.length * (labelGap + maxBounds[2]) / (rangeEnd - rangeStart - labelGap)) : domain.length - 1;
38154
- scaleTicks = scale.stepTicks(step), !op.labelLastVisible || scaleTicks.length && scaleTicks[scaleTicks.length - 1] === domain[domain.length - 1] || (scaleTicks.length && Math.abs(scale.scale(scaleTicks[scaleTicks.length - 1]) - scale.scale(domain[domain.length - 1])) < maxBounds[2] && (scaleTicks = scaleTicks.slice(0, -1)), scaleTicks.push(domain[domain.length - 1]));
38186
+ if (tempList) {
38187
+ let maxBounds = null;
38188
+ tempList.forEach(current => {
38189
+ maxBounds ? maxBounds[2] < current[2] && (maxBounds = current) : maxBounds = current;
38190
+ });
38191
+ const step = rangeEnd - rangeStart - labelGap > 0 ? Math.ceil(domain.length * (labelGap + maxBounds[2]) / (rangeEnd - rangeStart - labelGap)) : domain.length - 1;
38192
+ scaleTicks = scale.stepTicks(step), !op.labelLastVisible || scaleTicks.length && scaleTicks[scaleTicks.length - 1] === domain[domain.length - 1] || (scaleTicks.length && Math.abs(scale.scale(scaleTicks[scaleTicks.length - 1]) - scale.scale(domain[domain.length - 1])) < maxBounds[2] && (scaleTicks = scaleTicks.slice(0, -1)), scaleTicks.push(domain[domain.length - 1]));
38193
+ }
38155
38194
  }
38156
- } else scaleTicks = scale.domain();
38157
- return convertDomainToTickData(scaleTicks);
38195
+ }
38196
+ return isNil$1(scaleTicks) && (scaleTicks = scale.domain()), convertDomainToTickData(scaleTicks);
38158
38197
  };
38159
38198
  const getStep$1 = (domain, labelBoundsList, labelGap, labelLastVisible, defaultStep, areAllBoundsSame) => {
38160
38199
  let resultDelCount = 0,
@@ -41050,13 +41089,6 @@ let DataZoom$1 = class DataZoom extends AbstractComponent {
41050
41089
  end: end
41051
41090
  }));
41052
41091
  }
41053
- eventPosToStagePos(e) {
41054
- var _a, _b;
41055
- return null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventPointTransform(e)) && void 0 !== _b ? _b : {
41056
- x: 0,
41057
- y: 0
41058
- };
41059
- }
41060
41092
  _clearDragEvents() {
41061
41093
  const evtTarget = "browser" === vglobal.env ? vglobal : this.stage,
41062
41094
  triggers = getEndTriggersOfDrag();
@@ -41215,7 +41247,13 @@ let DataZoom$1 = class DataZoom extends AbstractComponent {
41215
41247
  } = this.attribute.startTextStyle;
41216
41248
  if (new Bounds().set(x1, y1, x2, y2).intersects(endTextBounds)) {
41217
41249
  const direction = "bottom" === this.attribute.orient || "right" === this.attribute.orient ? -1 : 1;
41218
- this._isHorizontal ? this._startText.setAttribute("dy", startTextDy + direction * Math.abs(endTextBounds.y1 - endTextBounds.y2)) : this._startText.setAttribute("dx", startTextDx + direction * Math.abs(endTextBounds.x1 - endTextBounds.x2));
41250
+ if (this._isHorizontal) {
41251
+ const boundsYDiff = Math.abs(endTextBounds.y1 - endTextBounds.y2);
41252
+ this._startText.setAttribute("dy", startTextDy + direction * (Number.isFinite(boundsYDiff) ? boundsYDiff : 0));
41253
+ } else {
41254
+ const boundsXDiff = Math.abs(endTextBounds.x1 - endTextBounds.x2);
41255
+ this._startText.setAttribute("dx", startTextDx + direction * (Number.isFinite(boundsXDiff) ? boundsXDiff : 0));
41256
+ }
41219
41257
  } else this._isHorizontal ? this._startText.setAttribute("dy", startTextDy) : this._startText.setAttribute("dx", startTextDx);
41220
41258
  }
41221
41259
  getLayoutAttrFromConfig() {
@@ -46365,8 +46403,7 @@ const delayMap$1 = {
46365
46403
  loadBrushComponent();
46366
46404
  let Brush$1 = class Brush extends AbstractComponent {
46367
46405
  constructor(attributes, options) {
46368
- super((null == options ? void 0 : options.skipDefault) ? attributes : merge$1({}, Brush.defaultAttributes, attributes)), this.name = "brush", this._activeDrawState = !1, this._cacheDrawPoints = [], this._activeMoveState = !1, this._operatingMaskMoveDx = 0, this._operatingMaskMoveDy = 0, this._operatingMaskMoveRangeX = [-1 / 0, 1 / 0], this._operatingMaskMoveRangeY = [-1 / 0, 1 / 0], this._brushMaskAABBBoundsDict = {}, this._firstUpdate = !0, this._onBrushStart = e => {
46369
- if (this._outOfInteractiveRange(e)) return void (this._isEmptyMask() || (this._clearMask(), this._dispatchBrushEvent(IOperateType.brushClear, e)));
46406
+ super((null == options ? void 0 : options.skipDefault) ? attributes : merge$1({}, Brush.defaultAttributes, attributes)), this.name = "brush", this._activeBrushState = !1, this._activeDrawState = !1, this._cacheDrawPoints = [], this._activeMoveState = !1, this._operatingMaskMoveDx = 0, this._operatingMaskMoveDy = 0, this._operatingMaskMoveRangeX = [-1 / 0, 1 / 0], this._operatingMaskMoveRangeY = [-1 / 0, 1 / 0], this._brushMaskAABBBoundsDict = {}, this._firstUpdate = !0, this._onBrushStart = e => {
46370
46407
  const {
46371
46408
  updateTrigger = DEFAULT_BRUSH_ATTRIBUTES.updateTrigger,
46372
46409
  endTrigger = DEFAULT_BRUSH_ATTRIBUTES.endTrigger,
@@ -46394,7 +46431,7 @@ let Brush$1 = class Brush extends AbstractComponent {
46394
46431
  brushMode: brushMode
46395
46432
  } = this.attribute,
46396
46433
  pos = this.eventPosToStagePos(e);
46397
- this._cacheDrawPoints.push(pos), "single" === brushMode && this._clearMask(), this._addBrushMask(), this._dispatchBrushEvent(IOperateType.drawStart, e), 1 === Object.keys(this._brushMaskAABBBoundsDict).length && this._dispatchBrushEvent(IOperateType.brushActive, e);
46434
+ this._cacheDrawPoints.push(pos), "single" === brushMode && this._clearMask(), this._addBrushMask(), this._dispatchBrushEvent(IOperateType.drawStart, e), this._activeBrushState = !1;
46398
46435
  }
46399
46436
  _initMove(e) {
46400
46437
  var _a, _b;
@@ -46424,7 +46461,8 @@ let Brush$1 = class Brush extends AbstractComponent {
46424
46461
  var _a;
46425
46462
  const pos = this.eventPosToStagePos(e),
46426
46463
  {
46427
- brushType: brushType
46464
+ brushType: brushType,
46465
+ sizeThreshold = DEFAULT_SIZE_THRESHOLD
46428
46466
  } = this.attribute,
46429
46467
  cacheLength = this._cacheDrawPoints.length;
46430
46468
  if (cacheLength > 0) {
@@ -46433,7 +46471,16 @@ let Brush$1 = class Brush extends AbstractComponent {
46433
46471
  }
46434
46472
  "polygon" === brushType || cacheLength <= 1 ? this._cacheDrawPoints.push(pos) : this._cacheDrawPoints[cacheLength - 1] = pos;
46435
46473
  const maskPoints = this._computeMaskPoints();
46436
- this._operatingMask.setAttribute("points", maskPoints), this._dispatchBrushEvent(IOperateType.drawing, e);
46474
+ this._operatingMask.setAttribute("points", maskPoints);
46475
+ const {
46476
+ x: x1,
46477
+ y: y1
46478
+ } = this._startPos,
46479
+ {
46480
+ x: x2,
46481
+ y: y2
46482
+ } = this.eventPosToStagePos(e);
46483
+ (Math.abs(x2 - x1) > sizeThreshold || Math.abs(y1 - y2) > sizeThreshold) && (1 !== Object.keys(this._brushMaskAABBBoundsDict).length || this._activeBrushState ? this._dispatchBrushEvent(IOperateType.drawing, e) : (this._activeBrushState = !0, this._dispatchBrushEvent(IOperateType.brushActive, e)));
46437
46484
  }
46438
46485
  _moving(e) {
46439
46486
  const startPos = this._cacheMovePoint,
@@ -46573,9 +46620,6 @@ let Brush$1 = class Brush extends AbstractComponent {
46573
46620
  pos = this.eventPosToStagePos(e);
46574
46621
  return pos.x > maxX || pos.x < minX || pos.y > maxY || pos.y < minY;
46575
46622
  }
46576
- eventPosToStagePos(e) {
46577
- return this.stage.eventPointTransform(e);
46578
- }
46579
46623
  _dispatchBrushEvent(operateType, e) {
46580
46624
  this._dispatchEvent(operateType, {
46581
46625
  operateMask: this._operatingMask,
@@ -46584,7 +46628,7 @@ let Brush$1 = class Brush extends AbstractComponent {
46584
46628
  });
46585
46629
  }
46586
46630
  _clearMask() {
46587
- this._brushMaskAABBBoundsDict = {}, this._container.incrementalClearChild(), this._operatingMask = null;
46631
+ this._brushMaskAABBBoundsDict = {}, this._container.removeAllChild(), this._operatingMask = null;
46588
46632
  }
46589
46633
  _isEmptyMask() {
46590
46634
  return isEmpty(this._brushMaskAABBBoundsDict) || Object.keys(this._brushMaskAABBBoundsDict).every(key => this._brushMaskAABBBoundsDict[key].empty());
@@ -49066,6 +49110,16 @@ const findMarkGraphic = (rootGroup, target) => {
49066
49110
  }
49067
49111
  return null;
49068
49112
  };
49113
+ const getDiffAttributesOfGraphic = (g, newAttrs) => {
49114
+ const prevAttrs = g.getAttributes(true);
49115
+ const diffAttrs = {};
49116
+ Object.keys(newAttrs).forEach(key => {
49117
+ if (prevAttrs[key] !== newAttrs[key]) {
49118
+ diffAttrs[key] = newAttrs[key];
49119
+ }
49120
+ });
49121
+ return diffAttrs;
49122
+ };
49069
49123
 
49070
49124
  let Event$1 = class Event {
49071
49125
  getComposedEventMap() {
@@ -49967,6 +50021,28 @@ const runEncoder = (styles, datum, attrs = {}) => {
49967
50021
  return attrs;
49968
50022
  };
49969
50023
 
50024
+ function toRenderMode(mode) {
50025
+ switch (mode) {
50026
+ case RenderModeEnum['desktop-browser']:
50027
+ case RenderModeEnum['mobile-browser']:
50028
+ return 'browser';
50029
+ case RenderModeEnum.node:
50030
+ case RenderModeEnum.worker:
50031
+ return 'node';
50032
+ case RenderModeEnum.miniApp:
50033
+ case RenderModeEnum['desktop-miniApp']:
50034
+ return 'feishu';
50035
+ case RenderModeEnum.lynx:
50036
+ return 'lynx';
50037
+ case RenderModeEnum.wx:
50038
+ return 'wx';
50039
+ case RenderModeEnum.tt:
50040
+ return 'tt';
50041
+ case RenderModeEnum.harmony:
50042
+ return 'harmony';
50043
+ }
50044
+ return 'browser';
50045
+ }
49970
50046
  function traverseGroupMark(group, apply, filter, leafFirst, stop) {
49971
50047
  const traverse = (mark) => {
49972
50048
  if (!leafFirst) {
@@ -50156,7 +50232,8 @@ class Compiler {
50156
50232
  if (this._stage) {
50157
50233
  return;
50158
50234
  }
50159
- const { autoRefreshDpr, dpr, mode, gestureConfig, interactive, clickInterval, autoPreventDefault, background } = this._option;
50235
+ const { autoRefreshDpr, dpr, mode, modeParams, gestureConfig, interactive, clickInterval, autoPreventDefault, background } = this._option;
50236
+ vglobal.setEnv(toRenderMode(mode), modeParams !== null && modeParams !== void 0 ? modeParams : {});
50160
50237
  this._stage =
50161
50238
  (_a = this._option.stage) !== null && _a !== void 0 ? _a : new Stage({
50162
50239
  background,
@@ -50167,7 +50244,11 @@ class Compiler {
50167
50244
  dpr,
50168
50245
  viewBox: this._option.viewBox,
50169
50246
  canvasControled: this._option.canvasControled,
50170
- beforeRender: this._option.beforeRender,
50247
+ beforeRender: (stage) => {
50248
+ var _a, _b, _c;
50249
+ (_a = this._compileChart) === null || _a === void 0 ? void 0 : _a.onBeforeRender();
50250
+ (_c = (_b = this._option).beforeRender) === null || _c === void 0 ? void 0 : _c.call(_b, stage);
50251
+ },
50171
50252
  afterRender: this._option.afterRender,
50172
50253
  disableDirtyBounds: true,
50173
50254
  autoRender: true,
@@ -51014,6 +51095,8 @@ class BaseModel extends CompilableBase {
51014
51095
  }
51015
51096
  onEvaluateEnd(ctx) {
51016
51097
  }
51098
+ onBeforeRender() {
51099
+ }
51017
51100
  onDataUpdate() {
51018
51101
  }
51019
51102
  beforeRelease() {
@@ -53163,20 +53246,24 @@ class BaseMark extends GrammarItem {
53163
53246
  return this._animationConfig;
53164
53247
  }
53165
53248
  setAnimationConfig(config) {
53166
- const animationConfig = Object.assign({}, config);
53167
- Object.keys(animationConfig).forEach(key => {
53168
- const value = animationConfig[key];
53249
+ const defaultPrams = this.type === 'group' ? { selfOnly: true } : {};
53250
+ const animationConfig = {};
53251
+ Object.keys(config).forEach(key => {
53252
+ const value = config[key];
53169
53253
  if (isArray$1(value)) {
53170
- value.forEach(item => {
53254
+ animationConfig[key] = value.map(item => {
53171
53255
  var _a;
53172
53256
  const options = (_a = item.options) !== null && _a !== void 0 ? _a : {};
53173
- item.options = (...args) => {
53174
- var _a, _b;
53175
- const _options = typeof options === 'function' ? options(...args) : options;
53176
- return Object.assign(Object.assign({}, _options), { layoutRect: (_b = (_a = this.model).getLayoutRect) === null || _b === void 0 ? void 0 : _b.call(_a) });
53177
- };
53257
+ return Object.assign(Object.assign(Object.assign({}, defaultPrams), item), { options: (...args) => {
53258
+ var _a, _b;
53259
+ const _options = typeof options === 'function' ? options(...args) : options;
53260
+ return Object.assign(Object.assign({}, _options), { layoutRect: (_b = (_a = this.model).getLayoutRect) === null || _b === void 0 ? void 0 : _b.call(_a) });
53261
+ } });
53178
53262
  });
53179
53263
  }
53264
+ else {
53265
+ animationConfig[key] = Object.assign(Object.assign({}, defaultPrams), config[key]);
53266
+ }
53180
53267
  });
53181
53268
  this._animationConfig = animationConfig;
53182
53269
  }
@@ -53804,6 +53891,7 @@ class BaseMark extends GrammarItem {
53804
53891
  this._dataByGroup = groupData(data, this._groupKeyGetter);
53805
53892
  }
53806
53893
  createAnimationStateList(type, animationConfig) {
53894
+ var _a;
53807
53895
  let config = animationConfig[type];
53808
53896
  if (config && Array.isArray(config)) {
53809
53897
  config = config.length === 1 ? config[0] : config;
@@ -53814,7 +53902,8 @@ class BaseMark extends GrammarItem {
53814
53902
  return (Object.assign(Object.assign({}, item), { priority: (_a = item.priority) !== null && _a !== void 0 ? _a : Infinity }));
53815
53903
  });
53816
53904
  }
53817
- return config;
53905
+ return config
53906
+ ? Object.assign(Object.assign({}, config), { priority: type === 'normal' ? (_a = config.priority) !== null && _a !== void 0 ? _a : Infinity : config.priority }) : config;
53818
53907
  }
53819
53908
  tryRunMorphing(graphics) {
53820
53909
  if (this._lastMark) {
@@ -53898,13 +53987,21 @@ class BaseMark extends GrammarItem {
53898
53987
  this._product.applyAnimationState(['normal'], [normalConfig]);
53899
53988
  }
53900
53989
  }
53990
+ _setAnimationState(g) {
53991
+ const customizedState = this._aniamtionStateCallback ? this._aniamtionStateCallback(g) : undefined;
53992
+ g.context.animationState = customizedState !== null && customizedState !== void 0 ? customizedState : g.context.diffState;
53993
+ if (g.context.animationState === DiffState.exit) {
53994
+ g.context.reusing = true;
53995
+ g.animates && g.animates.forEach((a) => a.stop());
53996
+ }
53997
+ }
53901
53998
  _runJoin(data) {
53902
53999
  const newGroupedData = this._getDataByKey(data);
53903
54000
  const prevGroupedData = this._prevDataByKey;
53904
- const newGraphics = [];
54001
+ const allGraphics = [];
53905
54002
  const enterGraphics = new Set(this._graphics.filter(g => g.context.diffState === DiffState.enter));
53906
54003
  const callback = (key, newData, prevData) => {
53907
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
54004
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
53908
54005
  let g;
53909
54006
  let diffState;
53910
54007
  if (isNil$1(newData)) {
@@ -53922,23 +54019,20 @@ class BaseMark extends GrammarItem {
53922
54019
  }
53923
54020
  diffState = DiffState.enter;
53924
54021
  g.isExiting = false;
53925
- if (((_a = g.context) === null || _a === void 0 ? void 0 : _a.diffState) === DiffState.exit) {
53926
- g.context.reusing = true;
53927
- g.animates && g.animates.forEach((a) => a.stop());
53928
- }
53929
54022
  this._graphicMap.set(key, g);
53930
- newGraphics.push(g);
54023
+ allGraphics.push(g);
53931
54024
  }
53932
54025
  else {
53933
54026
  g = this._graphicMap.get(key);
53934
54027
  if (g) {
53935
54028
  diffState = DiffState.update;
53936
- newGraphics.push(g);
54029
+ allGraphics.push(g);
53937
54030
  }
53938
54031
  }
53939
54032
  if (g) {
53940
- g.context = Object.assign(Object.assign({}, this._getCommonContext()), { diffState, reusing: (_b = g.context) === null || _b === void 0 ? void 0 : _b.reusing, originalFieldX: (_c = g.context) === null || _c === void 0 ? void 0 : _c.originalFieldX, originalFieldY: (_d = g.context) === null || _d === void 0 ? void 0 : _d.originalFieldY, fieldX: (_e = g.context) === null || _e === void 0 ? void 0 : _e.fieldX, fieldY: (_f = g.context) === null || _f === void 0 ? void 0 : _f.fieldY, animationState: diffState, data: newData !== null && newData !== void 0 ? newData : (_g = g.context) === null || _g === void 0 ? void 0 : _g.data, uniqueKey: key, key: newData ? this._keyGetter(newData[0]) : (_h = g.context) === null || _h === void 0 ? void 0 : _h.key, groupKey: newData ? this._groupKeyGetter(newData[0]) : (_j = g.context) === null || _j === void 0 ? void 0 : _j.groupKey, indexKey: '__VCHART_DEFAULT_DATA_INDEX', stateAnimateConfig: (_k = this.getAnimationConfig()) === null || _k === void 0 ? void 0 : _k.state });
53941
54033
  enterGraphics.delete(g);
54034
+ g.context = Object.assign(Object.assign({}, this._getCommonContext()), { diffState, reusing: (_a = g.context) === null || _a === void 0 ? void 0 : _a.reusing, originalFieldX: (_b = g.context) === null || _b === void 0 ? void 0 : _b.originalFieldX, originalFieldY: (_c = g.context) === null || _c === void 0 ? void 0 : _c.originalFieldY, fieldX: (_d = g.context) === null || _d === void 0 ? void 0 : _d.fieldX, fieldY: (_e = g.context) === null || _e === void 0 ? void 0 : _e.fieldY, data: newData !== null && newData !== void 0 ? newData : (_f = g.context) === null || _f === void 0 ? void 0 : _f.data, uniqueKey: key, key: newData ? this._keyGetter(newData[0]) : (_g = g.context) === null || _g === void 0 ? void 0 : _g.key, groupKey: newData ? this._groupKeyGetter(newData[0]) : (_h = g.context) === null || _h === void 0 ? void 0 : _h.groupKey, indexKey: '__VCHART_DEFAULT_DATA_INDEX', stateAnimateConfig: (_j = this.getAnimationConfig()) === null || _j === void 0 ? void 0 : _j.state });
54035
+ this._setAnimationState(g);
53942
54036
  }
53943
54037
  return g;
53944
54038
  };
@@ -53976,13 +54070,13 @@ class BaseMark extends GrammarItem {
53976
54070
  }
53977
54071
  g.release();
53978
54072
  });
53979
- const graphicCount = newGraphics.length;
53980
- newGraphics.forEach((g, index) => {
54073
+ const graphicCount = allGraphics.length;
54074
+ allGraphics.forEach((g, index) => {
53981
54075
  g.context.graphicCount = graphicCount;
53982
54076
  g.context.graphicIndex = index;
53983
54077
  });
53984
54078
  this._dataByKey = newGroupedData;
53985
- this._graphics = newGraphics;
54079
+ this._graphics = allGraphics;
53986
54080
  this.needClear = true;
53987
54081
  }
53988
54082
  _runEncoderOfGraphic(styles, g, attrs = {}) {
@@ -54065,13 +54159,7 @@ class BaseMark extends GrammarItem {
54065
54159
  }
54066
54160
  }
54067
54161
  else {
54068
- const prevAttrs = g.getAttributes(true);
54069
- const diffAttrs = {};
54070
- Object.keys(finalAttrs).forEach(key => {
54071
- if (prevAttrs[key] !== finalAttrs[key]) {
54072
- diffAttrs[key] = finalAttrs[key];
54073
- }
54074
- });
54162
+ const diffAttrs = getDiffAttributesOfGraphic(g, finalAttrs);
54075
54163
  g.context.diffAttrs = diffAttrs;
54076
54164
  if (g.context.reusing) {
54077
54165
  g.context.lastAttrs = g.attribute;
@@ -54240,24 +54328,25 @@ class BaseMark extends GrammarItem {
54240
54328
  }
54241
54329
  };
54242
54330
  this._graphicMap.forEach((g, key) => {
54243
- if (g.context.diffState === DiffState.exit && !g.isExiting) {
54244
- if (this.hasAnimationByState('exit')) {
54245
- g.isExiting = true;
54246
- const animationConfig = this.getAnimationConfig();
54247
- if (animationConfig.exit && animationConfig.exit.length) {
54248
- const exitConfigList = animationConfig.exit.map((item, index) => ({
54249
- name: `exit_${index}`,
54250
- animation: Object.assign(Object.assign({}, item), { customParameters: g.context })
54251
- }));
54252
- g.applyAnimationState(['exit'], [exitConfigList.length === 1 ? exitConfigList[0] : exitConfigList], () => {
54253
- doRemove(g, key);
54254
- });
54255
- }
54256
- }
54257
- else {
54258
- doRemove(g, key);
54331
+ if (g.context.diffState !== DiffState.exit || g.isExiting) {
54332
+ return;
54333
+ }
54334
+ if (g.context.animationState === DiffState.exit && this.hasAnimationByState('exit')) {
54335
+ g.isExiting = true;
54336
+ const animationConfig = this.getAnimationConfig();
54337
+ if (animationConfig.exit && animationConfig.exit.length) {
54338
+ const exitConfigList = animationConfig.exit.map((item, index) => ({
54339
+ name: `exit_${index}`,
54340
+ animation: Object.assign(Object.assign({}, item), { customParameters: g.context })
54341
+ }));
54342
+ g.applyAnimationState(['exit'], [exitConfigList.length === 1 ? exitConfigList[0] : exitConfigList], () => {
54343
+ doRemove(g, key);
54344
+ });
54259
54345
  }
54260
54346
  }
54347
+ else {
54348
+ doRemove(g, key);
54349
+ }
54261
54350
  });
54262
54351
  }
54263
54352
  isProgressive() {
@@ -54403,11 +54492,7 @@ class BaseMark extends GrammarItem {
54403
54492
  }
54404
54493
  }
54405
54494
  updateAnimationState(callback) {
54406
- if (this._graphics && this._graphics.length) {
54407
- this._graphics.forEach(g => {
54408
- g.context.animationState = callback(g);
54409
- });
54410
- }
54495
+ this._aniamtionStateCallback = callback;
54411
54496
  }
54412
54497
  hasAnimationByState(state) {
54413
54498
  if (!state || !this._animationConfig || !this._animationConfig[state]) {
@@ -54427,6 +54512,30 @@ class BaseMark extends GrammarItem {
54427
54512
  }
54428
54513
  }
54429
54514
 
54515
+ var MarkTypeEnum;
54516
+ (function (MarkTypeEnum) {
54517
+ MarkTypeEnum["group"] = "group";
54518
+ MarkTypeEnum["symbol"] = "symbol";
54519
+ MarkTypeEnum["rule"] = "rule";
54520
+ MarkTypeEnum["line"] = "line";
54521
+ MarkTypeEnum["text"] = "text";
54522
+ MarkTypeEnum["rect"] = "rect";
54523
+ MarkTypeEnum["image"] = "image";
54524
+ MarkTypeEnum["path"] = "path";
54525
+ MarkTypeEnum["area"] = "area";
54526
+ MarkTypeEnum["arc"] = "arc";
54527
+ MarkTypeEnum["polygon"] = "polygon";
54528
+ MarkTypeEnum["boxPlot"] = "boxPlot";
54529
+ MarkTypeEnum["linkPath"] = "linkPath";
54530
+ MarkTypeEnum["cell"] = "cell";
54531
+ MarkTypeEnum["ripple"] = "ripple";
54532
+ MarkTypeEnum["liquid"] = "liquid";
54533
+ MarkTypeEnum["component"] = "component";
54534
+ MarkTypeEnum["dataLabel"] = "dataLabel";
54535
+ MarkTypeEnum["label"] = "label";
54536
+ MarkTypeEnum["pictogram"] = "pictogram";
54537
+ })(MarkTypeEnum || (MarkTypeEnum = {}));
54538
+
54430
54539
  class GroupMark extends BaseMark {
54431
54540
  constructor() {
54432
54541
  super(...arguments);
@@ -54489,13 +54598,29 @@ class GroupMark extends BaseMark {
54489
54598
  return [this._product];
54490
54599
  }
54491
54600
  renderInner() {
54492
- var _a;
54601
+ var _a, _b;
54493
54602
  if (!this._product) {
54494
54603
  return;
54495
54604
  }
54496
54605
  const style = (_a = this._simpleStyle) !== null && _a !== void 0 ? _a : this.getAttributesOfState({});
54497
- this._product.context = Object.assign(Object.assign({}, this._product.context), this._getCommonContext());
54498
- this._product.setAttributes(this._getAttrsFromConfig(style));
54606
+ const prevState = (_b = this._product.context) === null || _b === void 0 ? void 0 : _b.diffState;
54607
+ this._product.context = Object.assign(Object.assign(Object.assign({}, this._product.context), this._getCommonContext()), { diffState: prevState ? DiffState.update : DiffState.enter });
54608
+ this._setAnimationState(this._product);
54609
+ const newAttrs = this._getAttrsFromConfig(style);
54610
+ if (this._product.context.diffState === DiffState.update) {
54611
+ const hasAnimation = this.hasAnimation();
54612
+ const diffAttrs = getDiffAttributesOfGraphic(this._product, newAttrs);
54613
+ this._product.context.diffAttrs = diffAttrs;
54614
+ if (!this.hasAnimationByState(this._product.context.animationState)) {
54615
+ hasAnimation ? this._product.setAttributesAndPreventAnimate(diffAttrs) : this._product.setAttributes(diffAttrs);
54616
+ }
54617
+ if (hasAnimation) {
54618
+ this._product.setFinalAttributes(newAttrs);
54619
+ }
54620
+ }
54621
+ else {
54622
+ this._product.setAttributes(newAttrs);
54623
+ }
54499
54624
  this.needClear = true;
54500
54625
  }
54501
54626
  render() {
@@ -54509,11 +54634,7 @@ class GroupMark extends BaseMark {
54509
54634
  });
54510
54635
  }
54511
54636
  updateAnimationState(callback) {
54512
- this.getGraphics().forEach(g => {
54513
- if (g) {
54514
- g.context = Object.assign(Object.assign({}, g.context), { animationState: callback(g) });
54515
- }
54516
- });
54637
+ super.updateAnimationState(callback);
54517
54638
  this.getMarks().forEach(mark => {
54518
54639
  mark.updateAnimationState(callback);
54519
54640
  });
@@ -55809,7 +55930,7 @@ class VChart {
55809
55930
  var _a;
55810
55931
  const diffState = (_a = graphic.context) === null || _a === void 0 ? void 0 : _a.diffState;
55811
55932
  if (initial) {
55812
- return diffState === 'exit' ? undefined : AnimationStateEnum.appear;
55933
+ return diffState === 'exit' ? AnimationStateEnum.none : AnimationStateEnum.appear;
55813
55934
  }
55814
55935
  return diffState;
55815
55936
  };
@@ -55898,11 +56019,11 @@ class VChart {
55898
56019
  }
55899
56020
  if (this._chart) {
55900
56021
  this._chart.updateData(id, data, true, parserOptions);
55901
- this._compiler.render();
55902
56022
  if (userUpdateOptions === null || userUpdateOptions === void 0 ? void 0 : userUpdateOptions.reAnimate) {
55903
56023
  this.stopAnimation();
55904
56024
  this._updateAnimateState(true);
55905
56025
  }
56026
+ this._compiler.render();
55906
56027
  return this;
55907
56028
  }
55908
56029
  this._spec.data = array(this._spec.data);
@@ -55913,11 +56034,11 @@ class VChart {
55913
56034
  if (this._chart) {
55914
56035
  this._chart.updateFullData(data);
55915
56036
  if (reRender) {
55916
- this._compiler.render();
55917
56037
  if (userUpdateOptions === null || userUpdateOptions === void 0 ? void 0 : userUpdateOptions.reAnimate) {
55918
56038
  this.stopAnimation();
55919
56039
  this._updateAnimateState(true);
55920
56040
  }
56041
+ this._compiler.render();
55921
56042
  }
55922
56043
  return this;
55923
56044
  }
@@ -56724,7 +56845,7 @@ const lookup = (data, opt) => {
56724
56845
  });
56725
56846
  };
56726
56847
 
56727
- const version = "2.0.0-alpha.4";
56848
+ const version = "2.0.1-alpha.0";
56728
56849
 
56729
56850
  const addVChartProperty = (data, op) => {
56730
56851
  const context = op.beforeCall();
@@ -58537,14 +58658,11 @@ class BaseSeries extends BaseModel {
58537
58658
  }
58538
58659
  if (isNil$1(dataView)) {
58539
58660
  m.setData(this._data);
58540
- m.setSkipBeforeLayouted(true);
58541
58661
  }
58542
58662
  else if (dataView !== false) {
58543
58663
  m.setDataView(dataView);
58544
58664
  }
58545
- if (isBoolean$1(skipBeforeLayouted)) {
58546
- m.setSkipBeforeLayouted(skipBeforeLayouted);
58547
- }
58665
+ m.setSkipBeforeLayouted(skipBeforeLayouted !== false);
58548
58666
  if (!isNil$1(groupKey)) {
58549
58667
  m.setGroupKey(groupKey);
58550
58668
  }
@@ -59769,30 +59887,6 @@ class LineLikeSeriesMixin {
59769
59887
 
59770
59888
  const lineSeriesMark = Object.assign(Object.assign({}, baseSeriesMark), lineLikeSeriesMark);
59771
59889
 
59772
- var MarkTypeEnum;
59773
- (function (MarkTypeEnum) {
59774
- MarkTypeEnum["group"] = "group";
59775
- MarkTypeEnum["symbol"] = "symbol";
59776
- MarkTypeEnum["rule"] = "rule";
59777
- MarkTypeEnum["line"] = "line";
59778
- MarkTypeEnum["text"] = "text";
59779
- MarkTypeEnum["rect"] = "rect";
59780
- MarkTypeEnum["image"] = "image";
59781
- MarkTypeEnum["path"] = "path";
59782
- MarkTypeEnum["area"] = "area";
59783
- MarkTypeEnum["arc"] = "arc";
59784
- MarkTypeEnum["polygon"] = "polygon";
59785
- MarkTypeEnum["boxPlot"] = "boxPlot";
59786
- MarkTypeEnum["linkPath"] = "linkPath";
59787
- MarkTypeEnum["cell"] = "cell";
59788
- MarkTypeEnum["ripple"] = "ripple";
59789
- MarkTypeEnum["liquid"] = "liquid";
59790
- MarkTypeEnum["component"] = "component";
59791
- MarkTypeEnum["dataLabel"] = "dataLabel";
59792
- MarkTypeEnum["label"] = "label";
59793
- MarkTypeEnum["pictogram"] = "pictogram";
59794
- })(MarkTypeEnum || (MarkTypeEnum = {}));
59795
-
59796
59890
  const isStopsEqual = (prev, next) => {
59797
59891
  var _a, _b;
59798
59892
  if (prev === next) {
@@ -60669,7 +60763,7 @@ function getDatumByValue(data, value, startField, endField) {
60669
60763
  const getCartesianCrosshairTheme = (getTheme, chartSpec) => {
60670
60764
  var _a, _b;
60671
60765
  const axes = array((_a = chartSpec.axes) !== null && _a !== void 0 ? _a : []);
60672
- const { bandField, linearField, xField, yField } = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, getTheme)) !== null && _b !== void 0 ? _b : {};
60766
+ const { bandField, linearField, xField, yField, trigger, triggerOff } = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, getTheme)) !== null && _b !== void 0 ? _b : {};
60673
60767
  const xAxis = axes.find(axis => isXAxis(axis.orient));
60674
60768
  let newXField;
60675
60769
  if (isValid$1(xAxis)) {
@@ -60688,13 +60782,15 @@ const getCartesianCrosshairTheme = (getTheme, chartSpec) => {
60688
60782
  }
60689
60783
  return {
60690
60784
  xField: newXField,
60691
- yField: newYField
60785
+ yField: newYField,
60786
+ trigger,
60787
+ triggerOff
60692
60788
  };
60693
60789
  };
60694
60790
  const getPolarCrosshairTheme = (getTheme, chartSpec) => {
60695
60791
  var _a, _b;
60696
60792
  const axes = array((_a = chartSpec.axes) !== null && _a !== void 0 ? _a : []);
60697
- const { bandField, linearField, categoryField, valueField } = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, getTheme)) !== null && _b !== void 0 ? _b : {};
60793
+ const { bandField, linearField, categoryField, valueField, trigger, triggerOff } = (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, getTheme)) !== null && _b !== void 0 ? _b : {};
60698
60794
  const angleAxis = axes.find(axis => axis.orient === 'angle');
60699
60795
  let newAngleField;
60700
60796
  if (isValid$1(angleAxis)) {
@@ -60713,7 +60809,9 @@ const getPolarCrosshairTheme = (getTheme, chartSpec) => {
60713
60809
  }
60714
60810
  return {
60715
60811
  categoryField: newAngleField,
60716
- valueField: newRadiusField
60812
+ valueField: newRadiusField,
60813
+ trigger,
60814
+ triggerOff
60717
60815
  };
60718
60816
  };
60719
60817
 
@@ -64871,6 +64969,10 @@ class BaseChart extends CompilableBase {
64871
64969
  const elements = [...this._components, ...this._regions, ...this._series];
64872
64970
  elements.forEach(element => element.onEvaluateEnd(option));
64873
64971
  }
64972
+ onBeforeRender() {
64973
+ const elements = [...this._components, ...this._regions, ...this._series];
64974
+ elements.forEach(element => element.onBeforeRender());
64975
+ }
64874
64976
  getLayoutElements() {
64875
64977
  return this.getAllModels()
64876
64978
  .map(i => i.layout)
@@ -66229,9 +66331,11 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
66229
66331
  layoutStartPoint = { x: 0, y: 0 };
66230
66332
  }
66231
66333
  Object.keys(stateByField).forEach(field => {
66334
+ var _a, _b, _c, _d, _e, _f;
66232
66335
  const { currentValue, cacheInfo, labelsComp, attributes, coordKey } = stateByField[field];
66233
66336
  let axis = null;
66234
66337
  let coord = 0;
66338
+ let axisLabel = null;
66235
66339
  if (currentValue.size) {
66236
66340
  const item = Array.from(currentValue.values())[0];
66237
66341
  coord =
@@ -66239,6 +66343,8 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
66239
66343
  item.axis.getLayoutStartPoint()[coordKey] -
66240
66344
  layoutStartPoint[coordKey];
66241
66345
  axis = item.axis;
66346
+ axisLabel = (_f = (_e = (_d = (_c = (_b = (_a = axis
66347
+ .getVRenderComponents()[0]) === null || _a === void 0 ? void 0 : _a.children[0]) === null || _b === void 0 ? void 0 : _b.children[0]) === null || _c === void 0 ? void 0 : _c.children[0]) === null || _d === void 0 ? void 0 : _d.getChildByName('axis-label-container')) === null || _e === void 0 ? void 0 : _e.getChildByName('axis-label-container-layer-0')) === null || _f === void 0 ? void 0 : _f.children[0];
66242
66348
  }
66243
66349
  const isVisible = !!currentValue.size && Number.isFinite(coord) && !Number.isNaN(coord);
66244
66350
  const useCache = enableRemain && !isVisible && isValid$1(cacheInfo);
@@ -66256,7 +66362,8 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
66256
66362
  }, {})
66257
66363
  : null,
66258
66364
  visible: isVisible,
66259
- axis
66365
+ axis,
66366
+ axisLabel: axisLabel
66260
66367
  };
66261
66368
  if (newCacheInfo) {
66262
66369
  newCacheInfo._isCache = useCache;
@@ -66265,7 +66372,7 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
66265
66372
  let offsetSize = 0;
66266
66373
  if (attributes) {
66267
66374
  currentValue.forEach(({ axis, datum: value = '' }) => {
66268
- var _a;
66375
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
66269
66376
  let niceLabelFormatter = null;
66270
66377
  const scale = axis.getScale();
66271
66378
  if (isDiscrete(scale.type)) {
@@ -66294,36 +66401,37 @@ const layoutByValue$1 = (stateByField, series, layoutStartPoint, enableRemain =
66294
66401
  if (newCacheInfo && ((_a = attributes.label) === null || _a === void 0 ? void 0 : _a.visible) && !useCache) {
66295
66402
  const labelOffset = getAxisLabelOffset(axis.getSpec());
66296
66403
  const axisOrient = axis.getOrient();
66404
+ const syncAxisLabelAngle = (_b = attributes.label) === null || _b === void 0 ? void 0 : _b.syncAxisLabelAngle;
66297
66405
  if (newCacheInfo.labels[axisOrient]) {
66298
66406
  newCacheInfo.labels[axisOrient].visible = true;
66299
66407
  newCacheInfo.labels[axisOrient].text = value;
66300
66408
  if (axisOrient === 'left') {
66301
66409
  newCacheInfo.labels[axisOrient].dx = -labelOffset;
66302
66410
  newCacheInfo.labelsTextStyle[axisOrient] = {
66303
- textAlign: 'right',
66304
- textBaseline: 'middle'
66411
+ textAlign: syncAxisLabelAngle && axisLabel ? (_c = axisLabel.attribute.textAlign) !== null && _c !== void 0 ? _c : 'right' : 'right',
66412
+ textBaseline: syncAxisLabelAngle && axisLabel ? (_d = axisLabel.attribute.textBaseline) !== null && _d !== void 0 ? _d : 'middle' : 'middle'
66305
66413
  };
66306
66414
  }
66307
66415
  else if (axisOrient === 'right') {
66308
66416
  newCacheInfo.labels[axisOrient].dx = labelOffset;
66309
66417
  newCacheInfo.labelsTextStyle[axisOrient] = {
66310
- textAlign: 'left',
66311
- textBaseline: 'middle'
66418
+ textAlign: syncAxisLabelAngle && axisLabel ? (_e = axisLabel.attribute.textAlign) !== null && _e !== void 0 ? _e : 'left' : 'left',
66419
+ textBaseline: syncAxisLabelAngle && axisLabel ? (_f = axisLabel.attribute.textBaseline) !== null && _f !== void 0 ? _f : 'middle' : 'middle'
66312
66420
  };
66313
66421
  }
66314
66422
  else if (axisOrient === 'top') {
66315
66423
  newCacheInfo.labels[axisOrient].y = 0;
66316
66424
  newCacheInfo.labels[axisOrient].dy = -labelOffset;
66317
66425
  newCacheInfo.labelsTextStyle[axisOrient] = {
66318
- textAlign: 'center',
66319
- textBaseline: 'bottom'
66426
+ textAlign: syncAxisLabelAngle && axisLabel ? (_g = axisLabel.attribute.textAlign) !== null && _g !== void 0 ? _g : 'center' : 'center',
66427
+ textBaseline: syncAxisLabelAngle && axisLabel ? (_h = axisLabel.attribute.textBaseline) !== null && _h !== void 0 ? _h : 'bottom' : 'bottom'
66320
66428
  };
66321
66429
  }
66322
66430
  else if (axisOrient === 'bottom') {
66323
66431
  newCacheInfo.labels[axisOrient].dy = labelOffset;
66324
66432
  newCacheInfo.labelsTextStyle[axisOrient] = {
66325
- textAlign: 'center',
66326
- textBaseline: 'top'
66433
+ textAlign: syncAxisLabelAngle && axisLabel ? (_j = axisLabel.attribute.textAlign) !== null && _j !== void 0 ? _j : 'center' : 'center',
66434
+ textBaseline: syncAxisLabelAngle && axisLabel ? (_k = axisLabel.attribute.textBaseline) !== null && _k !== void 0 ? _k : 'top' : 'top'
66327
66435
  };
66328
66436
  }
66329
66437
  newCacheInfo.labels[axisOrient].defaultFormatter = niceLabelFormatter;
@@ -67473,6 +67581,26 @@ class BarSeries extends CartesianSeries {
67473
67581
  this._barMarkType = "rect";
67474
67582
  this.transformerConstructor = BarSeriesSpecTransformer;
67475
67583
  this._bandPosition = 0;
67584
+ this._getLinearBarRange = (start, end) => {
67585
+ let [x, x1] = [start, end].sort((a, b) => a - b);
67586
+ const realBarWidth = x1 - x;
67587
+ if (this._spec.barGap) {
67588
+ const halfBarGap = this._spec.barGap * 0.5;
67589
+ const tempX = x + halfBarGap;
67590
+ const tempX1 = x1 - halfBarGap;
67591
+ x = tempX;
67592
+ x1 = tempX1;
67593
+ }
67594
+ const curBarWidth = x1 - x;
67595
+ const barMinWidth = getActualNumValue(this._spec.barMinWidth || 2, realBarWidth);
67596
+ if (curBarWidth < barMinWidth) {
67597
+ const widthDiff = barMinWidth - curBarWidth;
67598
+ const halfWidthDiff = widthDiff / 2;
67599
+ x -= halfWidthDiff;
67600
+ x1 += halfWidthDiff;
67601
+ }
67602
+ return [x, x1];
67603
+ };
67476
67604
  this._getBarXStart = (datum, scale, useWholeRange) => {
67477
67605
  if (this._shouldDoPreCalculate()) {
67478
67606
  this._calculateStackRectPosition(false);
@@ -67490,6 +67618,11 @@ class BarSeries extends CartesianSeries {
67490
67618
  }
67491
67619
  return valueInScaleRange(this._dataToPosX1(datum), scale, useWholeRange);
67492
67620
  };
67621
+ this._getLinearBarXRange = (datum, scale, useWholeRange) => {
67622
+ const x = valueInScaleRange(this._dataToPosX(datum), scale, useWholeRange);
67623
+ const x1 = valueInScaleRange(this._dataToPosX1(datum), scale, useWholeRange);
67624
+ return this._getLinearBarRange(x, x1);
67625
+ };
67493
67626
  this._getBarYStart = (datum, scale) => {
67494
67627
  if (this._shouldDoPreCalculate()) {
67495
67628
  this._calculateStackRectPosition(true);
@@ -67507,6 +67640,11 @@ class BarSeries extends CartesianSeries {
67507
67640
  }
67508
67641
  return valueInScaleRange(this._dataToPosY1(datum), scale);
67509
67642
  };
67643
+ this._getLinearBarYRange = (datum, scale, useWholeRange) => {
67644
+ const y = valueInScaleRange(this._dataToPosY(datum), scale, useWholeRange);
67645
+ const y1 = valueInScaleRange(this._dataToPosY1(datum), scale, useWholeRange);
67646
+ return this._getLinearBarRange(y, y1);
67647
+ };
67510
67648
  this._getBarBackgroundXStart = (scale) => {
67511
67649
  const range = scale.range();
67512
67650
  const min = Math.min(range[0], range[range.length - 1]);
@@ -67860,8 +67998,8 @@ class BarSeries extends CartesianSeries {
67860
67998
  if (this.direction === "horizontal") {
67861
67999
  const yChannels = isValid$1(this._fieldY2)
67862
68000
  ? {
67863
- y: (datum) => valueInScaleRange(this._dataToPosY(datum), yScale, true),
67864
- y1: (datum) => valueInScaleRange(this._dataToPosY1(datum), yScale, true)
68001
+ y: (datum) => this._getLinearBarYRange(datum, yScale, true)[0],
68002
+ y1: (datum) => this._getLinearBarYRange(datum, yScale, true)[1]
67865
68003
  }
67866
68004
  : {
67867
68005
  y: (datum) => valueInScaleRange(this._dataToPosY(datum) - this._getBarWidth(this._yAxisHelper) / 2, yScale, true),
@@ -67873,8 +68011,8 @@ class BarSeries extends CartesianSeries {
67873
68011
  else {
67874
68012
  const xChannels = isValid$1(this._fieldX2)
67875
68013
  ? {
67876
- x: (datum) => valueInScaleRange(this._dataToPosX(datum), xScale, true),
67877
- x1: (datum) => valueInScaleRange(this._dataToPosX1(datum), xScale, true)
68014
+ x: (datum) => this._getLinearBarXRange(datum, xScale, true)[0],
68015
+ x1: (datum) => this._getLinearBarXRange(datum, xScale, true)[1]
67878
68016
  }
67879
68017
  : {
67880
68018
  x: (datum) => valueInScaleRange(this._dataToPosX(datum) - this._getBarWidth(this._xAxisHelper) / 2, xScale, true),
@@ -69584,8 +69722,7 @@ class MapSeries extends GeoSeries {
69584
69722
  initMark() {
69585
69723
  this._pathMark = this._createMark(MapSeries.mark.area, {
69586
69724
  groupKey: this.getDimensionField()[0],
69587
- isSeriesMark: true,
69588
- skipBeforeLayouted: true
69725
+ isSeriesMark: true
69589
69726
  }, {
69590
69727
  morph: shouldMarkDoMorph(this._spec, MapSeries.mark.area.name),
69591
69728
  morphElementKey: this.getDimensionField()[0]
@@ -73071,7 +73208,6 @@ class BasePieSeries extends PolarSeries {
73071
73208
  this._pieMark = this._createMark(Object.assign(Object.assign({}, BasePieSeries.mark.pie), { name: this._pieMarkName, type: this._pieMarkType }), {
73072
73209
  key: DEFAULT_DATA_KEY,
73073
73210
  groupKey: this._seriesField,
73074
- skipBeforeLayouted: true,
73075
73211
  isSeriesMark: true
73076
73212
  }, {
73077
73213
  morph: shouldMarkDoMorph(this._spec, this._pieMarkName),
@@ -80730,7 +80866,6 @@ class FunnelSeries extends BaseSeries {
80730
80866
  if (this._spec.isTransform) {
80731
80867
  this._funnelTransformMark = this._createMark(Object.assign(Object.assign({}, FunnelSeries.mark.transform), { name: this._transformMarkName, type: this._transformMarkType }), {
80732
80868
  themeSpec: (_b = this._theme) === null || _b === void 0 ? void 0 : _b.transform,
80733
- skipBeforeLayouted: true,
80734
80869
  noSeparateStyle: true
80735
80870
  });
80736
80871
  if (this._funnelTransformMark) {
@@ -80743,7 +80878,6 @@ class FunnelSeries extends BaseSeries {
80743
80878
  this._funnelOuterLabelMark.label = this._createMark(FunnelSeries.mark.outerLabel, {
80744
80879
  themeSpec: (_h = this._theme) === null || _h === void 0 ? void 0 : _h.outerLabel,
80745
80880
  markSpec: this._spec.outerLabel,
80746
- skipBeforeLayouted: true,
80747
80881
  noSeparateStyle: true,
80748
80882
  parent: false
80749
80883
  });
@@ -87086,7 +87220,7 @@ class BaseHistogramChartSpecTransformer extends CartesianChartSpecTransformer {
87086
87220
  spec.axes.forEach((axis) => (axis.type = 'linear'));
87087
87221
  }
87088
87222
  _getDefaultSeriesSpec(spec) {
87089
- return super._getDefaultSeriesSpec(spec, ['x2Field', 'y2Field', 'barMinHeight', 'barBackground']);
87223
+ return super._getDefaultSeriesSpec(spec, ['x2Field', 'y2Field', 'barMinHeight', 'barBackground', 'barGap']);
87090
87224
  }
87091
87225
  }
87092
87226
 
@@ -89378,11 +89512,13 @@ class TooltipSpecTransformer extends BaseComponentSpecTransformer {
89378
89512
  return false;
89379
89513
  }
89380
89514
  _initTheme(spec, chartSpec) {
89381
- var _a;
89515
+ var _a, _b, _c;
89382
89516
  const { spec: newSpec, theme } = super._initTheme(spec, chartSpec);
89383
89517
  newSpec.style = mergeSpec({}, this._theme, newSpec.style);
89384
89518
  newSpec.offset = mergeSpec({}, theme.offset, spec.offset);
89385
89519
  newSpec.transitionDuration = (_a = spec.transitionDuration) !== null && _a !== void 0 ? _a : theme.transitionDuration;
89520
+ newSpec.trigger = (_b = spec.trigger) !== null && _b !== void 0 ? _b : theme.trigger;
89521
+ newSpec.triggerOff = (_c = spec.triggerOff) !== null && _c !== void 0 ? _c : theme.triggerOff;
89386
89522
  return { spec: newSpec, theme };
89387
89523
  }
89388
89524
  _transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo) {
@@ -90229,7 +90365,7 @@ class BaseCrossHair extends BaseComponent {
90229
90365
  this.event.off(eventName, handler);
90230
90366
  }
90231
90367
  }
90232
- updateLayoutAttribute() {
90368
+ onBeforeRender() {
90233
90369
  this._limitBounds = null;
90234
90370
  this._showDefaultCrosshair();
90235
90371
  }
@@ -90372,7 +90508,7 @@ class BaseCrossHair extends BaseComponent {
90372
90508
  }
90373
90509
  }
90374
90510
  _parseField(field, fieldName) {
90375
- var _a, _b;
90511
+ var _a, _b, _c;
90376
90512
  const hair = {};
90377
90513
  const { line = {}, label = {}, visible } = field;
90378
90514
  hair.visible = visible;
@@ -90383,7 +90519,7 @@ class BaseCrossHair extends BaseComponent {
90383
90519
  else {
90384
90520
  const style = line.style || {};
90385
90521
  const { stroke, fill, lineWidth } = style;
90386
- const _c = style, { strokeOpacity, fillOpacity, opacity } = _c, restStyle = __rest$e(_c, ["strokeOpacity", "fillOpacity", "opacity"]);
90522
+ const _d = style, { strokeOpacity, fillOpacity, opacity } = _d, restStyle = __rest$e(_d, ["strokeOpacity", "fillOpacity", "opacity"]);
90387
90523
  const isLineType = hair.type === 'line';
90388
90524
  let finalOpacity = isLineType ? strokeOpacity : fillOpacity;
90389
90525
  if (isNumber$1(opacity)) {
@@ -90411,8 +90547,9 @@ class BaseCrossHair extends BaseComponent {
90411
90547
  }
90412
90548
  if (!!label.visible) {
90413
90549
  const labelBackground = label.labelBackground || {};
90550
+ const syncAxisLabelAngle = (_c = label.syncAxisLabelAngle) !== null && _c !== void 0 ? _c : false;
90414
90551
  const labelStyle = label.style || {};
90415
- const _d = labelBackground.style || {}, { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, outerBorder } = _d, rectStyle = __rest$e(_d, ["fill", "stroke", "outerBorder"]);
90552
+ const _e = labelBackground.style || {}, { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, outerBorder } = _e, rectStyle = __rest$e(_e, ["fill", "stroke", "outerBorder"]);
90416
90553
  hair.label = {
90417
90554
  visible: true,
90418
90555
  formatMethod: label.formatMethod,
@@ -90420,6 +90557,7 @@ class BaseCrossHair extends BaseComponent {
90420
90557
  minWidth: labelBackground.minWidth,
90421
90558
  maxWidth: labelBackground.maxWidth,
90422
90559
  padding: labelBackground.padding,
90560
+ syncAxisLabelAngle,
90423
90561
  textStyle: Object.assign(Object.assign({ fontSize: 14, pickable: false }, labelStyle), { fill: labelStyle.fill || '#fff', stroke: get$1(labelStyle, 'stroke') }),
90424
90562
  panel: (isBoolean$1(labelBackground.visible) ? labelBackground.visible : !!labelBackground)
90425
90563
  ? Object.assign({ visible: true, pickable: false, fill: rectFill, stroke: rectStroke, outerBorder: Object.assign({ stroke: rectFill, distance: 0, lineWidth: 3 }, outerBorder) }, rectStyle) : { visible: false },
@@ -90687,9 +90825,9 @@ class CartesianCrossHair extends BaseCrossHair {
90687
90825
  const positionAttribute = layoutCrosshair$1(this._stateByField[field]);
90688
90826
  this._updateCrosshairByField(field, positionAttribute);
90689
90827
  Object.keys(labels).forEach(labelKey => {
90690
- var _a;
90828
+ var _a, _b, _c;
90691
90829
  if (labels[labelKey].visible) {
90692
- const updateAttrs = Object.assign(Object.assign(Object.assign({ [coordKey]: coord + bandSize / 2 }, labels[labelKey]), attributes.label), { textStyle: Object.assign(Object.assign({}, (_a = attributes.label) === null || _a === void 0 ? void 0 : _a.textStyle), labelsTextStyle[labelKey]), zIndex: this.labelZIndex, visible: true });
90830
+ const updateAttrs = Object.assign(Object.assign(Object.assign({ [coordKey]: coord + bandSize / 2 }, labels[labelKey]), attributes.label), { angle: attributes.label.syncAxisLabelAngle ? (_b = (_a = cacheInfo.axisLabel) === null || _a === void 0 ? void 0 : _a.attribute.angle) !== null && _b !== void 0 ? _b : 0 : 0, textStyle: Object.assign(Object.assign({}, (_c = attributes.label) === null || _c === void 0 ? void 0 : _c.textStyle), labelsTextStyle[labelKey]), zIndex: this.labelZIndex, visible: true });
90693
90831
  this._updateCrosshairLabel(labelsComp[labelKey], updateAttrs, label => {
90694
90832
  label.name = `crosshair-${field.replace('Field', '')}-${labelKey}-label`;
90695
90833
  labelsComp[labelKey] = label;
@@ -92830,7 +92968,9 @@ function getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStar
92830
92968
  x = convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x;
92831
92969
  }
92832
92970
  else {
92833
- x = relativeSeries.getXAxisHelper().dataToPosition([datum.x]) + regionStartLayoutStartPoint.x;
92971
+ x =
92972
+ convertDatumToValue(relativeSeries.getXAxisHelper(), [datum.x]) +
92973
+ regionStartLayoutStartPoint.x;
92834
92974
  }
92835
92975
  return x;
92836
92976
  }
@@ -92845,7 +92985,9 @@ function getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionSta
92845
92985
  y = convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y;
92846
92986
  }
92847
92987
  else {
92848
- y = relativeSeries.getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;
92988
+ y =
92989
+ convertDatumToValue(relativeSeries.getYAxisHelper(), [datum.y]) +
92990
+ regionStartLayoutStartPoint.y;
92849
92991
  }
92850
92992
  return y;
92851
92993
  }
@@ -92855,7 +92997,7 @@ function getAngleValue(datum, angleDomain, autoRange, refSeries) {
92855
92997
  isNumber$1(datum.angle) &&
92856
92998
  isNeedExtendDomain(angleDomain, datum.angle, autoRange) &&
92857
92999
  ((_b = (_a = relativeSeries.angleAxisHelper) === null || _a === void 0 ? void 0 : _a.setExtendDomain) === null || _b === void 0 ? void 0 : _b.call(_a, 'marker_angleAxis_extend', datum.angle));
92858
- return relativeSeries.angleAxisHelper.dataToPosition([datum.angle]);
93000
+ return convertDatumToValue(relativeSeries.angleAxisHelper, [datum.angle]);
92859
93001
  }
92860
93002
  function getRadiusValue(datum, radiusDomain, autoRange, refSeries) {
92861
93003
  var _a, _b;
@@ -92863,11 +93005,18 @@ function getRadiusValue(datum, radiusDomain, autoRange, refSeries) {
92863
93005
  isNumber$1(datum.radius) &&
92864
93006
  isNeedExtendDomain(radiusDomain, datum.radius, autoRange) &&
92865
93007
  ((_b = (_a = relativeSeries.radiusAxisHelper) === null || _a === void 0 ? void 0 : _a.setExtendDomain) === null || _b === void 0 ? void 0 : _b.call(_a, 'marker_radiusAxis_extend', datum.radius));
92866
- return relativeSeries.radiusAxisHelper.dataToPosition([datum.radius]);
93008
+ return convertDatumToValue(relativeSeries.radiusAxisHelper, [datum.radius]);
92867
93009
  }
92868
93010
  function convertPercentToValue(percent, relativeLength) {
92869
93011
  return (Number(percent.substring(0, percent.length - 1)) * relativeLength) / 100;
92870
93012
  }
93013
+ function convertDatumToValue(axisHelper, datum) {
93014
+ const scale = axisHelper.getScale(0);
93015
+ if (isContinuous(scale.type) && scale.domain()[0] === scale.domain()[1] && datum[0] !== scale.domain()[0]) {
93016
+ return NaN;
93017
+ }
93018
+ return axisHelper.dataToPosition(datum);
93019
+ }
92871
93020
  function isAggrSpec(spec) {
92872
93021
  return AGGR_TYPE.includes(spec);
92873
93022
  }
@@ -93032,8 +93181,8 @@ function cartesianCoordinateLayout(data, relativeSeries, autoRange, coordinatesO
93032
93181
  isNeedExtendDomain(yDomain, yValue[0], autoRange) &&
93033
93182
  ((_d = (_c = refRelativeSeries.getYAxisHelper()) === null || _c === void 0 ? void 0 : _c.setExtendDomain) === null || _d === void 0 ? void 0 : _d.call(_c, 'marker_yAxis_extend', yValue[0]));
93034
93183
  points.push({
93035
- x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x + offsetX,
93036
- y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y + offsetY
93184
+ x: convertDatumToValue(refRelativeSeries.getXAxisHelper(), xValue) + regionStartLayoutStartPoint.x + offsetX,
93185
+ y: convertDatumToValue(refRelativeSeries.getYAxisHelper(), yValue) + regionStartLayoutStartPoint.y + offsetY
93037
93186
  });
93038
93187
  });
93039
93188
  return points;
@@ -93057,8 +93206,8 @@ function polarCoordinateLayout(data, relativeSeries, autoRange) {
93057
93206
  isNeedExtendDomain(radiusDomain, radiusValue[0], autoRange) &&
93058
93207
  ((_d = (_c = refRelativeSeries.radiusAxisHelper) === null || _c === void 0 ? void 0 : _c.setExtendDomain) === null || _d === void 0 ? void 0 : _d.call(_c, 'marker_yAxis_extend', radiusValue[0]));
93059
93208
  points.push({
93060
- angle: refRelativeSeries.angleAxisHelper.dataToPosition(angleValue),
93061
- radius: refRelativeSeries.radiusAxisHelper.dataToPosition(radiusValue)
93209
+ angle: convertDatumToValue(refRelativeSeries.angleAxisHelper, angleValue),
93210
+ radius: convertDatumToValue(refRelativeSeries.radiusAxisHelper, radiusValue)
93062
93211
  });
93063
93212
  });
93064
93213
  return points;
@@ -96141,7 +96290,6 @@ class Brush extends BaseComponent {
96141
96290
  this._linkedInBrushElementsMap = {};
96142
96291
  this._linkedOutOfBrushElementsMap = {};
96143
96292
  this._cacheInteractiveRangeAttrs = [];
96144
- this._needDisablePickable = false;
96145
96293
  this._releatedAxes = [];
96146
96294
  this._regionAxisMap = {};
96147
96295
  this._axisDataZoomMap = {};
@@ -96293,34 +96441,37 @@ class Brush extends BaseComponent {
96293
96441
  this._emitEvent(ChartEvent.brushActive, region);
96294
96442
  });
96295
96443
  brush.addEventListener(IOperateType.drawStart, (e) => {
96444
+ this._setRegionMarkPickable(region, true);
96296
96445
  this._emitEvent(ChartEvent.brushStart, region);
96297
96446
  });
96298
96447
  brush.addEventListener(IOperateType.moveStart, (e) => {
96448
+ this._setRegionMarkPickable(region, true);
96299
96449
  this._emitEvent(ChartEvent.brushStart, region);
96300
96450
  });
96301
96451
  brush.addEventListener(IOperateType.drawing, (e) => {
96302
- this._needDisablePickable = true;
96452
+ this._setRegionMarkPickable(region, false);
96303
96453
  this._handleBrushChange(region, e);
96304
96454
  this._emitEvent(ChartEvent.brushChange, region);
96305
96455
  });
96306
96456
  brush.addEventListener(IOperateType.moving, (e) => {
96457
+ this._setRegionMarkPickable(region, false);
96307
96458
  this._handleBrushChange(region, e);
96308
96459
  this._emitEvent(ChartEvent.brushChange, region);
96309
96460
  });
96310
96461
  brush.addEventListener(IOperateType.brushClear, (e) => {
96462
+ this._setRegionMarkPickable(region, true);
96311
96463
  this._initMarkBrushState(componentIndex, '');
96312
- this._needDisablePickable = false;
96313
96464
  this._emitEvent(ChartEvent.brushClear, region);
96314
96465
  });
96315
96466
  brush.addEventListener(IOperateType.drawEnd, (e) => {
96316
96467
  var _a;
96317
- this._needDisablePickable = false;
96468
+ this._setRegionMarkPickable(region, true);
96318
96469
  const { operateMask } = e.detail;
96470
+ const { updateElementsState = true } = this._spec;
96319
96471
  if ((_a = this._spec) === null || _a === void 0 ? void 0 : _a.onBrushEnd) {
96320
96472
  if (this._spec.onBrushEnd(e) === true) {
96321
96473
  this.clearGraphic();
96322
96474
  this._initMarkBrushState(componentIndex, '');
96323
- this._needDisablePickable = false;
96324
96475
  this._emitEvent(ChartEvent.brushClear, region);
96325
96476
  }
96326
96477
  else {
@@ -96330,16 +96481,18 @@ class Brush extends BaseComponent {
96330
96481
  }
96331
96482
  else {
96332
96483
  const inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
96333
- if (!this._spec.zoomWhenEmpty && inBrushData.length > 0) {
96484
+ if ((!this._spec.zoomWhenEmpty && inBrushData.length > 0) || !updateElementsState) {
96334
96485
  this._setAxisAndDataZoom(operateMask, region);
96335
96486
  }
96336
96487
  this._emitEvent(ChartEvent.brushEnd, region);
96337
96488
  }
96338
96489
  });
96339
96490
  brush.addEventListener(IOperateType.moveEnd, (e) => {
96491
+ this._setRegionMarkPickable(region, true);
96340
96492
  const { operateMask } = e.detail;
96493
+ const { updateElementsState = true } = this._spec;
96341
96494
  const inBrushData = this._extendDataInBrush(this._inBrushElementsMap);
96342
- if (!this._spec.zoomWhenEmpty && inBrushData.length > 0) {
96495
+ if ((!this._spec.zoomWhenEmpty && inBrushData.length > 0) || updateElementsState) {
96343
96496
  this._setAxisAndDataZoom(operateMask, region);
96344
96497
  }
96345
96498
  this._emitEvent(ChartEvent.brushEnd, region);
@@ -96381,8 +96534,11 @@ class Brush extends BaseComponent {
96381
96534
  }
96382
96535
  _handleBrushChange(region, e) {
96383
96536
  const { operateMask } = e.detail;
96384
- this._reconfigItem(operateMask, region);
96385
- this._reconfigLinkedItem(operateMask, region);
96537
+ const { updateElementsState = true } = this._spec;
96538
+ if (updateElementsState) {
96539
+ this._reconfigItem(operateMask, region);
96540
+ this._reconfigLinkedItem(operateMask, region);
96541
+ }
96386
96542
  }
96387
96543
  _extendDataInBrush(elementsMap) {
96388
96544
  var _a, _b;
@@ -96462,7 +96618,6 @@ class Brush extends BaseComponent {
96462
96618
  this._outOfBrushElementsMap[elementKey] = graphicItem;
96463
96619
  delete this._inBrushElementsMap[operateMask.name][elementKey];
96464
96620
  }
96465
- graphicItem.setAttribute('pickable', !this._needDisablePickable);
96466
96621
  });
96467
96622
  });
96468
96623
  }
@@ -96520,7 +96675,6 @@ class Brush extends BaseComponent {
96520
96675
  graphicItem.addState(OUT_BRUSH_STATE, true);
96521
96676
  this._linkedOutOfBrushElementsMap[elementKey] = graphicItem;
96522
96677
  }
96523
- graphicItem.setAttribute('pickable', !this._needDisablePickable);
96524
96678
  });
96525
96679
  });
96526
96680
  }
@@ -96586,6 +96740,12 @@ class Brush extends BaseComponent {
96586
96740
  this._initItemMap(this._itemMap, this._outOfBrushElementsMap, stateName);
96587
96741
  this._initItemMap(this._linkedItemMap, this._linkedOutOfBrushElementsMap, stateName);
96588
96742
  }
96743
+ _setRegionMarkPickable(region, pickable) {
96744
+ region
96745
+ .getGroupMark()
96746
+ .getGraphics()
96747
+ .forEach(g => g.setAttribute('childrenPickable', pickable));
96748
+ }
96589
96749
  _stateClamp(state) {
96590
96750
  return Math.min(Math.max(0, state), 1);
96591
96751
  }
@@ -96665,7 +96825,6 @@ class Brush extends BaseComponent {
96665
96825
  const container = this.getContainer();
96666
96826
  this._brushComponents.forEach((brush, index) => {
96667
96827
  this._initMarkBrushState(index, '');
96668
- this._needDisablePickable = false;
96669
96828
  brush.removeAllChild();
96670
96829
  brush.releaseBrushEvents();
96671
96830
  if (container) {
@@ -97891,12 +98050,18 @@ class DomTooltipHandler extends BaseTooltipHandler {
97891
98050
  const rowStyle = this._domStyle.row;
97892
98051
  const chilren = [...this._rootDom.children];
97893
98052
  let titleDom = chilren.find(child => child.className.includes(TOOLTIP_TITLE_CLASS_NAME));
98053
+ let contentDom = chilren.find(child => child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME));
97894
98054
  if (!titleDom && title.visible !== false) {
97895
98055
  titleDom = document.createElement('h2');
97896
98056
  const span = document.createElement('span');
97897
98057
  titleDom.appendChild(span);
97898
98058
  titleDom.classList.add(TOOLTIP_TITLE_CLASS_NAME);
97899
- this._rootDom.appendChild(titleDom);
98059
+ if (this._rootDom.firstChild) {
98060
+ this._rootDom.insertBefore(titleDom, this._rootDom.firstChild);
98061
+ }
98062
+ else {
98063
+ this._rootDom.appendChild(titleDom);
98064
+ }
97900
98065
  }
97901
98066
  if (titleDom && title.visible !== false) {
97902
98067
  setStyleToDom(titleDom, Object.assign(Object.assign(Object.assign({}, this._domStyle.title), (hasContent ? rowStyle : { marginBottom: '0px' })), { marginTop: '0px' }));
@@ -97905,7 +98070,6 @@ class DomTooltipHandler extends BaseTooltipHandler {
97905
98070
  else if (titleDom && title.visible === false) {
97906
98071
  titleDom.parentNode.removeChild(titleDom);
97907
98072
  }
97908
- let contentDom = chilren.find(child => child.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME));
97909
98073
  const columns = ['shape', 'key', 'value'];
97910
98074
  if (!contentDom && hasContent) {
97911
98075
  contentDom = document.createElement('div');
@@ -99949,4 +100113,4 @@ function registerSequentialAnimate() {
99949
100113
  mixin(BaseMark, SequentialAnimate);
99950
100114
  }
99951
100115
 
99952
- export { ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, BandAxisMixin, BarChart, BarChartSpecTransformer, BarSeries, BarSeriesSpecTransformer, BaseArcMark, BaseChart, BaseChartSpecTransformer, BaseComponent, BaseComponentSpecTransformer, BaseHistogramChart, BaseMark, BasePieChart, BasePieChartSpecTransformer, BasePieSeries, BasePlugin, BasePolygonMark, BaseSeries, BaseSeriesSpecTransformer, BaseSeriesTooltipHelper, BaseWordCloudChart, BaseWordCloudChartSpecTransformer, BaseWordCloudSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, ChartEvent, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, CompilableData, ComponentMark, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_ANIMATION_CONFIG, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_KEY, DEFAULT_LAYOUT_RECT_LEVEL, DEFAULT_LAYOUT_RECT_LEVEL_MIN, DEFAULT_LINEAR_INTERPOLATE, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DEFAULT_SMOOTH_INTERPOLATE, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, Direction, DiscreteLegend, DomTooltipHandler, DotSeries, ElementHighlight, ElementSelect, Event$1 as Event, Factory, FormatterPlugin, FunnelChart, FunnelChartSpecTransformer, FunnelSeries, FunnelSeriesSpecTransformer, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GeoSeries, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, HistogramChart, HistogramChartSpecTransformer, ImageMark, Indicator, Label, Layout$1 as Layout, LayoutLevel, LayoutZIndex, LineChart, LineMark, LineSeries, LinearAxisMixin, LinearProgressChart, LinearProgressSeries, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapSeries, MarkTypeEnum, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PieChart, PieSeries, PieSeriesSpecTransformer, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, PositionEnum, ProgressLikeSeries, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumnChart, RangeColumnSeries, RangeColumnSeriesSpecTransformer, RectMark, RenderModeEnum, RippleMark, RoseChart, RoseLikeSeries, RoseSeries, RuleMark, SEGMENT_FIELD_END, SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_END_PERCENT, STACK_FIELD_KEY, STACK_FIELD_START, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_START_PERCENT, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STATE_VALUE_ENUM, SankeyChart, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TransformLevel, TreemapChart, TreemapSeries, USER_LAYOUT_RECT_LEVEL, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloudChart, WordCloudSeries, alternatingWave, animationConfig, barGrowIn, barGrowOut, barPresetAnimation, baseSeriesMark, boundsInRect, builtinThemes, calcLayoutNumber, calcPadding, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, convertPoint, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createSymbol, createText, darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, findMarkGraphic, functionTransform, getActualColor, getActualNumValue, getCartesianCrosshairRect, getCartesianDimensionInfo, getColorSchemeBySeries, getCombinedSizeOfRegions, getDataScheme, getDatumOfGraphic, getDimensionInfoByValue, getFieldAlias, getFunnelTheme, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getSpecInfo, getTheme, hasThemeMerged, isCollectionMark, isColorKey, isPercent, isPercentOffset, isProgressiveDataColorScheme, isTokenKey, isValidOrient, isXAxis, isYAxis, isZAxis, lightTheme, lookup, measureText, mergeFields, normalizeLayoutPaddingSpec, particleEffect, pieDisappear, pieEnter, pieExit, piePresetAnimation, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, registerAllEnv, registerAllMarks, registerAnimate, registerArcAnimation, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomAnimate, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDimensionEvents, registerDimensionHover, registerDimensionTooltipProcessor, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerElementActive, registerElementActiveByLegend, registerElementHighlight, registerElementHighlightByGroup, registerElementHighlightByKey, registerElementHighlightByLegend, registerElementHighlightByName, registerElementSelect, registerFormatPlugin, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGridLayout, registerGroupMark, registerGroupTooltipProcessor, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapSeries, registerMarkArea, registerMarkFilterTransform, registerMarkLine, registerMarkMapTransform, registerMarkPoint, registerMarkTooltipProcessor, registerMediaQuery, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonAnimation, registerPolygonMark, registerPoptip, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRectAnimation, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScatterChart, registerScatterSeries, registerScrollBar, registerSequenceChart, registerSequentialAnimate, registerStateTransition, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerAnimate$1 as registerVRenderAnimate, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, shouldMarkDoMorph, snakeWave, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, transformToGraphic, userAnimationConfig, version, vglobal, warn };
100116
+ export { ArcMark, AreaChart, AreaMark, AreaSeries, AttributeLevel, AxisSyncPlugin, BandAxisMixin, BarChart, BarChartSpecTransformer, BarSeries, BarSeriesSpecTransformer, BaseArcMark, BaseChart, BaseChartSpecTransformer, BaseComponent, BaseComponentSpecTransformer, BaseHistogramChart, BaseMark, BasePieChart, BasePieChartSpecTransformer, BasePieSeries, BasePlugin, BasePolygonMark, BaseSeries, BaseSeriesSpecTransformer, BaseSeriesTooltipHelper, BaseWordCloudChart, BaseWordCloudChartSpecTransformer, BaseWordCloudSeries, BoxPlotChart, BoxPlotSeries, Brush, CanvasTooltipHandler, CartesianAxis, CartesianBandAxis, CartesianChartSpecTransformer, CartesianCrossHair, CartesianLinearAxis, CartesianLogAxis, CartesianMarkArea, CartesianMarkLine, CartesianMarkPoint, CartesianSeries, CartesianSymlogAxis, CartesianTimeAxis, ChartEvent, CirclePackingChart, CirclePackingSeries, CircularProgressChart, CircularProgressSeries, CommonChart, CommonChartSpecTransformer, CompilableData, ComponentMark, ContinuousLegend, CorrelationChart, CorrelationSeries, CustomMark, DEFAULT_ANIMATION_CONFIG, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD, DEFAULT_KEY, DEFAULT_LAYOUT_RECT_LEVEL, DEFAULT_LAYOUT_RECT_LEVEL_MIN, DEFAULT_LINEAR_INTERPOLATE, DEFAULT_MEASURE_CANVAS_ID, DEFAULT_SERIES_STYLE_NAME, DEFAULT_SMOOTH_INTERPOLATE, DataZoom, DimensionClickEvent, DimensionEventEnum, DimensionHoverEvent, Direction, DiscreteLegend, DomTooltipHandler, DotSeries, ElementHighlight, ElementSelect, Event$1 as Event, Factory, FormatterPlugin, FunnelChart, FunnelChartSpecTransformer, FunnelSeries, FunnelSeriesSpecTransformer, GaugeChart, GaugePointerSeries, GaugeSeries, GeoCoordinate, GeoMarkPoint, GeoSeries, GridLayout, GroupMark, HeatmapChart, HeatmapSeries, HistogramChart, HistogramChartSpecTransformer, ImageMark, Indicator, Label, Layout$1 as Layout, LayoutLevel, LayoutZIndex, LineChart, LineMark, LineSeries, LinearAxisMixin, LinearProgressChart, LinearProgressSeries, LinkSeries, LiquidChart, LiquidSeries, MOSAIC_CAT_END_PERCENT, MOSAIC_CAT_START_PERCENT, MOSAIC_VALUE_END_PERCENT, MOSAIC_VALUE_START_PERCENT, ManualTicker, MapChart, MapSeries, MarkTypeEnum, MediaQuery, MosaicChart, MosaicSeries, PREFIX, PathMark, PieChart, PieSeries, PieSeriesSpecTransformer, Player, PolarAxis, PolarBandAxis, PolarCrossHair, PolarLinearAxis, PolarMarkArea, PolarMarkLine, PolarMarkPoint, PolarSeries, PolygonMark, PositionEnum, ProgressLikeSeries, RadarChart, RadarSeries, RangeAreaChart, RangeAreaSeries, RangeColumnChart, RangeColumnSeries, RangeColumnSeriesSpecTransformer, RectMark, RenderModeEnum, RippleMark, RoseChart, RoseLikeSeries, RoseSeries, RuleMark, SEGMENT_FIELD_END, SEGMENT_FIELD_START, STACK_FIELD_END, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_END_PERCENT, STACK_FIELD_KEY, STACK_FIELD_START, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_START_PERCENT, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STATE_VALUE_ENUM, SankeyChart, SankeySeries, ScatterChart, ScatterSeries, ScrollBar, SequenceChart, SeriesMarkNameEnum, SeriesTypeEnum, SeriesTypeForThemeEnum, StreamLight, SunburstChart, SunburstSeries, SymbolMark, TextMark, ThemeManager, Title, Tooltip, TooltipResult, TotalLabel, TransformLevel, TreemapChart, TreemapSeries, USER_LAYOUT_RECT_LEVEL, VChart, VennChart, VennSeries, WaterfallChart, WaterfallSeries, WordCloudChart, WordCloudSeries, alternatingWave, animationConfig, barGrowIn, barGrowOut, barPresetAnimation, baseSeriesMark, boundsInRect, builtinThemes, calcLayoutNumber, calcPadding, centerToCorner, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeActualDataScheme, convertPoint, cornerToCenter, createArc, createArea, createGroup, createLine, createRect, createRichText, createSymbol, createText, darkTheme, dataScheme, VChart as default, defaultThemeName, diagonalCenterToEdge, diagonalTopLeftToBottomRight, findMarkGraphic, functionTransform, getActualColor, getActualNumValue, getCartesianCrosshairRect, getCartesianDimensionInfo, getColorSchemeBySeries, getCombinedSizeOfRegions, getDataScheme, getDatumOfGraphic, getDiffAttributesOfGraphic, getDimensionInfoByValue, getFieldAlias, getFunnelTheme, getMergedTheme, getPolarDimensionInfo, getRegionStackGroup, getSpecInfo, getTheme, hasThemeMerged, isCollectionMark, isColorKey, isPercent, isPercentOffset, isProgressiveDataColorScheme, isTokenKey, isValidOrient, isXAxis, isYAxis, isZAxis, lightTheme, lookup, measureText, mergeFields, normalizeLayoutPaddingSpec, particleEffect, pieDisappear, pieEnter, pieExit, piePresetAnimation, pulseWave, queryColorFromColorScheme, queryToken, randomOpacity, registerAllEnv, registerAllMarks, registerAnimate, registerArcAnimation, registerArcMark, registerAreaChart, registerAreaMark, registerAreaSeries, registerBarChart, registerBarSeries, registerBoxplotChart, registerBoxplotSeries, registerBrowserEnv, registerBrush, registerCanvasTooltipHandler, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerChartPlugin, registerCirclePackingChart, registerCirclePackingSeries, registerCircularProgressChart, registerCircularProgressSeries, registerCommonChart, registerComponentMark, registerContinuousLegend, registerCorrelationChart, registerCustomAnimate, registerCustomMark, registerDataSetInstanceParser, registerDataSetInstanceTransform, registerDataZoom, registerDimensionEvents, registerDimensionHover, registerDimensionTooltipProcessor, registerDiscreteLegend, registerDomTooltipHandler, registerDotSeries, registerDragPlugin, registerElementActive, registerElementActiveByLegend, registerElementHighlight, registerElementHighlightByGroup, registerElementHighlightByKey, registerElementHighlightByLegend, registerElementHighlightByName, registerElementSelect, registerFormatPlugin, registerFunnelChart, registerFunnelSeries, registerGaugeChart, registerGaugePointerSeries, registerGaugeSeries, registerGeoCoordinate, registerGeoMarkPoint, registerGesturePlugin, registerGridLayout, registerGroupMark, registerGroupTooltipProcessor, registerHarmonyEnv, registerHeatmapChart, registerHeatmapSeries, registerHistogramChart, registerHtmlAttributePlugin, registerImageMark, registerIndicator, registerLabel, registerLarkEnv, registerLineChart, registerLineMark, registerLineSeries, registerLinearProgressChart, registerLinearProgressSeries, registerLinkSeries, registerLiquidChart, registerLiquidSeries, registerLynxEnv, registerMapChart, registerMapSeries, registerMarkArea, registerMarkFilterTransform, registerMarkLine, registerMarkMapTransform, registerMarkPoint, registerMarkTooltipProcessor, registerMediaQuery, registerMosaicChart, registerMosaicSeries, registerNodeEnv, registerPathMark, registerPieChart, registerPieSeries, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPolarMarkArea, registerPolarMarkLine, registerPolarMarkPoint, registerPolygonAnimation, registerPolygonMark, registerPoptip, registerRadarChart, registerRadarSeries, registerRangeAreaChart, registerRangeAreaSeries, registerRangeColumnChart, registerRangeColumnSeries, registerReactAttributePlugin, registerRectAnimation, registerRectMark, registerRippleMark, registerRoseChart, registerRoseSeries, registerRuleMark, registerSankeyChart, registerSankeySeries, registerScatterChart, registerScatterSeries, registerScrollBar, registerSequenceChart, registerSequentialAnimate, registerStateTransition, registerSunBurstSeries, registerSunburstChart, registerSymbolMark, registerTTEnv, registerTaroEnv, registerTextMark, registerTheme, registerTitle, registerTooltip, registerTotalLabel, registerTreemapChart, registerTreemapSeries, registerAnimate$1 as registerVRenderAnimate, registerVennChart, registerVennSeries, registerWXEnv, registerWaterfallChart, registerWaterfallSeries, registerWordCloudChart, registerWordCloudSeries, registerWordCloudShapeChart, removeTheme, rippleEffect, rotationScan, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, shouldMarkDoMorph, snakeWave, sortStackValueGroup, specTransform, spiralEffect, stack, stackGroup, stackMosaic, stackMosaicTotal, stackOffsetSilhouette, stackTotal, themeExist, themes, token, transformColorSchemeToStandardStruct, transformToGraphic, userAnimationConfig, version, vglobal, warn };