@visactor/vrender-core 1.1.0-alpha.12 → 1.1.0-alpha.14

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 (40) hide show
  1. package/cjs/common/canvas-utils.js +0 -1
  2. package/cjs/common/event-transformer.js +2 -1
  3. package/cjs/common/explicit-binding.js +1 -1
  4. package/cjs/common/generator.js +1 -1
  5. package/cjs/common/matrix.js +1 -1
  6. package/cjs/common/morphing-utils.js +1 -1
  7. package/cjs/common/path-svg.js +1 -1
  8. package/cjs/common/performance-raf.js +1 -1
  9. package/cjs/common/polygon.js +2 -2
  10. package/cjs/entries/app-context.js +1 -1
  11. package/cjs/entries/browser.js +1 -1
  12. package/cjs/entries/index.js +1 -1
  13. package/cjs/entries/miniapp.js +1 -1
  14. package/cjs/entries/node.js +1 -1
  15. package/cjs/entries/runtime-installer.js +1 -1
  16. package/cjs/entries/types.js +1 -1
  17. package/cjs/graphic/graphic.d.ts +4 -0
  18. package/cjs/graphic/graphic.js +36 -4
  19. package/cjs/graphic/graphic.js.map +1 -1
  20. package/dist/index.es.js +89 -3
  21. package/es/common/canvas-utils.js +1 -2
  22. package/es/common/event-transformer.js +2 -1
  23. package/es/common/explicit-binding.js +1 -1
  24. package/es/common/generator.js +1 -1
  25. package/es/common/matrix.js +1 -1
  26. package/es/common/morphing-utils.js +1 -1
  27. package/es/common/path-svg.js +1 -1
  28. package/es/common/performance-raf.js +1 -1
  29. package/es/common/polygon.js +1 -1
  30. package/es/entries/app-context.js +1 -1
  31. package/es/entries/browser.js +1 -1
  32. package/es/entries/index.js +1 -1
  33. package/es/entries/miniapp.js +1 -1
  34. package/es/entries/node.js +1 -1
  35. package/es/entries/runtime-installer.js +1 -1
  36. package/es/entries/types.js +1 -1
  37. package/es/graphic/graphic.d.ts +4 -0
  38. package/es/graphic/graphic.js +35 -4
  39. package/es/graphic/graphic.js.map +1 -1
  40. package/package.json +2 -2
@@ -57,5 +57,4 @@ function createConicGradient(context, color, x, y, w, h) {
57
57
  })), canvasGradient.GetPattern ? canvasGradient.GetPattern(w + x, h + y, undefined) : canvasGradient;
58
58
  }
59
59
 
60
- //# sourceMappingURL=canvas-utils.js.map
61
60
  exports.getScaledStroke = getScaledStroke, exports.createColor = createColor;
@@ -123,4 +123,5 @@ function mapToCanvasPointForCanvas(nativeEvent) {
123
123
 
124
124
  exports.createEventTransformer = createEventTransformer, exports.createCanvasEventTransformer = createCanvasEventTransformer,
125
125
  exports.registerWindowEventTransformer = registerWindowEventTransformer, exports.registerGlobalEventTransformer = registerGlobalEventTransformer,
126
- exports.transformPointForCanvas = transformPointForCanvas, exports.mapToCanvasPointForCanvas = mapToCanvasPointForCanvas;
126
+ exports.transformPointForCanvas = transformPointForCanvas, exports.mapToCanvasPointForCanvas = mapToCanvasPointForCanvas;
127
+ //# sourceMappingURL=event-transformer.js.map
@@ -13,4 +13,4 @@ function resolveContainerBinding(container, serviceIdentifier) {
13
13
  Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.resolveContainerBinding = void 0, exports.resolveContainerBinding = resolveContainerBinding;
16
- //# sourceMappingURL=explicit-binding.js.map
16
+ //# sourceMappingURL=explicit-binding.js.map
@@ -11,4 +11,4 @@ class Generator {
11
11
  }
12
12
 
13
13
  exports.Generator = Generator, Generator.auto_increment_id = 0;
14
- //# sourceMappingURL=generator.js.map
14
+ //# sourceMappingURL=generator.js.map
@@ -129,4 +129,4 @@ exports.identityMat4 = identityMat4, exports.rotateX = rotateX, exports.rotateY
129
129
  exports.rotateZ = rotateZ, exports.translate = translate, exports.mat3Tomat4 = mat3Tomat4,
130
130
  exports.multiplyMat4Mat3 = multiplyMat4Mat3, exports.scaleMat4 = scaleMat4, exports.multiplyMat4Mat4 = multiplyMat4Mat4,
131
131
  exports.lookAt = lookAt, exports.ortho = ortho, exports.transformMat4 = transformMat4;
132
- //# sourceMappingURL=matrix.js.map
132
+ //# sourceMappingURL=matrix.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
@@ -34,4 +34,4 @@ class PerformanceRAF {
34
34
  }
35
35
 
36
36
  exports.PerformanceRAF = PerformanceRAF;
37
- //# sourceMappingURL=performance-raf.js.map
37
+ //# sourceMappingURL=performance-raf.js.map
@@ -41,8 +41,8 @@ function getProportionPoint(point, segment, length, dx, dy) {
41
41
  };
42
42
  }
43
43
 
44
- //# sourceMappingURL=polygon.js.map
45
44
  Object.defineProperty(exports, "__esModule", {
46
45
  value: !0
47
46
  }), exports.drawRoundedPolygon = exports.drawPolygon = void 0, exports.drawPolygon = drawPolygon,
48
- exports.drawRoundedPolygon = drawRoundedPolygon;
47
+ exports.drawRoundedPolygon = drawRoundedPolygon;
48
+ //# sourceMappingURL=polygon.js.map
@@ -81,4 +81,4 @@ class AppContext {
81
81
  }
82
82
 
83
83
  exports.AppContext = AppContext;
84
- //# sourceMappingURL=app-context.js.map
84
+ //# sourceMappingURL=app-context.js.map
@@ -41,4 +41,4 @@ function createBrowserApp(options = {}) {
41
41
  }
42
42
 
43
43
  exports.BrowserEntry = BrowserEntry, exports.createBrowserApp = createBrowserApp;
44
- //# sourceMappingURL=browser.js.map
44
+ //# sourceMappingURL=browser.js.map
@@ -29,4 +29,4 @@ Object.defineProperty(exports, "createApp", {
29
29
  return browser_1.createBrowserApp;
30
30
  }
31
31
  });
32
- //# sourceMappingURL=index.js.map
32
+ //# sourceMappingURL=index.js.map
@@ -17,4 +17,4 @@ function createMiniappApp(options = {}) {
17
17
  }
18
18
 
19
19
  exports.MiniappEntry = MiniappEntry, exports.createMiniappApp = createMiniappApp;
20
- //# sourceMappingURL=miniapp.js.map
20
+ //# sourceMappingURL=miniapp.js.map
@@ -17,4 +17,4 @@ function createNodeApp(options = {}) {
17
17
  }
18
18
 
19
19
  exports.NodeEntry = NodeEntry, exports.createNodeApp = createNodeApp;
20
- //# sourceMappingURL=node.js.map
20
+ //# sourceMappingURL=node.js.map
@@ -108,4 +108,4 @@ exports.getRuntimeInstallerGlobal = getRuntimeInstallerGlobal, exports.configure
108
108
  exports.installRuntimeGraphicRenderersToApp = installRuntimeGraphicRenderersToApp,
109
109
  exports.installRuntimeDrawContributionsToApp = installRuntimeDrawContributionsToApp,
110
110
  exports.installRuntimePickersToApp = installRuntimePickersToApp;
111
- //# sourceMappingURL=runtime-installer.js.map
111
+ //# sourceMappingURL=runtime-installer.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=types.js.map
6
+ //# sourceMappingURL=types.js.map
@@ -52,6 +52,8 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
52
52
  static mixin(source: Dict<any>): void;
53
53
  _events?: any;
54
54
  context?: Record<string, any>;
55
+ private transientFromAttrsBeforePreventAnimate?;
56
+ private transientFromAttrsBeforePreventAnimateDiffAttrs?;
55
57
  static userSymbolMap: Record<string, ISymbolClass>;
56
58
  onBeforeAttributeUpdate?: (val: any, attributes: Partial<T>, key: null | string | string[], context?: ISetAttributeContext) => T | undefined;
57
59
  parent: any;
@@ -189,6 +191,8 @@ export declare abstract class Graphic<T extends Partial<IGraphicAttribute> = Par
189
191
  containsPoint(x: number, y: number, mode: IContainPointMode, picker?: IPickerService): boolean;
190
192
  protected setWidthHeightWithoutTransform(aabbBounds: IAABBBounds): void;
191
193
  setAttributesAndPreventAnimate(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext, ignorePriority?: boolean): void;
194
+ protected captureTransientFromAttrsBeforePreventAnimate(params: Partial<T>, keys: string[], context?: ISetAttributeContext): void;
195
+ protected consumeTransientFromAttrsBeforePreventAnimate(diffAttrs: Record<string, any>): Record<string, any> | null;
192
196
  setAttributes(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
193
197
  _setAttributes(params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
194
198
  setAttribute(key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext): void;
@@ -519,12 +519,44 @@ class Graphic extends node_tree_1.Node {
519
519
  this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1, this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;
520
520
  }
521
521
  setAttributesAndPreventAnimate(params, forceUpdateTag = !1, context, ignorePriority) {
522
- this.visitTrackedAnimates((animate => {
523
- (animate.priority !== 1 / 0 || ignorePriority) && Object.keys(params).forEach((key => {
524
- animate.preventAttr(key);
525
- }));
522
+ if (!params) return;
523
+ const keys = Object.keys(params);
524
+ this.captureTransientFromAttrsBeforePreventAnimate(params, keys, context), this.visitTrackedAnimates((animate => {
525
+ (animate.priority !== 1 / 0 || ignorePriority) && animate.preventAttrs(keys);
526
526
  })), this.applyTransientAttributes(params, forceUpdateTag, context);
527
527
  }
528
+ captureTransientFromAttrsBeforePreventAnimate(params, keys, context) {
529
+ var _a;
530
+ const graphicContext = this.context, diffAttrs = null == graphicContext ? void 0 : graphicContext.diffAttrs, updateType = null == context ? void 0 : context.type;
531
+ if (!keys.length || !graphicContext || !diffAttrs || updateType === enums_1.AttributeUpdateType.STATE || null != updateType && updateType >= enums_1.AttributeUpdateType.ANIMATE_BIND && updateType <= enums_1.AttributeUpdateType.ANIMATE_END) return;
532
+ const sameDiffAttrs = this.transientFromAttrsBeforePreventAnimateDiffAttrs === diffAttrs;
533
+ let fromAttrs = sameDiffAttrs && null !== (_a = this.transientFromAttrsBeforePreventAnimate) && void 0 !== _a ? _a : null;
534
+ sameDiffAttrs || (this.transientFromAttrsBeforePreventAnimate = null, this.transientFromAttrsBeforePreventAnimateDiffAttrs = null);
535
+ let captured = !1;
536
+ for (let i = 0; i < keys.length; i++) {
537
+ const key = keys[i];
538
+ if (!Object.prototype.hasOwnProperty.call(diffAttrs, key)) continue;
539
+ const previousValue = this.attribute[key], nextValue = params[key];
540
+ (0, vutils_1.isEqual)(previousValue, nextValue) || (null != fromAttrs || (fromAttrs = {}),
541
+ fromAttrs[key] = cloneAttributeValue(previousValue), captured = !0);
542
+ }
543
+ captured && (this.transientFromAttrsBeforePreventAnimate = fromAttrs, this.transientFromAttrsBeforePreventAnimateDiffAttrs = diffAttrs);
544
+ }
545
+ consumeTransientFromAttrsBeforePreventAnimate(diffAttrs) {
546
+ const transientFromAttrs = this.transientFromAttrsBeforePreventAnimate, sourceDiffAttrs = this.transientFromAttrsBeforePreventAnimateDiffAttrs;
547
+ if (!transientFromAttrs || !sourceDiffAttrs) return null;
548
+ for (const key in diffAttrs) if (Object.prototype.hasOwnProperty.call(diffAttrs, key) && (!Object.prototype.hasOwnProperty.call(sourceDiffAttrs, key) || !(0,
549
+ vutils_1.isEqual)(sourceDiffAttrs[key], diffAttrs[key]))) return null;
550
+ let fromAttrs = null, remaining = !1;
551
+ for (const key in transientFromAttrs) Object.prototype.hasOwnProperty.call(transientFromAttrs, key) && (Object.prototype.hasOwnProperty.call(diffAttrs, key) ? (null != fromAttrs || (fromAttrs = {}),
552
+ fromAttrs[key] = transientFromAttrs[key]) : remaining = !0);
553
+ if (remaining) {
554
+ const nextTransientFromAttrs = {};
555
+ for (const key in transientFromAttrs) Object.prototype.hasOwnProperty.call(transientFromAttrs, key) && !Object.prototype.hasOwnProperty.call(diffAttrs, key) && (nextTransientFromAttrs[key] = transientFromAttrs[key]);
556
+ this.transientFromAttrsBeforePreventAnimate = nextTransientFromAttrs;
557
+ } else this.transientFromAttrsBeforePreventAnimate = null, this.transientFromAttrsBeforePreventAnimateDiffAttrs = null;
558
+ return fromAttrs;
559
+ }
528
560
  setAttributes(params, forceUpdateTag = !1, context) {
529
561
  params && ((params = this.onBeforeAttributeUpdate && this.onBeforeAttributeUpdate(params, this.attribute, null, context) || params).background && this.loadImage(params.background, !0),
530
562
  isExternalTexture(params.texture) && this.loadImage(params.texture, !1), params.shadowGraphic && this.setShadowGraphic(params.shadowGraphic),