@angular/animations 21.0.0-next.9 → 21.0.0-rc.1
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/fesm2022/_private_export-chunk.mjs +289 -1159
- package/fesm2022/_private_export-chunk.mjs.map +1 -1
- package/fesm2022/_util-chunk.mjs +305 -527
- package/fesm2022/_util-chunk.mjs.map +1 -1
- package/fesm2022/animations.mjs +177 -185
- package/fesm2022/animations.mjs.map +1 -1
- package/fesm2022/browser-testing.mjs +95 -111
- package/fesm2022/browser-testing.mjs.map +1 -1
- package/fesm2022/browser.mjs +3371 -3961
- package/fesm2022/browser.mjs.map +1 -1
- package/package.json +2 -2
- package/types/_animation_driver-chunk.d.ts +1 -1
- package/types/_animation_player-chunk.d.ts +1 -1
- package/types/animations.d.ts +1 -1
- package/types/browser-testing.d.ts +1 -1
- package/types/browser.d.ts +1 -1
package/fesm2022/animations.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.0.0-
|
|
2
|
+
* @license Angular v21.0.0-rc.1
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -9,203 +9,195 @@ import { inject, Injectable, ANIMATION_MODULE_TYPE, ɵRuntimeError as _RuntimeEr
|
|
|
9
9
|
import { sequence } from './_private_export-chunk.mjs';
|
|
10
10
|
export { AUTO_STYLE, AnimationMetadataType, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE } from './_private_export-chunk.mjs';
|
|
11
11
|
|
|
12
|
-
/**
|
|
13
|
-
* An injectable service that produces an animation sequence programmatically within an
|
|
14
|
-
* Angular component or directive.
|
|
15
|
-
* Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.
|
|
16
|
-
*
|
|
17
|
-
* @usageNotes
|
|
18
|
-
*
|
|
19
|
-
* To use this service, add it to your component or directive as a dependency.
|
|
20
|
-
* The service is instantiated along with your component.
|
|
21
|
-
*
|
|
22
|
-
* Apps do not typically need to create their own animation players, but if you
|
|
23
|
-
* do need to, follow these steps:
|
|
24
|
-
*
|
|
25
|
-
* 1. Use the <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code> method
|
|
26
|
-
* to create a programmatic animation. The method returns an `AnimationFactory` instance.
|
|
27
|
-
*
|
|
28
|
-
* 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.
|
|
29
|
-
*
|
|
30
|
-
* 3. Use the player object to control the animation programmatically.
|
|
31
|
-
*
|
|
32
|
-
* For example:
|
|
33
|
-
*
|
|
34
|
-
* ```ts
|
|
35
|
-
* // import the service from BrowserAnimationsModule
|
|
36
|
-
* import {AnimationBuilder} from '@angular/animations';
|
|
37
|
-
* // require the service as a dependency
|
|
38
|
-
* class MyCmp {
|
|
39
|
-
* constructor(private _builder: AnimationBuilder) {}
|
|
40
|
-
*
|
|
41
|
-
* makeAnimation(element: any) {
|
|
42
|
-
* // first define a reusable animation
|
|
43
|
-
* const myAnimation = this._builder.build([
|
|
44
|
-
* style({ width: 0 }),
|
|
45
|
-
* animate(1000, style({ width: '100px' }))
|
|
46
|
-
* ]);
|
|
47
|
-
*
|
|
48
|
-
* // use the returned factory object to create a player
|
|
49
|
-
* const player = myAnimation.create(element);
|
|
50
|
-
*
|
|
51
|
-
* player.play();
|
|
52
|
-
* }
|
|
53
|
-
* }
|
|
54
|
-
* ```
|
|
55
|
-
*
|
|
56
|
-
* @publicApi
|
|
57
|
-
*
|
|
58
|
-
* @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23
|
|
59
|
-
*/
|
|
60
12
|
class AnimationBuilder {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
class AnimationFactory {
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
14
|
+
minVersion: "12.0.0",
|
|
15
|
+
version: "21.0.0-rc.1",
|
|
16
|
+
ngImport: i0,
|
|
17
|
+
type: AnimationBuilder,
|
|
18
|
+
deps: [],
|
|
19
|
+
target: i0.ɵɵFactoryTarget.Injectable
|
|
20
|
+
});
|
|
21
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
22
|
+
minVersion: "12.0.0",
|
|
23
|
+
version: "21.0.0-rc.1",
|
|
24
|
+
ngImport: i0,
|
|
25
|
+
type: AnimationBuilder,
|
|
26
|
+
providedIn: 'root',
|
|
27
|
+
useFactory: () => inject(BrowserAnimationBuilder)
|
|
28
|
+
});
|
|
78
29
|
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
31
|
+
minVersion: "12.0.0",
|
|
32
|
+
version: "21.0.0-rc.1",
|
|
33
|
+
ngImport: i0,
|
|
34
|
+
type: AnimationBuilder,
|
|
35
|
+
decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root',
|
|
39
|
+
useFactory: () => inject(BrowserAnimationBuilder)
|
|
40
|
+
}]
|
|
41
|
+
}]
|
|
42
|
+
});
|
|
43
|
+
class AnimationFactory {}
|
|
79
44
|
class BrowserAnimationBuilder extends AnimationBuilder {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
45
|
+
animationModuleType = inject(ANIMATION_MODULE_TYPE, {
|
|
46
|
+
optional: true
|
|
47
|
+
});
|
|
48
|
+
_nextAnimationId = 0;
|
|
49
|
+
_renderer;
|
|
50
|
+
constructor(rootRenderer, doc) {
|
|
51
|
+
super();
|
|
52
|
+
const typeData = {
|
|
53
|
+
id: '0',
|
|
54
|
+
encapsulation: ViewEncapsulation.None,
|
|
55
|
+
styles: [],
|
|
56
|
+
data: {
|
|
57
|
+
animation: []
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
this._renderer = rootRenderer.createRenderer(doc.body, typeData);
|
|
61
|
+
if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {
|
|
62
|
+
throw new _RuntimeError(3600, (typeof ngDevMode === 'undefined' || ngDevMode) && 'Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. ' + 'Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
build(animation) {
|
|
66
|
+
const id = this._nextAnimationId;
|
|
67
|
+
this._nextAnimationId++;
|
|
68
|
+
const entry = Array.isArray(animation) ? sequence(animation) : animation;
|
|
69
|
+
issueAnimationCommand(this._renderer, null, id, 'register', [entry]);
|
|
70
|
+
return new BrowserAnimationFactory(id, this._renderer);
|
|
71
|
+
}
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
73
|
+
minVersion: "12.0.0",
|
|
74
|
+
version: "21.0.0-rc.1",
|
|
75
|
+
ngImport: i0,
|
|
76
|
+
type: BrowserAnimationBuilder,
|
|
77
|
+
deps: [{
|
|
78
|
+
token: i0.RendererFactory2
|
|
79
|
+
}, {
|
|
80
|
+
token: DOCUMENT
|
|
81
|
+
}],
|
|
82
|
+
target: i0.ɵɵFactoryTarget.Injectable
|
|
83
|
+
});
|
|
84
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
85
|
+
minVersion: "12.0.0",
|
|
86
|
+
version: "21.0.0-rc.1",
|
|
87
|
+
ngImport: i0,
|
|
88
|
+
type: BrowserAnimationBuilder,
|
|
89
|
+
providedIn: 'root'
|
|
90
|
+
});
|
|
108
91
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
93
|
+
minVersion: "12.0.0",
|
|
94
|
+
version: "21.0.0-rc.1",
|
|
95
|
+
ngImport: i0,
|
|
96
|
+
type: BrowserAnimationBuilder,
|
|
97
|
+
decorators: [{
|
|
98
|
+
type: Injectable,
|
|
99
|
+
args: [{
|
|
100
|
+
providedIn: 'root'
|
|
101
|
+
}]
|
|
102
|
+
}],
|
|
103
|
+
ctorParameters: () => [{
|
|
104
|
+
type: i0.RendererFactory2
|
|
105
|
+
}, {
|
|
106
|
+
type: Document,
|
|
107
|
+
decorators: [{
|
|
108
|
+
type: Inject,
|
|
109
|
+
args: [DOCUMENT]
|
|
110
|
+
}]
|
|
111
|
+
}]
|
|
112
|
+
});
|
|
116
113
|
class BrowserAnimationFactory extends AnimationFactory {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
114
|
+
_id;
|
|
115
|
+
_renderer;
|
|
116
|
+
constructor(_id, _renderer) {
|
|
117
|
+
super();
|
|
118
|
+
this._id = _id;
|
|
119
|
+
this._renderer = _renderer;
|
|
120
|
+
}
|
|
121
|
+
create(element, options) {
|
|
122
|
+
return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);
|
|
123
|
+
}
|
|
127
124
|
}
|
|
128
125
|
class RendererAnimationPlayer {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
126
|
+
id;
|
|
127
|
+
element;
|
|
128
|
+
_renderer;
|
|
129
|
+
parentPlayer = null;
|
|
130
|
+
_started = false;
|
|
131
|
+
constructor(id, element, options, _renderer) {
|
|
132
|
+
this.id = id;
|
|
133
|
+
this.element = element;
|
|
134
|
+
this._renderer = _renderer;
|
|
135
|
+
this._command('create', options);
|
|
136
|
+
}
|
|
137
|
+
_listen(eventName, callback) {
|
|
138
|
+
return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);
|
|
139
|
+
}
|
|
140
|
+
_command(command, ...args) {
|
|
141
|
+
issueAnimationCommand(this._renderer, this.element, this.id, command, args);
|
|
142
|
+
}
|
|
143
|
+
onDone(fn) {
|
|
144
|
+
this._listen('done', fn);
|
|
145
|
+
}
|
|
146
|
+
onStart(fn) {
|
|
147
|
+
this._listen('start', fn);
|
|
148
|
+
}
|
|
149
|
+
onDestroy(fn) {
|
|
150
|
+
this._listen('destroy', fn);
|
|
151
|
+
}
|
|
152
|
+
init() {
|
|
153
|
+
this._command('init');
|
|
154
|
+
}
|
|
155
|
+
hasStarted() {
|
|
156
|
+
return this._started;
|
|
157
|
+
}
|
|
158
|
+
play() {
|
|
159
|
+
this._command('play');
|
|
160
|
+
this._started = true;
|
|
161
|
+
}
|
|
162
|
+
pause() {
|
|
163
|
+
this._command('pause');
|
|
164
|
+
}
|
|
165
|
+
restart() {
|
|
166
|
+
this._command('restart');
|
|
167
|
+
}
|
|
168
|
+
finish() {
|
|
169
|
+
this._command('finish');
|
|
170
|
+
}
|
|
171
|
+
destroy() {
|
|
172
|
+
this._command('destroy');
|
|
173
|
+
}
|
|
174
|
+
reset() {
|
|
175
|
+
this._command('reset');
|
|
176
|
+
this._started = false;
|
|
177
|
+
}
|
|
178
|
+
setPosition(p) {
|
|
179
|
+
this._command('setPosition', p);
|
|
180
|
+
}
|
|
181
|
+
getPosition() {
|
|
182
|
+
return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;
|
|
183
|
+
}
|
|
184
|
+
totalTime = 0;
|
|
188
185
|
}
|
|
189
186
|
function issueAnimationCommand(renderer, element, id, command, args) {
|
|
190
|
-
|
|
187
|
+
renderer.setProperty(element, `@@${id}:${command}`, args);
|
|
191
188
|
}
|
|
192
|
-
/**
|
|
193
|
-
* The following 2 methods cannot reference their correct types (AnimationRenderer &
|
|
194
|
-
* DynamicDelegationRenderer) since this would introduce a import cycle.
|
|
195
|
-
*/
|
|
196
189
|
function unwrapAnimationRenderer(renderer) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
return null;
|
|
190
|
+
const type = renderer.ɵtype;
|
|
191
|
+
if (type === 0) {
|
|
192
|
+
return renderer;
|
|
193
|
+
} else if (type === 1) {
|
|
194
|
+
return renderer.animationRenderer;
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
205
197
|
}
|
|
206
198
|
function isAnimationRenderer(renderer) {
|
|
207
|
-
|
|
208
|
-
|
|
199
|
+
const type = renderer.ɵtype;
|
|
200
|
+
return type === 0 || type === 1;
|
|
209
201
|
}
|
|
210
202
|
|
|
211
203
|
export { AnimationBuilder, AnimationFactory, sequence, BrowserAnimationBuilder as ɵBrowserAnimationBuilder };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animations.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/packages/animations/src/animation_builder.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {\n ANIMATION_MODULE_TYPE,\n DOCUMENT,\n Inject,\n inject,\n Injectable,\n Renderer2,\n RendererFactory2,\n RendererType2,\n ViewEncapsulation,\n ɵAnimationRendererType as AnimationRendererType,\n ɵRuntimeError as RuntimeError,\n} from '@angular/core';\n\nimport {AnimationMetadata, AnimationOptions, sequence} from './animation_metadata';\nimport {RuntimeErrorCode} from './errors';\nimport {AnimationPlayer} from './players/animation_player';\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code> method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\n@Injectable({providedIn: 'root', useFactory: () => inject(BrowserAnimationBuilder)})\nexport abstract class AnimationBuilder {\n /**\n * Builds a factory for producing a defined animation.\n * @param animation A reusable animation definition.\n * @returns A factory object that can create a player for the defined animation.\n * @see {@link animate}\n */\n abstract build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory;\n}\n\n/**\n * A factory object returned from the\n * <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code>\n * method.\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport abstract class AnimationFactory {\n /**\n * Creates an `AnimationPlayer` instance for the reusable animation defined by\n * the <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code>\n * method that created this factory and attaches the new player a DOM element.\n *\n * @param element The DOM element to which to attach the player.\n * @param options A set of options that can include a time delay and\n * additional developer-defined parameters.\n */\n abstract create(element: any, options?: AnimationOptions): AnimationPlayer;\n}\n\n@Injectable({providedIn: 'root'})\nexport class BrowserAnimationBuilder extends AnimationBuilder {\n private animationModuleType = inject(ANIMATION_MODULE_TYPE, {optional: true});\n private _nextAnimationId = 0;\n private _renderer: Renderer2;\n\n constructor(rootRenderer: RendererFactory2, @Inject(DOCUMENT) doc: Document) {\n super();\n const typeData: RendererType2 = {\n id: '0',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {animation: []},\n };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n\n if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {\n // We only support AnimationRenderer & DynamicDelegationRenderer for this AnimationBuilder\n\n throw new RuntimeError(\n RuntimeErrorCode.BROWSER_ANIMATION_BUILDER_INJECTED_WITHOUT_ANIMATIONS,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. ' +\n 'Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.',\n );\n }\n }\n\n override build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory {\n const id = this._nextAnimationId;\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n}\n\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(\n private _id: number,\n private _renderer: Renderer2,\n ) {\n super();\n }\n\n override create(element: any, options?: AnimationOptions): AnimationPlayer {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\n\nclass RendererAnimationPlayer implements AnimationPlayer {\n public parentPlayer: AnimationPlayer | null = null;\n private _started = false;\n\n constructor(\n public id: number,\n public element: any,\n options: AnimationOptions,\n private _renderer: Renderer2,\n ) {\n this._command('create', options);\n }\n\n private _listen(eventName: string, callback: (event: any) => any): () => void {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n\n private _command(command: string, ...args: any[]): void {\n issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n\n onDone(fn: () => void): void {\n this._listen('done', fn);\n }\n\n onStart(fn: () => void): void {\n this._listen('start', fn);\n }\n\n onDestroy(fn: () => void): void {\n this._listen('destroy', fn);\n }\n\n init(): void {\n this._command('init');\n }\n\n hasStarted(): boolean {\n return this._started;\n }\n\n play(): void {\n this._command('play');\n this._started = true;\n }\n\n pause(): void {\n this._command('pause');\n }\n\n restart(): void {\n this._command('restart');\n }\n\n finish(): void {\n this._command('finish');\n }\n\n destroy(): void {\n this._command('destroy');\n }\n\n reset(): void {\n this._command('reset');\n this._started = false;\n }\n\n setPosition(p: number): void {\n this._command('setPosition', p);\n }\n\n getPosition(): number {\n return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;\n }\n\n public totalTime = 0;\n}\n\nfunction issueAnimationCommand(\n renderer: Renderer2,\n element: any,\n id: number,\n command: string,\n args: any[],\n): void {\n renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n\n/**\n * The following 2 methods cannot reference their correct types (AnimationRenderer &\n * DynamicDelegationRenderer) since this would introduce a import cycle.\n */\n\nfunction unwrapAnimationRenderer(\n renderer: Renderer2,\n): {engine: {players: AnimationPlayer[]}} | null {\n const type = (renderer as unknown as {ɵtype: AnimationRendererType}).ɵtype;\n if (type === AnimationRendererType.Regular) {\n return renderer as any;\n } else if (type === AnimationRendererType.Delegated) {\n return (renderer as any).animationRenderer;\n }\n\n return null;\n}\n\nfunction isAnimationRenderer(renderer: Renderer2): boolean {\n const type = (renderer as unknown as {ɵtype: AnimationRendererType}).ɵtype;\n return type === AnimationRendererType.Regular || type === AnimationRendererType.Delegated;\n}\n"],"names":["RuntimeError"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"animations.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/animations/src/animation_builder.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {\n ANIMATION_MODULE_TYPE,\n DOCUMENT,\n Inject,\n inject,\n Injectable,\n Renderer2,\n RendererFactory2,\n RendererType2,\n ViewEncapsulation,\n ɵAnimationRendererType as AnimationRendererType,\n ɵRuntimeError as RuntimeError,\n} from '@angular/core';\n\nimport {AnimationMetadata, AnimationOptions, sequence} from './animation_metadata';\nimport {RuntimeErrorCode} from './errors';\nimport {AnimationPlayer} from './players/animation_player';\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code> method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\n@Injectable({providedIn: 'root', useFactory: () => inject(BrowserAnimationBuilder)})\nexport abstract class AnimationBuilder {\n /**\n * Builds a factory for producing a defined animation.\n * @param animation A reusable animation definition.\n * @returns A factory object that can create a player for the defined animation.\n * @see {@link animate}\n */\n abstract build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory;\n}\n\n/**\n * A factory object returned from the\n * <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code>\n * method.\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport abstract class AnimationFactory {\n /**\n * Creates an `AnimationPlayer` instance for the reusable animation defined by\n * the <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code>\n * method that created this factory and attaches the new player a DOM element.\n *\n * @param element The DOM element to which to attach the player.\n * @param options A set of options that can include a time delay and\n * additional developer-defined parameters.\n */\n abstract create(element: any, options?: AnimationOptions): AnimationPlayer;\n}\n\n@Injectable({providedIn: 'root'})\nexport class BrowserAnimationBuilder extends AnimationBuilder {\n private animationModuleType = inject(ANIMATION_MODULE_TYPE, {optional: true});\n private _nextAnimationId = 0;\n private _renderer: Renderer2;\n\n constructor(rootRenderer: RendererFactory2, @Inject(DOCUMENT) doc: Document) {\n super();\n const typeData: RendererType2 = {\n id: '0',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {animation: []},\n };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n\n if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {\n // We only support AnimationRenderer & DynamicDelegationRenderer for this AnimationBuilder\n\n throw new RuntimeError(\n RuntimeErrorCode.BROWSER_ANIMATION_BUILDER_INJECTED_WITHOUT_ANIMATIONS,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. ' +\n 'Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.',\n );\n }\n }\n\n override build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory {\n const id = this._nextAnimationId;\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n}\n\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(\n private _id: number,\n private _renderer: Renderer2,\n ) {\n super();\n }\n\n override create(element: any, options?: AnimationOptions): AnimationPlayer {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\n\nclass RendererAnimationPlayer implements AnimationPlayer {\n public parentPlayer: AnimationPlayer | null = null;\n private _started = false;\n\n constructor(\n public id: number,\n public element: any,\n options: AnimationOptions,\n private _renderer: Renderer2,\n ) {\n this._command('create', options);\n }\n\n private _listen(eventName: string, callback: (event: any) => any): () => void {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n\n private _command(command: string, ...args: any[]): void {\n issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n\n onDone(fn: () => void): void {\n this._listen('done', fn);\n }\n\n onStart(fn: () => void): void {\n this._listen('start', fn);\n }\n\n onDestroy(fn: () => void): void {\n this._listen('destroy', fn);\n }\n\n init(): void {\n this._command('init');\n }\n\n hasStarted(): boolean {\n return this._started;\n }\n\n play(): void {\n this._command('play');\n this._started = true;\n }\n\n pause(): void {\n this._command('pause');\n }\n\n restart(): void {\n this._command('restart');\n }\n\n finish(): void {\n this._command('finish');\n }\n\n destroy(): void {\n this._command('destroy');\n }\n\n reset(): void {\n this._command('reset');\n this._started = false;\n }\n\n setPosition(p: number): void {\n this._command('setPosition', p);\n }\n\n getPosition(): number {\n return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;\n }\n\n public totalTime = 0;\n}\n\nfunction issueAnimationCommand(\n renderer: Renderer2,\n element: any,\n id: number,\n command: string,\n args: any[],\n): void {\n renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n\n/**\n * The following 2 methods cannot reference their correct types (AnimationRenderer &\n * DynamicDelegationRenderer) since this would introduce a import cycle.\n */\n\nfunction unwrapAnimationRenderer(\n renderer: Renderer2,\n): {engine: {players: AnimationPlayer[]}} | null {\n const type = (renderer as unknown as {ɵtype: AnimationRendererType}).ɵtype;\n if (type === AnimationRendererType.Regular) {\n return renderer as any;\n } else if (type === AnimationRendererType.Delegated) {\n return (renderer as any).animationRenderer;\n }\n\n return null;\n}\n\nfunction isAnimationRenderer(renderer: Renderer2): boolean {\n const type = (renderer as unknown as {ɵtype: AnimationRendererType}).ɵtype;\n return type === AnimationRendererType.Regular || type === AnimationRendererType.Delegated;\n}\n"],"names":["AnimationBuilder","deps","target","i0","ɵɵFactoryTarget","Injectable","providedIn","useFactory","inject","BrowserAnimationBuilder","decorators","args","AnimationFactory","animationModuleType","ANIMATION_MODULE_TYPE","optional","_nextAnimationId","_renderer","constructor","rootRenderer","doc","typeData","id","encapsulation","ViewEncapsulation","None","styles","data","animation","createRenderer","body","isAnimationRenderer","RuntimeError","ngDevMode","build","entry","Array","isArray","sequence","issueAnimationCommand","BrowserAnimationFactory","ɵfac","ɵɵngDeclareFactory","minVersion","version","ngImport","type","DOCUMENT","ɵprov","ɵɵngDeclareInjectable","Inject","_id","create","element","options","RendererAnimationPlayer","parentPlayer","_started","_command","_listen","eventName","callback","listen","command","onDone","fn","onStart","onDestroy","init","hasStarted","play","pause","restart","finish","destroy","reset","setPosition","p","getPosition","unwrapAnimationRenderer","engine","players","totalTime","renderer","setProperty","ɵtype","animationRenderer"],"mappings":";;;;;;;;;;;MA0EsBA,gBAAgB,CAAA;;;;;UAAhBA,gBAAgB;AAAAC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAAhBL,gBAAgB;AAAAM,IAAAA,UAAA,EADb,MAAM;AAAcC,IAAAA,UAAA,EAAAA,MAAMC,MAAM,CAACC,uBAAuB;AAAC,GAAA,CAAA;;;;;;QAC5DT,gBAAgB;AAAAU,EAAAA,UAAA,EAAA,CAAA;UADrCL,UAAU;AAACM,IAAAA,IAAA,EAAA,CAAA;AAACL,MAAAA,UAAU,EAAE,MAAM;AAAEC,MAAAA,UAAU,EAAEA,MAAMC,MAAM,CAACC,uBAAuB;KAAE;;;MAoB7DG,gBAAgB,CAAA;AAchC,MAAOH,uBAAwB,SAAQT,gBAAgB,CAAA;AACnDa,EAAAA,mBAAmB,GAAGL,MAAM,CAACM,qBAAqB,EAAE;AAACC,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;AACrEC,EAAAA,gBAAgB,GAAG,CAAC;EACpBC,SAAS;AAEjBC,EAAAA,WAAYA,CAAAC,YAA8B,EAAoBC,GAAa,EAAA;AACzE,IAAA,KAAK,EAAE;AACP,IAAA,MAAMC,QAAQ,GAAkB;AAC9BC,MAAAA,EAAE,EAAE,GAAG;MACPC,aAAa,EAAEC,iBAAiB,CAACC,IAAI;AACrCC,MAAAA,MAAM,EAAE,EAAE;AACVC,MAAAA,IAAI,EAAE;AAACC,QAAAA,SAAS,EAAE;AAAG;KACtB;AACD,IAAA,IAAI,CAACX,SAAS,GAAGE,YAAY,CAACU,cAAc,CAACT,GAAG,CAACU,IAAI,EAAET,QAAQ,CAAC;AAEhE,IAAA,IAAI,IAAI,CAACR,mBAAmB,KAAK,IAAI,IAAI,CAACkB,mBAAmB,CAAC,IAAI,CAACd,SAAS,CAAC,EAAE;AAG7E,MAAA,MAAM,IAAIe,aAAY,CAAA,IAAA,EAEpB,CAAC,OAAOC,SAAS,KAAK,WAAW,IAAIA,SAAS,KAC5C,oGAAoG,GAClG,0IAA0I,CAC/I;AACH;AACF;EAESC,KAAKA,CAACN,SAAkD,EAAA;AAC/D,IAAA,MAAMN,EAAE,GAAG,IAAI,CAACN,gBAAgB;IAChC,IAAI,CAACA,gBAAgB,EAAE;AACvB,IAAA,MAAMmB,KAAK,GAAGC,KAAK,CAACC,OAAO,CAACT,SAAS,CAAC,GAAGU,QAAQ,CAACV,SAAS,CAAC,GAAGA,SAAS;AACxEW,IAAAA,qBAAqB,CAAC,IAAI,CAACtB,SAAS,EAAE,IAAI,EAAEK,EAAE,EAAE,UAAU,EAAE,CAACa,KAAK,CAAC,CAAC;IACpE,OAAO,IAAIK,uBAAuB,CAAClB,EAAE,EAAE,IAAI,CAACL,SAAS,CAAC;AACxD;AAjCW,EAAA,OAAAwB,IAAA,GAAAtC,EAAA,CAAAuC,kBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,mBAAA;AAAAC,IAAAA,QAAA,EAAA1C,EAAA;AAAA2C,IAAAA,IAAA,EAAArC,uBAAuB;;;;aAKkBsC;AAAQ,KAAA,CAAA;AAAA7C,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AALjD,EAAA,OAAA2C,KAAA,GAAA7C,EAAA,CAAA8C,qBAAA,CAAA;AAAAN,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,mBAAA;AAAAC,IAAAA,QAAA,EAAA1C,EAAA;AAAA2C,IAAAA,IAAA,EAAArC,uBAAuB;gBADX;AAAM,GAAA,CAAA;;;;;;QAClBA,uBAAuB;AAAAC,EAAAA,UAAA,EAAA,CAAA;UADnCL,UAAU;WAAC;AAACC,MAAAA,UAAU,EAAE;KAAO;;;;;;;YAMe4C,MAAM;aAACH,QAAQ;;;;AA+B9D,MAAMP,uBAAwB,SAAQ5B,gBAAgB,CAAA;EAE1CuC,GAAA;EACAlC,SAAA;AAFVC,EAAAA,WACUA,CAAAiC,GAAW,EACXlC,SAAoB,EAAA;AAE5B,IAAA,KAAK,EAAE;IAHC,IAAG,CAAAkC,GAAA,GAAHA,GAAG;IACH,IAAS,CAAAlC,SAAA,GAATA,SAAS;AAGnB;AAESmC,EAAAA,MAAMA,CAACC,OAAY,EAAEC,OAA0B,EAAA;AACtD,IAAA,OAAO,IAAIC,uBAAuB,CAAC,IAAI,CAACJ,GAAG,EAAEE,OAAO,EAAEC,OAAO,IAAI,EAAE,EAAE,IAAI,CAACrC,SAAS,CAAC;AACtF;AACD;AAED,MAAMsC,uBAAuB,CAAA;EAKlBjC,EAAA;EACA+B,OAAA;EAECpC,SAAA;AAPHuC,EAAAA,YAAY,GAA2B,IAAI;AAC1CC,EAAAA,QAAQ,GAAG,KAAK;EAExBvC,WAAAA,CACSI,EAAU,EACV+B,OAAY,EACnBC,OAAyB,EACjBrC,SAAoB,EAAA;IAHrB,IAAE,CAAAK,EAAA,GAAFA,EAAE;IACF,IAAO,CAAA+B,OAAA,GAAPA,OAAO;IAEN,IAAS,CAAApC,SAAA,GAATA,SAAS;AAEjB,IAAA,IAAI,CAACyC,QAAQ,CAAC,QAAQ,EAAEJ,OAAO,CAAC;AAClC;AAEQK,EAAAA,OAAOA,CAACC,SAAiB,EAAEC,QAA6B,EAAA;AAC9D,IAAA,OAAO,IAAI,CAAC5C,SAAS,CAAC6C,MAAM,CAAC,IAAI,CAACT,OAAO,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC/B,EAAE,CAAA,CAAA,EAAIsC,SAAS,CAAE,CAAA,EAAEC,QAAQ,CAAC;AACnF;AAEQH,EAAAA,QAAQA,CAACK,OAAe,EAAE,GAAGpD,IAAW,EAAA;AAC9C4B,IAAAA,qBAAqB,CAAC,IAAI,CAACtB,SAAS,EAAE,IAAI,CAACoC,OAAO,EAAE,IAAI,CAAC/B,EAAE,EAAEyC,OAAO,EAAEpD,IAAI,CAAC;AAC7E;EAEAqD,MAAMA,CAACC,EAAc,EAAA;AACnB,IAAA,IAAI,CAACN,OAAO,CAAC,MAAM,EAAEM,EAAE,CAAC;AAC1B;EAEAC,OAAOA,CAACD,EAAc,EAAA;AACpB,IAAA,IAAI,CAACN,OAAO,CAAC,OAAO,EAAEM,EAAE,CAAC;AAC3B;EAEAE,SAASA,CAACF,EAAc,EAAA;AACtB,IAAA,IAAI,CAACN,OAAO,CAAC,SAAS,EAAEM,EAAE,CAAC;AAC7B;AAEAG,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACV,QAAQ,CAAC,MAAM,CAAC;AACvB;AAEAW,EAAAA,UAAUA,GAAA;IACR,OAAO,IAAI,CAACZ,QAAQ;AACtB;AAEAa,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACZ,QAAQ,CAAC,MAAM,CAAC;IACrB,IAAI,CAACD,QAAQ,GAAG,IAAI;AACtB;AAEAc,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACb,QAAQ,CAAC,OAAO,CAAC;AACxB;AAEAc,EAAAA,OAAOA,GAAA;AACL,IAAA,IAAI,CAACd,QAAQ,CAAC,SAAS,CAAC;AAC1B;AAEAe,EAAAA,MAAMA,GAAA;AACJ,IAAA,IAAI,CAACf,QAAQ,CAAC,QAAQ,CAAC;AACzB;AAEAgB,EAAAA,OAAOA,GAAA;AACL,IAAA,IAAI,CAAChB,QAAQ,CAAC,SAAS,CAAC;AAC1B;AAEAiB,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACjB,QAAQ,CAAC,OAAO,CAAC;IACtB,IAAI,CAACD,QAAQ,GAAG,KAAK;AACvB;EAEAmB,WAAWA,CAACC,CAAS,EAAA;AACnB,IAAA,IAAI,CAACnB,QAAQ,CAAC,aAAa,EAAEmB,CAAC,CAAC;AACjC;AAEAC,EAAAA,WAAWA,GAAA;IACT,OAAOC,uBAAuB,CAAC,IAAI,CAAC9D,SAAS,CAAC,EAAE+D,MAAM,EAAEC,OAAO,CAAC,IAAI,CAAC3D,EAAE,CAAC,EAAEwD,WAAW,EAAE,IAAI,CAAC;AAC9F;AAEOI,EAAAA,SAAS,GAAG,CAAC;AACrB;AAED,SAAS3C,qBAAqBA,CAC5B4C,QAAmB,EACnB9B,OAAY,EACZ/B,EAAU,EACVyC,OAAe,EACfpD,IAAW,EAAA;AAEXwE,EAAAA,QAAQ,CAACC,WAAW,CAAC/B,OAAO,EAAE,CAAA,EAAA,EAAK/B,EAAE,CAAA,CAAA,EAAIyC,OAAO,CAAA,CAAE,EAAEpD,IAAI,CAAC;AAC3D;AAOA,SAASoE,uBAAuBA,CAC9BI,QAAmB,EAAA;AAEnB,EAAA,MAAMrC,IAAI,GAAIqC,QAAsD,CAACE,KAAK;EAC1E,IAAIvC,IAAI,KAAkC,CAAA,EAAE;AAC1C,IAAA,OAAOqC,QAAe;AACxB,GAAA,MAAO,IAAIrC,IAAI,KAAoC,CAAA,EAAE;IACnD,OAAQqC,QAAgB,CAACG,iBAAiB;AAC5C;AAEA,EAAA,OAAO,IAAI;AACb;AAEA,SAASvD,mBAAmBA,CAACoD,QAAmB,EAAA;AAC9C,EAAA,MAAMrC,IAAI,GAAIqC,QAAsD,CAACE,KAAK;AAC1E,EAAA,OAAOvC,IAAI,KAAA,CAAA,IAAsCA,IAAI;AACvD;;;;"}
|