simpo-component-library 3.6.556 → 3.6.557
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/esm2022/lib/directive/animation-directive.mjs +46 -41
- package/fesm2022/simpo-component-library.mjs +45 -40
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/directive/animation-directive.d.ts +2 -0
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
- package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
- package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
- package/lib/sections/faq-section/faq-section.component.d.ts +1 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -2
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
- package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
- package/package.json +1 -1
- package/simpo-component-library-3.6.557.tgz +0 -0
- package/simpo-component-library-3.6.556.tgz +0 -0
|
@@ -7,14 +7,16 @@ export class AnimationDirective {
|
|
|
7
7
|
this.el = el;
|
|
8
8
|
this.renderer = renderer;
|
|
9
9
|
this.eventService = eventService;
|
|
10
|
-
//
|
|
11
|
-
this.eventServiceSubscription =
|
|
12
|
-
|
|
13
|
-
this.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
// External animation updates
|
|
11
|
+
this.eventServiceSubscription =
|
|
12
|
+
this.eventService.animationChangeChecks.subscribe((res) => {
|
|
13
|
+
if (this.el.nativeElement.id === res?.id) {
|
|
14
|
+
this.animationData = res?.data;
|
|
15
|
+
this.applyAnimation(true);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
17
18
|
}
|
|
19
|
+
/* ------------------ LIFECYCLE ------------------ */
|
|
18
20
|
ngOnInit() {
|
|
19
21
|
this.createObserver();
|
|
20
22
|
}
|
|
@@ -22,53 +24,56 @@ export class AnimationDirective {
|
|
|
22
24
|
this.applyAnimation();
|
|
23
25
|
}
|
|
24
26
|
ngOnDestroy() {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (this.eventServiceSubscription)
|
|
28
|
-
this.eventServiceSubscription.unsubscribe();
|
|
27
|
+
this.observer?.disconnect();
|
|
28
|
+
this.eventServiceSubscription?.unsubscribe();
|
|
29
29
|
}
|
|
30
|
+
/* ------------------ OBSERVER ------------------ */
|
|
30
31
|
createObserver() {
|
|
31
32
|
if (typeof window === 'undefined' || !('IntersectionObserver' in window)) {
|
|
32
|
-
this.applyAnimation();
|
|
33
|
+
this.applyAnimation(true);
|
|
33
34
|
return;
|
|
34
35
|
}
|
|
35
|
-
const options = {
|
|
36
|
-
root: null,
|
|
37
|
-
threshold: 0.1,
|
|
38
|
-
};
|
|
39
36
|
this.observer = new IntersectionObserver((entries) => {
|
|
40
37
|
entries.forEach((entry) => {
|
|
41
|
-
if (entry.isIntersecting
|
|
42
|
-
|
|
43
|
-
this.el.nativeElement.classList.add('visible');
|
|
44
|
-
this.applyAnimation();
|
|
45
|
-
this.observer?.unobserve(this.el.nativeElement);
|
|
38
|
+
if (entry.isIntersecting) {
|
|
39
|
+
this.applyAnimation(true);
|
|
46
40
|
}
|
|
47
41
|
});
|
|
48
|
-
},
|
|
42
|
+
}, { threshold: 0.1 });
|
|
49
43
|
this.observer.observe(this.el.nativeElement);
|
|
50
44
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
/* ------------------ ANIMATION CORE ------------------ */
|
|
46
|
+
applyAnimation(force = false) {
|
|
47
|
+
if (!this.animationData)
|
|
48
|
+
return;
|
|
49
|
+
const currentType = this.animationData.type;
|
|
50
|
+
const currentSpeed = this.animationData.speed;
|
|
51
|
+
const typeChanged = this.previousType !== currentType;
|
|
52
|
+
const speedChanged = this.previousSpeed !== currentSpeed;
|
|
53
|
+
this.previousType = currentType;
|
|
54
|
+
this.previousSpeed = currentSpeed;
|
|
55
|
+
const animationName = this.getAnimationName(currentType);
|
|
56
|
+
const duration = this.getAnimationSpeed(currentSpeed);
|
|
54
57
|
this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');
|
|
55
|
-
|
|
58
|
+
if (typeChanged || speedChanged || force) {
|
|
59
|
+
this.restartAnimation(animationName, duration);
|
|
60
|
+
}
|
|
56
61
|
}
|
|
57
62
|
restartAnimation(name, durationSec) {
|
|
58
|
-
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
this.el.nativeElement.style.animation = `${name} ${dur} ease both`;
|
|
63
|
+
const el = this.el.nativeElement;
|
|
64
|
+
// 🔁 Force animation restart
|
|
65
|
+
el.style.animation = 'none';
|
|
66
|
+
el.offsetHeight; // Force reflow
|
|
67
|
+
if (!name || name === 'none') {
|
|
68
|
+
el.style.removeProperty('animation');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const duration = durationSec ?? '0.8s';
|
|
72
|
+
el.style.animation = `${name} ${duration} ease both`;
|
|
69
73
|
}
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
/* ------------------ HELPERS ------------------ */
|
|
75
|
+
getAnimationName(type) {
|
|
76
|
+
switch (type) {
|
|
72
77
|
case 'left':
|
|
73
78
|
return 'animateleft';
|
|
74
79
|
case 'right':
|
|
@@ -84,7 +89,7 @@ export class AnimationDirective {
|
|
|
84
89
|
case 'none':
|
|
85
90
|
return 'none';
|
|
86
91
|
default:
|
|
87
|
-
return '';
|
|
92
|
+
return '';
|
|
88
93
|
}
|
|
89
94
|
}
|
|
90
95
|
getAnimationSpeed(speed) {
|
|
@@ -105,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
105
110
|
type: Input,
|
|
106
111
|
args: ['simpoAnimation']
|
|
107
112
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBTU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTNUMsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixZQUNVLEVBQTJCLEVBQzNCLFFBQW1CLEVBQ25CLFlBQTJCO1FBRjNCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFFbkMscURBQXFEO1FBQ3JELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FDL0UsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztR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QUMvQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3hCLE9BQU8sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztJQUMxQyxDQUFDOytHQTlHVSxrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7bUlBRTBCLGFBQWE7c0JBQXJDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYW5pbWF0aW9uIH0gZnJvbSAnLi4vc3R5bGVzL2luZGV4JztcclxuaW1wb3J0IHsgQW5pbWF0aW9uTW9kZWwgfSBmcm9tICcuLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBTklNQVRJT05fU1BFRUQgfSBmcm9tICcuLi9zdHlsZXMvdHlwZXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ltcG9BbmltYXRpb25dJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5pbWF0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCdzaW1wb0FuaW1hdGlvbicpIGFuaW1hdGlvbkRhdGE/OiBBbmltYXRpb25Nb2RlbDtcclxuXHJcbiAgcHJpdmF0ZSBvYnNlcnZlcj86IEludGVyc2VjdGlvbk9ic2VydmVyO1xyXG4gIHByaXZhdGUgZXZlbnRTZXJ2aWNlU3Vic2NyaXB0aW9uOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gTGlzdGVuIGZvciBleHRlcm5hbCBjaGFuZ2VzIGFuZCByZS1hcHBseSBhbmltYXRpb25cclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlU3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudFNlcnZpY2UuYW5pbWF0aW9uQ2hhbmdlQ2hlY2tzLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5pZCA9PT0gcmVzPy5pZCkge1xyXG4gICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5hcHBseUFuaW1hdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVPYnNlcnZlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBwbHlBbmltYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgaWYgKHRoaXMuZXZlbnRTZXJ2aWNlU3Vic2NyaXB0aW9uKSB0aGlzLmV2ZW50U2VydmljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgY3JlYXRlT2JzZXJ2ZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgISgnSW50ZXJzZWN0aW9uT2JzZXJ2ZXInIGluIHdpbmRvdykpIHtcclxuICAgICAgdGhpcy5hcHBseUFuaW1hdGlvbigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3B0aW9uczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0ID0ge1xyXG4gICAgICByb290OiBudWxsLFxyXG4gICAgICB0aHJlc2hvbGQ6IDAuMSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4ge1xyXG4gICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZW50cnkuaXNJbnRlcnNlY3RpbmcgJiZcclxuICAgICAgICAgICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCd2aXNpYmxlJylcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5QW5pbWF0aW9uKCk7XHJcbiAgICAgICAgICB0aGlzLm9ic2VydmVyPy51bm9ic2VydmUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgb3B0aW9ucyk7XHJcblxyXG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5QW5pbWF0aW9uKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0QW5pbWF0aW9uTmFtZSgpO1xyXG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmdldEFuaW1hdGlvblNwZWVkKHRoaXMuYW5pbWF0aW9uRGF0YT8uc3BlZWQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xyXG4gICAgdGhpcy5yZXN0YXJ0QW5pbWF0aW9uKG5hbWUsIGR1cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzdGFydEFuaW1hdGlvbihuYW1lOiBzdHJpbmcsIGR1cmF0aW9uU2VjOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XHJcbiAgICAvLyBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAvLyBlbC5zdHlsZS5hbmltYXRpb24gPSAnbm9uZSc7XHJcbiAgICAvLyBlbC5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgLy8gaWYgKCFuYW1lIHx8IG5hbWUgPT09ICdub25lJykge1xyXG4gICAgLy8gICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnYW5pbWF0aW9uJyk7XHJcbiAgICAvLyAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdhbmltYXRpb24tbmFtZScpO1xyXG4gICAgLy8gICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnYW5pbWF0aW9uLWR1cmF0aW9uJyk7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBjb25zdCBkdXIgPSBkdXJhdGlvblNlYyA/PyAnMC44cyc7XHJcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYW5pbWF0aW9uID0gYCR7bmFtZX0gJHtkdXJ9IGVhc2UgYm90aGA7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0QW5pbWF0aW9uTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0aGlzLmFuaW1hdGlvbkRhdGE/LnR5cGUpIHtcclxuICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgcmV0dXJuICdhbmltYXRlbGVmdCc7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICByZXR1cm4gJ2FuaW1hdGVyaWdodCc7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgcmV0dXJuICdhbmltYXRldG9wJztcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICByZXR1cm4gJ2FuaW1hdGVib3R0b20nO1xyXG4gICAgICBjYXNlICdmYWRlSW4nOlxyXG4gICAgICAgIHJldHVybiAnb3BhYyc7XHJcbiAgICAgIGNhc2UgJ3pvb20nOlxyXG4gICAgICAgIHJldHVybiAnYW5pbWF0ZXpvb20nO1xyXG4gICAgICBjYXNlICdub25lJzpcclxuICAgICAgICByZXR1cm4gJ25vbmUnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnJzsgLy8gbm8gYW5pbWF0aW9uXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFuaW1hdGlvblNwZWVkKHNwZWVkPzogQU5JTUFUSU9OX1NQRUVEKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoIXNwZWVkKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiBhbmltYXRpb24uc3BlZWQ/LltzcGVlZF0gPz8gbnVsbDtcclxuICB9XHJcbn1cclxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBTU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTNUMsTUFBTSxPQUFPLGtCQUFrQjtJQVU3QixZQUNVLEVBQTJCLEVBQzNCLFFBQW1CLEVBQ25CLFlBQTJCO1FBRjNCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFFbkMsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyx3QkFBd0I7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO29CQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7b0JBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxxREFBcUQ7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQXVCO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7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QUFjLENBQUM7WUFDeEIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sWUFBWSxDQUFDO1lBQ3RCLEtBQUssUUFBUTtnQkFDWCxPQUFPLGVBQWUsQ0FBQztZQUN6QixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sYUFBYSxDQUFDO1lBQ3ZCLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBdUI7UUFDL0MsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QixPQUFPLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDMUMsQ0FBQzsrR0FuSVUsa0JBQWtCO21HQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO21JQUUwQixhQUFhO3NCQUFyQyxLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGFuaW1hdGlvbiB9IGZyb20gJy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbk1vZGVsIH0gZnJvbSAnLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQU5JTUFUSU9OX1NQRUVEIH0gZnJvbSAnLi4vc3R5bGVzL3R5cGVzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NpbXBvQW5pbWF0aW9uXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuaW1hdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgnc2ltcG9BbmltYXRpb24nKSBhbmltYXRpb25EYXRhPzogQW5pbWF0aW9uTW9kZWw7XHJcblxyXG4gIHByaXZhdGUgb2JzZXJ2ZXI/OiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcclxuICBwcml2YXRlIGV2ZW50U2VydmljZVN1YnNjcmlwdGlvbjogYW55O1xyXG5cclxuICAvLyBUcmFjayBwcmV2aW91cyBhbmltYXRpb24gc3RhdGVcclxuICBwcml2YXRlIHByZXZpb3VzVHlwZT86IHN0cmluZztcclxuICBwcml2YXRlIHByZXZpb3VzU3BlZWQ/OiBBTklNQVRJT05fU1BFRUQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gRXh0ZXJuYWwgYW5pbWF0aW9uIHVwZGF0ZXNcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlU3Vic2NyaXB0aW9uID1cclxuICAgICAgdGhpcy5ldmVudFNlcnZpY2UuYW5pbWF0aW9uQ2hhbmdlQ2hlY2tzLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmlkID09PSByZXM/LmlkKSB7XHJcbiAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5QW5pbWF0aW9uKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0gTElGRUNZQ0xFIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlT2JzZXJ2ZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwcGx5QW5pbWF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tIE9CU0VSVkVSIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICBwcml2YXRlIGNyZWF0ZU9ic2VydmVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICEoJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlBbmltYXRpb24odHJ1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxyXG4gICAgICAoZW50cmllcykgPT4ge1xyXG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5QW5pbWF0aW9uKHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICB7IHRocmVzaG9sZDogMC4xIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0gQU5JTUFUSU9OIENPUkUgLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4gIHByaXZhdGUgYXBwbHlBbmltYXRpb24oZm9yY2UgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmFuaW1hdGlvbkRhdGEpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50VHlwZSA9IHRoaXMuYW5pbWF0aW9uRGF0YS50eXBlO1xyXG4gICAgY29uc3QgY3VycmVudFNwZWVkID0gdGhpcy5hbmltYXRpb25EYXRhLnNwZWVkO1xyXG5cclxuICAgIGNvbnN0IHR5cGVDaGFuZ2VkID0gdGhpcy5wcmV2aW91c1R5cGUgIT09IGN1cnJlbnRUeXBlO1xyXG4gICAgY29uc3Qgc3BlZWRDaGFuZ2VkID0gdGhpcy5wcmV2aW91c1NwZWVkICE9PSBjdXJyZW50U3BlZWQ7XHJcblxyXG4gICAgdGhpcy5wcmV2aW91c1R5cGUgPSBjdXJyZW50VHlwZTtcclxuICAgIHRoaXMucHJldmlvdXNTcGVlZCA9IGN1cnJlbnRTcGVlZDtcclxuXHJcbiAgICBjb25zdCBhbmltYXRpb25OYW1lID0gdGhpcy5nZXRBbmltYXRpb25OYW1lKGN1cnJlbnRUeXBlKTtcclxuICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5nZXRBbmltYXRpb25TcGVlZChjdXJyZW50U3BlZWQpO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcclxuXHJcbiAgICBpZiAodHlwZUNoYW5nZWQgfHwgc3BlZWRDaGFuZ2VkIHx8IGZvcmNlKSB7XHJcbiAgICAgIHRoaXMucmVzdGFydEFuaW1hdGlvbihhbmltYXRpb25OYW1lLCBkdXJhdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc3RhcnRBbmltYXRpb24oXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBkdXJhdGlvblNlYzogc3RyaW5nIHwgbnVsbFxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgLy8g8J+UgSBGb3JjZSBhbmltYXRpb24gcmVzdGFydFxyXG4gICAgZWwuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnO1xyXG4gICAgZWwub2Zmc2V0SGVpZ2h0OyAvLyBGb3JjZSByZWZsb3dcclxuXHJcbiAgICBpZiAoIW5hbWUgfHwgbmFtZSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdhbmltYXRpb24nKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGR1cmF0aW9uID0gZHVyYXRpb25TZWMgPz8gJzAuOHMnO1xyXG4gICAgZWwuc3R5bGUuYW5pbWF0aW9uID0gYCR7bmFtZX0gJHtkdXJhdGlvbn0gZWFzZSBib3RoYDtcclxuICB9XHJcblxyXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLSBIRUxQRVJTIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICBwcml2YXRlIGdldEFuaW1hdGlvbk5hbWUodHlwZT86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgcmV0dXJuICdhbmltYXRlbGVmdCc7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICByZXR1cm4gJ2FuaW1hdGVyaWdodCc7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgcmV0dXJuICdhbmltYXRldG9wJztcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICByZXR1cm4gJ2FuaW1hdGVib3R0b20nO1xyXG4gICAgICBjYXNlICdmYWRlSW4nOlxyXG4gICAgICAgIHJldHVybiAnb3BhYyc7XHJcbiAgICAgIGNhc2UgJ3pvb20nOlxyXG4gICAgICAgIHJldHVybiAnYW5pbWF0ZXpvb20nO1xyXG4gICAgICBjYXNlICdub25lJzpcclxuICAgICAgICByZXR1cm4gJ25vbmUnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QW5pbWF0aW9uU3BlZWQoc3BlZWQ/OiBBTklNQVRJT05fU1BFRUQpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICghc3BlZWQpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIGFuaW1hdGlvbi5zcGVlZD8uW3NwZWVkXSA/PyBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -4255,14 +4255,16 @@ class AnimationDirective {
|
|
|
4255
4255
|
this.el = el;
|
|
4256
4256
|
this.renderer = renderer;
|
|
4257
4257
|
this.eventService = eventService;
|
|
4258
|
-
//
|
|
4259
|
-
this.eventServiceSubscription =
|
|
4260
|
-
|
|
4261
|
-
this.
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4258
|
+
// External animation updates
|
|
4259
|
+
this.eventServiceSubscription =
|
|
4260
|
+
this.eventService.animationChangeChecks.subscribe((res) => {
|
|
4261
|
+
if (this.el.nativeElement.id === res?.id) {
|
|
4262
|
+
this.animationData = res?.data;
|
|
4263
|
+
this.applyAnimation(true);
|
|
4264
|
+
}
|
|
4265
|
+
});
|
|
4265
4266
|
}
|
|
4267
|
+
/* ------------------ LIFECYCLE ------------------ */
|
|
4266
4268
|
ngOnInit() {
|
|
4267
4269
|
this.createObserver();
|
|
4268
4270
|
}
|
|
@@ -4270,53 +4272,56 @@ class AnimationDirective {
|
|
|
4270
4272
|
this.applyAnimation();
|
|
4271
4273
|
}
|
|
4272
4274
|
ngOnDestroy() {
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
if (this.eventServiceSubscription)
|
|
4276
|
-
this.eventServiceSubscription.unsubscribe();
|
|
4275
|
+
this.observer?.disconnect();
|
|
4276
|
+
this.eventServiceSubscription?.unsubscribe();
|
|
4277
4277
|
}
|
|
4278
|
+
/* ------------------ OBSERVER ------------------ */
|
|
4278
4279
|
createObserver() {
|
|
4279
4280
|
if (typeof window === 'undefined' || !('IntersectionObserver' in window)) {
|
|
4280
|
-
this.applyAnimation();
|
|
4281
|
+
this.applyAnimation(true);
|
|
4281
4282
|
return;
|
|
4282
4283
|
}
|
|
4283
|
-
const options = {
|
|
4284
|
-
root: null,
|
|
4285
|
-
threshold: 0.1,
|
|
4286
|
-
};
|
|
4287
4284
|
this.observer = new IntersectionObserver((entries) => {
|
|
4288
4285
|
entries.forEach((entry) => {
|
|
4289
|
-
if (entry.isIntersecting
|
|
4290
|
-
|
|
4291
|
-
this.el.nativeElement.classList.add('visible');
|
|
4292
|
-
this.applyAnimation();
|
|
4293
|
-
this.observer?.unobserve(this.el.nativeElement);
|
|
4286
|
+
if (entry.isIntersecting) {
|
|
4287
|
+
this.applyAnimation(true);
|
|
4294
4288
|
}
|
|
4295
4289
|
});
|
|
4296
|
-
},
|
|
4290
|
+
}, { threshold: 0.1 });
|
|
4297
4291
|
this.observer.observe(this.el.nativeElement);
|
|
4298
4292
|
}
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4293
|
+
/* ------------------ ANIMATION CORE ------------------ */
|
|
4294
|
+
applyAnimation(force = false) {
|
|
4295
|
+
if (!this.animationData)
|
|
4296
|
+
return;
|
|
4297
|
+
const currentType = this.animationData.type;
|
|
4298
|
+
const currentSpeed = this.animationData.speed;
|
|
4299
|
+
const typeChanged = this.previousType !== currentType;
|
|
4300
|
+
const speedChanged = this.previousSpeed !== currentSpeed;
|
|
4301
|
+
this.previousType = currentType;
|
|
4302
|
+
this.previousSpeed = currentSpeed;
|
|
4303
|
+
const animationName = this.getAnimationName(currentType);
|
|
4304
|
+
const duration = this.getAnimationSpeed(currentSpeed);
|
|
4302
4305
|
this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');
|
|
4303
|
-
|
|
4306
|
+
if (typeChanged || speedChanged || force) {
|
|
4307
|
+
this.restartAnimation(animationName, duration);
|
|
4308
|
+
}
|
|
4304
4309
|
}
|
|
4305
4310
|
restartAnimation(name, durationSec) {
|
|
4306
|
-
|
|
4307
|
-
//
|
|
4308
|
-
|
|
4309
|
-
//
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
this.el.nativeElement.style.animation = `${name} ${dur} ease both`;
|
|
4311
|
+
const el = this.el.nativeElement;
|
|
4312
|
+
// 🔁 Force animation restart
|
|
4313
|
+
el.style.animation = 'none';
|
|
4314
|
+
el.offsetHeight; // Force reflow
|
|
4315
|
+
if (!name || name === 'none') {
|
|
4316
|
+
el.style.removeProperty('animation');
|
|
4317
|
+
return;
|
|
4318
|
+
}
|
|
4319
|
+
const duration = durationSec ?? '0.8s';
|
|
4320
|
+
el.style.animation = `${name} ${duration} ease both`;
|
|
4317
4321
|
}
|
|
4318
|
-
|
|
4319
|
-
|
|
4322
|
+
/* ------------------ HELPERS ------------------ */
|
|
4323
|
+
getAnimationName(type) {
|
|
4324
|
+
switch (type) {
|
|
4320
4325
|
case 'left':
|
|
4321
4326
|
return 'animateleft';
|
|
4322
4327
|
case 'right':
|
|
@@ -4332,7 +4337,7 @@ class AnimationDirective {
|
|
|
4332
4337
|
case 'none':
|
|
4333
4338
|
return 'none';
|
|
4334
4339
|
default:
|
|
4335
|
-
return '';
|
|
4340
|
+
return '';
|
|
4336
4341
|
}
|
|
4337
4342
|
}
|
|
4338
4343
|
getAnimationSpeed(speed) {
|