@visactor/vrender-core 1.1.4-alpha.1 → 1.1.4-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/cjs/common/bounds-context.js +1 -2
  2. package/cjs/common/custom-path2d.js +2 -1
  3. package/cjs/common/module-guard.js +1 -1
  4. package/cjs/common/morphing-utils.js +1 -1
  5. package/cjs/common/path-svg.js +1 -1
  6. package/cjs/common/performance-raf.js +1 -2
  7. package/cjs/common/polygon.js +2 -2
  8. package/cjs/common/rect-utils.js +1 -1
  9. package/cjs/common/render-area.js +1 -1
  10. package/cjs/common/render-command-list.js +1 -1
  11. package/cjs/common/render-curve.js +1 -1
  12. package/cjs/common/render-utils.js +1 -1
  13. package/cjs/common/seg-context.js +1 -1
  14. package/cjs/core/camera.js +1 -1
  15. package/cjs/core/constants.js +1 -1
  16. package/cjs/core/core-modules.js +2 -1
  17. package/cjs/core/global.js +1 -1
  18. package/cjs/core/graphic-utils.js +1 -1
  19. package/cjs/core/index.js +1 -1
  20. package/cjs/core/layer-service.js +1 -1
  21. package/cjs/core/layer.js +1 -1
  22. package/cjs/core/light.js +1 -1
  23. package/cjs/core/stage.js +1 -1
  24. package/cjs/core/window.js +1 -1
  25. package/cjs/graphic/graphic.d.ts +7 -4
  26. package/cjs/graphic/graphic.js +31 -11
  27. package/cjs/graphic/graphic.js.map +1 -1
  28. package/cjs/graphic/group.d.ts +7 -4
  29. package/cjs/graphic/group.js +31 -17
  30. package/cjs/graphic/group.js.map +1 -1
  31. package/cjs/graphic/node-tree.d.ts +2 -1
  32. package/cjs/graphic/node-tree.js +1 -1
  33. package/cjs/graphic/node-tree.js.map +1 -1
  34. package/cjs/graphic/richtext/utils.js +3 -0
  35. package/cjs/graphic/richtext/utils.js.map +1 -1
  36. package/cjs/graphic/richtext.d.ts +4 -1
  37. package/cjs/graphic/richtext.js +2 -2
  38. package/cjs/graphic/richtext.js.map +1 -1
  39. package/cjs/graphic/state/state-engine.d.ts +1 -0
  40. package/cjs/graphic/state/state-engine.js +17 -0
  41. package/cjs/graphic/state/state-engine.js.map +1 -1
  42. package/cjs/interface/graphic/richText.d.ts +2 -0
  43. package/cjs/interface/graphic/richText.js.map +1 -1
  44. package/cjs/interface/graphic.d.ts +1 -1
  45. package/cjs/interface/graphic.js.map +1 -1
  46. package/cjs/interface/node-tree.d.ts +2 -1
  47. package/cjs/interface/node-tree.js.map +1 -1
  48. package/dist/index.es.js +134 -36
  49. package/es/common/bounds-context.js +1 -2
  50. package/es/common/custom-path2d.js +2 -1
  51. package/es/common/module-guard.js +1 -1
  52. package/es/common/morphing-utils.js +1 -1
  53. package/es/common/path-svg.js +1 -1
  54. package/es/common/performance-raf.js +1 -2
  55. package/es/common/polygon.js +1 -1
  56. package/es/common/rect-utils.js +1 -1
  57. package/es/common/render-area.js +1 -1
  58. package/es/common/render-command-list.js +1 -1
  59. package/es/common/render-curve.js +1 -1
  60. package/es/common/render-utils.js +1 -1
  61. package/es/common/seg-context.js +1 -1
  62. package/es/core/camera.js +1 -1
  63. package/es/core/constants.js +1 -1
  64. package/es/core/core-modules.js +2 -1
  65. package/es/core/global.js +1 -1
  66. package/es/core/graphic-utils.js +1 -1
  67. package/es/core/index.js +1 -1
  68. package/es/core/layer-service.js +1 -1
  69. package/es/core/layer.js +1 -1
  70. package/es/core/light.js +1 -1
  71. package/es/core/stage.js +1 -1
  72. package/es/core/window.js +1 -1
  73. package/es/graphic/graphic.d.ts +7 -4
  74. package/es/graphic/graphic.js +31 -11
  75. package/es/graphic/graphic.js.map +1 -1
  76. package/es/graphic/group.d.ts +7 -4
  77. package/es/graphic/group.js +31 -17
  78. package/es/graphic/group.js.map +1 -1
  79. package/es/graphic/node-tree.d.ts +2 -1
  80. package/es/graphic/node-tree.js +1 -1
  81. package/es/graphic/node-tree.js.map +1 -1
  82. package/es/graphic/richtext/utils.js +3 -0
  83. package/es/graphic/richtext/utils.js.map +1 -1
  84. package/es/graphic/richtext.d.ts +4 -1
  85. package/es/graphic/richtext.js +2 -2
  86. package/es/graphic/richtext.js.map +1 -1
  87. package/es/graphic/state/state-engine.d.ts +1 -0
  88. package/es/graphic/state/state-engine.js +17 -0
  89. package/es/graphic/state/state-engine.js.map +1 -1
  90. package/es/interface/graphic/richText.d.ts +2 -0
  91. package/es/interface/graphic/richText.js.map +1 -1
  92. package/es/interface/graphic.d.ts +1 -1
  93. package/es/interface/graphic.js.map +1 -1
  94. package/es/interface/node-tree.d.ts +2 -1
  95. package/es/interface/node-tree.js.map +1 -1
  96. package/package.json +3 -3
@@ -56,5 +56,4 @@ class BoundsContext {
56
56
  release(...params) {}
57
57
  }
58
58
 
59
- exports.BoundsContext = BoundsContext;
60
- //# sourceMappingURL=bounds-context.js.map
59
+ exports.BoundsContext = BoundsContext;
@@ -367,4 +367,5 @@ function scale(current, sX, sY) {
367
367
  temp[3] = current[3], temp[4] = current[4], temp[5] = current[5], temp[6] = sX * current[6],
368
368
  temp[7] = sY * current[7]; else if ("h" === c || "H" === c) temp[1] = sX * current[1]; else if ("v" === c || "V" === c) temp[1] = sY * current[1]; else for (let i = 1, n = current.length; i < n; ++i) temp[i] = (i % 2 == 1 ? sX : sY) * current[i];
369
369
  return temp;
370
- }
370
+ }
371
+ //# sourceMappingURL=custom-path2d.js.map
@@ -8,4 +8,4 @@ function isBindingContextLoaded(loadedContexts, context) {
8
8
  Object.defineProperty(exports, "__esModule", {
9
9
  value: !0
10
10
  }), exports.isBindingContextLoaded = void 0, exports.isBindingContextLoaded = isBindingContextLoaded;
11
- //# sourceMappingURL=module-guard.js.map
11
+ //# sourceMappingURL=module-guard.js.map
@@ -200,4 +200,4 @@ exports.cubicSubdivide = cubicSubdivide, exports.alignSubpath = alignSubpath, ex
200
200
  exports.findBestMorphingRotation = findBestMorphingRotation, exports.alignBezierCurves = alignBezierCurves,
201
201
  exports.pathToBezierCurves = pathToBezierCurves, exports.applyTransformOnBezierCurves = applyTransformOnBezierCurves,
202
202
  exports.bezierCurversToPath = bezierCurversToPath;
203
- //# sourceMappingURL=morphing-utils.js.map
203
+ //# sourceMappingURL=morphing-utils.js.map
@@ -61,4 +61,4 @@ exports.enumCommandMap = {
61
61
  Q: 7,
62
62
  R: 8
63
63
  }, exports.parseSvgPath = parseSvgPath;
64
- //# sourceMappingURL=path-svg.js.map
64
+ //# sourceMappingURL=path-svg.js.map
@@ -33,5 +33,4 @@ class PerformanceRAF {
33
33
  }
34
34
  }
35
35
 
36
- exports.PerformanceRAF = PerformanceRAF;
37
- //# sourceMappingURL=performance-raf.js.map
36
+ exports.PerformanceRAF = PerformanceRAF;
@@ -41,8 +41,8 @@ function getProportionPoint(point, segment, length, dx, dy) {
41
41
  };
42
42
  }
43
43
 
44
+ //# sourceMappingURL=polygon.js.map
44
45
  Object.defineProperty(exports, "__esModule", {
45
46
  value: !0
46
47
  }), exports.drawRoundedPolygon = exports.drawPolygon = void 0, exports.drawPolygon = drawPolygon,
47
- exports.drawRoundedPolygon = drawRoundedPolygon;
48
- //# sourceMappingURL=polygon.js.map
48
+ exports.drawRoundedPolygon = drawRoundedPolygon;
@@ -24,4 +24,4 @@ const vutils_1 = require("@visactor/vutils"), normalizeRectAttributes = attribut
24
24
  };
25
25
 
26
26
  exports.normalizeRectAttributes = normalizeRectAttributes;
27
- //# sourceMappingURL=rect-utils.js.map
27
+ //# sourceMappingURL=rect-utils.js.map
@@ -61,5 +61,5 @@ function drawAreaBlock(path, topList, bottomList, params) {
61
61
  path.closePath();
62
62
  }
63
63
 
64
- exports.drawAreaSegments = drawAreaSegments;
65
64
  //# sourceMappingURL=render-area.js.map
65
+ exports.drawAreaSegments = drawAreaSegments;
@@ -14,4 +14,4 @@ function renderCommandList(commandList, context, x = 0, y = 0, sx = 1, sy = 1, z
14
14
  }
15
15
 
16
16
  exports.renderCommandList = renderCommandList;
17
- //# sourceMappingURL=render-command-list.js.map
17
+ //# sourceMappingURL=render-command-list.js.map
@@ -99,4 +99,4 @@ function drawIncrementalAreaSegments(path, lastSeg, segments, params) {
99
99
 
100
100
  exports.drawSegments = drawSegments, exports.drawIncrementalSegments = drawIncrementalSegments,
101
101
  exports.drawIncrementalAreaSegments = drawIncrementalAreaSegments;
102
- //# sourceMappingURL=render-curve.js.map
102
+ //# sourceMappingURL=render-curve.js.map
@@ -19,4 +19,4 @@ function drawSegItem(ctx, curve, endPercent, params) {
19
19
  }
20
20
 
21
21
  exports.drawSegItem = drawSegItem;
22
- //# sourceMappingURL=render-utils.js.map
22
+ //# sourceMappingURL=render-utils.js.map
@@ -95,4 +95,4 @@ class ReflectSegContext extends SegContext {
95
95
  }
96
96
 
97
97
  exports.ReflectSegContext = ReflectSegContext;
98
- //# sourceMappingURL=seg-context.js.map
98
+ //# sourceMappingURL=seg-context.js.map
@@ -71,4 +71,4 @@ const registerOrthoCamera = () => {
71
71
  };
72
72
 
73
73
  exports.registerOrthoCamera = registerOrthoCamera;
74
- //# sourceMappingURL=camera.js.map
74
+ //# sourceMappingURL=camera.js.map
@@ -7,4 +7,4 @@ exports.TransformUtil = Symbol.for("TransformUtil"), exports.GraphicUtil = Symbo
7
7
  exports.LayerService = Symbol.for("LayerService"), exports.StaticLayerHandlerContribution = Symbol.for("StaticLayerHandlerContribution"),
8
8
  exports.DynamicLayerHandlerContribution = Symbol.for("DynamicLayerHandlerContribution"),
9
9
  exports.VirtualLayerHandlerContribution = Symbol.for("VirtualLayerHandlerContribution");
10
- //# sourceMappingURL=constants.js.map
10
+ //# sourceMappingURL=constants.js.map
@@ -15,4 +15,5 @@ function bindCoreModules({bind: bind}) {
15
15
  bind(constants_1.LayerService).to(layer_service_1.DefaultLayerService).inSingletonScope();
16
16
  }
17
17
 
18
- exports.bindCoreModules = bindCoreModules, exports.default = bindCoreModules;
18
+ exports.bindCoreModules = bindCoreModules, exports.default = bindCoreModules;
19
+ //# sourceMappingURL=core-modules.js.map
@@ -222,4 +222,4 @@ class DefaultGlobal extends event_listener_manager_1.EventListenerManager {
222
222
  }
223
223
 
224
224
  exports.DefaultGlobal = DefaultGlobal;
225
- //# sourceMappingURL=global.js.map
225
+ //# sourceMappingURL=global.js.map
@@ -162,4 +162,4 @@ class DefaultTransformUtil {
162
162
  }
163
163
 
164
164
  exports.DefaultTransformUtil = DefaultTransformUtil;
165
- //# sourceMappingURL=graphic-utils.js.map
165
+ //# sourceMappingURL=graphic-utils.js.map
package/cjs/core/index.js CHANGED
@@ -22,4 +22,4 @@ __exportStar(require("./layer"), exports), __exportStar(require("./stage"), expo
22
22
  __exportStar(require("./graphic-utils"), exports), __exportStar(require("./contributions"), exports),
23
23
  __exportStar(require("./layer-service"), exports), __exportStar(require("./constants"), exports),
24
24
  __exportStar(require("../interface/core"), exports);
25
- //# sourceMappingURL=index.js.map
25
+ //# sourceMappingURL=index.js.map
@@ -81,4 +81,4 @@ class DefaultLayerService {
81
81
 
82
82
  exports.DefaultLayerService = DefaultLayerService, DefaultLayerService.idprefix = "visactor_layer",
83
83
  DefaultLayerService.prefix_count = 0;
84
- //# sourceMappingURL=layer-service.js.map
84
+ //# sourceMappingURL=layer-service.js.map
package/cjs/core/layer.js CHANGED
@@ -116,4 +116,4 @@ class Layer extends group_1.Group {
116
116
  }
117
117
 
118
118
  exports.Layer = Layer;
119
- //# sourceMappingURL=layer.js.map
119
+ //# sourceMappingURL=layer.js.map
package/cjs/core/light.js CHANGED
@@ -29,4 +29,4 @@ const registerDirectionalLight = () => {
29
29
  };
30
30
 
31
31
  exports.registerDirectionalLight = registerDirectionalLight;
32
- //# sourceMappingURL=light.js.map
32
+ //# sourceMappingURL=light.js.map
package/cjs/core/stage.js CHANGED
@@ -565,4 +565,4 @@ class Stage extends group_1.Group {
565
565
  }
566
566
 
567
567
  exports.Stage = Stage;
568
- //# sourceMappingURL=stage.js.map
568
+ //# sourceMappingURL=stage.js.map
@@ -150,4 +150,4 @@ class DefaultWindow extends event_listener_manager_1.EventListenerManager {
150
150
  }
151
151
 
152
152
  exports.DefaultWindow = DefaultWindow;
153
- //# sourceMappingURL=window.js.map
153
+ //# sourceMappingURL=window.js.map
@@ -142,12 +142,14 @@ declare abstract class GraphicImpl<T extends Partial<IGraphicAttribute> = Partia
142
142
  getAttributes(): T;
143
143
  protected getStateTransitionOrchestrator(): StateTransitionOrchestrator<T>;
144
144
  protected resolveBoundSharedStateScope(): SharedStateScope<T> | SharedStateScope<Record<string, any>> | undefined;
145
- protected syncSharedStateScopeBindingFromTree(markDirty?: boolean): boolean;
146
- protected syncSharedStateScopeBindingOnTreeChange(markDirty?: boolean): boolean;
145
+ protected syncSharedStateScopeBinding(nextScope: SharedStateScope<T> | SharedStateScope<Record<string, any>> | undefined, markDirty?: boolean): boolean;
146
+ protected syncSharedStateScopeBindingFromTree(markDirty?: boolean, inheritedSharedStateScope?: SharedStateScope<Record<string, any>> | null): boolean;
147
+ protected syncSharedStateScopeBindingOnTreeChange(markDirty?: boolean, inheritedSharedStateScope?: SharedStateScope<Record<string, any>> | null): boolean;
147
148
  protected syncSharedStateActiveRegistrations(): void;
149
+ protected isSharedStateScopeChainRegistered(previousScopes: Set<SharedStateScope<T>>): boolean;
148
150
  protected clearSharedStateActiveRegistrations(): void;
149
151
  protected markSharedStateDirty(): void;
150
- onParentSharedStateTreeChanged(stage?: IStage, layer?: ILayer): void;
152
+ onParentSharedStateTreeChanged(stage?: IStage, layer?: ILayer, inheritedSharedStateScope?: SharedStateScope<Record<string, any>> | null): void;
151
153
  refreshSharedStateBeforeRender(): void;
152
154
  protected getLocalStatesVersion(): number;
153
155
  protected resolveEffectiveCompiledDefinitions(): {
@@ -237,6 +239,7 @@ declare abstract class GraphicImpl<T extends Partial<IGraphicAttribute> = Partia
237
239
  }): void;
238
240
  hasState(stateName?: string): boolean;
239
241
  getState(stateName: string): Partial<T> | StateDefinition<T> | undefined;
242
+ setStateDefinitionsWithCompiled(definitions: StateDefinitionsInput<T>, compiledDefinitions: Map<string, CompiledStateDefinition<T>>): void;
240
243
  protected getStateResolveBaseAttrs(): Partial<T>;
241
244
  protected syncStateResolveContext(stateResolveBaseAttrs?: Partial<T>): Partial<T>;
242
245
  protected ensureStateEngine(stateResolveBaseAttrs?: Partial<T>): StateEngine<T>;
@@ -292,7 +295,7 @@ declare abstract class GraphicImpl<T extends Partial<IGraphicAttribute> = Partia
292
295
  }, resetScale?: boolean): [number, number];
293
296
  protected doUpdateLocalMatrix(): void;
294
297
  protected doUpdateGlobalMatrix(): void;
295
- setStage(stage?: IStage, layer?: ILayer): void;
298
+ setStage(stage?: IStage, layer?: ILayer, inheritedSharedStateScope?: SharedStateScope<Record<string, any>> | null): void;
296
299
  detachStageForRelease(): void;
297
300
  setStageToShadowRoot(stage?: IStage, layer?: ILayer): void;
298
301
  onAddStep(step: IStep): void;
@@ -144,9 +144,8 @@ class GraphicImpl extends node_tree_1.Node {
144
144
  }
145
145
  return null === (_a = this.stage) || void 0 === _a ? void 0 : _a.rootSharedStateScope;
146
146
  }
147
- syncSharedStateScopeBindingFromTree(markDirty = !0) {
147
+ syncSharedStateScopeBinding(nextScope, markDirty = !0) {
148
148
  var _a;
149
- const nextScope = this.resolveBoundSharedStateScope();
150
149
  return this.boundSharedStateScope === nextScope ? (this.syncSharedStateActiveRegistrations(),
151
150
  !1) : (this.boundSharedStateScope = nextScope, this.boundSharedStateRevision = void 0,
152
151
  this.compiledStateDefinitions = void 0, this.compiledStateDefinitionsCacheKey = void 0,
@@ -154,9 +153,13 @@ class GraphicImpl extends node_tree_1.Node {
154
153
  markDirty && (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) && this.markSharedStateDirty(),
155
154
  !0);
156
155
  }
157
- syncSharedStateScopeBindingOnTreeChange(markDirty = !0) {
156
+ syncSharedStateScopeBindingFromTree(markDirty = !0, inheritedSharedStateScope) {
157
+ const nextScope = void 0 === inheritedSharedStateScope ? this.resolveBoundSharedStateScope() : null != inheritedSharedStateScope ? inheritedSharedStateScope : void 0;
158
+ return this.syncSharedStateScopeBinding(nextScope, markDirty);
159
+ }
160
+ syncSharedStateScopeBindingOnTreeChange(markDirty = !0, inheritedSharedStateScope) {
158
161
  var _a, _b;
159
- 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);
162
+ 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, inheritedSharedStateScope);
160
163
  }
161
164
  syncSharedStateActiveRegistrations() {
162
165
  var _a;
@@ -164,6 +167,7 @@ class GraphicImpl extends node_tree_1.Node {
164
167
  if (!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || !this.boundSharedStateScope) return (null == previousScopes ? void 0 : previousScopes.size) && (previousScopes.forEach((scope => {
165
168
  scope.subtreeActiveDescendants.delete(this);
166
169
  })), previousScopes.clear()), void (this.registeredActiveScopes = void 0);
170
+ if ((null == previousScopes ? void 0 : previousScopes.size) && this.isSharedStateScopeChainRegistered(previousScopes)) return;
167
171
  const nextScopes = new Set((0, shared_state_scope_1.collectSharedStateScopeChain)(this.boundSharedStateScope));
168
172
  null == previousScopes || previousScopes.forEach((scope => {
169
173
  nextScopes.has(scope) || scope.subtreeActiveDescendants.delete(this);
@@ -171,6 +175,14 @@ class GraphicImpl extends node_tree_1.Node {
171
175
  scope.subtreeActiveDescendants.add(this);
172
176
  })), this.registeredActiveScopes = nextScopes;
173
177
  }
178
+ isSharedStateScopeChainRegistered(previousScopes) {
179
+ let scope = this.boundSharedStateScope, scopeCount = 0;
180
+ for (;scope; ) {
181
+ if (!previousScopes.has(scope)) return !1;
182
+ scopeCount += 1, scope = scope.parentScope;
183
+ }
184
+ return scopeCount === previousScopes.size;
185
+ }
174
186
  clearSharedStateActiveRegistrations() {
175
187
  const previousScopes = this.registeredActiveScopes;
176
188
  previousScopes && (previousScopes.forEach((scope => {
@@ -181,8 +193,8 @@ class GraphicImpl extends node_tree_1.Node {
181
193
  this.sharedStateDirty = !0, (0, shared_state_refresh_1.enqueueGraphicSharedStateRefresh)(this.stage, this),
182
194
  (0, shared_state_refresh_1.scheduleStageSharedStateRefresh)(this.stage);
183
195
  }
184
- onParentSharedStateTreeChanged(stage, layer) {
185
- this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingOnTreeChange() : this.setStage(stage, layer);
196
+ onParentSharedStateTreeChanged(stage, layer, inheritedSharedStateScope) {
197
+ this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope) : this.setStage(stage, layer, inheritedSharedStateScope);
186
198
  }
187
199
  refreshSharedStateBeforeRender() {
188
200
  var _a;
@@ -832,6 +844,12 @@ class GraphicImpl extends node_tree_1.Node {
832
844
  var _a;
833
845
  return null === (_a = this.states) || void 0 === _a ? void 0 : _a[stateName];
834
846
  }
847
+ setStateDefinitionsWithCompiled(definitions, compiledDefinitions) {
848
+ var _a;
849
+ this.states = definitions, this.localStateDefinitionsSource !== definitions && (this.localStateDefinitionsSource = definitions,
850
+ this.localStateDefinitionsVersion = (null !== (_a = this.localStateDefinitionsVersion) && void 0 !== _a ? _a : 0) + 1),
851
+ this.compiledStateDefinitions = compiledDefinitions, this.compiledStateDefinitionsCacheKey = `local:${this.localStateDefinitionsVersion}`;
852
+ }
835
853
  getStateResolveBaseAttrs() {
836
854
  var _a;
837
855
  return null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : this.attribute;
@@ -1020,8 +1038,10 @@ class GraphicImpl extends node_tree_1.Node {
1020
1038
  transition.changed && this.useStates(transition.states, hasAnimation);
1021
1039
  }
1022
1040
  addState(stateName, keepCurrentStates, hasAnimation) {
1023
- const transition = this.resolveAddStateTransition(stateName, keepCurrentStates);
1024
- transition.changed && this.useStates(transition.states, hasAnimation);
1041
+ const currentStates = this.currentStates;
1042
+ if ((null == currentStates ? void 0 : currentStates.includes(stateName)) && (keepCurrentStates || 1 === currentStates.length)) return;
1043
+ const nextStates = keepCurrentStates && (null == currentStates ? void 0 : currentStates.length) ? currentStates.concat([ stateName ]) : [ stateName ];
1044
+ this.useStates(nextStates, hasAnimation);
1025
1045
  }
1026
1046
  setStates(states, options) {
1027
1047
  var _a, _b, _c;
@@ -1157,11 +1177,11 @@ class GraphicImpl extends node_tree_1.Node {
1157
1177
  this._globalTransMatrix.translate(scrollX, scrollY);
1158
1178
  }
1159
1179
  }
1160
- setStage(stage, layer) {
1180
+ setStage(stage, layer, inheritedSharedStateScope) {
1161
1181
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1162
1182
  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_1.application.graphicService, previousStage = this.stage;
1163
1183
  if (this.stage !== stage || this.layer !== layer) {
1164
- 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),
1184
+ 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, inheritedSharedStateScope),
1165
1185
  this.setStageToShadowRoot(stage, layer), this.mayHaveTrackedAnimates() && this.hasAnyTrackedAnimate()) {
1166
1186
  const previousTimeline = null === (_f = null == previousStage ? void 0 : previousStage.getTimeline) || void 0 === _f ? void 0 : _f.call(previousStage), nextTimeline = null === (_g = null == stage ? void 0 : stage.getTimeline) || void 0 === _g ? void 0 : _g.call(stage), detachedStageAnimates = [];
1167
1187
  this.visitTrackedAnimates((a => {
@@ -1179,7 +1199,7 @@ class GraphicImpl extends node_tree_1.Node {
1179
1199
  }
1180
1200
  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));
1181
1201
  }
1182
- ((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);
1202
+ ((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, inheritedSharedStateScope);
1183
1203
  }
1184
1204
  detachStageForRelease() {
1185
1205
  var _a, _b, _c;