UNPKG

ng-lazyload-image-angular-universal

Version:

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

98 lines 7.47 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @return {?} */ export function isWindowDefined() { return typeof window !== 'undefined'; } /** * @param {?} element * @return {?} */ export function isChildOfPicture(element) { return Boolean(element.parentElement && element.parentElement.nodeName.toLowerCase() === 'picture'); } /** * @param {?} element * @return {?} */ export function isImageElement(element) { return element.nodeName.toLowerCase() === 'img'; } /** * @param {?} element * @param {?} imagePath * @param {?} useSrcset * @return {?} */ export function setImage(element, imagePath, useSrcset) { if (isImageElement(element)) { if (useSrcset) { element.srcset = imagePath; } else { element.src = imagePath; } } else { element.style.backgroundImage = "url('" + imagePath + "')"; } return element; } /** * @param {?} attrName * @return {?} */ function setSources(attrName) { return (/** * @param {?} image * @return {?} */ function (image) { /** @type {?} */ var sources = image.parentElement.getElementsByTagName('source'); for (var i = 0; i < sources.length; i++) { /** @type {?} */ var attrValue = sources[i].getAttribute(attrName); if (attrValue) { sources[i].srcset = attrValue; } } }); } /** @type {?} */ var setSourcesToDefault = setSources('defaultImage'); /** @type {?} */ export var setSourcesToLazy = setSources('lazyLoad'); /** @type {?} */ var setSourcesToError = setSources('errorImage'); /** * @param {?} setSourcesFn * @return {?} */ function setImageAndSources(setSourcesFn) { return (/** * @param {?} element * @param {?} imagePath * @param {?} useSrcset * @return {?} */ function (element, imagePath, useSrcset) { if (isImageElement(element) && isChildOfPicture(element)) { setSourcesFn(element); } if (imagePath) { setImage(element, imagePath, useSrcset); } }); } /** @type {?} */ export var setImageAndSourcesToDefault = setImageAndSources(setSourcesToDefault); /** @type {?} */ export var setImageAndSourcesToLazy = setImageAndSources(setSourcesToLazy); /** @type {?} */ export var setImageAndSourcesToError = setImageAndSources(setSourcesToError); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWxhenlsb2FkLWltYWdlLWFuZ3VsYXItdW5pdmVyc2FsLyIsInNvdXJjZXMiOlsibGliL3V0aWwvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTSxVQUFVLGVBQWU7SUFDN0IsT0FBTyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDdkMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBMEM7SUFDekUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQztBQUN0RyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBMEM7SUFDdkUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssQ0FBQztBQUNsRCxDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUEwQyxFQUFFLFNBQWlCLEVBQUUsU0FBa0I7SUFDeEcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUM1QjthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7U0FDekI7S0FDRjtTQUFNO1FBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsVUFBUSxTQUFTLE9BQUksQ0FBQztLQUN2RDtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7Ozs7O0FBRUQsU0FBUyxVQUFVLENBQUMsUUFBZ0I7SUFDbEM7Ozs7SUFBTyxVQUFDLEtBQXVCOztZQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7UUFDbEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O2dCQUNqQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDbkQsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7YUFDL0I7U0FDRjtJQUNILENBQUMsRUFBQztBQUNKLENBQUM7O0lBRUssbUJBQW1CLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQzs7QUFDdEQsTUFBTSxLQUFPLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7O0lBQ2hELGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7Ozs7O0FBRWxELFNBQVMsa0JBQWtCLENBQUMsWUFBK0M7SUFDekU7Ozs7OztJQUFPLFVBQUMsT0FBMEMsRUFBRSxTQUFpQixFQUFFLFNBQWtCO1FBQ3ZGLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2QjtRQUNELElBQUksU0FBUyxFQUFFO1lBQ2IsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDLEVBQUM7QUFDSixDQUFDOztBQUVELE1BQU0sS0FBTywyQkFBMkIsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQzs7QUFDbEYsTUFBTSxLQUFPLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDOztBQUM1RSxNQUFNLEtBQU8seUJBQXlCLEdBQUcsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNXaW5kb3dEZWZpbmVkKCkge1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NoaWxkT2ZQaWN0dXJlKGVsZW1lbnQ6IEhUTUxJbWFnZUVsZW1lbnQgfCBIVE1MRGl2RWxlbWVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihlbGVtZW50LnBhcmVudEVsZW1lbnQgJiYgZWxlbWVudC5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdwaWN0dXJlJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlRWxlbWVudChlbGVtZW50OiBIVE1MSW1hZ2VFbGVtZW50IHwgSFRNTERpdkVsZW1lbnQpOiBlbGVtZW50IGlzIEhUTUxJbWFnZUVsZW1lbnQge1xuICByZXR1cm4gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW1nJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEltYWdlKGVsZW1lbnQ6IEhUTUxJbWFnZUVsZW1lbnQgfCBIVE1MRGl2RWxlbWVudCwgaW1hZ2VQYXRoOiBzdHJpbmcsIHVzZVNyY3NldDogYm9vbGVhbikge1xuICBpZiAoaXNJbWFnZUVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICBpZiAodXNlU3Jjc2V0KSB7XG4gICAgICBlbGVtZW50LnNyY3NldCA9IGltYWdlUGF0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudC5zcmMgPSBpbWFnZVBhdGg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYHVybCgnJHtpbWFnZVBhdGh9JylgO1xuICB9XG4gIHJldHVybiBlbGVtZW50O1xufVxuXG5mdW5jdGlvbiBzZXRTb3VyY2VzKGF0dHJOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChpbWFnZTogSFRNTEltYWdlRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZXMgPSBpbWFnZS5wYXJlbnRFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzb3VyY2UnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGF0dHJWYWx1ZSA9IHNvdXJjZXNbaV0uZ2V0QXR0cmlidXRlKGF0dHJOYW1lKTtcbiAgICAgIGlmIChhdHRyVmFsdWUpIHtcbiAgICAgICAgc291cmNlc1tpXS5zcmNzZXQgPSBhdHRyVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5jb25zdCBzZXRTb3VyY2VzVG9EZWZhdWx0ID0gc2V0U291cmNlcygnZGVmYXVsdEltYWdlJyk7XG5leHBvcnQgY29uc3Qgc2V0U291cmNlc1RvTGF6eSA9IHNldFNvdXJjZXMoJ2xhenlMb2FkJyk7XG5jb25zdCBzZXRTb3VyY2VzVG9FcnJvciA9IHNldFNvdXJjZXMoJ2Vycm9ySW1hZ2UnKTtcblxuZnVuY3Rpb24gc2V0SW1hZ2VBbmRTb3VyY2VzKHNldFNvdXJjZXNGbjogKGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50KSA9PiB2b2lkKSB7XG4gIHJldHVybiAoZWxlbWVudDogSFRNTEltYWdlRWxlbWVudCB8IEhUTUxEaXZFbGVtZW50LCBpbWFnZVBhdGg6IHN0cmluZywgdXNlU3Jjc2V0OiBib29sZWFuKSA9PiB7XG4gICAgaWYgKGlzSW1hZ2VFbGVtZW50KGVsZW1lbnQpICYmIGlzQ2hpbGRPZlBpY3R1cmUoZWxlbWVudCkpIHtcbiAgICAgIHNldFNvdXJjZXNGbihlbGVtZW50KTtcbiAgICB9XG4gICAgaWYgKGltYWdlUGF0aCkge1xuICAgICAgc2V0SW1hZ2UoZWxlbWVudCwgaW1hZ2VQYXRoLCB1c2VTcmNzZXQpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHNldEltYWdlQW5kU291cmNlc1RvRGVmYXVsdCA9IHNldEltYWdlQW5kU291cmNlcyhzZXRTb3VyY2VzVG9EZWZhdWx0KTtcbmV4cG9ydCBjb25zdCBzZXRJbWFnZUFuZFNvdXJjZXNUb0xhenkgPSBzZXRJbWFnZUFuZFNvdXJjZXMoc2V0U291cmNlc1RvTGF6eSk7XG5leHBvcnQgY29uc3Qgc2V0SW1hZ2VBbmRTb3VyY2VzVG9FcnJvciA9IHNldEltYWdlQW5kU291cmNlcyhzZXRTb3VyY2VzVG9FcnJvcik7XG4iXX0=