ngx-easy-view-transitions 3.2.0 → 3.3.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
@@ -20,7 +20,7 @@ npm install ngx-easy-view-transitions
20
20
 
21
21
  Required Angular version: `>=19.0.0`
22
22
 
23
- 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
+ You have to enable Angular's built-in view transitions in the Router using the [`withViewTransitions()`](https://angular.io/api/router/withViewTransitions#usage-notes) function.
24
24
 
25
25
  ```typescript
26
26
  bootstrapApplication(AppComponent, {
@@ -32,10 +32,10 @@ bootstrapApplication(AppComponent, {
32
32
 
33
33
  ### Morph elements
34
34
 
35
- 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.
35
+ 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.
36
36
 
37
37
  ```typescript
38
- import {TransitionNameDirective} from 'ngx-easy-view-transitions';
38
+ import { TransitionNameDirective } from 'ngx-easy-view-transitions';
39
39
  ```
40
40
 
41
41
  `users.component.html`
@@ -52,6 +52,13 @@ import {TransitionNameDirective} from 'ngx-easy-view-transitions';
52
52
 
53
53
  Note that each `transitionName` must be unique for a page.
54
54
 
55
+ Transition names must be valid [`<custom-ident>`](https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident).
56
+ This library helps with this, by hashing the name to automatically comply.
57
+
58
+ For debugging purposes, you can show the original provided value as `data-original-view-transition-name` attribute by setting `showOriginalNameAttr` to `true`.
59
+
60
+ To opt out of hashing, set `preserveName` to `true`.
61
+
55
62
  ### Customize animations
56
63
 
57
64
  Instead of morphing an element, you can provide custom animations for entering and leaving the view using the `inAnimation` and `outAnimation` inputs.
@@ -74,8 +81,8 @@ You can simply use a CSS [`@keyframes`](https://developer.mozilla.org/en-US/docs
74
81
  ```
75
82
 
76
83
  ```typescript
77
- inAnimation = {keyframeName: 'fadeIn', duration: 600};
78
- outAnimation = {keyframeName: 'fadeIn', duration: 600, reverse: true};
84
+ inAnimation = { keyframeName: 'fadeIn', duration: 600 };
85
+ outAnimation = { keyframeName: 'fadeIn', duration: 600, reverse: true };
79
86
  ```
80
87
 
81
88
  ```angular2html
@@ -84,7 +91,7 @@ outAnimation = {keyframeName: 'fadeIn', duration: 600, reverse: true};
84
91
 
85
92
  #### Using Keyframe array
86
93
 
87
- 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:
94
+ 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:
88
95
 
89
96
  ```typescript
90
97
  const fadeIn: Keyframe[] = [
@@ -100,8 +107,8 @@ const fadeIn: Keyframe[] = [
100
107
  ```
101
108
 
102
109
  ```typescript
103
- inAnimation = {keyframes: fadeIn, duration: 600};
104
- outAnimation = {keyframes: fadeIn, duration: 600, reverse: true};
110
+ inAnimation = { keyframes: fadeIn, duration: 600 };
111
+ outAnimation = { keyframes: fadeIn, duration: 600, reverse: true };
105
112
  ```
106
113
 
107
114
  ```angular2html
@@ -127,22 +134,22 @@ animation = {
127
134
 
128
135
  ### Built-In animations
129
136
 
130
- To start faster there are some built-in animations available under `DefaultTransitions.*`.
137
+ To start faster, there are some built-in animations available under `DefaultTransitions.*`.
131
138
 
132
139
  ```typescript
133
- import {DefaultTransitions} from 'ngx-easy-view-transitions';
140
+ import { DefaultTransitions } from 'ngx-easy-view-transitions';
134
141
 
135
- inAnimation = {keyframes: DefaultTransitions.fadeInUp, duration: 600};
142
+ inAnimation = { keyframes: DefaultTransitions.fadeInUp, duration: 600 };
136
143
  ```
137
144
 
138
- 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).
145
+ You can check them out 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).
139
146
 
140
147
  ### Exclude element from view transitions
141
148
 
142
149
  When you want to exclude an element from view transitions, you can add the `noTransition` directive.
143
150
 
144
151
  ```typescript
145
- import {NoTransitionDirective} from 'ngx-easy-view-transitions';
152
+ import { NoTransitionDirective } from 'ngx-easy-view-transitions';
146
153
  ```
147
154
 
148
155
  ```angular2html
@@ -156,6 +163,7 @@ But you can also provide your own in and out animations by adding the `provideDe
156
163
 
157
164
  In the following example, the default animation gets disabled:
158
165
 
166
+ <!-- prettier-ignore-start -->
159
167
  ```typescript
160
168
  bootstrapApplication(AppComponent,
161
169
  {
@@ -169,6 +177,7 @@ bootstrapApplication(AppComponent,
169
177
  }
170
178
  );
171
179
  ```
180
+ <!-- prettier-ignore-end -->
172
181
 
173
182
  ### Troubleshooting
174
183
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, RendererFactory2, Directive, Injectable, input, Renderer2, effect, provideAppInitializer } from '@angular/core';
2
+ import { inject, ElementRef, RendererFactory2, Directive, Injectable, input, Renderer2, computed, effect, untracked, provideAppInitializer } from '@angular/core';
3
3
  import { DOCUMENT } from '@angular/common';
4
4
 
5
5
  const none = [];
@@ -612,14 +612,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
612
612
  }] });
613
613
 
614
614
  /**@internal*/
615
- function hashCode(str) {
616
- let hash = 0;
617
- for (let i = 0, len = str.length; i < len; i++) {
618
- const code = str.charCodeAt(i);
619
- hash = (hash << 5) - hash + code;
620
- hash |= 0; // Convert to 32bit integer
621
- }
622
- return hash;
615
+ function fnv1aHash(str) {
616
+ let hash = 2166136261;
617
+ for (let i = 0; i < str.length; i++) {
618
+ hash ^= str.charCodeAt(i);
619
+ hash = Math.imul(hash, 16777619);
620
+ }
621
+ return hash >>> 0;
623
622
  }
624
623
  /**@internal*/
625
624
  function isValidCustomIdentValue(value) {
@@ -645,7 +644,7 @@ class KeyframesService {
645
644
  }
646
645
  setKeyframes(keyframes) {
647
646
  const keyframesAsString = JSON.stringify(keyframes);
648
- const hashedKeyframes = hashCode(keyframesAsString);
647
+ const hashedKeyframes = fnv1aHash(keyframesAsString);
649
648
  const keyframesName = `keyframes-${hashedKeyframes}`;
650
649
  if (this._insertedKeyframes.has(keyframesName))
651
650
  return keyframesName;
@@ -719,7 +718,7 @@ class TransitionNameDirective {
719
718
  /**
720
719
  * Set the `view-transition-name` property to assign transitions to that element
721
720
  */
722
- this.transitionName = input.required(...(ngDevMode ? [{ debugName: "transitionName" }] : []));
721
+ this.originalTransitionName = input.required({ ...(ngDevMode ? { debugName: "originalTransitionName" } : {}), alias: 'transitionName' });
723
722
  /**
724
723
  * Configure the animation when the element enters the view
725
724
  */
@@ -728,17 +727,44 @@ class TransitionNameDirective {
728
727
  * Configure the animation when the element leaves the view
729
728
  */
730
729
  this.outAnimation = input(...(ngDevMode ? [undefined, { debugName: "outAnimation" }] : []));
730
+ /**
731
+ * Whether to keep the original transition name or apply hashing for CSS safety.
732
+ * Defaults to `false`. Set to `true` to use the name as provided without hashing.
733
+ */
734
+ this.preserveName = input(false, ...(ngDevMode ? [{ debugName: "preserveName" }] : []));
735
+ /**
736
+ * Whether to show the `data-original-view-transition-name` containing the provided transition name. Useful for debugging when hashing is enabled. Defaults to `false`.
737
+ */
738
+ this.showOriginalNameAttr = input(false, ...(ngDevMode ? [{ debugName: "showOriginalNameAttr" }] : []));
731
739
  this._el = inject(ElementRef);
732
740
  this._renderer = inject(Renderer2);
733
741
  this._keyframesService = inject(KeyframesService);
734
742
  this._viewTransitionsService = inject(ViewTransitionsService);
743
+ this._transitionName = computed(() => {
744
+ const originalTransitionName = this.originalTransitionName();
745
+ return this.preserveName() ? originalTransitionName : `vtn-${fnv1aHash(originalTransitionName)}`;
746
+ }, ...(ngDevMode ? [{ debugName: "_transitionName" }] : []));
735
747
  //transitionName
736
748
  effect(() => {
737
- const transitionName = this.transitionName();
738
- this._renderer.setStyle(this._el.nativeElement, 'view-transition-name', transitionName);
749
+ this._renderer.setStyle(this._el.nativeElement, 'view-transition-name', this._transitionName());
750
+ });
751
+ //originalNameAttr
752
+ effect(() => {
753
+ queueMicrotask(() => {
754
+ if (this.showOriginalNameAttr()) {
755
+ this._renderer.setAttribute(this._el.nativeElement, 'data-original-view-transition-name', untracked(this.originalTransitionName));
756
+ }
757
+ });
758
+ });
759
+ //warn if invalid transition name
760
+ effect(() => {
739
761
  queueMicrotask(() => {
740
- if (!isValidViewTransitionName(transitionName))
741
- console.warn(`The transition name "${transitionName}" is potentially invalid. Please use a valid CSS <custom-ident> value and avoid forbidden values like "unset", "initial", "inherit" and "none".`);
762
+ if (!this.preserveName())
763
+ return;
764
+ const transitionName = this._transitionName();
765
+ if (isValidViewTransitionName(transitionName))
766
+ return;
767
+ console.warn(`The provided transition name "${transitionName}" is potentially invalid. Please use a valid CSS <custom-ident> value and avoid forbidden values like "unset", "initial", "inherit" and "none". Or use hashing by setting "preserveName" to false.`);
742
768
  });
743
769
  });
744
770
  //inAnimation
@@ -746,14 +772,14 @@ class TransitionNameDirective {
746
772
  const animation = this.inAnimation();
747
773
  if (!animation)
748
774
  return;
749
- this.setTransition(this.transitionName(), animation, 'in');
775
+ this.setTransition(this._transitionName(), animation, 'in');
750
776
  });
751
777
  //outAnimation
752
778
  effect(async () => {
753
779
  const animation = this.outAnimation();
754
780
  if (!animation)
755
781
  return;
756
- this.setTransition(this.transitionName(), animation, 'out');
782
+ this.setTransition(this._transitionName(), animation, 'out');
757
783
  });
758
784
  }
759
785
  setTransition(transitionName, transition, direction) {
@@ -772,7 +798,7 @@ class TransitionNameDirective {
772
798
  }, direction);
773
799
  }
774
800
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TransitionNameDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
775
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.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 }); }
801
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.1", type: TransitionNameDirective, isStandalone: true, selector: "[transitionName]", inputs: { originalTransitionName: { classPropertyName: "originalTransitionName", 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 }, preserveName: { classPropertyName: "preserveName", publicName: "preserveName", isSignal: true, isRequired: false, transformFunction: null }, showOriginalNameAttr: { classPropertyName: "showOriginalNameAttr", publicName: "showOriginalNameAttr", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
776
802
  }
777
803
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TransitionNameDirective, decorators: [{
778
804
  type: Directive,
@@ -780,7 +806,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
780
806
  standalone: true,
781
807
  selector: '[transitionName]'
782
808
  }]
783
- }], ctorParameters: () => [], propDecorators: { transitionName: [{ type: i0.Input, args: [{ isSignal: true, alias: "transitionName", required: true }] }], inAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "inAnimation", required: false }] }], outAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "outAnimation", required: false }] }] } });
809
+ }], ctorParameters: () => [], propDecorators: { originalTransitionName: [{ type: i0.Input, args: [{ isSignal: true, alias: "transitionName", required: true }] }], inAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "inAnimation", required: false }] }], outAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "outAnimation", required: false }] }], preserveName: [{ type: i0.Input, args: [{ isSignal: true, alias: "preserveName", required: false }] }], showOriginalNameAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOriginalNameAttr", required: false }] }] } });
784
810
 
785
811
  /**
786
812
  * Override the default View Transition API cross-fade animation
@@ -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[] = [];\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\nexport const flipInX: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotateX(90deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotateX(0)',\n offset: 1\n }\n];\n\nexport const flipOutX: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotateX(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotateX(90deg)',\n offset: 1\n }\n];\n\nexport const flipInY: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotateY(90deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotateY(0)',\n offset: 1\n }\n];\n\nexport const flipOutY: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotateY(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotateY(90deg)',\n offset: 1\n }\n];\n\nexport const rotateIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotate(-180deg) scale(0.5)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotate(0) scale(1)',\n offset: 1\n }\n];\n\nexport const rotateOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotate(0) scale(1)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotate(180deg) scale(0.5)',\n offset: 1\n }\n];\n\nexport const bounceIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'scale(0.3)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'scale(1.05)',\n offset: 0.6\n },\n {\n opacity: 1,\n transform: 'scale(0.95)',\n offset: 0.8\n },\n {\n opacity: 1,\n transform: 'scale(1)',\n offset: 1\n }\n];\n\nexport const bounceOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'scale(1)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'scale(0.95)',\n offset: 0.2\n },\n {\n opacity: 1,\n transform: 'scale(1.05)',\n offset: 0.4\n },\n {\n opacity: 0,\n transform: 'scale(0.3)',\n offset: 1\n }\n];\n\nexport const blurIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'scale(1.2)',\n filter: 'blur(20px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'scale(1)',\n filter: 'blur(0px)',\n offset: 1\n }\n];\n\nexport const blurOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'scale(1)',\n filter: 'blur(0px)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'scale(0.8)',\n filter: 'blur(20px)',\n offset: 1\n }\n];\n\nexport const perspectiveIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'perspective(1000px) rotateY(90deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'perspective(1000px) rotateY(0deg)',\n offset: 1\n }\n];\n\nexport const perspectiveOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'perspective(1000px) rotateY(0deg)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'perspective(1000px) rotateY(-90deg)',\n offset: 1\n }\n];\n\nexport const skewIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translateX(-100%) skewX(30deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'translateX(0) skewX(0deg)',\n offset: 1\n }\n];\n\nexport const skewOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'translateX(0) skewX(0deg)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'translateX(100%) skewX(-30deg)',\n offset: 1\n }\n];\n\nexport const revealCircleIn: Keyframe[] = [\n {\n clipPath: 'circle(0% at 50% 50%)',\n offset: 0\n },\n {\n clipPath: 'circle(150% at 50% 50%)',\n offset: 1\n }\n];\n\nexport const revealCircleOut: Keyframe[] = [\n {\n clipPath: 'circle(150% at 50% 50%)',\n offset: 0\n },\n {\n clipPath: 'circle(0% at 50% 50%)',\n offset: 1\n }\n];\n\nexport const parallaxIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translateZ(-300px) scale(2)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'translateZ(0) scale(1)',\n offset: 1\n }\n];\n\nexport const parallaxOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'translateZ(0) scale(1)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'translateZ(-300px) scale(0.8)',\n offset: 1\n }\n];\n\nexport const tiltIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotate(-15deg) translateY(50%)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotate(0) translateY(0)',\n offset: 1\n }\n];\n\nexport const tiltOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotate(0) translateY(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotate(15deg) translateY(-50%)',\n offset: 1\n }\n];\n\nexport const glitchIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translate(0, 0)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'translate(-2px, 2px)',\n offset: 0.2\n },\n {\n opacity: 1,\n transform: 'translate(2px, -2px)',\n offset: 0.4\n },\n {\n opacity: 1,\n transform: 'translate(-1px, 1px)',\n offset: 0.6\n },\n {\n opacity: 1,\n transform: 'translate(1px, -1px)',\n offset: 0.8\n },\n {\n opacity: 1,\n transform: 'translate(0, 0)',\n offset: 1\n }\n];\n\nexport const curtainIn: Keyframe[] = [\n {\n clipPath: 'inset(0 50% 0 50%)',\n offset: 0\n },\n {\n clipPath: 'inset(0 0% 0 0%)',\n offset: 1\n }\n];\n\nexport const curtainOut: Keyframe[] = [\n {\n clipPath: 'inset(0 0% 0 0%)',\n offset: 0\n },\n {\n clipPath: 'inset(0 50% 0 50%)',\n offset: 1\n }\n];\n\nexport const depthFlipIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'perspective(1200px) rotateX(-90deg) translateZ(-200px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'perspective(1200px) rotateX(0deg) translateZ(0)',\n offset: 1\n }\n];\n\nexport const depthFlipOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'perspective(1200px) rotateX(0deg) translateZ(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'perspective(1200px) rotateX(90deg) translateZ(-200px)',\n offset: 1\n }\n];\n\nexport const distortWarpIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'skewX(20deg) scale(0.9)',\n filter: 'blur(10px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'skewX(0deg) scale(1)',\n filter: 'blur(0px)',\n offset: 1\n }\n];\n\nexport const distortWarpOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'skewX(0deg) scale(1)',\n filter: 'blur(0px)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'skewX(-20deg) scale(0.9)',\n filter: 'blur(10px)',\n offset: 1\n }\n];\n\nexport const coverFlipIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'perspective(800px) rotateY(-12deg) translateX(-8px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'perspective(800px) rotateY(0deg) translateX(0)',\n offset: 1\n }\n];\n\nexport const coverFlipOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'perspective(800px) rotateY(0deg) translateX(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'perspective(800px) rotateY(12deg) translateX(8px)',\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\n/**@internal*/\nexport function isValidCustomIdentValue(value: string): boolean {\n const regex =\n /^(?:[A-Za-z_]|-(?!\\d)|\\\\[0-9A-Fa-f]{1,6}|\\\\.)[A-Za-z0-9_-]*(?:\\\\[0-9A-Fa-f]{1,6}|\\\\.)*[A-Za-z0-9_-]*$/u;\n\n return regex.test(value);\n}\n\n/**@internal*/\nexport function isValidViewTransitionName(value: string): boolean {\n return (\n isValidCustomIdentValue(value) &&\n value !== 'unset' &&\n value !== 'initial' &&\n value !== 'inherit' &&\n value !== 'none'\n );\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 private readonly _insertedKeyframes = new Set<string>();\n\n setKeyframes(keyframes: Keyframe[]) {\n const keyframesAsString = JSON.stringify(keyframes);\n const hashedKeyframes = hashCode(keyframesAsString);\n const keyframesName = `keyframes-${hashedKeyframes}`;\n\n if (this._insertedKeyframes.has(keyframesName)) return keyframesName;\n\n const styleElement = this._renderer.createElement('style') as HTMLStyleElement;\n\n this._renderer.setAttribute(styleElement, 'id', keyframesName);\n\n const cssKeyframeRule = this.generateCssKeyframeRule(keyframesName, keyframes);\n this._renderer.setProperty(styleElement, 'innerHTML', cssKeyframeRule);\n\n this._renderer.appendChild(this._document.head, styleElement);\n\n this._insertedKeyframes.add(keyframesName);\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';\nimport { TransitionBase } from './transition-base';\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 setTransition(transitionName: string, animation: TransitionAnimation, direction: ViewTransitionDirection): void {\n const elementId = `view-transition-${direction}-${transitionName}`;\n\n if (this._document.getElementById(elementId)) return;\n\n const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');\n\n styleElement.innerHTML = `\n ::view-transition-${direction === 'in' ? 'new' : 'old'}(${transitionName}){\n animation-name: ${animation.name};\n animation-duration: ${animation.duration}ms;\n animation-delay: ${animation.delay ?? 0}ms;\n animation-direction: ${animation.reverse ? 'reverse' : 'normal'};\n animation-fill-mode: ${animation.fillMode ?? 'none'};\n animation-timing-function: ${animation.timingFunction ?? 'ease'};\n }\n `;\n styleElement.id = elementId;\n\n this._renderer.appendChild(this._document.head, styleElement);\n }\n}\n\n/**@internal*/\nexport type TransitionAnimation = TransitionBase & {\n name: string;\n};\n\n/**@internal*/\nexport type ViewTransitionDirection = 'in' | 'out';\n","import { Directive, effect, ElementRef, inject, input, Renderer2 } from '@angular/core';\nimport { KeyframesTransition } from './keyframes-transition';\nimport { CssKeyframesTransition } from './css-keyframes-transition';\nimport { KeyframesService } from './keyframes.service';\nimport { ViewTransitionDirection, ViewTransitionsService } from './view-transitions.service';\nimport { isValidViewTransitionName } from './utils';\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 _renderer = inject(Renderer2);\n private readonly _keyframesService = inject(KeyframesService);\n private readonly _viewTransitionsService = inject(ViewTransitionsService);\n\n constructor() {\n //transitionName\n effect(() => {\n const transitionName = this.transitionName();\n\n this._renderer.setStyle(this._el.nativeElement, 'view-transition-name', transitionName);\n\n queueMicrotask(() => {\n if (!isValidViewTransitionName(transitionName))\n console.warn(\n `The transition name \"${transitionName}\" is potentially invalid. Please use a valid CSS <custom-ident> value and avoid forbidden values like \"unset\", \"initial\", \"inherit\" and \"none\".`\n );\n });\n });\n\n //inAnimation\n effect(async () => {\n const animation = this.inAnimation();\n\n if (!animation) return;\n\n this.setTransition(this.transitionName(), animation, 'in');\n });\n\n //outAnimation\n effect(async () => {\n const animation = this.outAnimation();\n\n if (!animation) return;\n\n this.setTransition(this.transitionName(), animation, 'out');\n });\n }\n\n private setTransition(\n transitionName: string,\n transition: KeyframesTransition | CssKeyframesTransition,\n direction: ViewTransitionDirection\n ) {\n let animationName: string | null = null;\n\n if ('keyframesName' in transition) {\n animationName = (transition as CssKeyframesTransition).keyframesName;\n }\n\n if ('keyframes' in transition) {\n animationName = this._keyframesService.setKeyframes((transition as KeyframesTransition).keyframes);\n }\n\n if (!animationName) return;\n\n this._viewTransitionsService.setTransition(\n transitionName,\n {\n name: animationName,\n ...transition\n },\n direction\n );\n }\n}\n","import { EnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport { KeyframesTransition } from './keyframes-transition';\nimport { CssKeyframesTransition } from './css-keyframes-transition';\nimport { ViewTransitionDirection, 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 = (viewTransitionsService: ViewTransitionsService, keyframesService: KeyframesService) => {\n const setTransition = (\n transitionName: string,\n transition: KeyframesTransition | CssKeyframesTransition,\n direction: ViewTransitionDirection\n ) => {\n let animationName: string | null = null;\n\n if ('keyframesName' in transition) {\n animationName = (transition as CssKeyframesTransition).keyframesName;\n }\n\n if ('keyframes' in transition) {\n animationName = keyframesService.setKeyframes((transition as KeyframesTransition).keyframes);\n }\n\n if (!animationName) return;\n\n viewTransitionsService.setTransition(\n transitionName,\n {\n name: animationName,\n ...transition\n },\n direction\n );\n };\n\n return () => {\n if (inAnimation) {\n setTransition('root', inAnimation, 'in');\n }\n\n if (outAnimation) {\n setTransition('root', outAnimation, 'out');\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
+ {"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\nexport const flipInX: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotateX(90deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotateX(0)',\n offset: 1\n }\n];\n\nexport const flipOutX: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotateX(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotateX(90deg)',\n offset: 1\n }\n];\n\nexport const flipInY: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotateY(90deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotateY(0)',\n offset: 1\n }\n];\n\nexport const flipOutY: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotateY(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotateY(90deg)',\n offset: 1\n }\n];\n\nexport const rotateIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotate(-180deg) scale(0.5)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotate(0) scale(1)',\n offset: 1\n }\n];\n\nexport const rotateOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotate(0) scale(1)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotate(180deg) scale(0.5)',\n offset: 1\n }\n];\n\nexport const bounceIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'scale(0.3)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'scale(1.05)',\n offset: 0.6\n },\n {\n opacity: 1,\n transform: 'scale(0.95)',\n offset: 0.8\n },\n {\n opacity: 1,\n transform: 'scale(1)',\n offset: 1\n }\n];\n\nexport const bounceOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'scale(1)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'scale(0.95)',\n offset: 0.2\n },\n {\n opacity: 1,\n transform: 'scale(1.05)',\n offset: 0.4\n },\n {\n opacity: 0,\n transform: 'scale(0.3)',\n offset: 1\n }\n];\n\nexport const blurIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'scale(1.2)',\n filter: 'blur(20px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'scale(1)',\n filter: 'blur(0px)',\n offset: 1\n }\n];\n\nexport const blurOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'scale(1)',\n filter: 'blur(0px)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'scale(0.8)',\n filter: 'blur(20px)',\n offset: 1\n }\n];\n\nexport const perspectiveIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'perspective(1000px) rotateY(90deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'perspective(1000px) rotateY(0deg)',\n offset: 1\n }\n];\n\nexport const perspectiveOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'perspective(1000px) rotateY(0deg)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'perspective(1000px) rotateY(-90deg)',\n offset: 1\n }\n];\n\nexport const skewIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translateX(-100%) skewX(30deg)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'translateX(0) skewX(0deg)',\n offset: 1\n }\n];\n\nexport const skewOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'translateX(0) skewX(0deg)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'translateX(100%) skewX(-30deg)',\n offset: 1\n }\n];\n\nexport const revealCircleIn: Keyframe[] = [\n {\n clipPath: 'circle(0% at 50% 50%)',\n offset: 0\n },\n {\n clipPath: 'circle(150% at 50% 50%)',\n offset: 1\n }\n];\n\nexport const revealCircleOut: Keyframe[] = [\n {\n clipPath: 'circle(150% at 50% 50%)',\n offset: 0\n },\n {\n clipPath: 'circle(0% at 50% 50%)',\n offset: 1\n }\n];\n\nexport const parallaxIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translateZ(-300px) scale(2)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'translateZ(0) scale(1)',\n offset: 1\n }\n];\n\nexport const parallaxOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'translateZ(0) scale(1)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'translateZ(-300px) scale(0.8)',\n offset: 1\n }\n];\n\nexport const tiltIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'rotate(-15deg) translateY(50%)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'rotate(0) translateY(0)',\n offset: 1\n }\n];\n\nexport const tiltOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'rotate(0) translateY(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'rotate(15deg) translateY(-50%)',\n offset: 1\n }\n];\n\nexport const glitchIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'translate(0, 0)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'translate(-2px, 2px)',\n offset: 0.2\n },\n {\n opacity: 1,\n transform: 'translate(2px, -2px)',\n offset: 0.4\n },\n {\n opacity: 1,\n transform: 'translate(-1px, 1px)',\n offset: 0.6\n },\n {\n opacity: 1,\n transform: 'translate(1px, -1px)',\n offset: 0.8\n },\n {\n opacity: 1,\n transform: 'translate(0, 0)',\n offset: 1\n }\n];\n\nexport const curtainIn: Keyframe[] = [\n {\n clipPath: 'inset(0 50% 0 50%)',\n offset: 0\n },\n {\n clipPath: 'inset(0 0% 0 0%)',\n offset: 1\n }\n];\n\nexport const curtainOut: Keyframe[] = [\n {\n clipPath: 'inset(0 0% 0 0%)',\n offset: 0\n },\n {\n clipPath: 'inset(0 50% 0 50%)',\n offset: 1\n }\n];\n\nexport const depthFlipIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'perspective(1200px) rotateX(-90deg) translateZ(-200px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'perspective(1200px) rotateX(0deg) translateZ(0)',\n offset: 1\n }\n];\n\nexport const depthFlipOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'perspective(1200px) rotateX(0deg) translateZ(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'perspective(1200px) rotateX(90deg) translateZ(-200px)',\n offset: 1\n }\n];\n\nexport const distortWarpIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'skewX(20deg) scale(0.9)',\n filter: 'blur(10px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'skewX(0deg) scale(1)',\n filter: 'blur(0px)',\n offset: 1\n }\n];\n\nexport const distortWarpOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'skewX(0deg) scale(1)',\n filter: 'blur(0px)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'skewX(-20deg) scale(0.9)',\n filter: 'blur(10px)',\n offset: 1\n }\n];\n\nexport const coverFlipIn: Keyframe[] = [\n {\n opacity: 0,\n transform: 'perspective(800px) rotateY(-12deg) translateX(-8px)',\n offset: 0\n },\n {\n opacity: 1,\n transform: 'perspective(800px) rotateY(0deg) translateX(0)',\n offset: 1\n }\n];\n\nexport const coverFlipOut: Keyframe[] = [\n {\n opacity: 1,\n transform: 'perspective(800px) rotateY(0deg) translateX(0)',\n offset: 0\n },\n {\n opacity: 0,\n transform: 'perspective(800px) rotateY(12deg) translateX(8px)',\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 fnv1aHash(str: string) {\n let hash = 2166136261;\n for (let i = 0; i < str.length; i++) {\n hash ^= str.charCodeAt(i);\n hash = Math.imul(hash, 16777619);\n }\n return hash >>> 0;\n}\n\n/**@internal*/\nexport function isValidCustomIdentValue(value: string): boolean {\n const regex =\n /^(?:[A-Za-z_]|-(?!\\d)|\\\\[0-9A-Fa-f]{1,6}|\\\\.)[A-Za-z0-9_-]*(?:\\\\[0-9A-Fa-f]{1,6}|\\\\.)*[A-Za-z0-9_-]*$/u;\n\n return regex.test(value);\n}\n\n/**@internal*/\nexport function isValidViewTransitionName(value: string): boolean {\n return (\n isValidCustomIdentValue(value) &&\n value !== 'unset' &&\n value !== 'initial' &&\n value !== 'inherit' &&\n value !== 'none'\n );\n}\n","import { inject, Injectable, RendererFactory2 } from '@angular/core';\nimport { fnv1aHash } 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 private readonly _insertedKeyframes = new Set<string>();\n\n setKeyframes(keyframes: Keyframe[]) {\n const keyframesAsString = JSON.stringify(keyframes);\n const hashedKeyframes = fnv1aHash(keyframesAsString);\n const keyframesName = `keyframes-${hashedKeyframes}`;\n\n if (this._insertedKeyframes.has(keyframesName)) return keyframesName;\n\n const styleElement = this._renderer.createElement('style') as HTMLStyleElement;\n\n this._renderer.setAttribute(styleElement, 'id', keyframesName);\n\n const cssKeyframeRule = this.generateCssKeyframeRule(keyframesName, keyframes);\n this._renderer.setProperty(styleElement, 'innerHTML', cssKeyframeRule);\n\n this._renderer.appendChild(this._document.head, styleElement);\n\n this._insertedKeyframes.add(keyframesName);\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';\nimport { TransitionBase } from './transition-base';\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 setTransition(transitionName: string, animation: TransitionAnimation, direction: ViewTransitionDirection): void {\n const elementId = `view-transition-${direction}-${transitionName}`;\n\n if (this._document.getElementById(elementId)) return;\n\n const styleElement = this._document.getElementById(elementId) || this._document.createElement('style');\n\n styleElement.innerHTML = `\n ::view-transition-${direction === 'in' ? 'new' : 'old'}(${transitionName}){\n animation-name: ${animation.name};\n animation-duration: ${animation.duration}ms;\n animation-delay: ${animation.delay ?? 0}ms;\n animation-direction: ${animation.reverse ? 'reverse' : 'normal'};\n animation-fill-mode: ${animation.fillMode ?? 'none'};\n animation-timing-function: ${animation.timingFunction ?? 'ease'};\n }\n `;\n styleElement.id = elementId;\n\n this._renderer.appendChild(this._document.head, styleElement);\n }\n}\n\n/**@internal*/\nexport type TransitionAnimation = TransitionBase & {\n name: string;\n};\n\n/**@internal*/\nexport type ViewTransitionDirection = 'in' | 'out';\n","import { computed, Directive, effect, ElementRef, inject, input, Renderer2, untracked } from '@angular/core';\nimport { KeyframesTransition } from './keyframes-transition';\nimport { CssKeyframesTransition } from './css-keyframes-transition';\nimport { KeyframesService } from './keyframes.service';\nimport { ViewTransitionDirection, ViewTransitionsService } from './view-transitions.service';\nimport { fnv1aHash, isValidViewTransitionName } from './utils';\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 originalTransitionName = input.required<string>({ alias: 'transitionName' });\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 * Whether to keep the original transition name or apply hashing for CSS safety.\n * Defaults to `false`. Set to `true` to use the name as provided without hashing.\n */\n preserveName = input<boolean>(false);\n /**\n * Whether to show the `data-original-view-transition-name` containing the provided transition name. Useful for debugging when hashing is enabled. Defaults to `false`.\n */\n showOriginalNameAttr = input<boolean>(false);\n\n private readonly _el = inject(ElementRef);\n private readonly _renderer = inject(Renderer2);\n private readonly _keyframesService = inject(KeyframesService);\n private readonly _viewTransitionsService = inject(ViewTransitionsService);\n\n private readonly _transitionName = computed(() => {\n const originalTransitionName = this.originalTransitionName();\n\n return this.preserveName() ? originalTransitionName : `vtn-${fnv1aHash(originalTransitionName)}`;\n });\n\n constructor() {\n //transitionName\n effect(() => {\n this._renderer.setStyle(this._el.nativeElement, 'view-transition-name', this._transitionName());\n });\n\n //originalNameAttr\n effect(() => {\n queueMicrotask(() => {\n if (this.showOriginalNameAttr()) {\n this._renderer.setAttribute(\n this._el.nativeElement,\n 'data-original-view-transition-name',\n untracked(this.originalTransitionName)\n );\n }\n });\n });\n\n //warn if invalid transition name\n effect(() => {\n queueMicrotask(() => {\n if (!this.preserveName()) return;\n\n const transitionName = this._transitionName();\n\n if (isValidViewTransitionName(transitionName)) return;\n\n console.warn(\n `The provided transition name \"${transitionName}\" is potentially invalid. Please use a valid CSS <custom-ident> value and avoid forbidden values like \"unset\", \"initial\", \"inherit\" and \"none\". Or use hashing by setting \"preserveName\" to false.`\n );\n });\n });\n //inAnimation\n effect(async () => {\n const animation = this.inAnimation();\n\n if (!animation) return;\n\n this.setTransition(this._transitionName(), animation, 'in');\n });\n\n //outAnimation\n effect(async () => {\n const animation = this.outAnimation();\n\n if (!animation) return;\n\n this.setTransition(this._transitionName(), animation, 'out');\n });\n }\n\n private setTransition(\n transitionName: string,\n transition: KeyframesTransition | CssKeyframesTransition,\n direction: ViewTransitionDirection\n ) {\n let animationName: string | null = null;\n\n if ('keyframesName' in transition) {\n animationName = (transition as CssKeyframesTransition).keyframesName;\n }\n\n if ('keyframes' in transition) {\n animationName = this._keyframesService.setKeyframes((transition as KeyframesTransition).keyframes);\n }\n\n if (!animationName) return;\n\n this._viewTransitionsService.setTransition(\n transitionName,\n {\n name: animationName,\n ...transition\n },\n direction\n );\n }\n}\n","import { EnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport { KeyframesTransition } from './keyframes-transition';\nimport { CssKeyframesTransition } from './css-keyframes-transition';\nimport { ViewTransitionDirection, 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 = (viewTransitionsService: ViewTransitionsService, keyframesService: KeyframesService) => {\n const setTransition = (\n transitionName: string,\n transition: KeyframesTransition | CssKeyframesTransition,\n direction: ViewTransitionDirection\n ) => {\n let animationName: string | null = null;\n\n if ('keyframesName' in transition) {\n animationName = (transition as CssKeyframesTransition).keyframesName;\n }\n\n if ('keyframes' in transition) {\n animationName = keyframesService.setKeyframes((transition as KeyframesTransition).keyframes);\n }\n\n if (!animationName) return;\n\n viewTransitionsService.setTransition(\n transitionName,\n {\n name: animationName,\n ...transition\n },\n direction\n );\n };\n\n return () => {\n if (inAnimation) {\n setTransition('root', inAnimation, 'in');\n }\n\n if (outAnimation) {\n setTransition('root', outAnimation, 'out');\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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"}
package/package.json CHANGED
@@ -40,5 +40,5 @@
40
40
  "default": "./fesm2022/ngx-easy-view-transitions.mjs"
41
41
  }
42
42
  },
43
- "version": "3.2.0"
43
+ "version": "3.3.0"
44
44
  }
@@ -1,4 +1,4 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { OnInit, EnvironmentProviders } from '@angular/core';
3
3
 
4
4
  declare const none: Keyframe[];
@@ -142,8 +142,8 @@ declare class NoTransitionDirective implements OnInit {
142
142
  private readonly _renderer;
143
143
  private readonly _document;
144
144
  ngOnInit(): void;
145
- static ɵfac: i0.ɵɵFactoryDeclaration<NoTransitionDirective, never>;
146
- static ɵdir: i0.ɵɵDirectiveDeclaration<NoTransitionDirective, "[noTransition]", never, {}, {}, never, never, true, never>;
145
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NoTransitionDirective, never>;
146
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NoTransitionDirective, "[noTransition]", never, {}, {}, never, never, true, never>;
147
147
  }
148
148
 
149
149
  interface TransitionBase {
@@ -196,23 +196,33 @@ declare class TransitionNameDirective {
196
196
  /**
197
197
  * Set the `view-transition-name` property to assign transitions to that element
198
198
  */
199
- transitionName: i0.InputSignal<string>;
199
+ originalTransitionName: _angular_core.InputSignal<string>;
200
200
  /**
201
201
  * Configure the animation when the element enters the view
202
202
  */
203
- inAnimation: i0.InputSignal<KeyframesTransition | CssKeyframesTransition | undefined>;
203
+ inAnimation: _angular_core.InputSignal<KeyframesTransition | CssKeyframesTransition | undefined>;
204
204
  /**
205
205
  * Configure the animation when the element leaves the view
206
206
  */
207
- outAnimation: i0.InputSignal<KeyframesTransition | CssKeyframesTransition | undefined>;
207
+ outAnimation: _angular_core.InputSignal<KeyframesTransition | CssKeyframesTransition | undefined>;
208
+ /**
209
+ * Whether to keep the original transition name or apply hashing for CSS safety.
210
+ * Defaults to `false`. Set to `true` to use the name as provided without hashing.
211
+ */
212
+ preserveName: _angular_core.InputSignal<boolean>;
213
+ /**
214
+ * Whether to show the `data-original-view-transition-name` containing the provided transition name. Useful for debugging when hashing is enabled. Defaults to `false`.
215
+ */
216
+ showOriginalNameAttr: _angular_core.InputSignal<boolean>;
208
217
  private readonly _el;
209
218
  private readonly _renderer;
210
219
  private readonly _keyframesService;
211
220
  private readonly _viewTransitionsService;
221
+ private readonly _transitionName;
212
222
  constructor();
213
223
  private setTransition;
214
- static ɵfac: i0.ɵɵFactoryDeclaration<TransitionNameDirective, never>;
215
- static ɵdir: i0.ɵɵDirectiveDeclaration<TransitionNameDirective, "[transitionName]", never, { "transitionName": { "alias": "transitionName"; "required": true; "isSignal": true; }; "inAnimation": { "alias": "inAnimation"; "required": false; "isSignal": true; }; "outAnimation": { "alias": "outAnimation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
224
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TransitionNameDirective, never>;
225
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TransitionNameDirective, "[transitionName]", never, { "originalTransitionName": { "alias": "transitionName"; "required": true; "isSignal": true; }; "inAnimation": { "alias": "inAnimation"; "required": false; "isSignal": true; }; "outAnimation": { "alias": "outAnimation"; "required": false; "isSignal": true; }; "preserveName": { "alias": "preserveName"; "required": false; "isSignal": true; }; "showOriginalNameAttr": { "alias": "showOriginalNameAttr"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
216
226
  }
217
227
 
218
228
  /**