UNPKG

ng-lazyload-image-angular-universal

Version:

This is an extension from ng-lazyload-image, made available for Angular Universal.

89 lines 6.82 kB
/** * @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=