UNPKG

ng-lazyload-image-angular-universal

Version:

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

58 lines 4.64 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 {?} */ 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=