ngx-easy-view-transitions 2.0.0 → 3.0.0

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/README.md CHANGED
@@ -1,172 +1,171 @@
1
- # ngx-easy-view-transitions
2
-
3
- [![npm version](https://img.shields.io/npm/v/ngx-easy-view-transitions)](https://www.npmjs.org/package/ngx-easy-view-transitions/)
4
- [![npm downloads](https://img.shields.io/npm/dt/ngx-easy-view-transitions)](https://www.npmjs.org/package/ngx-easy-view-transitions/)
5
- ![build](https://github.com/DerStimmler/ngx-easy-view-transitions/actions/workflows/build.yml/badge.svg)
6
- [![GitHub license](https://img.shields.io/github/license/DerStimmler/ngx-easy-view-transitions)](https://github.com/DerStimmler/ngx-easy-view-transitions/blob/main/LICENSE.md)
7
-
8
- Angular library for easier use of the View Transitions API
9
-
10
- ## Demo
11
-
12
- https://derstimmler.github.io/ngx-easy-view-transitions/
13
-
14
- ## Installation
15
-
16
- Available on [npm](https://www.npmjs.org/package/ngx-easy-view-transitions/).
17
-
18
- ```bash
19
- npm install ngx-easy-view-transitions
20
- ```
21
-
22
- You have to enable Angulars built-in view transitions in the Router using the [`withViewTransitions()`](https://angular.io/api/router/withViewTransitions#usage-notes) function.
23
-
24
- ```typescript
25
- bootstrapApplication(AppComponent,
26
- {
27
- providers: [
28
- provideRouter(appRoutes, withViewTransitions())
29
- ]
30
- }
31
- );
32
- ```
33
-
34
- ## Usage
35
-
36
- ### Morph elements
37
-
38
- To morph an element during navigation from the old to the new state use the `transitionName` directive and provide the same name on both pages.
39
-
40
- ```typescript
41
- import { TransitionNameDirective } from 'ngx-easy-view-transitions';
42
- ```
43
-
44
- `users.component.html`
45
-
46
- ```angular2html
47
- <img transitionName="profile-picture" src="...">
48
- ```
49
-
50
- `user.component.html`
51
-
52
- ```angular2html
53
- <img transitionName="profile-picture" src="...">
54
- ```
55
-
56
- Note that each `transitionName` must be unique for a page.
57
-
58
- ### Customize animations
59
-
60
- Instead of morphing an element, you can provide custom animations for entering and leaving the view using the `inAnimation` and `outAnimation` inputs.
61
- There are two ways to provide a custom animations: As CSS `@keyframes` rule or [`Keyframe`](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats) array.
62
-
63
- #### Using CSS @keyframes
64
-
65
- You can simply use a CSS [`@keyframes`](https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes) rule from your CSS:
66
-
67
- ```css
68
- @keyframes fadeIn {
69
- from {
70
- opacity: 0;
71
- }
72
-
73
- to {
74
- opacity: 1;
75
- }
76
- }
77
- ```
78
-
79
- ```typescript
80
- inAnimation = { keyframeName: 'fadeIn', duration: 600 };
81
- outAnimation = { keyframeName: 'fadeIn', duration: 600, reverse: true };
82
- ```
83
-
84
- ```angular2html
85
- <img transitionName="profile-picture" [inAnimation]="inAnimation" [outAnimation]="outAnimation" src="...">
86
- ```
87
-
88
- #### Using Keyframe array
89
-
90
- When you want to use typed objects instead of CSS you can provide a [`Keyframe`](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats) array:
91
-
92
- ```typescript
93
- const fadeIn: Keyframe[] = [
94
- {
95
- opacity: 0,
96
- offset: 0,
97
- },
98
- {
99
- opacity: 1,
100
- offset: 1,
101
- },
102
- ];
103
- ```
104
-
105
- ```typescript
106
- inAnimation = { keyframes: fadeIn, duration: 600 };
107
- outAnimation = { keyframes: fadeIn, duration: 600, reverse: true };
108
- ```
109
-
110
- ```angular2html
111
- <img transitionName="profile-picture" [inAnimation]="inAnimation" [outAnimation]="outAnimation" src="...">
112
- ```
113
-
114
- ### Built-In animations
115
-
116
- To start faster there are some built-in animations available under `DefaultTransitions.*`.
117
-
118
- ```typescript
119
- import { DefaultTransitions } from 'ngx-easy-view-transitions';
120
-
121
- inAnimation = { keyframes: DefaultTransitions.fadeInUp, duration: 600 };
122
- ```
123
-
124
- You can see them in the [demo](https://derstimmler.github.io/ngx-easy-view-transitions/animations) and [here](https://github.com/DerStimmler/ngx-easy-view-transitions/blob/main/ngx-easy-view-transitions/src/lib/default-transitions.ts).
125
-
126
- ### Exclude element from view transitions
127
-
128
- When you want to exclude an element form view transitions you can add the `noTransition` directive.
129
-
130
- ```typescript
131
- import { NoTransitionDirective } from 'ngx-easy-view-transitions';
132
- ```
133
-
134
- ```angular2html
135
- <img noTransition src="...">
136
- ```
137
-
138
- ### Configure default transition
139
-
140
- By default View Transitions API will perform a cross-fade animation on all elements.
141
- But you can also provide your own in and out animations by adding the `provideDefaultViewTransition()` provider function.
142
-
143
- In the following example the default animation gets disabled:
144
-
145
- ```typescript
146
- bootstrapApplication(AppComponent,
147
- {
148
- providers: [
149
- provideRouter(appRoutes, withViewTransitions()),
150
- provideDefaultViewTransition(
151
- { keyframes: DefaultTransitions.none, duration: 0 },
152
- { keyframes: DefaultTransitions.none, duration: 0 }
153
- )
154
- ]
155
- }
156
- );
157
- ```
158
-
159
- ## Development
160
-
161
- Install dependencies with: `pnpm install`
162
-
163
- Run `pnpm demo` to run the demo app on a local development server.
164
- You can access it on http://localhost:4200.
165
-
166
- Run `pnpm test` to test all projects.
167
-
168
- Run `pnpm lint` to lint all projects.
169
-
170
- Run `pnpm build` to build all projects. You can find the output under `/dist`.
171
-
172
- Since it's a nx workspace you can use the common nx commands for everything else.
1
+ # ngx-easy-view-transitions
2
+
3
+ [![npm version](https://img.shields.io/npm/v/ngx-easy-view-transitions)](https://www.npmjs.org/package/ngx-easy-view-transitions/)
4
+ [![npm downloads](https://img.shields.io/npm/dt/ngx-easy-view-transitions)](https://www.npmjs.org/package/ngx-easy-view-transitions/)
5
+ [![GitHub license](https://img.shields.io/github/license/DerStimmler/ngx-easy-view-transitions)](https://github.com/DerStimmler/ngx-easy-view-transitions/blob/main/LICENSE.md)
6
+
7
+ Angular library for easier use of the View Transitions API
8
+
9
+ ## Demo
10
+
11
+ https://derstimmler.github.io/ngx-easy-view-transitions/
12
+
13
+ ## Installation
14
+
15
+ Available on [npm](https://www.npmjs.org/package/ngx-easy-view-transitions/).
16
+
17
+ ```bash
18
+ npm install ngx-easy-view-transitions
19
+ ```
20
+
21
+ You have to enable Angulars built-in view transitions in the Router using the [`withViewTransitions()`](https://angular.io/api/router/withViewTransitions#usage-notes) function.
22
+
23
+ ```typescript
24
+ bootstrapApplication(AppComponent,
25
+ {
26
+ providers: [
27
+ provideRouter(appRoutes, withViewTransitions())
28
+ ]
29
+ }
30
+ );
31
+ ```
32
+
33
+ ## Usage
34
+
35
+ ### Morph elements
36
+
37
+ To morph an element during navigation from the old to the new state use the `transitionName` directive and provide the same name on both pages.
38
+
39
+ ```typescript
40
+ import { TransitionNameDirective } from 'ngx-easy-view-transitions';
41
+ ```
42
+
43
+ `users.component.html`
44
+
45
+ ```angular2html
46
+ <img transitionName="profile-picture" src="...">
47
+ ```
48
+
49
+ `user.component.html`
50
+
51
+ ```angular2html
52
+ <img transitionName="profile-picture" src="...">
53
+ ```
54
+
55
+ Note that each `transitionName` must be unique for a page.
56
+
57
+ ### Customize animations
58
+
59
+ Instead of morphing an element, you can provide custom animations for entering and leaving the view using the `inAnimation` and `outAnimation` inputs.
60
+ There are two ways to provide a custom animations: As CSS `@keyframes` rule or [`Keyframe`](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats) array.
61
+
62
+ #### Using CSS @keyframes
63
+
64
+ You can simply use a CSS [`@keyframes`](https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes) rule from your CSS:
65
+
66
+ ```css
67
+ @keyframes fadeIn {
68
+ from {
69
+ opacity: 0;
70
+ }
71
+
72
+ to {
73
+ opacity: 1;
74
+ }
75
+ }
76
+ ```
77
+
78
+ ```typescript
79
+ inAnimation = { keyframeName: 'fadeIn', duration: 600 };
80
+ outAnimation = { keyframeName: 'fadeIn', duration: 600, reverse: true };
81
+ ```
82
+
83
+ ```angular2html
84
+ <img transitionName="profile-picture" [inAnimation]="inAnimation" [outAnimation]="outAnimation" src="...">
85
+ ```
86
+
87
+ #### Using Keyframe array
88
+
89
+ When you want to use typed objects instead of CSS you can provide a [`Keyframe`](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats) array:
90
+
91
+ ```typescript
92
+ const fadeIn: Keyframe[] = [
93
+ {
94
+ opacity: 0,
95
+ offset: 0,
96
+ },
97
+ {
98
+ opacity: 1,
99
+ offset: 1,
100
+ },
101
+ ];
102
+ ```
103
+
104
+ ```typescript
105
+ inAnimation = { keyframes: fadeIn, duration: 600 };
106
+ outAnimation = { keyframes: fadeIn, duration: 600, reverse: true };
107
+ ```
108
+
109
+ ```angular2html
110
+ <img transitionName="profile-picture" [inAnimation]="inAnimation" [outAnimation]="outAnimation" src="...">
111
+ ```
112
+
113
+ ### Built-In animations
114
+
115
+ To start faster there are some built-in animations available under `DefaultTransitions.*`.
116
+
117
+ ```typescript
118
+ import { DefaultTransitions } from 'ngx-easy-view-transitions';
119
+
120
+ inAnimation = { keyframes: DefaultTransitions.fadeInUp, duration: 600 };
121
+ ```
122
+
123
+ You can see them in the [demo](https://derstimmler.github.io/ngx-easy-view-transitions/animations) and [here](https://github.com/DerStimmler/ngx-easy-view-transitions/blob/main/ngx-easy-view-transitions/src/lib/default-transitions.ts).
124
+
125
+ ### Exclude element from view transitions
126
+
127
+ When you want to exclude an element form view transitions you can add the `noTransition` directive.
128
+
129
+ ```typescript
130
+ import { NoTransitionDirective } from 'ngx-easy-view-transitions';
131
+ ```
132
+
133
+ ```angular2html
134
+ <img noTransition src="...">
135
+ ```
136
+
137
+ ### Configure default transition
138
+
139
+ By default View Transitions API will perform a cross-fade animation on all elements.
140
+ But you can also provide your own in and out animations by adding the `provideDefaultViewTransition()` provider function.
141
+
142
+ In the following example the default animation gets disabled:
143
+
144
+ ```typescript
145
+ bootstrapApplication(AppComponent,
146
+ {
147
+ providers: [
148
+ provideRouter(appRoutes, withViewTransitions()),
149
+ provideDefaultViewTransition(
150
+ { keyframes: DefaultTransitions.none, duration: 0 },
151
+ { keyframes: DefaultTransitions.none, duration: 0 }
152
+ )
153
+ ]
154
+ }
155
+ );
156
+ ```
157
+
158
+ ## Development
159
+
160
+ Install dependencies with: `pnpm install`
161
+
162
+ Run `pnpm demo` to run the demo app on a local development server.
163
+ You can access it on http://localhost:4200.
164
+
165
+ Run `pnpm test` to test all projects.
166
+
167
+ Run `pnpm lint` to lint all projects.
168
+
169
+ Run `pnpm build` to build all projects. You can find the output under `/dist`.
170
+
171
+ Since it's a nx workspace you can use the common nx commands for everything else.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, RendererFactory2, Directive, Injectable, input, effect, APP_INITIALIZER } from '@angular/core';
2
+ import { inject, ElementRef, RendererFactory2, Directive, Injectable, input, effect, provideAppInitializer } from '@angular/core';
3
3
  import { DOCUMENT } from '@angular/common';
4
4
 
5
5
  const none = [];
@@ -171,23 +171,22 @@ class NoTransitionDirective {
171
171
  const transitionName = 'ngx-easy-view-transitions-disabled';
172
172
  this._el.nativeElement.style.viewTransitionName = transitionName;
173
173
  const elementId = 'view-transition-none';
174
- const styleElement = this._document.getElementById(elementId) ||
175
- this._document.createElement('style');
176
- styleElement.innerHTML = `
177
- ::view-transition-group(${transitionName}),
178
- ::view-transition-old(${transitionName}),
179
- ::view-transition-new(${transitionName}) {
180
- animation-duration: 0s !important;
181
- }
174
+ const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');
175
+ styleElement.innerHTML = `
176
+ ::view-transition-group(${transitionName}),
177
+ ::view-transition-old(${transitionName}),
178
+ ::view-transition-new(${transitionName}) {
179
+ animation-duration: 0s !important;
180
+ }
182
181
  `;
183
182
  styleElement.id = elementId;
184
183
  if (!this._document.getElementById(elementId))
185
184
  this._renderer.appendChild(this._document.head, styleElement);
186
185
  }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NoTransitionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
188
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: NoTransitionDirective, isStandalone: true, selector: "[noTransition]", ngImport: i0 }); }
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoTransitionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
187
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NoTransitionDirective, isStandalone: true, selector: "[noTransition]", ngImport: i0 }); }
189
188
  }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NoTransitionDirective, decorators: [{
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoTransitionDirective, decorators: [{
191
190
  type: Directive,
192
191
  args: [{
193
192
  standalone: true,
@@ -218,8 +217,7 @@ class KeyframesService {
218
217
  const hashedKeyframes = hashCode(keyframesAsString);
219
218
  const keyframesName = `_${hashedKeyframes}`;
220
219
  const elementId = `keyframes-${keyframesName}`;
221
- const styleElement = this._document.getElementById(elementId) ||
222
- this._document.createElement('style');
220
+ const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');
223
221
  styleElement.innerHTML = this.generateCssKeyframeRule(keyframesName, keyframes);
224
222
  styleElement.id = elementId;
225
223
  if (!this._document.getElementById(elementId))
@@ -230,13 +228,7 @@ class KeyframesService {
230
228
  const cssKeyframes = [];
231
229
  keyframes.forEach((keyframe, index) => {
232
230
  const offset = keyframe.offset ? `${keyframe.offset * 100}%` : '';
233
- const keyframeDeclaration = `${index === 0
234
- ? 'from'
235
- : offset
236
- ? offset
237
- : index === keyframes.length - 1
238
- ? 'to'
239
- : ''}`;
231
+ const keyframeDeclaration = `${index === 0 ? 'from' : offset ? offset : index === keyframes.length - 1 ? 'to' : ''}`;
240
232
  const cssProperties = Object.entries(keyframe)
241
233
  .filter(([property]) => property !== 'offset')
242
234
  .map(([property, value]) => `${property}: ${value};`)
@@ -245,10 +237,10 @@ class KeyframesService {
245
237
  });
246
238
  return `@keyframes ${animationName} { ${cssKeyframes.join(' ')} }`;
247
239
  }
248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: KeyframesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
249
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: KeyframesService, providedIn: 'root' }); }
240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: KeyframesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
241
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: KeyframesService, providedIn: 'root' }); }
250
242
  }
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: KeyframesService, decorators: [{
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: KeyframesService, decorators: [{
252
244
  type: Injectable,
253
245
  args: [{ providedIn: 'root' }]
254
246
  }] });
@@ -262,12 +254,11 @@ class ViewTransitionsService {
262
254
  }
263
255
  setOutAnimation(outAnimation, transitionName) {
264
256
  const elementId = `view-transition-out-${transitionName}`;
265
- const styleElement = this._document.getElementById(elementId) ||
266
- this._document.createElement('style');
267
- styleElement.innerHTML = `
268
- ::view-transition-old(${transitionName}){
269
- animation: ${outAnimation};
270
- }
257
+ const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');
258
+ styleElement.innerHTML = `
259
+ ::view-transition-old(${transitionName}){
260
+ animation: ${outAnimation};
261
+ }
271
262
  `;
272
263
  styleElement.id = elementId;
273
264
  if (!this._document.getElementById(elementId))
@@ -275,21 +266,20 @@ class ViewTransitionsService {
275
266
  }
276
267
  setInAnimation(inAnimation, transitionName) {
277
268
  const elementId = `view-transition-in-${transitionName}`;
278
- const styleElement = this._document.getElementById(elementId) ||
279
- this._document.createElement('style');
280
- styleElement.innerHTML = `
281
- ::view-transition-new(${transitionName}){
282
- animation: ${inAnimation};
283
- }
269
+ const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');
270
+ styleElement.innerHTML = `
271
+ ::view-transition-new(${transitionName}){
272
+ animation: ${inAnimation};
273
+ }
284
274
  `;
285
275
  styleElement.id = elementId;
286
276
  if (!this._document.getElementById(elementId))
287
277
  this._renderer.appendChild(this._document.head, styleElement);
288
278
  }
289
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ViewTransitionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
290
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ViewTransitionsService, providedIn: 'root' }); }
279
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ViewTransitionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
280
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ViewTransitionsService, providedIn: 'root' }); }
291
281
  }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ViewTransitionsService, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ViewTransitionsService, decorators: [{
293
283
  type: Injectable,
294
284
  args: [{ providedIn: 'root' }]
295
285
  }] });
@@ -349,10 +339,10 @@ class TransitionNameDirective {
349
339
  }
350
340
  });
351
341
  }
352
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TransitionNameDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
353
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: TransitionNameDirective, isStandalone: true, selector: "[transitionName]", inputs: { transitionName: { classPropertyName: "transitionName", publicName: "transitionName", isSignal: true, isRequired: true, transformFunction: null }, inAnimation: { classPropertyName: "inAnimation", publicName: "inAnimation", isSignal: true, isRequired: false, transformFunction: null }, outAnimation: { classPropertyName: "outAnimation", publicName: "outAnimation", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
342
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TransitionNameDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
343
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: TransitionNameDirective, isStandalone: true, selector: "[transitionName]", inputs: { transitionName: { classPropertyName: "transitionName", publicName: "transitionName", isSignal: true, isRequired: true, transformFunction: null }, inAnimation: { classPropertyName: "inAnimation", publicName: "inAnimation", isSignal: true, isRequired: false, transformFunction: null }, outAnimation: { classPropertyName: "outAnimation", publicName: "outAnimation", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
354
344
  }
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TransitionNameDirective, decorators: [{
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TransitionNameDirective, decorators: [{
356
346
  type: Directive,
357
347
  args: [{
358
348
  standalone: true,
@@ -388,12 +378,10 @@ function provideDefaultViewTransition(inAnimation, outAnimation) {
388
378
  }
389
379
  };
390
380
  };
391
- return {
392
- provide: APP_INITIALIZER,
393
- useFactory: factory,
394
- multi: true,
395
- deps: [ViewTransitionsService, KeyframesService],
396
- };
381
+ return provideAppInitializer(() => {
382
+ const initializerFn = factory(inject(ViewTransitionsService), inject(KeyframesService));
383
+ return initializerFn();
384
+ });
397
385
  }
398
386
 
399
387
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-easy-view-transitions.mjs","sources":["../../../ngx-easy-view-transitions/src/lib/default-transitions.ts","../../../ngx-easy-view-transitions/src/lib/no-transition.directive.ts","../../../ngx-easy-view-transitions/src/lib/utils.ts","../../../ngx-easy-view-transitions/src/lib/keyframes.service.ts","../../../ngx-easy-view-transitions/src/lib/view-transitions.service.ts","../../../ngx-easy-view-transitions/src/lib/transition-name.directive.ts","../../../ngx-easy-view-transitions/src/lib/default-view-transition.provider.ts","../../../ngx-easy-view-transitions/src/ngx-easy-view-transitions.ts"],"sourcesContent":["export const none: Keyframe[] = [];\r\n\r\nexport const scaleIn: Keyframe[] = [\r\n {\r\n opacity: 0,\r\n transform: 'scale(0.5)',\r\n offset: 0,\r\n },\r\n {\r\n opacity: 1,\r\n transform: 'scale(1)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const scaleOut: Keyframe[] = [\r\n {\r\n opacity: 1,\r\n transform: 'scale(1)',\r\n offset: 0,\r\n },\r\n {\r\n opacity: 0,\r\n transform: 'scale(0.5)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeIn: Keyframe[] = [\r\n {\r\n opacity: 0,\r\n offset: 0,\r\n },\r\n {\r\n opacity: 1,\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeOut: Keyframe[] = [\r\n {\r\n opacity: 1,\r\n offset: 0,\r\n },\r\n {\r\n opacity: 0,\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeInUp: Keyframe[] = [\r\n {\r\n opacity: 0,\r\n transform: 'translate(0, 100%)',\r\n offset: 0,\r\n },\r\n {\r\n opacity: 1,\r\n transform: 'translate(0, 0)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeOutUp: Keyframe[] = [\r\n {\r\n opacity: 1,\r\n offset: 0,\r\n },\r\n {\r\n opacity: 0,\r\n transform: 'translate(0, -100%)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeInDown: Keyframe[] = [\r\n {\r\n opacity: 0,\r\n transform: 'translate(0, -100%)',\r\n offset: 0,\r\n },\r\n {\r\n opacity: 1,\r\n transform: 'translate(0, 0)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeOutDown: Keyframe[] = [\r\n {\r\n opacity: 1,\r\n offset: 0,\r\n },\r\n {\r\n opacity: 0,\r\n transform: 'translate(0, 100%)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeInRight: Keyframe[] = [\r\n {\r\n opacity: 0,\r\n transform: 'translate(100%, 0)',\r\n offset: 0,\r\n },\r\n {\r\n opacity: 1,\r\n transform: 'translate(0, 0)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeOutRight: Keyframe[] = [\r\n {\r\n opacity: 1,\r\n offset: 0,\r\n },\r\n {\r\n opacity: 0,\r\n transform: 'translate(100%, 0)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeInLeft: Keyframe[] = [\r\n {\r\n opacity: 0,\r\n transform: 'translate(-100%, 0)',\r\n offset: 0,\r\n },\r\n {\r\n opacity: 1,\r\n transform: 'translate(0, 0)',\r\n offset: 1,\r\n },\r\n];\r\n\r\nexport const fadeOutLeft: Keyframe[] = [\r\n {\r\n opacity: 1,\r\n offset: 0,\r\n },\r\n {\r\n opacity: 0,\r\n transform: 'translate(-100%, 0)',\r\n offset: 1,\r\n },\r\n];\r\n","import {\r\n Directive,\r\n ElementRef,\r\n inject,\r\n OnInit,\r\n RendererFactory2,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n/**\r\n * Exclude an element from view transitions\r\n */\r\n@Directive({\r\n standalone: true,\r\n selector: '[noTransition]',\r\n})\r\nexport class NoTransitionDirective implements OnInit {\r\n private readonly _el = inject(ElementRef);\r\n private readonly _rendererFactory = inject(RendererFactory2);\r\n private readonly _renderer = this._rendererFactory.createRenderer(null, null);\r\n private readonly _document = inject(DOCUMENT);\r\n\r\n ngOnInit(): void {\r\n const transitionName = 'ngx-easy-view-transitions-disabled';\r\n\r\n this._el.nativeElement.style.viewTransitionName = transitionName;\r\n\r\n const elementId = 'view-transition-none';\r\n\r\n const styleElement =\r\n this._document.getElementById(elementId) ||\r\n this._document.createElement('style');\r\n\r\n styleElement.innerHTML = `\r\n ::view-transition-group(${transitionName}),\r\n ::view-transition-old(${transitionName}),\r\n ::view-transition-new(${transitionName}) {\r\n animation-duration: 0s !important;\r\n }\r\n `;\r\n styleElement.id = elementId;\r\n\r\n if (!this._document.getElementById(elementId))\r\n this._renderer.appendChild(this._document.head, styleElement);\r\n }\r\n}\r\n","/**@internal*/\r\nexport function hashCode(str: string): number {\r\n let hash = 0;\r\n for (let i = 0, len = str.length; i < len; i++) {\r\n const code = str.charCodeAt(i);\r\n hash = (hash << 5) - hash + code;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash;\r\n}\r\n","import { inject, Injectable, RendererFactory2 } from '@angular/core';\r\nimport { hashCode } from './utils';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n/**@internal*/\r\n@Injectable({ providedIn: 'root' })\r\nexport class KeyframesService {\r\n private readonly _rendererFactory = inject(RendererFactory2);\r\n private readonly _renderer = this._rendererFactory.createRenderer(null, null);\r\n private readonly _document = inject(DOCUMENT);\r\n\r\n setKeyframes(keyframes: Keyframe[]) {\r\n const keyframesAsString = JSON.stringify(keyframes);\r\n const hashedKeyframes = hashCode(keyframesAsString);\r\n const keyframesName = `_${hashedKeyframes}`;\r\n\r\n const elementId = `keyframes-${keyframesName}`;\r\n\r\n const styleElement =\r\n this._document.getElementById(elementId) ||\r\n this._document.createElement('style');\r\n\r\n styleElement.innerHTML = this.generateCssKeyframeRule(\r\n keyframesName,\r\n keyframes\r\n );\r\n styleElement.id = elementId;\r\n\r\n if (!this._document.getElementById(elementId))\r\n this._renderer.appendChild(this._document.head, styleElement);\r\n\r\n return keyframesName;\r\n }\r\n\r\n private generateCssKeyframeRule(\r\n animationName: string,\r\n keyframes: Keyframe[]\r\n ): string {\r\n const cssKeyframes: string[] = [];\r\n\r\n keyframes.forEach((keyframe, index) => {\r\n const offset = keyframe.offset ? `${keyframe.offset * 100}%` : '';\r\n\r\n const keyframeDeclaration = `${\r\n index === 0\r\n ? 'from'\r\n : offset\r\n ? offset\r\n : index === keyframes.length - 1\r\n ? 'to'\r\n : ''\r\n }`;\r\n\r\n const cssProperties = Object.entries(keyframe)\r\n .filter(([property]) => property !== 'offset')\r\n .map(([property, value]) => `${property}: ${value};`)\r\n .join('');\r\n\r\n cssKeyframes.push(`${keyframeDeclaration} { ${cssProperties} }`);\r\n });\r\n\r\n return `@keyframes ${animationName} { ${cssKeyframes.join(' ')} }`;\r\n }\r\n}\r\n","import { inject, Injectable, RendererFactory2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n/**@internal*/\r\n@Injectable({ providedIn: 'root' })\r\nexport class ViewTransitionsService {\r\n private readonly _rendererFactory = inject(RendererFactory2);\r\n private readonly _renderer = this._rendererFactory.createRenderer(null, null);\r\n private readonly _document = inject(DOCUMENT);\r\n\r\n setOutAnimation(outAnimation: string, transitionName: string) {\r\n const elementId = `view-transition-out-${transitionName}`;\r\n\r\n const styleElement =\r\n this._document.getElementById(elementId) ||\r\n this._document.createElement('style');\r\n\r\n styleElement.innerHTML = `\r\n ::view-transition-old(${transitionName}){\r\n animation: ${outAnimation};\r\n }\r\n `;\r\n styleElement.id = elementId;\r\n\r\n if (!this._document.getElementById(elementId))\r\n this._renderer.appendChild(this._document.head, styleElement);\r\n }\r\n\r\n setInAnimation(inAnimation: string, transitionName: string) {\r\n const elementId = `view-transition-in-${transitionName}`;\r\n\r\n const styleElement =\r\n this._document.getElementById(elementId) ||\r\n this._document.createElement('style');\r\n\r\n styleElement.innerHTML = `\r\n ::view-transition-new(${transitionName}){\r\n animation: ${inAnimation};\r\n }\r\n `;\r\n styleElement.id = elementId;\r\n\r\n if (!this._document.getElementById(elementId))\r\n this._renderer.appendChild(this._document.head, styleElement);\r\n }\r\n}\r\n","import { Directive, effect, ElementRef, inject, input } from '@angular/core';\nimport { KeyframesTransition } from './keyframes-transition';\nimport { CssKeyframesTransition } from './css-keyframes-transition';\nimport { KeyframesService } from './keyframes.service';\nimport { ViewTransitionsService } from './view-transitions.service';\n\n/**\n * Configure view transitions for the element\n */\n@Directive({\n standalone: true,\n selector: '[transitionName]',\n})\nexport class TransitionNameDirective {\n /**\n * Set the `view-transition-name` property to assign transitions to that element\n */\n transitionName = input.required<string>();\n /**\n * Configure the animation when the element enters the view\n */\n inAnimation = input<KeyframesTransition | CssKeyframesTransition>();\n /**\n * Configure the animation when the element leaves the view\n */\n outAnimation = input<KeyframesTransition | CssKeyframesTransition>();\n\n private readonly _el = inject(ElementRef);\n private readonly _keyframesService = inject(KeyframesService);\n private readonly _viewTransitionsService = inject(ViewTransitionsService);\n\n constructor() {\n //transitionName\n effect(() => {\n this._el.nativeElement.style.viewTransitionName = this.transitionName();\n });\n\n //inAnimation\n effect(async () => {\n const inAnimation = this.inAnimation();\n\n if (!inAnimation) return;\n\n if ('keyframesName' in inAnimation) {\n const animation = inAnimation as CssKeyframesTransition;\n this._viewTransitionsService.setInAnimation(\n `${animation.duration}ms ${animation.keyframesName} ${\n animation.reverse ? 'reverse' : ''\n }`,\n this.transitionName()\n );\n }\n\n if ('keyframes' in inAnimation) {\n const animation = inAnimation as KeyframesTransition;\n const keyframesName = this._keyframesService.setKeyframes(\n animation.keyframes\n );\n this._viewTransitionsService.setInAnimation(\n `${animation.duration}ms ${keyframesName} ${\n animation.reverse ? 'reverse' : ''\n }`,\n this.transitionName()\n );\n }\n });\n\n //outAnimation\n effect(async () => {\n const outAnimation = this.outAnimation();\n\n if (!outAnimation) return;\n\n if ('keyframesName' in outAnimation) {\n const animation = outAnimation as CssKeyframesTransition;\n this._viewTransitionsService.setOutAnimation(\n `${animation.duration}ms ${animation.keyframesName} ${\n animation.reverse ? 'reverse' : ''\n }`,\n this.transitionName()\n );\n }\n\n if ('keyframes' in outAnimation) {\n const animation = outAnimation as KeyframesTransition;\n const keyframesName = this._keyframesService.setKeyframes(\n animation.keyframes\n );\n this._viewTransitionsService.setOutAnimation(\n `${animation.duration}ms ${keyframesName} ${\n animation.reverse ? 'reverse' : ''\n }`,\n this.transitionName()\n );\n }\n });\n }\n}\n","import { APP_INITIALIZER, Provider } from '@angular/core';\r\nimport { KeyframesTransition } from './keyframes-transition';\r\nimport { CssKeyframesTransition } from './css-keyframes-transition';\r\nimport { ViewTransitionsService } from './view-transitions.service';\r\nimport { KeyframesService } from './keyframes.service';\r\n\r\n/**\r\n * Override the default View Transition API cross-fade animation\r\n * @param inAnimation\r\n * @param outAnimation\r\n */\r\nexport function provideDefaultViewTransition(\r\n inAnimation: KeyframesTransition | CssKeyframesTransition,\r\n outAnimation: KeyframesTransition | CssKeyframesTransition\r\n): Provider {\r\n const factory = (\r\n viewTransitionService: ViewTransitionsService,\r\n keyframesService: KeyframesService\r\n ) => {\r\n return () => {\r\n if ('keyframesName' in inAnimation) {\r\n const animation = inAnimation as CssKeyframesTransition;\r\n viewTransitionService.setInAnimation(\r\n `${animation.duration}ms ${animation.keyframesName} ${\r\n animation.reverse ? 'reverse' : ''\r\n }`,\r\n 'root'\r\n );\r\n }\r\n\r\n if ('keyframes' in inAnimation) {\r\n const animation = inAnimation as KeyframesTransition;\r\n const keyframesName = keyframesService.setKeyframes(\r\n animation.keyframes\r\n );\r\n viewTransitionService.setInAnimation(\r\n `${animation.duration}ms ${keyframesName} ${\r\n animation.reverse ? 'reverse' : ''\r\n }`,\r\n 'root'\r\n );\r\n }\r\n\r\n if ('keyframesName' in outAnimation) {\r\n const animation = outAnimation as CssKeyframesTransition;\r\n viewTransitionService.setOutAnimation(\r\n `${animation.duration}ms ${animation.keyframesName} ${\r\n animation.reverse ? 'reverse' : ''\r\n }`,\r\n 'root'\r\n );\r\n }\r\n\r\n if ('keyframes' in outAnimation) {\r\n const animation = outAnimation as KeyframesTransition;\r\n const keyframesName = keyframesService.setKeyframes(\r\n animation.keyframes\r\n );\r\n viewTransitionService.setOutAnimation(\r\n `${animation.duration}ms ${keyframesName} ${\r\n animation.reverse ? 'reverse' : ''\r\n }`,\r\n 'root'\r\n );\r\n }\r\n };\r\n };\r\n\r\n return {\r\n provide: APP_INITIALIZER,\r\n useFactory: factory,\r\n multi: true,\r\n deps: [ViewTransitionsService, KeyframesService],\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-easy-view-transitions.mjs","sources":["../../../ngx-easy-view-transitions/src/lib/default-transitions.ts","../../../ngx-easy-view-transitions/src/lib/no-transition.directive.ts","../../../ngx-easy-view-transitions/src/lib/utils.ts","../../../ngx-easy-view-transitions/src/lib/keyframes.service.ts","../../../ngx-easy-view-transitions/src/lib/view-transitions.service.ts","../../../ngx-easy-view-transitions/src/lib/transition-name.directive.ts","../../../ngx-easy-view-transitions/src/lib/default-view-transition.provider.ts","../../../ngx-easy-view-transitions/src/ngx-easy-view-transitions.ts"],"sourcesContent":["export const none: Keyframe[] = [];\n\nexport const scaleIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'scale(0.5)',\n offset: 0,\n },\n {\n opacity: 1,\n transform: 'scale(1)',\n offset: 1,\n },\n];\n\nexport const scaleOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'scale(1)',\n offset: 0,\n },\n {\n opacity: 0,\n transform: 'scale(0.5)',\n offset: 1,\n },\n];\n\nexport const fadeIn: Keyframe[] = [\n {\n opacity: 0,\n offset: 0,\n },\n {\n opacity: 1,\n offset: 1,\n },\n];\n\nexport const fadeOut: Keyframe[] = [\n {\n opacity: 1,\n offset: 0,\n },\n {\n opacity: 0,\n offset: 1,\n },\n];\n\nexport const fadeInUp: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translate(0, 100%)',\n offset: 0,\n },\n {\n opacity: 1,\n transform: 'translate(0, 0)',\n offset: 1,\n },\n];\n\nexport const fadeOutUp: Keyframe[] = [\n {\n opacity: 1,\n offset: 0,\n },\n {\n opacity: 0,\n transform: 'translate(0, -100%)',\n offset: 1,\n },\n];\n\nexport const fadeInDown: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translate(0, -100%)',\n offset: 0,\n },\n {\n opacity: 1,\n transform: 'translate(0, 0)',\n offset: 1,\n },\n];\n\nexport const fadeOutDown: Keyframe[] = [\n {\n opacity: 1,\n offset: 0,\n },\n {\n opacity: 0,\n transform: 'translate(0, 100%)',\n offset: 1,\n },\n];\n\nexport const fadeInRight: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translate(100%, 0)',\n offset: 0,\n },\n {\n opacity: 1,\n transform: 'translate(0, 0)',\n offset: 1,\n },\n];\n\nexport const fadeOutRight: Keyframe[] = [\n {\n opacity: 1,\n offset: 0,\n },\n {\n opacity: 0,\n transform: 'translate(100%, 0)',\n offset: 1,\n },\n];\n\nexport const fadeInLeft: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translate(-100%, 0)',\n offset: 0,\n },\n {\n opacity: 1,\n transform: 'translate(0, 0)',\n offset: 1,\n },\n];\n\nexport const fadeOutLeft: Keyframe[] = [\n {\n opacity: 1,\n offset: 0,\n },\n {\n opacity: 0,\n transform: 'translate(-100%, 0)',\n offset: 1,\n },\n];\n","import { Directive, ElementRef, inject, OnInit, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Exclude an element from view transitions\n */\n@Directive({\n standalone: true,\n selector: '[noTransition]',\n})\nexport class NoTransitionDirective implements OnInit {\n private readonly _el = inject(ElementRef);\n private readonly _rendererFactory = inject(RendererFactory2);\n private readonly _renderer = this._rendererFactory.createRenderer(null, null);\n private readonly _document = inject(DOCUMENT);\n\n ngOnInit(): void {\n const transitionName = 'ngx-easy-view-transitions-disabled';\n\n this._el.nativeElement.style.viewTransitionName = transitionName;\n\n const elementId = 'view-transition-none';\n\n const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');\n\n styleElement.innerHTML = `\n ::view-transition-group(${transitionName}),\n ::view-transition-old(${transitionName}),\n ::view-transition-new(${transitionName}) {\n animation-duration: 0s !important;\n }\n `;\n styleElement.id = elementId;\n\n if (!this._document.getElementById(elementId)) this._renderer.appendChild(this._document.head, styleElement);\n }\n}\n","/**@internal*/\nexport function hashCode(str: string): number {\n let hash = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const code = str.charCodeAt(i);\n hash = (hash << 5) - hash + code;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n}\n","import { inject, Injectable, RendererFactory2 } from '@angular/core';\nimport { hashCode } from './utils';\nimport { DOCUMENT } from '@angular/common';\n\n/**@internal*/\n@Injectable({ providedIn: 'root' })\nexport class KeyframesService {\n private readonly _rendererFactory = inject(RendererFactory2);\n private readonly _renderer = this._rendererFactory.createRenderer(null, null);\n private readonly _document = inject(DOCUMENT);\n\n setKeyframes(keyframes: Keyframe[]) {\n const keyframesAsString = JSON.stringify(keyframes);\n const hashedKeyframes = hashCode(keyframesAsString);\n const keyframesName = `_${hashedKeyframes}`;\n\n const elementId = `keyframes-${keyframesName}`;\n\n const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');\n\n styleElement.innerHTML = this.generateCssKeyframeRule(keyframesName, keyframes);\n styleElement.id = elementId;\n\n if (!this._document.getElementById(elementId)) this._renderer.appendChild(this._document.head, styleElement);\n\n return keyframesName;\n }\n\n private generateCssKeyframeRule(animationName: string, keyframes: Keyframe[]): string {\n const cssKeyframes: string[] = [];\n\n keyframes.forEach((keyframe, index) => {\n const offset = keyframe.offset ? `${keyframe.offset * 100}%` : '';\n\n const keyframeDeclaration = `${\n index === 0 ? 'from' : offset ? offset : index === keyframes.length - 1 ? 'to' : ''\n }`;\n\n const cssProperties = Object.entries(keyframe)\n .filter(([property]) => property !== 'offset')\n .map(([property, value]) => `${property}: ${value};`)\n .join('');\n\n cssKeyframes.push(`${keyframeDeclaration} { ${cssProperties} }`);\n });\n\n return `@keyframes ${animationName} { ${cssKeyframes.join(' ')} }`;\n }\n}\n","import { inject, Injectable, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**@internal*/\n@Injectable({ providedIn: 'root' })\nexport class ViewTransitionsService {\n private readonly _rendererFactory = inject(RendererFactory2);\n private readonly _renderer = this._rendererFactory.createRenderer(null, null);\n private readonly _document = inject(DOCUMENT);\n\n setOutAnimation(outAnimation: string, transitionName: string) {\n const elementId = `view-transition-out-${transitionName}`;\n\n const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');\n\n styleElement.innerHTML = `\n ::view-transition-old(${transitionName}){\n animation: ${outAnimation};\n }\n `;\n styleElement.id = elementId;\n\n if (!this._document.getElementById(elementId)) this._renderer.appendChild(this._document.head, styleElement);\n }\n\n setInAnimation(inAnimation: string, transitionName: string) {\n const elementId = `view-transition-in-${transitionName}`;\n\n const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');\n\n styleElement.innerHTML = `\n ::view-transition-new(${transitionName}){\n animation: ${inAnimation};\n }\n `;\n styleElement.id = elementId;\n\n if (!this._document.getElementById(elementId)) this._renderer.appendChild(this._document.head, styleElement);\n }\n}\n","import { Directive, effect, ElementRef, inject, input } from '@angular/core';\nimport { KeyframesTransition } from './keyframes-transition';\nimport { CssKeyframesTransition } from './css-keyframes-transition';\nimport { KeyframesService } from './keyframes.service';\nimport { ViewTransitionsService } from './view-transitions.service';\n\n/**\n * Configure view transitions for the element\n */\n@Directive({\n standalone: true,\n selector: '[transitionName]',\n})\nexport class TransitionNameDirective {\n /**\n * Set the `view-transition-name` property to assign transitions to that element\n */\n transitionName = input.required<string>();\n /**\n * Configure the animation when the element enters the view\n */\n inAnimation = input<KeyframesTransition | CssKeyframesTransition>();\n /**\n * Configure the animation when the element leaves the view\n */\n outAnimation = input<KeyframesTransition | CssKeyframesTransition>();\n\n private readonly _el = inject(ElementRef);\n private readonly _keyframesService = inject(KeyframesService);\n private readonly _viewTransitionsService = inject(ViewTransitionsService);\n\n constructor() {\n //transitionName\n effect(() => {\n this._el.nativeElement.style.viewTransitionName = this.transitionName();\n });\n\n //inAnimation\n effect(async () => {\n const inAnimation = this.inAnimation();\n\n if (!inAnimation) return;\n\n if ('keyframesName' in inAnimation) {\n const animation = inAnimation as CssKeyframesTransition;\n this._viewTransitionsService.setInAnimation(\n `${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n this.transitionName()\n );\n }\n\n if ('keyframes' in inAnimation) {\n const animation = inAnimation as KeyframesTransition;\n const keyframesName = this._keyframesService.setKeyframes(animation.keyframes);\n this._viewTransitionsService.setInAnimation(\n `${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n this.transitionName()\n );\n }\n });\n\n //outAnimation\n effect(async () => {\n const outAnimation = this.outAnimation();\n\n if (!outAnimation) return;\n\n if ('keyframesName' in outAnimation) {\n const animation = outAnimation as CssKeyframesTransition;\n this._viewTransitionsService.setOutAnimation(\n `${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n this.transitionName()\n );\n }\n\n if ('keyframes' in outAnimation) {\n const animation = outAnimation as KeyframesTransition;\n const keyframesName = this._keyframesService.setKeyframes(animation.keyframes);\n this._viewTransitionsService.setOutAnimation(\n `${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n this.transitionName()\n );\n }\n });\n }\n}\n","import { EnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport { KeyframesTransition } from './keyframes-transition';\nimport { CssKeyframesTransition } from './css-keyframes-transition';\nimport { ViewTransitionsService } from './view-transitions.service';\nimport { KeyframesService } from './keyframes.service';\n\n/**\n * Override the default View Transition API cross-fade animation\n * @param inAnimation\n * @param outAnimation\n */\nexport function provideDefaultViewTransition(\n inAnimation: KeyframesTransition | CssKeyframesTransition,\n outAnimation: KeyframesTransition | CssKeyframesTransition\n): EnvironmentProviders {\n const factory = (viewTransitionService: ViewTransitionsService, keyframesService: KeyframesService) => {\n return () => {\n if ('keyframesName' in inAnimation) {\n const animation = inAnimation as CssKeyframesTransition;\n viewTransitionService.setInAnimation(\n `${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n 'root'\n );\n }\n\n if ('keyframes' in inAnimation) {\n const animation = inAnimation as KeyframesTransition;\n const keyframesName = keyframesService.setKeyframes(animation.keyframes);\n viewTransitionService.setInAnimation(\n `${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n 'root'\n );\n }\n\n if ('keyframesName' in outAnimation) {\n const animation = outAnimation as CssKeyframesTransition;\n viewTransitionService.setOutAnimation(\n `${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n 'root'\n );\n }\n\n if ('keyframes' in outAnimation) {\n const animation = outAnimation as KeyframesTransition;\n const keyframesName = keyframesService.setKeyframes(animation.keyframes);\n viewTransitionService.setOutAnimation(\n `${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`,\n 'root'\n );\n }\n };\n };\n\n return provideAppInitializer(() => {\n const initializerFn = factory(inject(ViewTransitionsService), inject(KeyframesService));\n return initializerFn();\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Provider } from '@angular/core';
1
+ import { EnvironmentProviders } from '@angular/core';
2
2
  import { KeyframesTransition } from './keyframes-transition';
3
3
  import { CssKeyframesTransition } from './css-keyframes-transition';
4
4
  /**
@@ -6,4 +6,4 @@ import { CssKeyframesTransition } from './css-keyframes-transition';
6
6
  * @param inAnimation
7
7
  * @param outAnimation
8
8
  */
9
- export declare function provideDefaultViewTransition(inAnimation: KeyframesTransition | CssKeyframesTransition, outAnimation: KeyframesTransition | CssKeyframesTransition): Provider;
9
+ export declare function provideDefaultViewTransition(inAnimation: KeyframesTransition | CssKeyframesTransition, outAnimation: KeyframesTransition | CssKeyframesTransition): EnvironmentProviders;
package/package.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "ngx-easy-view-transitions",
3
- "version": "2.0.0",
4
3
  "description": "Angular library for easier use of the View Transitions API",
5
4
  "keywords": [
6
5
  "npm",
@@ -23,11 +22,11 @@
23
22
  },
24
23
  "homepage": "https://derstimmler.github.io/ngx-easy-view-transitions/",
25
24
  "peerDependencies": {
26
- "@angular/common": ">=18.0.0",
27
- "@angular/core": ">=18.0.0"
25
+ "@angular/common": ">=19.0.0",
26
+ "@angular/core": ">=19.0.0"
28
27
  },
29
28
  "dependencies": {
30
- "tslib": "^2.6.2"
29
+ "tslib": "^2.8.1"
31
30
  },
32
31
  "sideEffects": false,
33
32
  "module": "fesm2022/ngx-easy-view-transitions.mjs",
@@ -38,9 +37,8 @@
38
37
  },
39
38
  ".": {
40
39
  "types": "./index.d.ts",
41
- "esm2022": "./esm2022/ngx-easy-view-transitions.mjs",
42
- "esm": "./esm2022/ngx-easy-view-transitions.mjs",
43
40
  "default": "./fesm2022/ngx-easy-view-transitions.mjs"
44
41
  }
45
- }
46
- }
42
+ },
43
+ "version": "3.0.0"
44
+ }
package/esm2022/index.mjs DELETED
@@ -1,5 +0,0 @@
1
- export * as DefaultTransitions from './lib/default-transitions';
2
- export * from './lib/no-transition.directive';
3
- export * from './lib/transition-name.directive';
4
- export * from './lib/default-view-transition.provider';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9uZ3gtZWFzeS12aWV3LXRyYW5zaXRpb25zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssa0JBQWtCLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBEZWZhdWx0VHJhbnNpdGlvbnMgZnJvbSAnLi9saWIvZGVmYXVsdC10cmFuc2l0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vLXRyYW5zaXRpb24uZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJhbnNpdGlvbi1uYW1lLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlZmF1bHQtdmlldy10cmFuc2l0aW9uLnByb3ZpZGVyJztcclxuZXhwb3J0IHsgS2V5ZnJhbWVzVHJhbnNpdGlvbiB9IGZyb20gJy4vbGliL2tleWZyYW1lcy10cmFuc2l0aW9uJztcclxuZXhwb3J0IHsgQ3NzS2V5ZnJhbWVzVHJhbnNpdGlvbiB9IGZyb20gJy4vbGliL2Nzcy1rZXlmcmFtZXMtdHJhbnNpdGlvbic7XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLWtleWZyYW1lcy10cmFuc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbmd4LWVhc3ktdmlldy10cmFuc2l0aW9ucy9zcmMvbGliL2Nzcy1rZXlmcmFtZXMtdHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFByb3ZpZGUgY3VzdG9tIGFuaW1hdGlvbiB2aWEgQ1NTIFtgQGtleWZyYW1lc2BdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Aa2V5ZnJhbWVzKSBydWxlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENzc0tleWZyYW1lc1RyYW5zaXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgdGhlIENTUyBbYEBrZXlmcmFtZXNgXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQGtleWZyYW1lcykgcnVsZVxyXG4gICAqL1xyXG4gIGtleWZyYW1lc05hbWU6IHN0cmluZztcclxuICAvKipcclxuICAgKiBEdXJhdGlvbiBvZiB0aGUgdHJhbnNpdGlvbiBpbiBtc1xyXG4gICAqL1xyXG4gIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogV2V0aGVyIHRoZSBhbmltYXRpb24gc2hvdWxkIGJlIHBsYXllZCByZXZlcnNlZFxyXG4gICAqL1xyXG4gIHJldmVyc2U/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
@@ -1,138 +0,0 @@
1
- export const none = [];
2
- export const scaleIn = [
3
- {
4
- opacity: 0,
5
- transform: 'scale(0.5)',
6
- offset: 0,
7
- },
8
- {
9
- opacity: 1,
10
- transform: 'scale(1)',
11
- offset: 1,
12
- },
13
- ];
14
- export const scaleOut = [
15
- {
16
- opacity: 1,
17
- transform: 'scale(1)',
18
- offset: 0,
19
- },
20
- {
21
- opacity: 0,
22
- transform: 'scale(0.5)',
23
- offset: 1,
24
- },
25
- ];
26
- export const fadeIn = [
27
- {
28
- opacity: 0,
29
- offset: 0,
30
- },
31
- {
32
- opacity: 1,
33
- offset: 1,
34
- },
35
- ];
36
- export const fadeOut = [
37
- {
38
- opacity: 1,
39
- offset: 0,
40
- },
41
- {
42
- opacity: 0,
43
- offset: 1,
44
- },
45
- ];
46
- export const fadeInUp = [
47
- {
48
- opacity: 0,
49
- transform: 'translate(0, 100%)',
50
- offset: 0,
51
- },
52
- {
53
- opacity: 1,
54
- transform: 'translate(0, 0)',
55
- offset: 1,
56
- },
57
- ];
58
- export const fadeOutUp = [
59
- {
60
- opacity: 1,
61
- offset: 0,
62
- },
63
- {
64
- opacity: 0,
65
- transform: 'translate(0, -100%)',
66
- offset: 1,
67
- },
68
- ];
69
- export const fadeInDown = [
70
- {
71
- opacity: 0,
72
- transform: 'translate(0, -100%)',
73
- offset: 0,
74
- },
75
- {
76
- opacity: 1,
77
- transform: 'translate(0, 0)',
78
- offset: 1,
79
- },
80
- ];
81
- export const fadeOutDown = [
82
- {
83
- opacity: 1,
84
- offset: 0,
85
- },
86
- {
87
- opacity: 0,
88
- transform: 'translate(0, 100%)',
89
- offset: 1,
90
- },
91
- ];
92
- export const fadeInRight = [
93
- {
94
- opacity: 0,
95
- transform: 'translate(100%, 0)',
96
- offset: 0,
97
- },
98
- {
99
- opacity: 1,
100
- transform: 'translate(0, 0)',
101
- offset: 1,
102
- },
103
- ];
104
- export const fadeOutRight = [
105
- {
106
- opacity: 1,
107
- offset: 0,
108
- },
109
- {
110
- opacity: 0,
111
- transform: 'translate(100%, 0)',
112
- offset: 1,
113
- },
114
- ];
115
- export const fadeInLeft = [
116
- {
117
- opacity: 0,
118
- transform: 'translate(-100%, 0)',
119
- offset: 0,
120
- },
121
- {
122
- opacity: 1,
123
- transform: 'translate(0, 0)',
124
- offset: 1,
125
- },
126
- ];
127
- export const fadeOutLeft = [
128
- {
129
- opacity: 1,
130
- offset: 0,
131
- },
132
- {
133
- opacity: 0,
134
- transform: 'translate(-100%, 0)',
135
- offset: 1,
136
- },
137
- ];
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10cmFuc2l0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25neC1lYXN5LXZpZXctdHJhbnNpdGlvbnMvc3JjL2xpYi9kZWZhdWx0LXRyYW5zaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBZSxFQUFFLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFlO0lBQ2pDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsWUFBWTtRQUN2QixNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsQ0FBQztRQUNWLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFlO0lBQ2xDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsVUFBVTtRQUNyQixNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsQ0FBQztRQUNWLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFlO0lBQ2hDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFlO0lBQ2pDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFlO0lBQ2xDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixNQUFNLEVBQUUsQ0FBQztLQUNWO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBZTtJQUNuQztRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNEO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFlO0lBQ3BDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixNQUFNLEVBQUUsQ0FBQztLQUNWO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBZTtJQUNyQztRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNEO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFlO0lBQ3JDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixNQUFNLEVBQUUsQ0FBQztLQUNWO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZTtJQUN0QztRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNEO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFlO0lBQ3BDO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixNQUFNLEVBQUUsQ0FBQztLQUNWO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBZTtJQUNyQztRQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNEO1FBQ0UsT0FBTyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IG5vbmU6IEtleWZyYW1lW10gPSBbXTtcclxuXHJcbmV4cG9ydCBjb25zdCBzY2FsZUluOiBLZXlmcmFtZVtdID0gW1xyXG4gIHtcclxuICAgIG9wYWNpdHk6IDAsXHJcbiAgICB0cmFuc2Zvcm06ICdzY2FsZSgwLjUpJyxcclxuICAgIG9mZnNldDogMCxcclxuICB9LFxyXG4gIHtcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICB0cmFuc2Zvcm06ICdzY2FsZSgxKScsXHJcbiAgICBvZmZzZXQ6IDEsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBzY2FsZU91dDogS2V5ZnJhbWVbXSA9IFtcclxuICB7XHJcbiAgICBvcGFjaXR5OiAxLFxyXG4gICAgdHJhbnNmb3JtOiAnc2NhbGUoMSknLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMCxcclxuICAgIHRyYW5zZm9ybTogJ3NjYWxlKDAuNSknLFxyXG4gICAgb2Zmc2V0OiAxLFxyXG4gIH0sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgZmFkZUluOiBLZXlmcmFtZVtdID0gW1xyXG4gIHtcclxuICAgIG9wYWNpdHk6IDAsXHJcbiAgICBvZmZzZXQ6IDAsXHJcbiAgfSxcclxuICB7XHJcbiAgICBvcGFjaXR5OiAxLFxyXG4gICAgb2Zmc2V0OiAxLFxyXG4gIH0sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgZmFkZU91dDogS2V5ZnJhbWVbXSA9IFtcclxuICB7XHJcbiAgICBvcGFjaXR5OiAxLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMCxcclxuICAgIG9mZnNldDogMSxcclxuICB9LFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZhZGVJblVwOiBLZXlmcmFtZVtdID0gW1xyXG4gIHtcclxuICAgIG9wYWNpdHk6IDAsXHJcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMTAwJSknLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAwKScsXHJcbiAgICBvZmZzZXQ6IDEsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBmYWRlT3V0VXA6IEtleWZyYW1lW10gPSBbXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIG9mZnNldDogMCxcclxuICB9LFxyXG4gIHtcclxuICAgIG9wYWNpdHk6IDAsXHJcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgLTEwMCUpJyxcclxuICAgIG9mZnNldDogMSxcclxuICB9LFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZhZGVJbkRvd246IEtleWZyYW1lW10gPSBbXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMCxcclxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAtMTAwJSknLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAwKScsXHJcbiAgICBvZmZzZXQ6IDEsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBmYWRlT3V0RG93bjogS2V5ZnJhbWVbXSA9IFtcclxuICB7XHJcbiAgICBvcGFjaXR5OiAxLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMCxcclxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAxMDAlKScsXHJcbiAgICBvZmZzZXQ6IDEsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBmYWRlSW5SaWdodDogS2V5ZnJhbWVbXSA9IFtcclxuICB7XHJcbiAgICBvcGFjaXR5OiAwLFxyXG4gICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDEwMCUsIDApJyxcclxuICAgIG9mZnNldDogMCxcclxuICB9LFxyXG4gIHtcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxyXG4gICAgb2Zmc2V0OiAxLFxyXG4gIH0sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgZmFkZU91dFJpZ2h0OiBLZXlmcmFtZVtdID0gW1xyXG4gIHtcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICBvZmZzZXQ6IDAsXHJcbiAgfSxcclxuICB7XHJcbiAgICBvcGFjaXR5OiAwLFxyXG4gICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDEwMCUsIDApJyxcclxuICAgIG9mZnNldDogMSxcclxuICB9LFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZhZGVJbkxlZnQ6IEtleWZyYW1lW10gPSBbXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMCxcclxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtMTAwJSwgMCknLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgwLCAwKScsXHJcbiAgICBvZmZzZXQ6IDEsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBmYWRlT3V0TGVmdDogS2V5ZnJhbWVbXSA9IFtcclxuICB7XHJcbiAgICBvcGFjaXR5OiAxLFxyXG4gICAgb2Zmc2V0OiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgb3BhY2l0eTogMCxcclxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtMTAwJSwgMCknLFxyXG4gICAgb2Zmc2V0OiAxLFxyXG4gIH0sXHJcbl07XHJcbiJdfQ==
@@ -1,39 +0,0 @@
1
- import { APP_INITIALIZER } from '@angular/core';
2
- import { ViewTransitionsService } from './view-transitions.service';
3
- import { KeyframesService } from './keyframes.service';
4
- /**
5
- * Override the default View Transition API cross-fade animation
6
- * @param inAnimation
7
- * @param outAnimation
8
- */
9
- export function provideDefaultViewTransition(inAnimation, outAnimation) {
10
- const factory = (viewTransitionService, keyframesService) => {
11
- return () => {
12
- if ('keyframesName' in inAnimation) {
13
- const animation = inAnimation;
14
- viewTransitionService.setInAnimation(`${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`, 'root');
15
- }
16
- if ('keyframes' in inAnimation) {
17
- const animation = inAnimation;
18
- const keyframesName = keyframesService.setKeyframes(animation.keyframes);
19
- viewTransitionService.setInAnimation(`${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`, 'root');
20
- }
21
- if ('keyframesName' in outAnimation) {
22
- const animation = outAnimation;
23
- viewTransitionService.setOutAnimation(`${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`, 'root');
24
- }
25
- if ('keyframes' in outAnimation) {
26
- const animation = outAnimation;
27
- const keyframesName = keyframesService.setKeyframes(animation.keyframes);
28
- viewTransitionService.setOutAnimation(`${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`, 'root');
29
- }
30
- };
31
- };
32
- return {
33
- provide: APP_INITIALIZER,
34
- useFactory: factory,
35
- multi: true,
36
- deps: [ViewTransitionsService, KeyframesService],
37
- };
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC12aWV3LXRyYW5zaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ3gtZWFzeS12aWV3LXRyYW5zaXRpb25zL3NyYy9saWIvZGVmYXVsdC12aWV3LXRyYW5zaXRpb24ucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUcxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUMxQyxXQUF5RCxFQUN6RCxZQUEwRDtJQUUxRCxNQUFNLE9BQU8sR0FBRyxDQUNkLHFCQUE2QyxFQUM3QyxnQkFBa0MsRUFDbEMsRUFBRTtRQUNGLE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sU0FBUyxHQUFHLFdBQXFDLENBQUM7Z0JBQ3hELHFCQUFxQixDQUFDLGNBQWMsQ0FDbEMsR0FBRyxTQUFTLENBQUMsUUFBUSxNQUFNLFNBQVMsQ0FBQyxhQUFhLElBQ2hELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDbEMsRUFBRSxFQUNGLE1BQU0sQ0FDUCxDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksV0FBVyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUMvQixNQUFNLFNBQVMsR0FBRyxXQUFrQyxDQUFDO2dCQUNyRCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQ2pELFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUM7Z0JBQ0YscUJBQXFCLENBQUMsY0FBYyxDQUNsQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLE1BQU0sYUFBYSxJQUN0QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQ2xDLEVBQUUsRUFDRixNQUFNLENBQ1AsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLGVBQWUsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxTQUFTLEdBQUcsWUFBc0MsQ0FBQztnQkFDekQscUJBQXFCLENBQUMsZUFBZSxDQUNuQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLE1BQU0sU0FBUyxDQUFDLGFBQWEsSUFDaEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNsQyxFQUFFLEVBQ0YsTUFBTSxDQUNQLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sU0FBUyxHQUFHLFlBQW1DLENBQUM7Z0JBQ3RELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FDakQsU0FBUyxDQUFDLFNBQVMsQ0FDcEIsQ0FBQztnQkFDRixxQkFBcUIsQ0FBQyxlQUFlLENBQ25DLEdBQUcsU0FBUyxDQUFDLFFBQVEsTUFBTSxhQUFhLElBQ3RDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDbEMsRUFBRSxFQUNGLE1BQU0sQ0FDUCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUsT0FBTztRQUNuQixLQUFLLEVBQUUsSUFBSTtRQUNYLElBQUksRUFBRSxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO0tBQ2pELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBLZXlmcmFtZXNUcmFuc2l0aW9uIH0gZnJvbSAnLi9rZXlmcmFtZXMtdHJhbnNpdGlvbic7XHJcbmltcG9ydCB7IENzc0tleWZyYW1lc1RyYW5zaXRpb24gfSBmcm9tICcuL2Nzcy1rZXlmcmFtZXMtdHJhbnNpdGlvbic7XHJcbmltcG9ydCB7IFZpZXdUcmFuc2l0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3ZpZXctdHJhbnNpdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IEtleWZyYW1lc1NlcnZpY2UgfSBmcm9tICcuL2tleWZyYW1lcy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBPdmVycmlkZSB0aGUgZGVmYXVsdCBWaWV3IFRyYW5zaXRpb24gQVBJIGNyb3NzLWZhZGUgYW5pbWF0aW9uXHJcbiAqIEBwYXJhbSBpbkFuaW1hdGlvblxyXG4gKiBAcGFyYW0gb3V0QW5pbWF0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURlZmF1bHRWaWV3VHJhbnNpdGlvbihcclxuICBpbkFuaW1hdGlvbjogS2V5ZnJhbWVzVHJhbnNpdGlvbiB8IENzc0tleWZyYW1lc1RyYW5zaXRpb24sXHJcbiAgb3V0QW5pbWF0aW9uOiBLZXlmcmFtZXNUcmFuc2l0aW9uIHwgQ3NzS2V5ZnJhbWVzVHJhbnNpdGlvblxyXG4pOiBQcm92aWRlciB7XHJcbiAgY29uc3QgZmFjdG9yeSA9IChcclxuICAgIHZpZXdUcmFuc2l0aW9uU2VydmljZTogVmlld1RyYW5zaXRpb25zU2VydmljZSxcclxuICAgIGtleWZyYW1lc1NlcnZpY2U6IEtleWZyYW1lc1NlcnZpY2VcclxuICApID0+IHtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGlmICgna2V5ZnJhbWVzTmFtZScgaW4gaW5BbmltYXRpb24pIHtcclxuICAgICAgICBjb25zdCBhbmltYXRpb24gPSBpbkFuaW1hdGlvbiBhcyBDc3NLZXlmcmFtZXNUcmFuc2l0aW9uO1xyXG4gICAgICAgIHZpZXdUcmFuc2l0aW9uU2VydmljZS5zZXRJbkFuaW1hdGlvbihcclxuICAgICAgICAgIGAke2FuaW1hdGlvbi5kdXJhdGlvbn1tcyAke2FuaW1hdGlvbi5rZXlmcmFtZXNOYW1lfSAke1xyXG4gICAgICAgICAgICBhbmltYXRpb24ucmV2ZXJzZSA/ICdyZXZlcnNlJyA6ICcnXHJcbiAgICAgICAgICB9YCxcclxuICAgICAgICAgICdyb290J1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICgna2V5ZnJhbWVzJyBpbiBpbkFuaW1hdGlvbikge1xyXG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IGluQW5pbWF0aW9uIGFzIEtleWZyYW1lc1RyYW5zaXRpb247XHJcbiAgICAgICAgY29uc3Qga2V5ZnJhbWVzTmFtZSA9IGtleWZyYW1lc1NlcnZpY2Uuc2V0S2V5ZnJhbWVzKFxyXG4gICAgICAgICAgYW5pbWF0aW9uLmtleWZyYW1lc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdmlld1RyYW5zaXRpb25TZXJ2aWNlLnNldEluQW5pbWF0aW9uKFxyXG4gICAgICAgICAgYCR7YW5pbWF0aW9uLmR1cmF0aW9ufW1zICR7a2V5ZnJhbWVzTmFtZX0gJHtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLnJldmVyc2UgPyAncmV2ZXJzZScgOiAnJ1xyXG4gICAgICAgICAgfWAsXHJcbiAgICAgICAgICAncm9vdCdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoJ2tleWZyYW1lc05hbWUnIGluIG91dEFuaW1hdGlvbikge1xyXG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IG91dEFuaW1hdGlvbiBhcyBDc3NLZXlmcmFtZXNUcmFuc2l0aW9uO1xyXG4gICAgICAgIHZpZXdUcmFuc2l0aW9uU2VydmljZS5zZXRPdXRBbmltYXRpb24oXHJcbiAgICAgICAgICBgJHthbmltYXRpb24uZHVyYXRpb259bXMgJHthbmltYXRpb24ua2V5ZnJhbWVzTmFtZX0gJHtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLnJldmVyc2UgPyAncmV2ZXJzZScgOiAnJ1xyXG4gICAgICAgICAgfWAsXHJcbiAgICAgICAgICAncm9vdCdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoJ2tleWZyYW1lcycgaW4gb3V0QW5pbWF0aW9uKSB7XHJcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gb3V0QW5pbWF0aW9uIGFzIEtleWZyYW1lc1RyYW5zaXRpb247XHJcbiAgICAgICAgY29uc3Qga2V5ZnJhbWVzTmFtZSA9IGtleWZyYW1lc1NlcnZpY2Uuc2V0S2V5ZnJhbWVzKFxyXG4gICAgICAgICAgYW5pbWF0aW9uLmtleWZyYW1lc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdmlld1RyYW5zaXRpb25TZXJ2aWNlLnNldE91dEFuaW1hdGlvbihcclxuICAgICAgICAgIGAke2FuaW1hdGlvbi5kdXJhdGlvbn1tcyAke2tleWZyYW1lc05hbWV9ICR7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi5yZXZlcnNlID8gJ3JldmVyc2UnIDogJydcclxuICAgICAgICAgIH1gLFxyXG4gICAgICAgICAgJ3Jvb3QnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgdXNlRmFjdG9yeTogZmFjdG9yeSxcclxuICAgIG11bHRpOiB0cnVlLFxyXG4gICAgZGVwczogW1ZpZXdUcmFuc2l0aW9uc1NlcnZpY2UsIEtleWZyYW1lc1NlcnZpY2VdLFxyXG4gIH07XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5ZnJhbWVzLXRyYW5zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ3gtZWFzeS12aWV3LXRyYW5zaXRpb25zL3NyYy9saWIva2V5ZnJhbWVzLXRyYW5zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBQcm92aWRlIGN1c3RvbSB2aWV3IHRyYW5zaXRpb24gYW5pbWF0aW9uIHZpYSBbYEtleWZyYW1lYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dlYl9BbmltYXRpb25zX0FQSS9LZXlmcmFtZV9Gb3JtYXRzKSBvYmplY3RzIHJ1bGVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgS2V5ZnJhbWVzVHJhbnNpdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQW5pbWF0aW9uIGluIFtgS2V5ZnJhbWVgXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2ViX0FuaW1hdGlvbnNfQVBJL0tleWZyYW1lX0Zvcm1hdHMpIGZvcm1hdFxyXG4gICAqL1xyXG4gIGtleWZyYW1lczogS2V5ZnJhbWVbXTtcclxuICAvKipcclxuICAgKiBEdXJhdGlvbiBvZiB0aGUgdHJhbnNpdGlvbiBpbiBtc1xyXG4gICAqL1xyXG4gIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogV2V0aGVyIHRoZSBhbmltYXRpb24gc2hvdWxkIGJlIHBsYXllZCByZXZlcnNlZFxyXG4gICAqL1xyXG4gIHJldmVyc2U/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { inject, Injectable, RendererFactory2 } from '@angular/core';
2
- import { hashCode } from './utils';
3
- import { DOCUMENT } from '@angular/common';
4
- import * as i0 from "@angular/core";
5
- /**@internal*/
6
- export class KeyframesService {
7
- constructor() {
8
- this._rendererFactory = inject(RendererFactory2);
9
- this._renderer = this._rendererFactory.createRenderer(null, null);
10
- this._document = inject(DOCUMENT);
11
- }
12
- setKeyframes(keyframes) {
13
- const keyframesAsString = JSON.stringify(keyframes);
14
- const hashedKeyframes = hashCode(keyframesAsString);
15
- const keyframesName = `_${hashedKeyframes}`;
16
- const elementId = `keyframes-${keyframesName}`;
17
- const styleElement = this._document.getElementById(elementId) ||
18
- this._document.createElement('style');
19
- styleElement.innerHTML = this.generateCssKeyframeRule(keyframesName, keyframes);
20
- styleElement.id = elementId;
21
- if (!this._document.getElementById(elementId))
22
- this._renderer.appendChild(this._document.head, styleElement);
23
- return keyframesName;
24
- }
25
- generateCssKeyframeRule(animationName, keyframes) {
26
- const cssKeyframes = [];
27
- keyframes.forEach((keyframe, index) => {
28
- const offset = keyframe.offset ? `${keyframe.offset * 100}%` : '';
29
- const keyframeDeclaration = `${index === 0
30
- ? 'from'
31
- : offset
32
- ? offset
33
- : index === keyframes.length - 1
34
- ? 'to'
35
- : ''}`;
36
- const cssProperties = Object.entries(keyframe)
37
- .filter(([property]) => property !== 'offset')
38
- .map(([property, value]) => `${property}: ${value};`)
39
- .join('');
40
- cssKeyframes.push(`${keyframeDeclaration} { ${cssProperties} }`);
41
- });
42
- return `@keyframes ${animationName} { ${cssKeyframes.join(' ')} }`;
43
- }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: KeyframesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: KeyframesService, providedIn: 'root' }); }
46
- }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: KeyframesService, decorators: [{
48
- type: Injectable,
49
- args: [{ providedIn: 'root' }]
50
- }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5ZnJhbWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ3gtZWFzeS12aWV3LXRyYW5zaXRpb25zL3NyYy9saWIva2V5ZnJhbWVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTNDLGNBQWM7QUFFZCxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRW1CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RCxjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBc0QvQztJQXBEQyxZQUFZLENBQUMsU0FBcUI7UUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFFNUMsTUFBTSxTQUFTLEdBQUcsYUFBYSxhQUFhLEVBQUUsQ0FBQztRQUUvQyxNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUNuRCxhQUFhLEVBQ2IsU0FBUyxDQUNWLENBQUM7UUFDRixZQUFZLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRWhFLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyx1QkFBdUIsQ0FDN0IsYUFBcUIsRUFDckIsU0FBcUI7UUFFckIsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO1FBRWxDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFbEUsTUFBTSxtQkFBbUIsR0FBRyxHQUMxQixLQUFLLEtBQUssQ0FBQztnQkFDVCxDQUFDLENBQUMsTUFBTTtnQkFDUixDQUFDLENBQUMsTUFBTTtvQkFDUixDQUFDLENBQUMsTUFBTTtvQkFDUixDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQzt3QkFDaEMsQ0FBQyxDQUFDLElBQUk7d0JBQ04sQ0FBQyxDQUFDLEVBQ04sRUFBRSxDQUFDO1lBRUgsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7aUJBQzNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7aUJBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLFFBQVEsS0FBSyxLQUFLLEdBQUcsQ0FBQztpQkFDcEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRVosWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFtQixNQUFNLGFBQWEsSUFBSSxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGNBQWMsYUFBYSxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztJQUNyRSxDQUFDOzhHQXhEVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQURILE1BQU07OzJGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGhhc2hDb2RlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbi8qKkBpbnRlcm5hbCovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBLZXlmcmFtZXNTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlckZhY3RvcnkgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5Mik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXIgPSB0aGlzLl9yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG5cclxuICBzZXRLZXlmcmFtZXMoa2V5ZnJhbWVzOiBLZXlmcmFtZVtdKSB7XHJcbiAgICBjb25zdCBrZXlmcmFtZXNBc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGtleWZyYW1lcyk7XHJcbiAgICBjb25zdCBoYXNoZWRLZXlmcmFtZXMgPSBoYXNoQ29kZShrZXlmcmFtZXNBc1N0cmluZyk7XHJcbiAgICBjb25zdCBrZXlmcmFtZXNOYW1lID0gYF8ke2hhc2hlZEtleWZyYW1lc31gO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnRJZCA9IGBrZXlmcmFtZXMtJHtrZXlmcmFtZXNOYW1lfWA7XHJcblxyXG4gICAgY29uc3Qgc3R5bGVFbGVtZW50ID1cclxuICAgICAgdGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSB8fFxyXG4gICAgICB0aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG5cclxuICAgIHN0eWxlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdlbmVyYXRlQ3NzS2V5ZnJhbWVSdWxlKFxyXG4gICAgICBrZXlmcmFtZXNOYW1lLFxyXG4gICAgICBrZXlmcmFtZXNcclxuICAgICk7XHJcbiAgICBzdHlsZUVsZW1lbnQuaWQgPSBlbGVtZW50SWQ7XHJcblxyXG4gICAgaWYgKCF0aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpKVxyXG4gICAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kb2N1bWVudC5oZWFkLCBzdHlsZUVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBrZXlmcmFtZXNOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUNzc0tleWZyYW1lUnVsZShcclxuICAgIGFuaW1hdGlvbk5hbWU6IHN0cmluZyxcclxuICAgIGtleWZyYW1lczogS2V5ZnJhbWVbXVxyXG4gICk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjc3NLZXlmcmFtZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAga2V5ZnJhbWVzLmZvckVhY2goKGtleWZyYW1lLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBvZmZzZXQgPSBrZXlmcmFtZS5vZmZzZXQgPyBgJHtrZXlmcmFtZS5vZmZzZXQgKiAxMDB9JWAgOiAnJztcclxuXHJcbiAgICAgIGNvbnN0IGtleWZyYW1lRGVjbGFyYXRpb24gPSBgJHtcclxuICAgICAgICBpbmRleCA9PT0gMFxyXG4gICAgICAgICAgPyAnZnJvbSdcclxuICAgICAgICAgIDogb2Zmc2V0XHJcbiAgICAgICAgICA/IG9mZnNldFxyXG4gICAgICAgICAgOiBpbmRleCA9PT0ga2V5ZnJhbWVzLmxlbmd0aCAtIDFcclxuICAgICAgICAgID8gJ3RvJ1xyXG4gICAgICAgICAgOiAnJ1xyXG4gICAgICB9YDtcclxuXHJcbiAgICAgIGNvbnN0IGNzc1Byb3BlcnRpZXMgPSBPYmplY3QuZW50cmllcyhrZXlmcmFtZSlcclxuICAgICAgICAuZmlsdGVyKChbcHJvcGVydHldKSA9PiBwcm9wZXJ0eSAhPT0gJ29mZnNldCcpXHJcbiAgICAgICAgLm1hcCgoW3Byb3BlcnR5LCB2YWx1ZV0pID0+IGAke3Byb3BlcnR5fTogJHt2YWx1ZX07YClcclxuICAgICAgICAuam9pbignJyk7XHJcblxyXG4gICAgICBjc3NLZXlmcmFtZXMucHVzaChgJHtrZXlmcmFtZURlY2xhcmF0aW9ufSB7ICR7Y3NzUHJvcGVydGllc30gfWApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGBAa2V5ZnJhbWVzICR7YW5pbWF0aW9uTmFtZX0geyAke2Nzc0tleWZyYW1lcy5qb2luKCcgJyl9IH1gO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,41 +0,0 @@
1
- import { Directive, ElementRef, inject, RendererFactory2, } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Exclude an element from view transitions
6
- */
7
- export class NoTransitionDirective {
8
- constructor() {
9
- this._el = inject(ElementRef);
10
- this._rendererFactory = inject(RendererFactory2);
11
- this._renderer = this._rendererFactory.createRenderer(null, null);
12
- this._document = inject(DOCUMENT);
13
- }
14
- ngOnInit() {
15
- const transitionName = 'ngx-easy-view-transitions-disabled';
16
- this._el.nativeElement.style.viewTransitionName = transitionName;
17
- const elementId = 'view-transition-none';
18
- const styleElement = this._document.getElementById(elementId) ||
19
- this._document.createElement('style');
20
- styleElement.innerHTML = `
21
- ::view-transition-group(${transitionName}),
22
- ::view-transition-old(${transitionName}),
23
- ::view-transition-new(${transitionName}) {
24
- animation-duration: 0s !important;
25
- }
26
- `;
27
- styleElement.id = elementId;
28
- if (!this._document.getElementById(elementId))
29
- this._renderer.appendChild(this._document.head, styleElement);
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NoTransitionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
32
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: NoTransitionDirective, isStandalone: true, selector: "[noTransition]", ngImport: i0 }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NoTransitionDirective, decorators: [{
35
- type: Directive,
36
- args: [{
37
- standalone: true,
38
- selector: '[noTransition]',
39
- }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdHJhbnNpdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ3gtZWFzeS12aWV3LXRyYW5zaXRpb25zL3NyYy9saWIvbm8tdHJhbnNpdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUVOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTNDOztHQUVHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQUpsQztRQUttQixRQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RCxjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBeUIvQztJQXZCQyxRQUFRO1FBQ04sTUFBTSxjQUFjLEdBQUcsb0NBQW9DLENBQUM7UUFFNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztRQUVqRSxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQztRQUV6QyxNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLFlBQVksQ0FBQyxTQUFTLEdBQUc7OEJBQ0MsY0FBYzs0QkFDaEIsY0FBYzs0QkFDZCxjQUFjOzs7S0FHckMsQ0FBQztRQUNGLFlBQVksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbEUsQ0FBQzs4R0E1QlUscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBpbmplY3QsXHJcbiAgT25Jbml0LFxyXG4gIFJlbmRlcmVyRmFjdG9yeTIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbi8qKlxyXG4gKiBFeGNsdWRlIGFuIGVsZW1lbnQgZnJvbSB2aWV3IHRyYW5zaXRpb25zXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnW25vVHJhbnNpdGlvbl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm9UcmFuc2l0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9lbCA9IGluamVjdChFbGVtZW50UmVmKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlckZhY3RvcnkgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5Mik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXIgPSB0aGlzLl9yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRyYW5zaXRpb25OYW1lID0gJ25neC1lYXN5LXZpZXctdHJhbnNpdGlvbnMtZGlzYWJsZWQnO1xyXG5cclxuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlld1RyYW5zaXRpb25OYW1lID0gdHJhbnNpdGlvbk5hbWU7XHJcblxyXG4gICAgY29uc3QgZWxlbWVudElkID0gJ3ZpZXctdHJhbnNpdGlvbi1ub25lJztcclxuXHJcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPVxyXG4gICAgICB0aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpIHx8XHJcbiAgICAgIHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XHJcblxyXG4gICAgc3R5bGVFbGVtZW50LmlubmVySFRNTCA9IGBcclxuICAgIDo6dmlldy10cmFuc2l0aW9uLWdyb3VwKCR7dHJhbnNpdGlvbk5hbWV9KSxcclxuICAgIDo6dmlldy10cmFuc2l0aW9uLW9sZCgke3RyYW5zaXRpb25OYW1lfSksXHJcbiAgICA6OnZpZXctdHJhbnNpdGlvbi1uZXcoJHt0cmFuc2l0aW9uTmFtZX0pIHtcclxuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwcyAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgYDtcclxuICAgIHN0eWxlRWxlbWVudC5pZCA9IGVsZW1lbnRJZDtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCkpXHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmhlYWQsIHN0eWxlRWxlbWVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,70 +0,0 @@
1
- import { Directive, effect, ElementRef, inject, input } from '@angular/core';
2
- import { KeyframesService } from './keyframes.service';
3
- import { ViewTransitionsService } from './view-transitions.service';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Configure view transitions for the element
7
- */
8
- export class TransitionNameDirective {
9
- constructor() {
10
- /**
11
- * Set the `view-transition-name` property to assign transitions to that element
12
- */
13
- this.transitionName = input.required();
14
- /**
15
- * Configure the animation when the element enters the view
16
- */
17
- this.inAnimation = input();
18
- /**
19
- * Configure the animation when the element leaves the view
20
- */
21
- this.outAnimation = input();
22
- this._el = inject(ElementRef);
23
- this._keyframesService = inject(KeyframesService);
24
- this._viewTransitionsService = inject(ViewTransitionsService);
25
- //transitionName
26
- effect(() => {
27
- this._el.nativeElement.style.viewTransitionName = this.transitionName();
28
- });
29
- //inAnimation
30
- effect(async () => {
31
- const inAnimation = this.inAnimation();
32
- if (!inAnimation)
33
- return;
34
- if ('keyframesName' in inAnimation) {
35
- const animation = inAnimation;
36
- this._viewTransitionsService.setInAnimation(`${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`, this.transitionName());
37
- }
38
- if ('keyframes' in inAnimation) {
39
- const animation = inAnimation;
40
- const keyframesName = this._keyframesService.setKeyframes(animation.keyframes);
41
- this._viewTransitionsService.setInAnimation(`${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`, this.transitionName());
42
- }
43
- });
44
- //outAnimation
45
- effect(async () => {
46
- const outAnimation = this.outAnimation();
47
- if (!outAnimation)
48
- return;
49
- if ('keyframesName' in outAnimation) {
50
- const animation = outAnimation;
51
- this._viewTransitionsService.setOutAnimation(`${animation.duration}ms ${animation.keyframesName} ${animation.reverse ? 'reverse' : ''}`, this.transitionName());
52
- }
53
- if ('keyframes' in outAnimation) {
54
- const animation = outAnimation;
55
- const keyframesName = this._keyframesService.setKeyframes(animation.keyframes);
56
- this._viewTransitionsService.setOutAnimation(`${animation.duration}ms ${keyframesName} ${animation.reverse ? 'reverse' : ''}`, this.transitionName());
57
- }
58
- });
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TransitionNameDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: TransitionNameDirective, isStandalone: true, selector: "[transitionName]", inputs: { transitionName: { classPropertyName: "transitionName", publicName: "transitionName", isSignal: true, isRequired: true, transformFunction: null }, inAnimation: { classPropertyName: "inAnimation", publicName: "inAnimation", isSignal: true, isRequired: false, transformFunction: null }, outAnimation: { classPropertyName: "outAnimation", publicName: "outAnimation", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TransitionNameDirective, decorators: [{
64
- type: Directive,
65
- args: [{
66
- standalone: true,
67
- selector: '[transitionName]',
68
- }]
69
- }], ctorParameters: () => [] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi1uYW1lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25neC1lYXN5LXZpZXctdHJhbnNpdGlvbnMvc3JjL2xpYi90cmFuc2l0aW9uLW5hbWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVwRTs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7SUFrQmxDO1FBakJBOztXQUVHO1FBQ0gsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDMUM7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssRUFBZ0QsQ0FBQztRQUNwRTs7V0FFRztRQUNILGlCQUFZLEdBQUcsS0FBSyxFQUFnRCxDQUFDO1FBRXBELFFBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0MsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFHeEUsZ0JBQWdCO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYTtRQUNiLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFdkMsSUFBSSxDQUFDLFdBQVc7Z0JBQUUsT0FBTztZQUV6QixJQUFJLGVBQWUsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxTQUFTLEdBQUcsV0FBcUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FDekMsR0FBRyxTQUFTLENBQUMsUUFBUSxNQUFNLFNBQVMsQ0FBQyxhQUFhLElBQ2hELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDbEMsRUFBRSxFQUNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FDdEIsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLFdBQVcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxTQUFTLEdBQUcsV0FBa0MsQ0FBQztnQkFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FDdkQsU0FBUyxDQUFDLFNBQVMsQ0FDcEIsQ0FBQztnQkFDRixJQUFJLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUN6QyxHQUFHLFNBQVMsQ0FBQyxRQUFRLE1BQU0sYUFBYSxJQUN0QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQ2xDLEVBQUUsRUFDRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQ3RCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxjQUFjO1FBQ2QsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV6QyxJQUFJLENBQUMsWUFBWTtnQkFBRSxPQUFPO1lBRTFCLElBQUksZUFBZSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNwQyxNQUFNLFNBQVMsR0FBRyxZQUFzQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUMxQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLE1BQU0sU0FBUyxDQUFDLGFBQWEsSUFDaEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNsQyxFQUFFLEVBQ0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUN0QixDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNoQyxNQUFNLFNBQVMsR0FBRyxZQUFtQyxDQUFDO2dCQUN0RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUN2RCxTQUFTLENBQUMsU0FBUyxDQUNwQixDQUFDO2dCQUNGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQzFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsTUFBTSxhQUFhLElBQ3RDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDbEMsRUFBRSxFQUNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FDdEIsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBbkZVLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlmcmFtZXNUcmFuc2l0aW9uIH0gZnJvbSAnLi9rZXlmcmFtZXMtdHJhbnNpdGlvbic7XG5pbXBvcnQgeyBDc3NLZXlmcmFtZXNUcmFuc2l0aW9uIH0gZnJvbSAnLi9jc3Mta2V5ZnJhbWVzLXRyYW5zaXRpb24nO1xuaW1wb3J0IHsgS2V5ZnJhbWVzU2VydmljZSB9IGZyb20gJy4va2V5ZnJhbWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmlld1RyYW5zaXRpb25zU2VydmljZSB9IGZyb20gJy4vdmlldy10cmFuc2l0aW9ucy5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb25maWd1cmUgdmlldyB0cmFuc2l0aW9ucyBmb3IgdGhlIGVsZW1lbnRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3RyYW5zaXRpb25OYW1lXScsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zaXRpb25OYW1lRGlyZWN0aXZlIHtcbiAgLyoqXG4gICAqIFNldCB0aGUgYHZpZXctdHJhbnNpdGlvbi1uYW1lYCBwcm9wZXJ0eSB0byBhc3NpZ24gdHJhbnNpdGlvbnMgdG8gdGhhdCBlbGVtZW50XG4gICAqL1xuICB0cmFuc2l0aW9uTmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgLyoqXG4gICAqIENvbmZpZ3VyZSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIGVsZW1lbnQgZW50ZXJzIHRoZSB2aWV3XG4gICAqL1xuICBpbkFuaW1hdGlvbiA9IGlucHV0PEtleWZyYW1lc1RyYW5zaXRpb24gfCBDc3NLZXlmcmFtZXNUcmFuc2l0aW9uPigpO1xuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBhbmltYXRpb24gd2hlbiB0aGUgZWxlbWVudCBsZWF2ZXMgdGhlIHZpZXdcbiAgICovXG4gIG91dEFuaW1hdGlvbiA9IGlucHV0PEtleWZyYW1lc1RyYW5zaXRpb24gfCBDc3NLZXlmcmFtZXNUcmFuc2l0aW9uPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9rZXlmcmFtZXNTZXJ2aWNlID0gaW5qZWN0KEtleWZyYW1lc1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3VHJhbnNpdGlvbnNTZXJ2aWNlID0gaW5qZWN0KFZpZXdUcmFuc2l0aW9uc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vdHJhbnNpdGlvbk5hbWVcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5zdHlsZS52aWV3VHJhbnNpdGlvbk5hbWUgPSB0aGlzLnRyYW5zaXRpb25OYW1lKCk7XG4gICAgfSk7XG5cbiAgICAvL2luQW5pbWF0aW9uXG4gICAgZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGluQW5pbWF0aW9uID0gdGhpcy5pbkFuaW1hdGlvbigpO1xuXG4gICAgICBpZiAoIWluQW5pbWF0aW9uKSByZXR1cm47XG5cbiAgICAgIGlmICgna2V5ZnJhbWVzTmFtZScgaW4gaW5BbmltYXRpb24pIHtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gaW5BbmltYXRpb24gYXMgQ3NzS2V5ZnJhbWVzVHJhbnNpdGlvbjtcbiAgICAgICAgdGhpcy5fdmlld1RyYW5zaXRpb25zU2VydmljZS5zZXRJbkFuaW1hdGlvbihcbiAgICAgICAgICBgJHthbmltYXRpb24uZHVyYXRpb259bXMgJHthbmltYXRpb24ua2V5ZnJhbWVzTmFtZX0gJHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi5yZXZlcnNlID8gJ3JldmVyc2UnIDogJydcbiAgICAgICAgICB9YCxcbiAgICAgICAgICB0aGlzLnRyYW5zaXRpb25OYW1lKClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCdrZXlmcmFtZXMnIGluIGluQW5pbWF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IGluQW5pbWF0aW9uIGFzIEtleWZyYW1lc1RyYW5zaXRpb247XG4gICAgICAgIGNvbnN0IGtleWZyYW1lc05hbWUgPSB0aGlzLl9rZXlmcmFtZXNTZXJ2aWNlLnNldEtleWZyYW1lcyhcbiAgICAgICAgICBhbmltYXRpb24ua2V5ZnJhbWVzXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3ZpZXdUcmFuc2l0aW9uc1NlcnZpY2Uuc2V0SW5BbmltYXRpb24oXG4gICAgICAgICAgYCR7YW5pbWF0aW9uLmR1cmF0aW9ufW1zICR7a2V5ZnJhbWVzTmFtZX0gJHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi5yZXZlcnNlID8gJ3JldmVyc2UnIDogJydcbiAgICAgICAgICB9YCxcbiAgICAgICAgICB0aGlzLnRyYW5zaXRpb25OYW1lKClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vb3V0QW5pbWF0aW9uXG4gICAgZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG91dEFuaW1hdGlvbiA9IHRoaXMub3V0QW5pbWF0aW9uKCk7XG5cbiAgICAgIGlmICghb3V0QW5pbWF0aW9uKSByZXR1cm47XG5cbiAgICAgIGlmICgna2V5ZnJhbWVzTmFtZScgaW4gb3V0QW5pbWF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IG91dEFuaW1hdGlvbiBhcyBDc3NLZXlmcmFtZXNUcmFuc2l0aW9uO1xuICAgICAgICB0aGlzLl92aWV3VHJhbnNpdGlvbnNTZXJ2aWNlLnNldE91dEFuaW1hdGlvbihcbiAgICAgICAgICBgJHthbmltYXRpb24uZHVyYXRpb259bXMgJHthbmltYXRpb24ua2V5ZnJhbWVzTmFtZX0gJHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi5yZXZlcnNlID8gJ3JldmVyc2UnIDogJydcbiAgICAgICAgICB9YCxcbiAgICAgICAgICB0aGlzLnRyYW5zaXRpb25OYW1lKClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCdrZXlmcmFtZXMnIGluIG91dEFuaW1hdGlvbikge1xuICAgICAgICBjb25zdCBhbmltYXRpb24gPSBvdXRBbmltYXRpb24gYXMgS2V5ZnJhbWVzVHJhbnNpdGlvbjtcbiAgICAgICAgY29uc3Qga2V5ZnJhbWVzTmFtZSA9IHRoaXMuX2tleWZyYW1lc1NlcnZpY2Uuc2V0S2V5ZnJhbWVzKFxuICAgICAgICAgIGFuaW1hdGlvbi5rZXlmcmFtZXNcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fdmlld1RyYW5zaXRpb25zU2VydmljZS5zZXRPdXRBbmltYXRpb24oXG4gICAgICAgICAgYCR7YW5pbWF0aW9uLmR1cmF0aW9ufW1zICR7a2V5ZnJhbWVzTmFtZX0gJHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi5yZXZlcnNlID8gJ3JldmVyc2UnIDogJydcbiAgICAgICAgICB9YCxcbiAgICAgICAgICB0aGlzLnRyYW5zaXRpb25OYW1lKClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,11 +0,0 @@
1
- /**@internal*/
2
- export function hashCode(str) {
3
- let hash = 0;
4
- for (let i = 0, len = str.length; i < len; i++) {
5
- const code = str.charCodeAt(i);
6
- hash = (hash << 5) - hash + code;
7
- hash |= 0; // Convert to 32bit integer
8
- }
9
- return hash;
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ3gtZWFzeS12aWV3LXRyYW5zaXRpb25zL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBVztJQUNsQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsMkJBQTJCO0lBQ3hDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipAaW50ZXJuYWwqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzaENvZGUoc3RyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gIGxldCBoYXNoID0gMDtcclxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICBjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XHJcbiAgICBoYXNoID0gKGhhc2ggPDwgNSkgLSBoYXNoICsgY29kZTtcclxuICAgIGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXHJcbiAgfVxyXG4gIHJldHVybiBoYXNoO1xyXG59XHJcbiJdfQ==
@@ -1,44 +0,0 @@
1
- import { inject, Injectable, RendererFactory2 } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- /**@internal*/
5
- export class ViewTransitionsService {
6
- constructor() {
7
- this._rendererFactory = inject(RendererFactory2);
8
- this._renderer = this._rendererFactory.createRenderer(null, null);
9
- this._document = inject(DOCUMENT);
10
- }
11
- setOutAnimation(outAnimation, transitionName) {
12
- const elementId = `view-transition-out-${transitionName}`;
13
- const styleElement = this._document.getElementById(elementId) ||
14
- this._document.createElement('style');
15
- styleElement.innerHTML = `
16
- ::view-transition-old(${transitionName}){
17
- animation: ${outAnimation};
18
- }
19
- `;
20
- styleElement.id = elementId;
21
- if (!this._document.getElementById(elementId))
22
- this._renderer.appendChild(this._document.head, styleElement);
23
- }
24
- setInAnimation(inAnimation, transitionName) {
25
- const elementId = `view-transition-in-${transitionName}`;
26
- const styleElement = this._document.getElementById(elementId) ||
27
- this._document.createElement('style');
28
- styleElement.innerHTML = `
29
- ::view-transition-new(${transitionName}){
30
- animation: ${inAnimation};
31
- }
32
- `;
33
- styleElement.id = elementId;
34
- if (!this._document.getElementById(elementId))
35
- this._renderer.appendChild(this._document.head, styleElement);
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ViewTransitionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ViewTransitionsService, providedIn: 'root' }); }
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ViewTransitionsService, decorators: [{
41
- type: Injectable,
42
- args: [{ providedIn: 'root' }]
43
- }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10cmFuc2l0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbmd4LWVhc3ktdmlldy10cmFuc2l0aW9ucy9zcmMvbGliL3ZpZXctdHJhbnNpdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTNDLGNBQWM7QUFFZCxNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRW1CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RCxjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBcUMvQztJQW5DQyxlQUFlLENBQUMsWUFBb0IsRUFBRSxjQUFzQjtRQUMxRCxNQUFNLFNBQVMsR0FBRyx1QkFBdUIsY0FBYyxFQUFFLENBQUM7UUFFMUQsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxZQUFZLENBQUMsU0FBUyxHQUFHOzRCQUNELGNBQWM7bUJBQ3ZCLFlBQVk7O0tBRTFCLENBQUM7UUFDRixZQUFZLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBbUIsRUFBRSxjQUFzQjtRQUN4RCxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsY0FBYyxFQUFFLENBQUM7UUFFekQsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxZQUFZLENBQUMsU0FBUyxHQUFHOzRCQUNELGNBQWM7bUJBQ3ZCLFdBQVc7O0tBRXpCLENBQUM7UUFDRixZQUFZLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBdkNVLHNCQUFzQjtrSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuLyoqQGludGVybmFsKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFZpZXdUcmFuc2l0aW9uc1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyRmFjdG9yeSA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlciA9IHRoaXMuX3JlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XHJcblxyXG4gIHNldE91dEFuaW1hdGlvbihvdXRBbmltYXRpb246IHN0cmluZywgdHJhbnNpdGlvbk5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZWxlbWVudElkID0gYHZpZXctdHJhbnNpdGlvbi1vdXQtJHt0cmFuc2l0aW9uTmFtZX1gO1xyXG5cclxuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9XHJcbiAgICAgIHRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCkgfHxcclxuICAgICAgdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuXHJcbiAgICBzdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gYFxyXG4gICAgOjp2aWV3LXRyYW5zaXRpb24tb2xkKCR7dHJhbnNpdGlvbk5hbWV9KXtcclxuICAgICAgYW5pbWF0aW9uOiAke291dEFuaW1hdGlvbn07XHJcbiAgICB9XHJcbiAgICBgO1xyXG4gICAgc3R5bGVFbGVtZW50LmlkID0gZWxlbWVudElkO1xyXG5cclxuICAgIGlmICghdGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSlcclxuICAgICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5fZG9jdW1lbnQuaGVhZCwgc3R5bGVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHNldEluQW5pbWF0aW9uKGluQW5pbWF0aW9uOiBzdHJpbmcsIHRyYW5zaXRpb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGVsZW1lbnRJZCA9IGB2aWV3LXRyYW5zaXRpb24taW4tJHt0cmFuc2l0aW9uTmFtZX1gO1xyXG5cclxuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9XHJcbiAgICAgIHRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCkgfHxcclxuICAgICAgdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuXHJcbiAgICBzdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gYFxyXG4gICAgOjp2aWV3LXRyYW5zaXRpb24tbmV3KCR7dHJhbnNpdGlvbk5hbWV9KXtcclxuICAgICAgYW5pbWF0aW9uOiAke2luQW5pbWF0aW9ufTtcclxuICAgIH1cclxuICAgIGA7XHJcbiAgICBzdHlsZUVsZW1lbnQuaWQgPSBlbGVtZW50SWQ7XHJcblxyXG4gICAgaWYgKCF0aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpKVxyXG4gICAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kb2N1bWVudC5oZWFkLCBzdHlsZUVsZW1lbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVhc3ktdmlldy10cmFuc2l0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25neC1lYXN5LXZpZXctdHJhbnNpdGlvbnMvc3JjL25neC1lYXN5LXZpZXctdHJhbnNpdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=