@ethlete/core 3.6.1 → 3.7.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.
|
@@ -9,7 +9,7 @@ export class ObserveVisibilityDirective {
|
|
|
9
9
|
this._destroy$ = createDestroy();
|
|
10
10
|
this._elementRef = inject(ElementRef);
|
|
11
11
|
this._intersectionObserverService = inject(IntersectionObserverService);
|
|
12
|
-
this.isIntersecting = signal(
|
|
12
|
+
this.isIntersecting = signal(null);
|
|
13
13
|
this.etObserveVisibility = new EventEmitter();
|
|
14
14
|
}
|
|
15
15
|
ngAfterViewInit() {
|
|
@@ -20,8 +20,20 @@ export class ObserveVisibilityDirective {
|
|
|
20
20
|
if (!entry) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const isAbove = entry.boundingClientRect.top < 0 && entry.boundingClientRect.bottom < 0;
|
|
24
|
+
const isBelow = entry.boundingClientRect.top > window.innerHeight && entry.boundingClientRect.bottom > window.innerHeight;
|
|
25
|
+
const isLeft = entry.boundingClientRect.left < 0 && entry.boundingClientRect.right < 0;
|
|
26
|
+
const isRight = entry.boundingClientRect.left > window.innerWidth && entry.boundingClientRect.right > window.innerWidth;
|
|
27
|
+
const data = {
|
|
28
|
+
visible: entry.isIntersecting,
|
|
29
|
+
isAbove,
|
|
30
|
+
isBelow,
|
|
31
|
+
isLeft,
|
|
32
|
+
isRight,
|
|
33
|
+
entry,
|
|
34
|
+
};
|
|
35
|
+
this.etObserveVisibility.emit(data);
|
|
36
|
+
this.isIntersecting.set(data);
|
|
25
37
|
}))
|
|
26
38
|
.subscribe();
|
|
27
39
|
}
|
|
@@ -52,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
52
64
|
}], propDecorators: { etObserveVisibility: [{
|
|
53
65
|
type: Output
|
|
54
66
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS12aXNpYmlsaXR5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvb2JzZXJ2ZS12aXNpYmlsaXR5L29ic2VydmUtdmlzaWJpbGl0eS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGNBQWMsRUFDZCxNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUU1QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBNkIsMEJBQTBCLENBQUMsQ0FBQztBQXlCbkgsTUFBTSxPQUFPLDBCQUEwQjtJQWR2QztRQWVtQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQzFELGlDQUE0QixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRWpFLG1CQUFjLEdBQUcsTUFBTSxDQUFpQyxJQUFJLENBQUMsQ0FBQztRQUd4RSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztLQW9DNUU7SUFsQ0MsZUFBZTtRQUNiLElBQUksQ0FBQyw0QkFBNEI7YUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDekIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpCLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTzthQUNSO1lBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDeEYsTUFBTSxPQUFPLEdBQ1gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1RyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUN2RixNQUFNLE9BQU8sR0FDWCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBRTFHLE1BQU0sSUFBSSxHQUE0QjtnQkFDcEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxjQUFjO2dCQUM3QixPQUFPO2dCQUNQLE9BQU87Z0JBQ1AsTUFBTTtnQkFDTixPQUFPO2dCQUNQLEtBQUs7YUFDTixDQUFDO1lBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBM0NVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDZQQVgxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx3QkFBd0I7Z0JBQ2pDLFdBQVcsRUFBRSwwQkFBMEI7YUFDeEM7U0FDRjs7MkZBTVUsMEJBQTBCO2tCQWR0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGO29CQUNELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsdUJBQXVCO3dCQUM5QiwyQ0FBMkMsRUFBRSxnQkFBZ0I7cUJBQzlEO2lCQUNGOzhCQVNVLG1CQUFtQjtzQkFEM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgT3V0cHV0LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgY3JlYXRlRGVzdHJveSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IE9CU0VSVkVfVklTSUJJTElUWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZlVmlzaWJpbGl0eURpcmVjdGl2ZT4oJ09CU0VSVkVfVklTSUJJTElUWV9UT0tFTicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlIHtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgaXNBYm92ZTogYm9vbGVhbjtcbiAgaXNCZWxvdzogYm9vbGVhbjtcbiAgaXNMZWZ0OiBib29sZWFuO1xuICBpc1JpZ2h0OiBib29sZWFuO1xuICBlbnRyeTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0T2JzZXJ2ZVZpc2liaWxpdHldJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogT0JTRVJWRV9WSVNJQklMSVRZX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IE9ic2VydmVWaXNpYmlsaXR5RGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LW9ic2VydmUtdmlzaWJpbGl0eScsXG4gICAgJ1tjbGFzcy5ldC1vYnNlcnZlLXZpc2liaWxpdHktLWlzLXZpc2libGVdJzogJ2lzSW50ZXJzZWN0aW5nJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZVZpc2liaWxpdHlEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoSW50ZXJzZWN0aW9uT2JzZXJ2ZXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNJbnRlcnNlY3RpbmcgPSBzaWduYWw8T2JzZXJ2ZVZpc2liaWxpdHlDaGFuZ2UgfCBudWxsPihudWxsKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZXRPYnNlcnZlVmlzaWJpbGl0eSA9IG5ldyBFdmVudEVtaXR0ZXI8T2JzZXJ2ZVZpc2liaWxpdHlDaGFuZ2U+KCk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyU2VydmljZVxuICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZilcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBlbnRyeSA9IGVudHJpZXNbMF07XG5cbiAgICAgICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNBYm92ZSA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPCAwICYmIGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5ib3R0b20gPCAwO1xuICAgICAgICAgIGNvbnN0IGlzQmVsb3cgPVxuICAgICAgICAgICAgZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnRvcCA+IHdpbmRvdy5pbm5lckhlaWdodCAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tID4gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAgIGNvbnN0IGlzTGVmdCA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5sZWZ0IDwgMCAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQgPCAwO1xuICAgICAgICAgIGNvbnN0IGlzUmlnaHQgPVxuICAgICAgICAgICAgZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmxlZnQgPiB3aW5kb3cuaW5uZXJXaWR0aCAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQgPiB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgIGNvbnN0IGRhdGE6IE9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlID0ge1xuICAgICAgICAgICAgdmlzaWJsZTogZW50cnkuaXNJbnRlcnNlY3RpbmcsXG4gICAgICAgICAgICBpc0Fib3ZlLFxuICAgICAgICAgICAgaXNCZWxvdyxcbiAgICAgICAgICAgIGlzTGVmdCxcbiAgICAgICAgICAgIGlzUmlnaHQsXG4gICAgICAgICAgICBlbnRyeSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgdGhpcy5ldE9ic2VydmVWaXNpYmlsaXR5LmVtaXQoZGF0YSk7XG4gICAgICAgICAgdGhpcy5pc0ludGVyc2VjdGluZy5zZXQoZGF0YSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -3336,7 +3336,7 @@ class ObserveVisibilityDirective {
|
|
|
3336
3336
|
this._destroy$ = createDestroy();
|
|
3337
3337
|
this._elementRef = inject(ElementRef);
|
|
3338
3338
|
this._intersectionObserverService = inject(IntersectionObserverService);
|
|
3339
|
-
this.isIntersecting = signal(
|
|
3339
|
+
this.isIntersecting = signal(null);
|
|
3340
3340
|
this.etObserveVisibility = new EventEmitter();
|
|
3341
3341
|
}
|
|
3342
3342
|
ngAfterViewInit() {
|
|
@@ -3347,8 +3347,20 @@ class ObserveVisibilityDirective {
|
|
|
3347
3347
|
if (!entry) {
|
|
3348
3348
|
return;
|
|
3349
3349
|
}
|
|
3350
|
-
|
|
3351
|
-
|
|
3350
|
+
const isAbove = entry.boundingClientRect.top < 0 && entry.boundingClientRect.bottom < 0;
|
|
3351
|
+
const isBelow = entry.boundingClientRect.top > window.innerHeight && entry.boundingClientRect.bottom > window.innerHeight;
|
|
3352
|
+
const isLeft = entry.boundingClientRect.left < 0 && entry.boundingClientRect.right < 0;
|
|
3353
|
+
const isRight = entry.boundingClientRect.left > window.innerWidth && entry.boundingClientRect.right > window.innerWidth;
|
|
3354
|
+
const data = {
|
|
3355
|
+
visible: entry.isIntersecting,
|
|
3356
|
+
isAbove,
|
|
3357
|
+
isBelow,
|
|
3358
|
+
isLeft,
|
|
3359
|
+
isRight,
|
|
3360
|
+
entry,
|
|
3361
|
+
};
|
|
3362
|
+
this.etObserveVisibility.emit(data);
|
|
3363
|
+
this.isIntersecting.set(data);
|
|
3352
3364
|
}))
|
|
3353
3365
|
.subscribe();
|
|
3354
3366
|
}
|