@visactor/vrender 1.1.0-alpha.16 → 1.1.0-alpha.17

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
@@ -8208,6 +8208,12 @@ function ensureStageStatePerfMonitor(stage) {
8208
8208
  function getStageStatePerfMonitor(stage) {
8209
8209
  if (stage) return stage[STAGE_PERF_MONITOR];
8210
8210
  }
8211
+ function getActiveStageStatePerfMonitor(stage) {
8212
+ var _a;
8213
+ if (!stage) return;
8214
+ const current = getStageStatePerfMonitor(stage);
8215
+ return current || (!0 === (null === (_a = stage.statePerfConfig) || void 0 === _a ? void 0 : _a.enabled) ? ensureStageStatePerfMonitor(stage) : void 0);
8216
+ }
8211
8217
 
8212
8218
  function isPlainObject$1(value) {
8213
8219
  return null != value && "object" == typeof value && !Array.isArray(value);
@@ -8303,7 +8309,7 @@ class StateEngine {
8303
8309
  }
8304
8310
  invalidateResolverCache() {
8305
8311
  var _a, _b;
8306
- this.resolverPatchCache.clear(), this.resolverCacheKey = "", this.resolverCacheValid = !1, null === (_b = getStageStatePerfMonitor(null === (_a = this.graphic) || void 0 === _a ? void 0 : _a.stage)) || void 0 === _b || _b.recordResolver("invalidations");
8312
+ this.resolverPatchCache.clear(), this.resolverCacheKey = "", this.resolverCacheValid = !1, null === (_b = getActiveStageStatePerfMonitor(null === (_a = this.graphic) || void 0 === _a ? void 0 : _a.stage)) || void 0 === _b || _b.recordResolver("invalidations");
8307
8313
  }
8308
8314
  hasState(stateName) {
8309
8315
  return !!this._activeStates.length && (null == stateName || this._activeStates.includes(stateName));
@@ -8350,7 +8356,7 @@ class StateEngine {
8350
8356
  }
8351
8357
  recomputePatch(effectiveStates) {
8352
8358
  var _a;
8353
- const perfMonitor = getStageStatePerfMonitor(null === (_a = this.graphic) || void 0 === _a ? void 0 : _a.stage),
8359
+ const perfMonitor = getActiveStageStatePerfMonitor(null === (_a = this.graphic) || void 0 === _a ? void 0 : _a.stage),
8354
8360
  patchStart = perfMonitor ? performance.now() : 0;
8355
8361
  let resolverCost = 0;
8356
8362
  const cacheKey = effectiveStates.join(","),
@@ -8598,32 +8604,6 @@ class StateStyleResolver {
8598
8604
  }
8599
8605
  }), resolvedAttrs;
8600
8606
  }
8601
- resolveWithCompiled(normalAttrs, compiledDefinitions, stateProxy, effectiveStates, resolvedPatch) {
8602
- var _a, _b;
8603
- const mergeMode = null !== (_a = this.options.mergeMode) && void 0 !== _a ? _a : "shallow",
8604
- resolvedAttrs = null !== (_b = cloneValue(resolvedPatch)) && void 0 !== _b ? _b : {};
8605
- return effectiveStates.forEach(stateName => {
8606
- const proxyPatch = null == stateProxy ? void 0 : stateProxy(stateName, effectiveStates);
8607
- null != proxyPatch && Object.keys(proxyPatch).forEach(key => {
8608
- const nextValue = proxyPatch[key],
8609
- hasCompiledDefinition = compiledDefinitions.has(stateName);
8610
- if ("deep" === mergeMode && isPlainObject(nextValue) && (isPlainObject(resolvedAttrs[key]) || !hasCompiledDefinition && isPlainObject(normalAttrs[key]))) {
8611
- const baseValue = isPlainObject(resolvedAttrs[key]) ? resolvedAttrs[key] : isPlainObject(normalAttrs[key]) ? normalAttrs[key] : {};
8612
- resolvedAttrs[key] = deepMerge(baseValue, nextValue);
8613
- } else resolvedAttrs[key] = cloneValue(nextValue);
8614
- });
8615
- }), resolvedAttrs;
8616
- }
8617
- computeNormalAttrsBackup(normalAttrs, targetAttrs, finalAttribute) {
8618
- const nextNormalAttrs = {},
8619
- nextTargetAttrs = Object.assign({}, targetAttrs);
8620
- for (const key in targetAttrs) Object.prototype.hasOwnProperty.call(targetAttrs, key) && (nextNormalAttrs[key] = cloneValue(normalAttrs && key in normalAttrs ? normalAttrs[key] : finalAttribute[key]));
8621
- if (normalAttrs) for (const key in normalAttrs) Object.prototype.hasOwnProperty.call(normalAttrs, key) && !(key in targetAttrs) && (nextTargetAttrs[key] = cloneValue(normalAttrs[key]));
8622
- return {
8623
- attrs: nextTargetAttrs,
8624
- normalAttrs: nextNormalAttrs
8625
- };
8626
- }
8627
8607
  }
8628
8608
 
8629
8609
  function hasOwnKeys(value) {
@@ -8758,7 +8738,7 @@ function rebuildSharedStateScope(scope) {
8758
8738
  }
8759
8739
  function ensureSharedStateScopeFresh(scope) {
8760
8740
  var _a;
8761
- if (scope) return null === (_a = getStageStatePerfMonitor(scope.ownerStage)) || void 0 === _a || _a.recordRefresh("ensureFreshCalls"), scope.parentScope && ensureSharedStateScopeFresh(scope.parentScope), (scope.dirty || scope.parentScope && scope.parentRevisionAtBuild !== scope.parentScope.revision) && rebuildSharedStateScope(scope), scope;
8741
+ if (scope) return null === (_a = getActiveStageStatePerfMonitor(scope.ownerStage)) || void 0 === _a || _a.recordRefresh("ensureFreshCalls"), scope.parentScope && ensureSharedStateScopeFresh(scope.parentScope), (scope.dirty || scope.parentScope && scope.parentRevisionAtBuild !== scope.parentScope.revision) && rebuildSharedStateScope(scope), scope;
8762
8742
  }
8763
8743
  function collectSharedStateScopeChain(scope) {
8764
8744
  const chain = [];
@@ -8769,7 +8749,7 @@ function collectSharedStateScopeChain(scope) {
8769
8749
 
8770
8750
  function scheduleStageSharedStateRefresh(stage) {
8771
8751
  var _a;
8772
- stage && "released" !== stage.releaseStatus && (null === (_a = getStageStatePerfMonitor(stage)) || void 0 === _a || _a.recordRefresh("renderScheduled"), stage.renderNextFrame());
8752
+ stage && "released" !== stage.releaseStatus && (null === (_a = getActiveStageStatePerfMonitor(stage)) || void 0 === _a || _a.recordRefresh("renderScheduled"), stage.renderNextFrame());
8773
8753
  }
8774
8754
  function enqueueGraphicSharedStateRefresh(stage, graphic) {
8775
8755
  var _a;
@@ -8777,7 +8757,7 @@ function enqueueGraphicSharedStateRefresh(stage, graphic) {
8777
8757
  const pending = null !== (_a = stage._pendingSharedStateRefreshGraphics) && void 0 !== _a ? _a : stage._pendingSharedStateRefreshGraphics = new Set();
8778
8758
  if (!pending.has(graphic)) {
8779
8759
  pending.add(graphic);
8780
- const perfMonitor = getStageStatePerfMonitor(stage);
8760
+ const perfMonitor = getActiveStageStatePerfMonitor(stage);
8781
8761
  null == perfMonitor || perfMonitor.recordRefresh("queuedGraphics"), null == perfMonitor || perfMonitor.recordAllocation("refreshQueuePushes");
8782
8762
  }
8783
8763
  }
@@ -8792,7 +8772,7 @@ function markScopeActiveDescendantsDirty(scope, stage) {
8792
8772
  function flushStageSharedStateRefresh(stage) {
8793
8773
  const pending = stage._pendingSharedStateRefreshGraphics;
8794
8774
  if (!pending || !pending.size) return;
8795
- const perfMonitor = getStageStatePerfMonitor(stage),
8775
+ const perfMonitor = getActiveStageStatePerfMonitor(stage),
8796
8776
  start = perfMonitor ? performance.now() : 0,
8797
8777
  graphics = Array.from(pending.values());
8798
8778
  pending.clear(), null == perfMonitor || perfMonitor.recordRefresh("flushedGraphics", graphics.length), graphics.forEach(graphic => {
@@ -8814,9 +8794,12 @@ const tempConstantXYKey = ["x", "y"],
8814
8794
  tempConstantScaleXYKey = ["scaleX", "scaleY"],
8815
8795
  tempConstantAngleKey = ["angle"],
8816
8796
  builtinTextureTypes = new Set(["circle", "diamond", "rect", "vertical-line", "horizontal-line", "bias-lr", "bias-rl", "grid", "wave"]),
8817
- point = new Point();
8797
+ FULL_STATE_DEFINITION_KEYS = new Set(["name", "patch", "priority", "exclude", "suppress", "resolver", "declaredAffectedKeys"]),
8798
+ point = new Point(),
8799
+ EMPTY_STATE_NAMES = [],
8800
+ BROAD_UPDATE_CATEGORY = UpdateCategory.PAINT | UpdateCategory.SHAPE | UpdateCategory.BOUNDS | UpdateCategory.TRANSFORM | UpdateCategory.LAYOUT;
8818
8801
  function isPlainObjectValue(value) {
8819
- return "object" == typeof value && null != value && !isArray$1(value);
8802
+ return "object" == typeof value && null != value && !Array.isArray(value);
8820
8803
  }
8821
8804
  function cloneAttributeValue(value) {
8822
8805
  if (!isPlainObjectValue(value)) return value;
@@ -8827,12 +8810,6 @@ function cloneAttributeValue(value) {
8827
8810
  clone[key] = isPlainObjectValue(nextValue) ? cloneAttributeValue(nextValue) : nextValue;
8828
8811
  }), clone;
8829
8812
  }
8830
- function cloneSimpleAttributeRecord(value) {
8831
- return isPlainObjectValue(value) ? Object.assign({}, value) : value;
8832
- }
8833
- function shouldUseSimpleAttributeFastPath(value) {
8834
- return !!isPlainObjectValue(value) && !Object.keys(value).some(key => isPlainObjectValue(value[key]));
8835
- }
8836
8813
  function cloneAttributeSurface(value) {
8837
8814
  if (!isPlainObjectValue(value)) return value;
8838
8815
  const source = value,
@@ -8842,6 +8819,9 @@ function cloneAttributeSurface(value) {
8842
8819
  clone[key] = isPlainObjectValue(nextValue) ? Object.assign({}, nextValue) : nextValue;
8843
8820
  }), clone;
8844
8821
  }
8822
+ function areAttributeValuesEqual(left, right) {
8823
+ return left === right || !!(isPlainObjectValue(left) || isPlainObjectValue(right) || Array.isArray(left) || Array.isArray(right)) && isEqual(left, right);
8824
+ }
8845
8825
  function deepMergeAttributeValue(base, value) {
8846
8826
  var _a;
8847
8827
  const result = null !== (_a = cloneAttributeValue(base)) && void 0 !== _a ? _a : {};
@@ -8904,18 +8884,24 @@ class Graphic extends Node {
8904
8884
  get globalTransMatrix() {
8905
8885
  return this.tryUpdateGlobalTransMatrix(!0);
8906
8886
  }
8887
+ get baseAttributes() {
8888
+ var _a;
8889
+ return null !== (_a = this._baseAttributes) && void 0 !== _a ? _a : this.attribute;
8890
+ }
8891
+ set baseAttributes(value) {
8892
+ value !== this.attribute ? this._baseAttributes = value : this._baseAttributes = void 0;
8893
+ }
8907
8894
  constructor(params = {}) {
8908
8895
  var _a;
8909
- super(), this.resolverEpoch = 0, this._AABBBounds = new AABBBounds(), this._updateTag = UpdateTag.INIT;
8910
- const useSimpleAttributeFastPath = shouldUseSimpleAttributeFastPath(params),
8911
- initialBaseAttributes = useSimpleAttributeFastPath ? cloneSimpleAttributeRecord(params) : cloneAttributeValue(params);
8912
- this.baseAttributes = initialBaseAttributes, this.attribute = useSimpleAttributeFastPath ? cloneSimpleAttributeRecord(initialBaseAttributes) : cloneAttributeSurface(initialBaseAttributes), this.valid = this.isValid(), this.updateAABBBoundsStamp = 0, params.background && this.loadImage(null !== (_a = params.background.background) && void 0 !== _a ? _a : params.background, !0), isExternalTexture(params.texture) && this.loadImage(params.texture, !1), params.shadowGraphic && this.setShadowGraphic(params.shadowGraphic);
8896
+ super(), this._AABBBounds = new AABBBounds(), this._updateTag = UpdateTag.INIT, this.attribute = params, this.valid = this.isValid(), this.updateAABBBoundsStamp = 0, params.background && this.loadImage(null !== (_a = params.background.background) && void 0 !== _a ? _a : params.background, !0), params.texture && isExternalTexture(params.texture) && this.loadImage(params.texture, !1), params.shadowGraphic && this.setShadowGraphic(params.shadowGraphic);
8913
8897
  }
8914
8898
  get normalAttrs() {
8915
8899
  return this.baseAttributes;
8916
8900
  }
8917
- set normalAttrs(value) {
8918
- this._deprecatedNormalAttrsView = null != value ? value : void 0;
8901
+ set normalAttrs(_value) {}
8902
+ getBaseAttributesStorage() {
8903
+ var _a;
8904
+ return null !== (_a = this._baseAttributes) && void 0 !== _a ? _a : this.attribute;
8919
8905
  }
8920
8906
  getGraphicService() {
8921
8907
  var _a, _b;
@@ -8946,10 +8932,18 @@ class Graphic extends Node {
8946
8932
  const nextScope = this.resolveBoundSharedStateScope();
8947
8933
  return this.boundSharedStateScope === nextScope ? (this.syncSharedStateActiveRegistrations(), !1) : (this.boundSharedStateScope = nextScope, this.boundSharedStateRevision = void 0, this.localFallbackCompiledDefinitions = void 0, this.compiledStateDefinitions = void 0, this.compiledStateDefinitionsCacheKey = void 0, this.stateEngine = void 0, this.stateEngineCompiledDefinitions = void 0, this.stateEngineStateProxyModeKey = void 0, this.syncSharedStateActiveRegistrations(), markDirty && (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) && this.markSharedStateDirty(), !0);
8948
8934
  }
8949
- syncSharedStateActiveRegistrations() {
8935
+ syncSharedStateScopeBindingOnTreeChange(markDirty = !0) {
8950
8936
  var _a, _b;
8951
- const nextScopes = (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) && this.boundSharedStateScope ? new Set(collectSharedStateScopeChain(this.boundSharedStateScope)) : new Set();
8952
- (null !== (_b = this.registeredActiveScopes) && void 0 !== _b ? _b : new Set()).forEach(scope => {
8937
+ return !!((null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || this.boundSharedStateScope || (null === (_b = this.registeredActiveScopes) || void 0 === _b ? void 0 : _b.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingFromTree(markDirty);
8938
+ }
8939
+ syncSharedStateActiveRegistrations() {
8940
+ var _a;
8941
+ const previousScopes = this.registeredActiveScopes;
8942
+ if (!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || !this.boundSharedStateScope) return (null == previousScopes ? void 0 : previousScopes.size) && (previousScopes.forEach(scope => {
8943
+ scope.subtreeActiveDescendants.delete(this);
8944
+ }), previousScopes.clear()), void (this.registeredActiveScopes = void 0);
8945
+ const nextScopes = new Set(collectSharedStateScopeChain(this.boundSharedStateScope));
8946
+ null == previousScopes || previousScopes.forEach(scope => {
8953
8947
  nextScopes.has(scope) || scope.subtreeActiveDescendants.delete(this);
8954
8948
  }), nextScopes.forEach(scope => {
8955
8949
  scope.subtreeActiveDescendants.add(this);
@@ -8965,15 +8959,13 @@ class Graphic extends Node {
8965
8959
  this.sharedStateDirty = !0, enqueueGraphicSharedStateRefresh(this.stage, this), scheduleStageSharedStateRefresh(this.stage);
8966
8960
  }
8967
8961
  onParentSharedStateTreeChanged(stage, layer) {
8968
- this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingFromTree() : this.setStage(stage, layer);
8962
+ this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingOnTreeChange() : this.setStage(stage, layer);
8969
8963
  }
8970
8964
  refreshSharedStateBeforeRender() {
8971
8965
  var _a;
8972
8966
  (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) ? (this.syncSharedStateScopeBindingFromTree(!1), this.boundSharedStateScope && ensureSharedStateScopeFresh(this.boundSharedStateScope), this.recomputeCurrentStatePatch(), this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
8973
8967
  type: AttributeUpdateType.STATE
8974
- }), this._emitCustomEvent("afterStateUpdate", {
8975
- type: AttributeUpdateType.STATE
8976
- }), this.sharedStateDirty = !1) : this.sharedStateDirty = !1;
8968
+ }), this.emitStateUpdateEvent(), this.sharedStateDirty = !1) : this.sharedStateDirty = !1;
8977
8969
  }
8978
8970
  getLocalStatesVersion() {
8979
8971
  var _a, _b;
@@ -9031,7 +9023,7 @@ class Graphic extends Node {
9031
9023
  const transition = stateModel.useStates(this.currentStates),
9032
9024
  effectiveStates = null !== (_d = transition.effectiveStates) && void 0 !== _d ? _d : transition.states,
9033
9025
  resolvedStateAttrs = this.stateEngine && this.compiledStateDefinitions ? Object.assign({}, this.stateEngine.resolvedPatch) : this.getStateStyleResolver(this.stateMergeMode).resolve(stateResolveBaseAttrs, this.states, this.stateProxy, transition.states, this.stateSort);
9034
- this.currentStates = transition.states, this.effectiveStates = [...effectiveStates], this.resolvedStatePatch = Object.assign({}, resolvedStateAttrs), this.syncSharedStateActiveRegistrations();
9026
+ this.currentStates = transition.states, this.effectiveStates = [...effectiveStates], this.resolvedStatePatch = resolvedStateAttrs, this.syncSharedStateActiveRegistrations();
9035
9027
  }
9036
9028
  buildStaticAttributeSnapshot() {
9037
9029
  var _a;
@@ -9070,16 +9062,17 @@ class Graphic extends Node {
9070
9062
  next: void 0
9071
9063
  }), delete target[key]));
9072
9064
  const nextValue = snapshot[key];
9073
- isEqual(previousValue, nextValue) || (delta.set(key, {
9065
+ areAttributeValuesEqual(previousValue, nextValue) || (delta.set(key, {
9074
9066
  prev: previousValue,
9075
9067
  next: nextValue
9076
9068
  }), target[key] = cloneAttributeValue(nextValue));
9077
9069
  }), delta;
9078
9070
  }
9079
9071
  _syncAttribute() {
9072
+ this.attribute === this.baseAttributes && this.resolvedStatePatch && this.detachAttributeFromBaseAttributes();
9080
9073
  const snapshot = this.buildStaticAttributeSnapshot(),
9081
9074
  delta = this.syncObjectToSnapshot(this.attribute, snapshot);
9082
- return this.valid = this.isValid(), delta;
9075
+ return this.valid = this.isValid(), this.attributeMayContainTransientAttrs = !1, delta;
9083
9076
  }
9084
9077
  _syncFinalAttributeFromStaticTruth() {
9085
9078
  const target = this.finalAttribute;
@@ -9087,47 +9080,146 @@ class Graphic extends Node {
9087
9080
  const snapshot = this.buildStaticAttributeSnapshot();
9088
9081
  this.syncObjectToSnapshot(target, snapshot);
9089
9082
  }
9090
- submitUpdateByDelta(delta, forceUpdateTag = !1) {
9083
+ mergeAttributeDeltaCategory(category, key, prev, next) {
9084
+ var _a;
9085
+ let nextCategory = "stroke" === key || "shadowBlur" === key ? classifyAttributeDelta(key, prev, next) : null !== (_a = ATTRIBUTE_CATEGORY[key]) && void 0 !== _a ? _a : UpdateCategory.PAINT;
9086
+ return nextCategory & UpdateCategory.PICK && (nextCategory |= UpdateCategory.BOUNDS), nextCategory === UpdateCategory.PAINT && this.needUpdateTag(key) && (nextCategory = UpdateCategory.SHAPE | UpdateCategory.BOUNDS), category | nextCategory;
9087
+ }
9088
+ submitUpdateByCategory(category, forceUpdateTag = !1) {
9091
9089
  var _a;
9092
9090
  if (forceUpdateTag) return this.addUpdateShapeAndBoundsTag(), this.addUpdatePositionTag(), void this.addUpdateLayoutTag();
9091
+ if (category !== UpdateCategory.NONE) {
9092
+ const stage = this.stage;
9093
+ stage && (null === (_a = getActiveStageStatePerfMonitor(stage)) || void 0 === _a || _a.recordCategory(category));
9094
+ }
9095
+ (category & BROAD_UPDATE_CATEGORY) !== BROAD_UPDATE_CATEGORY ? (category & UpdateCategory.SHAPE ? this.addUpdateShapeAndBoundsTag() : category & UpdateCategory.BOUNDS && this.addUpdateBoundTag(), category & UpdateCategory.PAINT && this.addUpdatePaintTag(), category & UpdateCategory.TRANSFORM && this.addUpdatePositionTag(), category & UpdateCategory.LAYOUT && this.addUpdateLayoutTag()) : this.addBroadUpdateTag();
9096
+ }
9097
+ submitUpdateByDelta(delta, forceUpdateTag = !1) {
9093
9098
  let category = UpdateCategory.NONE;
9094
9099
  delta.forEach((entry, key) => {
9095
- let nextCategory = classifyAttributeDelta(key, entry.prev, entry.next);
9096
- nextCategory & UpdateCategory.PICK && (nextCategory |= UpdateCategory.BOUNDS), nextCategory === UpdateCategory.PAINT && this.needUpdateTag(key) && (nextCategory = UpdateCategory.SHAPE | UpdateCategory.BOUNDS), category |= nextCategory;
9097
- }), category !== UpdateCategory.NONE && (null === (_a = getStageStatePerfMonitor(this.stage)) || void 0 === _a || _a.recordCategory(category)), category & UpdateCategory.SHAPE ? this.addUpdateShapeAndBoundsTag() : category & UpdateCategory.BOUNDS && this.addUpdateBoundTag(), category & UpdateCategory.PAINT && this.addUpdatePaintTag(), category & UpdateCategory.TRANSFORM && this.addUpdatePositionTag(), category & UpdateCategory.LAYOUT && this.addUpdateLayoutTag();
9100
+ category = this.mergeAttributeDeltaCategory(category, key, entry.prev, entry.next);
9101
+ }), this.submitUpdateByCategory(category, forceUpdateTag);
9102
+ }
9103
+ submitTouchedKeyUpdate(keys, forceUpdateTag = !1) {
9104
+ this.submitTouchedUpdate(forceUpdateTag || this.needUpdateTags(keys));
9105
+ }
9106
+ submitTouchedUpdate(needsShapeAndBounds) {
9107
+ !this.updateShapeAndBoundsTagSetted() && needsShapeAndBounds ? this.addUpdateShapeAndBoundsTag() : this.addUpdateBoundTag(), this.addUpdatePositionTag(), this.addUpdateLayoutTag();
9098
9108
  }
9099
9109
  commitBaseAttributeMutation(forceUpdateTag = !1, context) {
9100
- var _a, _b;
9101
- (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) && (this.resolverEpoch += 1, null === (_b = this.stateEngine) || void 0 === _b || _b.invalidateResolverCache(), this.recomputeCurrentStatePatch());
9110
+ var _a, _b, _c;
9111
+ (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) && (this.resolverEpoch = (null !== (_b = this.resolverEpoch) && void 0 !== _b ? _b : 0) + 1, null === (_c = this.stateEngine) || void 0 === _c || _c.invalidateResolverCache(), this.recomputeCurrentStatePatch());
9102
9112
  const delta = this._syncAttribute();
9103
9113
  this.submitUpdateByDelta(delta, forceUpdateTag), this.onAttributeUpdate(context);
9104
9114
  }
9115
+ canCommitBaseAttributesByTouchedKeys() {
9116
+ var _a, _b;
9117
+ return !((null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || this.resolvedStatePatch || this.attributeMayContainTransientAttrs) && (!(null === (_b = this.animates) || void 0 === _b ? void 0 : _b.size) && !this._animationStateManager || !this.hasAnyTrackedAnimate());
9118
+ }
9119
+ detachAttributeFromBaseAttributes() {
9120
+ this.attribute === this.baseAttributes && (this._baseAttributes = this.attribute, this.attribute = cloneAttributeSurface(this.attribute));
9121
+ }
9122
+ commitInternalBaseAttributes(params, context) {
9123
+ params && Object.keys(params).length && (this.canCommitBaseAttributesByTouchedKeys() ? this.commitBaseAttributesByTouchedKeys(params, !1, context) : (this.detachAttributeFromBaseAttributes(), this.applyBaseAttributes(params), this.commitBaseAttributeMutation(!1, context)));
9124
+ }
9125
+ commitBaseAttributesByTouchedKeys(params, forceUpdateTag = !1, context) {
9126
+ const source = params,
9127
+ baseAttributes = this.getBaseAttributesStorage();
9128
+ let hasKeys = !1,
9129
+ needsShapeAndBounds = forceUpdateTag;
9130
+ for (const key in source) Object.prototype.hasOwnProperty.call(source, key) && (hasKeys = !0, baseAttributes[key] = source[key], !needsShapeAndBounds && this.needUpdateTag(key) && (needsShapeAndBounds = !0));
9131
+ hasKeys && (this.attribute = baseAttributes, this._baseAttributes = void 0, this.valid = this.isValid(), this.attributeMayContainTransientAttrs = !1, this.submitTouchedUpdate(needsShapeAndBounds), this.onAttributeUpdate(context));
9132
+ }
9133
+ commitBaseAttributeBySingleKey(key, value, forceUpdateTag = !1, context) {
9134
+ this.getBaseAttributesStorage()[key] = value, this.attribute = this.getBaseAttributesStorage(), this._baseAttributes = void 0, this.valid = this.isValid(), this.attributeMayContainTransientAttrs = !1, this.submitTouchedUpdate(forceUpdateTag || this.needUpdateTag(key)), this.onAttributeUpdate(context);
9135
+ }
9105
9136
  applyBaseAttributes(params) {
9106
9137
  const keys = Object.keys(params);
9107
9138
  for (let i = 0; i < keys.length; i++) {
9108
9139
  const key = keys[i];
9109
- this.baseAttributes[key] = cloneAttributeValue(params[key]);
9140
+ this.getBaseAttributesStorage()[key] = params[key];
9110
9141
  }
9111
9142
  }
9143
+ applyAnimationTransientAttributes(params, forceUpdateTag = !1, context) {
9144
+ const source = params;
9145
+ let target,
9146
+ needsShapeAndBounds = forceUpdateTag;
9147
+ for (const key in source) Object.prototype.hasOwnProperty.call(source, key) && (target || (this.detachAttributeFromBaseAttributes(), target = this.attribute), target[key] = source[key], !needsShapeAndBounds && this.needUpdateTag(key) && (needsShapeAndBounds = !0));
9148
+ target && (this.attributeMayContainTransientAttrs = !0, this.valid = this.isValid(), this.submitTouchedUpdate(needsShapeAndBounds), this.onAttributeUpdate(context));
9149
+ }
9112
9150
  applyTransientAttributes(params, forceUpdateTag = !1, context) {
9151
+ this.detachAttributeFromBaseAttributes();
9113
9152
  const delta = new Map(),
9114
9153
  keys = Object.keys(params);
9115
9154
  for (let i = 0; i < keys.length; i++) {
9116
9155
  const key = keys[i],
9117
9156
  previousValue = this.attribute[key],
9118
9157
  nextValue = params[key];
9119
- isEqual(previousValue, nextValue) || (delta.set(key, {
9158
+ areAttributeValuesEqual(previousValue, nextValue) || (delta.set(key, {
9120
9159
  prev: previousValue,
9121
9160
  next: nextValue
9122
- }), this.attribute[key] = cloneAttributeValue(nextValue));
9161
+ }), this.attribute[key] = nextValue);
9123
9162
  }
9124
- this.valid = this.isValid(), this.submitUpdateByDelta(delta, forceUpdateTag), this.onAttributeUpdate(context);
9163
+ delta.size && (this.attributeMayContainTransientAttrs = !0), this.valid = this.isValid(), this.submitUpdateByDelta(delta, forceUpdateTag), this.onAttributeUpdate(context);
9125
9164
  }
9126
9165
  _restoreAttributeFromStaticTruth(context) {
9127
9166
  this._syncFinalAttributeFromStaticTruth();
9128
9167
  const delta = this._syncAttribute();
9129
9168
  this.submitUpdateByDelta(delta), this.onAttributeUpdate(context);
9130
9169
  }
9170
+ collectStatePatchDeltaKeys(previousPatch, nextPatch) {
9171
+ const keys = previousPatch ? Object.keys(previousPatch) : [];
9172
+ if (!nextPatch) return keys;
9173
+ for (const key in nextPatch) Object.prototype.hasOwnProperty.call(nextPatch, key) && !Object.prototype.hasOwnProperty.call(null != previousPatch ? previousPatch : {}, key) && keys.push(key);
9174
+ return keys;
9175
+ }
9176
+ getStaticTruthValueForStateKey(key, nextPatch) {
9177
+ var _a;
9178
+ const baseAttributes = null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : {},
9179
+ patch = nextPatch;
9180
+ if (patch && Object.prototype.hasOwnProperty.call(patch, key)) {
9181
+ const patchValue = patch[key],
9182
+ baseValue = baseAttributes[key];
9183
+ return "deep" === this.stateMergeMode && isPlainObjectValue(baseValue) && isPlainObjectValue(patchValue) ? {
9184
+ hasValue: !0,
9185
+ value: deepMergeAttributeValue(baseValue, patchValue)
9186
+ } : {
9187
+ hasValue: !0,
9188
+ value: patchValue
9189
+ };
9190
+ }
9191
+ return Object.prototype.hasOwnProperty.call(baseAttributes, key) ? {
9192
+ hasValue: !0,
9193
+ value: baseAttributes[key]
9194
+ } : {
9195
+ hasValue: !1,
9196
+ value: void 0
9197
+ };
9198
+ }
9199
+ syncStatePatchDeltaToTarget(target, keys, nextPatch, collectCategory = !1) {
9200
+ let category = UpdateCategory.NONE;
9201
+ for (let i = 0; i < keys.length; i++) {
9202
+ const key = keys[i],
9203
+ previousValue = target[key],
9204
+ next = this.getStaticTruthValueForStateKey(key, nextPatch);
9205
+ if (!next.hasValue) {
9206
+ Object.prototype.hasOwnProperty.call(target, key) && (delete target[key], collectCategory && (category = this.mergeAttributeDeltaCategory(category, key, previousValue, void 0)));
9207
+ continue;
9208
+ }
9209
+ if (areAttributeValuesEqual(previousValue, next.value)) continue;
9210
+ const nextValue = cloneAttributeValue(next.value);
9211
+ target[key] = nextValue, collectCategory && (category = this.mergeAttributeDeltaCategory(category, key, previousValue, nextValue));
9212
+ }
9213
+ return category;
9214
+ }
9215
+ restoreAttributeFromStatePatchDelta(previousPatch, nextPatch, context) {
9216
+ this.detachAttributeFromBaseAttributes();
9217
+ const keys = this.collectStatePatchDeltaKeys(previousPatch, nextPatch),
9218
+ finalAttribute = this.finalAttribute;
9219
+ finalAttribute && this.syncStatePatchDeltaToTarget(finalAttribute, keys, nextPatch, !1);
9220
+ const category = this.syncStatePatchDeltaToTarget(this.attribute, keys, nextPatch, !0);
9221
+ this.valid = this.isValid(), this.attributeMayContainTransientAttrs = !1, this.submitUpdateByCategory(category), this.onAttributeUpdate(context);
9222
+ }
9131
9223
  setMode(mode) {
9132
9224
  "3d" === mode ? this.set3dMode() : this.set2dMode();
9133
9225
  }
@@ -9150,7 +9242,7 @@ class Graphic extends Node {
9150
9242
  return point;
9151
9243
  }
9152
9244
  onAnimateBind(animate) {
9153
- this._emitCustomEvent("animate-bind", animate);
9245
+ this.detachAttributeFromBaseAttributes(), this._emitCustomEvent("animate-bind", animate);
9154
9246
  }
9155
9247
  visitTrackedAnimates(cb) {
9156
9248
  const hook = this.forEachTrackedAnimate;
@@ -9163,8 +9255,22 @@ class Graphic extends Node {
9163
9255
  const getTrackedAnimates = this.getTrackedAnimates;
9164
9256
  return "function" == typeof getTrackedAnimates ? getTrackedAnimates.call(this).size > 0 : !!(null === (_a = this.animates) || void 0 === _a ? void 0 : _a.size);
9165
9257
  }
9258
+ mayHaveTrackedAnimates() {
9259
+ var _a;
9260
+ return !!(null === (_a = this.animates) || void 0 === _a ? void 0 : _a.size) || !!this._animationStateManager;
9261
+ }
9166
9262
  tryUpdateAABBBounds() {
9263
+ if (!(this.shadowRoot || this._updateTag & UpdateTag.UPDATE_BOUNDS)) return this._AABBBounds;
9167
9264
  const full = "imprecise" === this.attribute.boundsMode;
9265
+ if (!this.shadowRoot) {
9266
+ const graphicService = this.getGraphicService(),
9267
+ graphicTheme = this.getGraphicTheme();
9268
+ if (!graphicService.validCheck(this.attribute, graphicTheme, this._AABBBounds, this)) return this._AABBBounds;
9269
+ if (!this.valid) return this._AABBBounds.clear(), this._AABBBounds;
9270
+ graphicService.beforeUpdateAABBBounds(this, this.stage, !0, this._AABBBounds);
9271
+ const bounds = this.doUpdateAABBBounds(full, graphicTheme);
9272
+ return graphicService.afterUpdateAABBBounds(this, this.stage, this._AABBBounds, this, !0), "empty" === this.attribute.boundsMode && bounds.clear(), bounds;
9273
+ }
9168
9274
  if (!this.shouldUpdateAABBBounds()) return this._AABBBounds;
9169
9275
  if (!this.valid) return this._AABBBounds.clear(), this._AABBBounds;
9170
9276
  this.getGraphicService().beforeUpdateAABBBounds(this, this.stage, !0, this._AABBBounds);
@@ -9237,14 +9343,14 @@ class Graphic extends Node {
9237
9343
  const _parsedPath = new CustomSymbolClass(symbolType, cache);
9238
9344
  return Graphic.userSymbolMap[symbolType] = _parsedPath, _parsedPath;
9239
9345
  }
9240
- doUpdateAABBBounds(full) {
9346
+ doUpdateAABBBounds(full, graphicTheme) {
9241
9347
  this.updateAABBBoundsStamp++;
9242
- const graphicTheme = this.getGraphicTheme();
9348
+ const resolvedGraphicTheme = null != graphicTheme ? graphicTheme : this.getGraphicTheme();
9243
9349
  this._AABBBounds.clear();
9244
9350
  const attribute = this.attribute,
9245
- bounds = this.updateAABBBounds(attribute, graphicTheme, this._AABBBounds, full),
9351
+ bounds = this.updateAABBBounds(attribute, resolvedGraphicTheme, this._AABBBounds, full),
9246
9352
  {
9247
- boundsPadding = graphicTheme.boundsPadding
9353
+ boundsPadding = resolvedGraphicTheme.boundsPadding
9248
9354
  } = attribute,
9249
9355
  paddingArray = parsePadding(boundsPadding);
9250
9356
  return paddingArray && bounds.expand(paddingArray), this.clearUpdateBoundTag(), bounds;
@@ -9353,18 +9459,22 @@ class Graphic extends Node {
9353
9459
  return fromAttrs;
9354
9460
  }
9355
9461
  setAttributes(params, forceUpdateTag = !1, context) {
9356
- params && ((params = this.onBeforeAttributeUpdate && this.onBeforeAttributeUpdate(params, this.attribute, null, context) || params).background && this.loadImage(params.background, !0), isExternalTexture(params.texture) && this.loadImage(params.texture, !1), params.shadowGraphic && this.setShadowGraphic(params.shadowGraphic), this._setAttributes(params, forceUpdateTag, context));
9462
+ params && ((params = this.onBeforeAttributeUpdate && this.onBeforeAttributeUpdate(params, this.attribute, null, context) || params).background && this.loadImage(params.background, !0), params.texture && isExternalTexture(params.texture) && this.loadImage(params.texture, !1), params.shadowGraphic && this.setShadowGraphic(params.shadowGraphic), this._setAttributes(params, forceUpdateTag, context));
9357
9463
  }
9358
9464
  _setAttributes(params, forceUpdateTag = !1, context) {
9359
- this.applyBaseAttributes(params), this.commitBaseAttributeMutation(forceUpdateTag, context);
9465
+ this.canCommitBaseAttributesByTouchedKeys() ? this.commitBaseAttributesByTouchedKeys(params, forceUpdateTag, context) : (this.detachAttributeFromBaseAttributes(), this.applyBaseAttributes(params), this.commitBaseAttributeMutation(forceUpdateTag, context));
9360
9466
  }
9361
9467
  setAttribute(key, value, forceUpdateTag, context) {
9362
9468
  const params = this.onBeforeAttributeUpdate && this.onBeforeAttributeUpdate({
9363
9469
  [key]: value
9364
9470
  }, this.attribute, key, context);
9365
- params ? this._setAttributes(params, forceUpdateTag, context) : (this.applyBaseAttributes({
9366
- [key]: value
9367
- }), this.commitBaseAttributeMutation(!!forceUpdateTag, context)), "background" === key ? this.loadImage(value, !0) : "texture" === key && isExternalTexture(value) ? this.loadImage(value, !1) : "shadowGraphic" === key && this.setShadowGraphic(value);
9471
+ if (params) this._setAttributes(params, forceUpdateTag, context);else if (this.canCommitBaseAttributesByTouchedKeys()) this.commitBaseAttributeBySingleKey(key, value, !!forceUpdateTag, context);else {
9472
+ const nextAttrs = {
9473
+ [key]: value
9474
+ };
9475
+ this.applyBaseAttributes(nextAttrs), this.commitBaseAttributeMutation(!!forceUpdateTag, context);
9476
+ }
9477
+ "background" === key ? this.loadImage(value, !0) : "texture" === key && isExternalTexture(value) ? this.loadImage(value, !1) : "shadowGraphic" === key && this.setShadowGraphic(value);
9368
9478
  }
9369
9479
  needUpdateTags(keys, k = GRAPHIC_UPDATE_TAG_KEY) {
9370
9480
  for (let i = 0; i < k.length; i++) {
@@ -9383,7 +9493,7 @@ class Graphic extends Node {
9383
9493
  const context = {
9384
9494
  type: AttributeUpdateType.INIT
9385
9495
  };
9386
- params = this.onBeforeAttributeUpdate && this.onBeforeAttributeUpdate(params, this.attribute, null, context) || params, this.baseAttributes = cloneAttributeValue(params), this.attribute || (this.attribute = {}), this.resolvedStatePatch = void 0, this._syncAttribute(), params.background && this.loadImage(params.background, !0), isExternalTexture(params.texture) && this.loadImage(params.texture, !1), params.shadowGraphic && this.setShadowGraphic(params.shadowGraphic), this._updateTag = UpdateTag.INIT, this.valid = this.isValid(), this.onAttributeUpdate(context);
9496
+ params = this.onBeforeAttributeUpdate && this.onBeforeAttributeUpdate(params, this.attribute, null, context) || params, this.attribute = params, this._baseAttributes = void 0, this.resolvedStatePatch = void 0, this.attributeMayContainTransientAttrs = !1, this.valid = this.isValid(), params.background && this.loadImage(params.background, !0), params.texture && isExternalTexture(params.texture) && this.loadImage(params.texture, !1), params.shadowGraphic && this.setShadowGraphic(params.shadowGraphic), this._updateTag = UpdateTag.INIT, this.valid = this.isValid(), this.onAttributeUpdate(context);
9387
9497
  }
9388
9498
  translate(x, y) {
9389
9499
  var _a, _b;
@@ -9395,10 +9505,15 @@ class Graphic extends Node {
9395
9505
  x: x,
9396
9506
  y: y
9397
9507
  }, this.attribute, tempConstantXYKey, context);
9398
- params && (x = params.x, y = params.y, delete params.x, delete params.y, this.applyBaseAttributes(params));
9508
+ params && (x = params.x, y = params.y, delete params.x, delete params.y);
9399
9509
  const attribute = this.baseAttributes,
9400
- postMatrix = attribute.postMatrix;
9401
- return postMatrix ? application.transformUtil.fromMatrix(postMatrix, postMatrix).translate(x, y) : (attribute.x = (null !== (_a = attribute.x) && void 0 !== _a ? _a : DefaultTransform.x) + x, attribute.y = (null !== (_b = attribute.y) && void 0 !== _b ? _b : DefaultTransform.y) + y), this.commitBaseAttributeMutation(!1, context), this;
9510
+ postMatrix = attribute.postMatrix,
9511
+ nextAttrs = params || {};
9512
+ if (postMatrix) {
9513
+ const nextPostMatrix = postMatrix.clone();
9514
+ application.transformUtil.fromMatrix(nextPostMatrix, nextPostMatrix).translate(x, y), nextAttrs.postMatrix = nextPostMatrix;
9515
+ } else nextAttrs.x = (null !== (_a = attribute.x) && void 0 !== _a ? _a : DefaultTransform.x) + x, nextAttrs.y = (null !== (_b = attribute.y) && void 0 !== _b ? _b : DefaultTransform.y) + y;
9516
+ return this.commitInternalBaseAttributes(nextAttrs, context), this;
9402
9517
  }
9403
9518
  translateTo(x, y) {
9404
9519
  const attribute = this.baseAttributes;
@@ -9410,7 +9525,10 @@ class Graphic extends Node {
9410
9525
  x: x,
9411
9526
  y: y
9412
9527
  }, this.attribute, tempConstantXYKey, context);
9413
- return params ? (this.applyBaseAttributes(params), this.commitBaseAttributeMutation(!1, context), this) : (attribute.x = x, attribute.y = y, this.commitBaseAttributeMutation(!1, context), this);
9528
+ return params ? (this.commitInternalBaseAttributes(params, context), this) : (this.commitInternalBaseAttributes({
9529
+ x: x,
9530
+ y: y
9531
+ }, context), this);
9414
9532
  }
9415
9533
  scale(scaleX, scaleY, scaleCenter) {
9416
9534
  var _a, _b;
@@ -9423,15 +9541,16 @@ class Graphic extends Node {
9423
9541
  scaleY: scaleY,
9424
9542
  scaleCenter: scaleCenter
9425
9543
  }, this.attribute, tempConstantScaleXYKey, context);
9426
- params && (scaleX = params.scaleX, scaleY = params.scaleY, delete params.scaleX, delete params.scaleY, this.applyBaseAttributes(params));
9427
- const attribute = this.baseAttributes;
9544
+ params && (scaleX = params.scaleX, scaleY = params.scaleY, delete params.scaleX, delete params.scaleY);
9545
+ const attribute = this.baseAttributes,
9546
+ nextAttrs = params || {};
9428
9547
  if (scaleCenter) {
9429
9548
  let {
9430
9549
  postMatrix: postMatrix
9431
- } = this.attribute;
9432
- postMatrix || (postMatrix = new Matrix(), attribute.postMatrix = postMatrix), application.transformUtil.fromMatrix(postMatrix, postMatrix).scale(scaleX, scaleY, scaleCenter);
9433
- } else attribute.scaleX = (null !== (_a = attribute.scaleX) && void 0 !== _a ? _a : DefaultTransform.scaleX) * scaleX, attribute.scaleY = (null !== (_b = attribute.scaleY) && void 0 !== _b ? _b : DefaultTransform.scaleY) * scaleY;
9434
- return this.commitBaseAttributeMutation(!1, context), this;
9550
+ } = this.baseAttributes;
9551
+ postMatrix = postMatrix ? postMatrix.clone() : new Matrix(), application.transformUtil.fromMatrix(postMatrix, postMatrix).scale(scaleX, scaleY, scaleCenter), nextAttrs.postMatrix = postMatrix;
9552
+ } else nextAttrs.scaleX = (null !== (_a = attribute.scaleX) && void 0 !== _a ? _a : DefaultTransform.scaleX) * scaleX, nextAttrs.scaleY = (null !== (_b = attribute.scaleY) && void 0 !== _b ? _b : DefaultTransform.scaleY) * scaleY;
9553
+ return this.commitInternalBaseAttributes(nextAttrs, context), this;
9435
9554
  }
9436
9555
  scaleTo(scaleX, scaleY) {
9437
9556
  const attribute = this.baseAttributes;
@@ -9443,7 +9562,10 @@ class Graphic extends Node {
9443
9562
  scaleX: scaleX,
9444
9563
  scaleY: scaleY
9445
9564
  }, this.attribute, tempConstantScaleXYKey, context);
9446
- return params ? (this.applyBaseAttributes(params), this.commitBaseAttributeMutation(!1, context), this) : (attribute.scaleX = scaleX, attribute.scaleY = scaleY, this.commitBaseAttributeMutation(!1, context), this);
9565
+ return params ? (this.commitInternalBaseAttributes(params, context), this) : (this.commitInternalBaseAttributes({
9566
+ scaleX: scaleX,
9567
+ scaleY: scaleY
9568
+ }, context), this);
9447
9569
  }
9448
9570
  rotate(angle, rotateCenter) {
9449
9571
  var _a;
@@ -9455,24 +9577,26 @@ class Graphic extends Node {
9455
9577
  angle: angle,
9456
9578
  rotateCenter: rotateCenter
9457
9579
  }, this.attribute, tempConstantAngleKey, context);
9458
- params && (delete params.angle, this.applyBaseAttributes(params));
9459
- const attribute = this.baseAttributes;
9580
+ params && delete params.angle;
9581
+ const attribute = this.baseAttributes,
9582
+ nextAttrs = params || {};
9460
9583
  if (rotateCenter) {
9461
9584
  let {
9462
9585
  postMatrix: postMatrix
9463
9586
  } = this.baseAttributes;
9464
- postMatrix || (postMatrix = new Matrix(), this.baseAttributes.postMatrix = postMatrix), application.transformUtil.fromMatrix(postMatrix, postMatrix).rotate(angle, rotateCenter);
9465
- } else attribute.angle = (null !== (_a = attribute.angle) && void 0 !== _a ? _a : DefaultTransform.angle) + angle;
9466
- return this.commitBaseAttributeMutation(!1, context), this;
9587
+ postMatrix = postMatrix ? postMatrix.clone() : new Matrix(), application.transformUtil.fromMatrix(postMatrix, postMatrix).rotate(angle, rotateCenter), nextAttrs.postMatrix = postMatrix;
9588
+ } else nextAttrs.angle = (null !== (_a = attribute.angle) && void 0 !== _a ? _a : DefaultTransform.angle) + angle;
9589
+ return this.commitInternalBaseAttributes(nextAttrs, context), this;
9467
9590
  }
9468
9591
  rotateTo(angle) {
9469
- const attribute = this.baseAttributes;
9470
- if (attribute.angle === angle) return this;
9592
+ if (this.baseAttributes.angle === angle) return this;
9471
9593
  const context = {
9472
9594
  type: AttributeUpdateType.ROTATE_TO
9473
9595
  },
9474
9596
  params = this.onBeforeAttributeUpdate && this.onBeforeAttributeUpdate(angle, this.attribute, tempConstantAngleKey, context);
9475
- return params ? (this.applyBaseAttributes(params), this.commitBaseAttributeMutation(!1, context), this) : (attribute.angle = angle, this.commitBaseAttributeMutation(!1, context), this);
9597
+ return params ? (this.commitInternalBaseAttributes(params, context), this) : (this.commitInternalBaseAttributes({
9598
+ angle: angle
9599
+ }, context), this);
9476
9600
  }
9477
9601
  skewTo(b, c) {
9478
9602
  return this;
@@ -9511,6 +9635,67 @@ class Graphic extends Node {
9511
9635
  stateEngine: this.stateEngine
9512
9636
  });
9513
9637
  }
9638
+ resolveSimpleLocalStateTransition(states, previousStates) {
9639
+ var _a;
9640
+ if (!this.states || this.stateProxy || this.stateSort || "deep" === this.stateMergeMode || this.parent || (null === (_a = this.stage) || void 0 === _a ? void 0 : _a.rootSharedStateScope) || this.boundSharedStateScope) return null;
9641
+ if (1 === states.length) {
9642
+ const stateName = states[0],
9643
+ hasDefinition = Object.prototype.hasOwnProperty.call(this.states, stateName),
9644
+ nextStates = [stateName],
9645
+ changed = !this.sameStateNames(previousStates, nextStates),
9646
+ resolvedStateAttrs = {};
9647
+ if (hasDefinition) {
9648
+ const attrs = this.states[stateName];
9649
+ if (null != attrs) {
9650
+ if (!isPlainObjectValue(attrs)) return null;
9651
+ const keys = Object.keys(attrs);
9652
+ for (let keyIndex = 0; keyIndex < keys.length; keyIndex++) {
9653
+ const key = keys[keyIndex];
9654
+ if (FULL_STATE_DEFINITION_KEYS.has(key)) return null;
9655
+ const attrValue = attrs[key];
9656
+ resolvedStateAttrs[key] = isPlainObjectValue(attrValue) ? cloneAttributeValue(attrValue) : attrValue;
9657
+ }
9658
+ }
9659
+ }
9660
+ return {
9661
+ changed: changed,
9662
+ states: nextStates,
9663
+ effectiveStates: nextStates,
9664
+ resolvedStateAttrs: resolvedStateAttrs
9665
+ };
9666
+ }
9667
+ const uniqueStates = Array.from(new Set(states)),
9668
+ withDefinition = [],
9669
+ withoutDefinition = [];
9670
+ for (let i = 0; i < uniqueStates.length; i++) {
9671
+ const stateName = uniqueStates[i];
9672
+ Object.prototype.hasOwnProperty.call(this.states, stateName) ? withDefinition.push(stateName) : withoutDefinition.push(stateName);
9673
+ }
9674
+ withDefinition.sort((left, right) => left.localeCompare(right));
9675
+ const nextStates = withDefinition.concat(withoutDefinition),
9676
+ changed = !this.sameStateNames(previousStates, nextStates),
9677
+ resolvedStateAttrs = {};
9678
+ for (let i = 0; i < nextStates.length; i++) {
9679
+ const stateName = nextStates[i];
9680
+ if (!Object.prototype.hasOwnProperty.call(this.states, stateName)) continue;
9681
+ const attrs = this.states[stateName];
9682
+ if (null == attrs) continue;
9683
+ if (!isPlainObjectValue(attrs)) return null;
9684
+ const keys = Object.keys(attrs);
9685
+ for (let keyIndex = 0; keyIndex < keys.length; keyIndex++) {
9686
+ const key = keys[keyIndex];
9687
+ if (FULL_STATE_DEFINITION_KEYS.has(key)) return null;
9688
+ const attrValue = attrs[key];
9689
+ resolvedStateAttrs[key] = isPlainObjectValue(attrValue) ? cloneAttributeValue(attrValue) : attrValue;
9690
+ }
9691
+ }
9692
+ return {
9693
+ changed: changed,
9694
+ states: nextStates,
9695
+ effectiveStates: nextStates,
9696
+ resolvedStateAttrs: resolvedStateAttrs
9697
+ };
9698
+ }
9514
9699
  resolveStateAnimateConfig(animateConfig) {
9515
9700
  var _a, _b, _c;
9516
9701
  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;
@@ -9531,9 +9716,7 @@ class Graphic extends Node {
9531
9716
  });
9532
9717
  this.getStateTransitionOrchestrator().applyTransition(this, plan, hasAnimation, transitionOptions);
9533
9718
  }
9534
- updateNormalAttrs(stateAttrs) {
9535
- this._deprecatedNormalAttrsView = cloneAttributeValue(this.baseAttributes);
9536
- }
9719
+ updateNormalAttrs(_stateAttrs) {}
9537
9720
  getStateTransitionDefaultAttribute(key, targetAttrs) {
9538
9721
  return this.getDefaultAttribute(key);
9539
9722
  }
@@ -9543,6 +9726,7 @@ class Graphic extends Node {
9543
9726
  stopStateAnimates(type = "end") {
9544
9727
  const stopAnimationState = this.stopAnimationState;
9545
9728
  if ("function" == typeof stopAnimationState) return void stopAnimationState.call(this, "state", type);
9729
+ if (!this.mayHaveTrackedAnimates()) return;
9546
9730
  const stateAnimates = [];
9547
9731
  this.visitTrackedAnimates(animate => {
9548
9732
  animate.stateNames && stateAnimates.push(animate);
@@ -9555,19 +9739,25 @@ class Graphic extends Node {
9555
9739
  }
9556
9740
  clearStates(hasAnimation) {
9557
9741
  var _a, _b, _c;
9558
- const previousStates = this.currentStates ? this.currentStates.slice() : [],
9559
- previousResolvedStatePatch = this.resolvedStatePatch ? cloneAttributeValue(this.resolvedStatePatch) : void 0,
9742
+ const previousStates = null !== (_a = this.currentStates) && void 0 !== _a ? _a : EMPTY_STATE_NAMES,
9743
+ previousResolvedStatePatch = this.resolvedStatePatch,
9560
9744
  transition = this.createStateModel().clearStates();
9561
9745
  if (!transition.changed && 0 === previousStates.length) return this.currentStates = [], this.effectiveStates = [], this.resolvedStatePatch = void 0, this.sharedStateDirty = !1, void this.clearSharedStateActiveRegistrations();
9562
- const resolvedStateAttrs = cloneAttributeValue(null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : {});
9563
- 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", {
9564
- graphicId: this._uid,
9565
- targetStates: []
9566
- }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !0, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9567
- type: AttributeUpdateType.STATE
9568
- }), this._emitCustomEvent("afterStateUpdate", {
9569
- type: AttributeUpdateType.STATE
9570
- })));
9746
+ const resolvedStateAttrs = hasAnimation || this.hasCustomEvent("beforeStateUpdate") ? cloneAttributeValue(null !== (_b = this.baseAttributes) && void 0 !== _b ? _b : {}) : null !== (_c = this.baseAttributes) && void 0 !== _c ? _c : {};
9747
+ if (!transition.changed || this.beforeStateUpdate(resolvedStateAttrs, previousStates, transition.states, hasAnimation, !0)) {
9748
+ if (this.currentStates = transition.states, this.effectiveStates = [], this.resolvedStatePatch = void 0, this.sharedStateDirty = !1, this.clearSharedStateActiveRegistrations(), this.stage) {
9749
+ const perfMonitor = getActiveStageStatePerfMonitor(this.stage);
9750
+ null == perfMonitor || perfMonitor.incrementCounter("stateCommits"), null == perfMonitor || perfMonitor.recordEvent("state-commit", {
9751
+ graphicId: this._uid,
9752
+ targetStates: []
9753
+ });
9754
+ }
9755
+ hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !0, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this.attributeMayContainTransientAttrs ? this._restoreAttributeFromStaticTruth({
9756
+ type: AttributeUpdateType.STATE
9757
+ }) : this.restoreAttributeFromStatePatchDelta(previousResolvedStatePatch, void 0, {
9758
+ type: AttributeUpdateType.STATE
9759
+ }), this.emitStateUpdateEvent());
9760
+ }
9571
9761
  }
9572
9762
  removeState(stateName, hasAnimation) {
9573
9763
  const transition = this.createStateModel().removeState(stateName);
@@ -9581,39 +9771,58 @@ class Graphic extends Node {
9581
9771
  const transition = this.createStateModel().addState(stateName, keepCurrentStates);
9582
9772
  transition.changed && this.useStates(transition.states, hasAnimation);
9583
9773
  }
9774
+ setStates(states, hasAnimation) {
9775
+ var _a, _b, _c;
9776
+ const nextStates = (null == states ? void 0 : states.length) ? states : EMPTY_STATE_NAMES,
9777
+ hasCurrentState = !!((null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || (null === (_b = this.effectiveStates) || void 0 === _b ? void 0 : _b.length) || this.resolvedStatePatch || (null === (_c = this.registeredActiveScopes) || void 0 === _c ? void 0 : _c.size));
9778
+ if (nextStates.length) this.sameStateNames(this.currentStates, nextStates) ? this.sharedStateDirty && this.refreshSharedStateBeforeRender() : this.useStates(nextStates, hasAnimation);else {
9779
+ if (!hasCurrentState && !this.sharedStateDirty) return;
9780
+ this.clearStates(hasAnimation);
9781
+ }
9782
+ }
9584
9783
  useStates(states, hasAnimation) {
9585
- var _a, _b, _c, _d, _e;
9784
+ var _a, _b, _c, _d;
9586
9785
  if (!states.length) return void this.clearStates(hasAnimation);
9587
- const previousStates = this.currentStates ? this.currentStates.slice() : [],
9588
- previousResolvedStatePatch = this.resolvedStatePatch ? cloneAttributeValue(this.resolvedStatePatch) : void 0,
9589
- stateResolveBaseAttrs = null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : this.attribute,
9590
- stateModel = this.createStateModel();
9591
- null === (_b = this.stateEngine) || void 0 === _b || _b.setResolveContext(this, stateResolveBaseAttrs);
9592
- const transition = stateModel.useStates(states);
9593
- if (!transition.changed && this.sameStateNames(previousStates, transition.states)) return;
9594
- const effectiveStates = null !== (_c = transition.effectiveStates) && void 0 !== _c ? _c : transition.states,
9786
+ const previousStates = null !== (_a = this.currentStates) && void 0 !== _a ? _a : EMPTY_STATE_NAMES,
9787
+ previousResolvedStatePatch = this.resolvedStatePatch;
9788
+ let transition = this.resolveSimpleLocalStateTransition(states, previousStates);
9789
+ const isSimpleLocalTransition = !!transition;
9790
+ let resolvedStateAttrs;
9791
+ if (transition) {
9792
+ if (!transition.changed) return;
9793
+ resolvedStateAttrs = transition.resolvedStateAttrs;
9794
+ } else {
9795
+ const stateResolveBaseAttrs = null !== (_b = this.baseAttributes) && void 0 !== _b ? _b : this.attribute,
9796
+ stateModel = this.createStateModel();
9797
+ if (null === (_c = this.stateEngine) || void 0 === _c || _c.setResolveContext(this, stateResolveBaseAttrs), transition = stateModel.useStates(states), !transition.changed && this.sameStateNames(previousStates, transition.states)) return;
9595
9798
  resolvedStateAttrs = this.stateEngine && this.compiledStateDefinitions ? Object.assign({}, this.stateEngine.resolvedPatch) : this.getStateStyleResolver(this.stateMergeMode).resolve(stateResolveBaseAttrs, this.states, this.stateProxy, transition.states, this.stateSort);
9596
- 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", {
9597
- graphicId: this._uid,
9598
- targetStates: [...transition.states]
9599
- }), hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !1, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9600
- type: AttributeUpdateType.STATE
9601
- }), this._emitCustomEvent("afterStateUpdate", {
9602
- type: AttributeUpdateType.STATE
9603
- })));
9799
+ }
9800
+ const effectiveStates = null !== (_d = transition.effectiveStates) && void 0 !== _d ? _d : transition.states;
9801
+ if (this.beforeStateUpdate(resolvedStateAttrs, previousStates, transition.states, hasAnimation, !1)) {
9802
+ if (this.currentStates = transition.states, this.effectiveStates = isSimpleLocalTransition ? effectiveStates : [...effectiveStates], this.resolvedStatePatch = resolvedStateAttrs, this.sharedStateDirty = !1, this.syncSharedStateActiveRegistrations(), this.stage) {
9803
+ const perfMonitor = getActiveStageStatePerfMonitor(this.stage);
9804
+ null == perfMonitor || perfMonitor.incrementCounter("stateCommits"), null == perfMonitor || perfMonitor.recordEvent("state-commit", {
9805
+ graphicId: this._uid,
9806
+ targetStates: [...transition.states]
9807
+ });
9808
+ }
9809
+ hasAnimation ? (this._syncFinalAttributeFromStaticTruth(), this.applyStateAttrs(resolvedStateAttrs, transition.states, hasAnimation, !1, void 0, this.buildRemovedStateAnimationAttrs(resolvedStateAttrs, previousResolvedStatePatch))) : (this.stopStateAnimates(), this.attributeMayContainTransientAttrs ? this._restoreAttributeFromStaticTruth({
9810
+ type: AttributeUpdateType.STATE
9811
+ }) : this.restoreAttributeFromStatePatchDelta(previousResolvedStatePatch, this.resolvedStatePatch, {
9812
+ type: AttributeUpdateType.STATE
9813
+ }), this.emitStateUpdateEvent());
9814
+ }
9604
9815
  }
9605
9816
  invalidateResolver() {
9606
- var _a, _b;
9817
+ var _a, _b, _c;
9607
9818
  if (!this.stateEngine || !(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || !this.compiledStateDefinitions) return;
9608
9819
  const stateResolveBaseAttrs = null !== (_b = this.baseAttributes) && void 0 !== _b ? _b : this.attribute;
9609
- this.stateEngine.setResolveContext(this, stateResolveBaseAttrs), this.resolverEpoch += 1, this.stateEngine.invalidateResolverCache();
9820
+ this.stateEngine.setResolveContext(this, stateResolveBaseAttrs), this.resolverEpoch = (null !== (_c = this.resolverEpoch) && void 0 !== _c ? _c : 0) + 1, this.stateEngine.invalidateResolverCache();
9610
9821
  const transition = this.stateEngine.applyStates(this.currentStates),
9611
9822
  resolvedStateAttrs = Object.assign({}, this.stateEngine.resolvedPatch);
9612
- this.effectiveStates = [...transition.effectiveStates], this.resolvedStatePatch = Object.assign({}, resolvedStateAttrs), this.sharedStateDirty = !1, this.syncSharedStateActiveRegistrations(), this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9613
- type: AttributeUpdateType.STATE
9614
- }), this._emitCustomEvent("afterStateUpdate", {
9823
+ this.effectiveStates = [...transition.effectiveStates], this.resolvedStatePatch = resolvedStateAttrs, this.sharedStateDirty = !1, this.syncSharedStateActiveRegistrations(), this.stopStateAnimates(), this._restoreAttributeFromStaticTruth({
9615
9824
  type: AttributeUpdateType.STATE
9616
- });
9825
+ }), this.emitStateUpdateEvent();
9617
9826
  }
9618
9827
  sameStateNames(left, right) {
9619
9828
  const normalizedLeft = null != left ? left : [],
@@ -9634,6 +9843,9 @@ class Graphic extends Node {
9634
9843
  addUpdateShapeAndBoundsTag() {
9635
9844
  this._updateTag |= UpdateTag.UPDATE_SHAPE_AND_BOUNDS, this.parent && this.parent.addChildUpdateBoundTag(), this.glyphHost && this.glyphHost.addUpdateBoundTag();
9636
9845
  }
9846
+ addBroadUpdateTag() {
9847
+ this.shadowRoot && this.shadowRoot.addUpdateGlobalPositionTag(), this._updateTag |= UpdateTag.UPDATE_SHAPE_AND_BOUNDS | UpdateTag.UPDATE_PAINT | UpdateTag.UPDATE_GLOBAL_LOCAL_MATRIX | UpdateTag.UPDATE_LAYOUT, this.parent && this.parent.addChildUpdateBoundTag(), this.glyphHost && this.glyphHost.addUpdateBoundTag();
9848
+ }
9637
9849
  updateShapeAndBoundsTagSetted() {
9638
9850
  return (this._updateTag & UpdateTag.UPDATE_SHAPE_AND_BOUNDS) === UpdateTag.UPDATE_SHAPE_AND_BOUNDS;
9639
9851
  }
@@ -9721,13 +9933,13 @@ class Graphic extends Node {
9721
9933
  }
9722
9934
  }
9723
9935
  setStage(stage, layer) {
9724
- var _a, _b, _c, _d, _e, _f, _g, _h;
9936
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
9725
9937
  const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService,
9726
9938
  previousStage = this.stage;
9727
9939
  if (this.stage !== stage || this.layer !== layer) {
9728
- if (this.stage = stage, this.layer = layer, this.syncSharedStateScopeBindingFromTree(!!(null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length)), this.setStageToShadowRoot(stage, layer), this.hasAnyTrackedAnimate()) {
9729
- const previousTimeline = null === (_e = null == previousStage ? void 0 : previousStage.getTimeline) || void 0 === _e ? void 0 : _e.call(previousStage),
9730
- nextTimeline = null === (_f = null == stage ? void 0 : stage.getTimeline) || void 0 === _f ? void 0 : _f.call(stage),
9940
+ if (this.stage = stage, this.layer = layer, ((null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0), this.setStageToShadowRoot(stage, layer), this.mayHaveTrackedAnimates() && this.hasAnyTrackedAnimate()) {
9941
+ const previousTimeline = null === (_f = null == previousStage ? void 0 : previousStage.getTimeline) || void 0 === _f ? void 0 : _f.call(previousStage),
9942
+ nextTimeline = null === (_g = null == stage ? void 0 : stage.getTimeline) || void 0 === _g ? void 0 : _g.call(stage),
9731
9943
  detachedStageAnimates = [];
9732
9944
  this.visitTrackedAnimates(a => {
9733
9945
  (!!previousTimeline && a.timeline === previousTimeline || a.timeline.isGlobal) && (nextTimeline ? a.timeline !== nextTimeline && (previousTimeline && a.timeline === previousTimeline && previousTimeline.removeAnimate(a, !1), a.setTimeline(nextTimeline), nextTimeline.addAnimate(a)) : previousTimeline && a.timeline === previousTimeline && (previousTimeline.removeAnimate(a, !1), detachedStageAnimates.push(a)));
@@ -9740,9 +9952,13 @@ class Graphic extends Node {
9740
9952
  type: AttributeUpdateType.ANIMATE_END
9741
9953
  }));
9742
9954
  }
9743
- return this._onSetStage && this._onSetStage(this, stage, layer), void (null === (_g = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _g || _g.call(graphicService, this, stage));
9955
+ return this._onSetStage && this._onSetStage(this, stage, layer), void (null === (_h = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _h || _h.call(graphicService, this, stage));
9744
9956
  }
9745
- this.syncSharedStateScopeBindingFromTree(!!(null === (_h = this.currentStates) || void 0 === _h ? void 0 : _h.length));
9957
+ ((null === (_j = this.currentStates) || void 0 === _j ? void 0 : _j.length) || this.boundSharedStateScope || (null === (_k = this.registeredActiveScopes) || void 0 === _k ? void 0 : _k.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0);
9958
+ }
9959
+ detachStageForRelease() {
9960
+ var _a, _b, _c;
9961
+ (null === (_a = this.registeredActiveScopes) || void 0 === _a ? void 0 : _a.size) && this.clearSharedStateActiveRegistrations(), (this.mayHaveTrackedAnimates() || this.shadowRoot) && this.stopAnimates(), this.boundSharedStateScope = void 0, this.boundSharedStateRevision = void 0, this.localFallbackCompiledDefinitions = void 0, this.compiledStateDefinitions = void 0, this.compiledStateDefinitionsCacheKey = void 0, this.stateEngine = void 0, this.stateEngineCompiledDefinitions = void 0, this.stateEngineStateProxyModeKey = void 0, this.sharedStateDirty = !1, this.stage = null, this.layer = null, this.shadowRoot && (null === (_c = (_b = this.shadowRoot).detachStageForRelease) || void 0 === _c || _c.call(_b));
9746
9962
  }
9747
9963
  setStageToShadowRoot(stage, layer) {
9748
9964
  this.shadowRoot && this.shadowRoot.setStage(stage, layer);
@@ -9809,6 +10025,7 @@ class Graphic extends Node {
9809
10025
  res && (res.state = "fail", cb && cb());
9810
10026
  }
9811
10027
  _stopAnimates() {
10028
+ if (!this.mayHaveTrackedAnimates()) return;
9812
10029
  const animates = [];
9813
10030
  this.visitTrackedAnimates(animate => {
9814
10031
  animates.push(animate);
@@ -9822,14 +10039,17 @@ class Graphic extends Node {
9822
10039
  });
9823
10040
  }
9824
10041
  release() {
9825
- var _a, _b, _c;
9826
- this.releaseStatus = "released", this.clearSharedStateActiveRegistrations(), this.stopAnimates();
9827
- const graphicService = null !== (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.graphicService) && void 0 !== _b ? _b : application.graphicService;
9828
- null === (_c = null == graphicService ? void 0 : graphicService.onRelease) || void 0 === _c || _c.call(graphicService, this), super.release();
10042
+ var _a, _b, _c, _d;
10043
+ this.releaseStatus = "released", (null === (_a = this.registeredActiveScopes) || void 0 === _a ? void 0 : _a.size) && this.clearSharedStateActiveRegistrations(), (this.mayHaveTrackedAnimates() || this.shadowRoot) && this.stopAnimates();
10044
+ const graphicService = null !== (_c = null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService;
10045
+ null === (_d = null == graphicService ? void 0 : graphicService.onRelease) || void 0 === _d || _d.call(graphicService, this), super.release();
10046
+ }
10047
+ hasCustomEvent(type) {
10048
+ return !!this._events && type in this._events;
9829
10049
  }
9830
10050
  _dispatchCustomEvent(type, context) {
9831
10051
  var _a, _b;
9832
- if (this._events && type in this._events) {
10052
+ if (this.hasCustomEvent(type)) {
9833
10053
  const changeEvent = new CustomEvent(type, context);
9834
10054
  changeEvent.bubbles = !1;
9835
10055
  const manager = null === (_b = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventSystem) || void 0 === _b ? void 0 : _b.manager;
@@ -9838,7 +10058,7 @@ class Graphic extends Node {
9838
10058
  return !0;
9839
10059
  }
9840
10060
  beforeStateUpdate(attrs, prevStates, nextStates, hasAnimation, isClear) {
9841
- return this._dispatchCustomEvent("beforeStateUpdate", {
10061
+ return !this.hasCustomEvent("beforeStateUpdate") || this._dispatchCustomEvent("beforeStateUpdate", {
9842
10062
  type: AttributeUpdateType.STATE,
9843
10063
  attrs: Object.assign({}, attrs),
9844
10064
  prevStates: prevStates.slice(),
@@ -9847,6 +10067,11 @@ class Graphic extends Node {
9847
10067
  isClear: !!isClear
9848
10068
  });
9849
10069
  }
10070
+ emitStateUpdateEvent() {
10071
+ this.hasCustomEvent("afterStateUpdate") && this._emitCustomEvent("afterStateUpdate", {
10072
+ type: AttributeUpdateType.STATE
10073
+ });
10074
+ }
9850
10075
  _emitCustomEvent(type, context) {
9851
10076
  this._dispatchCustomEvent(type, context);
9852
10077
  }
@@ -12853,13 +13078,15 @@ var GroupUpdateAABBBoundsMode;
12853
13078
  }(GroupUpdateAABBBoundsMode || (GroupUpdateAABBBoundsMode = {}));
12854
13079
  class Group extends Graphic {
12855
13080
  constructor(params) {
12856
- super(params), this.type = "group", this.parent = null, this.isContainer = !0, this.numberType = GROUP_NUMBER_TYPE, this._childUpdateTag = UpdateTag.UPDATE_BOUNDS;
13081
+ super(params), this.type = "group", this.parent = null, this.isContainer = !0, this._hasSharedStateDefinitions = !1, this.numberType = GROUP_NUMBER_TYPE, this._childUpdateTag = UpdateTag.UPDATE_BOUNDS;
12857
13082
  }
12858
13083
  get sharedStateDefinitions() {
12859
13084
  return this._sharedStateDefinitions;
12860
13085
  }
12861
13086
  set sharedStateDefinitions(value) {
12862
- this._sharedStateDefinitions !== value && (this._sharedStateDefinitions = value, this.ensureSharedStateScopeBound(), this.sharedStateScope && (setSharedStateScopeLocalDefinitions(this.sharedStateScope, value), markScopeActiveDescendantsDirty(this.sharedStateScope, this.stage)));
13087
+ if (this._sharedStateDefinitions === value) return;
13088
+ const previousScope = this.sharedStateScope;
13089
+ this._sharedStateDefinitions = value, this._hasSharedStateDefinitions = !!value && Object.keys(value).length > 0, this.ensureSharedStateScopeBound(), this.sharedStateScope && (setSharedStateScopeLocalDefinitions(this.sharedStateScope, value), markScopeActiveDescendantsDirty(this.sharedStateScope, this.stage)), previousScope !== this.sharedStateScope && this.notifyChildrenSharedStateTreeChanged();
12863
13090
  }
12864
13091
  setMode(mode) {
12865
13092
  "3d" === mode ? this.set3dMode() : this.set2dMode();
@@ -12984,9 +13211,10 @@ class Group extends Graphic {
12984
13211
  insertInto(newNode, idx) {
12985
13212
  return this._updateChildToStage(super.insertInto(newNode, idx));
12986
13213
  }
12987
- removeChild(child) {
13214
+ removeChild(child, highPerformance = !1) {
13215
+ var _a;
12988
13216
  const data = super.removeChild(child);
12989
- return this.getGraphicService().onRemove(child), child.setStage(null, null), this.addUpdateBoundTag(), data;
13217
+ return data ? highPerformance ? (null === (_a = child.detachStageForRelease) || void 0 === _a || _a.call(child), data) : (this.getGraphicService().onRemove(child), child.setStage(null, null), this.addUpdateBoundTag(), data) : data;
12990
13218
  }
12991
13219
  removeAllChild(deep = !1) {
12992
13220
  const children = this.children.slice();
@@ -12998,11 +13226,13 @@ class Group extends Graphic {
12998
13226
  }
12999
13227
  setStage(stage, layer) {
13000
13228
  var _a, _b, _c, _d, _e, _f;
13001
- const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService;
13002
- if (this.stage !== stage) return this.stage = stage, this.layer = layer, this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingFromTree(!!(null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length)), this.setStageToShadowRoot(stage, layer), this._onSetStage && this._onSetStage(this, stage, layer), null === (_e = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _e || _e.call(graphicService, this, stage), void this.forEachChildren(item => {
13229
+ const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService,
13230
+ needsSharedStateTreeSync = this._hasSharedStateDefinitions || this.sharedStateScope || (null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty;
13231
+ if (this.stage !== stage) return this.stage = stage, this.layer = layer, needsSharedStateTreeSync && (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0)), this.setStageToShadowRoot(stage, layer), this._onSetStage && this._onSetStage(this, stage, layer), null === (_f = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _f || _f.call(graphicService, this, stage), void this.forEachChildren(item => {
13003
13232
  item.setStage(stage, this.layer);
13004
13233
  });
13005
- this.layer !== layer && (this.layer = layer), this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingFromTree(!!(null === (_f = this.currentStates) || void 0 === _f ? void 0 : _f.length)), this.forEachChildren(item => {
13234
+ const layerChanged = this.layer !== layer;
13235
+ layerChanged && (this.layer = layer), needsSharedStateTreeSync ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0), this.notifyChildrenSharedStateTreeChanged()) : layerChanged && this.forEachChildren(item => {
13006
13236
  item.onParentSharedStateTreeChanged && item.onParentSharedStateTreeChanged(stage, this.layer);
13007
13237
  });
13008
13238
  }
@@ -13049,15 +13279,29 @@ class Group extends Graphic {
13049
13279
  g.release(all);
13050
13280
  }), super.release();
13051
13281
  }
13282
+ detachStageForRelease() {
13283
+ super.detachStageForRelease(), this.sharedStateScope = void 0, this.forEachChildren(item => {
13284
+ var _a;
13285
+ null === (_a = item.detachStageForRelease) || void 0 === _a || _a.call(item);
13286
+ });
13287
+ }
13052
13288
  ensureSharedStateScopeBound() {
13053
13289
  var _a, _b, _c;
13290
+ if (!this.hasSharedStateDefinitions()) return void (this.sharedStateScope = void 0);
13054
13291
  const parentScope = null !== (_b = null === (_a = this.parent) || void 0 === _a ? void 0 : _a.sharedStateScope) && void 0 !== _b ? _b : null === (_c = this.stage) || void 0 === _c ? void 0 : _c.rootSharedStateScope;
13055
13292
  this.sharedStateScope ? (this.sharedStateScope.ownerGroup = this, this.sharedStateScope.ownerStage = this.stage, setSharedStateScopeParent(this.sharedStateScope, parentScope), this.sharedStateScope.localStateDefinitions !== this._sharedStateDefinitions && setSharedStateScopeLocalDefinitions(this.sharedStateScope, this._sharedStateDefinitions)) : this.sharedStateScope = createGroupSharedStateScope(this, parentScope, this._sharedStateDefinitions);
13056
13293
  }
13294
+ hasSharedStateDefinitions() {
13295
+ return this._hasSharedStateDefinitions;
13296
+ }
13297
+ notifyChildrenSharedStateTreeChanged() {
13298
+ this.forEachChildren(item => {
13299
+ item.onParentSharedStateTreeChanged && item.onParentSharedStateTreeChanged(this.stage, this.layer);
13300
+ });
13301
+ }
13057
13302
  onParentSharedStateTreeChanged(stage, layer) {
13058
- this.stage === stage && this.layer === layer ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingFromTree(), this.forEachChildren(item => {
13059
- item.onParentSharedStateTreeChanged && item.onParentSharedStateTreeChanged(stage, this.layer);
13060
- })) : this.setStage(stage, layer);
13303
+ var _a;
13304
+ this.stage === stage && this.layer === layer ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length)), this.notifyChildrenSharedStateTreeChanged()) : this.setStage(stage, layer);
13061
13305
  }
13062
13306
  }
13063
13307
  Group.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
@@ -13405,7 +13649,10 @@ class DefaultGraphicService {
13405
13649
  beforeUpdateAABBBounds: new SyncHook(["graphic", "stage", "willUpdate", "aabbBounds"]),
13406
13650
  afterUpdateAABBBounds: new SyncHook(["graphic", "stage", "aabbBounds", "globalAABBBounds", "selfChange"]),
13407
13651
  clearAABBBounds: new SyncHook(["graphic", "stage", "aabbBounds"])
13408
- }, this.tempAABBBounds1 = new AABBBounds(), this.tempAABBBounds2 = new AABBBounds();
13652
+ }, this.tempAABBBounds1 = new AABBBounds(), this.tempAABBBounds2 = new AABBBounds(), this.tempAABBBoundsResult = {
13653
+ tb1: this.tempAABBBounds1,
13654
+ tb2: this.tempAABBBounds2
13655
+ };
13409
13656
  }
13410
13657
  onAttributeUpdate(graphic) {
13411
13658
  this.hooks.onAttributeUpdate.taps.length && this.hooks.onAttributeUpdate.call(graphic);
@@ -13505,10 +13752,7 @@ class DefaultGraphicService {
13505
13752
  updateTempAABBBounds(aabbBounds) {
13506
13753
  const tb1 = this.tempAABBBounds1,
13507
13754
  tb2 = this.tempAABBBounds2;
13508
- return tb1.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2), tb2.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2), {
13509
- tb1: tb1,
13510
- tb2: tb2
13511
- };
13755
+ return tb1.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2), tb2.setValue(aabbBounds.x1, aabbBounds.y1, aabbBounds.x2, aabbBounds.y2), this.tempAABBBoundsResult;
13512
13756
  }
13513
13757
  }
13514
13758
 
@@ -14850,7 +15094,7 @@ class IncrementalAutoRenderPlugin {
14850
15094
  const globalBounds = new AABBBounds();
14851
15095
  class DirtyBoundsPlugin {
14852
15096
  constructor() {
14853
- this.name = "DirtyBoundsPlugin", this.activeEvent = "onRegister", this._uid = Generator.GenAutoIncrementId(), this.key = this.name + this._uid, this.handlePaintOnlyUpdate = graphic => {
15097
+ this.name = "DirtyBoundsPlugin", this.activeEvent = "onRegister", this._uid = Generator.GenAutoIncrementId(), this.key = this.name + this._uid, this.dirtyBoundsHooksRegistered = !1, this.handlePaintOnlyUpdate = graphic => {
14854
15098
  var _a, _b, _c, _d;
14855
15099
  const stage = this.pluginService.stage;
14856
15100
  if (!stage || stage !== graphic.stage || !stage.renderCount) return;
@@ -14870,12 +15114,13 @@ class DirtyBoundsPlugin {
14870
15114
  owner._AABBBounds && "function" == typeof owner._AABBBounds.empty && !owner._AABBBounds.empty() || "function" != typeof owner.doUpdateAABBBounds || owner.doUpdateAABBBounds("imprecise" === (null === (_a = owner.attribute) || void 0 === _a ? void 0 : _a.boundsMode));
14871
15115
  return owner._globalAABBBounds && "function" == typeof owner._globalAABBBounds.empty && !owner._globalAABBBounds.empty() || "function" != typeof owner.tryUpdateGlobalAABBBounds || owner.tryUpdateGlobalAABBBounds(), null !== (_b = owner._globalAABBBounds) && void 0 !== _b ? _b : owner.globalAABBBounds;
14872
15116
  }
14873
- activate(context) {
14874
- this.pluginService = context, context.stage.hooks.afterRender.tap(this.key, stage => {
14875
- stage && stage === this.pluginService.stage && stage.dirtyBounds.clear();
14876
- });
14877
- const stage = this.pluginService.stage;
14878
- stage && (stage.graphicService.hooks.onAttributeUpdate.tap(this.key, this.handlePaintOnlyUpdate), stage.graphicService.hooks.beforeUpdateAABBBounds.tap(this.key, (graphic, stage, willUpdate, bounds) => {
15117
+ getRemoveDirtyBounds(graphic) {
15118
+ var _a;
15119
+ const cachedBounds = (null !== (_a = graphic.glyphHost) && void 0 !== _a ? _a : graphic)._globalAABBBounds;
15120
+ if (cachedBounds && "function" == typeof cachedBounds.empty && !cachedBounds.empty()) return cachedBounds;
15121
+ }
15122
+ registerDirtyBoundsHooks(stage) {
15123
+ this.dirtyBoundsHooksRegistered || (stage.graphicService.hooks.onAttributeUpdate.tap(this.key, this.handlePaintOnlyUpdate), stage.graphicService.hooks.beforeUpdateAABBBounds.tap(this.key, (graphic, stage, willUpdate, bounds) => {
14879
15124
  graphic.glyphHost && (graphic = graphic.glyphHost), stage && stage === this.pluginService.stage && stage.renderCount && (graphic.isContainer && !graphic.shouldSelfChangeUpdateAABBBounds() || willUpdate && (globalBounds.setValue(bounds.x1, bounds.y1, bounds.x2, bounds.y2), stage.dirty(globalBounds, graphic.parent && graphic.parent.globalTransMatrix)));
14880
15125
  }), stage.graphicService.hooks.afterUpdateAABBBounds.tap(this.key, (graphic, stage, bounds, params, selfChange) => {
14881
15126
  stage && stage === this.pluginService.stage && stage.renderCount && (graphic.isContainer && !selfChange || stage.dirty(params.globalAABBBounds));
@@ -14883,12 +15128,21 @@ class DirtyBoundsPlugin {
14883
15128
  stage && stage === this.pluginService.stage && stage.renderCount && stage && stage.dirty(bounds);
14884
15129
  }), stage.graphicService.hooks.onRemove.tap(this.key, graphic => {
14885
15130
  const stage = graphic.stage;
14886
- stage && stage === this.pluginService.stage && stage.renderCount && stage && stage.dirty(graphic.globalAABBBounds);
14887
- }));
15131
+ if (!stage || stage !== this.pluginService.stage || !stage.renderCount) return;
15132
+ const bounds = this.getRemoveDirtyBounds(graphic);
15133
+ bounds && !bounds.empty() && stage.dirty(bounds);
15134
+ }), this.dirtyBoundsHooksRegistered = !0);
15135
+ }
15136
+ activate(context) {
15137
+ this.pluginService = context, context.stage.hooks.afterRender.tap(this.key, stage => {
15138
+ stage && stage === this.pluginService.stage && (stage.dirtyBounds.clear(), this.registerDirtyBoundsHooks(stage));
15139
+ });
15140
+ const stage = this.pluginService.stage;
15141
+ stage && stage.renderCount && this.registerDirtyBoundsHooks(stage);
14888
15142
  }
14889
15143
  deactivate(context) {
14890
15144
  const stage = this.pluginService.stage;
14891
- stage && (stage.graphicService.hooks.onAttributeUpdate.taps = stage.graphicService.hooks.onAttributeUpdate.taps.filter(item => item.name !== this.key), stage.graphicService.hooks.beforeUpdateAABBBounds.taps = stage.graphicService.hooks.beforeUpdateAABBBounds.taps.filter(item => item.name !== this.key), stage.graphicService.hooks.afterUpdateAABBBounds.taps = stage.graphicService.hooks.afterUpdateAABBBounds.taps.filter(item => item.name !== this.key), stage.graphicService.hooks.clearAABBBounds.taps = stage.graphicService.hooks.clearAABBBounds.taps.filter(item => item.name !== this.key), stage.hooks.afterRender.taps = stage.hooks.afterRender.taps.filter(item => item.name !== this.key), stage.graphicService.hooks.onRemove.taps = stage.graphicService.hooks.onRemove.taps.filter(item => item.name !== this.key));
15145
+ stage && (stage.graphicService.hooks.onAttributeUpdate.taps = stage.graphicService.hooks.onAttributeUpdate.taps.filter(item => item.name !== this.key), this.dirtyBoundsHooksRegistered = !1, stage.graphicService.hooks.beforeUpdateAABBBounds.taps = stage.graphicService.hooks.beforeUpdateAABBBounds.taps.filter(item => item.name !== this.key), stage.graphicService.hooks.afterUpdateAABBBounds.taps = stage.graphicService.hooks.afterUpdateAABBBounds.taps.filter(item => item.name !== this.key), stage.graphicService.hooks.clearAABBBounds.taps = stage.graphicService.hooks.clearAABBBounds.taps.filter(item => item.name !== this.key), stage.hooks.afterRender.taps = stage.hooks.afterRender.taps.filter(item => item.name !== this.key), stage.graphicService.hooks.onRemove.taps = stage.graphicService.hooks.onRemove.taps.filter(item => item.name !== this.key));
14892
15146
  }
14893
15147
  }
14894
15148
 
@@ -15244,7 +15498,7 @@ class Stage extends Group {
15244
15498
  ticker.bindStage(this), this._ticker && this._ticker.removeListener("tick", this.afterTickCb), ticker.addTimeline(this.timeline), this._ticker = ticker, this._ticker.on("tick", this.afterTickCb);
15245
15499
  }
15246
15500
  constructor(params = {}, deps = {}) {
15247
- var _a, _b, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
15501
+ var _a, _b, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
15248
15502
  super({}), this.tickedBeforeRender = !0, this._onVisibleChange = visible => {
15249
15503
  if (!(this._skipRender < 0)) if (visible) {
15250
15504
  if (this.dirtyBounds) {
@@ -15254,7 +15508,8 @@ class Stage extends Group {
15254
15508
  this._skipRender > 1 && this.renderNextFrame(), this._skipRender = 0;
15255
15509
  } else this._skipRender = 1;
15256
15510
  }, this.beforeRender = stage => {
15257
- flushStageSharedStateRefresh(this), this._beforeRenderList.forEach(cb => cb(stage));
15511
+ const pendingSharedRefresh = this._pendingSharedStateRefreshGraphics;
15512
+ (null == pendingSharedRefresh ? void 0 : pendingSharedRefresh.size) && flushStageSharedStateRefresh(this), this._beforeRenderList.forEach(cb => cb(stage));
15258
15513
  }, this.afterClearScreen = drawParams => {
15259
15514
  this._afterClearScreen && this._afterClearScreen(drawParams);
15260
15515
  }, this.afterClearRect = drawParams => {
@@ -15279,14 +15534,17 @@ class Stage extends Group {
15279
15534
  canvas: params.canvas
15280
15535
  }), this.state = "normal", this.renderCount = 0, this.tryInitEventSystem(), this._background = null !== (_w = params.background) && void 0 !== _w ? _w : DefaultConfig.BACKGROUND, this.stage = this, this.appendChild(this.layerService.createLayer(this, {
15281
15536
  main: !0
15282
- })), this.nextFrameRenderLayerSet = new Set(), this.willNextFrameRender = !1, ensureStageStatePerfMonitor(this), this._stateBatchScheduler = new StateBatchScheduler(this, ensureStageStatePerfMonitor(this)), this.rootSharedStateScope = createRootSharedStateScope(this, null === (_x = this.theme) || void 0 === _x ? void 0 : _x.stateDefinitions), this.theme.onStateDefinitionsChange = () => {
15537
+ })), this.nextFrameRenderLayerSet = new Set(), this.willNextFrameRender = !1, this.theme.onStateDefinitionsChange = () => {
15283
15538
  var _a;
15284
- this.rootSharedStateScope && (setRootSharedStateScopeThemeDefinitions(this.rootSharedStateScope, null === (_a = this.theme) || void 0 === _a ? void 0 : _a.stateDefinitions), markScopeActiveDescendantsDirty(this.rootSharedStateScope, this));
15539
+ const definitions = null === (_a = this.theme) || void 0 === _a ? void 0 : _a.stateDefinitions;
15540
+ if (!definitions || !Object.keys(definitions).length) return void (this.rootSharedStateScope && (setRootSharedStateScopeThemeDefinitions(this.rootSharedStateScope, definitions), markScopeActiveDescendantsDirty(this.rootSharedStateScope, this)));
15541
+ const rootScope = this.ensureRootSharedStateScope(definitions);
15542
+ setRootSharedStateScopeThemeDefinitions(rootScope, definitions), markScopeActiveDescendantsDirty(rootScope, this);
15285
15543
  }, this.renderStyle = params.renderStyle, params.autoRender && this.enableAutoRender(), params.autoRefresh && this.enableAutoRefresh(), !1 === params.disableDirtyBounds && this.enableDirtyBounds(), params.enableHtmlAttribute && this.enableHtmlAttribute(params.enableHtmlAttribute), params.ReactDOM && this.enableReactAttribute(params.ReactDOM), params.enableLayout && this.enableLayout(), this.hooks.beforeRender.tap("constructor", this.beforeRender), this.hooks.afterRender.tap("constructor", this.afterRender), params.beforeRender && this._beforeRenderList.push(params.beforeRender), params.afterRender && this._afterRenderList.push(params.afterRender), this.hooks.afterClearScreen.tap("constructor", this.afterClearScreen), this.hooks.afterClearRect.tap("constructor", this.afterClearRect), this._afterClearScreen = params.afterClearScreen, this._afterClearRect = params.afterClearRect, this.supportInteractiveLayer = !1 !== params.interactiveLayer, params.optimize || (params.optimize = {
15286
15544
  tickRenderMode: "effect"
15287
15545
  }), this.optmize(params.optimize), params.background && isString$1(this._background) && this._background.includes("/") && this.setAttributes({
15288
15546
  background: this._background
15289
- }), this.initAnimate(params), this.rafId = null !== (_y = params.rafId) && void 0 !== _y ? _y : Math.floor(6 * Math.random());
15547
+ }), this.initAnimate(params), this.rafId = null !== (_x = params.rafId) && void 0 !== _x ? _x : Math.floor(6 * Math.random());
15290
15548
  }
15291
15549
  initAnimate(params) {
15292
15550
  var _a;
@@ -15546,8 +15804,14 @@ class Stage extends Group {
15546
15804
  this._doRenderInThisFrame(), this.willNextFrameRender = !1;
15547
15805
  }));
15548
15806
  }
15807
+ ensureRootSharedStateScope(themeStateDefinitions) {
15808
+ return this.rootSharedStateScope ? (this.rootSharedStateScope.ownerStage = this, this.rootSharedStateScope) : (this.rootSharedStateScope = createRootSharedStateScope(this, themeStateDefinitions), this.rootSharedStateScope);
15809
+ }
15810
+ getStateBatchScheduler() {
15811
+ return this._stateBatchScheduler || (this._stateBatchScheduler = new StateBatchScheduler(this, ensureStageStatePerfMonitor(this))), this._stateBatchScheduler;
15812
+ }
15549
15813
  scheduleStateBatch(graphics, targetStates) {
15550
- this._stateBatchScheduler.schedule(graphics, targetStates);
15814
+ this.getStateBatchScheduler().schedule(graphics, targetStates);
15551
15815
  }
15552
15816
  getStatePerfSnapshot() {
15553
15817
  return ensureStageStatePerfMonitor(this).getSnapshot();
@@ -18048,7 +18312,11 @@ const result = {
18048
18312
  };
18049
18313
  class BaseRender {
18050
18314
  init(contributions) {
18051
- contributions && (this._renderContribitions = contributions.getContributions()), this._renderContribitions || (this._renderContribitions = []), this.builtinContributions || (this.builtinContributions = []), this.builtinContributions.push(defaultBaseClipRenderBeforeContribution), this.builtinContributions.push(defaultBaseClipRenderAfterContribution), this.builtinContributions.forEach(item => this._renderContribitions.push(item)), this._renderContribitions.length && (this._renderContribitions.sort((a, b) => b.order - a.order), this._beforeRenderContribitions = this._renderContribitions.filter(c => c.time === BaseRenderContributionTime.beforeFillStroke), this._afterRenderContribitions = this._renderContribitions.filter(c => c.time === BaseRenderContributionTime.afterFillStroke));
18315
+ this.builtinContributions || (this.builtinContributions = []), this._renderContribitions = contributions ? contributions.getContributions().slice() : [];
18316
+ const addContribution = item => {
18317
+ this._renderContribitions.includes(item) || this._renderContribitions.push(item);
18318
+ };
18319
+ this.builtinContributions.forEach(addContribution), addContribution(defaultBaseClipRenderBeforeContribution), addContribution(defaultBaseClipRenderAfterContribution), this._renderContribitions.length ? (this._renderContribitions.sort((a, b) => b.order - a.order), this._beforeRenderContribitions = this._renderContribitions.filter(c => c.time === BaseRenderContributionTime.beforeFillStroke), this._afterRenderContribitions = this._renderContribitions.filter(c => c.time === BaseRenderContributionTime.afterFillStroke)) : (this._beforeRenderContribitions = [], this._afterRenderContribitions = []);
18052
18320
  }
18053
18321
  reInit() {
18054
18322
  this.init(this.graphicRenderContributions);
@@ -23097,8 +23365,8 @@ class FlexLayoutPlugin {
23097
23365
  graphic.glyphHost && (graphic = graphic.glyphHost), stage && stage === this.pluginService.stage && graphic.isContainer && !this.skipBoundsTrigger && _tempBounds.copy(bounds);
23098
23366
  }), stage.graphicService.hooks.afterUpdateAABBBounds.tap(this.key, (graphic, stage, bounds, params, selfChange) => {
23099
23367
  stage && stage === this.pluginService.stage && graphic.isContainer && !this.skipBoundsTrigger && (_tempBounds.equals(bounds) || this.tryLayout(graphic, !1));
23100
- }), stage.graphicService.hooks.onSetStage.tap(this.key, graphic => {
23101
- graphic.glyphHost && (graphic = graphic.glyphHost), this.tryLayout(graphic, !1);
23368
+ }), stage.graphicService.hooks.onSetStage.tap(this.key, (graphic, nextStage) => {
23369
+ nextStage && nextStage === this.pluginService.stage && (graphic.glyphHost && (graphic = graphic.glyphHost), this.tryLayout(graphic, !1));
23102
23370
  }));
23103
23371
  }
23104
23372
  deactivate(context) {
@@ -23661,7 +23929,6 @@ var VRenderCore = /*#__PURE__*/Object.freeze({
23661
23929
  segments: segments,
23662
23930
  shouldClipImageByLayout: shouldClipImageByLayout,
23663
23931
  shouldUseMat4: shouldUseMat4,
23664
- shouldUseSimpleAttributeFastPath: shouldUseSimpleAttributeFastPath,
23665
23932
  snapLength: snapLength,
23666
23933
  splitArc: splitArc,
23667
23934
  splitArea: splitArea,
@@ -32461,25 +32728,56 @@ function commonInterpolateUpdate(key, from, to, ratio, step, target) {
32461
32728
  }
32462
32729
 
32463
32730
  const animateUpdateContext = {
32464
- type: AttributeUpdateType.ANIMATE_UPDATE
32465
- };
32731
+ type: AttributeUpdateType.ANIMATE_UPDATE
32732
+ },
32733
+ animateBindContext = {
32734
+ type: AttributeUpdateType.ANIMATE_BIND
32735
+ },
32736
+ animateStartContext = {
32737
+ type: AttributeUpdateType.ANIMATE_START
32738
+ };
32739
+ function getAnimationContext(type) {
32740
+ switch (type) {
32741
+ case AttributeUpdateType.ANIMATE_UPDATE:
32742
+ return animateUpdateContext;
32743
+ case AttributeUpdateType.ANIMATE_BIND:
32744
+ return animateBindContext;
32745
+ case AttributeUpdateType.ANIMATE_START:
32746
+ return animateStartContext;
32747
+ default:
32748
+ return {
32749
+ type: type
32750
+ };
32751
+ }
32752
+ }
32753
+ function prepareAnimationFrameAttribute(target) {
32754
+ const transientTarget = target;
32755
+ return transientTarget.attribute || (transientTarget.attribute = {}), transientTarget.attribute === transientTarget.baseAttributes && "function" == typeof transientTarget.detachAttributeFromBaseAttributes && transientTarget.detachAttributeFromBaseAttributes(), transientTarget.attributeMayContainTransientAttrs = !0, transientTarget.attribute;
32756
+ }
32757
+ function commitAnimationFrameAttribute(target) {
32758
+ var _a, _b;
32759
+ null === (_b = (_a = target).onAttributeUpdate) || void 0 === _b || _b.call(_a, animateUpdateContext);
32760
+ }
32466
32761
  function applyAnimationFrameAttributes(target, attributes) {
32467
- var _a;
32468
32762
  if (!attributes) return;
32469
- const transientTarget = target;
32470
- transientTarget.attribute || (transientTarget.attribute = {});
32471
- const targetAttribute = transientTarget.attribute;
32763
+ const targetAttribute = prepareAnimationFrameAttribute(target);
32472
32764
  for (const key in attributes) Object.prototype.hasOwnProperty.call(attributes, key) && (targetAttribute[key] = attributes[key]);
32473
- null === (_a = transientTarget.onAttributeUpdate) || void 0 === _a || _a.call(transientTarget, animateUpdateContext);
32765
+ commitAnimationFrameAttribute(target);
32766
+ }
32767
+ function applyAnimationFrameNumberAttributes(target, keys, from, to, ratio) {
32768
+ const targetAttribute = prepareAnimationFrameAttribute(target);
32769
+ for (let i = 0; i < keys.length; i++) {
32770
+ const key = keys[i];
32771
+ targetAttribute[key] = from[key] + (to[key] - from[key]) * ratio;
32772
+ }
32773
+ commitAnimationFrameAttribute(target);
32474
32774
  }
32475
32775
  function applyAnimationTransientAttributes(target, attributes, type = AttributeUpdateType.ANIMATE_UPDATE) {
32476
32776
  var _a;
32477
32777
  if (!attributes) return;
32478
- const context = {
32479
- type: type
32480
- },
32778
+ const context = getAnimationContext(type),
32481
32779
  transientTarget = target;
32482
- "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);
32780
+ "function" != typeof transientTarget.applyAnimationTransientAttributes ? "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) : transientTarget.applyAnimationTransientAttributes(attributes, !1, context);
32483
32781
  }
32484
32782
  function applyAppearStartAttributes(target, attributes) {
32485
32783
  applyAnimationTransientAttributes(target, attributes, AttributeUpdateType.ANIMATE_BIND);
@@ -32876,7 +33174,7 @@ class Animate {
32876
33174
  bind(target) {
32877
33175
  this.target = target;
32878
33176
  const trackerTarget = this.target;
32879
- 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(() => {
33177
+ return "function" == typeof trackerTarget.detachAttributeFromBaseAttributes && trackerTarget.detachAttributeFromBaseAttributes(), "function" == typeof trackerTarget.trackAnimate ? trackerTarget.trackAnimate(this) : (this.target.animates || (this.target.animates = new Map()), this.target.animates.set(this.id, this)), this.onRemove(() => {
32880
33178
  this.stop(), this.__skipRestoreStaticAttributeOnRemove || "function" != typeof trackerTarget.restoreStaticAttribute || trackerTarget.restoreStaticAttribute(), "function" == typeof trackerTarget.untrackAnimate ? trackerTarget.untrackAnimate(this.id) : this.target.animates.delete(this.id);
32881
33179
  }), this.target.onAnimateBind && !this.slience && this.target.onAnimateBind(this), this.target.animationAttribute || (this.target.animationAttribute = {}), this;
32882
33180
  }
@@ -33372,6 +33670,33 @@ class AnimateExecutor {
33372
33670
  cb();
33373
33671
  });
33374
33672
  }
33673
+ getActiveAttrKeys() {
33674
+ const keys = [];
33675
+ for (let i = 0; i < this._animates.length; i++) {
33676
+ const animate = this._animates[i];
33677
+ if (animate.status === AnimateStatus.END) continue;
33678
+ const endProps = animate.getEndProps();
33679
+ if (endProps) for (const key in endProps) Object.prototype.hasOwnProperty.call(endProps, key) && keys.indexOf(key) < 0 && keys.push(key);
33680
+ }
33681
+ return keys;
33682
+ }
33683
+ hasActiveAttrs() {
33684
+ for (let i = 0; i < this._animates.length; i++) {
33685
+ const animate = this._animates[i];
33686
+ if (animate.status === AnimateStatus.END) continue;
33687
+ const endProps = animate.getEndProps();
33688
+ if (endProps) for (const key in endProps) if (Object.prototype.hasOwnProperty.call(endProps, key)) return !0;
33689
+ }
33690
+ return !1;
33691
+ }
33692
+ preventAttrs(keys) {
33693
+ if (!(null == keys ? void 0 : keys.length)) return this.hasActiveAttrs();
33694
+ for (let i = 0; i < this._animates.length; i++) {
33695
+ const animate = this._animates[i];
33696
+ animate.status !== AnimateStatus.END && animate.preventAttrs(keys);
33697
+ }
33698
+ return this.hasActiveAttrs();
33699
+ }
33375
33700
  _trackAnimation(animate) {
33376
33701
  this._animates.push(animate), this._activeCount++, 1 !== this._activeCount || this._started || (this._started = !0, this.onStart()), animate.onEnd(() => {
33377
33702
  this._activeCount--;
@@ -33677,8 +34002,22 @@ class AnimationStateManager {
33677
34002
  hasTrackedAnimate() {
33678
34003
  return this.trackedAnimates.size > 0;
33679
34004
  }
34005
+ hasStateInfo(list, target) {
34006
+ for (let i = 0; i < list.length; i++) if (list[i] === target) return !0;
34007
+ return !1;
34008
+ }
34009
+ takeOverUpdateAttrs(nextState, currentStates, shouldStopState) {
34010
+ if (nextState.state !== AnimationStates.UPDATE || !currentStates.length) return;
34011
+ const nextKeys = nextState.executor.getActiveAttrKeys();
34012
+ if (nextKeys.length) for (let i = 0; i < currentStates.length; i++) {
34013
+ const currentState = currentStates[i];
34014
+ currentState.state !== AnimationStates.UPDATE || currentState === nextState || this.hasStateInfo(shouldStopState, currentState) || currentState.executor.preventAttrs(nextKeys) || (currentState.executor.stop(null, !1), shouldStopState.push(currentState));
34015
+ }
34016
+ }
33680
34017
  applyState(nextState, animationConfig, callback) {
34018
+ var _a;
33681
34019
  const registry = AnimationTransitionRegistry.getInstance(),
34020
+ currentStateList = null !== (_a = this.stateList) && void 0 !== _a ? _a : [],
33682
34021
  shouldStopState = [],
33683
34022
  shouldApplyState = [];
33684
34023
  if (this.stateList && this.stateList.length ? nextState.forEach((state, index) => {
@@ -33686,14 +34025,14 @@ class AnimationStateManager {
33686
34025
  allowTransition: !0,
33687
34026
  stopOriginalTransition: !0
33688
34027
  };
33689
- this.stateList.forEach(currState => {
34028
+ currentStateList.forEach(currState => {
33690
34029
  const _result = registry.isTransitionAllowed(currState.state, state, this.graphic);
33691
34030
  result.allowTransition = result.allowTransition && _result.allowTransition;
33692
34031
  }), result.allowTransition && (shouldApplyState.push({
33693
34032
  state: state,
33694
34033
  animationConfig: isArray$1(animationConfig[index]) ? animationConfig[index].map(item => item.animation) : animationConfig[index].animation,
33695
34034
  executor: new AnimateExecutor(this.graphic)
33696
- }), this.stateList.forEach(currState => {
34035
+ }), currentStateList.forEach(currState => {
33697
34036
  registry.isTransitionAllowed(currState.state, state, this.graphic).stopOriginalTransition && shouldStopState.push(currState);
33698
34037
  }));
33699
34038
  }) : nextState.forEach((state, index) => {
@@ -33705,12 +34044,18 @@ class AnimationStateManager {
33705
34044
  }), shouldStopState.forEach(state => {
33706
34045
  state.executor.stop(null, !1);
33707
34046
  }), shouldApplyState.length) {
33708
- shouldApplyState[0].executor.execute(shouldApplyState[0].animationConfig);
34047
+ shouldApplyState[0].executor.execute(shouldApplyState[0].animationConfig), this.takeOverUpdateAttrs(shouldApplyState[0], currentStateList, shouldStopState);
33709
34048
  for (let i = 0; i < shouldApplyState.length; i++) {
33710
34049
  const nextState = shouldApplyState[i + 1],
33711
34050
  currentState = shouldApplyState[i];
33712
34051
  currentState.executor.onEnd(() => {
33713
- nextState && nextState.executor.execute(nextState.animationConfig), this.stateList = this.stateList.filter(state => state !== currentState), i === shouldApplyState.length - 1 && callback && callback(!1);
34052
+ var _a;
34053
+ if (nextState) {
34054
+ nextState.executor.execute(nextState.animationConfig);
34055
+ const stoppedStates = [];
34056
+ this.takeOverUpdateAttrs(nextState, null !== (_a = this.stateList) && void 0 !== _a ? _a : [], stoppedStates), stoppedStates.length && this.stateList && (this.stateList = this.stateList.filter(state => !this.hasStateInfo(stoppedStates, state)));
34057
+ }
34058
+ this.stateList = this.stateList.filter(state => state !== currentState), i === shouldApplyState.length - 1 && callback && callback(!1);
33714
34059
  });
33715
34060
  }
33716
34061
  } else callback && callback(!0);
@@ -35208,10 +35553,7 @@ class GrowHeightIn extends ACustomAnimate {
35208
35553
  super.onEnd(cb);
35209
35554
  }
35210
35555
  onUpdate(end, ratio, out) {
35211
- const attrs = {};
35212
- this.propKeys.forEach(key => {
35213
- attrs[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
35214
- }), applyAnimationFrameAttributes(this.target, attrs), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
35556
+ applyAnimationFrameNumberAttributes(this.target, this.propKeys, this.from, this.to, ratio), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
35215
35557
  }
35216
35558
  }
35217
35559
  function growHeightOutIndividual(graphic, options, animationParameters) {
@@ -35269,10 +35611,7 @@ class GrowHeightOut extends ACustomAnimate {
35269
35611
  super.onEnd(cb);
35270
35612
  }
35271
35613
  onUpdate(end, ratio, out) {
35272
- const attrs = {};
35273
- this.propKeys.forEach(key => {
35274
- attrs[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
35275
- }), applyAnimationFrameAttributes(this.target, attrs), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
35614
+ applyAnimationFrameNumberAttributes(this.target, this.propKeys, this.from, this.to, ratio), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
35276
35615
  }
35277
35616
  }
35278
35617
 
@@ -35682,10 +36021,7 @@ class GrowWidthIn extends ACustomAnimate {
35682
36021
  super.onEnd(cb);
35683
36022
  }
35684
36023
  onUpdate(end, ratio, out) {
35685
- const attrs = {};
35686
- this.propKeys.forEach(key => {
35687
- attrs[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
35688
- }), applyAnimationFrameAttributes(this.target, attrs), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
36024
+ applyAnimationFrameNumberAttributes(this.target, this.propKeys, this.from, this.to, ratio), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
35689
36025
  }
35690
36026
  }
35691
36027
  class GrowWidthOut extends ACustomAnimate {
@@ -35705,10 +36041,7 @@ class GrowWidthOut extends ACustomAnimate {
35705
36041
  super.onEnd(cb);
35706
36042
  }
35707
36043
  onUpdate(end, ratio, out) {
35708
- const attrs = {};
35709
- this.propKeys.forEach(key => {
35710
- attrs[key] = this.from[key] + (this.to[key] - this.from[key]) * ratio;
35711
- }), applyAnimationFrameAttributes(this.target, attrs), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
36044
+ applyAnimationFrameNumberAttributes(this.target, this.propKeys, this.from, this.to, ratio), this.target.addUpdatePositionTag(), this.target.addUpdateShapeAndBoundsTag();
35712
36045
  }
35713
36046
  }
35714
36047
 
@@ -41080,6 +41413,33 @@ function commitUpdateAnimationTarget(graphic, targetAttrs, startAttrs) {
41080
41413
  });
41081
41414
  }
41082
41415
 
41416
+ function collectTrackedAnimates(graphic, animates = [], visited = new Set()) {
41417
+ var _a, _b, _c, _d, _e;
41418
+ const trackedAnimates = null !== (_c = null === (_b = (_a = graphic).getTrackedAnimates) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : graphic.animates;
41419
+ return null == trackedAnimates || trackedAnimates.forEach(animate => {
41420
+ animate && !visited.has(animate) && (visited.add(animate), animates.push(animate));
41421
+ }), null === (_e = (_d = graphic).forEachChildren) || void 0 === _e || _e.call(_d, child => {
41422
+ collectTrackedAnimates(child, animates, visited);
41423
+ }), animates;
41424
+ }
41425
+ function appendExitReleaseCallback(state, callback) {
41426
+ callback && (null == state || state.onComplete.push(callback));
41427
+ }
41428
+ function runExitReleaseCallbacks(callbacks) {
41429
+ callbacks.forEach(callback => {
41430
+ callback();
41431
+ });
41432
+ }
41433
+ function bindExitReleaseAnimates(exitAnimates, getState, finalize) {
41434
+ const finish = animate => {
41435
+ const state = getState();
41436
+ state && !state.finalized && state.pendingAnimates.has(animate) && (state.pendingAnimates.delete(animate), state.pendingAnimates.size || finalize());
41437
+ };
41438
+ exitAnimates.forEach(animate => {
41439
+ animate.onEnd(() => finish(animate)), animate.onRemove(() => finish(animate));
41440
+ });
41441
+ }
41442
+
41083
41443
  const DefaultAxisAnimation = {
41084
41444
  type: "default",
41085
41445
  duration: 300,
@@ -41111,12 +41471,65 @@ class AxisBase extends AnimateComponent {
41111
41471
  });
41112
41472
  return this.add(offscreenGroup), this._renderInner(offscreenGroup), this.removeChild(offscreenGroup), this.attribute = currentAttribute, offscreenGroup.AABBBounds;
41113
41473
  }
41474
+ _finalizeExitRelease() {
41475
+ var _a, _b;
41476
+ const state = this._exitReleaseState;
41477
+ if (null == state ? void 0 : state.finalized) return;
41478
+ state && (state.finalized = !0);
41479
+ const parent = this.parent,
41480
+ removeFromParent = !!(null == state ? void 0 : state.removeFromParent),
41481
+ callbacks = null !== (_a = null == state ? void 0 : state.onComplete) && void 0 !== _a ? _a : [];
41482
+ this._exitReleaseState = void 0, this._prevInnerView = null, this._innerView = null, this.axisLabelsContainer = null, this.axisContainer = null, this.removeAllChild(!0), super.release(!0), removeFromParent && (null === (_b = null != parent ? parent : this.parent) || void 0 === _b || _b.removeChild(this)), runExitReleaseCallbacks(callbacks);
41483
+ }
41484
+ _runExitAnimationBeforeRelease(options = {}) {
41485
+ var _a, _b, _c;
41486
+ if (this._exitReleaseState && !this._exitReleaseState.finalized) return this._exitReleaseState.removeFromParent = this._exitReleaseState.removeFromParent || !!options.removeFromParent, appendExitReleaseCallback(this._exitReleaseState, options.onComplete), !0;
41487
+ if (!this.stage || !1 === this.attribute.animation || !1 === this.attribute.animationExit || !this._innerView) return !1;
41488
+ if (this._prepare(), !(null === (_a = this._animationConfig) || void 0 === _a ? void 0 : _a.exit)) return !1;
41489
+ const exitTargets = new Set();
41490
+ if (traverseGroup(this._innerView, el => {
41491
+ "group" !== el.type && exitTargets.add(el);
41492
+ }), !exitTargets.size) return !1;
41493
+ const existingAnimates = collectTrackedAnimates(this),
41494
+ {
41495
+ delay = 0,
41496
+ duration = DefaultAxisAnimation.duration,
41497
+ easing = DefaultAxisAnimation.easing
41498
+ } = this._animationConfig.exit;
41499
+ exitTargets.forEach(target => {
41500
+ var _a, _b, _c;
41501
+ const startAttrs = {
41502
+ opacity: null !== (_a = target.attribute.opacity) && void 0 !== _a ? _a : 1,
41503
+ fillOpacity: null !== (_b = target.attribute.fillOpacity) && void 0 !== _b ? _b : 1,
41504
+ strokeOpacity: null !== (_c = target.attribute.strokeOpacity) && void 0 !== _c ? _c : 1
41505
+ },
41506
+ endAttrs = {
41507
+ opacity: 0,
41508
+ fillOpacity: 0,
41509
+ strokeOpacity: 0
41510
+ };
41511
+ commitUpdateAnimationTarget(target, endAttrs, startAttrs), target.animate().wait(delay).to(endAttrs, duration, easing);
41512
+ });
41513
+ const exitAnimates = collectTrackedAnimates(this).filter(animate => !existingAnimates.includes(animate));
41514
+ if (!exitAnimates.length) return !1;
41515
+ this.setAttribute("childrenPickable", !1), null === (_c = (_b = this._innerView).removeAllEventListeners) || void 0 === _c || _c.call(_b), this.releaseStatus = "willRelease";
41516
+ const pendingAnimates = new Set(exitAnimates);
41517
+ return this._exitReleaseState = {
41518
+ pendingAnimates: pendingAnimates,
41519
+ finalized: !1,
41520
+ removeFromParent: !!options.removeFromParent,
41521
+ onComplete: options.onComplete ? [options.onComplete] : []
41522
+ }, bindExitReleaseAnimates(exitAnimates, () => this._exitReleaseState, () => this._finalizeExitRelease()), !0;
41523
+ }
41524
+ releaseWithExitAnimation(options = {}) {
41525
+ return "released" !== this.releaseStatus && this._runExitAnimationBeforeRelease(options);
41526
+ }
41114
41527
  render() {
41115
- this._prepare(), this._prevInnerView = this._innerView && getElMap(this._innerView), this.removeAllChild(!0), this._innerView = graphicCreator.group({
41528
+ this._exitReleaseState || (this._prepare(), this._prevInnerView = this._innerView && getElMap(this._innerView), this.removeAllChild(!0), this._innerView = graphicCreator.group({
41116
41529
  x: 0,
41117
41530
  y: 0,
41118
41531
  pickable: !1
41119
- }), this.add(this._innerView), this._renderInner(this._innerView), this._bindEvent(), this.runAnimation();
41532
+ }), this.add(this._innerView), this._renderInner(this._innerView), this._bindEvent(), this.runAnimation());
41120
41533
  }
41121
41534
  _prepare() {
41122
41535
  this._prepareAnimate(DefaultAxisAnimation);
@@ -41448,8 +41861,8 @@ class AxisBase extends AnimateComponent {
41448
41861
  });
41449
41862
  }
41450
41863
  }
41451
- release() {
41452
- super.release(), this._prevInnerView = null, this._innerView = null;
41864
+ release(all) {
41865
+ this._exitReleaseState ? this._finalizeExitRelease() : (all && this.removeAllChild(!0), super.release(all), all && this.removeAllChild(!0), this._prevInnerView = null, this._innerView = null);
41453
41866
  }
41454
41867
  }
41455
41868
 
@@ -42364,8 +42777,8 @@ class LineAxis extends AxisBase {
42364
42777
  const orient = this.attribute.orient;
42365
42778
  return "left" === orient || "right" === orient ? this.attribute.width ? this.attribute.width : (this.attribute.maxWidth && (offset = Math.min(offset, this.attribute.maxWidth)), this.attribute.minWidth && (offset = Math.max(offset, this.attribute.minWidth)), offset) : offset;
42366
42779
  }
42367
- release() {
42368
- super.release(), this._breaks = null;
42780
+ release(all) {
42781
+ super.release(all), this._breaks = null;
42369
42782
  }
42370
42783
  }
42371
42784
  LineAxis.defaultAttributes = DEFAULT_AXIS_THEME, mixin(LineAxis, LineAxisMixin);
@@ -44337,6 +44750,14 @@ var __rest$8 = undefined && undefined.__rest || function (s, e) {
44337
44750
  }
44338
44751
  return t;
44339
44752
  };
44753
+ function cloneAttributeSnapshot(value) {
44754
+ if (!isObject$1(value) || isArray$1(value)) return value;
44755
+ const snapshot = {};
44756
+ return Object.keys(value).forEach(key => {
44757
+ const nextValue = value[key];
44758
+ snapshot[key] = isObject$1(nextValue) && !isArray$1(nextValue) ? cloneAttributeSnapshot(nextValue) : nextValue;
44759
+ }), snapshot;
44760
+ }
44340
44761
  loadLabelComponent();
44341
44762
  class LabelBase extends AnimateComponent {
44342
44763
  setBitmap(bitmap) {
@@ -44401,11 +44822,56 @@ class LabelBase extends AnimateComponent {
44401
44822
  return baseMark && baseMark.getAttributes(!0).fill && lineGraphic.setAttribute("stroke", baseMark.getAttributes(!0).fill), this.attribute.line && !isEmpty(this.attribute.line.style) && lineGraphic.setAttributes(this.attribute.line.style), this._setStatesOfLabelLine(lineGraphic), lineGraphic;
44402
44823
  }
44403
44824
  }
44825
+ _finalizeExitRelease() {
44826
+ var _a, _b, _c, _d;
44827
+ const state = this._exitReleaseState;
44828
+ if (null == state ? void 0 : state.finalized) return;
44829
+ state && (state.finalized = !0);
44830
+ const parent = this.parent,
44831
+ removeFromParent = !!(null == state ? void 0 : state.removeFromParent),
44832
+ callbacks = null !== (_a = null == state ? void 0 : state.onComplete) && void 0 !== _a ? _a : [];
44833
+ this._exitReleaseState = void 0, this._graphicToText = new Map(), null === (_b = this._idToGraphic) || void 0 === _b || _b.clear(), null === (_c = this._idToPoint) || void 0 === _c || _c.clear(), this._baseMarks = void 0, this.removeAllChild(!0), super.release(!0), removeFromParent && (null === (_d = null != parent ? parent : this.parent) || void 0 === _d || _d.removeChild(this)), runExitReleaseCallbacks(callbacks);
44834
+ }
44835
+ _runExitAnimationBeforeRelease(options = {}) {
44836
+ var _a, _b;
44837
+ if (this._exitReleaseState && !this._exitReleaseState.finalized) return this._exitReleaseState.removeFromParent = this._exitReleaseState.removeFromParent || !!options.removeFromParent, appendExitReleaseCallback(this._exitReleaseState, options.onComplete), !0;
44838
+ if (!this.stage || !1 === this.attribute.animation || !1 === this.attribute.animationExit || !(null === (_a = this._graphicToText) || void 0 === _a ? void 0 : _a.size)) return !1;
44839
+ if (this._prepareAnimate(DefaultLabelAnimation), !(null === (_b = this._animationConfig) || void 0 === _b ? void 0 : _b.exit)) return !1;
44840
+ const exitTargets = new Set();
44841
+ if (this._graphicToText.forEach(label => {
44842
+ (null == label ? void 0 : label.text) && exitTargets.add(label.text), (null == label ? void 0 : label.labelLine) && exitTargets.add(label.labelLine);
44843
+ }), !exitTargets.size) return !1;
44844
+ const existingAnimates = collectTrackedAnimates(this);
44845
+ exitTargets.forEach(target => {
44846
+ var _a;
44847
+ target.applyAnimationState(["exit"], [{
44848
+ name: "exit",
44849
+ animation: Object.assign(Object.assign({}, this._animationConfig.exit), {
44850
+ type: null !== (_a = this._animationConfig.exit.type) && void 0 !== _a ? _a : "fadeOut",
44851
+ selfOnly: !0
44852
+ })
44853
+ }]);
44854
+ });
44855
+ const exitAnimates = collectTrackedAnimates(this).filter(animate => !existingAnimates.includes(animate));
44856
+ if (!exitAnimates.length) return !1;
44857
+ this.setAttribute("childrenPickable", !1), this.releaseStatus = "willRelease";
44858
+ const pendingAnimates = new Set(exitAnimates);
44859
+ return this._exitReleaseState = {
44860
+ pendingAnimates: pendingAnimates,
44861
+ finalized: !1,
44862
+ removeFromParent: !!options.removeFromParent,
44863
+ onComplete: options.onComplete ? [options.onComplete] : []
44864
+ }, bindExitReleaseAnimates(exitAnimates, () => this._exitReleaseState, () => this._finalizeExitRelease()), !0;
44865
+ }
44866
+ releaseWithExitAnimation(options = {}) {
44867
+ return "released" !== this.releaseStatus && this._runExitAnimationBeforeRelease(options);
44868
+ }
44404
44869
  render() {
44870
+ if (this._exitReleaseState) return;
44405
44871
  if (this._prepare(), isNil$1(this._idToGraphic) || this._isCollectionBase && isNil$1(this._idToPoint)) return;
44406
44872
  const markAttributeList = [];
44407
44873
  !1 !== this._enableAnimation && this._baseMarks.forEach(mark => {
44408
- markAttributeList.push(mark.attribute), mark.initAttributes(mark.getAttributes(!0));
44874
+ markAttributeList.push(cloneAttributeSnapshot(mark.attribute)), mark.initAttributes(mark.getAttributes(!0));
44409
44875
  });
44410
44876
  const {
44411
44877
  overlap: overlap,
@@ -44971,6 +45437,10 @@ class LabelBase extends AnimateComponent {
44971
45437
  _canPlaceInside(textBound, shapeBound) {
44972
45438
  return !(!textBound || !shapeBound) && shapeBound.encloses(textBound);
44973
45439
  }
45440
+ release(all) {
45441
+ var _a, _b;
45442
+ this._exitReleaseState ? this._finalizeExitRelease() : (all && this.removeAllChild(!0), super.release(all), this._graphicToText = new Map(), null === (_a = this._idToGraphic) || void 0 === _a || _a.clear(), null === (_b = this._idToPoint) || void 0 === _b || _b.clear(), this._baseMarks = void 0);
45443
+ }
44974
45444
  setLocation(point) {
44975
45445
  this.translateTo(point.x, point.y);
44976
45446
  }
@@ -45740,6 +46210,7 @@ class DataLabel extends AbstractComponent {
45740
46210
  }
45741
46211
  render() {
45742
46212
  var _a;
46213
+ if (this._exitReleaseState) return;
45743
46214
  const {
45744
46215
  dataLabels: dataLabels,
45745
46216
  size: size
@@ -45774,6 +46245,47 @@ class DataLabel extends AbstractComponent {
45774
46245
  currentComponentMap.get(key) || this.removeChild(cp);
45775
46246
  }), this._componentMap = currentComponentMap;
45776
46247
  }
46248
+ _finalizeExitRelease() {
46249
+ var _a, _b, _c;
46250
+ const state = this._exitReleaseState;
46251
+ if (null == state ? void 0 : state.finalized) return;
46252
+ state && (state.finalized = !0);
46253
+ const parent = this.parent,
46254
+ removeFromParent = !!(null == state ? void 0 : state.removeFromParent),
46255
+ callbacks = null !== (_a = null == state ? void 0 : state.onComplete) && void 0 !== _a ? _a : [];
46256
+ this._exitReleaseState = void 0, null === (_b = this._componentMap) || void 0 === _b || _b.clear(), this.removeAllChild(!0), super.release(!0), removeFromParent && (null === (_c = null != parent ? parent : this.parent) || void 0 === _c || _c.removeChild(this)), runExitReleaseCallbacks(callbacks);
46257
+ }
46258
+ releaseWithExitAnimation(options = {}) {
46259
+ var _a;
46260
+ if ("released" === this.releaseStatus) return !1;
46261
+ if (this._exitReleaseState && !this._exitReleaseState.finalized) return this._exitReleaseState.removeFromParent = this._exitReleaseState.removeFromParent || !!options.removeFromParent, appendExitReleaseCallback(this._exitReleaseState, options.onComplete), !0;
46262
+ if (!this.stage || !(null === (_a = this._componentMap) || void 0 === _a ? void 0 : _a.size)) return !1;
46263
+ const state = {
46264
+ pendingCount: 0,
46265
+ finalized: !1,
46266
+ removeFromParent: !!options.removeFromParent,
46267
+ onComplete: options.onComplete ? [options.onComplete] : []
46268
+ },
46269
+ exitingComponents = [],
46270
+ fallbackComponents = [];
46271
+ let initializing = !0;
46272
+ const finish = () => {
46273
+ state.finalized || (state.pendingCount -= 1, state.pendingCount <= 0 && !initializing && this._finalizeExitRelease());
46274
+ };
46275
+ return this._exitReleaseState = state, this._componentMap.forEach(component => {
46276
+ state.pendingCount += 1;
46277
+ component.releaseWithExitAnimation({
46278
+ removeFromParent: !1,
46279
+ onComplete: finish
46280
+ }) ? exitingComponents.push(component) : (state.pendingCount -= 1, fallbackComponents.push(component));
46281
+ }), exitingComponents.length ? (fallbackComponents.forEach(component => {
46282
+ component.release(!0), this.removeChild(component);
46283
+ }), this.setAttribute("childrenPickable", !1), this.releaseStatus = "willRelease", initializing = !1, state.pendingCount <= 0 && this._finalizeExitRelease(), !0) : (this._exitReleaseState = void 0, !1);
46284
+ }
46285
+ release(all) {
46286
+ var _a;
46287
+ this._exitReleaseState ? this._finalizeExitRelease() : (all && this.removeAllChild(!0), super.release(all), null === (_a = this._componentMap) || void 0 === _a || _a.clear());
46288
+ }
45777
46289
  setLocation(point) {
45778
46290
  this.translateTo(point.x, point.y);
45779
46291
  }
@@ -47407,14 +47919,51 @@ class Marker extends AbstractComponent {
47407
47919
  y: clipInRange ? -(null !== (_b = limitRect.y) && void 0 !== _b ? _b : 0) : 0
47408
47920
  });
47409
47921
  }
47410
- render() {
47922
+ _finalizeExitRelease() {
47923
+ var _a, _b;
47924
+ const state = this._exitReleaseState;
47925
+ if (null == state ? void 0 : state.finalized) return;
47926
+ state && (state.finalized = !0);
47927
+ const parent = this.parent,
47928
+ removeFromParent = !!(null == state ? void 0 : state.removeFromParent),
47929
+ releaseSelf = !!(null == state ? void 0 : state.releaseSelf),
47930
+ callbacks = null !== (_a = null == state ? void 0 : state.onComplete) && void 0 !== _a ? _a : [];
47931
+ this._exitReleaseState = void 0, this._releaseEvent(), this._container = null, this._containerClip = null, this.removeAllChild(!0), releaseSelf && (super.release(!0), removeFromParent && (null === (_b = null != parent ? parent : this.parent) || void 0 === _b || _b.removeChild(this))), runExitReleaseCallbacks(callbacks);
47932
+ }
47933
+ _runExitAnimationBeforeCleanup(options = {}) {
47411
47934
  var _a;
47935
+ const releaseSelf = !!options.releaseSelf;
47936
+ if (this._exitReleaseState && !this._exitReleaseState.finalized) return this._exitReleaseState.releaseSelf = this._exitReleaseState.releaseSelf || releaseSelf, this._exitReleaseState.removeFromParent = this._exitReleaseState.removeFromParent || !!options.removeFromParent, appendExitReleaseCallback(this._exitReleaseState, options.onComplete), !0;
47937
+ if (!this.stage || !1 === this.attribute.animation || !1 === this.attribute.animationExit || !this._container) return !1;
47938
+ if (this.transAnimationConfig(), !(null === (_a = this._animationConfig) || void 0 === _a ? void 0 : _a.exit)) return !1;
47939
+ const existingAnimates = collectTrackedAnimates(this);
47940
+ this.markerAnimate("exit");
47941
+ const exitAnimates = collectTrackedAnimates(this).filter(animate => !existingAnimates.includes(animate));
47942
+ if (!exitAnimates.length) return !1;
47943
+ this._releaseEvent(), this.setAttribute("childrenPickable", !1), releaseSelf && (this.releaseStatus = "willRelease");
47944
+ const pendingAnimates = new Set(exitAnimates);
47945
+ return this._exitReleaseState = {
47946
+ pendingAnimates: pendingAnimates,
47947
+ finalized: !1,
47948
+ releaseSelf: releaseSelf,
47949
+ removeFromParent: !!options.removeFromParent,
47950
+ onComplete: options.onComplete ? [options.onComplete] : []
47951
+ }, bindExitReleaseAnimates(exitAnimates, () => this._exitReleaseState, () => this._finalizeExitRelease()), !0;
47952
+ }
47953
+ releaseWithExitAnimation(options = {}) {
47954
+ return "released" !== this.releaseStatus && this._runExitAnimationBeforeCleanup(Object.assign(Object.assign({}, options), {
47955
+ releaseSelf: !0
47956
+ }));
47957
+ }
47958
+ render() {
47959
+ var _a, _b;
47960
+ if (null === (_a = this._exitReleaseState) || void 0 === _a ? void 0 : _a.releaseSelf) return;
47412
47961
  this.transAnimationConfig(), this.setAttribute("pickable", !1);
47413
- const markerVisible = null === (_a = this.attribute.visible) || void 0 === _a || _a;
47414
- !1 === this.attribute.interactive && this.setAttribute("childrenPickable", !1), markerVisible && this.isValidPoints() ? this._container ? (this._updateContainer(), this.updateMarker(), this.markerAnimate("update")) : (this._initContainer(), this.initMarker(this._container), this.markerAnimate("enter")) : (this.markerAnimate("exit"), this._container = null, this.removeAllChild(!0)), this._releaseEvent(), this._bindEvent();
47962
+ const markerVisible = null === (_b = this.attribute.visible) || void 0 === _b || _b;
47963
+ !1 === this.attribute.interactive && this.setAttribute("childrenPickable", !1), markerVisible && this.isValidPoints() ? (this._exitReleaseState && this._finalizeExitRelease(), this._container ? (this._updateContainer(), this.updateMarker(), this.markerAnimate("update")) : (this._initContainer(), this.initMarker(this._container), this.markerAnimate("enter"))) : this._runExitAnimationBeforeCleanup() || (this._container = null, this._containerClip = null, this.removeAllChild(!0)), this._releaseEvent(), this._bindEvent();
47415
47964
  }
47416
- release() {
47417
- this.markerAnimate("exit"), super.release(), this._releaseEvent(), this._container = null;
47965
+ release(all) {
47966
+ this._exitReleaseState ? this._finalizeExitRelease() : (!1 !== this.attribute.animation && !1 !== this.attribute.animationExit && this.markerAnimate("exit"), all && this.removeAllChild(!0), super.release(all), this._releaseEvent(), this._container = null, this._containerClip = null);
47418
47967
  }
47419
47968
  }
47420
47969
 
@@ -49677,7 +50226,10 @@ class DiscreteLegend extends LegendBase {
49677
50226
  const innerGroupHeight = innerGroupBounds.height(),
49678
50227
  itemGroupWidth = isValid$1(this.attribute.item.width) ? this.attribute.item.width : innerGroupWidth + parsedPadding[1] + parsedPadding[3],
49679
50228
  itemGroupHeight = this._itemHeightByUser || innerGroupHeight + parsedPadding[0] + parsedPadding[2];
49680
- return itemGroup.attribute.width = itemGroupWidth, itemGroup.attribute.height = itemGroupHeight, focusShape && focusShape.setAttribute("visible", !1), innerGroup.translateTo(-innerGroupBounds.x1 + parsedPadding[3], -innerGroupBounds.y1 + parsedPadding[0]), itemGroup;
50229
+ return itemGroup.setAttributes({
50230
+ width: itemGroupWidth,
50231
+ height: itemGroupHeight
50232
+ }), focusShape && focusShape.setAttribute("visible", !1), innerGroup.translateTo(-innerGroupBounds.x1 + parsedPadding[3], -innerGroupBounds.y1 + parsedPadding[0]), itemGroup;
49681
50233
  }
49682
50234
  _createPager(compStyle) {
49683
50235
  var _a, _b;
@@ -51314,7 +51866,11 @@ class Title extends AbstractComponent {
51314
51866
  subTextBoundsWidth = this._subTitle ? this._subTitle.AABBBounds.width() : 0;
51315
51867
  let totalWidth = Math.max(mainTextBoundsWidth, subTextBoundsWidth),
51316
51868
  totalHeight = mainTextBoundsHeight + (null !== (_q = subtextStyle.height) && void 0 !== _q ? _q : subTextBoundsHeight);
51317
- if (isValid$1(width) && (totalWidth = width), isValid$1(height) && (totalHeight = height), isValid$1(minWidth) && totalWidth < minWidth && (totalWidth = minWidth), isValid$1(maxWidth) && totalWidth > maxWidth && (totalWidth = maxWidth), isValid$1(minHeight) && totalHeight < minHeight && (totalHeight = minHeight), isValid$1(maxHeight) && totalHeight > maxHeight && (totalHeight = maxHeight), group.attribute.width = totalWidth, group.attribute.height = totalHeight, group.attribute.boundsPadding = parsedPadding, this._mainTitle) {
51869
+ if (isValid$1(width) && (totalWidth = width), isValid$1(height) && (totalHeight = height), isValid$1(minWidth) && totalWidth < minWidth && (totalWidth = minWidth), isValid$1(maxWidth) && totalWidth > maxWidth && (totalWidth = maxWidth), isValid$1(minHeight) && totalHeight < minHeight && (totalHeight = minHeight), isValid$1(maxHeight) && totalHeight > maxHeight && (totalHeight = maxHeight), group.setAttributes({
51870
+ width: totalWidth,
51871
+ height: totalHeight,
51872
+ boundsPadding: parsedPadding
51873
+ }), this._mainTitle) {
51318
51874
  if (isValid$1(align) || isValid$1(textStyle.align)) {
51319
51875
  const mainTitleAlign = textStyle.align ? textStyle.align : align,
51320
51876
  mainTitleWidth = null !== (_r = textStyle.width) && void 0 !== _r ? _r : totalWidth;
@@ -54676,6 +55232,6 @@ function createStage(params) {
54676
55232
  return resolveLegacyApp().createStage(params);
54677
55233
  }
54678
55234
 
54679
- const version = "1.1.0-alpha.16";
55235
+ const version = "1.1.0-alpha.17";
54680
55236
 
54681
- 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 };
55237
+ 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, 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 };