ng-lazyload-image-angular-universal
Version:
This is an extension from ng-lazyload-image, made available for Angular Universal.
54 lines • 4.41 kB
JavaScript
/**
* @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==