@visactor/vrender 1.1.0-alpha.1 → 1.1.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -8645,11 +8645,23 @@ class StateTransitionOrchestrator {
8645
8645
  if (!hasAnimation) return plan;
8646
8646
  const noWorkAnimateAttr = Object.assign(Object.assign({}, null !== (_a = options.noWorkAnimateAttr) && void 0 !== _a ? _a : {}), normalizeNoAnimateAttrConfig(null === (_b = options.animateConfig) || void 0 === _b ? void 0 : _b.noAnimateAttrs)),
8647
8647
  isClear = !0 === options.isClear,
8648
- getDefaultAttribute = options.getDefaultAttribute;
8648
+ getDefaultAttribute = options.getDefaultAttribute,
8649
+ shouldSkipDefaultAttribute = options.shouldSkipDefaultAttribute,
8650
+ assignTransitionAttr = (key, value) => {
8651
+ if (noWorkAnimateAttr[key]) return plan.jumpAttrs[key] = value, void (plan.noAnimateAttrs[key] = value);
8652
+ if (isClear && void 0 === value) {
8653
+ if (null == shouldSkipDefaultAttribute ? void 0 : shouldSkipDefaultAttribute(key, targetAttrs)) return;
8654
+ plan.animateAttrs[key] = getDefaultAttribute ? getDefaultAttribute(key) : value;
8655
+ } else plan.animateAttrs[key] = value;
8656
+ };
8649
8657
  for (const key in targetAttrs) {
8650
8658
  if (!Object.prototype.hasOwnProperty.call(targetAttrs, key)) continue;
8651
- const value = targetAttrs[key];
8652
- noWorkAnimateAttr[key] ? (plan.jumpAttrs[key] = value, plan.noAnimateAttrs[key] = value) : plan.animateAttrs[key] = isClear && void 0 === value && getDefaultAttribute ? getDefaultAttribute(key) : value;
8659
+ assignTransitionAttr(key, targetAttrs[key]);
8660
+ }
8661
+ const extraAnimateAttrs = options.extraAnimateAttrs;
8662
+ if (extraAnimateAttrs) for (const key in extraAnimateAttrs) {
8663
+ const hasTargetAttr = Object.prototype.hasOwnProperty.call(targetAttrs, key);
8664
+ !Object.prototype.hasOwnProperty.call(extraAnimateAttrs, key) || hasTargetAttr && void 0 !== targetAttrs[key] || assignTransitionAttr(key, extraAnimateAttrs[key]);
8653
8665
  }
8654
8666
  return plan;
8655
8667
  }
@@ -8676,12 +8688,14 @@ class StateTransitionOrchestrator {
8676
8688
  }), plan;
8677
8689
  }
8678
8690
  applyClearTransition(graphic, targetAttrs, hasAnimation, stateNames, options = {}) {
8679
- var _a, _b;
8691
+ var _a, _b, _c, _d;
8680
8692
  const plan = this.analyzeTransition({}, targetAttrs, stateNames, hasAnimation, {
8681
8693
  noWorkAnimateAttr: null === (_a = graphic.getNoWorkAnimateAttr) || void 0 === _a ? void 0 : _a.call(graphic),
8682
8694
  isClear: !0,
8683
8695
  getDefaultAttribute: null === (_b = graphic.getDefaultAttribute) || void 0 === _b ? void 0 : _b.bind(graphic),
8684
- animateConfig: options.animateConfig
8696
+ shouldSkipDefaultAttribute: null !== (_c = options.shouldSkipDefaultAttribute) && void 0 !== _c ? _c : null === (_d = graphic.shouldSkipStateTransitionDefaultAttribute) || void 0 === _d ? void 0 : _d.bind(graphic),
8697
+ animateConfig: options.animateConfig,
8698
+ extraAnimateAttrs: options.extraAnimateAttrs
8685
8699
  });
8686
8700
  return this.applyTransition(graphic, plan, hasAnimation, options);
8687
8701
  }
@@ -8981,11 +8995,13 @@ class Graphic extends Node {
8981
8995
  stateProxyModeKey: this.stateProxy ? "legacy-all" : "none"
8982
8996
  };
8983
8997
  }
8984
- const sharedCompiledDefinitions = boundScope.effectiveCompiledDefinitions;
8998
+ const sharedCompiledDefinitions = boundScope.effectiveCompiledDefinitions,
8999
+ sharedStateProxyModeKey = this.stateProxy ? "shared-missing-only" : "none",
9000
+ sharedStateProxyEligibility = this.stateProxy ? stateName => !sharedCompiledDefinitions.has(stateName) : void 0;
8985
9001
  if (!hasStates) return this.localFallbackCompiledDefinitions = void 0, {
8986
9002
  compiledDefinitions: sharedCompiledDefinitions,
8987
- stateProxyModeKey: this.stateProxy ? "shared-disabled" : "none",
8988
- stateProxyEligibility: this.stateProxy ? () => !1 : void 0
9003
+ stateProxyModeKey: sharedStateProxyModeKey,
9004
+ stateProxyEligibility: sharedStateProxyEligibility
8989
9005
  };
8990
9006
  const localStates = this.states,
8991
9007
  missingLocalStateDefinitions = {},
@@ -8994,8 +9010,8 @@ class Graphic extends Node {
8994
9010
  sharedCompiledDefinitions.has(stateName) || (missingLocalStateDefinitions[stateName] = localStates[stateName], missingStateNames.push(stateName));
8995
9011
  }), !missingStateNames.length) return this.localFallbackCompiledDefinitions = void 0, {
8996
9012
  compiledDefinitions: sharedCompiledDefinitions,
8997
- stateProxyModeKey: this.stateProxy ? "shared-disabled" : "none",
8998
- stateProxyEligibility: this.stateProxy ? () => !1 : void 0
9013
+ stateProxyModeKey: sharedStateProxyModeKey,
9014
+ stateProxyEligibility: sharedStateProxyEligibility
8999
9015
  };
9000
9016
  const localStatesVersion = this.getLocalStatesVersion(),
9001
9017
  stateProxyModeKey = this.stateProxy ? `missing:${missingStateNames.sort().join("|")}` : "none",
@@ -9003,7 +9019,7 @@ class Graphic extends Node {
9003
9019
  return this.localFallbackCompiledDefinitions && this.compiledStateDefinitionsCacheKey === cacheKey || (this.localFallbackCompiledDefinitions = new StateDefinitionCompiler().compile(Object.assign(Object.assign({}, boundScope.effectiveSourceDefinitions), missingLocalStateDefinitions)), this.compiledStateDefinitionsCacheKey = cacheKey), {
9004
9020
  compiledDefinitions: this.localFallbackCompiledDefinitions,
9005
9021
  stateProxyModeKey: stateProxyModeKey,
9006
- stateProxyEligibility: this.stateProxy ? stateName => !sharedCompiledDefinitions.has(stateName) : void 0
9022
+ stateProxyEligibility: sharedStateProxyEligibility
9007
9023
  };
9008
9024
  }
9009
9025
  recomputeCurrentStatePatch() {
@@ -9027,6 +9043,23 @@ class Graphic extends Node {
9027
9043
  "deep" === this.stateMergeMode && isPlainObjectValue(previousValue) && isPlainObjectValue(nextValue) ? snapshot[key] = deepMergeAttributeValue(previousValue, nextValue) : snapshot[key] = cloneAttributeValue(nextValue);
9028
9044
  }), snapshot) : snapshot;
9029
9045
  }
9046
+ buildRemovedStateAnimationAttrs(targetStateAttrs, previousResolvedStatePatch) {
9047
+ const extraAttrs = {};
9048
+ if (!previousResolvedStatePatch) return extraAttrs;
9049
+ const snapshot = this.buildStaticAttributeSnapshot(),
9050
+ staticTargetAttrs = snapshot;
9051
+ return Object.keys(previousResolvedStatePatch).forEach(key => {
9052
+ const hasTargetAttr = Object.prototype.hasOwnProperty.call(targetStateAttrs, key);
9053
+ if (hasTargetAttr && void 0 !== targetStateAttrs[key]) return;
9054
+ const assignFallbackAttr = value => {
9055
+ void 0 === value && this.shouldSkipStateTransitionDefaultAttribute(key, staticTargetAttrs) || (extraAttrs[key] = void 0 === value ? value : cloneAttributeValue(value));
9056
+ };
9057
+ if (hasTargetAttr) assignFallbackAttr(this.getStateTransitionDefaultAttribute(key, staticTargetAttrs));else if (Object.prototype.hasOwnProperty.call(snapshot, key)) {
9058
+ const snapshotValue = snapshot[key];
9059
+ assignFallbackAttr(void 0 === snapshotValue ? this.getStateTransitionDefaultAttribute(key, staticTargetAttrs) : snapshotValue);
9060
+ } else assignFallbackAttr(this.getStateTransitionDefaultAttribute(key, staticTargetAttrs));
9061
+ }), extraAttrs;
9062
+ }
9030
9063
  syncObjectToSnapshot(target, snapshot) {
9031
9064
  const delta = new Map();
9032
9065
  return new Set([...Object.keys(target), ...Object.keys(snapshot)]).forEach(key => {
@@ -9448,21 +9481,31 @@ class Graphic extends Node {
9448
9481
  var _a, _b, _c;
9449
9482
  return null !== (_c = null !== (_a = null != animateConfig ? animateConfig : this.stateAnimateConfig) && void 0 !== _a ? _a : null === (_b = this.context) || void 0 === _b ? void 0 : _b.stateAnimateConfig) && void 0 !== _c ? _c : DefaultStateAnimateConfig;
9450
9483
  }
9451
- applyStateAttrs(attrs, stateNames, hasAnimation, isClear, animateConfig) {
9484
+ applyStateAttrs(attrs, stateNames, hasAnimation, isClear, animateConfig, extraAnimateAttrs) {
9452
9485
  const resolvedAnimateConfig = hasAnimation ? this.resolveStateAnimateConfig(animateConfig) : void 0,
9453
9486
  transitionOptions = resolvedAnimateConfig ? {
9454
- animateConfig: resolvedAnimateConfig
9487
+ animateConfig: resolvedAnimateConfig,
9488
+ extraAnimateAttrs: extraAnimateAttrs,
9489
+ shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this)
9455
9490
  } : void 0;
9456
9491
  if (isClear) return void this.getStateTransitionOrchestrator().applyClearTransition(this, attrs, hasAnimation, stateNames, transitionOptions);
9457
9492
  const plan = this.getStateTransitionOrchestrator().analyzeTransition({}, attrs, stateNames, hasAnimation, {
9458
9493
  noWorkAnimateAttr: this.getNoWorkAnimateAttr(),
9459
- animateConfig: resolvedAnimateConfig
9494
+ animateConfig: resolvedAnimateConfig,
9495
+ extraAnimateAttrs: extraAnimateAttrs,
9496
+ shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this)
9460
9497
  });
9461
9498
  this.getStateTransitionOrchestrator().applyTransition(this, plan, hasAnimation, transitionOptions);
9462
9499
  }
9463
9500
  updateNormalAttrs(stateAttrs) {
9464
9501
  this._deprecatedNormalAttrsView = cloneAttributeValue(this.baseAttributes);
9465
9502
  }
9503
+ getStateTransitionDefaultAttribute(key, targetAttrs) {
9504
+ return this.getDefaultAttribute(key);
9505
+ }
9506
+ shouldSkipStateTransitionDefaultAttribute(_key, _targetAttrs) {
9507
+ return !1;
9508
+ }
9466
9509
  stopStateAnimates(type = "end") {
9467
9510
  const stopAnimationState = this.stopAnimationState;
9468
9511
  if ("function" == typeof stopAnimationState) return void stopAnimationState.call(this, "state", type);
@@ -9479,13 +9522,14 @@ class Graphic extends Node {
9479
9522
  clearStates(hasAnimation) {
9480
9523
  var _a, _b, _c;
9481
9524
  const previousStates = this.currentStates ? this.currentStates.slice() : [],
9525
+ previousResolvedStatePatch = this.resolvedStatePatch ? cloneAttributeValue(this.resolvedStatePatch) : void 0,
9482
9526
  transition = this.createStateModel().clearStates();
9483
9527
  if (!transition.changed && 0 === previousStates.length) return this.currentStates = [], this.effectiveStates = [], this.resolvedStatePatch = void 0, this.sharedStateDirty = !1, void this.clearSharedStateActiveRegistrations();
9484
9528
  const resolvedStateAttrs = cloneAttributeValue(null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : {});
9485
9529
  transition.changed && !this.beforeStateUpdate(resolvedStateAttrs, previousStates, transition.states, hasAnimation, !0) || (this.currentStates = transition.states, this.effectiveStates = [], this.resolvedStatePatch = void 0, this.sharedStateDirty = !1, this.clearSharedStateActiveRegistrations(), null === (_b = getStageStatePerfMonitor(this.stage)) || void 0 === _b || _b.incrementCounter("stateCommits"), null === (_c = getStageStatePerfMonitor(this.stage)) || void 0 === _c || _c.recordEvent("state-commit", {
9486
9530
  graphicId: this._uid,
9487
9531
  targetStates: []
9488
- }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !0)) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9532
+ }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !0, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9489
9533
  type: AttributeUpdateType.STATE
9490
9534
  }), this._emitCustomEvent("afterStateUpdate", {
9491
9535
  type: AttributeUpdateType.STATE
@@ -9507,6 +9551,7 @@ class Graphic extends Node {
9507
9551
  var _a, _b, _c, _d, _e;
9508
9552
  if (!states.length) return void this.clearStates(hasAnimation);
9509
9553
  const previousStates = this.currentStates ? this.currentStates.slice() : [],
9554
+ previousResolvedStatePatch = this.resolvedStatePatch ? cloneAttributeValue(this.resolvedStatePatch) : void 0,
9510
9555
  stateResolveBaseAttrs = null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : this.attribute,
9511
9556
  stateModel = this.createStateModel();
9512
9557
  null === (_b = this.stateEngine) || void 0 === _b || _b.setResolveContext(this, stateResolveBaseAttrs);
@@ -9517,7 +9562,7 @@ class Graphic extends Node {
9517
9562
  this.beforeStateUpdate(resolvedStateAttrs, previousStates, transition.states, hasAnimation, !1) && (this.currentStates = transition.states, this.effectiveStates = [...effectiveStates], this.resolvedStatePatch = Object.assign({}, resolvedStateAttrs), this.sharedStateDirty = !1, this.syncSharedStateActiveRegistrations(), null === (_d = getStageStatePerfMonitor(this.stage)) || void 0 === _d || _d.incrementCounter("stateCommits"), null === (_e = getStageStatePerfMonitor(this.stage)) || void 0 === _e || _e.recordEvent("state-commit", {
9518
9563
  graphicId: this._uid,
9519
9564
  targetStates: [...transition.states]
9520
- }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation)) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9565
+ }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !1, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9521
9566
  type: AttributeUpdateType.STATE
9522
9567
  }), this._emitCustomEvent("afterStateUpdate", {
9523
9568
  type: AttributeUpdateType.STATE
@@ -10949,6 +10994,52 @@ class Rect extends Graphic {
10949
10994
  needUpdateTag(key) {
10950
10995
  return super.needUpdateTag(key, RECT_UPDATE_TAG_KEY);
10951
10996
  }
10997
+ shouldSkipStateTransitionDefaultAttribute(key, targetAttrs) {
10998
+ var _a;
10999
+ const attrs = null !== (_a = null != targetAttrs ? targetAttrs : this.baseAttributes) && void 0 !== _a ? _a : this.attribute,
11000
+ hasValue = attrKey => null != attrs[attrKey],
11001
+ isNilValue = attrKey => null == attrs[attrKey];
11002
+ switch (key) {
11003
+ case "width":
11004
+ return isNilValue("width") && hasValue("x") && hasValue("x1");
11005
+ case "height":
11006
+ return isNilValue("height") && hasValue("y") && hasValue("y1");
11007
+ case "x1":
11008
+ return isNilValue("x1") && hasValue("x") && hasValue("width");
11009
+ case "y1":
11010
+ return isNilValue("y1") && hasValue("y") && hasValue("height");
11011
+ default:
11012
+ return !1;
11013
+ }
11014
+ }
11015
+ getStateTransitionDefaultAttribute(key, targetAttrs) {
11016
+ var _a;
11017
+ const attrs = null !== (_a = null != targetAttrs ? targetAttrs : this.baseAttributes) && void 0 !== _a ? _a : this.attribute,
11018
+ getNumber = attrKey => {
11019
+ const value = attrs[attrKey];
11020
+ return "number" == typeof value && Number.isFinite(value) ? value : void 0;
11021
+ },
11022
+ x = getNumber("x"),
11023
+ y = getNumber("y"),
11024
+ x1 = getNumber("x1"),
11025
+ y1 = getNumber("y1"),
11026
+ width = getNumber("width"),
11027
+ height = getNumber("height");
11028
+ switch (key) {
11029
+ case "width":
11030
+ if (null == width && null != x && null != x1) return x1 - x;
11031
+ break;
11032
+ case "height":
11033
+ if (null == height && null != y && null != y1) return y1 - y;
11034
+ break;
11035
+ case "x1":
11036
+ if (null == x1 && null != x && null != width) return x + width;
11037
+ break;
11038
+ case "y1":
11039
+ if (null == y1 && null != y && null != height) return y + height;
11040
+ }
11041
+ return super.getStateTransitionDefaultAttribute(key, targetAttrs);
11042
+ }
10952
11043
  toCustomPath() {
10953
11044
  let path = super.toCustomPath();
10954
11045
  if (path) return path;
@@ -32335,6 +32426,19 @@ function commonInterpolateUpdate(key, from, to, ratio, step, target) {
32335
32426
  return !1;
32336
32427
  }
32337
32428
 
32429
+ function applyAnimationTransientAttributes(target, attributes, type = AttributeUpdateType.ANIMATE_UPDATE) {
32430
+ var _a;
32431
+ if (!attributes) return;
32432
+ const context = {
32433
+ type: type
32434
+ },
32435
+ transientTarget = target;
32436
+ "function" != typeof transientTarget.applyTransientAttributes ? "function" != typeof transientTarget.setAttributesAndPreventAnimate ? (transientTarget.attribute || (transientTarget.attribute = {}), Object.assign(transientTarget.attribute, attributes), null === (_a = transientTarget.onAttributeUpdate) || void 0 === _a || _a.call(transientTarget, context)) : transientTarget.setAttributesAndPreventAnimate(attributes, !1, context) : transientTarget.applyTransientAttributes(attributes, !1, context);
32437
+ }
32438
+ function applyAppearStartAttributes(target, attributes) {
32439
+ applyAnimationTransientAttributes(target, attributes, AttributeUpdateType.ANIMATE_BIND);
32440
+ }
32441
+
32338
32442
  function noop() {}
32339
32443
  class Step {
32340
32444
  constructor(type, props, duration, easing) {
@@ -32460,7 +32564,7 @@ class WaitStep extends Step {
32460
32564
  onStart() {
32461
32565
  super.onStart();
32462
32566
  const fromProps = this.getFromProps();
32463
- this.target.setAttributes(fromProps);
32567
+ applyAnimationTransientAttributes(this.target, fromProps, AttributeUpdateType.ANIMATE_START);
32464
32568
  }
32465
32569
  update(end, ratio, out) {
32466
32570
  this.onStart();
@@ -32675,7 +32779,7 @@ class Animate {
32675
32779
  this.target = target;
32676
32780
  const trackerTarget = this.target;
32677
32781
  return "function" == typeof trackerTarget.trackAnimate ? trackerTarget.trackAnimate(this) : (this.target.animates || (this.target.animates = new Map()), this.target.animates.set(this.id, this)), this.onRemove(() => {
32678
- this.stop(), "function" == typeof trackerTarget.restoreStaticAttribute && trackerTarget.restoreStaticAttribute(), "function" == typeof trackerTarget.untrackAnimate ? trackerTarget.untrackAnimate(this.id) : this.target.animates.delete(this.id);
32782
+ this.stop(), this.__skipRestoreStaticAttributeOnRemove || "function" != typeof trackerTarget.restoreStaticAttribute || trackerTarget.restoreStaticAttribute(), "function" == typeof trackerTarget.untrackAnimate ? trackerTarget.untrackAnimate(this.id) : this.target.animates.delete(this.id);
32679
32783
  }), this.target.onAnimateBind && !this.slience && this.target.onAnimateBind(this), this.target.animationAttribute || (this.target.animationAttribute = {}), this;
32680
32784
  }
32681
32785
  to(props, duration = 300, easing = "linear") {
@@ -32811,7 +32915,7 @@ class Animate {
32811
32915
  if (nextTime >= this._startTime + this._totalDuration) {
32812
32916
  null === (_a = this._lastStep) || void 0 === _a || _a.onUpdate(!0, 1, {}), null === (_b = this._lastStep) || void 0 === _b || _b.onEnd(), this.onEnd(), this.status = AnimateStatus.END;
32813
32917
  const trackerTarget = this.target;
32814
- return void ("function" == typeof (null == trackerTarget ? void 0 : trackerTarget.restoreStaticAttribute) && trackerTarget.restoreStaticAttribute());
32918
+ return "function" == typeof (null == trackerTarget ? void 0 : trackerTarget.restoreStaticAttribute) && trackerTarget.restoreStaticAttribute(), void (this.__skipRestoreStaticAttributeOnRemove = !0);
32815
32919
  }
32816
32920
  this.status = AnimateStatus.RUNNING, this.currentTime <= this._startTime && this.onStart(), this.currentTime = nextTime;
32817
32921
  let cycleTime = nextTime - this._startTime,
@@ -32822,7 +32926,7 @@ class Animate {
32822
32926
  const currentLoop = Math.floor((nextTime - this._startTime) / this._duration);
32823
32927
  newLoop = currentLoop > this._currentLoop, this._currentLoop = currentLoop, bounceTime = this._bounce && currentLoop % 2 == 1, bounceTime && (cycleTime = this._duration - cycleTime);
32824
32928
  }
32825
- newLoop && !bounceTime && this.target.setAttributes(this._startProps);
32929
+ newLoop && !bounceTime && applyAnimationTransientAttributes(this.target, this._startProps, AttributeUpdateType.ANIMATE_START);
32826
32930
  let targetStep = null;
32827
32931
  if (this._lastStep === this._firstStep) targetStep = this._firstStep;else {
32828
32932
  let currentStep = this._firstStep;
@@ -33109,6 +33213,9 @@ class AnimationTransitionRegistry {
33109
33213
  })), this.registerTransition("state", "*", () => ({
33110
33214
  allowTransition: !0,
33111
33215
  stopOriginalTransition: !1
33216
+ })), this.registerTransition("state", "state", () => ({
33217
+ allowTransition: !0,
33218
+ stopOriginalTransition: !0
33112
33219
  })), this.registerTransition("state", "disappear", () => ({
33113
33220
  allowTransition: !0,
33114
33221
  stopOriginalTransition: !0
@@ -33388,7 +33495,8 @@ class AnimateExecutor {
33388
33495
  void 0 !== config.to && ("function" == typeof config.to ? props[key] = config.to(null === (_b = null === (_a = graphic.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], graphic, {}) : props[key] = config.to), void 0 !== config.from && (from || (from = {}), "function" == typeof config.from ? from[key] = config.from(null === (_d = null === (_c = graphic.context) || void 0 === _c ? void 0 : _c.data) || void 0 === _d ? void 0 : _d[0], graphic, {}) : from[key] = config.from);
33389
33496
  }), diffAttrs) for (const key in diffAttrs) {
33390
33497
  const value = diffAttrs[key];
33391
- void 0 !== value && (props.hasOwnProperty(key) || (attrOutChannel[key] = value, hasAttrs = !0));
33498
+ if (void 0 === value) continue;
33499
+ props.hasOwnProperty(key) || !!(null == from ? void 0 : from.hasOwnProperty(key)) || (attrOutChannel[key] = value, hasAttrs = !0);
33392
33500
  }
33393
33501
  return {
33394
33502
  from: from,
@@ -33413,7 +33521,7 @@ class AnimateExecutor {
33413
33521
  stop(type, callEnd = !0) {
33414
33522
  for (; this._animates.length > 0;) {
33415
33523
  const animate = this._animates.pop();
33416
- !1 === callEnd && (animate.status = AnimateStatus.END), null == animate || animate.stop(type);
33524
+ !1 === callEnd && (animate.status = AnimateStatus.END, animate.__skipRestoreStaticAttributeOnRemove = !0), null == animate || animate.stop(type);
33417
33525
  }
33418
33526
  this._animates = [], this._activeCount = 0, this._started && (this._started = !1, callEnd && this.onEnd());
33419
33527
  }
@@ -33846,7 +33954,9 @@ class IncreaseCount extends ACustomAnimate {
33846
33954
  const parts = formattedNumber.toString().split(".");
33847
33955
  parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","), formattedWithBasicFormat = parts.join(".");
33848
33956
  } else formattedWithBasicFormat = formattedNumber;
33849
- formattedText = this.formatTemplate ? this.formatTemplate.replace("{{var}}", formattedWithBasicFormat.toString()) : formattedWithBasicFormat, this.target.setAttribute("text", formattedText);
33957
+ formattedText = this.formatTemplate ? this.formatTemplate.replace("{{var}}", formattedWithBasicFormat.toString()) : formattedWithBasicFormat, applyAnimationTransientAttributes(this.target, {
33958
+ text: formattedText
33959
+ });
33850
33960
  }
33851
33961
  }
33852
33962
 
@@ -33953,7 +34063,7 @@ class MorphingPath extends ACustomAnimate {
33953
34063
  onUpdate(end, ratio, out) {
33954
34064
  const target = this.target,
33955
34065
  pathProxy = "function" == typeof target.pathProxy ? target.pathProxy(target.attribute) : target.pathProxy;
33956
- interpolateMorphingData(this.morphingData, pathProxy, ratio), this.otherAttrs && this.otherAttrs.length && interpolateOtherAttrs(this.otherAttrs, out, ratio), this.target.setAttributes(out), end && !this.saveOnEnd && (this.target.pathProxy = null);
34066
+ interpolateMorphingData(this.morphingData, pathProxy, ratio), this.otherAttrs && this.otherAttrs.length && interpolateOtherAttrs(this.otherAttrs, out, ratio), end && this.saveOnEnd ? this.target.setAttributes(out) : applyAnimationTransientAttributes(this.target, out), end && !this.saveOnEnd && (this.target.pathProxy = null);
33957
34067
  }
33958
34068
  }
33959
34069
  const morphPath = (fromGraphic, toGraphic, animationConfig, fromGraphicTransform) => {
@@ -34184,7 +34294,9 @@ class InputText extends ACustomAnimate {
34184
34294
  const blinkRate = .1;
34185
34295
  Math.floor(ratio / blinkRate) % 2 == 0 && (displayText = this.beforeText + currentText + this.cursorChar + this.afterText);
34186
34296
  } else displayText = this.beforeText + currentText + this.cursorChar + this.afterText;
34187
- this.target.setAttribute("text", displayText);
34297
+ applyAnimationTransientAttributes(this.target, {
34298
+ text: displayText
34299
+ });
34188
34300
  }
34189
34301
  }
34190
34302
 
@@ -34193,11 +34305,9 @@ class ClipGraphicAnimate extends ACustomAnimate {
34193
34305
  super(null, {}, duration, easing, params), this.clipFromAttribute = from, this.clipToAttribute = to, this._group = null == params ? void 0 : params.group, this._clipGraphic = null == params ? void 0 : params.clipGraphic;
34194
34306
  }
34195
34307
  onBind() {
34196
- super.onBind(), this._group && this._clipGraphic && (this._lastClip = this._group.attribute.clip, this._lastPath = this._group.attribute.path, this._group.setAttributes({
34308
+ super.onBind(), this._group && this._clipGraphic && (this._lastClip = this._group.attribute.clip, this._lastPath = this._group.attribute.path, applyAppearStartAttributes(this._group, {
34197
34309
  clip: !0,
34198
34310
  path: [this._clipGraphic]
34199
- }, !1, {
34200
- type: AttributeUpdateType.ANIMATE_BIND
34201
34311
  }));
34202
34312
  }
34203
34313
  onEnd() {
@@ -34410,7 +34520,7 @@ class TagPointsUpdate extends ACustomAnimate {
34410
34520
  return newPoint.context = point.context, newPoint;
34411
34521
  }), this.clipRange) {
34412
34522
  if (this.shrinkClipRange) return void (end ? (out.points = this.toPoints, out.clipRange = 1) : (out.points = this.fromPoints, out.clipRange = this.clipRange - (this.clipRange - this.shrinkClipRange) * ratio));
34413
- this.target.setAttributes({
34523
+ applyAnimationTransientAttributes(this.target, {
34414
34524
  clipRange: this.clipRange + (1 - this.clipRange) * ratio
34415
34525
  });
34416
34526
  }
@@ -34443,7 +34553,7 @@ class CommonIn extends ACustomAnimate {
34443
34553
  this.keys.forEach(key => {
34444
34554
  var _a, _b, _c;
34445
34555
  to[key] = null !== (_a = null == attrs ? void 0 : attrs[key]) && void 0 !== _a ? _a : 1, from[key] = null !== (_c = null !== (_b = from[key]) && void 0 !== _b ? _b : fromAttrs[key]) && void 0 !== _c ? _c : 0;
34446
- }), null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), this.props = to, this.propKeys = this.keys, this.from = from, this.to = to, !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && this.target.setAttributes(from);
34556
+ }), null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), this.props = to, this.propKeys = this.keys, this.from = from, this.to = to, !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && applyAppearStartAttributes(this.target, from);
34447
34557
  }
34448
34558
  onUpdate(end, ratio, out) {
34449
34559
  const attribute = this.target.attribute;
@@ -34697,7 +34807,7 @@ class GrowAngleIn extends GrowAngleBase {
34697
34807
  to: to
34698
34808
  } = growAngleIn(this.target, this.params.options, this.params),
34699
34809
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34700
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && this.target.setAttributes(fromAttrs), this.determineUpdateFunction();
34810
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && applyAppearStartAttributes(this.target, fromAttrs), this.determineUpdateFunction();
34701
34811
  }
34702
34812
  }
34703
34813
  class GrowAngleOut extends GrowAngleBase {
@@ -34847,7 +34957,7 @@ class GrowCenterIn extends ACustomAnimate {
34847
34957
  to: to
34848
34958
  } = growCenterIn(this.target, this.params.options, this.params),
34849
34959
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34850
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && this.target.setAttributes(fromAttrs);
34960
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && applyAppearStartAttributes(this.target, fromAttrs);
34851
34961
  }
34852
34962
  onEnd(cb) {
34853
34963
  super.onEnd(cb);
@@ -34952,7 +35062,7 @@ class GrowHeightIn extends ACustomAnimate {
34952
35062
  to: to
34953
35063
  } = growHeightIn(this.target, this.params.options, this.params),
34954
35064
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34955
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && this.target.setAttributes(fromAttrs);
35065
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && applyAppearStartAttributes(this.target, fromAttrs);
34956
35066
  }
34957
35067
  onEnd(cb) {
34958
35068
  super.onEnd(cb);
@@ -35066,7 +35176,7 @@ class GrowPointsIn extends GworPointsBase {
35066
35176
  from: from,
35067
35177
  to: to
35068
35178
  } = growPointsIn(this.target, this.params.options, this.params);
35069
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(from);
35179
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && applyAppearStartAttributes(this.target, from);
35070
35180
  } else this.valid = !1;
35071
35181
  }
35072
35182
  }
@@ -35128,7 +35238,7 @@ class GrowPointsXIn extends GworPointsBase {
35128
35238
  from: from,
35129
35239
  to: to
35130
35240
  } = growPointsXIn(this.target, this.params.options, this.params);
35131
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(from);
35241
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && applyAppearStartAttributes(this.target, from);
35132
35242
  } else this.valid = !1;
35133
35243
  }
35134
35244
  }
@@ -35190,7 +35300,7 @@ class GrowPointsYIn extends GworPointsBase {
35190
35300
  from: from,
35191
35301
  to: to
35192
35302
  } = growPointsYIn(this.target, this.params.options, this.params);
35193
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(from);
35303
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && applyAppearStartAttributes(this.target, from);
35194
35304
  } else this.valid = !1;
35195
35305
  }
35196
35306
  }
@@ -35302,7 +35412,7 @@ class GrowRadiusIn extends GrowPointsBase {
35302
35412
  to: to
35303
35413
  } = growRadiusIn(this.target, this.params.options, this.params),
35304
35414
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
35305
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && this.target.setAttributes(fromAttrs);
35415
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && applyAppearStartAttributes(this.target, fromAttrs);
35306
35416
  }
35307
35417
  }
35308
35418
  class GrowRadiusOut extends GrowPointsBase {
@@ -35424,7 +35534,7 @@ class GrowWidthIn extends ACustomAnimate {
35424
35534
  to: to
35425
35535
  } = growWidthIn(this.target, this.params.options, this.params),
35426
35536
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
35427
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && this.target.setAttributes(fromAttrs);
35537
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = fromAttrs, this.to = to, null === (_d = (_c = this.target).applyFinalAttributeToAttribute) || void 0 === _d || _d.call(_c), !1 !== (null === (_e = this.params.controlOptions) || void 0 === _e ? void 0 : _e.immediatelyApply) && applyAppearStartAttributes(this.target, fromAttrs);
35428
35538
  }
35429
35539
  onEnd(cb) {
35430
35540
  super.onEnd(cb);
@@ -35475,7 +35585,7 @@ class LabelItemAppear extends AComponentAnimate {
35475
35585
  } = this.params,
35476
35586
  symbolTime = duration / 10;
35477
35587
  let symbolStartOuterFrom, symbolStartOuterTo;
35478
- if (target._symbolStart.setAttributes({
35588
+ if (applyAppearStartAttributes(target._symbolStart, {
35479
35589
  scaleX: 0,
35480
35590
  scaleY: 0
35481
35591
  }), animator.animate(target._symbolStart, {
@@ -35496,12 +35606,12 @@ class LabelItemAppear extends AComponentAnimate {
35496
35606
  clipRange: 0
35497
35607
  }, symbolStartOuterTo = {
35498
35608
  clipRange: 1
35499
- }), target._symbolStartOuter.setAttributes(symbolStartOuterFrom), animator.animate(target._symbolStartOuter, {
35609
+ }), applyAppearStartAttributes(target._symbolStartOuter, symbolStartOuterFrom), animator.animate(target._symbolStartOuter, {
35500
35610
  type: "to",
35501
35611
  to: symbolStartOuterTo,
35502
35612
  duration: 5 * symbolTime,
35503
35613
  easing: easing
35504
- }), target._symbolEnd.setAttributes({
35614
+ }), applyAppearStartAttributes(target._symbolEnd, {
35505
35615
  scaleX: 0,
35506
35616
  scaleY: 0
35507
35617
  }), animator.animate(target._symbolEnd, {
@@ -35513,7 +35623,7 @@ class LabelItemAppear extends AComponentAnimate {
35513
35623
  duration: 2 * symbolTime,
35514
35624
  delay: 8 * symbolTime,
35515
35625
  easing: easing
35516
- }), target._line.setAttributes({
35626
+ }), applyAppearStartAttributes(target._line, {
35517
35627
  clipRange: 0
35518
35628
  }), animator.animate(target._line, {
35519
35629
  type: "to",
@@ -35524,7 +35634,7 @@ class LabelItemAppear extends AComponentAnimate {
35524
35634
  easing: easing
35525
35635
  }), "typewriter" === titleType) {
35526
35636
  const titleTopText = target._titleTop.attribute.text;
35527
- target._titleTop.setAttributes({
35637
+ applyAppearStartAttributes(target._titleTop, {
35528
35638
  text: ""
35529
35639
  }), animator.animate(target._titleTop, {
35530
35640
  type: "custom",
@@ -35537,7 +35647,7 @@ class LabelItemAppear extends AComponentAnimate {
35537
35647
  custom: InputText
35538
35648
  });
35539
35649
  const titleBottomText = target._titleBottom.attribute.text;
35540
- target._titleBottom.setAttributes({
35650
+ applyAppearStartAttributes(target._titleBottom, {
35541
35651
  text: ""
35542
35652
  }), animator.animate(target._titleBottom, {
35543
35653
  type: "custom",
@@ -35549,7 +35659,7 @@ class LabelItemAppear extends AComponentAnimate {
35549
35659
  },
35550
35660
  custom: InputText
35551
35661
  });
35552
- } else target._titleTop.setAttributes({
35662
+ } else applyAppearStartAttributes(target._titleTop, {
35553
35663
  dy: target._titleTop.AABBBounds.height() + 10
35554
35664
  }), animator.animate(target._titleTop, {
35555
35665
  type: "to",
@@ -35559,7 +35669,7 @@ class LabelItemAppear extends AComponentAnimate {
35559
35669
  delay: 5 * symbolTime,
35560
35670
  duration: 4 * symbolTime,
35561
35671
  easing: "linear"
35562
- }), target._titleBottom.setAttributes({
35672
+ }), applyAppearStartAttributes(target._titleBottom, {
35563
35673
  dy: -(10 + target._titleBottom.AABBBounds.height())
35564
35674
  }), animator.animate(target._titleBottom, {
35565
35675
  type: "to",
@@ -35573,7 +35683,7 @@ class LabelItemAppear extends AComponentAnimate {
35573
35683
  "scale" === titlePanelType ? [target._titleTopPanel, target._titleBottomPanel].forEach(panel => {
35574
35684
  var _a;
35575
35685
  const scaleX = null !== (_a = panel.attribute.scaleX) && void 0 !== _a ? _a : 1;
35576
- panel.setAttributes({
35686
+ applyAppearStartAttributes(panel, {
35577
35687
  scaleX: 0
35578
35688
  }), animator.animate(panel, {
35579
35689
  type: "to",
@@ -35586,7 +35696,7 @@ class LabelItemAppear extends AComponentAnimate {
35586
35696
  }) : "stroke" === titlePanelType && [target._titleTopPanel, target._titleBottomPanel].forEach(panel => {
35587
35697
  const b = panel.AABBBounds,
35588
35698
  totalLen = 2 * (b.width() + b.height());
35589
- panel.setAttributes({
35699
+ applyAppearStartAttributes(panel, {
35590
35700
  lineDash: [0, 10 * totalLen]
35591
35701
  }), animator.animate(panel, {
35592
35702
  type: "to",
@@ -35693,7 +35803,7 @@ class PoptipAppear extends AComponentAnimate {
35693
35803
  {
35694
35804
  wave: wave
35695
35805
  } = this.params;
35696
- if (target.setAttributes({
35806
+ if (applyAppearStartAttributes(target, {
35697
35807
  scaleX: 0,
35698
35808
  scaleY: 0
35699
35809
  }), animator.animate(target, {
@@ -35846,7 +35956,9 @@ class InputRichText extends ACustomAnimate {
35846
35956
  }
35847
35957
  }
35848
35958
  }
35849
- this.target.setAttribute("textConfig", currentTextConfig);
35959
+ applyAnimationTransientAttributes(this.target, {
35960
+ textConfig: currentTextConfig
35961
+ });
35850
35962
  }
35851
35963
  }
35852
35964
 
@@ -35873,18 +35985,21 @@ class OutputRichText extends ACustomAnimate {
35873
35985
  displayedLength = Math.round(fromItems * (1 - adjustedRatio));
35874
35986
  } else displayedLength = Math.round(fromItems * (1 - ratio));
35875
35987
  let currentTextConfig = "forward" === this.direction ? this.fromTextConfig.slice(fromItems - displayedLength) : this.fromTextConfig.slice(0, displayedLength);
35876
- this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), this.target.setAttribute("textConfig", currentTextConfig);
35988
+ this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), applyAnimationTransientAttributes(this.target, {
35989
+ textConfig: currentTextConfig
35990
+ });
35877
35991
  } else {
35878
35992
  if (this.fadeOutChars) {
35879
35993
  const adjustedRatio = Math.min(1, ratio / maxTextHideRatio);
35880
35994
  displayedLength = Math.round(fromItems * (1 - adjustedRatio));
35881
35995
  } else displayedLength = Math.round(fromItems * (1 - ratio));
35882
35996
  let currentTextConfig = this.fromTextConfig.slice(0, displayedLength);
35883
- this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), this.target.setAttribute("textConfig", currentTextConfig);
35997
+ this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), applyAnimationTransientAttributes(this.target, {
35998
+ textConfig: currentTextConfig
35999
+ });
35884
36000
  }
35885
36001
  }
35886
36002
  applyFadeEffect(textConfig, ratio, totalItems, displayedLength) {
35887
- "forward" === this.direction ? totalItems - displayedLength : displayedLength;
35888
36003
  const fadeProgress = (ratio - (1 - this.fadeOutDuration)) / this.fadeOutDuration,
35889
36004
  fadeOpacity = Math.max(0, 1 - Math.min(1, fadeProgress));
35890
36005
  return textConfig.map((item, index) => {
@@ -35986,7 +36101,9 @@ class SlideRichText extends ACustomAnimate {
35986
36101
  if (!this.valid) return;
35987
36102
  const maxTextShowRatio = 1 - this.fadeInDuration;
35988
36103
  let updatedTextConfig;
35989
- updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), this.target.setAttribute("textConfig", updatedTextConfig);
36104
+ updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), applyAnimationTransientAttributes(this.target, {
36105
+ textConfig: updatedTextConfig
36106
+ });
35990
36107
  }
35991
36108
  updateByWord(ratio, maxTextShowRatio) {
35992
36109
  const totalGroups = this.wordGroups.length,
@@ -36115,7 +36232,9 @@ class SlideOutRichText extends ACustomAnimate {
36115
36232
  if (!this.valid) return;
36116
36233
  const maxTextShowRatio = 1 - this.fadeOutDuration;
36117
36234
  let updatedTextConfig;
36118
- updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), this.target.setAttribute("textConfig", updatedTextConfig);
36235
+ updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), applyAnimationTransientAttributes(this.target, {
36236
+ textConfig: updatedTextConfig
36237
+ });
36119
36238
  }
36120
36239
  updateByWord(ratio, maxTextShowRatio) {
36121
36240
  const totalGroups = this.wordGroups.length,
@@ -36214,7 +36333,7 @@ class ScaleIn extends ACustomAnimate {
36214
36333
  scaleY: null !== (_k = null == attrs ? void 0 : attrs.scaleY) && void 0 !== _k ? _k : 1
36215
36334
  }, this._updateFunction = this.updateXY;
36216
36335
  }
36217
- null === (_m = (_l = this.target).applyFinalAttributeToAttribute) || void 0 === _m || _m.call(_l), this.props = to, this.from = from, this.to = to, !1 !== (null === (_o = this.params.controlOptions) || void 0 === _o ? void 0 : _o.immediatelyApply) && this.target.setAttributes(from);
36336
+ null === (_m = (_l = this.target).applyFinalAttributeToAttribute) || void 0 === _m || _m.call(_l), this.props = to, this.from = from, this.to = to, !1 !== (null === (_o = this.params.controlOptions) || void 0 === _o ? void 0 : _o.immediatelyApply) && applyAppearStartAttributes(this.target, from);
36218
36337
  }
36219
36338
  onEnd(cb) {
36220
36339
  super.onEnd(cb);
@@ -36317,7 +36436,7 @@ class SlideIn extends ACustomAnimate {
36317
36436
  opacity: 1,
36318
36437
  baseOpacity: 1
36319
36438
  };
36320
- "top" === direction ? (from.y = (null !== (_e = attrs.y) && void 0 !== _e ? _e : 0) - distance, to.y = null !== (_f = attrs.y) && void 0 !== _f ? _f : 0, this.propKeys = ["opacity", "baseOpacity", "y"]) : "bottom" === direction ? (from.y = (null !== (_g = attrs.y) && void 0 !== _g ? _g : 0) + distance, to.y = null !== (_h = attrs.y) && void 0 !== _h ? _h : 0, this.propKeys = ["opacity", "baseOpacity", "y"]) : "left" === direction ? (from.x = (null !== (_j = attrs.x) && void 0 !== _j ? _j : 0) - distance, to.x = null !== (_k = attrs.x) && void 0 !== _k ? _k : 0, this.propKeys = ["opacity", "baseOpacity", "x"]) : (from.x = (null !== (_l = attrs.x) && void 0 !== _l ? _l : 0) + distance, to.x = null !== (_m = attrs.x) && void 0 !== _m ? _m : 0, this.propKeys = ["opacity", "baseOpacity", "x"]), this.from = from, this.to = to, this.props = to, this.target.setAttributes(from);
36439
+ "top" === direction ? (from.y = (null !== (_e = attrs.y) && void 0 !== _e ? _e : 0) - distance, to.y = null !== (_f = attrs.y) && void 0 !== _f ? _f : 0, this.propKeys = ["opacity", "baseOpacity", "y"]) : "bottom" === direction ? (from.y = (null !== (_g = attrs.y) && void 0 !== _g ? _g : 0) + distance, to.y = null !== (_h = attrs.y) && void 0 !== _h ? _h : 0, this.propKeys = ["opacity", "baseOpacity", "y"]) : "left" === direction ? (from.x = (null !== (_j = attrs.x) && void 0 !== _j ? _j : 0) - distance, to.x = null !== (_k = attrs.x) && void 0 !== _k ? _k : 0, this.propKeys = ["opacity", "baseOpacity", "x"]) : (from.x = (null !== (_l = attrs.x) && void 0 !== _l ? _l : 0) + distance, to.x = null !== (_m = attrs.x) && void 0 !== _m ? _m : 0, this.propKeys = ["opacity", "baseOpacity", "x"]), this.from = from, this.to = to, this.props = to, applyAppearStartAttributes(this.target, from);
36321
36440
  }
36322
36441
  onUpdate(end, ratio, out) {
36323
36442
  const attribute = this.target.attribute;
@@ -36345,7 +36464,7 @@ class GrowIn extends ACustomAnimate {
36345
36464
  opacity: 1,
36346
36465
  baseOpacity: 1
36347
36466
  };
36348
- this.propKeys = ["opacity", "baseOpacity"], "x" !== direction && "xy" !== direction || (from.scaleX = fromScale, to.scaleX = null !== (_f = attrs.scaleX) && void 0 !== _f ? _f : 1, this.propKeys.push("scaleX")), "y" !== direction && "xy" !== direction || (from.scaleY = fromScale, to.scaleY = null !== (_g = attrs.scaleY) && void 0 !== _g ? _g : 1, this.propKeys.push("scaleY")), this.from = from, this.to = to, this.props = to, this.target.setAttributes(from);
36467
+ this.propKeys = ["opacity", "baseOpacity"], "x" !== direction && "xy" !== direction || (from.scaleX = fromScale, to.scaleX = null !== (_f = attrs.scaleX) && void 0 !== _f ? _f : 1, this.propKeys.push("scaleX")), "y" !== direction && "xy" !== direction || (from.scaleY = fromScale, to.scaleY = null !== (_g = attrs.scaleY) && void 0 !== _g ? _g : 1, this.propKeys.push("scaleY")), this.from = from, this.to = to, this.props = to, applyAppearStartAttributes(this.target, from);
36349
36468
  }
36350
36469
  onUpdate(end, ratio, out) {
36351
36470
  const attribute = this.target.attribute;
@@ -36379,7 +36498,7 @@ class SpinIn extends ACustomAnimate {
36379
36498
  scaleX: null !== (_h = attrs.scaleX) && void 0 !== _h ? _h : 1,
36380
36499
  scaleY: null !== (_j = attrs.scaleY) && void 0 !== _j ? _j : 1
36381
36500
  };
36382
- this.propKeys = ["opacity", "baseOpacity", "angle", "scaleX", "scaleY"], this.from = from, this.to = to, this.props = to, this.target.setAttributes(from);
36501
+ this.propKeys = ["opacity", "baseOpacity", "angle", "scaleX", "scaleY"], this.from = from, this.to = to, this.props = to, applyAppearStartAttributes(this.target, from);
36383
36502
  }
36384
36503
  onUpdate(end, ratio, out) {
36385
36504
  const attribute = this.target.attribute;
@@ -36426,7 +36545,7 @@ class StrokeIn extends ACustomAnimate {
36426
36545
  lineWidth: lineWidth,
36427
36546
  stroke: strokeColor,
36428
36547
  strokeOpacity: fromOpacity
36429
- }, showFill ? (this.from.fillOpacity = fillOpacity, this.to.fillOpacity = null !== (_t = this.originalAttributes.fillOpacity) && void 0 !== _t ? _t : 1) : (this.from.fillOpacity = 0, this.to.fillOpacity = 0), this.propKeys = ["lineDash", "lineDashOffset", "lineWidth", "stroke", "strokeOpacity", "fillOpacity"], this.props = this.to, this.target.setAttributes(this.from);
36548
+ }, showFill ? (this.from.fillOpacity = fillOpacity, this.to.fillOpacity = null !== (_t = this.originalAttributes.fillOpacity) && void 0 !== _t ? _t : 1) : (this.from.fillOpacity = 0, this.to.fillOpacity = 0), this.propKeys = ["lineDash", "lineDashOffset", "lineWidth", "stroke", "strokeOpacity", "fillOpacity"], this.props = this.to, applyAppearStartAttributes(this.target, this.from);
36430
36549
  }
36431
36550
  onUpdate(end, ratio, out) {
36432
36551
  var _a;
@@ -36478,7 +36597,7 @@ class StrokeOut extends ACustomAnimate {
36478
36597
  lineWidth: lineWidth,
36479
36598
  stroke: strokeColor,
36480
36599
  strokeOpacity: fromOpacity
36481
- }, showFill ? (this.from.fillOpacity = null !== (_r = this.originalAttributes.fillOpacity) && void 0 !== _r ? _r : 1, this.to.fillOpacity = 0) : (this.from.fillOpacity = 0, this.to.fillOpacity = 0), this.propKeys = ["lineDash", "lineDashOffset", "lineWidth", "stroke", "strokeOpacity", "fillOpacity"], this.props = this.to, this.target.setAttributes(this.from);
36600
+ }, showFill ? (this.from.fillOpacity = null !== (_r = this.originalAttributes.fillOpacity) && void 0 !== _r ? _r : 1, this.to.fillOpacity = 0) : (this.from.fillOpacity = 0, this.to.fillOpacity = 0), this.propKeys = ["lineDash", "lineDashOffset", "lineWidth", "stroke", "strokeOpacity", "fillOpacity"], this.props = this.to, applyAppearStartAttributes(this.target, this.from);
36482
36601
  }
36483
36602
  onUpdate(end, ratio, out) {
36484
36603
  var _a;
@@ -36750,9 +36869,17 @@ class PulseAnimate extends ACustomAnimate {
36750
36869
  }
36751
36870
  }
36752
36871
 
36872
+ const clipPathGeometryAttrs = {
36873
+ x: !0,
36874
+ y: !0,
36875
+ x1: !0,
36876
+ y1: !0,
36877
+ width: !0,
36878
+ height: !0
36879
+ };
36753
36880
  class Update extends ACustomAnimate {
36754
36881
  constructor(from, to, duration, easing, params) {
36755
- super(from, to, duration, easing, params);
36882
+ super(from, to, duration, easing, params), this.clipPathSyncKeys = null, this.clipPathSyncParent = null, this.clipPathSyncChildIndex = -1, this.clipPathSyncDisabled = !1;
36756
36883
  }
36757
36884
  onBind() {
36758
36885
  var _a, _b;
@@ -36765,7 +36892,25 @@ class Update extends ACustomAnimate {
36765
36892
  } = this.params;
36766
36893
  diffAttrs = Object.assign({}, diffAttrs), (null === (_b = null == options ? void 0 : options.excludeChannels) || void 0 === _b ? void 0 : _b.length) && options.excludeChannels.forEach(channel => {
36767
36894
  delete diffAttrs[channel];
36768
- }), this.props = diffAttrs;
36895
+ }), this.props = diffAttrs, this.clipPathSyncKeys = Object.keys(diffAttrs).filter(key => clipPathGeometryAttrs[key]), this.clipPathSyncDisabled = !this.clipPathSyncKeys.length, this.syncParentClipPathToTarget();
36896
+ }
36897
+ getStaticCommitAttrs() {
36898
+ var _a;
36899
+ if (!this.props) return null;
36900
+ const target = this.target,
36901
+ contextFinalAttrs = null === (_a = target.context) || void 0 === _a ? void 0 : _a.finalAttrs,
36902
+ finalAttribute = "function" == typeof target.getFinalAttribute ? target.getFinalAttribute() : target.finalAttribute,
36903
+ commitAttrs = {};
36904
+ return Object.keys(this.props).forEach(key => {
36905
+ contextFinalAttrs && Object.prototype.hasOwnProperty.call(contextFinalAttrs, key) ? commitAttrs[key] = contextFinalAttrs[key] : finalAttribute && Object.prototype.hasOwnProperty.call(finalAttribute, key) ? commitAttrs[key] = finalAttribute[key] : this.animate.validAttr(key) && (commitAttrs[key] = this.props[key]);
36906
+ }), Object.keys(commitAttrs).length ? commitAttrs : null;
36907
+ }
36908
+ onEnd(cb) {
36909
+ if (cb) return void super.onEnd(cb);
36910
+ const commitAttrs = this.getStaticCommitAttrs();
36911
+ commitAttrs && this.target.setAttributes(commitAttrs, !1, {
36912
+ type: AttributeUpdateType.ANIMATE_END
36913
+ }), this.syncParentClipPathToTarget(), super.onEnd();
36769
36914
  }
36770
36915
  update(end, ratio, out) {
36771
36916
  if (this.onStart(), !this.props || !this.propKeys) return;
@@ -36774,7 +36919,58 @@ class Update extends ACustomAnimate {
36774
36919
  if (!this.animate.validAttr(this.propKeys[index])) return;
36775
36920
  const key = this.propKeys[index];
36776
36921
  func(key, this.fromProps[key], this.props[key], easedRatio, this, this.target);
36777
- }), this.onUpdate(end, easedRatio, out);
36922
+ }), this.syncParentClipPathToTarget(), this.onUpdate(end, easedRatio, out);
36923
+ }
36924
+ syncParentClipPathToTarget() {
36925
+ var _a, _b;
36926
+ if (this.clipPathSyncDisabled) return;
36927
+ const target = this.target,
36928
+ parent = target.parent,
36929
+ path = null === (_a = null == parent ? void 0 : parent.attribute) || void 0 === _a ? void 0 : _a.path;
36930
+ if (!(null === (_b = null == parent ? void 0 : parent.attribute) || void 0 === _b ? void 0 : _b.clip) || !Array.isArray(path) || !path.length) return;
36931
+ const childIndex = this.getClipPathSyncChildIndex(parent);
36932
+ if (childIndex < 0 || childIndex >= path.length) return;
36933
+ const clipGraphic = path[childIndex];
36934
+ if (!(null == clipGraphic ? void 0 : clipGraphic.attribute) || clipGraphic.type !== target.type || !this.isClipPathStaticTarget(clipGraphic)) return void (this.clipPathSyncDisabled = !0);
36935
+ const syncAttrs = this.buildClipPathTransientAttrs(clipGraphic);
36936
+ syncAttrs && applyAnimationTransientAttributes(clipGraphic, syncAttrs, AttributeUpdateType.ANIMATE_UPDATE);
36937
+ }
36938
+ getClipPathSyncChildIndex(parent) {
36939
+ var _a;
36940
+ if (this.clipPathSyncParent === parent && this.clipPathSyncChildIndex >= 0) return this.clipPathSyncChildIndex;
36941
+ const target = this.target;
36942
+ let childIndex = -1;
36943
+ return null === (_a = parent.forEachChildren) || void 0 === _a || _a.call(parent, (child, index) => child === target && (childIndex = index, !0)), this.clipPathSyncParent = parent, this.clipPathSyncChildIndex = childIndex, childIndex;
36944
+ }
36945
+ isClipPathStaticTarget(clipGraphic) {
36946
+ var _a, _b;
36947
+ const target = this.target,
36948
+ targetFinalAttrs = this.getTargetFinalAttrs(),
36949
+ clipGraphicFinalAttrs = "function" == typeof clipGraphic.getFinalAttribute ? clipGraphic.getFinalAttribute() : clipGraphic.finalAttribute,
36950
+ clipFinalAttrs = null !== (_a = null != clipGraphicFinalAttrs ? clipGraphicFinalAttrs : clipGraphic.baseAttributes) && void 0 !== _a ? _a : clipGraphic.attribute,
36951
+ keys = null !== (_b = this.clipPathSyncKeys) && void 0 !== _b ? _b : [];
36952
+ return !!(keys.length && targetFinalAttrs && clipFinalAttrs) && keys.every(key => {
36953
+ var _a, _b;
36954
+ return this.isSameClipPathValue(clipFinalAttrs[key], null !== (_a = targetFinalAttrs[key]) && void 0 !== _a ? _a : null === (_b = target.attribute) || void 0 === _b ? void 0 : _b[key]);
36955
+ });
36956
+ }
36957
+ getTargetFinalAttrs() {
36958
+ var _a, _b, _c;
36959
+ const target = this.target;
36960
+ return null !== (_c = null !== (_b = null === (_a = target.context) || void 0 === _a ? void 0 : _a.finalAttrs) && void 0 !== _b ? _b : "function" == typeof target.getFinalAttribute ? target.getFinalAttribute() : target.finalAttribute) && void 0 !== _c ? _c : null;
36961
+ }
36962
+ isSameClipPathValue(a, b) {
36963
+ return "number" == typeof a && "number" == typeof b ? Math.abs(a - b) < 1e-8 : a === b;
36964
+ }
36965
+ buildClipPathTransientAttrs(clipGraphic) {
36966
+ var _a;
36967
+ const target = this.target,
36968
+ attrs = {};
36969
+ return (null !== (_a = this.clipPathSyncKeys) && void 0 !== _a ? _a : []).forEach(key => {
36970
+ var _a;
36971
+ const nextValue = null === (_a = target.attribute) || void 0 === _a ? void 0 : _a[key];
36972
+ Object.prototype.hasOwnProperty.call(clipGraphic.attribute, key) && void 0 !== nextValue && !this.isSameClipPathValue(clipGraphic.attribute[key], nextValue) && (attrs[key] = nextValue);
36973
+ }), Object.keys(attrs).length ? attrs : null;
36778
36974
  }
36779
36975
  }
36780
36976
 
@@ -36895,7 +37091,7 @@ class MoveIn extends MoveBase {
36895
37091
  from: from,
36896
37092
  to: to
36897
37093
  } = moveIn(this.target, this.params.options, this.params);
36898
- this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(from);
37094
+ this.props = to, this.propKeys = Object.keys(to).filter(key => null != to[key]), this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && applyAppearStartAttributes(this.target, from);
36899
37095
  }
36900
37096
  }
36901
37097
  class MoveOut extends MoveBase {
@@ -36954,7 +37150,7 @@ class RotateIn extends RotateBase {
36954
37150
  from: from,
36955
37151
  to: to
36956
37152
  } = rotateIn(this.target, this.params.options);
36957
- this.props = to, this.propKeys = ["angle"], this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && this.target.setAttributes(from);
37153
+ this.props = to, this.propKeys = ["angle"], this.from = from, this.to = to, null === (_b = (_a = this.target).applyFinalAttributeToAttribute) || void 0 === _b || _b.call(_a), !1 !== (null === (_c = this.params.controlOptions) || void 0 === _c ? void 0 : _c.immediatelyApply) && applyAppearStartAttributes(this.target, from);
36958
37154
  }
36959
37155
  }
36960
37156
  class RotateOut extends RotateBase {
@@ -36970,8 +37166,8 @@ class RotateOut extends RotateBase {
36970
37166
 
36971
37167
  class MotionPath extends ACustomAnimate {
36972
37168
  constructor(from, to, duration, easing, params) {
36973
- var _a;
36974
- super(from, to, duration, easing, params), params && (this.pathLength = params.path.getLength(), this.path = params.path, this.distance = params.distance, this.totalLength = this.distance * this.pathLength, this.initAngle = null !== (_a = params.initAngle) && void 0 !== _a ? _a : 0, this.changeAngle = !!params.changeAngle, this.cb = params.cb);
37169
+ var _a, _b, _c;
37170
+ super(from, to, duration, easing, params), params && (this.pathLength = params.path.getLength(), this.path = params.path, this.distance = params.distance, this.totalLength = this.distance * this.pathLength, this.initAngle = null !== (_a = params.initAngle) && void 0 !== _a ? _a : 0, this.changeAngle = !!params.changeAngle, this.commitOnEnd = null === (_c = null !== (_b = params.commitOnEnd) && void 0 !== _b ? _b : params.saveOnEnd) || void 0 === _c || _c, this.cb = params.cb);
36975
37171
  }
36976
37172
  onBind() {
36977
37173
  this.from = {
@@ -36986,7 +37182,7 @@ class MotionPath extends ACustomAnimate {
36986
37182
  pos: pos,
36987
37183
  angle: angle
36988
37184
  } = this.path.getAttrAt(at);
36989
- attrs.x = pos.x, attrs.y = pos.y, this.changeAngle && (attrs.angle = angle + this.initAngle), this.cb && this.cb(this.from, this.to, ratio, this.target), this.target.setAttributes(attrs);
37185
+ attrs.x = pos.x, attrs.y = pos.y, this.changeAngle && (attrs.angle = angle + this.initAngle), this.cb && this.cb(this.from, this.to, ratio, this.target), end && this.commitOnEnd ? this.target.setAttributes(attrs) : applyAnimationTransientAttributes(this.target, attrs);
36990
37186
  }
36991
37187
  }
36992
37188
 
@@ -40734,6 +40930,20 @@ class AnimateComponent extends AbstractComponent {
40734
40930
  }
40735
40931
  }
40736
40932
 
40933
+ function commitUpdateAnimationTarget(graphic, targetAttrs, startAttrs) {
40934
+ var _a, _b, _c, _d;
40935
+ if (!graphic || !targetAttrs) return;
40936
+ const committedTargetAttrs = cloneDeep(targetAttrs),
40937
+ transientStartAttrs = cloneDeep(null != startAttrs ? startAttrs : graphic.attribute);
40938
+ graphic.setAttributes(committedTargetAttrs);
40939
+ const baseAttributes = graphic.baseAttributes;
40940
+ baseAttributes && "object" == typeof baseAttributes && Object.keys(committedTargetAttrs).forEach(key => {
40941
+ baseAttributes[key] = cloneDeep(committedTargetAttrs[key]);
40942
+ }), null === (_b = (_a = graphic).setFinalAttributes) || void 0 === _b || _b.call(_a, committedTargetAttrs), null === (_d = (_c = graphic).setAttributesAndPreventAnimate) || void 0 === _d || _d.call(_c, transientStartAttrs, !1, {
40943
+ type: AttributeUpdateType.ANIMATE_BIND
40944
+ });
40945
+ }
40946
+
40737
40947
  const DefaultAxisAnimation = {
40738
40948
  type: "default",
40739
40949
  duration: 300,
@@ -41059,33 +41269,29 @@ class AxisBase extends AnimateComponent {
41059
41269
  var _a;
41060
41270
  if ("group" !== el.type && el.id) {
41061
41271
  const oldEl = prevInnerView[el.id];
41062
- if (el.setFinalAttributes(el.attribute), oldEl) {
41272
+ if (oldEl) {
41063
41273
  oldEl.release();
41064
- const oldAttrs = oldEl.attribute,
41065
- finalAttrs = el.getFinalAttribute(),
41274
+ const oldAttrs = cloneDeep(oldEl.attribute),
41275
+ finalAttrs = cloneDeep(el.attribute),
41066
41276
  diffAttrs = diff(oldAttrs, finalAttrs);
41067
41277
  let hasDiff = Object.keys(diffAttrs).length > 0;
41068
- if ("opacity" in oldAttrs && finalAttrs.opacity !== oldAttrs.opacity && (diffAttrs.opacity = null !== (_a = finalAttrs.opacity) && void 0 !== _a ? _a : 1, hasDiff = !0), animationConfig.update && hasDiff) {
41069
- this._newElementAttrMap[el.id] = {
41070
- state: "update",
41071
- node: el,
41072
- attrs: el.attribute
41073
- };
41074
- const oldAttrs = oldEl.attribute;
41075
- el.setAttributes(oldAttrs), el.applyAnimationState(["update"], [{
41076
- name: "update",
41077
- animation: Object.assign(Object.assign({
41078
- selfOnly: !0
41079
- }, animationConfig.update), {
41080
- type: "axisUpdate",
41081
- customParameters: {
41082
- config: animationConfig.update,
41083
- diffAttrs: diffAttrs,
41084
- lastScale: lastScale
41085
- }
41086
- })
41087
- }]);
41088
- }
41278
+ "opacity" in oldAttrs && finalAttrs.opacity !== oldAttrs.opacity && (diffAttrs.opacity = null !== (_a = finalAttrs.opacity) && void 0 !== _a ? _a : 1, hasDiff = !0), animationConfig.update && hasDiff && (this._newElementAttrMap[el.id] = {
41279
+ state: "update",
41280
+ node: el,
41281
+ attrs: finalAttrs
41282
+ }, commitUpdateAnimationTarget(el, finalAttrs, oldAttrs), el.applyAnimationState(["update"], [{
41283
+ name: "update",
41284
+ animation: Object.assign(Object.assign({
41285
+ selfOnly: !0
41286
+ }, animationConfig.update), {
41287
+ type: "axisUpdate",
41288
+ customParameters: {
41289
+ config: animationConfig.update,
41290
+ diffAttrs: diffAttrs,
41291
+ lastScale: lastScale
41292
+ }
41293
+ })
41294
+ }]));
41089
41295
  } else animationConfig.enter && (this._newElementAttrMap[el.id] = {
41090
41296
  state: "enter",
41091
41297
  node: el,
@@ -41429,7 +41635,10 @@ class AxisEnter extends AComponentAnimate {
41429
41635
  const point = getTickCoord(lastScale.scale(currData.rawValue)),
41430
41636
  newX = this.target.attribute.x,
41431
41637
  newY = this.target.attribute.y;
41432
- this.target.setAttributes({
41638
+ commitUpdateAnimationTarget(this.target, {
41639
+ x: newX,
41640
+ y: newY
41641
+ }, {
41433
41642
  x: point.x,
41434
41643
  y: point.y
41435
41644
  }), animator.animate(this.target, {
@@ -41457,10 +41666,9 @@ class AxisUpdate extends AComponentAnimate {
41457
41666
  const duration = this.duration,
41458
41667
  easing = this.easing,
41459
41668
  {
41460
- config: config,
41461
41669
  diffAttrs: diffAttrs
41462
41670
  } = this.params;
41463
- animator.animate(this.target, {
41671
+ commitUpdateAnimationTarget(this.target, Object.assign({}, diffAttrs)), animator.animate(this.target, {
41464
41672
  type: "to",
41465
41673
  to: Object.assign({}, diffAttrs),
41466
41674
  duration: duration,
@@ -42345,6 +42553,7 @@ class GroupTransition extends ACustomAnimate {
42345
42553
  super(...arguments), this.mode = AnimateMode.NORMAL;
42346
42554
  }
42347
42555
  onBind() {
42556
+ this._started = !1;
42348
42557
  const currentInnerView = this.target.getInnerView(),
42349
42558
  prevInnerView = this.target.getPrevInnerView();
42350
42559
  prevInnerView && (this._newElementAttrMap = {}, traverseGroup(currentInnerView, el => {
@@ -42362,7 +42571,7 @@ class GroupTransition extends ACustomAnimate {
42362
42571
  fillOpacity: null !== (_b = newProps.fillOpacity) && void 0 !== _b ? _b : 1,
42363
42572
  strokeOpacity: null !== (_c = newProps.strokeOpacity) && void 0 !== _c ? _c : 1
42364
42573
  })
42365
- }, el.setAttributes(oldEl.attribute);
42574
+ }, commitUpdateAnimationTarget(el, this._newElementAttrMap[el.id].attrs, cloneDeep(oldEl.attribute));
42366
42575
  }
42367
42576
  } else {
42368
42577
  const finalOpacityAttrs = {
@@ -42374,7 +42583,7 @@ class GroupTransition extends ACustomAnimate {
42374
42583
  state: "enter",
42375
42584
  node: el,
42376
42585
  attrs: finalOpacityAttrs
42377
- }, el.setAttributes({
42586
+ }, commitUpdateAnimationTarget(el, finalOpacityAttrs, {
42378
42587
  opacity: 0,
42379
42588
  fillOpacity: 0,
42380
42589
  strokeOpacity: 0
@@ -42384,6 +42593,8 @@ class GroupTransition extends ACustomAnimate {
42384
42593
  }));
42385
42594
  }
42386
42595
  onStart() {
42596
+ if (this._started) return;
42597
+ this._started = !0;
42387
42598
  let duration = this.duration,
42388
42599
  easing = this.easing;
42389
42600
  this._newElementAttrMap && Object.keys(this._newElementAttrMap).forEach(id => {
@@ -44480,7 +44691,7 @@ class LabelBase extends AnimateComponent {
44480
44691
  text: curText,
44481
44692
  labelLine: curLabelLine
44482
44693
  } = currentLabel;
44483
- prevText.applyAnimationState(["update"], [{
44694
+ commitUpdateAnimationTarget(prevText, null == curText ? void 0 : curText.attribute), commitUpdateAnimationTarget(prevLabelLine, null == curLabelLine ? void 0 : curLabelLine.attribute), prevText.applyAnimationState(["update"], [{
44484
44695
  name: "update",
44485
44696
  animation: {
44486
44697
  type: "labelUpdate",
@@ -44506,7 +44717,6 @@ class LabelBase extends AnimateComponent {
44506
44717
  }
44507
44718
  _updateLabel(prevLabel, currentLabel) {
44508
44719
  const {
44509
- text: prevText,
44510
44720
  labelLine: prevLabelLine
44511
44721
  } = prevLabel,
44512
44722
  {
@@ -47075,7 +47285,10 @@ function graphicFadeIn(graphic, delay, duration, easing) {
47075
47285
  null === (_a = null == graphic ? void 0 : graphic.animates) || void 0 === _a || _a.forEach(a => a.stop("end"));
47076
47286
  const fillOpacityConfig = null !== (_c = null === (_b = graphic.attribute) || void 0 === _b ? void 0 : _b.fillOpacity) && void 0 !== _c ? _c : 1,
47077
47287
  strokeOpacityConfig = null !== (_e = null === (_d = graphic.attribute) || void 0 === _d ? void 0 : _d.strokeOpacity) && void 0 !== _e ? _e : 1;
47078
- graphic.setAttributes({
47288
+ commitUpdateAnimationTarget(graphic, {
47289
+ fillOpacity: fillOpacityConfig,
47290
+ strokeOpacity: strokeOpacityConfig
47291
+ }, {
47079
47292
  fillOpacity: 0,
47080
47293
  strokeOpacity: 0
47081
47294
  }), graphic.animate().wait(delay).to({
@@ -47091,7 +47304,10 @@ function tagFadeIn(tag, delay, duration, easing) {
47091
47304
  }
47092
47305
  function graphicFadeOut(graphic, delay, duration, easing) {
47093
47306
  var _a, _b, _c, _d;
47094
- graphic && (graphic.setAttributes({
47307
+ graphic && (commitUpdateAnimationTarget(graphic, {
47308
+ fillOpacity: 0,
47309
+ strokeOpacity: 0
47310
+ }, {
47095
47311
  fillOpacity: null !== (_b = null === (_a = graphic.attribute) || void 0 === _a ? void 0 : _a.fillOpacity) && void 0 !== _b ? _b : 1,
47096
47312
  strokeOpacity: null !== (_d = null === (_c = graphic.attribute) || void 0 === _c ? void 0 : _c.strokeOpacity) && void 0 !== _d ? _d : 1
47097
47313
  }), graphic.animate().wait(delay).to({
@@ -47111,7 +47327,11 @@ function commonLineClipIn(line, label, duration, delay, easing) {
47111
47327
  lineDuration = .7 * duration,
47112
47328
  endSymbolDuration = .1 * duration,
47113
47329
  labelDuration = .1 * duration;
47114
- graphicFadeIn(line.startSymbol, delay, startSymbolDuration, easing), line.lines.forEach(line => line.setAttribute("clipRange", 0)), line.lines.forEach((l, index) => {
47330
+ graphicFadeIn(line.startSymbol, delay, startSymbolDuration, easing), line.lines.forEach(line => commitUpdateAnimationTarget(line, {
47331
+ clipRange: 1
47332
+ }, {
47333
+ clipRange: 0
47334
+ })), line.lines.forEach((l, index) => {
47115
47335
  const stepDuration = lineDuration / line.lines.length;
47116
47336
  l.animate().wait(delay + startSymbolDuration + index * stepDuration).to({
47117
47337
  clipRange: 1
@@ -47169,7 +47389,11 @@ function pointCallIn(itemLine, decorativeLine, item, duration, delay, easing) {
47169
47389
  decorativeDuration = .05 * duration,
47170
47390
  endSymbolDuration = .1 * duration,
47171
47391
  labelDuration = .1 * duration;
47172
- graphicFadeIn(itemLine.startSymbol, delay, startSymbolDuration, easing), itemLine.lines.forEach(line => line.setAttribute("clipRange", 0)), itemLine.lines.forEach((l, index) => {
47392
+ graphicFadeIn(itemLine.startSymbol, delay, startSymbolDuration, easing), itemLine.lines.forEach(line => commitUpdateAnimationTarget(line, {
47393
+ clipRange: 1
47394
+ }, {
47395
+ clipRange: 0
47396
+ })), itemLine.lines.forEach((l, index) => {
47173
47397
  const stepDuration = lineDuration / itemLine.lines.length;
47174
47398
  l.animate().wait(delay + startSymbolDuration + index * stepDuration).to({
47175
47399
  clipRange: 1
@@ -49453,12 +49677,18 @@ class DiscreteLegend extends LegendBase {
49453
49677
  let containerSize;
49454
49678
  containerSize = this._itemContext.isHorizontal ? this._itemsContainer.AABBBounds.width() : this._itemsContainer.AABBBounds.height();
49455
49679
  const startOffset = containerSize * start;
49456
- this.updateScrollMask(), animation ? this._itemsContainer.animate().to({
49457
- [channel]: -startOffset
49458
- }, animationDuration, animationEasing) : this._itemsContainer.setAttribute(channel, -startOffset);
49459
- } else animation ? this._itemsContainer.animate().to({
49460
- [channel]: -(newPage - 1) * pageSize
49461
- }, animationDuration, animationEasing) : this._itemsContainer.setAttribute(channel, -(newPage - 1) * pageSize);
49680
+ if (this.updateScrollMask(), animation) {
49681
+ const attrs = {
49682
+ [channel]: -startOffset
49683
+ };
49684
+ commitUpdateAnimationTarget(this._itemsContainer, attrs), this._itemsContainer.animate().to(attrs, animationDuration, animationEasing);
49685
+ } else this._itemsContainer.setAttribute(channel, -startOffset);
49686
+ } else if (animation) {
49687
+ const attrs = {
49688
+ [channel]: -(newPage - 1) * pageSize
49689
+ };
49690
+ commitUpdateAnimationTarget(this._itemsContainer, attrs), this._itemsContainer.animate().to(attrs, animationDuration, animationEasing);
49691
+ } else this._itemsContainer.setAttribute(channel, -(newPage - 1) * pageSize);
49462
49692
  }
49463
49693
  };
49464
49694
  if (this._itemContext.isScrollbar) {
@@ -52482,6 +52712,7 @@ class Timeline extends AbstractComponent {
52482
52712
  setActive(labelGroup, activeLabelStyle), setActive(symbolGroup, activeSymbolStyle);
52483
52713
  }
52484
52714
  appearAnimate(animateConfig) {
52715
+ var _a;
52485
52716
  const {
52486
52717
  duration = 1e3,
52487
52718
  easing = "quadOut"
@@ -52497,26 +52728,39 @@ class Timeline extends AbstractComponent {
52497
52728
  perSymbolNormalDuration = 90 * percent,
52498
52729
  symbolDelay = 100 * percent,
52499
52730
  symbolNormalDelay = 600 * percent;
52500
- if (this._line && (this._line.setAttributes({
52731
+ if (this._line && (commitUpdateAnimationTarget(this._line, {
52732
+ clipRange: 1
52733
+ }, {
52501
52734
  clipRange: 0
52502
52735
  }), this._line.animate().to({
52503
52736
  clipRange: 1
52504
- }, lineDuration, easing)), this._activeLine && (this._activeLine.setAttributes({
52505
- opacity: 0
52506
- }), this._activeLine.animate().wait(500).to({
52507
- opacity: 1
52508
- }, activeLineDuration, easing)), this._symbolGroup) {
52737
+ }, lineDuration, easing)), this._activeLine) {
52738
+ const opacity = null !== (_a = this._activeLine.attribute.opacity) && void 0 !== _a ? _a : 1;
52739
+ commitUpdateAnimationTarget(this._activeLine, {
52740
+ opacity: opacity
52741
+ }, {
52742
+ opacity: 0
52743
+ }), this._activeLine.animate().wait(500).to({
52744
+ opacity: opacity
52745
+ }, activeLineDuration, easing);
52746
+ }
52747
+ if (this._symbolGroup) {
52509
52748
  const size = this._symbolGroup.count - 1,
52510
52749
  delay = percent * (1 === size ? 0 : 400 / (size - 1)),
52511
52750
  delayNormal = percent * (1 === size ? 0 : 240 / (size - 1));
52512
52751
  this._symbolGroup.forEachChildren((symbol, i) => {
52752
+ var _a;
52513
52753
  const originAttrs = {};
52514
52754
  Object.keys(activeSymbolStyle).forEach(k => {
52515
52755
  originAttrs[k] = symbol.attribute[k];
52516
- }), symbol.setAttributes({
52756
+ });
52757
+ const opacity = null !== (_a = symbol.attribute.opacity) && void 0 !== _a ? _a : 1;
52758
+ commitUpdateAnimationTarget(symbol, {
52759
+ opacity: opacity
52760
+ }, {
52517
52761
  opacity: 0
52518
52762
  }), symbol.animate().wait(symbolDelay + delay * i).to({
52519
- opacity: 1
52763
+ opacity: opacity
52520
52764
  }, perSymbolDuration, easing), symbol.animate().wait(symbolNormalDelay + delayNormal * i).to(Object.assign({}, activeSymbolStyle), perSymbolNormalDuration, easing).to(Object.assign({}, originAttrs), perSymbolNormalDuration, easing);
52521
52765
  });
52522
52766
  }
@@ -52525,13 +52769,18 @@ class Timeline extends AbstractComponent {
52525
52769
  delay = percent * (1 === size ? 0 : 400 / (size - 1)),
52526
52770
  delayNormal = percent * (1 === size ? 0 : 240 / (size - 1));
52527
52771
  this._labelGroup.forEachChildren((label, i) => {
52772
+ var _a;
52528
52773
  const originAttrs = {};
52529
52774
  Object.keys(activeLabelStyle).forEach(k => {
52530
52775
  originAttrs[k] = label.attribute[k];
52531
- }), label.setAttributes({
52776
+ });
52777
+ const opacity = null !== (_a = label.attribute.opacity) && void 0 !== _a ? _a : 1;
52778
+ commitUpdateAnimationTarget(label, {
52779
+ opacity: opacity
52780
+ }, {
52532
52781
  opacity: 0
52533
52782
  }), label.animate().wait(symbolDelay + delay * i).to({
52534
- opacity: 1
52783
+ opacity: opacity
52535
52784
  }, perSymbolDuration, easing), label.animate().wait(symbolNormalDelay + delayNormal * i).to(Object.assign({
52536
52785
  dy: 10
52537
52786
  }, activeLabelStyle), perSymbolNormalDuration, easing).to(Object.assign({
@@ -52565,7 +52814,11 @@ class Timeline extends AbstractComponent {
52565
52814
  duration = 1e3,
52566
52815
  easing = "quadOut"
52567
52816
  } = animateConfig;
52568
- this.animate().to({
52817
+ commitUpdateAnimationTarget(this, {
52818
+ clipRange: nextClipRange
52819
+ }, {
52820
+ clipRange: clipRange
52821
+ }), this.animate().to({
52569
52822
  clipRange: nextClipRange
52570
52823
  }, duration, easing);
52571
52824
  } else this.setAttributes({
@@ -54284,6 +54537,6 @@ function createStage(params) {
54284
54537
  return resolveLegacyApp().createStage(params);
54285
54538
  }
54286
54539
 
54287
- const version = "1.1.0-alpha.1";
54540
+ const version = "1.1.0-alpha.10";
54288
54541
 
54289
54542
  export { AComponentAnimate, ACustomAnimate, ARC3D_NUMBER_TYPE, ARC_NUMBER_TYPE, AREA_NUMBER_TYPE, AStageAnimate, AXIS_ELEMENT_NAME, AbstractComponent, AbstractGraphicRender, Animate, AnimateExecutor, AnimateMode, AnimateStatus, Step as AnimateStep, AnimateStepType, AnimationStateManager, AnimationStateStore, AnimationStates, AnimationTransitionRegistry, AppContext, Application, Arc, Arc3d, Arc3dRender, ArcInfo, ArcLabel, ArcRender, ArcRenderContribution, ArcSegment, Area, AreaRender, AreaRenderContribution, AttributeUpdateType, AutoEnablePlugins, AxisStateValue, BaseCanvas, BaseEnvContribution, BasePlayer, BaseRender, BaseRenderContributionTime, BaseWindowHandlerContribution, Basis, BeforeRenderConstribution, BoundsContext, BoundsPicker, BrowserEntry, BrowserEnvContribution, Brush, CIRCLE_NUMBER_TYPE, Canvas3DDrawItemInterceptor, Canvas3DPickItemInterceptor, CanvasArc3dPicker, CanvasArcPicker, CanvasAreaPicker, CanvasCirclePicker, CanvasFactory, CanvasGifImagePicker, CanvasGlyphPicker, CanvasGroupPicker, CanvasImagePicker, CanvasLinePicker, CanvasLottiePicker, CanvasPathPicker, CanvasPickerContribution, CanvasPolygonPicker, CanvasPyramid3dPicker, CanvasRect3dPicker, CanvasRectPicker, CanvasRichTextPicker, CanvasStarPicker, CanvasSymbolPicker, CanvasTextLayout, CanvasTextPicker, CheckBox, Circle, CircleAxis, CircleAxisGrid, CircleCrosshair, CircleRender, CircleRenderContribution, ClipAngleAnimate, ClipDirectionAnimate, ClipGraphicAnimate, ClipIn, ClipOut, ClipRadiusAnimate, ColorContinuousLegend, ColorInterpolate, ColorStore, ColorType, CommonDrawItemInterceptorContribution, CommonRenderContribution, ComponentAnimator, Context2dFactory, ContinuousPlayer, ContributionProvider, ContributionRegistry, ContributionStore, CubicBezierCurve, CurveContext, CurveTypeEnum, CustomEvent, CustomPath2D, CustomSymbolClass, DEFAULT_ITEM_SPACE_COL, DEFAULT_ITEM_SPACE_ROW, DEFAULT_LABEL_SPACE, DEFAULT_PAGER_SPACE, DEFAULT_SHAPE_SIZE, DEFAULT_SHAPE_SPACE, DEFAULT_STATES$1 as DEFAULT_STATES, DEFAULT_TEXT_FONT_FAMILY$1 as DEFAULT_TEXT_FONT_FAMILY, DEFAULT_TITLE_SPACE, DEFAULT_VALUE_SPACE, DataLabel, DataZoom, DataZoomActiveTag, DebugDrawItemInterceptorContribution, DefaultArcAllocate, DefaultArcAttribute, DefaultArcRenderContribution, DefaultAreaAllocate, DefaultAreaAttribute, DefaultAreaTextureRenderContribution, DefaultAttribute, DefaultBaseBackgroundRenderContribution, DefaultBaseClipRenderAfterContribution, DefaultBaseClipRenderBeforeContribution, DefaultBaseInteractiveRenderContribution, DefaultBaseTextureRenderContribution, DefaultCanvasAllocate, DefaultCanvasArcRender, DefaultCanvasAreaRender, DefaultCanvasCircleRender, DefaultCanvasGroupRender, DefaultCanvasImageRender, DefaultCanvasLineRender, DefaultCanvasPathRender, DefaultCanvasPolygonRender, DefaultCanvasRectRender, DefaultCanvasSymbolRender, DefaultCanvasTextRender, DefaultCircleAllocate, DefaultCircleAttribute, DefaultCircleRenderContribution, DefaultConnectAttribute, DefaultDebugAttribute, DefaultFillStyle, DefaultGlobal, DefaultGlobalPickerService, DefaultGlyphAttribute, DefaultGraphicAllocate, DefaultGraphicMemoryManager, DefaultGraphicService, DefaultGraphicUtil, DefaultGroupAttribute, DefaultGroupBackgroundRenderContribution, DefaultImageAttribute, DefaultImageRenderContribution, DefaultLayerService, DefaultLayout, DefaultLineAllocate, DefaultLineAttribute, DefaultMat4Allocate, DefaultMatrixAllocate, DefaultPathAllocate, DefaultPathAttribute, DefaultPickService, DefaultPickStyle, DefaultPolygonAttribute, DefaultRect3dAttribute, DefaultRectAllocate, DefaultRectAttribute, DefaultRectRenderContribution, DefaultRenderService, DefaultRichTextAttribute, DefaultRichTextIconAttribute, DefaultStarAttribute, DefaultStrokeStyle, DefaultStyle, DefaultSymbolAllocate, DefaultSymbolAttribute, DefaultSymbolClipRangeStrokeRenderContribution, DefaultSymbolRenderContribution, DefaultTextAllocate, DefaultTextAttribute, DefaultTextMeasureContribution, DefaultTextStyle, DefaultTicker, DefaultTimeline, DefaultTransform, DefaultTransformUtil, DefaultWindow, Direction, DirectionEnum, DirectionalLight, DiscreteLegend, DiscretePlayer, Dissolve, Distortion, DragNDrop, DrawContribution, DrawItemInterceptor, DynamicLayerHandlerContribution, Easing, Edge, EditModule, EmptyContext2d, EmptyTip, EnvContribution, EventManager, EventSystem, EventTarget, FORMAT_ALL_TEXT_COMMAND, FORMAT_ELEMENT_COMMAND, FORMAT_TEXT_COMMAND, Factory, FadeIn, FadeOut, FederatedEvent, FederatedMouseEvent, FederatedPointerEvent, FederatedWheelEvent, FlexLayoutPlugin, Fragment, FromTo, GLYPH_NUMBER_TYPE, GRAPHIC_UPDATE_TAG_KEY, GROUP_NUMBER_TYPE, GaussianBlur, Generator, Gesture, GifImage, Glitch, GlobalPickerService, Glyph, GlyphRender, GradientParser, Graphic, GraphicCreator$1 as GraphicCreator, GraphicFactory, GraphicPicker, GraphicRender, GraphicService, GraphicStateExtension, GraphicUtil, Grayscale, Group, GroupFadeIn, GroupFadeOut, GroupRender, GroupRenderContribution, GroupTransition, GroupUpdateAABBBoundsMode, GrowAngleIn, GrowAngleOut, GrowCenterIn, GrowCenterOut, GrowHeightIn, GrowHeightOut, GrowIn, GrowOut, GrowPointsIn, GrowPointsOut, GrowPointsXIn, GrowPointsXOut, GrowPointsYIn, GrowPointsYOut, GrowRadiusIn, GrowRadiusOut, GrowWidthIn, GrowWidthOut, HtmlAttributePlugin, IContainPointMode, IDataZoomEvent, IDataZoomInteractiveEvent, IMAGE_NUMBER_TYPE, IMarkAreaLabelPosition, IMarkCommonArcLabelPosition, IMarkLineLabelPosition, IMarkPointItemPosition, IOperateType, Image$1 as Image, ImageRender, ImageRenderContribution, IncreaseCount, IncrementalDrawContribution, Indicator, InputRichText, InputText, InteractiveDrawItemInterceptorContribution, InteractivePickItemInterceptorContribution, InteractiveSubRenderContribution, LEGEND_ELEMENT_NAME, LINE_NUMBER_TYPE, LabelBase, LabelItemAppear, LabelItemDisappear, Layer, LayerFactory, LayerService, LegendEvent, LegendStateValue, Line$1 as Line, LineAxis, LineAxisGrid, LineCrosshair, LineLabel, LineRender, Linear, LinearClosed, LinkPath, Lottie, ManualTicker, MarkArcArea, MarkArcLine, MarkArea, MarkLine, MarkPoint, Mat4Allocate, MathArcPicker, MathAreaPicker, MathCirclePicker, MathGlyphPicker, MathImagePicker, MathLinePicker, MathPathPicker, MathPickerContribution, MathPolygonPicker, MathRectPicker, MathRichTextPicker, MathSymbolPicker, MathTextPicker, MatrixAllocate, MeasureModeEnum, MiniappEntry, MonotoneX, MonotoneY, MorphingPath, MotionPath, MoveIn, MoveOut, MoveRotateIn, MoveRotateOut, MoveScaleIn, MoveScaleOut, MultiToOneMorphingPath, NOWORK_ANIMATE_ATTR, Node, NodeEntry, OrthoCamera, OutputRichText, PATH_NUMBER_TYPE, POLYGON_NUMBER_TYPE, PURE_STYLE_KEY, PYRAMID3D_NUMBER_TYPE, Pager, Particle, Path, PathRender, PathRenderContribution, PerformanceRAF, PickItemInterceptor, PickServiceInterceptor, PickerRegistry, PickerService, Pixelation, PlayerEventEnum, PluginRegistry, PluginService, Polygon, PolygonCrosshair, PolygonRender, PolygonRenderContribution, PolygonSectorCrosshair, PopTip, PoptipAppear, PoptipDisappear, PulseAnimate, Pyramid3d, Pyramid3dRender, REACT_TO_CANOPUS_EVENTS, REACT_TO_CANOPUS_EVENTS_LIST, RECT3D_NUMBER_TYPE, RECT_NUMBER_TYPE, RICHTEXT_NUMBER_TYPE, Radio, RafBasedSTO, ReactAttributePlugin, Rect, Rect3DRender, Rect3d, RectCrosshair, RectLabel, RectRender, RectRenderContribution, ReflectSegContext, RenderSelector, RenderService, RendererRegistry, ResourceLoader, RichText, RichTextEditPlugin, RichTextRender, RotateBySphereAnimate, RotateIn, RotateOut, SLIDER_ELEMENT_NAME, STAR_NUMBER_TYPE, STATUS$1 as STATUS, SVG_ATTRIBUTE_MAP, SVG_ATTRIBUTE_MAP_KEYS, SVG_PARSE_ATTRIBUTE_MAP, SVG_PARSE_ATTRIBUTE_MAP_KEYS, SYMBOL_NUMBER_TYPE, ScaleIn, ScaleOut, ScrollBar, SectorCrosshair, SegContext, Segment, SeriesNumberCellStateValue, SeriesNumberEvent, ShadowPickServiceInterceptorContribution, ShadowRoot, ShadowRootDrawItemInterceptorContribution, ShadowRootPickItemInterceptorContribution, SizeContinuousLegend, SlideIn, SlideOut, SlideOutRichText, SlideRichText, Slider, SpinIn, SpinOut, SplitRectAfterRenderContribution, SplitRectBeforeRenderContribution, Stage, StageFactory, Star, StarRender, StarRenderContribution, State, StateDefinitionCompiler, StateEngine, StaticLayerHandlerContribution, Step$1 as Step, StepClosed, StoryLabelItem, StreamLight, StrokeIn, StrokeOut, Switch, Symbol$1 as Symbol, SymbolLabel, SymbolRender, SymbolRenderContribution, TEXT_NUMBER_TYPE, TableSeriesNumber, Tag, TagPointsUpdate, Text, TextDirection, TextMeasureContribution, TextRender, TextRenderContribution, Theme, Timeline, Title, Tooltip, TopZIndex, TransformUtil, Update, UpdateTag, VArc, VArc3d, VArea, VCircle, VGlobal, VGlyph, VGroup, VImage, VLine, VPath, VPolygon, VPyramid3d, VRect, VRect3d, VRichText, VSymbol, VTag, VText, VWindow, ViewTransform3dPlugin, VirtualLayerHandlerContribution, WILDCARD, WeatherBox, WindowHandlerContribution, WrapText, XMLParser, _calculateLineHeight, _interpolateColor, _registerArc, addArcToBezierPath$1 as addArcToBezierPath, addAttributeToPrototype, alignBezierCurves, alignSubpath, alignTextInLine, alternatingWave, angle, angleLabelOrientAttribute, angleTo, application, applyTransformOnBezierCurves, arc3dModule, arcModule, areaModule, bezier, bezierCurversToPath, binarySplitPolygon, bindArc3dCanvasPickerContribution, bindArc3dRenderModule, bindArcCanvasPickerContribution, bindArcMathPickerContribution, bindArcRenderModule, bindAreaCanvasPickerContribution, bindAreaMathPickerContribution, bindAreaRenderModule, bindBrowserEnv, bindCircleCanvasPickerContribution, bindCircleMathPickerContribution, bindCircleRenderModule, bindContributionProvider, bindContributionProviderNoSingletonScope, bindFeishuEnv, bindGifImageCanvasPickerContribution, bindGifImageRenderContribution, bindGlyphCanvasPickerContribution, bindGlyphMathPickerContribution, bindGlyphRenderModule, bindHarmonyEnv, bindImageCanvasPickerContribution, bindImageMathPickerContribution, bindImageRenderModule, bindLineCanvasPickerContribution, bindLineMathPickerContribution, bindLineRenderModule, bindLottieCanvasPickerContribution, bindLottieRenderContribution, bindLynxEnv, bindMathPicker, bindNodeEnv, bindPathCanvasPickerContribution, bindPathMathPickerContribution, bindPathRenderModule, bindPolygonCanvasPickerContribution, bindPolygonMathPickerContribution, bindPolygonRenderModule, bindPyramid3dCanvasPickerContribution, bindPyramid3dRenderModule, bindRect3dCanvasPickerContribution, bindRect3dRenderModule, bindRectCanvasPickerContribution, bindRectMathPickerContribution, bindRectRenderModule, bindRichTextMathPickerContribution, bindRichtextCanvasPickerContribution, bindRichtextRenderModule, bindStarRenderModule, bindSymbolCanvasPickerContribution, bindSymbolMathPickerContribution, bindSymbolRenderModule, bindTTEnv, bindTaroEnv, bindTextCanvasPickerContribution, bindTextMathPickerContribution, bindTextRenderModule, bindWxEnv, bootstrapLegacyVRenderRuntime, bootstrapVRenderBrowserApp, bootstrapVRenderNodeApp, boundStroke, builtInSymbolStrMap, builtinSymbols, builtinSymbolsMap, calcLineCache, calculateArcCornerRadius, calculateLineHeight, canvasAllocate, cartesianTicks, centerToCorner, centroidOfSubpath, circleBounds, circleModule, clampRadian, clock, colorEqual, colorStringInterpolationToStr, columnCenterToEdge, columnEdgeToCenter, columnLeftToRight, columnRightToLeft, computeOffsetForlimit, configureRuntimeApplicationForApp, container, continuousTicks, contrastAccessibilityChecker, convertDomainToTickData, cornerTangents, cornerToCenter, createBrowserApp$1 as createApp, createArc, createArc3d, createArea, createBrowserApp$1 as createBrowserApp, createBrowserVRenderApp, createCanvasEventTransformer, createCircle, createColor, createComponentAnimator, createConicalGradient, createContributionProvider$1 as createContributionProvider, createEventTransformer, createGifImage, createGlyph, createGraphic$1 as createGraphic, createGroup, createImage, createImageElement$1 as createImageElement, createLine, createLottie, createMat4, createMiniappApp, createNodeApp$1 as createNodeApp, createNodeVRenderApp, createPath, createPolygon, createPyramid3d, createRect, createRect3d, createRectPath, createRichText, createShadowRoot, createStage, createStar, createSymbol, createText, createTextGraphicByType, createWrapText, cubicCalc, cubicLength, cubicPointAt, cubicSubdivide, decodeReactDom, defaultArcAllocate, defaultArcBackgroundRenderContribution, defaultArcRenderContribution, defaultArcTextureRenderContribution, defaultAreaAllocate, defaultBaseBackgroundRenderContribution, defaultBaseClipRenderAfterContribution, defaultBaseClipRenderBeforeContribution, defaultBaseTextureRenderContribution, defaultCircleAllocate, defaultCircleBackgroundRenderContribution, defaultCircleRenderContribution, defaultCircleTextureRenderContribution, defaultGraphicMemoryManager, defaultGroupBackgroundRenderContribution, defaultImageBackgroundRenderContribution, defaultImageRenderContribution, defaultLineAllocate, defaultPathAllocate, defaultRectAllocate, defaultRectBackgroundRenderContribution, defaultRectRenderContribution, defaultRectTextureRenderContribution, defaultStarBackgroundRenderContribution, defaultStarTextureRenderContribution, defaultSymbolAllocate, defaultSymbolBackgroundRenderContribution, defaultSymbolClipRangeStrokeRenderContribution, defaultSymbolRenderContribution, defaultSymbolTextureRenderContribution, defaultTextAllocate, defaultTicker, defaultTimeline, deltaXYToAngle, diagonalCenterToEdge, diagonalTopLeftToBottomRight, diff, divideCubic, drawArc, drawArcPath$1 as drawArcPath, drawAreaSegments, drawBackgroundImage, drawImageWithLayout, drawIncrementalAreaSegments, drawIncrementalSegments, drawSegments, enumCommandMap, fillVisible, findBestMorphingRotation, findConfigIndexByCursorIdx, findCursorIdxByConfigIndex, findNextGraphic, flatten_simplify, foreach, foreachAsync, fuzzyEqualNumber, genBasisSegments, genBasisTypeSegments, genLinearClosedSegments, genLinearClosedTypeSegments, genLinearSegments, genLinearTypeSegments, genMonotoneXSegments, genMonotoneXTypeSegments, genMonotoneYSegments, genMonotoneYTypeSegments, genNumberType, genStepClosedSegments, genStepSegments, genStepTypeSegments, generatorPathEasingFunc, getAttributeFromDefaultAttrList, getAxisBreakSymbolAttrs, getBackgroundImage, getCircleLabelPosition, getCirclePoints, getCircleVerticalVector, getConicGradientAt, getCurrentEnv, getDefaultCharacterConfig, getElMap, getExtraModelMatrix, getHorizontalPath, getLegacyBindingContext, getMarksByName, getModelMatrix, getNoneGroupMarksByName, getPolarAngleLabelPosition, getPolygonPath, getRichTextBounds, getRuntimeInstallerBindingContext, getRuntimeInstallerGlobal, getScaledStroke, getSizeHandlerPath, getTextAlignAttrOfVerticalDir, getTextBounds, getTextType, getTheme, getThemeFromGroup, getVerticalCoord, getVerticalPath, globalTheme, glyphModule, graphicCreator$1 as graphicCreator, graphicService, graphicUtil, hasOverlap, htmlAttributeTransform, identityMat4, imageModule, incrementalAddTo, initAllEnv, initBrowserEnv, initFeishuEnv, initHarmonyEnv, initLynxEnv, initNodeEnv, initTTEnv, initTaroEnv, initTextMeasure, initWxEnv, installBrowserEnvToApp, installBrowserPickersToApp, installDefaultGraphicsToApp, installNodeEnvToApp, installNodePickersToApp, installPoptipToApp, installRuntimeDrawContributionsToApp, installRuntimeGraphicRenderersToApp, installRuntimePickersToApp, installScrollbarToApp, interpolateColor, interpolateGradientConicalColor, interpolateGradientLinearColor, interpolateGradientRadialColor, interpolatePureColorArray, interpolatePureColorArrayToStr, intersect, isBrowserEnv, isInRange, isNoRepeatSizingMode, isNodeEnv, isPostiveXAxis, isRichText, isSvg, isVisible, isXML, jsx, labelSmartInvert, layerService, length, limitShapeInBounds, lineModule, linearDiscreteTicks, loadAllEnv, loadAllModule, loadBrowserEnv, loadFeishuEnv, loadHarmonyEnv, loadLynxEnv, loadMathPicker, loadNodeEnv, loadPoptip, loadScrollbar, loadTTEnv, loadTaroEnv, loadWxEnv, lookAt, mapToCanvasPointForCanvas, mat3Tomat4, mat4Allocate, matrixAllocate, measureTextSize, morphPath, multiToOneMorph, multiplyMat4Mat3, multiplyMat4Mat4, newThemeObj, normalize$1 as normalize, oneToMultiMorph, ortho, parsePadding, parseStroke, parseSvgPath, particleEffect, pathModule, pathToBezierCurves, point$3 as point, pointEqual, pointInterpolation, pointInterpolationHighPerformance, pointsEqual, pointsInterpolation, polarAngleAxisDiscreteTicks, polarTicks, polygonModule, preLoadAllModule, pulseWave, pyramid3dModule, quadCalc, quadLength, quadPointAt, rafBasedSto, randomOpacity, reactAttributeTransform, rect3dModule, rectFillVisible, rectModule, rectStrokeVisible, recursiveCallBinarySplit, refreshRuntimeInstallerContributions, registerAnimate, registerArc, registerArc3d, registerArc3dGraphic, registerArcDataLabel, registerArcGraphic, registerArea, registerAreaGraphic, registerCircle, registerCircleGraphic, registerCustomAnimate, registerDirectionalLight, registerFlexLayoutPlugin, registerGifGraphic, registerGifImage, registerGlobalEventTransformer, registerGlyph, registerGlyphGraphic, registerGraphic, registerGroup, registerGroupGraphic, registerHtmlAttributePlugin, registerImage, registerImageGraphic, registerLine, registerLineDataLabel, registerLineGraphic, registerMarkArcAreaAnimate, registerMarkArcLineAnimate, registerMarkAreaAnimate, registerMarkLineAnimate, registerMarkPointAnimate, registerOrthoCamera, registerPath, registerPathGraphic, registerPolygon, registerPolygonGraphic, registerPyramid3d, registerPyramid3dGraphic, registerReactAttributePlugin, registerRect, registerRect3d, registerRect3dGraphic, registerRectDataLabel, registerRectGraphic, registerRichtext, registerRichtextGraphic, registerShadowRoot, registerShadowRootGraphic, registerStar, registerStarGraphic, registerSymbol, registerSymbolDataLabel, registerSymbolGraphic, registerText, registerTextGraphic, registerViewTransform3dPlugin, registerWindowEventTransformer, registerWrapText, registerWrapTextGraphic, removeRepeatPoint, renderCommandList, resolveBackgroundDrawMode, resolveBackgroundParamsByImageSizing, resolveBackgroundPosition, resolveBackgroundSizing, resolveContainerBinding$1 as resolveContainerBinding, resolveImageMode, resolveImageRepeatMode, resolveRenderableImageSize, rewriteProto, richTextAttributeTransform, richtextModule, rippleEffect, rotateX, rotateY, rotateZ, rotationScan, roughModule, rowBottomToTop, rowCenterToEdge, rowEdgeToCenter, rowTopToBottom, runFill, runStroke, scale, scaleMat4, segments, setPoptipTheme, shouldClipImageByLayout, shouldUseMat4, shouldUseSimpleAttributeFastPath, smartInvertStrategy, snakeWave, snapLength, spiralEffect, splitArc, splitArea, splitCircle, splitLine, splitPath, splitPolygon, splitRect, splitToGrids, starModule, strCommandMap, strokeVisible, symbolModule, tan2AngleToAngle, textAttributesToStyle, textDrawOffsetX, textDrawOffsetY, textIntersect, textLayoutOffsetY, textModule, ticks, transformMat4, transformPointForCanvas, transformUtil, transitionRegistry, translate, traverseGroup, version, verticalLayout, vglobal, waitForAllSubLayers, wrapCanvas, wrapContext, xul };