{"version":3,"file":"lazyload.f9d1e773.js","mappings":"AAEIA,OAAOC,YAAcD,OAAOC,aAAe,CAAC,EAC5CD,OAAOC,YAAYC,SAAWF,OAAOC,YAAYC,UAAY,CAAC,EAC9DF,OAAOC,YAAYC,SAASC,KAAO,WAG/B,IAAMC,EAAaC,SAASC,iBAAiB,iBACvCC,EAAuBF,SAASC,iBAAiB,yBAGvD,KAAM,yBAA0BN,QAG5B,OAFAI,EAAWI,SAAQ,SAACC,GAAY,OAAKC,EAAUD,EAAa,SAC5DF,EAAqBC,SAAQ,SAACC,GAAY,OAAKE,EAAoBF,EAAa,IA8CpF,SAASC,EAAUD,GAEf,IAAMG,EAASH,EAAaI,WACL,YAAnBD,EAAOE,SACgBF,EAAON,iBAAiB,UAChCE,SAAQ,SAACO,GACpBA,EAAcC,OAASD,EAAcE,QAAQD,MACjD,IAIJP,EAAaS,IAAMT,EAAaQ,QAAQC,IACxCT,EAAaU,gBAAgB,YAC7BV,EAAaW,UAAUC,IAAI,aAC/B,CAEA,SAASV,EAAoBF,GAEzB,IAAIa,EAAU,IAAIC,MAClBD,EAAQE,OAAS,WAEbf,EAAagB,MAAMC,gBAAkB,OAASJ,EAAQJ,IAAM,IAC5DT,EAAaU,gBAAgB,uBAC7BV,EAAaW,UAAUC,IAAI,cAG3BC,EAAU,IACd,EACAA,EAAQK,QAAU,SAAUC,GACxB,EAGJN,EAAQJ,IAAMT,EAAaQ,QAAQY,aACvC,CA1EA7B,OAAOC,YAAYC,SAAS4B,SAAW,IAAIC,sBAAqB,SAAAC,GAC5DA,EAAQxB,SAAQ,SAAAyB,GACZ,KAAIA,EAAMC,mBAAqB,GAA/B,CAIA,IAAMzB,EAAewB,EAAME,OAC3BzB,EAAUD,GACVT,OAAOC,YAAYC,SAAS4B,SAASM,UAAU3B,EAJ/C,CAKJ,GACJ,GAEI,CAAE4B,WAAY,UAIlBrC,OAAOC,YAAYC,SAASoC,mBAAqB,IAAIP,sBAAqB,SAAAC,GACtEA,EAAQxB,SAAQ,SAAAyB,GACZ,KAAIA,EAAMC,mBAAqB,GAA/B,CAIA,IAAMzB,EAAewB,EAAME,OAC3BxB,EAAoBF,GACpBT,OAAOC,YAAYC,SAASoC,mBAAmBF,UAAU3B,EAJzD,CAKJ,GACJ,GAEI,CAAE4B,WAAY,UAIlBjC,EAAWI,SAAQ,SAACC,GAChBT,OAAOC,YAAYC,SAAS4B,SAASS,QAAQ9B,EACjD,IAGAF,EAAqBC,SAAQ,SAACC,GAC1BT,OAAOC,YAAYC,SAASoC,mBAAmBC,QAAQ9B,EAC3D,GAoCJ,EACAT,OAAOC,YAAYC,SAASsC,WAAY","sources":["webpack://advanced-web/./UI/js/core/modules/lazyLoad.js"],"sourcesContent":["(function () {\r\n\r\n window.oneadvanced = window.oneadvanced || {};\r\n window.oneadvanced.lazyload = window.oneadvanced.lazyload || {};\r\n window.oneadvanced.lazyload.init = function () {\r\n //console.log(\"initialising lazyload...\");\r\n // Get images that has the data-src attribute\r\n const lazyImages = document.querySelectorAll('img[data-src]');\r\n const lazyBackgroundImages = document.querySelectorAll('[data-background-src]');\r\n\r\n // If browser doesn't support IntersectionObserver, load all images \r\n if (!('IntersectionObserver' in window)) {\r\n lazyImages.forEach((imageElement) => loadImage(imageElement));\r\n lazyBackgroundImages.forEach((imageElement) => loadBackgroundImage(imageElement));\r\n return;\r\n }\r\n\r\n // Create observer\r\n window.oneadvanced.lazyload.observer = new IntersectionObserver(entries => {\r\n entries.forEach(entry => {\r\n if (entry.intersectionRatio <= 0) {\r\n return;\r\n }\r\n\r\n const imageElement = entry.target;\r\n loadImage(imageElement);\r\n window.oneadvanced.lazyload.observer.unobserve(imageElement);\r\n });\r\n },\r\n // Configuration for the observer\r\n { rootMargin: '100px' } // load images if it gets within 100px\r\n );\r\n\r\n // Create background observer\r\n window.oneadvanced.lazyload.backgroundObserver = new IntersectionObserver(entries => {\r\n entries.forEach(entry => {\r\n if (entry.intersectionRatio <= 0) {\r\n return;\r\n }\r\n\r\n const imageElement = entry.target;\r\n loadBackgroundImage(imageElement);\r\n window.oneadvanced.lazyload.backgroundObserver.unobserve(imageElement);\r\n });\r\n },\r\n // Configuration for the observer\r\n { rootMargin: '100px' } // load images if it gets within 100px\r\n );\r\n\r\n // Let all lazy images be observered\r\n lazyImages.forEach((imageElement) => {\r\n window.oneadvanced.lazyload.observer.observe(imageElement);\r\n });\r\n\r\n // Let all lazy background images be observered\r\n lazyBackgroundImages.forEach((imageElement) => {\r\n window.oneadvanced.lazyload.backgroundObserver.observe(imageElement);\r\n });\r\n\r\n function loadImage(imageElement) {\r\n // If image is within a picture element, set srcset attribute for all source elements\r\n const parent = imageElement.parentNode;\r\n if (parent.tagName === 'PICTURE') {\r\n const sourceElements = parent.querySelectorAll('source');\r\n sourceElements.forEach((sourceElement) => {\r\n sourceElement.srcset = sourceElement.dataset.srcset;\r\n });\r\n }\r\n\r\n // Set img src attribute\r\n imageElement.src = imageElement.dataset.src;\r\n imageElement.removeAttribute('data-src');\r\n imageElement.classList.add(\"lazyloaded\");\r\n }\r\n\r\n function loadBackgroundImage(imageElement) {\r\n //imageElement.classList.remove(\"lazy\");\r\n var tempImg = new Image();\r\n tempImg.onload = function () {\r\n //console.log(\"onload executing for: \", imageElement.dataset.backgroundSrc);\r\n imageElement.style.backgroundImage = 'url(' + tempImg.src + ')';\r\n imageElement.removeAttribute('data-background-src');\r\n imageElement.classList.add(\"lazyloaded\");\r\n\r\n // image swap is now successful, lets clean up\r\n tempImg = null;\r\n }\r\n tempImg.onerror = function (error) {\r\n //console.log(error);\r\n };\r\n //console.log(\"tempImage assigned src of: \", imageElement.dataset.backgroundSrc);\r\n tempImg.src = imageElement.dataset.backgroundSrc; \r\n }\r\n };\r\n window.oneadvanced.lazyload.hasLoaded = true;\r\n\r\n})();"],"names":["window","oneadvanced","lazyload","init","lazyImages","document","querySelectorAll","lazyBackgroundImages","forEach","imageElement","loadImage","loadBackgroundImage","parent","parentNode","tagName","sourceElement","srcset","dataset","src","removeAttribute","classList","add","tempImg","Image","onload","style","backgroundImage","onerror","error","backgroundSrc","observer","IntersectionObserver","entries","entry","intersectionRatio","target","unobserve","rootMargin","backgroundObserver","observe","hasLoaded"],"sourceRoot":""}