UNPKG

ng-lazyload-image-angular-universal

Version:

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

54 lines 4.41 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { of } from 'rxjs'; import { catchError, filter, map, mergeMap, take, tap } from 'rxjs/operators'; /** * @template E * @param {?} hookSet * @param {?} attributes * @return {?} */ export function lazyLoadImage(hookSet, attributes) { return (/** * @param {?} scrollObservable * @return {?} */ (scrollObservable) => { return scrollObservable.pipe(filter((/** * @param {?} event * @return {?} */ event => hookSet.isVisible({ element: attributes.element, event: event, offset: attributes.offset, scrollContainer: attributes.scrollContainer }))), take(1), mergeMap((/** * @return {?} */ () => hookSet.loadImage(attributes))), tap((/** * @param {?} imagePath * @return {?} */ imagePath => hookSet.setLoadedImage({ element: attributes.element, imagePath, useSrcset: attributes.useSrcset }))), map((/** * @return {?} */ () => true)), catchError((/** * @return {?} */ () => { hookSet.setErrorImage(attributes); return of(false); })), tap((/** * @return {?} */ () => hookSet.finally(attributes)))); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eWxvYWQtaW1hZ2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1sYXp5bG9hZC1pbWFnZS1hbmd1bGFyLXVuaXZlcnNhbC8iLCJzb3VyY2VzIjpbImxpYi9sYXp5bG9hZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUc5RSxNQUFNLFVBQVUsYUFBYSxDQUFJLE9BQW1CLEVBQUUsVUFBc0I7SUFDMUU7Ozs7SUFBTyxDQUFDLGdCQUErQixFQUFFLEVBQUU7UUFDekMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzFCLE1BQU07Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDaEIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQzNCLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1lBQ3pCLGVBQWUsRUFBRSxVQUFVLENBQUMsZUFBZTtTQUM1QyxDQUFDLEVBQ0gsRUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsUUFBUTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBQyxFQUM3QyxHQUFHOzs7O1FBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDZCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztZQUMzQixTQUFTO1lBQ1QsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO1NBQ2hDLENBQUMsRUFDSCxFQUNELEdBQUc7OztRQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBQyxFQUNmLFVBQVU7OztRQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxFQUFDLEVBQ0YsR0FBRzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUN2QyxDQUFDO0lBQ0osQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF0dHJpYnV0ZXMsIEhvb2tTZXQgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGxhenlMb2FkSW1hZ2U8RT4oaG9va1NldDogSG9va1NldDxFPiwgYXR0cmlidXRlczogQXR0cmlidXRlcykge1xuICByZXR1cm4gKHNjcm9sbE9ic2VydmFibGU6IE9ic2VydmFibGU8RT4pID0+IHtcbiAgICByZXR1cm4gc2Nyb2xsT2JzZXJ2YWJsZS5waXBlKFxuICAgICAgZmlsdGVyKGV2ZW50ID0+XG4gICAgICAgIGhvb2tTZXQuaXNWaXNpYmxlKHtcbiAgICAgICAgICBlbGVtZW50OiBhdHRyaWJ1dGVzLmVsZW1lbnQsXG4gICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgIG9mZnNldDogYXR0cmlidXRlcy5vZmZzZXQsXG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyOiBhdHRyaWJ1dGVzLnNjcm9sbENvbnRhaW5lclxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiBob29rU2V0LmxvYWRJbWFnZShhdHRyaWJ1dGVzKSksXG4gICAgICB0YXAoaW1hZ2VQYXRoID0+XG4gICAgICAgIGhvb2tTZXQuc2V0TG9hZGVkSW1hZ2Uoe1xuICAgICAgICAgIGVsZW1lbnQ6IGF0dHJpYnV0ZXMuZWxlbWVudCxcbiAgICAgICAgICBpbWFnZVBhdGgsXG4gICAgICAgICAgdXNlU3Jjc2V0OiBhdHRyaWJ1dGVzLnVzZVNyY3NldFxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBob29rU2V0LnNldEVycm9ySW1hZ2UoYXR0cmlidXRlcyk7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoKSA9PiBob29rU2V0LmZpbmFsbHkoYXR0cmlidXRlcykpXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==