@fivethree/core
Version:
Fivethree Core Components
128 lines • 10.3 kB
JavaScript
/**
* @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=