UNPKG

@fivethree/core

Version:
128 lines 10.3 kB
/** * @fileoverview added by tsickle * Generated from: lib/lazy-image/lazy-image.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { FivGalleryImage } from '../gallery/gallery-image/gallery-image.component'; import { Directive, Input, EventEmitter, Output, Host, Self, Optional, ElementRef } from '@angular/core'; var FivLazyImage = /** @class */ (function () { function FivLazyImage(fivImage, image) { this.fivImage = fivImage; this.image = image; this.virtual = false; this.inViewport = false; this.willShow = new EventEmitter(); this.willHide = new EventEmitter(); } /** * @return {?} */ FivLazyImage.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var io = new IntersectionObserver((/** * @param {?} entries * @param {?} observer * @return {?} */ function (entries, observer) { entries.forEach((/** * @param {?} entry * @return {?} */ function (entry) { if (entry.isIntersecting) { if (!_this.inViewport) { _this.handleIntersection(); if (!_this.virtual) { io.disconnect(); } } } else { if (_this.inViewport) { _this.inViewport = false; if (_this.fivImage) { _this.willHide.emit(_this.fivImage); } else if (_this.image) { _this.willHide.emit(_this.image.nativeElement); } } } })); })); io['POLL_INTERVAL'] = 100; if (this.fivImage) { io.observe(this.fivImage.thumbnail.nativeElement); } else if (this.image) { io.observe(this.image.nativeElement); } }; /** * @return {?} */ FivLazyImage.prototype.handleIntersection = /** * @return {?} */ function () { this.inViewport = true; if (this.fivLazyImage) { if (this.fivImage) { this.fivImage.src = this.fivLazyImage; this.willShow.emit(this.fivImage); } else if (this.image) { this.image.nativeElement.src = this.fivLazyImage; this.willShow.emit(this.image.nativeElement); } } else { if (this.fivImage) { this.willShow.emit(this.fivImage); } else if (this.image) { this.willShow.emit(this.image.nativeElement); } } }; FivLazyImage.decorators = [ { type: Directive, args: [{ selector: '[fivLazyImage]' },] } ]; /** @nocollapse */ FivLazyImage.ctorParameters = function () { return [ { type: FivGalleryImage, decorators: [{ type: Host }, { type: Self }, { type: Optional }] }, { type: ElementRef, decorators: [{ type: Host }, { type: Self }, { type: Optional }] } ]; }; FivLazyImage.propDecorators = { fivLazyImage: [{ type: Input }], virtual: [{ type: Input }], willShow: [{ type: Output }], willHide: [{ type: Output }] }; return FivLazyImage; }()); export { FivLazyImage }; if (false) { /** @type {?} */ FivLazyImage.prototype.fivLazyImage; /** @type {?} */ FivLazyImage.prototype.virtual; /** @type {?} */ FivLazyImage.prototype.inViewport; /** @type {?} */ FivLazyImage.prototype.willShow; /** @type {?} */ FivLazyImage.prototype.willHide; /** @type {?} */ FivLazyImage.prototype.fivImage; /** @type {?} */ FivLazyImage.prototype.image; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1pbWFnZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZml2ZXRocmVlL2NvcmUvIiwic291cmNlcyI6WyJsaWIvbGF6eS1pbWFnZS9sYXp5LWltYWdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNuRixPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLElBQUksRUFDSixJQUFJLEVBQ0osUUFBUSxFQUNSLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QjtJQVVFLHNCQUNxQyxRQUF5QixFQUN6QixLQUFpQjtRQURqQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBUDdDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNULGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBc0MsQ0FBQztRQUNsRSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXNDLENBQUM7SUFLekUsQ0FBQzs7OztJQUVKLCtCQUFROzs7SUFBUjtRQUFBLGlCQTRCQzs7WUEzQk8sRUFBRSxHQUFHLElBQUksb0JBQW9COzs7OztRQUFDLFVBQUMsT0FBTyxFQUFFLFFBQVE7WUFDcEQsT0FBTyxDQUFDLE9BQU87Ozs7WUFBQyxVQUFBLEtBQUs7Z0JBQ25CLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLEtBQUksQ0FBQyxVQUFVLEVBQUU7d0JBQ3BCLEtBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO3dCQUMxQixJQUFJLENBQUMsS0FBSSxDQUFDLE9BQU8sRUFBRTs0QkFDakIsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO3lCQUNqQjtxQkFDRjtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLEtBQUksQ0FBQyxVQUFVLEVBQUU7d0JBQ25CLEtBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO3dCQUN4QixJQUFJLEtBQUksQ0FBQyxRQUFRLEVBQUU7NEJBQ2pCLEtBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzt5QkFDbkM7NkJBQU0sSUFBSSxLQUFJLENBQUMsS0FBSyxFQUFFOzRCQUNyQixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3lCQUM5QztxQkFDRjtpQkFDRjtZQUNILENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDO1FBQ0YsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuRDthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQixFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7O0lBQ0QseUNBQWtCOzs7SUFBbEI7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbkM7aUJBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUM5QztTQUNGO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNuQztpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDOUM7U0FDRjtJQUNILENBQUM7O2dCQTdERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7Ozs7Z0JBZlEsZUFBZSx1QkF3Qm5CLElBQUksWUFBSSxJQUFJLFlBQUksUUFBUTtnQkFkM0IsVUFBVSx1QkFlUCxJQUFJLFlBQUksSUFBSSxZQUFJLFFBQVE7OzsrQkFSMUIsS0FBSzswQkFDTCxLQUFLOzJCQUVMLE1BQU07MkJBQ04sTUFBTTs7SUFzRFQsbUJBQUM7Q0FBQSxBQTlERCxJQThEQztTQTNEWSxZQUFZOzs7SUFDdkIsb0NBQThCOztJQUM5QiwrQkFBeUI7O0lBQ3pCLGtDQUFtQjs7SUFDbkIsZ0NBQTRFOztJQUM1RSxnQ0FBNEU7O0lBRzFFLGdDQUE0RDs7SUFDNUQsNkJBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRml2R2FsbGVyeUltYWdlIH0gZnJvbSAnLi4vZ2FsbGVyeS9nYWxsZXJ5LWltYWdlL2dhbGxlcnktaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIEhvc3QsXG4gIFNlbGYsXG4gIE9wdGlvbmFsLFxuICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZml2TGF6eUltYWdlXSdcbn0pXG5leHBvcnQgY2xhc3MgRml2TGF6eUltYWdlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZml2TGF6eUltYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZpcnR1YWwgPSBmYWxzZTtcbiAgaW5WaWV3cG9ydCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgd2lsbFNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPEZpdkdhbGxlcnlJbWFnZSB8IEhUTUxJbWFnZUVsZW1lbnQ+KCk7XG4gIEBPdXRwdXQoKSB3aWxsSGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rml2R2FsbGVyeUltYWdlIHwgSFRNTEltYWdlRWxlbWVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASG9zdCgpIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIGZpdkltYWdlOiBGaXZHYWxsZXJ5SW1hZ2UsXG4gICAgQEhvc3QoKSBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBpbWFnZTogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICBlbnRyaWVzLmZvckVhY2goZW50cnkgPT4ge1xuICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuaW5WaWV3cG9ydCkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnRlcnNlY3Rpb24oKTtcbiAgICAgICAgICAgIGlmICghdGhpcy52aXJ0dWFsKSB7XG4gICAgICAgICAgICAgIGlvLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuaW5WaWV3cG9ydCkge1xuICAgICAgICAgICAgdGhpcy5pblZpZXdwb3J0ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5maXZJbWFnZSkge1xuICAgICAgICAgICAgICB0aGlzLndpbGxIaWRlLmVtaXQodGhpcy5maXZJbWFnZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2UpIHtcbiAgICAgICAgICAgICAgdGhpcy53aWxsSGlkZS5lbWl0KHRoaXMuaW1hZ2UubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBpb1snUE9MTF9JTlRFUlZBTCddID0gMTAwO1xuICAgIGlmICh0aGlzLmZpdkltYWdlKSB7XG4gICAgICBpby5vYnNlcnZlKHRoaXMuZml2SW1hZ2UudGh1bWJuYWlsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pbWFnZSkge1xuICAgICAgaW8ub2JzZXJ2ZSh0aGlzLmltYWdlLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBoYW5kbGVJbnRlcnNlY3Rpb24oKSB7XG4gICAgdGhpcy5pblZpZXdwb3J0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5maXZMYXp5SW1hZ2UpIHtcbiAgICAgIGlmICh0aGlzLmZpdkltYWdlKSB7XG4gICAgICAgIHRoaXMuZml2SW1hZ2Uuc3JjID0gdGhpcy5maXZMYXp5SW1hZ2U7XG4gICAgICAgIHRoaXMud2lsbFNob3cuZW1pdCh0aGlzLmZpdkltYWdlKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbWFnZSkge1xuICAgICAgICB0aGlzLmltYWdlLm5hdGl2ZUVsZW1lbnQuc3JjID0gdGhpcy5maXZMYXp5SW1hZ2U7XG4gICAgICAgIHRoaXMud2lsbFNob3cuZW1pdCh0aGlzLmltYWdlLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5maXZJbWFnZSkge1xuICAgICAgICB0aGlzLndpbGxTaG93LmVtaXQodGhpcy5maXZJbWFnZSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2UpIHtcbiAgICAgICAgdGhpcy53aWxsU2hvdy5lbWl0KHRoaXMuaW1hZ2UubmF0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=