UNPKG

@taiga-ui/kit

Version:
30 lines 5.3 kB
import { __decorate, __param } from "tslib"; import { ChangeDetectorRef, Inject, Injectable } from '@angular/core'; import { IntersectionObserverService } from '@ng-web-apis/intersection-observer'; import { TuiDestroyService, watch } from '@taiga-ui/cdk'; import { Observable, of, Subject } from 'rxjs'; import { catchError, filter, mapTo, switchMap, take, takeUntil } from 'rxjs/operators'; let TuiLazyLoadingService = class TuiLazyLoadingService extends Observable { constructor(changeDetectorRef, destroy$, intersections$) { super(subscriber => this.src$ .pipe(switchMap(src => intersections$.pipe(filter(([{ isIntersecting }]) => isIntersecting), mapTo(src), catchError(() => of(src)), watch(changeDetectorRef), take(1))), takeUntil(destroy$)) .subscribe(subscriber)); this.src$ = new Subject(); } next(src) { this.src$.next(src); } }; TuiLazyLoadingService.ctorParameters = () => [ { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] }, { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] }, { type: Observable, decorators: [{ type: Inject, args: [IntersectionObserverService,] }] } ]; TuiLazyLoadingService = __decorate([ Injectable(), __param(0, Inject(ChangeDetectorRef)), __param(1, Inject(TuiDestroyService)), __param(2, Inject(IntersectionObserverService)) ], TuiLazyLoadingService); export { TuiLazyLoadingService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2RpcmVjdGl2ZXMvbGF6eS1sb2FkaW5nLyIsInNvdXJjZXMiOlsibGF6eS1sb2FkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3JGLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXNCLFNBQVEsVUFBa0I7SUFHekQsWUFDK0IsaUJBQW9DLEVBQ3BDLFFBQTBCLEVBRXJELGNBQXVEO1FBRXZELEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNmLElBQUksQ0FBQyxJQUFJO2FBQ0osSUFBSSxDQUNELFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNaLGNBQWMsQ0FBQyxJQUFJLENBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUM5QyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQ1YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUN6QixLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFDeEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNWLENBQ0osRUFDRCxTQUFTLENBQUMsUUFBUSxDQUFDLENBQ3RCO2FBQ0EsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUM3QixDQUFDO1FBdkJFLFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO0lBd0JyQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVc7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0osQ0FBQTs7WUExQnFELGlCQUFpQix1QkFBOUQsTUFBTSxTQUFDLGlCQUFpQjtZQUNZLFVBQVUsdUJBQTlDLE1BQU0sU0FBQyxpQkFBaUI7WUFFVCxVQUFVLHVCQUR6QixNQUFNLFNBQUMsMkJBQTJCOztBQU45QixxQkFBcUI7SUFEakMsVUFBVSxFQUFFO0lBS0osV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUN6QixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3pCLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7R0FOL0IscUJBQXFCLENBOEJqQztTQTlCWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2V9IGZyb20gJ0BuZy13ZWItYXBpcy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXInO1xuaW1wb3J0IHtUdWlEZXN0cm95U2VydmljZSwgd2F0Y2h9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbHRlciwgbWFwVG8sIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUdWlMYXp5TG9hZGluZ1NlcnZpY2UgZXh0ZW5kcyBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHByaXZhdGUgc3JjJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICBASW5qZWN0KEludGVyc2VjdGlvbk9ic2VydmVyU2VydmljZSlcbiAgICAgICAgaW50ZXJzZWN0aW9ucyQ6IE9ic2VydmFibGU8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc3Vic2NyaWJlciA9PlxuICAgICAgICAgICAgdGhpcy5zcmMkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChzcmMgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVyc2VjdGlvbnMkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChbe2lzSW50ZXJzZWN0aW5nfV0pID0+IGlzSW50ZXJzZWN0aW5nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBUbyhzcmMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2Yoc3JjKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2F0Y2goY2hhbmdlRGV0ZWN0b3JSZWYpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHN1YnNjcmliZXIpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5leHQoc3JjOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zcmMkLm5leHQoc3JjKTtcbiAgICB9XG59XG4iXX0=