ng-lazyload-image-angular-universal
Version:
This is an extension from ng-lazyload-image, made available for Angular Universal.
89 lines • 6.82 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export class Rect {
/**
* @param {?} left
* @param {?} top
* @param {?} right
* @param {?} bottom
*/
constructor(left, top, right, bottom) {
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
/**
* @param {?} element
* @return {?}
*/
static fromElement(element) {
const { left, top, right, bottom } = element.getBoundingClientRect();
if (left === 0 && top === 0 && right === 0 && bottom === 0) {
return Rect.empty;
}
else {
return new Rect(left, top, right, bottom);
}
}
/**
* @param {?} _window
* @return {?}
*/
static fromWindow(_window) {
return new Rect(0, 0, _window.innerWidth, _window.innerHeight);
}
/**
* @param {?} inflateBy
* @return {?}
*/
inflate(inflateBy) {
this.left -= inflateBy;
this.top -= inflateBy;
this.right += inflateBy;
this.bottom += inflateBy;
}
/**
* @param {?} rect
* @return {?}
*/
intersectsWith(rect) {
return rect.left < this.right && this.left < rect.right && rect.top < this.bottom && this.top < rect.bottom;
}
/**
* @param {?} rect
* @return {?}
*/
getIntersectionWith(rect) {
/** @type {?} */
const left = Math.max(this.left, rect.left);
/** @type {?} */
const top = Math.max(this.top, rect.top);
/** @type {?} */
const right = Math.min(this.right, rect.right);
/** @type {?} */
const bottom = Math.min(this.bottom, rect.bottom);
if (right >= left && bottom >= top) {
return new Rect(left, top, right, bottom);
}
else {
return Rect.empty;
}
}
}
Rect.empty = new Rect(0, 0, 0, 0);
if (false) {
/** @type {?} */
Rect.empty;
/** @type {?} */
Rect.prototype.left;
/** @type {?} */
Rect.prototype.top;
/** @type {?} */
Rect.prototype.right;
/** @type {?} */
Rect.prototype.bottom;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWxhenlsb2FkLWltYWdlLWFuZ3VsYXItdW5pdmVyc2FsLyIsInNvdXJjZXMiOlsibGliL3Njcm9sbC1wcmVzZXQvcmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxPQUFPLElBQUk7Ozs7Ozs7SUFRZixZQUFZLElBQVksRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDbEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBb0I7Y0FDL0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUU7UUFFcEUsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjthQUFNO1lBQ0wsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRSxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxTQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLFNBQVMsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxJQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzlHLENBQUM7Ozs7O0lBRUQsbUJBQW1CLENBQUMsSUFBVTs7Y0FDdEIsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDOztjQUNyQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7O2NBQ2xDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQzs7Y0FDeEMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRWpELElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksR0FBRyxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjtJQUNILENBQUM7O0FBbERNLFVBQUssR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs7O0lBQTFDLFdBQTBDOztJQUUxQyxvQkFBYTs7SUFDYixtQkFBWTs7SUFDWixxQkFBYzs7SUFDZCxzQkFBZSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBSZWN0IHtcbiAgc3RhdGljIGVtcHR5OiBSZWN0ID0gbmV3IFJlY3QoMCwgMCwgMCwgMCk7XG5cbiAgbGVmdDogbnVtYmVyO1xuICB0b3A6IG51bWJlcjtcbiAgcmlnaHQ6IG51bWJlcjtcbiAgYm90dG9tOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobGVmdDogbnVtYmVyLCB0b3A6IG51bWJlciwgcmlnaHQ6IG51bWJlciwgYm90dG9tOiBudW1iZXIpIHtcbiAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgIHRoaXMudG9wID0gdG9wO1xuICAgIHRoaXMucmlnaHQgPSByaWdodDtcbiAgICB0aGlzLmJvdHRvbSA9IGJvdHRvbTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IFJlY3Qge1xuICAgIGNvbnN0IHsgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tIH0gPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgaWYgKGxlZnQgPT09IDAgJiYgdG9wID09PSAwICYmIHJpZ2h0ID09PSAwICYmIGJvdHRvbSA9PT0gMCkge1xuICAgICAgcmV0dXJuIFJlY3QuZW1wdHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgUmVjdChsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tV2luZG93KF93aW5kb3c6IFdpbmRvdyk6IFJlY3Qge1xuICAgIHJldHVybiBuZXcgUmVjdCgwLCAwLCBfd2luZG93LmlubmVyV2lkdGgsIF93aW5kb3cuaW5uZXJIZWlnaHQpO1xuICB9XG5cbiAgaW5mbGF0ZShpbmZsYXRlQnk6IG51bWJlcikge1xuICAgIHRoaXMubGVmdCAtPSBpbmZsYXRlQnk7XG4gICAgdGhpcy50b3AgLT0gaW5mbGF0ZUJ5O1xuICAgIHRoaXMucmlnaHQgKz0gaW5mbGF0ZUJ5O1xuICAgIHRoaXMuYm90dG9tICs9IGluZmxhdGVCeTtcbiAgfVxuXG4gIGludGVyc2VjdHNXaXRoKHJlY3Q6IFJlY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVjdC5sZWZ0IDwgdGhpcy5yaWdodCAmJiB0aGlzLmxlZnQgPCByZWN0LnJpZ2h0ICYmIHJlY3QudG9wIDwgdGhpcy5ib3R0b20gJiYgdGhpcy50b3AgPCByZWN0LmJvdHRvbTtcbiAgfVxuXG4gIGdldEludGVyc2VjdGlvbldpdGgocmVjdDogUmVjdCk6IFJlY3Qge1xuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1heCh0aGlzLmxlZnQsIHJlY3QubGVmdCk7XG4gICAgY29uc3QgdG9wID0gTWF0aC5tYXgodGhpcy50b3AsIHJlY3QudG9wKTtcbiAgICBjb25zdCByaWdodCA9IE1hdGgubWluKHRoaXMucmlnaHQsIHJlY3QucmlnaHQpO1xuICAgIGNvbnN0IGJvdHRvbSA9IE1hdGgubWluKHRoaXMuYm90dG9tLCByZWN0LmJvdHRvbSk7XG5cbiAgICBpZiAocmlnaHQgPj0gbGVmdCAmJiBib3R0b20gPj0gdG9wKSB7XG4gICAgICByZXR1cm4gbmV3IFJlY3QobGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFJlY3QuZW1wdHk7XG4gICAgfVxuICB9XG59XG4iXX0=