MCPcopy
hub / github.com/angular/angular / BaseAnimationRenderer

Class BaseAnimationRenderer

packages/animations/browser/src/render/renderer.ts:25–164  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23};
24
25export class BaseAnimationRenderer implements Renderer2 {
26 // We need to explicitly type this property because of an api-extractor bug
27 // See https://github.com/microsoft/rushstack/issues/4390
28 readonly ɵtype: AnimationRendererType.Regular = AnimationRendererType.Regular;
29
30 constructor(
31 protected namespaceId: string,
32 public delegate: Renderer2,
33 public engine: AnimationEngine,
34 private _onDestroy?: () => void,
35 ) {}
36
37 get data() {
38 return this.delegate.data;
39 }
40
41 destroyNode(node: any): void {
42 this.delegate.destroyNode?.(node);
43 }
44
45 destroy(): void {
46 this.engine.destroy(this.namespaceId, this.delegate);
47 this.engine.afterFlushAnimationsDone(() => {
48 // Call the renderer destroy method after the animations has finished as otherwise
49 // styles will be removed too early which will cause an unstyled animation.
50 queueMicrotask(() => {
51 this.delegate.destroy();
52 });
53 });
54
55 this._onDestroy?.();
56 }
57
58 createElement(name: string, namespace?: string | null | undefined) {
59 return this.delegate.createElement(name, namespace);
60 }
61
62 createComment(value: string) {
63 return this.delegate.createComment(value);
64 }
65
66 createText(value: string) {
67 return this.delegate.createText(value);
68 }
69
70 appendChild(parent: any, newChild: any): void {
71 this.delegate.appendChild(parent, newChild);
72 this.engine.onInsert(this.namespaceId, newChild, parent, false);
73 }
74
75 insertBefore(parent: any, newChild: any, refChild: any, isMove: boolean = true): void {
76 this.delegate.insertBefore(parent, newChild, refChild);
77 // If `isMove` true than we should animate this insert.
78 this.engine.onInsert(this.namespaceId, newChild, parent, isMove);
79 }
80
81 // TODO(thePunderWoman): remove the requireSynchronousElementRemoval flag after the
82 // animations package has been fully deleted post v23.

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…