UNPKG

ng-lazyload-image-angular-universal

Version:

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

109 lines 8.74 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Observable } from 'rxjs'; import { cssClassNames, hasCssClassName, removeCssClassName, addCssClassName, isImageElement, isChildOfPicture, setSourcesToLazy, setImage, setImageAndSourcesToError, setImageAndSourcesToLazy, setImageAndSourcesToDefault, } from '../util'; /** @type {?} */ var end = (/** * @param {?} __0 * @return {?} */ function (_a) { var element = _a.element; return addCssClassName(element, cssClassNames.loaded); }); var ɵ0 = end; /** @type {?} */ export var loadImage = (/** * @param {?} __0 * @return {?} */ function (_a) { var element = _a.element, useSrcset = _a.useSrcset, imagePath = _a.imagePath; /** @type {?} */ var img; if (isImageElement(element) && isChildOfPicture(element)) { /** @type {?} */ var parentClone = (/** @type {?} */ (element.parentNode.cloneNode(true))); img = parentClone.getElementsByTagName('img')[0]; setSourcesToLazy(img); setImage(img, imagePath, useSrcset); } else { img = new Image(); if (isImageElement(element) && element.sizes) { img.sizes = element.sizes; } if (useSrcset) { img.srcset = imagePath; } else { img.src = imagePath; } } return Observable.create((/** * @param {?} observer * @return {?} */ function (observer) { img.onload = (/** * @return {?} */ function () { observer.next(imagePath); observer.complete(); }); img.onerror = (/** * @param {?} err * @return {?} */ function (err) { observer.error(null); }); })); }); /** @type {?} */ var setErrorImage = (/** * @param {?} __0 * @return {?} */ function (_a) { var element = _a.element, errorImagePath = _a.errorImagePath, useSrcset = _a.useSrcset; setImageAndSourcesToError(element, errorImagePath, useSrcset); addCssClassName(element, cssClassNames.failed); }); var ɵ1 = setErrorImage; /** @type {?} */ var setLoadedImage = (/** * @param {?} __0 * @return {?} */ function (_a) { var element = _a.element, imagePath = _a.imagePath, useSrcset = _a.useSrcset; setImageAndSourcesToLazy(element, imagePath, useSrcset); }); var ɵ2 = setLoadedImage; /** @type {?} */ var setup = (/** * @param {?} __0 * @return {?} */ function (_a) { var element = _a.element, defaultImagePath = _a.defaultImagePath, useSrcset = _a.useSrcset; setImageAndSourcesToDefault(element, defaultImagePath, useSrcset); if (hasCssClassName(element, cssClassNames.loaded)) { removeCssClassName(element, cssClassNames.loaded); } }); var ɵ3 = setup; /** @type {?} */ export var sharedPreset = { finally: end, loadImage: loadImage, setErrorImage: setErrorImage, setLoadedImage: setLoadedImage, setup: setup }; export { ɵ0, ɵ1, ɵ2, ɵ3 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctbGF6eWxvYWQtaW1hZ2UtYW5ndWxhci11bml2ZXJzYWwvIiwic291cmNlcyI6WyJsaWIvc2hhcmVkLXByZXNldC9wcmVzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUNMLGFBQWEsRUFDYixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4QiwyQkFBMkIsR0FDNUIsTUFBTSxTQUFTLENBQUM7O0lBU1gsR0FBRzs7OztBQUFjLFVBQUMsRUFBVztRQUFULG9CQUFPO0lBQU8sT0FBQSxlQUFlLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUM7QUFBOUMsQ0FBOEMsQ0FBQTs7O0FBRXRGLE1BQU0sS0FBTyxTQUFTOzs7O0FBQWdCLFVBQUMsRUFBaUM7UUFBL0Isb0JBQU8sRUFBRSx3QkFBUyxFQUFFLHdCQUFTOztRQUNoRSxHQUFxQjtJQUN6QixJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRTs7WUFDbEQsV0FBVyxHQUFHLG1CQUFBLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFzQjtRQUM1RSxHQUFHLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ3JDO1NBQU07UUFDTCxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNsQixJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQzVDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUMzQjtRQUNELElBQUksU0FBUyxFQUFFO1lBQ2IsR0FBRyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7U0FDeEI7YUFBTTtZQUNMLEdBQUcsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1NBQ3JCO0tBQ0Y7SUFFRCxPQUFPLFVBQVUsQ0FBQyxNQUFNOzs7O0lBQUMsVUFBQSxRQUFRO1FBQy9CLEdBQUcsQ0FBQyxNQUFNOzs7UUFBRztZQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQSxDQUFDO1FBQ0YsR0FBRyxDQUFDLE9BQU87Ozs7UUFBRyxVQUFBLEdBQUc7WUFDZixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQSxDQUFDO0lBQ0osQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDLENBQUE7O0lBRUssYUFBYTs7OztBQUFvQixVQUFDLEVBQXNDO1FBQXBDLG9CQUFPLEVBQUUsa0NBQWMsRUFBRSx3QkFBUztJQUMxRSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlELGVBQWUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQTs7O0lBRUssY0FBYzs7OztBQUFxQixVQUFDLEVBQWlDO1FBQS9CLG9CQUFPLEVBQUUsd0JBQVMsRUFBRSx3QkFBUztJQUN2RSx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQTs7O0lBRUssS0FBSzs7OztBQUFZLFVBQUMsRUFBd0M7UUFBdEMsb0JBQU8sRUFBRSxzQ0FBZ0IsRUFBRSx3QkFBUztJQUM1RCwyQkFBMkIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFbEUsSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNsRCxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ25EO0FBQ0gsQ0FBQyxDQUFBOzs7QUFFRCxNQUFNLEtBQU8sWUFBWSxHQUFHO0lBQzFCLE9BQU8sRUFBRSxHQUFHO0lBQ1osU0FBUyxXQUFBO0lBQ1QsYUFBYSxlQUFBO0lBQ2IsY0FBYyxnQkFBQTtJQUNkLEtBQUssT0FBQTtDQUNOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY3NzQ2xhc3NOYW1lcyxcbiAgaGFzQ3NzQ2xhc3NOYW1lLFxuICByZW1vdmVDc3NDbGFzc05hbWUsXG4gIGFkZENzc0NsYXNzTmFtZSxcbiAgaXNJbWFnZUVsZW1lbnQsXG4gIGlzQ2hpbGRPZlBpY3R1cmUsXG4gIHNldFNvdXJjZXNUb0xhenksXG4gIHNldEltYWdlLFxuICBzZXRJbWFnZUFuZFNvdXJjZXNUb0Vycm9yLFxuICBzZXRJbWFnZUFuZFNvdXJjZXNUb0xhenksXG4gIHNldEltYWdlQW5kU291cmNlc1RvRGVmYXVsdCxcbn0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQge1xuICBGaW5hbGx5Rm4sXG4gIExvYWRJbWFnZUZuLFxuICBTZXRFcnJvckltYWdlRm4sXG4gIFNldExvYWRlZEltYWdlRm4sXG4gIFNldHVwRm5cbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBlbmQ6IEZpbmFsbHlGbiA9ICh7IGVsZW1lbnQgfSkgPT4gYWRkQ3NzQ2xhc3NOYW1lKGVsZW1lbnQsIGNzc0NsYXNzTmFtZXMubG9hZGVkKTtcblxuZXhwb3J0IGNvbnN0IGxvYWRJbWFnZTogTG9hZEltYWdlRm4gPSAoeyBlbGVtZW50LCB1c2VTcmNzZXQsIGltYWdlUGF0aCB9KSA9PiB7XG4gIGxldCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQ7XG4gIGlmIChpc0ltYWdlRWxlbWVudChlbGVtZW50KSAmJiBpc0NoaWxkT2ZQaWN0dXJlKGVsZW1lbnQpKSB7XG4gICAgY29uc3QgcGFyZW50Q2xvbmUgPSBlbGVtZW50LnBhcmVudE5vZGUuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxQaWN0dXJlRWxlbWVudDtcbiAgICBpbWcgPSBwYXJlbnRDbG9uZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJylbMF07XG4gICAgc2V0U291cmNlc1RvTGF6eShpbWcpO1xuICAgIHNldEltYWdlKGltZywgaW1hZ2VQYXRoLCB1c2VTcmNzZXQpO1xuICB9IGVsc2Uge1xuICAgIGltZyA9IG5ldyBJbWFnZSgpO1xuICAgIGlmIChpc0ltYWdlRWxlbWVudChlbGVtZW50KSAmJiBlbGVtZW50LnNpemVzKSB7XG4gICAgICBpbWcuc2l6ZXMgPSBlbGVtZW50LnNpemVzO1xuICAgIH1cbiAgICBpZiAodXNlU3Jjc2V0KSB7XG4gICAgICBpbWcuc3Jjc2V0ID0gaW1hZ2VQYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbWcuc3JjID0gaW1hZ2VQYXRoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZShvYnNlcnZlciA9PiB7XG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIG9ic2VydmVyLm5leHQoaW1hZ2VQYXRoKTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcbiAgICBpbWcub25lcnJvciA9IGVyciA9PiB7XG4gICAgICBvYnNlcnZlci5lcnJvcihudWxsKTtcbiAgICB9O1xuICB9KTtcbn07XG5cbmNvbnN0IHNldEVycm9ySW1hZ2U6IFNldEVycm9ySW1hZ2VGbiA9ICh7IGVsZW1lbnQsIGVycm9ySW1hZ2VQYXRoLCB1c2VTcmNzZXQgfSkgPT4ge1xuICBzZXRJbWFnZUFuZFNvdXJjZXNUb0Vycm9yKGVsZW1lbnQsIGVycm9ySW1hZ2VQYXRoLCB1c2VTcmNzZXQpO1xuICBhZGRDc3NDbGFzc05hbWUoZWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5mYWlsZWQpO1xufTtcblxuY29uc3Qgc2V0TG9hZGVkSW1hZ2U6IFNldExvYWRlZEltYWdlRm4gPSAoeyBlbGVtZW50LCBpbWFnZVBhdGgsIHVzZVNyY3NldCB9KSA9PiB7XG4gIHNldEltYWdlQW5kU291cmNlc1RvTGF6eShlbGVtZW50LCBpbWFnZVBhdGgsIHVzZVNyY3NldCk7XG59O1xuXG5jb25zdCBzZXR1cDogU2V0dXBGbiA9ICh7IGVsZW1lbnQsIGRlZmF1bHRJbWFnZVBhdGgsIHVzZVNyY3NldCB9KSA9PiB7XG4gIHNldEltYWdlQW5kU291cmNlc1RvRGVmYXVsdChlbGVtZW50LCBkZWZhdWx0SW1hZ2VQYXRoLCB1c2VTcmNzZXQpO1xuXG4gIGlmIChoYXNDc3NDbGFzc05hbWUoZWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5sb2FkZWQpKSB7XG4gICAgcmVtb3ZlQ3NzQ2xhc3NOYW1lKGVsZW1lbnQsIGNzc0NsYXNzTmFtZXMubG9hZGVkKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNoYXJlZFByZXNldCA9IHtcbiAgZmluYWxseTogZW5kLFxuICBsb2FkSW1hZ2UsXG4gIHNldEVycm9ySW1hZ2UsXG4gIHNldExvYWRlZEltYWdlLFxuICBzZXR1cFxufTtcbiJdfQ==