ng-lazyload-image-angular-universal
Version:
This is an extension from ng-lazyload-image, made available for Angular Universal.
58 lines • 4.64 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 {?}
*/
function (scrollObservable) {
return scrollObservable.pipe(filter((/**
* @param {?} event
* @return {?}
*/
function (event) {
return hookSet.isVisible({
element: attributes.element,
event: event,
offset: attributes.offset,
scrollContainer: attributes.scrollContainer
});
})), take(1), mergeMap((/**
* @return {?}
*/
function () { return hookSet.loadImage(attributes); })), tap((/**
* @param {?} imagePath
* @return {?}
*/
function (imagePath) {
return hookSet.setLoadedImage({
element: attributes.element,
imagePath: imagePath,
useSrcset: attributes.useSrcset
});
})), map((/**
* @return {?}
*/
function () { return true; })), catchError((/**
* @return {?}
*/
function () {
hookSet.setErrorImage(attributes);
return of(false);
})), tap((/**
* @return {?}
*/
function () { return hookSet.finally(attributes); })));
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eWxvYWQtaW1hZ2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1sYXp5bG9hZC1pbWFnZS1hbmd1bGFyLXVuaXZlcnNhbC8iLCJzb3VyY2VzIjpbImxpYi9sYXp5bG9hZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUc5RSxNQUFNLFVBQVUsYUFBYSxDQUFJLE9BQW1CLEVBQUUsVUFBc0I7SUFDMUU7Ozs7SUFBTyxVQUFDLGdCQUErQjtRQUNyQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FDMUIsTUFBTTs7OztRQUFDLFVBQUEsS0FBSztZQUNWLE9BQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQztnQkFDaEIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dCQUMzQixLQUFLLEVBQUUsS0FBSztnQkFDWixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQ3pCLGVBQWUsRUFBRSxVQUFVLENBQUMsZUFBZTthQUM1QyxDQUFDO1FBTEYsQ0FLRSxFQUNILEVBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVE7OztRQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUE3QixDQUE2QixFQUFDLEVBQzdDLEdBQUc7Ozs7UUFBQyxVQUFBLFNBQVM7WUFDWCxPQUFBLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQ3JCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsU0FBUyxXQUFBO2dCQUNULFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUzthQUNoQyxDQUFDO1FBSkYsQ0FJRSxFQUNILEVBQ0QsR0FBRzs7O1FBQUMsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLEVBQUMsRUFDZixVQUFVOzs7UUFBQztZQUNULE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxFQUFDLEVBQ0YsR0FBRzs7O1FBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQTNCLENBQTJCLEVBQUMsQ0FDdkMsQ0FBQztJQUNKLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzLCBIb29rU2V0IH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBsYXp5TG9hZEltYWdlPEU+KGhvb2tTZXQ6IEhvb2tTZXQ8RT4sIGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMpIHtcbiAgcmV0dXJuIChzY3JvbGxPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEU+KSA9PiB7XG4gICAgcmV0dXJuIHNjcm9sbE9ic2VydmFibGUucGlwZShcbiAgICAgIGZpbHRlcihldmVudCA9PlxuICAgICAgICBob29rU2V0LmlzVmlzaWJsZSh7XG4gICAgICAgICAgZWxlbWVudDogYXR0cmlidXRlcy5lbGVtZW50LFxuICAgICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgICBvZmZzZXQ6IGF0dHJpYnV0ZXMub2Zmc2V0LFxuICAgICAgICAgIHNjcm9sbENvbnRhaW5lcjogYXR0cmlidXRlcy5zY3JvbGxDb250YWluZXJcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWVyZ2VNYXAoKCkgPT4gaG9va1NldC5sb2FkSW1hZ2UoYXR0cmlidXRlcykpLFxuICAgICAgdGFwKGltYWdlUGF0aCA9PlxuICAgICAgICBob29rU2V0LnNldExvYWRlZEltYWdlKHtcbiAgICAgICAgICBlbGVtZW50OiBhdHRyaWJ1dGVzLmVsZW1lbnQsXG4gICAgICAgICAgaW1hZ2VQYXRoLFxuICAgICAgICAgIHVzZVNyY3NldDogYXR0cmlidXRlcy51c2VTcmNzZXRcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgaG9va1NldC5zZXRFcnJvckltYWdlKGF0dHJpYnV0ZXMpO1xuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gaG9va1NldC5maW5hbGx5KGF0dHJpYnV0ZXMpKVxuICAgICk7XG4gIH07XG59XG4iXX0=