@taiga-ui/kit
Version:
Taiga UI Angular main components kit
51 lines • 5.61 kB
JavaScript
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==