{"version":3,"file":"LazyImages-1e566d9a.js","sources":["../../../node_modules/vanilla-lazyload/dist/lazyload.esm.js","../../../app/javascript/components/LazyImages.js"],"sourcesContent":["const runningOnBrowser = typeof window !== \"undefined\";\r\n\r\nconst isBot =\r\n (runningOnBrowser && !(\"onscroll\" in window)) ||\r\n (typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));\r\n\r\nconst supportsIntersectionObserver = runningOnBrowser && \"IntersectionObserver\" in window;\r\n\r\nconst supportsClassList = runningOnBrowser && \"classList\" in document.createElement(\"p\");\r\n\r\nconst isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\r\n\r\nconst defaultSettings = {\r\n elements_selector: \"IMG\",\r\n container: isBot || runningOnBrowser ? document : null,\r\n threshold: 300,\r\n thresholds: null,\r\n data_src: \"src\",\r\n data_srcset: \"srcset\",\r\n data_sizes: \"sizes\",\r\n data_bg: \"bg\",\r\n data_bg_hidpi: \"bg-hidpi\",\r\n data_bg_multi: \"bg-multi\",\r\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\r\n data_poster: \"poster\",\r\n class_applied: \"applied\",\r\n class_loading: \"loading\",\r\n class_loaded: \"loaded\",\r\n class_error: \"error\",\r\n unobserve_completed: true,\r\n unobserve_entered: false,\r\n cancel_on_exit: false,\r\n callback_enter: null,\r\n callback_exit: null,\r\n callback_applied: null,\r\n callback_loading: null,\r\n callback_loaded: null,\r\n callback_error: null,\r\n callback_finish: null,\r\n callback_cancel: null,\r\n use_native: false\r\n};\r\n\r\nconst getExtendedSettings = (customSettings) => {\r\n return Object.assign({}, defaultSettings, customSettings);\r\n};\r\n\r\n/* Creates instance and notifies it through the window element */\r\nconst createInstance = function(classObj, options) {\r\n var event;\r\n let eventString = \"LazyLoad::Initialized\";\r\n let instance = new classObj(options);\r\n try {\r\n // Works in modern browsers\r\n event = new CustomEvent(eventString, { detail: { instance } });\r\n } catch (err) {\r\n // Works in Internet Explorer (all versions)\r\n event = document.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventString, false, false, { instance });\r\n }\r\n window.dispatchEvent(event);\r\n};\r\n\r\n/* Auto initialization of one or more instances of lazyload, depending on the \r\n options passed in (plain object or an array) */\r\nconst autoInitialize = (classObj, options) => {\r\n if (!options) {\r\n return;\r\n }\r\n if (!options.length) {\r\n // Plain object\r\n createInstance(classObj, options);\r\n } else {\r\n // Array of objects\r\n for (let i = 0, optionsItem; (optionsItem = options[i]); i += 1) {\r\n createInstance(classObj, optionsItem);\r\n }\r\n }\r\n};\r\n\r\nconst statusLoading = \"loading\";\r\nconst statusLoaded = \"loaded\";\r\nconst statusApplied = \"applied\";\r\nconst statusError = \"error\";\r\nconst statusNative = \"native\";\r\n\r\nconst dataPrefix = \"data-\";\r\nconst statusDataName = \"ll-status\";\r\n\r\nconst getData = (element, attribute) => {\r\n return element.getAttribute(dataPrefix + attribute);\r\n};\r\n\r\nconst setData = (element, attribute, value) => {\r\n var attrName = dataPrefix + attribute;\r\n if (value === null) {\r\n element.removeAttribute(attrName);\r\n return;\r\n }\r\n element.setAttribute(attrName, value);\r\n};\r\n\r\nconst getStatus = (element) => getData(element, statusDataName);\r\nconst setStatus = (element, status) => setData(element, statusDataName, status);\r\nconst resetStatus = (element) => setStatus(element, null);\r\n\r\nconst hasEmptyStatus = (element) => getStatus(element) === null;\r\nconst hasStatusLoading = (element) => getStatus(element) === statusLoading;\r\nconst hasStatusError = (element) => getStatus(element) === statusError;\r\nconst hasStatusNative = (element) => getStatus(element) === statusNative;\r\nconst hadStartedLoading = (element) => !hasEmptyStatus(element);\r\n\r\nconst safeCallback = (callback, arg1, arg2, arg3) => {\r\n\tif (!callback) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (arg3 !== undefined) {\r\n\t\tcallback(arg1, arg2, arg3);\r\n\t\treturn;\r\n\t}\r\n\tif (arg2 !== undefined) {\r\n\t\tcallback(arg1, arg2);\r\n\t\treturn;\r\n\t}\r\n\tcallback(arg1);\r\n};\r\n\r\nconst addClass = (element, className) => {\r\n\tif (supportsClassList) {\r\n\t\telement.classList.add(className);\r\n\t\treturn;\r\n\t}\r\n\telement.className += (element.className ? \" \" : \"\") + className;\r\n};\r\n\r\nconst removeClass = (element, className) => {\r\n\tif (supportsClassList) {\r\n\t\telement.classList.remove(className);\r\n\t\treturn;\r\n\t}\r\n\telement.className = element.className.\r\n\t\treplace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").\r\n\t\treplace(/^\\s+/, \"\").\r\n\t\treplace(/\\s+$/, \"\");\r\n};\r\n\r\nconst addTempImage = (element) => {\r\n element.llTempImage = document.createElement(\"IMG\");\r\n};\r\n\r\nconst deleteTempImage = (element) => {\r\n delete element.llTempImage;\r\n};\r\n\r\nconst getTempImage = (element) => element.llTempImage;\r\n\r\nconst unobserve = (element, instance) => {\r\n if (!instance) return;\r\n const observer = instance._observer;\r\n if (!observer) return;\r\n observer.unobserve(element);\r\n};\r\n\r\nconst resetObserver = (observer) => {\r\n observer.disconnect();\r\n};\r\n\r\nconst unobserveIfRequired = (element, settings, instance) => {\r\n if (settings.unobserve_entered) unobserve(element, instance);\r\n};\r\n\r\nconst updateLoadingCount = (instance, delta) => {\r\n if (!instance) return;\r\n instance.loadingCount += delta;\r\n};\r\n\r\nconst decreaseToLoadCount = (instance) => {\r\n if (!instance) return;\r\n instance.toLoadCount -= 1;\r\n};\r\n\r\nconst setToLoadCount = (instance, value) => {\r\n if (!instance) return;\r\n instance.toLoadCount = value;\r\n};\r\n\r\nconst isSomethingLoading = (instance) => instance.loadingCount > 0;\r\n\r\nconst haveElementsToLoad = (instance) => instance.toLoadCount > 0;\r\n\r\nconst getSourceTags = (parentTag) => {\r\n let sourceTags = [];\r\n for (let i = 0, childTag; (childTag = parentTag.children[i]); i += 1) {\r\n if (childTag.tagName === \"SOURCE\") {\r\n sourceTags.push(childTag);\r\n }\r\n }\r\n return sourceTags;\r\n};\r\n\r\nconst setAttributeIfValue = (element, attrName, value) => {\r\n if (!value) {\r\n return;\r\n }\r\n element.setAttribute(attrName, value);\r\n};\r\n\r\nconst resetAttribute = (element, attrName) => {\r\n element.removeAttribute(attrName);\r\n};\r\n\r\nconst hasOriginalAttributes = (element) => {\r\n return !!element.llOriginalAttrs;\r\n};\r\n\r\nconst saveOriginalImageAttributes = (element) => {\r\n if (hasOriginalAttributes(element)) {\r\n return;\r\n }\r\n const originalAttributes = {};\r\n originalAttributes[\"src\"] = element.getAttribute(\"src\");\r\n originalAttributes[\"srcset\"] = element.getAttribute(\"srcset\");\r\n originalAttributes[\"sizes\"] = element.getAttribute(\"sizes\");\r\n element.llOriginalAttrs = originalAttributes;\r\n};\r\n\r\nconst restoreOriginalImageAttributes = (element) => {\r\n if (!hasOriginalAttributes(element)) {\r\n return;\r\n }\r\n const originalAttributes = element.llOriginalAttrs;\r\n setAttributeIfValue(element, \"src\", originalAttributes[\"src\"]);\r\n setAttributeIfValue(element, \"srcset\", originalAttributes[\"srcset\"]);\r\n setAttributeIfValue(element, \"sizes\", originalAttributes[\"sizes\"]);\r\n};\r\n\r\nconst setImageAttributes = (element, settings) => {\r\n setAttributeIfValue(element, \"sizes\", getData(element, settings.data_sizes));\r\n setAttributeIfValue(element, \"srcset\", getData(element, settings.data_srcset));\r\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n};\r\n\r\nconst resetImageAttributes = (element) => {\r\n resetAttribute(element, \"src\");\r\n resetAttribute(element, \"srcset\");\r\n resetAttribute(element, \"sizes\");\r\n};\r\n\r\nconst forEachPictureSource = (element, fn) => {\r\n const parent = element.parentNode;\r\n if (!parent || parent.tagName !== \"PICTURE\") {\r\n return;\r\n }\r\n let sourceTags = getSourceTags(parent);\r\n sourceTags.forEach(fn);\r\n};\r\n\r\nconst forEachVideoSource = (element, fn) => {\r\n let sourceTags = getSourceTags(element);\r\n sourceTags.forEach(fn);\r\n};\r\n\r\nconst restoreOriginalAttributesImg = (element) => {\r\n forEachPictureSource(element, (sourceTag) => {\r\n restoreOriginalImageAttributes(sourceTag);\r\n });\r\n restoreOriginalImageAttributes(element);\r\n};\r\n\r\nconst setSourcesImg = (element, settings) => {\r\n forEachPictureSource(element, (sourceTag) => {\r\n saveOriginalImageAttributes(sourceTag);\r\n setImageAttributes(sourceTag, settings);\r\n });\r\n saveOriginalImageAttributes(element);\r\n setImageAttributes(element, settings);\r\n};\r\n\r\nconst resetSourcesImg = (element) => {\r\n forEachPictureSource(element, (sourceTag) => {\r\n resetImageAttributes(sourceTag);\r\n });\r\n resetImageAttributes(element);\r\n};\r\n\r\nconst setSourcesIframe = (element, settings) => {\r\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n};\r\n\r\nconst setSourcesVideo = (element, settings) => {\r\n forEachVideoSource(element, (sourceTag) => {\r\n setAttributeIfValue(sourceTag, \"src\", getData(sourceTag, settings.data_src));\r\n });\r\n setAttributeIfValue(element, \"poster\", getData(element, settings.data_poster));\r\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n element.load();\r\n};\r\n\r\nconst setSourcesFunctions = {\r\n IMG: setSourcesImg,\r\n IFRAME: setSourcesIframe,\r\n VIDEO: setSourcesVideo\r\n};\r\n\r\nconst setBackground = (element, settings, instance) => {\r\n const bg1xValue = getData(element, settings.data_bg);\r\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\r\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\r\n if (!bgDataValue) return;\r\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\r\n getTempImage(element).setAttribute(\"src\", bgDataValue);\r\n manageLoading(element, settings, instance);\r\n};\r\n\r\n// NOTE: THE TEMP IMAGE TRICK CANNOT BE DONE WITH data-multi-bg\r\n// BECAUSE INSIDE ITS VALUES MUST BE WRAPPED WITH URL() AND ONE OF THEM\r\n// COULD BE A GRADIENT BACKGROUND IMAGE\r\nconst setMultiBackground = (element, settings, instance) => {\r\n const bg1xValue = getData(element, settings.data_bg_multi);\r\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\r\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\r\n if (!bgDataValue) {\r\n return;\r\n }\r\n element.style.backgroundImage = bgDataValue;\r\n manageApplied(element, settings, instance);\r\n};\r\n\r\nconst setSources = (element, settings) => {\r\n const setSourcesFunction = setSourcesFunctions[element.tagName];\r\n if (!setSourcesFunction) {\r\n return;\r\n }\r\n setSourcesFunction(element, settings);\r\n};\r\n\r\nconst manageApplied = (element, settings, instance) => {\r\n addClass(element, settings.class_applied);\r\n setStatus(element, statusApplied);\r\n removeDataMultiBackground(element, settings);\r\n if (settings.unobserve_completed) {\r\n // Unobserve now because we can't do it on load\r\n unobserve(element, settings);\r\n }\r\n safeCallback(settings.callback_applied, element, instance);\r\n};\r\n\r\nconst manageLoading = (element, settings, instance) => {\r\n updateLoadingCount(instance, +1);\r\n addClass(element, settings.class_loading);\r\n setStatus(element, statusLoading);\r\n safeCallback(settings.callback_loading, element, instance);\r\n};\r\n\r\n// REMOVE DATA ATTRIBUTES --------------\r\n\r\nconst removeDataImg = (element, settings) => {\r\n setData(element, settings.data_src, null);\r\n setData(element, settings.data_srcset, null);\r\n setData(element, settings.data_sizes, null);\r\n forEachPictureSource(element, (sourceTag) => {\r\n setData(sourceTag, settings.data_srcset, null);\r\n setData(sourceTag, settings.data_sizes, null);\r\n });\r\n};\r\n\r\nconst removeDataIframe = (element, settings) => {\r\n setData(element, settings.data_src, null);\r\n};\r\n\r\nconst removeDataVideo = (element, settings) => {\r\n setData(element, settings.data_src, null);\r\n setData(element, settings.data_poster, null);\r\n forEachVideoSource(element, (sourceTag) => {\r\n setData(sourceTag, settings.data_src, null);\r\n });\r\n};\r\n\r\nconst removeDataFunctions = {\r\n IMG: removeDataImg,\r\n IFRAME: removeDataIframe,\r\n VIDEO: removeDataVideo\r\n};\r\n\r\nconst removeDataBackground = (element, settings) => {\r\n setData(element, settings.data_bg, null);\r\n setData(element, settings.data_bg_hidpi, null);\r\n};\r\n\r\nconst removeDataMultiBackground = (element, settings) => {\r\n setData(element, settings.data_bg_multi, null);\r\n setData(element, settings.data_bg_multi_hidpi, null);\r\n};\r\n\r\nconst removeDataAttributes = (element, settings) => {\r\n const removeDataFunction = removeDataFunctions[element.tagName];\r\n if (removeDataFunction) {\r\n removeDataFunction(element, settings);\r\n return;\r\n }\r\n removeDataBackground(element, settings);\r\n};\r\n\r\nconst elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\"];\r\nconst hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\r\n\r\nconst checkFinish = (settings, instance) => {\r\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\r\n safeCallback(settings.callback_finish, instance);\r\n }\r\n};\r\n\r\nconst addEventListener = (element, eventName, handler) => {\r\n element.addEventListener(eventName, handler);\r\n element.llEvLisnrs[eventName] = handler;\r\n};\r\n\r\nconst removeEventListener = (element, eventName, handler) => {\r\n element.removeEventListener(eventName, handler);\r\n};\r\n\r\nconst hasEventListeners = (element) => {\r\n return !!element.llEvLisnrs;\r\n};\r\n\r\nconst addEventListeners = (element, loadHandler, errorHandler) => {\r\n if (!hasEventListeners(element)) element.llEvLisnrs = {};\r\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\r\n addEventListener(element, loadEventName, loadHandler);\r\n addEventListener(element, \"error\", errorHandler);\r\n};\r\n\r\nconst removeEventListeners = (element) => {\r\n if (!hasEventListeners(element)) {\r\n return;\r\n }\r\n const eventListeners = element.llEvLisnrs;\r\n for (let eventName in eventListeners) {\r\n const handler = eventListeners[eventName];\r\n removeEventListener(element, eventName, handler);\r\n }\r\n delete element.llEvLisnrs;\r\n};\r\n\r\nconst doneHandler = (element, settings, instance) => {\r\n deleteTempImage(element);\r\n updateLoadingCount(instance, -1);\r\n decreaseToLoadCount(instance);\r\n removeClass(element, settings.class_loading);\r\n if (settings.unobserve_completed) {\r\n unobserve(element, instance);\r\n }\r\n};\r\n\r\nconst loadHandler = (event, element, settings, instance) => {\r\n const goingNative = hasStatusNative(element);\r\n doneHandler(element, settings, instance);\r\n addClass(element, settings.class_loaded);\r\n setStatus(element, statusLoaded);\r\n removeDataAttributes(element, settings);\r\n safeCallback(settings.callback_loaded, element, instance);\r\n if (!goingNative) checkFinish(settings, instance);\r\n};\r\n\r\nconst errorHandler = (event, element, settings, instance) => {\r\n const goingNative = hasStatusNative(element);\r\n doneHandler(element, settings, instance);\r\n addClass(element, settings.class_error);\r\n setStatus(element, statusError);\r\n safeCallback(settings.callback_error, element, instance);\r\n if (!goingNative) checkFinish(settings, instance);\r\n};\r\n\r\nconst addOneShotEventListeners = (element, settings, instance) => {\r\n const elementToListenTo = getTempImage(element) || element;\r\n if (hasEventListeners(elementToListenTo)) {\r\n // This happens when loading is retried twice\r\n return;\r\n }\r\n const _loadHandler = (event) => {\r\n loadHandler(event, element, settings, instance);\r\n removeEventListeners(elementToListenTo);\r\n };\r\n const _errorHandler = (event) => {\r\n errorHandler(event, element, settings, instance);\r\n removeEventListeners(elementToListenTo);\r\n };\r\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\r\n};\r\n\r\nconst loadBackground = (element, settings, instance) => {\r\n addTempImage(element);\r\n addOneShotEventListeners(element, settings, instance);\r\n setBackground(element, settings, instance);\r\n setMultiBackground(element, settings, instance);\r\n};\r\n\r\nconst loadRegular = (element, settings, instance) => {\r\n addOneShotEventListeners(element, settings, instance);\r\n setSources(element, settings);\r\n manageLoading(element, settings, instance);\r\n};\r\n\r\nconst load = (element, settings, instance) => {\r\n if (hasLoadEvent(element)) {\r\n loadRegular(element, settings, instance);\r\n } else {\r\n loadBackground(element, settings, instance);\r\n }\r\n};\r\n\r\nconst loadNative = (element, settings, instance) => {\r\n addOneShotEventListeners(element, settings, instance);\r\n setSources(element, settings);\r\n removeDataAttributes(element, settings);\r\n setStatus(element, statusNative);\r\n};\r\n\r\nconst cancelLoadingIfRequired = (element, entry, settings, instance) => {\r\n if (!settings.cancel_on_exit) return;\r\n if (!hasStatusLoading(element)) return;\r\n if (element.tagName !== \"IMG\") return; //Works only on images\r\n removeEventListeners(element);\r\n resetSourcesImg(element);\r\n restoreOriginalAttributesImg(element);\r\n removeClass(element, settings.class_loading);\r\n updateLoadingCount(instance, -1);\r\n resetStatus(element);\r\n safeCallback(settings.callback_cancel, element, entry, instance);\r\n};\r\n\r\nconst onEnter = (element, entry, settings, instance) => {\r\n safeCallback(settings.callback_enter, element, entry, instance);\r\n unobserveIfRequired(element, settings, instance);\r\n if (hadStartedLoading(element)) return; //Prevent loading it again\r\n load(element, settings, instance);\r\n};\r\n\r\nconst onExit = (element, entry, settings, instance) => {\r\n if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing\r\n cancelLoadingIfRequired(element, entry, settings, instance);\r\n safeCallback(settings.callback_exit, element, entry, instance);\r\n};\r\n\r\nconst tagsWithNativeLazy = [\"IMG\", \"IFRAME\"];\r\n\r\nconst shouldUseNative = (settings) =>\r\n settings.use_native && \"loading\" in HTMLImageElement.prototype;\r\n\r\nconst loadAllNative = (elements, settings, instance) => {\r\n elements.forEach((element) => {\r\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\r\n return;\r\n }\r\n element.setAttribute(\"loading\", \"lazy\"); //TODO: Move inside the loadNative method\r\n loadNative(element, settings, instance);\r\n });\r\n setToLoadCount(instance, 0);\r\n};\r\n\r\nconst isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\r\n\r\nconst getObserverSettings = (settings) => ({\r\n root: settings.container === document ? null : settings.container,\r\n rootMargin: settings.thresholds || settings.threshold + \"px\"\r\n});\r\n\r\nconst intersectionHandler = (entries, settings, instance) => {\r\n entries.forEach((entry) =>\r\n isIntersecting(entry)\r\n ? onEnter(entry.target, entry, settings, instance)\r\n : onExit(entry.target, entry, settings, instance)\r\n );\r\n};\r\n\r\nconst observeElements = (observer, elements) => {\r\n elements.forEach((element) => {\r\n observer.observe(element);\r\n });\r\n};\r\n\r\nconst updateObserver = (observer, elementsToObserve) => {\r\n resetObserver(observer);\r\n observeElements(observer, elementsToObserve);\r\n};\r\n\r\nconst setObserver = (settings, instance) => {\r\n if (!supportsIntersectionObserver || shouldUseNative(settings)) {\r\n return;\r\n }\r\n instance._observer = new IntersectionObserver((entries) => {\r\n intersectionHandler(entries, settings, instance);\r\n }, getObserverSettings(settings));\r\n};\r\n\r\nconst toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\r\n\r\nconst queryElements = (settings) =>\r\n settings.container.querySelectorAll(settings.elements_selector);\r\n\r\nconst excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\r\n\r\nconst hasError = (element) => hasStatusError(element);\r\nconst filterErrorElements = (elements) => toArray(elements).filter(hasError);\r\n\r\nconst getElementsToLoad = (elements, settings) =>\r\n excludeManagedElements(elements || queryElements(settings));\r\n\r\nconst retryLazyLoad = (settings, instance) => {\r\n const errorElements = filterErrorElements(queryElements(settings));\r\n errorElements.forEach(element => {\r\n removeClass(element, settings.class_error);\r\n resetStatus(element);\r\n });\r\n instance.update();\r\n};\r\n\r\nconst setOnlineCheck = (settings, instance) => {\r\n if (!runningOnBrowser) {\r\n return;\r\n }\r\n window.addEventListener(\"online\", () => {\r\n retryLazyLoad(settings, instance);\r\n });\r\n};\r\n\r\nconst LazyLoad = function (customSettings, elements) {\r\n const settings = getExtendedSettings(customSettings);\r\n this._settings = settings;\r\n this.loadingCount = 0;\r\n setObserver(settings, this);\r\n setOnlineCheck(settings, this);\r\n this.update(elements);\r\n};\r\n\r\nLazyLoad.prototype = {\r\n update: function (givenNodeset) {\r\n const settings = this._settings;\r\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\r\n setToLoadCount(this, elementsToLoad.length);\r\n\r\n if (isBot || !supportsIntersectionObserver) {\r\n this.loadAll(elementsToLoad);\r\n return;\r\n }\r\n if (shouldUseNative(settings)) {\r\n loadAllNative(elementsToLoad, settings, this);\r\n return;\r\n }\r\n\r\n updateObserver(this._observer, elementsToLoad);\r\n },\r\n\r\n destroy: function () {\r\n // Observer\r\n if (this._observer) {\r\n this._observer.disconnect();\r\n }\r\n // Clean custom attributes on elements\r\n queryElements(this._settings).forEach((element) => {\r\n delete element.llOriginalAttrs;\r\n });\r\n // Delete all internal props\r\n delete this._observer;\r\n delete this._settings;\r\n delete this.loadingCount;\r\n delete this.toLoadCount;\r\n },\r\n\r\n loadAll: function (elements) {\r\n const settings = this._settings;\r\n const elementsToLoad = getElementsToLoad(elements, settings);\r\n elementsToLoad.forEach((element) => {\r\n load(element, settings, this);\r\n });\r\n }\r\n};\r\n\r\nLazyLoad.load = (element, customSettings) => {\r\n const settings = getExtendedSettings(customSettings);\r\n load(element, settings);\r\n};\r\n\r\nLazyLoad.resetStatus = (element) => {\r\n resetStatus(element);\r\n};\r\n\r\n// Automatic instances creation if required (useful for async script loading)\r\nif (runningOnBrowser) {\r\n autoInitialize(LazyLoad, window.lazyLoadOptions);\r\n}\r\n\r\nexport default LazyLoad;\r\n","import LazyLoad from 'vanilla-lazyload';\n\nconst init = () => {\n new LazyLoad({\n elements_selector: '.lazy',\n threshold: 100\n });\n};\n\nexport default init;\n"],"names":["runningOnBrowser","isBot","supportsIntersectionObserver","supportsClassList","isHiDpi","defaultSettings","getExtendedSettings","customSettings","createInstance","classObj","options","event","eventString","instance","autoInitialize","i","optionsItem","statusLoading","statusLoaded","statusApplied","statusError","statusNative","dataPrefix","statusDataName","getData","element","attribute","setData","value","attrName","getStatus","setStatus","status","resetStatus","hasEmptyStatus","hasStatusLoading","hasStatusError","hasStatusNative","hadStartedLoading","safeCallback","callback","arg1","arg2","arg3","addClass","className","removeClass","addTempImage","deleteTempImage","getTempImage","unobserve","observer","resetObserver","unobserveIfRequired","settings","updateLoadingCount","delta","decreaseToLoadCount","setToLoadCount","isSomethingLoading","haveElementsToLoad","getSourceTags","parentTag","sourceTags","childTag","setAttributeIfValue","resetAttribute","hasOriginalAttributes","saveOriginalImageAttributes","originalAttributes","restoreOriginalImageAttributes","setImageAttributes","resetImageAttributes","forEachPictureSource","fn","parent","forEachVideoSource","restoreOriginalAttributesImg","sourceTag","setSourcesImg","resetSourcesImg","setSourcesIframe","setSourcesVideo","setSourcesFunctions","setBackground","bg1xValue","bgHiDpiValue","bgDataValue","manageLoading","setMultiBackground","manageApplied","setSources","setSourcesFunction","removeDataMultiBackground","removeDataImg","removeDataIframe","removeDataVideo","removeDataFunctions","removeDataBackground","removeDataAttributes","removeDataFunction","elementsWithLoadEvent","hasLoadEvent","checkFinish","addEventListener","eventName","handler","removeEventListener","hasEventListeners","addEventListeners","loadHandler","errorHandler","loadEventName","removeEventListeners","eventListeners","doneHandler","goingNative","addOneShotEventListeners","elementToListenTo","loadBackground","loadRegular","load","loadNative","cancelLoadingIfRequired","entry","onEnter","onExit","tagsWithNativeLazy","shouldUseNative","loadAllNative","elements","isIntersecting","getObserverSettings","intersectionHandler","entries","observeElements","updateObserver","elementsToObserve","setObserver","toArray","nodeSet","queryElements","excludeManagedElements","hasError","filterErrorElements","getElementsToLoad","retryLazyLoad","setOnlineCheck","LazyLoad","givenNodeset","elementsToLoad","init"],"mappings":"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","x_google_ignoreList":[0]}