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

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.js CHANGED
@@ -8651,11 +8651,23 @@
8651
8651
  if (!hasAnimation) return plan;
8652
8652
  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)),
8653
8653
  isClear = !0 === options.isClear,
8654
- getDefaultAttribute = options.getDefaultAttribute;
8654
+ getDefaultAttribute = options.getDefaultAttribute,
8655
+ shouldSkipDefaultAttribute = options.shouldSkipDefaultAttribute,
8656
+ assignTransitionAttr = (key, value) => {
8657
+ if (noWorkAnimateAttr[key]) return plan.jumpAttrs[key] = value, void (plan.noAnimateAttrs[key] = value);
8658
+ if (isClear && void 0 === value) {
8659
+ if (null == shouldSkipDefaultAttribute ? void 0 : shouldSkipDefaultAttribute(key, targetAttrs)) return;
8660
+ plan.animateAttrs[key] = getDefaultAttribute ? getDefaultAttribute(key) : value;
8661
+ } else plan.animateAttrs[key] = value;
8662
+ };
8655
8663
  for (const key in targetAttrs) {
8656
8664
  if (!Object.prototype.hasOwnProperty.call(targetAttrs, key)) continue;
8657
- const value = targetAttrs[key];
8658
- noWorkAnimateAttr[key] ? (plan.jumpAttrs[key] = value, plan.noAnimateAttrs[key] = value) : plan.animateAttrs[key] = isClear && void 0 === value && getDefaultAttribute ? getDefaultAttribute(key) : value;
8665
+ assignTransitionAttr(key, targetAttrs[key]);
8666
+ }
8667
+ const extraAnimateAttrs = options.extraAnimateAttrs;
8668
+ if (extraAnimateAttrs) for (const key in extraAnimateAttrs) {
8669
+ const hasTargetAttr = Object.prototype.hasOwnProperty.call(targetAttrs, key);
8670
+ !Object.prototype.hasOwnProperty.call(extraAnimateAttrs, key) || hasTargetAttr && void 0 !== targetAttrs[key] || assignTransitionAttr(key, extraAnimateAttrs[key]);
8659
8671
  }
8660
8672
  return plan;
8661
8673
  }
@@ -8682,12 +8694,14 @@
8682
8694
  }), plan;
8683
8695
  }
8684
8696
  applyClearTransition(graphic, targetAttrs, hasAnimation, stateNames, options = {}) {
8685
- var _a, _b;
8697
+ var _a, _b, _c, _d;
8686
8698
  const plan = this.analyzeTransition({}, targetAttrs, stateNames, hasAnimation, {
8687
8699
  noWorkAnimateAttr: null === (_a = graphic.getNoWorkAnimateAttr) || void 0 === _a ? void 0 : _a.call(graphic),
8688
8700
  isClear: !0,
8689
8701
  getDefaultAttribute: null === (_b = graphic.getDefaultAttribute) || void 0 === _b ? void 0 : _b.bind(graphic),
8690
- animateConfig: options.animateConfig
8702
+ shouldSkipDefaultAttribute: null !== (_c = options.shouldSkipDefaultAttribute) && void 0 !== _c ? _c : null === (_d = graphic.shouldSkipStateTransitionDefaultAttribute) || void 0 === _d ? void 0 : _d.bind(graphic),
8703
+ animateConfig: options.animateConfig,
8704
+ extraAnimateAttrs: options.extraAnimateAttrs
8691
8705
  });
8692
8706
  return this.applyTransition(graphic, plan, hasAnimation, options);
8693
8707
  }
@@ -8987,11 +9001,13 @@
8987
9001
  stateProxyModeKey: this.stateProxy ? "legacy-all" : "none"
8988
9002
  };
8989
9003
  }
8990
- const sharedCompiledDefinitions = boundScope.effectiveCompiledDefinitions;
9004
+ const sharedCompiledDefinitions = boundScope.effectiveCompiledDefinitions,
9005
+ sharedStateProxyModeKey = this.stateProxy ? "shared-missing-only" : "none",
9006
+ sharedStateProxyEligibility = this.stateProxy ? stateName => !sharedCompiledDefinitions.has(stateName) : void 0;
8991
9007
  if (!hasStates) return this.localFallbackCompiledDefinitions = void 0, {
8992
9008
  compiledDefinitions: sharedCompiledDefinitions,
8993
- stateProxyModeKey: this.stateProxy ? "shared-disabled" : "none",
8994
- stateProxyEligibility: this.stateProxy ? () => !1 : void 0
9009
+ stateProxyModeKey: sharedStateProxyModeKey,
9010
+ stateProxyEligibility: sharedStateProxyEligibility
8995
9011
  };
8996
9012
  const localStates = this.states,
8997
9013
  missingLocalStateDefinitions = {},
@@ -9000,8 +9016,8 @@
9000
9016
  sharedCompiledDefinitions.has(stateName) || (missingLocalStateDefinitions[stateName] = localStates[stateName], missingStateNames.push(stateName));
9001
9017
  }), !missingStateNames.length) return this.localFallbackCompiledDefinitions = void 0, {
9002
9018
  compiledDefinitions: sharedCompiledDefinitions,
9003
- stateProxyModeKey: this.stateProxy ? "shared-disabled" : "none",
9004
- stateProxyEligibility: this.stateProxy ? () => !1 : void 0
9019
+ stateProxyModeKey: sharedStateProxyModeKey,
9020
+ stateProxyEligibility: sharedStateProxyEligibility
9005
9021
  };
9006
9022
  const localStatesVersion = this.getLocalStatesVersion(),
9007
9023
  stateProxyModeKey = this.stateProxy ? `missing:${missingStateNames.sort().join("|")}` : "none",
@@ -9009,7 +9025,7 @@
9009
9025
  return this.localFallbackCompiledDefinitions && this.compiledStateDefinitionsCacheKey === cacheKey || (this.localFallbackCompiledDefinitions = new StateDefinitionCompiler().compile(Object.assign(Object.assign({}, boundScope.effectiveSourceDefinitions), missingLocalStateDefinitions)), this.compiledStateDefinitionsCacheKey = cacheKey), {
9010
9026
  compiledDefinitions: this.localFallbackCompiledDefinitions,
9011
9027
  stateProxyModeKey: stateProxyModeKey,
9012
- stateProxyEligibility: this.stateProxy ? stateName => !sharedCompiledDefinitions.has(stateName) : void 0
9028
+ stateProxyEligibility: sharedStateProxyEligibility
9013
9029
  };
9014
9030
  }
9015
9031
  recomputeCurrentStatePatch() {
@@ -9033,6 +9049,23 @@
9033
9049
  "deep" === this.stateMergeMode && isPlainObjectValue(previousValue) && isPlainObjectValue(nextValue) ? snapshot[key] = deepMergeAttributeValue(previousValue, nextValue) : snapshot[key] = cloneAttributeValue(nextValue);
9034
9050
  }), snapshot) : snapshot;
9035
9051
  }
9052
+ buildRemovedStateAnimationAttrs(targetStateAttrs, previousResolvedStatePatch) {
9053
+ const extraAttrs = {};
9054
+ if (!previousResolvedStatePatch) return extraAttrs;
9055
+ const snapshot = this.buildStaticAttributeSnapshot(),
9056
+ staticTargetAttrs = snapshot;
9057
+ return Object.keys(previousResolvedStatePatch).forEach(key => {
9058
+ const hasTargetAttr = Object.prototype.hasOwnProperty.call(targetStateAttrs, key);
9059
+ if (hasTargetAttr && void 0 !== targetStateAttrs[key]) return;
9060
+ const assignFallbackAttr = value => {
9061
+ void 0 === value && this.shouldSkipStateTransitionDefaultAttribute(key, staticTargetAttrs) || (extraAttrs[key] = void 0 === value ? value : cloneAttributeValue(value));
9062
+ };
9063
+ if (hasTargetAttr) assignFallbackAttr(this.getStateTransitionDefaultAttribute(key, staticTargetAttrs));else if (Object.prototype.hasOwnProperty.call(snapshot, key)) {
9064
+ const snapshotValue = snapshot[key];
9065
+ assignFallbackAttr(void 0 === snapshotValue ? this.getStateTransitionDefaultAttribute(key, staticTargetAttrs) : snapshotValue);
9066
+ } else assignFallbackAttr(this.getStateTransitionDefaultAttribute(key, staticTargetAttrs));
9067
+ }), extraAttrs;
9068
+ }
9036
9069
  syncObjectToSnapshot(target, snapshot) {
9037
9070
  const delta = new Map();
9038
9071
  return new Set([...Object.keys(target), ...Object.keys(snapshot)]).forEach(key => {
@@ -9454,21 +9487,31 @@
9454
9487
  var _a, _b, _c;
9455
9488
  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;
9456
9489
  }
9457
- applyStateAttrs(attrs, stateNames, hasAnimation, isClear, animateConfig) {
9490
+ applyStateAttrs(attrs, stateNames, hasAnimation, isClear, animateConfig, extraAnimateAttrs) {
9458
9491
  const resolvedAnimateConfig = hasAnimation ? this.resolveStateAnimateConfig(animateConfig) : void 0,
9459
9492
  transitionOptions = resolvedAnimateConfig ? {
9460
- animateConfig: resolvedAnimateConfig
9493
+ animateConfig: resolvedAnimateConfig,
9494
+ extraAnimateAttrs: extraAnimateAttrs,
9495
+ shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this)
9461
9496
  } : void 0;
9462
9497
  if (isClear) return void this.getStateTransitionOrchestrator().applyClearTransition(this, attrs, hasAnimation, stateNames, transitionOptions);
9463
9498
  const plan = this.getStateTransitionOrchestrator().analyzeTransition({}, attrs, stateNames, hasAnimation, {
9464
9499
  noWorkAnimateAttr: this.getNoWorkAnimateAttr(),
9465
- animateConfig: resolvedAnimateConfig
9500
+ animateConfig: resolvedAnimateConfig,
9501
+ extraAnimateAttrs: extraAnimateAttrs,
9502
+ shouldSkipDefaultAttribute: this.shouldSkipStateTransitionDefaultAttribute.bind(this)
9466
9503
  });
9467
9504
  this.getStateTransitionOrchestrator().applyTransition(this, plan, hasAnimation, transitionOptions);
9468
9505
  }
9469
9506
  updateNormalAttrs(stateAttrs) {
9470
9507
  this._deprecatedNormalAttrsView = cloneAttributeValue(this.baseAttributes);
9471
9508
  }
9509
+ getStateTransitionDefaultAttribute(key, targetAttrs) {
9510
+ return this.getDefaultAttribute(key);
9511
+ }
9512
+ shouldSkipStateTransitionDefaultAttribute(_key, _targetAttrs) {
9513
+ return !1;
9514
+ }
9472
9515
  stopStateAnimates(type = "end") {
9473
9516
  const stopAnimationState = this.stopAnimationState;
9474
9517
  if ("function" == typeof stopAnimationState) return void stopAnimationState.call(this, "state", type);
@@ -9485,13 +9528,14 @@
9485
9528
  clearStates(hasAnimation) {
9486
9529
  var _a, _b, _c;
9487
9530
  const previousStates = this.currentStates ? this.currentStates.slice() : [],
9531
+ previousResolvedStatePatch = this.resolvedStatePatch ? cloneAttributeValue(this.resolvedStatePatch) : void 0,
9488
9532
  transition = this.createStateModel().clearStates();
9489
9533
  if (!transition.changed && 0 === previousStates.length) return this.currentStates = [], this.effectiveStates = [], this.resolvedStatePatch = void 0, this.sharedStateDirty = !1, void this.clearSharedStateActiveRegistrations();
9490
9534
  const resolvedStateAttrs = cloneAttributeValue(null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : {});
9491
9535
  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", {
9492
9536
  graphicId: this._uid,
9493
9537
  targetStates: []
9494
- }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !0)) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9538
+ }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !0, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9495
9539
  type: exports.AttributeUpdateType.STATE
9496
9540
  }), this._emitCustomEvent("afterStateUpdate", {
9497
9541
  type: exports.AttributeUpdateType.STATE
@@ -9513,6 +9557,7 @@
9513
9557
  var _a, _b, _c, _d, _e;
9514
9558
  if (!states.length) return void this.clearStates(hasAnimation);
9515
9559
  const previousStates = this.currentStates ? this.currentStates.slice() : [],
9560
+ previousResolvedStatePatch = this.resolvedStatePatch ? cloneAttributeValue(this.resolvedStatePatch) : void 0,
9516
9561
  stateResolveBaseAttrs = null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : this.attribute,
9517
9562
  stateModel = this.createStateModel();
9518
9563
  null === (_b = this.stateEngine) || void 0 === _b || _b.setResolveContext(this, stateResolveBaseAttrs);
@@ -9523,7 +9568,7 @@
9523
9568
  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", {
9524
9569
  graphicId: this._uid,
9525
9570
  targetStates: [...transition.states]
9526
- }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation)) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9571
+ }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !1, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9527
9572
  type: exports.AttributeUpdateType.STATE
9528
9573
  }), this._emitCustomEvent("afterStateUpdate", {
9529
9574
  type: exports.AttributeUpdateType.STATE
@@ -10955,6 +11000,52 @@
10955
11000
  needUpdateTag(key) {
10956
11001
  return super.needUpdateTag(key, RECT_UPDATE_TAG_KEY);
10957
11002
  }
11003
+ shouldSkipStateTransitionDefaultAttribute(key, targetAttrs) {
11004
+ var _a;
11005
+ const attrs = null !== (_a = null != targetAttrs ? targetAttrs : this.baseAttributes) && void 0 !== _a ? _a : this.attribute,
11006
+ hasValue = attrKey => null != attrs[attrKey],
11007
+ isNilValue = attrKey => null == attrs[attrKey];
11008
+ switch (key) {
11009
+ case "width":
11010
+ return isNilValue("width") && hasValue("x") && hasValue("x1");
11011
+ case "height":
11012
+ return isNilValue("height") && hasValue("y") && hasValue("y1");
11013
+ case "x1":
11014
+ return isNilValue("x1") && hasValue("x") && hasValue("width");
11015
+ case "y1":
11016
+ return isNilValue("y1") && hasValue("y") && hasValue("height");
11017
+ default:
11018
+ return !1;
11019
+ }
11020
+ }
11021
+ getStateTransitionDefaultAttribute(key, targetAttrs) {
11022
+ var _a;
11023
+ const attrs = null !== (_a = null != targetAttrs ? targetAttrs : this.baseAttributes) && void 0 !== _a ? _a : this.attribute,
11024
+ getNumber = attrKey => {
11025
+ const value = attrs[attrKey];
11026
+ return "number" == typeof value && Number.isFinite(value) ? value : void 0;
11027
+ },
11028
+ x = getNumber("x"),
11029
+ y = getNumber("y"),
11030
+ x1 = getNumber("x1"),
11031
+ y1 = getNumber("y1"),
11032
+ width = getNumber("width"),
11033
+ height = getNumber("height");
11034
+ switch (key) {
11035
+ case "width":
11036
+ if (null == width && null != x && null != x1) return x1 - x;
11037
+ break;
11038
+ case "height":
11039
+ if (null == height && null != y && null != y1) return y1 - y;
11040
+ break;
11041
+ case "x1":
11042
+ if (null == x1 && null != x && null != width) return x + width;
11043
+ break;
11044
+ case "y1":
11045
+ if (null == y1 && null != y && null != height) return y + height;
11046
+ }
11047
+ return super.getStateTransitionDefaultAttribute(key, targetAttrs);
11048
+ }
10958
11049
  toCustomPath() {
10959
11050
  let path = super.toCustomPath();
10960
11051
  if (path) return path;
@@ -32341,6 +32432,19 @@
32341
32432
  return !1;
32342
32433
  }
32343
32434
 
32435
+ function applyAnimationTransientAttributes(target, attributes, type = exports.AttributeUpdateType.ANIMATE_UPDATE) {
32436
+ var _a;
32437
+ if (!attributes) return;
32438
+ const context = {
32439
+ type: type
32440
+ },
32441
+ transientTarget = target;
32442
+ "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);
32443
+ }
32444
+ function applyAppearStartAttributes(target, attributes) {
32445
+ applyAnimationTransientAttributes(target, attributes, exports.AttributeUpdateType.ANIMATE_BIND);
32446
+ }
32447
+
32344
32448
  function noop() {}
32345
32449
  class Step {
32346
32450
  constructor(type, props, duration, easing) {
@@ -32466,7 +32570,7 @@
32466
32570
  onStart() {
32467
32571
  super.onStart();
32468
32572
  const fromProps = this.getFromProps();
32469
- this.target.setAttributes(fromProps);
32573
+ applyAnimationTransientAttributes(this.target, fromProps, exports.AttributeUpdateType.ANIMATE_START);
32470
32574
  }
32471
32575
  update(end, ratio, out) {
32472
32576
  this.onStart();
@@ -32681,7 +32785,7 @@
32681
32785
  this.target = target;
32682
32786
  const trackerTarget = this.target;
32683
32787
  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(() => {
32684
- this.stop(), "function" == typeof trackerTarget.restoreStaticAttribute && trackerTarget.restoreStaticAttribute(), "function" == typeof trackerTarget.untrackAnimate ? trackerTarget.untrackAnimate(this.id) : this.target.animates.delete(this.id);
32788
+ this.stop(), this.__skipRestoreStaticAttributeOnRemove || "function" != typeof trackerTarget.restoreStaticAttribute || trackerTarget.restoreStaticAttribute(), "function" == typeof trackerTarget.untrackAnimate ? trackerTarget.untrackAnimate(this.id) : this.target.animates.delete(this.id);
32685
32789
  }), this.target.onAnimateBind && !this.slience && this.target.onAnimateBind(this), this.target.animationAttribute || (this.target.animationAttribute = {}), this;
32686
32790
  }
32687
32791
  to(props, duration = 300, easing = "linear") {
@@ -32817,7 +32921,7 @@
32817
32921
  if (nextTime >= this._startTime + this._totalDuration) {
32818
32922
  null === (_a = this._lastStep) || void 0 === _a || _a.onUpdate(!0, 1, {}), null === (_b = this._lastStep) || void 0 === _b || _b.onEnd(), this.onEnd(), this.status = exports.AnimateStatus.END;
32819
32923
  const trackerTarget = this.target;
32820
- return void ("function" == typeof (null == trackerTarget ? void 0 : trackerTarget.restoreStaticAttribute) && trackerTarget.restoreStaticAttribute());
32924
+ return "function" == typeof (null == trackerTarget ? void 0 : trackerTarget.restoreStaticAttribute) && trackerTarget.restoreStaticAttribute(), void (this.__skipRestoreStaticAttributeOnRemove = !0);
32821
32925
  }
32822
32926
  this.status = exports.AnimateStatus.RUNNING, this.currentTime <= this._startTime && this.onStart(), this.currentTime = nextTime;
32823
32927
  let cycleTime = nextTime - this._startTime,
@@ -32828,7 +32932,7 @@
32828
32932
  const currentLoop = Math.floor((nextTime - this._startTime) / this._duration);
32829
32933
  newLoop = currentLoop > this._currentLoop, this._currentLoop = currentLoop, bounceTime = this._bounce && currentLoop % 2 == 1, bounceTime && (cycleTime = this._duration - cycleTime);
32830
32934
  }
32831
- newLoop && !bounceTime && this.target.setAttributes(this._startProps);
32935
+ newLoop && !bounceTime && applyAnimationTransientAttributes(this.target, this._startProps, exports.AttributeUpdateType.ANIMATE_START);
32832
32936
  let targetStep = null;
32833
32937
  if (this._lastStep === this._firstStep) targetStep = this._firstStep;else {
32834
32938
  let currentStep = this._firstStep;
@@ -33115,6 +33219,9 @@
33115
33219
  })), this.registerTransition("state", "*", () => ({
33116
33220
  allowTransition: !0,
33117
33221
  stopOriginalTransition: !1
33222
+ })), this.registerTransition("state", "state", () => ({
33223
+ allowTransition: !0,
33224
+ stopOriginalTransition: !0
33118
33225
  })), this.registerTransition("state", "disappear", () => ({
33119
33226
  allowTransition: !0,
33120
33227
  stopOriginalTransition: !0
@@ -33394,7 +33501,8 @@
33394
33501
  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);
33395
33502
  }), diffAttrs) for (const key in diffAttrs) {
33396
33503
  const value = diffAttrs[key];
33397
- void 0 !== value && (props.hasOwnProperty(key) || (attrOutChannel[key] = value, hasAttrs = !0));
33504
+ if (void 0 === value) continue;
33505
+ props.hasOwnProperty(key) || !!(null == from ? void 0 : from.hasOwnProperty(key)) || (attrOutChannel[key] = value, hasAttrs = !0);
33398
33506
  }
33399
33507
  return {
33400
33508
  from: from,
@@ -33419,7 +33527,7 @@
33419
33527
  stop(type, callEnd = !0) {
33420
33528
  for (; this._animates.length > 0;) {
33421
33529
  const animate = this._animates.pop();
33422
- !1 === callEnd && (animate.status = exports.AnimateStatus.END), null == animate || animate.stop(type);
33530
+ !1 === callEnd && (animate.status = exports.AnimateStatus.END, animate.__skipRestoreStaticAttributeOnRemove = !0), null == animate || animate.stop(type);
33423
33531
  }
33424
33532
  this._animates = [], this._activeCount = 0, this._started && (this._started = !1, callEnd && this.onEnd());
33425
33533
  }
@@ -33852,7 +33960,9 @@
33852
33960
  const parts = formattedNumber.toString().split(".");
33853
33961
  parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","), formattedWithBasicFormat = parts.join(".");
33854
33962
  } else formattedWithBasicFormat = formattedNumber;
33855
- formattedText = this.formatTemplate ? this.formatTemplate.replace("{{var}}", formattedWithBasicFormat.toString()) : formattedWithBasicFormat, this.target.setAttribute("text", formattedText);
33963
+ formattedText = this.formatTemplate ? this.formatTemplate.replace("{{var}}", formattedWithBasicFormat.toString()) : formattedWithBasicFormat, applyAnimationTransientAttributes(this.target, {
33964
+ text: formattedText
33965
+ });
33856
33966
  }
33857
33967
  }
33858
33968
 
@@ -33959,7 +34069,7 @@
33959
34069
  onUpdate(end, ratio, out) {
33960
34070
  const target = this.target,
33961
34071
  pathProxy = "function" == typeof target.pathProxy ? target.pathProxy(target.attribute) : target.pathProxy;
33962
- 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);
34072
+ 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);
33963
34073
  }
33964
34074
  }
33965
34075
  const morphPath = (fromGraphic, toGraphic, animationConfig, fromGraphicTransform) => {
@@ -34190,7 +34300,9 @@
34190
34300
  const blinkRate = .1;
34191
34301
  Math.floor(ratio / blinkRate) % 2 == 0 && (displayText = this.beforeText + currentText + this.cursorChar + this.afterText);
34192
34302
  } else displayText = this.beforeText + currentText + this.cursorChar + this.afterText;
34193
- this.target.setAttribute("text", displayText);
34303
+ applyAnimationTransientAttributes(this.target, {
34304
+ text: displayText
34305
+ });
34194
34306
  }
34195
34307
  }
34196
34308
 
@@ -34199,11 +34311,9 @@
34199
34311
  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;
34200
34312
  }
34201
34313
  onBind() {
34202
- super.onBind(), this._group && this._clipGraphic && (this._lastClip = this._group.attribute.clip, this._lastPath = this._group.attribute.path, this._group.setAttributes({
34314
+ super.onBind(), this._group && this._clipGraphic && (this._lastClip = this._group.attribute.clip, this._lastPath = this._group.attribute.path, applyAppearStartAttributes(this._group, {
34203
34315
  clip: !0,
34204
34316
  path: [this._clipGraphic]
34205
- }, !1, {
34206
- type: exports.AttributeUpdateType.ANIMATE_BIND
34207
34317
  }));
34208
34318
  }
34209
34319
  onEnd() {
@@ -34416,7 +34526,7 @@
34416
34526
  return newPoint.context = point.context, newPoint;
34417
34527
  }), this.clipRange) {
34418
34528
  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));
34419
- this.target.setAttributes({
34529
+ applyAnimationTransientAttributes(this.target, {
34420
34530
  clipRange: this.clipRange + (1 - this.clipRange) * ratio
34421
34531
  });
34422
34532
  }
@@ -34449,7 +34559,7 @@
34449
34559
  this.keys.forEach(key => {
34450
34560
  var _a, _b, _c;
34451
34561
  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;
34452
- }), 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);
34562
+ }), 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);
34453
34563
  }
34454
34564
  onUpdate(end, ratio, out) {
34455
34565
  const attribute = this.target.attribute;
@@ -34703,7 +34813,7 @@
34703
34813
  to: to
34704
34814
  } = growAngleIn(this.target, this.params.options, this.params),
34705
34815
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34706
- 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();
34816
+ 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();
34707
34817
  }
34708
34818
  }
34709
34819
  class GrowAngleOut extends GrowAngleBase {
@@ -34853,7 +34963,7 @@
34853
34963
  to: to
34854
34964
  } = growCenterIn(this.target, this.params.options, this.params),
34855
34965
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34856
- 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);
34966
+ 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);
34857
34967
  }
34858
34968
  onEnd(cb) {
34859
34969
  super.onEnd(cb);
@@ -34958,7 +35068,7 @@
34958
35068
  to: to
34959
35069
  } = growHeightIn(this.target, this.params.options, this.params),
34960
35070
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
34961
- 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);
35071
+ 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);
34962
35072
  }
34963
35073
  onEnd(cb) {
34964
35074
  super.onEnd(cb);
@@ -35072,7 +35182,7 @@
35072
35182
  from: from,
35073
35183
  to: to
35074
35184
  } = growPointsIn(this.target, this.params.options, this.params);
35075
- 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);
35185
+ 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);
35076
35186
  } else this.valid = !1;
35077
35187
  }
35078
35188
  }
@@ -35134,7 +35244,7 @@
35134
35244
  from: from,
35135
35245
  to: to
35136
35246
  } = growPointsXIn(this.target, this.params.options, this.params);
35137
- 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);
35247
+ 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);
35138
35248
  } else this.valid = !1;
35139
35249
  }
35140
35250
  }
@@ -35196,7 +35306,7 @@
35196
35306
  from: from,
35197
35307
  to: to
35198
35308
  } = growPointsYIn(this.target, this.params.options, this.params);
35199
- 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);
35309
+ 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);
35200
35310
  } else this.valid = !1;
35201
35311
  }
35202
35312
  }
@@ -35308,7 +35418,7 @@
35308
35418
  to: to
35309
35419
  } = growRadiusIn(this.target, this.params.options, this.params),
35310
35420
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
35311
- 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);
35421
+ 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);
35312
35422
  }
35313
35423
  }
35314
35424
  class GrowRadiusOut extends GrowPointsBase {
@@ -35430,7 +35540,7 @@
35430
35540
  to: to
35431
35541
  } = growWidthIn(this.target, this.params.options, this.params),
35432
35542
  fromAttrs = null !== (_b = null === (_a = this.target.context) || void 0 === _a ? void 0 : _a.lastAttrs) && void 0 !== _b ? _b : from;
35433
- 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);
35543
+ 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);
35434
35544
  }
35435
35545
  onEnd(cb) {
35436
35546
  super.onEnd(cb);
@@ -35481,7 +35591,7 @@
35481
35591
  } = this.params,
35482
35592
  symbolTime = duration / 10;
35483
35593
  let symbolStartOuterFrom, symbolStartOuterTo;
35484
- if (target._symbolStart.setAttributes({
35594
+ if (applyAppearStartAttributes(target._symbolStart, {
35485
35595
  scaleX: 0,
35486
35596
  scaleY: 0
35487
35597
  }), animator.animate(target._symbolStart, {
@@ -35502,12 +35612,12 @@
35502
35612
  clipRange: 0
35503
35613
  }, symbolStartOuterTo = {
35504
35614
  clipRange: 1
35505
- }), target._symbolStartOuter.setAttributes(symbolStartOuterFrom), animator.animate(target._symbolStartOuter, {
35615
+ }), applyAppearStartAttributes(target._symbolStartOuter, symbolStartOuterFrom), animator.animate(target._symbolStartOuter, {
35506
35616
  type: "to",
35507
35617
  to: symbolStartOuterTo,
35508
35618
  duration: 5 * symbolTime,
35509
35619
  easing: easing
35510
- }), target._symbolEnd.setAttributes({
35620
+ }), applyAppearStartAttributes(target._symbolEnd, {
35511
35621
  scaleX: 0,
35512
35622
  scaleY: 0
35513
35623
  }), animator.animate(target._symbolEnd, {
@@ -35519,7 +35629,7 @@
35519
35629
  duration: 2 * symbolTime,
35520
35630
  delay: 8 * symbolTime,
35521
35631
  easing: easing
35522
- }), target._line.setAttributes({
35632
+ }), applyAppearStartAttributes(target._line, {
35523
35633
  clipRange: 0
35524
35634
  }), animator.animate(target._line, {
35525
35635
  type: "to",
@@ -35530,7 +35640,7 @@
35530
35640
  easing: easing
35531
35641
  }), "typewriter" === titleType) {
35532
35642
  const titleTopText = target._titleTop.attribute.text;
35533
- target._titleTop.setAttributes({
35643
+ applyAppearStartAttributes(target._titleTop, {
35534
35644
  text: ""
35535
35645
  }), animator.animate(target._titleTop, {
35536
35646
  type: "custom",
@@ -35543,7 +35653,7 @@
35543
35653
  custom: InputText
35544
35654
  });
35545
35655
  const titleBottomText = target._titleBottom.attribute.text;
35546
- target._titleBottom.setAttributes({
35656
+ applyAppearStartAttributes(target._titleBottom, {
35547
35657
  text: ""
35548
35658
  }), animator.animate(target._titleBottom, {
35549
35659
  type: "custom",
@@ -35555,7 +35665,7 @@
35555
35665
  },
35556
35666
  custom: InputText
35557
35667
  });
35558
- } else target._titleTop.setAttributes({
35668
+ } else applyAppearStartAttributes(target._titleTop, {
35559
35669
  dy: target._titleTop.AABBBounds.height() + 10
35560
35670
  }), animator.animate(target._titleTop, {
35561
35671
  type: "to",
@@ -35565,7 +35675,7 @@
35565
35675
  delay: 5 * symbolTime,
35566
35676
  duration: 4 * symbolTime,
35567
35677
  easing: "linear"
35568
- }), target._titleBottom.setAttributes({
35678
+ }), applyAppearStartAttributes(target._titleBottom, {
35569
35679
  dy: -(10 + target._titleBottom.AABBBounds.height())
35570
35680
  }), animator.animate(target._titleBottom, {
35571
35681
  type: "to",
@@ -35579,7 +35689,7 @@
35579
35689
  "scale" === titlePanelType ? [target._titleTopPanel, target._titleBottomPanel].forEach(panel => {
35580
35690
  var _a;
35581
35691
  const scaleX = null !== (_a = panel.attribute.scaleX) && void 0 !== _a ? _a : 1;
35582
- panel.setAttributes({
35692
+ applyAppearStartAttributes(panel, {
35583
35693
  scaleX: 0
35584
35694
  }), animator.animate(panel, {
35585
35695
  type: "to",
@@ -35592,7 +35702,7 @@
35592
35702
  }) : "stroke" === titlePanelType && [target._titleTopPanel, target._titleBottomPanel].forEach(panel => {
35593
35703
  const b = panel.AABBBounds,
35594
35704
  totalLen = 2 * (b.width() + b.height());
35595
- panel.setAttributes({
35705
+ applyAppearStartAttributes(panel, {
35596
35706
  lineDash: [0, 10 * totalLen]
35597
35707
  }), animator.animate(panel, {
35598
35708
  type: "to",
@@ -35699,7 +35809,7 @@
35699
35809
  {
35700
35810
  wave: wave
35701
35811
  } = this.params;
35702
- if (target.setAttributes({
35812
+ if (applyAppearStartAttributes(target, {
35703
35813
  scaleX: 0,
35704
35814
  scaleY: 0
35705
35815
  }), animator.animate(target, {
@@ -35852,7 +35962,9 @@
35852
35962
  }
35853
35963
  }
35854
35964
  }
35855
- this.target.setAttribute("textConfig", currentTextConfig);
35965
+ applyAnimationTransientAttributes(this.target, {
35966
+ textConfig: currentTextConfig
35967
+ });
35856
35968
  }
35857
35969
  }
35858
35970
 
@@ -35879,18 +35991,21 @@
35879
35991
  displayedLength = Math.round(fromItems * (1 - adjustedRatio));
35880
35992
  } else displayedLength = Math.round(fromItems * (1 - ratio));
35881
35993
  let currentTextConfig = "forward" === this.direction ? this.fromTextConfig.slice(fromItems - displayedLength) : this.fromTextConfig.slice(0, displayedLength);
35882
- this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), this.target.setAttribute("textConfig", currentTextConfig);
35994
+ this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), applyAnimationTransientAttributes(this.target, {
35995
+ textConfig: currentTextConfig
35996
+ });
35883
35997
  } else {
35884
35998
  if (this.fadeOutChars) {
35885
35999
  const adjustedRatio = Math.min(1, ratio / maxTextHideRatio);
35886
36000
  displayedLength = Math.round(fromItems * (1 - adjustedRatio));
35887
36001
  } else displayedLength = Math.round(fromItems * (1 - ratio));
35888
36002
  let currentTextConfig = this.fromTextConfig.slice(0, displayedLength);
35889
- this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), this.target.setAttribute("textConfig", currentTextConfig);
36003
+ this.fadeOutChars && (currentTextConfig = this.applyFadeEffect(currentTextConfig, ratio, fromItems, displayedLength)), this.showCursor && displayedLength > 0 && (currentTextConfig = this.addCursor(currentTextConfig, ratio)), applyAnimationTransientAttributes(this.target, {
36004
+ textConfig: currentTextConfig
36005
+ });
35890
36006
  }
35891
36007
  }
35892
36008
  applyFadeEffect(textConfig, ratio, totalItems, displayedLength) {
35893
- "forward" === this.direction ? totalItems - displayedLength : displayedLength;
35894
36009
  const fadeProgress = (ratio - (1 - this.fadeOutDuration)) / this.fadeOutDuration,
35895
36010
  fadeOpacity = Math.max(0, 1 - Math.min(1, fadeProgress));
35896
36011
  return textConfig.map((item, index) => {
@@ -35992,7 +36107,9 @@
35992
36107
  if (!this.valid) return;
35993
36108
  const maxTextShowRatio = 1 - this.fadeInDuration;
35994
36109
  let updatedTextConfig;
35995
- updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), this.target.setAttribute("textConfig", updatedTextConfig);
36110
+ updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), applyAnimationTransientAttributes(this.target, {
36111
+ textConfig: updatedTextConfig
36112
+ });
35996
36113
  }
35997
36114
  updateByWord(ratio, maxTextShowRatio) {
35998
36115
  const totalGroups = this.wordGroups.length,
@@ -36121,7 +36238,9 @@
36121
36238
  if (!this.valid) return;
36122
36239
  const maxTextShowRatio = 1 - this.fadeOutDuration;
36123
36240
  let updatedTextConfig;
36124
- updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), this.target.setAttribute("textConfig", updatedTextConfig);
36241
+ updatedTextConfig = this.wordByWord && this.wordGroups.length > 0 ? this.updateByWord(ratio, maxTextShowRatio) : this.updateByCharacter(ratio, maxTextShowRatio), applyAnimationTransientAttributes(this.target, {
36242
+ textConfig: updatedTextConfig
36243
+ });
36125
36244
  }
36126
36245
  updateByWord(ratio, maxTextShowRatio) {
36127
36246
  const totalGroups = this.wordGroups.length,
@@ -36220,7 +36339,7 @@
36220
36339
  scaleY: null !== (_k = null == attrs ? void 0 : attrs.scaleY) && void 0 !== _k ? _k : 1
36221
36340
  }, this._updateFunction = this.updateXY;
36222
36341
  }
36223
- 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);
36342
+ 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);
36224
36343
  }
36225
36344
  onEnd(cb) {
36226
36345
  super.onEnd(cb);
@@ -36323,7 +36442,7 @@
36323
36442
  opacity: 1,
36324
36443
  baseOpacity: 1
36325
36444
  };
36326
- "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);
36445
+ "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);
36327
36446
  }
36328
36447
  onUpdate(end, ratio, out) {
36329
36448
  const attribute = this.target.attribute;
@@ -36351,7 +36470,7 @@
36351
36470
  opacity: 1,
36352
36471
  baseOpacity: 1
36353
36472
  };
36354
- 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);
36473
+ 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);
36355
36474
  }
36356
36475
  onUpdate(end, ratio, out) {
36357
36476
  const attribute = this.target.attribute;
@@ -36385,7 +36504,7 @@
36385
36504
  scaleX: null !== (_h = attrs.scaleX) && void 0 !== _h ? _h : 1,
36386
36505
  scaleY: null !== (_j = attrs.scaleY) && void 0 !== _j ? _j : 1
36387
36506
  };
36388
- this.propKeys = ["opacity", "baseOpacity", "angle", "scaleX", "scaleY"], this.from = from, this.to = to, this.props = to, this.target.setAttributes(from);
36507
+ this.propKeys = ["opacity", "baseOpacity", "angle", "scaleX", "scaleY"], this.from = from, this.to = to, this.props = to, applyAppearStartAttributes(this.target, from);
36389
36508
  }
36390
36509
  onUpdate(end, ratio, out) {
36391
36510
  const attribute = this.target.attribute;
@@ -36432,7 +36551,7 @@
36432
36551
  lineWidth: lineWidth,
36433
36552
  stroke: strokeColor,
36434
36553
  strokeOpacity: fromOpacity
36435
- }, 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);
36554
+ }, 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);
36436
36555
  }
36437
36556
  onUpdate(end, ratio, out) {
36438
36557
  var _a;
@@ -36484,7 +36603,7 @@
36484
36603
  lineWidth: lineWidth,
36485
36604
  stroke: strokeColor,
36486
36605
  strokeOpacity: fromOpacity
36487
- }, 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);
36606
+ }, 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);
36488
36607
  }
36489
36608
  onUpdate(end, ratio, out) {
36490
36609
  var _a;
@@ -36756,9 +36875,17 @@
36756
36875
  }
36757
36876
  }
36758
36877
 
36878
+ const clipPathGeometryAttrs = {
36879
+ x: !0,
36880
+ y: !0,
36881
+ x1: !0,
36882
+ y1: !0,
36883
+ width: !0,
36884
+ height: !0
36885
+ };
36759
36886
  class Update extends ACustomAnimate {
36760
36887
  constructor(from, to, duration, easing, params) {
36761
- super(from, to, duration, easing, params);
36888
+ super(from, to, duration, easing, params), this.clipPathSyncKeys = null, this.clipPathSyncParent = null, this.clipPathSyncChildIndex = -1, this.clipPathSyncDisabled = !1;
36762
36889
  }
36763
36890
  onBind() {
36764
36891
  var _a, _b;
@@ -36771,7 +36898,25 @@
36771
36898
  } = this.params;
36772
36899
  diffAttrs = Object.assign({}, diffAttrs), (null === (_b = null == options ? void 0 : options.excludeChannels) || void 0 === _b ? void 0 : _b.length) && options.excludeChannels.forEach(channel => {
36773
36900
  delete diffAttrs[channel];
36774
- }), this.props = diffAttrs;
36901
+ }), this.props = diffAttrs, this.clipPathSyncKeys = Object.keys(diffAttrs).filter(key => clipPathGeometryAttrs[key]), this.clipPathSyncDisabled = !this.clipPathSyncKeys.length, this.syncParentClipPathToTarget();
36902
+ }
36903
+ getStaticCommitAttrs() {
36904
+ var _a;
36905
+ if (!this.props) return null;
36906
+ const target = this.target,
36907
+ contextFinalAttrs = null === (_a = target.context) || void 0 === _a ? void 0 : _a.finalAttrs,
36908
+ finalAttribute = "function" == typeof target.getFinalAttribute ? target.getFinalAttribute() : target.finalAttribute,
36909
+ commitAttrs = {};
36910
+ return Object.keys(this.props).forEach(key => {
36911
+ 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]);
36912
+ }), Object.keys(commitAttrs).length ? commitAttrs : null;
36913
+ }
36914
+ onEnd(cb) {
36915
+ if (cb) return void super.onEnd(cb);
36916
+ const commitAttrs = this.getStaticCommitAttrs();
36917
+ commitAttrs && this.target.setAttributes(commitAttrs, !1, {
36918
+ type: exports.AttributeUpdateType.ANIMATE_END
36919
+ }), this.syncParentClipPathToTarget(), super.onEnd();
36775
36920
  }
36776
36921
  update(end, ratio, out) {
36777
36922
  if (this.onStart(), !this.props || !this.propKeys) return;
@@ -36780,7 +36925,58 @@
36780
36925
  if (!this.animate.validAttr(this.propKeys[index])) return;
36781
36926
  const key = this.propKeys[index];
36782
36927
  func(key, this.fromProps[key], this.props[key], easedRatio, this, this.target);
36783
- }), this.onUpdate(end, easedRatio, out);
36928
+ }), this.syncParentClipPathToTarget(), this.onUpdate(end, easedRatio, out);
36929
+ }
36930
+ syncParentClipPathToTarget() {
36931
+ var _a, _b;
36932
+ if (this.clipPathSyncDisabled) return;
36933
+ const target = this.target,
36934
+ parent = target.parent,
36935
+ path = null === (_a = null == parent ? void 0 : parent.attribute) || void 0 === _a ? void 0 : _a.path;
36936
+ if (!(null === (_b = null == parent ? void 0 : parent.attribute) || void 0 === _b ? void 0 : _b.clip) || !Array.isArray(path) || !path.length) return;
36937
+ const childIndex = this.getClipPathSyncChildIndex(parent);
36938
+ if (childIndex < 0 || childIndex >= path.length) return;
36939
+ const clipGraphic = path[childIndex];
36940
+ if (!(null == clipGraphic ? void 0 : clipGraphic.attribute) || clipGraphic.type !== target.type || !this.isClipPathStaticTarget(clipGraphic)) return;
36941
+ const syncAttrs = this.buildClipPathTransientAttrs(clipGraphic);
36942
+ syncAttrs && applyAnimationTransientAttributes(clipGraphic, syncAttrs, exports.AttributeUpdateType.ANIMATE_UPDATE);
36943
+ }
36944
+ getClipPathSyncChildIndex(parent) {
36945
+ var _a;
36946
+ if (this.clipPathSyncParent === parent && this.clipPathSyncChildIndex >= 0) return this.clipPathSyncChildIndex;
36947
+ const target = this.target;
36948
+ let childIndex = -1;
36949
+ 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;
36950
+ }
36951
+ isClipPathStaticTarget(clipGraphic) {
36952
+ var _a, _b;
36953
+ const target = this.target,
36954
+ targetFinalAttrs = this.getTargetFinalAttrs(),
36955
+ clipGraphicFinalAttrs = "function" == typeof clipGraphic.getFinalAttribute ? clipGraphic.getFinalAttribute() : clipGraphic.finalAttribute,
36956
+ clipFinalAttrs = null !== (_a = null != clipGraphicFinalAttrs ? clipGraphicFinalAttrs : clipGraphic.baseAttributes) && void 0 !== _a ? _a : clipGraphic.attribute,
36957
+ keys = null !== (_b = this.clipPathSyncKeys) && void 0 !== _b ? _b : [];
36958
+ return !!(keys.length && targetFinalAttrs && clipFinalAttrs) && keys.every(key => {
36959
+ var _a, _b;
36960
+ return this.isSameClipPathValue(clipFinalAttrs[key], null !== (_a = targetFinalAttrs[key]) && void 0 !== _a ? _a : null === (_b = target.attribute) || void 0 === _b ? void 0 : _b[key]);
36961
+ });
36962
+ }
36963
+ getTargetFinalAttrs() {
36964
+ var _a, _b, _c;
36965
+ const target = this.target;
36966
+ 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;
36967
+ }
36968
+ isSameClipPathValue(a, b) {
36969
+ return "number" == typeof a && "number" == typeof b ? Math.abs(a - b) < 1e-8 : a === b;
36970
+ }
36971
+ buildClipPathTransientAttrs(clipGraphic) {
36972
+ var _a;
36973
+ const target = this.target,
36974
+ attrs = {};
36975
+ return (null !== (_a = this.clipPathSyncKeys) && void 0 !== _a ? _a : []).forEach(key => {
36976
+ var _a;
36977
+ const nextValue = null === (_a = target.attribute) || void 0 === _a ? void 0 : _a[key];
36978
+ Object.prototype.hasOwnProperty.call(clipGraphic.attribute, key) && void 0 !== nextValue && !this.isSameClipPathValue(clipGraphic.attribute[key], nextValue) && (attrs[key] = nextValue);
36979
+ }), Object.keys(attrs).length ? attrs : null;
36784
36980
  }
36785
36981
  }
36786
36982
 
@@ -36901,7 +37097,7 @@
36901
37097
  from: from,
36902
37098
  to: to
36903
37099
  } = moveIn(this.target, this.params.options, this.params);
36904
- 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);
37100
+ 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);
36905
37101
  }
36906
37102
  }
36907
37103
  class MoveOut extends MoveBase {
@@ -36960,7 +37156,7 @@
36960
37156
  from: from,
36961
37157
  to: to
36962
37158
  } = rotateIn(this.target, this.params.options);
36963
- 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);
37159
+ 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);
36964
37160
  }
36965
37161
  }
36966
37162
  class RotateOut extends RotateBase {
@@ -36976,8 +37172,8 @@
36976
37172
 
36977
37173
  class MotionPath extends ACustomAnimate {
36978
37174
  constructor(from, to, duration, easing, params) {
36979
- var _a;
36980
- 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);
37175
+ var _a, _b, _c;
37176
+ 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);
36981
37177
  }
36982
37178
  onBind() {
36983
37179
  this.from = {
@@ -36992,7 +37188,7 @@
36992
37188
  pos: pos,
36993
37189
  angle: angle
36994
37190
  } = this.path.getAttrAt(at);
36995
- 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);
37191
+ 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);
36996
37192
  }
36997
37193
  }
36998
37194
 
@@ -40740,6 +40936,20 @@
40740
40936
  }
40741
40937
  }
40742
40938
 
40939
+ function commitUpdateAnimationTarget(graphic, targetAttrs, startAttrs) {
40940
+ var _a, _b, _c, _d;
40941
+ if (!graphic || !targetAttrs) return;
40942
+ const committedTargetAttrs = cloneDeep(targetAttrs),
40943
+ transientStartAttrs = cloneDeep(null != startAttrs ? startAttrs : graphic.attribute);
40944
+ graphic.setAttributes(committedTargetAttrs);
40945
+ const baseAttributes = graphic.baseAttributes;
40946
+ baseAttributes && "object" == typeof baseAttributes && Object.keys(committedTargetAttrs).forEach(key => {
40947
+ baseAttributes[key] = cloneDeep(committedTargetAttrs[key]);
40948
+ }), 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, {
40949
+ type: exports.AttributeUpdateType.ANIMATE_BIND
40950
+ });
40951
+ }
40952
+
40743
40953
  const DefaultAxisAnimation = {
40744
40954
  type: "default",
40745
40955
  duration: 300,
@@ -41065,33 +41275,29 @@
41065
41275
  var _a;
41066
41276
  if ("group" !== el.type && el.id) {
41067
41277
  const oldEl = prevInnerView[el.id];
41068
- if (el.setFinalAttributes(el.attribute), oldEl) {
41278
+ if (oldEl) {
41069
41279
  oldEl.release();
41070
- const oldAttrs = oldEl.attribute,
41071
- finalAttrs = el.getFinalAttribute(),
41280
+ const oldAttrs = cloneDeep(oldEl.attribute),
41281
+ finalAttrs = cloneDeep(el.attribute),
41072
41282
  diffAttrs = diff(oldAttrs, finalAttrs);
41073
41283
  let hasDiff = Object.keys(diffAttrs).length > 0;
41074
- if ("opacity" in oldAttrs && finalAttrs.opacity !== oldAttrs.opacity && (diffAttrs.opacity = null !== (_a = finalAttrs.opacity) && void 0 !== _a ? _a : 1, hasDiff = !0), animationConfig.update && hasDiff) {
41075
- this._newElementAttrMap[el.id] = {
41076
- state: "update",
41077
- node: el,
41078
- attrs: el.attribute
41079
- };
41080
- const oldAttrs = oldEl.attribute;
41081
- el.setAttributes(oldAttrs), el.applyAnimationState(["update"], [{
41082
- name: "update",
41083
- animation: Object.assign(Object.assign({
41084
- selfOnly: !0
41085
- }, animationConfig.update), {
41086
- type: "axisUpdate",
41087
- customParameters: {
41088
- config: animationConfig.update,
41089
- diffAttrs: diffAttrs,
41090
- lastScale: lastScale
41091
- }
41092
- })
41093
- }]);
41094
- }
41284
+ "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] = {
41285
+ state: "update",
41286
+ node: el,
41287
+ attrs: finalAttrs
41288
+ }, commitUpdateAnimationTarget(el, finalAttrs, oldAttrs), el.applyAnimationState(["update"], [{
41289
+ name: "update",
41290
+ animation: Object.assign(Object.assign({
41291
+ selfOnly: !0
41292
+ }, animationConfig.update), {
41293
+ type: "axisUpdate",
41294
+ customParameters: {
41295
+ config: animationConfig.update,
41296
+ diffAttrs: diffAttrs,
41297
+ lastScale: lastScale
41298
+ }
41299
+ })
41300
+ }]));
41095
41301
  } else animationConfig.enter && (this._newElementAttrMap[el.id] = {
41096
41302
  state: "enter",
41097
41303
  node: el,
@@ -41435,7 +41641,10 @@
41435
41641
  const point = getTickCoord(lastScale.scale(currData.rawValue)),
41436
41642
  newX = this.target.attribute.x,
41437
41643
  newY = this.target.attribute.y;
41438
- this.target.setAttributes({
41644
+ commitUpdateAnimationTarget(this.target, {
41645
+ x: newX,
41646
+ y: newY
41647
+ }, {
41439
41648
  x: point.x,
41440
41649
  y: point.y
41441
41650
  }), animator.animate(this.target, {
@@ -41463,10 +41672,9 @@
41463
41672
  const duration = this.duration,
41464
41673
  easing = this.easing,
41465
41674
  {
41466
- config: config,
41467
41675
  diffAttrs: diffAttrs
41468
41676
  } = this.params;
41469
- animator.animate(this.target, {
41677
+ commitUpdateAnimationTarget(this.target, Object.assign({}, diffAttrs)), animator.animate(this.target, {
41470
41678
  type: "to",
41471
41679
  to: Object.assign({}, diffAttrs),
41472
41680
  duration: duration,
@@ -42351,6 +42559,7 @@
42351
42559
  super(...arguments), this.mode = exports.AnimateMode.NORMAL;
42352
42560
  }
42353
42561
  onBind() {
42562
+ this._started = !1;
42354
42563
  const currentInnerView = this.target.getInnerView(),
42355
42564
  prevInnerView = this.target.getPrevInnerView();
42356
42565
  prevInnerView && (this._newElementAttrMap = {}, traverseGroup(currentInnerView, el => {
@@ -42368,7 +42577,7 @@
42368
42577
  fillOpacity: null !== (_b = newProps.fillOpacity) && void 0 !== _b ? _b : 1,
42369
42578
  strokeOpacity: null !== (_c = newProps.strokeOpacity) && void 0 !== _c ? _c : 1
42370
42579
  })
42371
- }, el.setAttributes(oldEl.attribute);
42580
+ }, commitUpdateAnimationTarget(el, this._newElementAttrMap[el.id].attrs, cloneDeep(oldEl.attribute));
42372
42581
  }
42373
42582
  } else {
42374
42583
  const finalOpacityAttrs = {
@@ -42380,7 +42589,7 @@
42380
42589
  state: "enter",
42381
42590
  node: el,
42382
42591
  attrs: finalOpacityAttrs
42383
- }, el.setAttributes({
42592
+ }, commitUpdateAnimationTarget(el, finalOpacityAttrs, {
42384
42593
  opacity: 0,
42385
42594
  fillOpacity: 0,
42386
42595
  strokeOpacity: 0
@@ -42390,6 +42599,8 @@
42390
42599
  }));
42391
42600
  }
42392
42601
  onStart() {
42602
+ if (this._started) return;
42603
+ this._started = !0;
42393
42604
  let duration = this.duration,
42394
42605
  easing = this.easing;
42395
42606
  this._newElementAttrMap && Object.keys(this._newElementAttrMap).forEach(id => {
@@ -44486,7 +44697,7 @@
44486
44697
  text: curText,
44487
44698
  labelLine: curLabelLine
44488
44699
  } = currentLabel;
44489
- prevText.applyAnimationState(["update"], [{
44700
+ commitUpdateAnimationTarget(prevText, null == curText ? void 0 : curText.attribute), commitUpdateAnimationTarget(prevLabelLine, null == curLabelLine ? void 0 : curLabelLine.attribute), prevText.applyAnimationState(["update"], [{
44490
44701
  name: "update",
44491
44702
  animation: {
44492
44703
  type: "labelUpdate",
@@ -44512,7 +44723,6 @@
44512
44723
  }
44513
44724
  _updateLabel(prevLabel, currentLabel) {
44514
44725
  const {
44515
- text: prevText,
44516
44726
  labelLine: prevLabelLine
44517
44727
  } = prevLabel,
44518
44728
  {
@@ -47081,7 +47291,10 @@
47081
47291
  null === (_a = null == graphic ? void 0 : graphic.animates) || void 0 === _a || _a.forEach(a => a.stop("end"));
47082
47292
  const fillOpacityConfig = null !== (_c = null === (_b = graphic.attribute) || void 0 === _b ? void 0 : _b.fillOpacity) && void 0 !== _c ? _c : 1,
47083
47293
  strokeOpacityConfig = null !== (_e = null === (_d = graphic.attribute) || void 0 === _d ? void 0 : _d.strokeOpacity) && void 0 !== _e ? _e : 1;
47084
- graphic.setAttributes({
47294
+ commitUpdateAnimationTarget(graphic, {
47295
+ fillOpacity: fillOpacityConfig,
47296
+ strokeOpacity: strokeOpacityConfig
47297
+ }, {
47085
47298
  fillOpacity: 0,
47086
47299
  strokeOpacity: 0
47087
47300
  }), graphic.animate().wait(delay).to({
@@ -47097,7 +47310,10 @@
47097
47310
  }
47098
47311
  function graphicFadeOut(graphic, delay, duration, easing) {
47099
47312
  var _a, _b, _c, _d;
47100
- graphic && (graphic.setAttributes({
47313
+ graphic && (commitUpdateAnimationTarget(graphic, {
47314
+ fillOpacity: 0,
47315
+ strokeOpacity: 0
47316
+ }, {
47101
47317
  fillOpacity: null !== (_b = null === (_a = graphic.attribute) || void 0 === _a ? void 0 : _a.fillOpacity) && void 0 !== _b ? _b : 1,
47102
47318
  strokeOpacity: null !== (_d = null === (_c = graphic.attribute) || void 0 === _c ? void 0 : _c.strokeOpacity) && void 0 !== _d ? _d : 1
47103
47319
  }), graphic.animate().wait(delay).to({
@@ -47117,7 +47333,11 @@
47117
47333
  lineDuration = .7 * duration,
47118
47334
  endSymbolDuration = .1 * duration,
47119
47335
  labelDuration = .1 * duration;
47120
- graphicFadeIn(line.startSymbol, delay, startSymbolDuration, easing), line.lines.forEach(line => line.setAttribute("clipRange", 0)), line.lines.forEach((l, index) => {
47336
+ graphicFadeIn(line.startSymbol, delay, startSymbolDuration, easing), line.lines.forEach(line => commitUpdateAnimationTarget(line, {
47337
+ clipRange: 1
47338
+ }, {
47339
+ clipRange: 0
47340
+ })), line.lines.forEach((l, index) => {
47121
47341
  const stepDuration = lineDuration / line.lines.length;
47122
47342
  l.animate().wait(delay + startSymbolDuration + index * stepDuration).to({
47123
47343
  clipRange: 1
@@ -47175,7 +47395,11 @@
47175
47395
  decorativeDuration = .05 * duration,
47176
47396
  endSymbolDuration = .1 * duration,
47177
47397
  labelDuration = .1 * duration;
47178
- graphicFadeIn(itemLine.startSymbol, delay, startSymbolDuration, easing), itemLine.lines.forEach(line => line.setAttribute("clipRange", 0)), itemLine.lines.forEach((l, index) => {
47398
+ graphicFadeIn(itemLine.startSymbol, delay, startSymbolDuration, easing), itemLine.lines.forEach(line => commitUpdateAnimationTarget(line, {
47399
+ clipRange: 1
47400
+ }, {
47401
+ clipRange: 0
47402
+ })), itemLine.lines.forEach((l, index) => {
47179
47403
  const stepDuration = lineDuration / itemLine.lines.length;
47180
47404
  l.animate().wait(delay + startSymbolDuration + index * stepDuration).to({
47181
47405
  clipRange: 1
@@ -49459,12 +49683,18 @@
49459
49683
  let containerSize;
49460
49684
  containerSize = this._itemContext.isHorizontal ? this._itemsContainer.AABBBounds.width() : this._itemsContainer.AABBBounds.height();
49461
49685
  const startOffset = containerSize * start;
49462
- this.updateScrollMask(), animation ? this._itemsContainer.animate().to({
49463
- [channel]: -startOffset
49464
- }, animationDuration, animationEasing) : this._itemsContainer.setAttribute(channel, -startOffset);
49465
- } else animation ? this._itemsContainer.animate().to({
49466
- [channel]: -(newPage - 1) * pageSize
49467
- }, animationDuration, animationEasing) : this._itemsContainer.setAttribute(channel, -(newPage - 1) * pageSize);
49686
+ if (this.updateScrollMask(), animation) {
49687
+ const attrs = {
49688
+ [channel]: -startOffset
49689
+ };
49690
+ commitUpdateAnimationTarget(this._itemsContainer, attrs), this._itemsContainer.animate().to(attrs, animationDuration, animationEasing);
49691
+ } else this._itemsContainer.setAttribute(channel, -startOffset);
49692
+ } else if (animation) {
49693
+ const attrs = {
49694
+ [channel]: -(newPage - 1) * pageSize
49695
+ };
49696
+ commitUpdateAnimationTarget(this._itemsContainer, attrs), this._itemsContainer.animate().to(attrs, animationDuration, animationEasing);
49697
+ } else this._itemsContainer.setAttribute(channel, -(newPage - 1) * pageSize);
49468
49698
  }
49469
49699
  };
49470
49700
  if (this._itemContext.isScrollbar) {
@@ -52488,6 +52718,7 @@
52488
52718
  setActive(labelGroup, activeLabelStyle), setActive(symbolGroup, activeSymbolStyle);
52489
52719
  }
52490
52720
  appearAnimate(animateConfig) {
52721
+ var _a;
52491
52722
  const {
52492
52723
  duration = 1e3,
52493
52724
  easing = "quadOut"
@@ -52503,26 +52734,39 @@
52503
52734
  perSymbolNormalDuration = 90 * percent,
52504
52735
  symbolDelay = 100 * percent,
52505
52736
  symbolNormalDelay = 600 * percent;
52506
- if (this._line && (this._line.setAttributes({
52737
+ if (this._line && (commitUpdateAnimationTarget(this._line, {
52738
+ clipRange: 1
52739
+ }, {
52507
52740
  clipRange: 0
52508
52741
  }), this._line.animate().to({
52509
52742
  clipRange: 1
52510
- }, lineDuration, easing)), this._activeLine && (this._activeLine.setAttributes({
52511
- opacity: 0
52512
- }), this._activeLine.animate().wait(500).to({
52513
- opacity: 1
52514
- }, activeLineDuration, easing)), this._symbolGroup) {
52743
+ }, lineDuration, easing)), this._activeLine) {
52744
+ const opacity = null !== (_a = this._activeLine.attribute.opacity) && void 0 !== _a ? _a : 1;
52745
+ commitUpdateAnimationTarget(this._activeLine, {
52746
+ opacity: opacity
52747
+ }, {
52748
+ opacity: 0
52749
+ }), this._activeLine.animate().wait(500).to({
52750
+ opacity: opacity
52751
+ }, activeLineDuration, easing);
52752
+ }
52753
+ if (this._symbolGroup) {
52515
52754
  const size = this._symbolGroup.count - 1,
52516
52755
  delay = percent * (1 === size ? 0 : 400 / (size - 1)),
52517
52756
  delayNormal = percent * (1 === size ? 0 : 240 / (size - 1));
52518
52757
  this._symbolGroup.forEachChildren((symbol, i) => {
52758
+ var _a;
52519
52759
  const originAttrs = {};
52520
52760
  Object.keys(activeSymbolStyle).forEach(k => {
52521
52761
  originAttrs[k] = symbol.attribute[k];
52522
- }), symbol.setAttributes({
52762
+ });
52763
+ const opacity = null !== (_a = symbol.attribute.opacity) && void 0 !== _a ? _a : 1;
52764
+ commitUpdateAnimationTarget(symbol, {
52765
+ opacity: opacity
52766
+ }, {
52523
52767
  opacity: 0
52524
52768
  }), symbol.animate().wait(symbolDelay + delay * i).to({
52525
- opacity: 1
52769
+ opacity: opacity
52526
52770
  }, perSymbolDuration, easing), symbol.animate().wait(symbolNormalDelay + delayNormal * i).to(Object.assign({}, activeSymbolStyle), perSymbolNormalDuration, easing).to(Object.assign({}, originAttrs), perSymbolNormalDuration, easing);
52527
52771
  });
52528
52772
  }
@@ -52531,13 +52775,18 @@
52531
52775
  delay = percent * (1 === size ? 0 : 400 / (size - 1)),
52532
52776
  delayNormal = percent * (1 === size ? 0 : 240 / (size - 1));
52533
52777
  this._labelGroup.forEachChildren((label, i) => {
52778
+ var _a;
52534
52779
  const originAttrs = {};
52535
52780
  Object.keys(activeLabelStyle).forEach(k => {
52536
52781
  originAttrs[k] = label.attribute[k];
52537
- }), label.setAttributes({
52782
+ });
52783
+ const opacity = null !== (_a = label.attribute.opacity) && void 0 !== _a ? _a : 1;
52784
+ commitUpdateAnimationTarget(label, {
52785
+ opacity: opacity
52786
+ }, {
52538
52787
  opacity: 0
52539
52788
  }), label.animate().wait(symbolDelay + delay * i).to({
52540
- opacity: 1
52789
+ opacity: opacity
52541
52790
  }, perSymbolDuration, easing), label.animate().wait(symbolNormalDelay + delayNormal * i).to(Object.assign({
52542
52791
  dy: 10
52543
52792
  }, activeLabelStyle), perSymbolNormalDuration, easing).to(Object.assign({
@@ -52571,7 +52820,11 @@
52571
52820
  duration = 1e3,
52572
52821
  easing = "quadOut"
52573
52822
  } = animateConfig;
52574
- this.animate().to({
52823
+ commitUpdateAnimationTarget(this, {
52824
+ clipRange: nextClipRange
52825
+ }, {
52826
+ clipRange: clipRange
52827
+ }), this.animate().to({
52575
52828
  clipRange: nextClipRange
52576
52829
  }, duration, easing);
52577
52830
  } else this.setAttributes({
@@ -54290,7 +54543,7 @@
54290
54543
  return resolveLegacyApp().createStage(params);
54291
54544
  }
54292
54545
 
54293
- const version = "1.1.0-alpha.1";
54546
+ const version = "1.1.0-alpha.11";
54294
54547
 
54295
54548
  exports.AComponentAnimate = AComponentAnimate;
54296
54549
  exports.ACustomAnimate = ACustomAnimate;