UNPKG

@taiga-ui/kit

Version:
51 lines 5.61 kB
import { __decorate, __param } from "tslib"; import { Directive, ElementRef, HostBinding, Inject, Input } from '@angular/core'; import { IntersectionObserverService } from '@ng-web-apis/intersection-observer'; import { TuiDestroyService } from '@taiga-ui/cdk'; import { TuiLazyLoadingService } from './lazy-loading.service'; var TuiLazyLoadingDirective = /** @class */ (function () { function TuiLazyLoadingDirective(src$, elementRef) { var _this = this; this.src$ = src$; this.elementRef = elementRef; this.src = null; this.supported = 'loading' in this.elementRef.nativeElement; if (!this.supported) { this.src$.subscribe(function (src) { _this.src = src; }); } } Object.defineProperty(TuiLazyLoadingDirective.prototype, "srcSetter", { set: function (src) { this.src = this.supported ? src : null; this.src$.next(src); }, enumerable: true, configurable: true }); TuiLazyLoadingDirective.ctorParameters = function () { return [ { type: TuiLazyLoadingService, decorators: [{ type: Inject, args: [TuiLazyLoadingService,] }] }, { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] } ]; }; __decorate([ Input('src') ], TuiLazyLoadingDirective.prototype, "srcSetter", null); __decorate([ HostBinding('attr.src') ], TuiLazyLoadingDirective.prototype, "src", void 0); TuiLazyLoadingDirective = __decorate([ Directive({ selector: 'img[loading="lazy"]', providers: [TuiLazyLoadingService, IntersectionObserverService, TuiDestroyService], host: { '[style.animation]': '"tuiSkeletonBackgroundVibe ease-in-out 1s infinite alternate"', }, }), __param(0, Inject(TuiLazyLoadingService)), __param(1, Inject(ElementRef)) ], TuiLazyLoadingDirective); return TuiLazyLoadingDirective; }()); export { TuiLazyLoadingDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvZGlyZWN0aXZlcy9sYXp5LWxvYWRpbmcvIiwic291cmNlcyI6WyJsYXp5LWxvYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFVN0Q7SUFZSSxpQ0FFcUIsSUFBMkIsRUFFM0IsVUFBd0M7UUFKN0QsaUJBV0M7UUFUb0IsU0FBSSxHQUFKLElBQUksQ0FBdUI7UUFFM0IsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFSN0QsUUFBRyxHQUFrQixJQUFJLENBQUM7UUFFVCxjQUFTLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBUXBFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQUEsR0FBRztnQkFDbkIsS0FBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFyQkQsc0JBQUksOENBQVM7YUFBYixVQUFjLEdBQVc7WUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDOzs7T0FBQTs7Z0JBUzBCLHFCQUFxQix1QkFEM0MsTUFBTSxTQUFDLHFCQUFxQjtnQkFHQSxVQUFVLHVCQUR0QyxNQUFNLFNBQUMsVUFBVTs7SUFidEI7UUFEQyxLQUFLLENBQUMsS0FBSyxDQUFDOzREQUlaO0lBR0Q7UUFEQyxXQUFXLENBQUMsVUFBVSxDQUFDO3dEQUNFO0lBUmpCLHVCQUF1QjtRQVJuQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLGlCQUFpQixDQUFDO1lBQ2xGLElBQUksRUFBRTtnQkFDRixtQkFBbUIsRUFDZiwrREFBK0Q7YUFDdEU7U0FDSixDQUFDO1FBY08sV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUU3QixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtPQWZkLHVCQUF1QixDQXdCbkM7SUFBRCw4QkFBQztDQUFBLEFBeEJELElBd0JDO1NBeEJZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ludGVyc2VjdGlvbk9ic2VydmVyU2VydmljZX0gZnJvbSAnQG5nLXdlYi1hcGlzL2ludGVyc2VjdGlvbi1vYnNlcnZlcic7XG5pbXBvcnQge1R1aURlc3Ryb3lTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpTGF6eUxvYWRpbmdTZXJ2aWNlfSBmcm9tICcuL2xhenktbG9hZGluZy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbWdbbG9hZGluZz1cImxhenlcIl0nLFxuICAgIHByb3ZpZGVyczogW1R1aUxhenlMb2FkaW5nU2VydmljZSwgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJTZXJ2aWNlLCBUdWlEZXN0cm95U2VydmljZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLmFuaW1hdGlvbl0nOlxuICAgICAgICAgICAgJ1widHVpU2tlbGV0b25CYWNrZ3JvdW5kVmliZSBlYXNlLWluLW91dCAxcyBpbmZpbml0ZSBhbHRlcm5hdGVcIicsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTGF6eUxvYWRpbmdEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgnc3JjJylcbiAgICBzZXQgc3JjU2V0dGVyKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3JjID0gdGhpcy5zdXBwb3J0ZWQgPyBzcmMgOiBudWxsO1xuICAgICAgICB0aGlzLnNyYyQubmV4dChzcmMpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5zcmMnKVxuICAgIHNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1cHBvcnRlZCA9ICdsb2FkaW5nJyBpbiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUxhenlMb2FkaW5nU2VydmljZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzcmMkOiBUdWlMYXp5TG9hZGluZ1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+LFxuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNyYyQuc3Vic2NyaWJlKHNyYyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcmMgPSBzcmM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==