@taiga-ui/kit
Version:
Taiga UI Angular main components kit
40 lines • 5.88 kB
JavaScript
import { __decorate, __extends, __param, __read } 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';
var TuiLazyLoadingService = /** @class */ (function (_super) {
__extends(TuiLazyLoadingService, _super);
function TuiLazyLoadingService(changeDetectorRef, destroy$, intersections$) {
var _this = _super.call(this, function (subscriber) {
return _this.src$
.pipe(switchMap(function (src) {
return intersections$.pipe(filter(function (_a) {
var _b = __read(_a, 1), isIntersecting = _b[0].isIntersecting;
return isIntersecting;
}), mapTo(src), catchError(function () { return of(src); }), watch(changeDetectorRef), take(1));
}), takeUntil(destroy$))
.subscribe(subscriber);
}) || this;
_this.src$ = new Subject();
return _this;
}
TuiLazyLoadingService.prototype.next = function (src) {
this.src$.next(src);
};
TuiLazyLoadingService.ctorParameters = function () { return [
{ 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);
return TuiLazyLoadingService;
}(Observable));
export { TuiLazyLoadingService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2RpcmVjdGl2ZXMvbGF6eS1sb2FkaW5nLyIsInNvdXJjZXMiOlsibGF6eS1sb2FkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3JGO0lBQTJDLHlDQUFrQjtJQUd6RCwrQkFDK0IsaUJBQW9DLEVBQ3BDLFFBQTBCLEVBRXJELGNBQXVEO1FBSjNELFlBTUksa0JBQU0sVUFBQSxVQUFVO1lBQ1osT0FBQSxLQUFJLENBQUMsSUFBSTtpQkFDSixJQUFJLENBQ0QsU0FBUyxDQUFDLFVBQUEsR0FBRztnQkFDVCxPQUFBLGNBQWMsQ0FBQyxJQUFJLENBQ2YsTUFBTSxDQUFDLFVBQUMsRUFBa0I7d0JBQWxCLGtCQUFrQixFQUFoQixxQ0FBYztvQkFBTyxPQUFBLGNBQWM7Z0JBQWQsQ0FBYyxDQUFDLEVBQzlDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDVixVQUFVLENBQUMsY0FBTSxPQUFBLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBUCxDQUFPLENBQUMsRUFDekIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQ3hCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDVjtZQU5ELENBTUMsQ0FDSixFQUNELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDdEI7aUJBQ0EsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQWIxQixDQWEwQixDQUM3QixTQUNKO1FBeEJPLFVBQUksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDOztJQXdCckMsQ0FBQztJQUVELG9DQUFJLEdBQUosVUFBSyxHQUFXO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7Z0JBekJpRCxpQkFBaUIsdUJBQTlELE1BQU0sU0FBQyxpQkFBaUI7Z0JBQ1ksVUFBVSx1QkFBOUMsTUFBTSxTQUFDLGlCQUFpQjtnQkFFVCxVQUFVLHVCQUR6QixNQUFNLFNBQUMsMkJBQTJCOztJQU45QixxQkFBcUI7UUFEakMsVUFBVSxFQUFFO1FBS0osV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7T0FOL0IscUJBQXFCLENBOEJqQztJQUFELDRCQUFDO0NBQUEsQUE5QkQsQ0FBMkMsVUFBVSxHQThCcEQ7U0E5QlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SW50ZXJzZWN0aW9uT2JzZXJ2ZXJTZXJ2aWNlfSBmcm9tICdAbmctd2ViLWFwaXMvaW50ZXJzZWN0aW9uLW9ic2VydmVyJztcbmltcG9ydCB7VHVpRGVzdHJveVNlcnZpY2UsIHdhdGNofSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcFRvLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHVpTGF6eUxvYWRpbmdTZXJ2aWNlIGV4dGVuZHMgT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBwcml2YXRlIHNyYyQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx2b2lkPixcbiAgICAgICAgQEluamVjdChJbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2UpXG4gICAgICAgIGludGVyc2VjdGlvbnMkOiBPYnNlcnZhYmxlPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXT4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHN1YnNjcmliZXIgPT5cbiAgICAgICAgICAgIHRoaXMuc3JjJFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoc3JjID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25zJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoW3tpc0ludGVyc2VjdGluZ31dKSA9PiBpc0ludGVyc2VjdGluZyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVG8oc3JjKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHNyYykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhdGNoKGNoYW5nZURldGVjdG9yUmVmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKGRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShzdWJzY3JpYmVyKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZXh0KHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3JjJC5uZXh0KHNyYyk7XG4gICAgfVxufVxuIl19