ng-lazyload-image-angular-universal
Version:
This is an extension from ng-lazyload-image, made available for Angular Universal.
60 lines • 5.62 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { startWith } from 'rxjs/operators';
import { sharedPreset } from '../shared-preset/preset';
import { isWindowDefined } from '../util';
import { Rect } from './rect';
import { getScrollListener } from './scroll-listener';
/** @type {?} */
export const isVisible = (/**
* @param {?} __0
* @param {?=} getWindow
* @return {?}
*/
({ element, offset, scrollContainer }, getWindow = (/**
* @return {?}
*/
() => window)) => {
/** @type {?} */
const elementBounds = Rect.fromElement(element);
if (elementBounds === Rect.empty) {
return false;
}
/** @type {?} */
const windowBounds = Rect.fromWindow(getWindow());
elementBounds.inflate(offset);
if (scrollContainer) {
/** @type {?} */
const scrollContainerBounds = Rect.fromElement(scrollContainer);
/** @type {?} */
const intersection = scrollContainerBounds.getIntersectionWith(windowBounds);
return elementBounds.intersectsWith(intersection);
}
else {
return elementBounds.intersectsWith(windowBounds);
}
});
/** @type {?} */
const getObservable = (/**
* @param {?} attributes
* @return {?}
*/
(attributes) => {
if (attributes.scrollObservable) {
return attributes.scrollObservable.pipe(startWith(''));
}
if (attributes.scrollContainer) {
return getScrollListener(attributes.scrollContainer);
}
return getScrollListener(isWindowDefined() ? window : undefined);
});
const ɵ0 = getObservable;
/** @type {?} */
export const scrollPreset = Object.assign({}, sharedPreset, {
isVisible,
getObservable
});
export { ɵ0 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctbGF6eWxvYWQtaW1hZ2UtYW5ndWxhci11bml2ZXJzYWwvIiwic291cmNlcyI6WyJsaWIvc2Nyb2xsLXByZXNldC9wcmVzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV0RCxNQUFNLE9BQU8sU0FBUzs7Ozs7QUFBdUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEVBQUUsU0FBUzs7O0FBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFBLEVBQUUsRUFBRTs7VUFDeEcsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQy9DLElBQUksYUFBYSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDaEMsT0FBTyxLQUFLLENBQUM7S0FDZDs7VUFDSyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRCxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLElBQUksZUFBZSxFQUFFOztjQUNiLHFCQUFxQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDOztjQUN6RCxZQUFZLEdBQUcscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDO1FBQzVFLE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNuRDtTQUFNO1FBQ0wsT0FBTyxhQUFhLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQ25EO0FBQ0gsQ0FBQyxDQUFBOztNQUVLLGFBQWE7Ozs7QUFBb0MsQ0FBQyxVQUFzQixFQUFFLEVBQUU7SUFDaEYsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7UUFDL0IsT0FBTyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsSUFBSSxVQUFVLENBQUMsZUFBZSxFQUFFO1FBQzlCLE9BQU8saUJBQWlCLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3REO0lBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUE7OztBQUVELE1BQU0sT0FBTyxZQUFZLEdBQTRCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRTtJQUNuRixTQUFTO0lBQ1QsYUFBYTtDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBzaGFyZWRQcmVzZXQgfSBmcm9tICcuLi9zaGFyZWQtcHJlc2V0L3ByZXNldCc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzLCBHZXRPYnNlcnZhYmxlRm4sIEhvb2tTZXQsIElzVmlzaWJsZUZuIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNXaW5kb3dEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBSZWN0IH0gZnJvbSAnLi9yZWN0JztcbmltcG9ydCB7IGdldFNjcm9sbExpc3RlbmVyIH0gZnJvbSAnLi9zY3JvbGwtbGlzdGVuZXInO1xuXG5leHBvcnQgY29uc3QgaXNWaXNpYmxlOiBJc1Zpc2libGVGbjxFdmVudD4gPSAoeyBlbGVtZW50LCBvZmZzZXQsIHNjcm9sbENvbnRhaW5lciB9LCBnZXRXaW5kb3cgPSAoKSA9PiB3aW5kb3cpID0+IHtcbiAgY29uc3QgZWxlbWVudEJvdW5kcyA9IFJlY3QuZnJvbUVsZW1lbnQoZWxlbWVudCk7XG4gIGlmIChlbGVtZW50Qm91bmRzID09PSBSZWN0LmVtcHR5KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHdpbmRvd0JvdW5kcyA9IFJlY3QuZnJvbVdpbmRvdyhnZXRXaW5kb3coKSk7XG4gIGVsZW1lbnRCb3VuZHMuaW5mbGF0ZShvZmZzZXQpO1xuXG4gIGlmIChzY3JvbGxDb250YWluZXIpIHtcbiAgICBjb25zdCBzY3JvbGxDb250YWluZXJCb3VuZHMgPSBSZWN0LmZyb21FbGVtZW50KHNjcm9sbENvbnRhaW5lcik7XG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gc2Nyb2xsQ29udGFpbmVyQm91bmRzLmdldEludGVyc2VjdGlvbldpdGgod2luZG93Qm91bmRzKTtcbiAgICByZXR1cm4gZWxlbWVudEJvdW5kcy5pbnRlcnNlY3RzV2l0aChpbnRlcnNlY3Rpb24pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBlbGVtZW50Qm91bmRzLmludGVyc2VjdHNXaXRoKHdpbmRvd0JvdW5kcyk7XG4gIH1cbn07XG5cbmNvbnN0IGdldE9ic2VydmFibGU6IEdldE9ic2VydmFibGVGbjxFdmVudCB8IFN0cmluZz4gPSAoYXR0cmlidXRlczogQXR0cmlidXRlcykgPT4ge1xuICBpZiAoYXR0cmlidXRlcy5zY3JvbGxPYnNlcnZhYmxlKSB7XG4gICAgcmV0dXJuIGF0dHJpYnV0ZXMuc2Nyb2xsT2JzZXJ2YWJsZS5waXBlKHN0YXJ0V2l0aCgnJykpO1xuICB9XG4gIGlmIChhdHRyaWJ1dGVzLnNjcm9sbENvbnRhaW5lcikge1xuICAgIHJldHVybiBnZXRTY3JvbGxMaXN0ZW5lcihhdHRyaWJ1dGVzLnNjcm9sbENvbnRhaW5lcik7XG4gIH1cbiAgcmV0dXJuIGdldFNjcm9sbExpc3RlbmVyKGlzV2luZG93RGVmaW5lZCgpID8gd2luZG93IDogdW5kZWZpbmVkKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzY3JvbGxQcmVzZXQ6IEhvb2tTZXQ8RXZlbnQgfCBTdHJpbmc+ID0gT2JqZWN0LmFzc2lnbih7fSwgc2hhcmVkUHJlc2V0LCB7XG4gIGlzVmlzaWJsZSxcbiAgZ2V0T2JzZXJ2YWJsZVxufSk7XG4iXX0=