{"version":3,"sources":["common/js/lib/lazyload.js"],"names":["_typeof2","o","Symbol","iterator","constructor","prototype","_extends","Object","assign","target","i","arguments","length","source","key","hasOwnProperty","call","apply","this","_typeof","obj","global","factory","exports","module","define","amd","LazyLoad","runningOnBrowser","window","isBot","navigator","test","userAgent","supportsIntersectionObserver","supportsClassList","document","createElement","defaultSettings","elements_selector","container","threshold","thresholds","data_src","data_srcset","data_sizes","data_bg","class_loading","class_loaded","class_error","load_delay","auto_unobserve","callback_enter","callback_exit","callback_reveal","callback_loaded","callback_error","callback_finish","use_native","getInstanceSettings","customSettings","createInstance","classObj","options","event","eventString","instance","CustomEvent","detail","err","createEvent","initCustomEvent","dispatchEvent","autoInitialize","optionsItem","dataPrefix","processedDataName","timeoutDataName","trueString","getData","element","attribute","getAttribute","setData","value","attrName","setAttribute","removeAttribute","setWasProcessedData","getWasProcessedData","setTimeoutData","getTimeoutData","purgeProcessedElements","elements","filter","purgeOneElement","elementToPurge","callbackIfSet","callback","argument","updateLoadingCount","plusMinus","_loadingCount","_elements","_settings","getSourceTags","parentTag","sourceTags","childTag","children","tagName","push","setAttributeIfValue","setImageAttributes","settings","setSourcesImg","setSourcesIframe","setSourcesVideo","setSourcesBgImage","srcDataValue","bgDataValue","style","backgroundImage","concat","setSourcesFunctions","IMG","parent","parentNode","forEach","sourceTag","IFRAME","VIDEO","load","setSources","setSourcesFunction","addClass","className","classList","add","removeClass","remove","replace","RegExp","genericLoadEventName","mediaLoadEventName","errorEventName","addEventListener","eventName","handler","removeEventListener","addEventListeners","loadHandler","errorHandler","removeEventListeners","eventHandler","success","addOneShotEventListeners","managedTags","onEnter","delayLoad","revealAndUnobserve","observer","_observer","revealElement","unobserve","onExit","cancelDelayLoad","timeoutId","clearTimeout","loadDelay","setTimeout","force","indexOf","callback_set","isIntersecting","entry","intersectionRatio","getObserverSettings","root","rootMargin","setObserver","IntersectionObserver","entries","nativeLazyTags","shouldUseNative","HTMLImageElement","loadAllNative","nodeSetToArray","nodeSet","Array","slice","queryElements","querySelectorAll","getElements","update","_this","observe","loadAll","destroy","_this2","_this3","lazyLoadOptions"],"mappings":"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","file":"../../../../common/js/lib/lazyload-9758a662a4.js","sourcesContent":["function _typeof2(o) { \"@babel/helpers - typeof\"; return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof2(o); }\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n return _typeof(obj);\n}\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.LazyLoad = factory();\n})(this, function () {\n 'use strict';\n\n var runningOnBrowser = typeof window !== \"undefined\";\n var isBot = runningOnBrowser && !(\"onscroll\" in window) || typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);\n var supportsIntersectionObserver = runningOnBrowser && \"IntersectionObserver\" in window;\n var supportsClassList = runningOnBrowser && \"classList\" in document.createElement(\"p\");\n var defaultSettings = {\n elements_selector: \"img\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n load_delay: 0,\n auto_unobserve: true,\n callback_enter: null,\n callback_exit: null,\n callback_reveal: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n use_native: false\n };\n var getInstanceSettings = function getInstanceSettings(customSettings) {\n return _extends({}, defaultSettings, customSettings);\n };\n /* Creates instance and notifies it through the window element */\n\n var createInstance = function createInstance(classObj, options) {\n var event;\n var eventString = \"LazyLoad::Initialized\";\n var instance = new classObj(options);\n try {\n // Works in modern browsers\n event = new CustomEvent(eventString, {\n detail: {\n instance: instance\n }\n });\n } catch (err) {\n // Works in Internet Explorer (all versions)\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, {\n instance: instance\n });\n }\n window.dispatchEvent(event);\n };\n /* Auto initialization of one or more instances of lazyload, depending on the \r\n options passed in (plain object or an array) */\n\n function autoInitialize(classObj, options) {\n if (!options) {\n return;\n }\n if (!options.length) {\n // Plain object\n createInstance(classObj, options);\n } else {\n // Array of objects\n for (var i = 0, optionsItem; optionsItem = options[i]; i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n }\n var dataPrefix = \"data-\";\n var processedDataName = \"was-processed\";\n var timeoutDataName = \"ll-timeout\";\n var trueString = \"true\";\n var getData = function getData(element, attribute) {\n return element.getAttribute(dataPrefix + attribute);\n };\n var setData = function setData(element, attribute, value) {\n var attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n };\n var setWasProcessedData = function setWasProcessedData(element) {\n return setData(element, processedDataName, trueString);\n };\n var getWasProcessedData = function getWasProcessedData(element) {\n return getData(element, processedDataName) === trueString;\n };\n var setTimeoutData = function setTimeoutData(element, value) {\n return setData(element, timeoutDataName, value);\n };\n var getTimeoutData = function getTimeoutData(element) {\n return getData(element, timeoutDataName);\n };\n var purgeProcessedElements = function purgeProcessedElements(elements) {\n return elements.filter(function (element) {\n return !getWasProcessedData(element);\n });\n };\n var purgeOneElement = function purgeOneElement(elements, elementToPurge) {\n return elements.filter(function (element) {\n return element !== elementToPurge;\n });\n };\n var callbackIfSet = function callbackIfSet(callback, argument) {\n if (callback) {\n callback(argument);\n }\n };\n var updateLoadingCount = function updateLoadingCount(instance, plusMinus) {\n instance._loadingCount += plusMinus;\n if (instance._elements.length === 0 && instance._loadingCount === 0) {\n callbackIfSet(instance._settings.callback_finish);\n }\n };\n var getSourceTags = function getSourceTags(parentTag) {\n var sourceTags = [];\n for (var i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n };\n var setAttributeIfValue = function setAttributeIfValue(element, attrName, value) {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n };\n var setImageAttributes = function setImageAttributes(element, settings) {\n setAttributeIfValue(element, \"sizes\", getData(element, settings.data_sizes));\n setAttributeIfValue(element, \"srcset\", getData(element, settings.data_srcset));\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\n };\n var setSourcesImg = function setSourcesImg(element, settings) {\n var parent = element.parentNode;\n if (parent && parent.tagName === \"PICTURE\") {\n var sourceTags = getSourceTags(parent);\n sourceTags.forEach(function (sourceTag) {\n setImageAttributes(sourceTag, settings);\n });\n }\n setImageAttributes(element, settings);\n };\n var setSourcesIframe = function setSourcesIframe(element, settings) {\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\n };\n var setSourcesVideo = function setSourcesVideo(element, settings) {\n var sourceTags = getSourceTags(element);\n sourceTags.forEach(function (sourceTag) {\n setAttributeIfValue(sourceTag, \"src\", getData(sourceTag, settings.data_src));\n });\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\n element.load();\n };\n var setSourcesBgImage = function setSourcesBgImage(element, settings) {\n var srcDataValue = getData(element, settings.data_src);\n var bgDataValue = getData(element, settings.data_bg);\n if (srcDataValue) {\n element.style.backgroundImage = \"url(\\\"\".concat(srcDataValue, \"\\\")\");\n }\n if (bgDataValue) {\n element.style.backgroundImage = bgDataValue;\n }\n };\n var setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo\n };\n var setSources = function setSources(element, instance) {\n var settings = instance._settings;\n var tagName = element.tagName;\n var setSourcesFunction = setSourcesFunctions[tagName];\n if (setSourcesFunction) {\n setSourcesFunction(element, settings);\n updateLoadingCount(instance, 1);\n instance._elements = purgeOneElement(instance._elements, element);\n return;\n }\n setSourcesBgImage(element, settings);\n };\n var addClass = function addClass(element, className) {\n if (supportsClassList) {\n element.classList.add(className);\n return;\n }\n element.className += (element.className ? \" \" : \"\") + className;\n };\n var removeClass = function removeClass(element, className) {\n if (supportsClassList) {\n element.classList.remove(className);\n return;\n }\n element.className = element.className.replace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").replace(/^\\s+/, \"\").replace(/\\s+$/, \"\");\n };\n var genericLoadEventName = \"load\";\n var mediaLoadEventName = \"loadeddata\";\n var errorEventName = \"error\";\n var addEventListener = function addEventListener(element, eventName, handler) {\n element.addEventListener(eventName, handler);\n };\n var removeEventListener = function removeEventListener(element, eventName, handler) {\n element.removeEventListener(eventName, handler);\n };\n var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) {\n addEventListener(element, genericLoadEventName, loadHandler);\n addEventListener(element, mediaLoadEventName, loadHandler);\n addEventListener(element, errorEventName, errorHandler);\n };\n var removeEventListeners = function removeEventListeners(element, loadHandler, errorHandler) {\n removeEventListener(element, genericLoadEventName, loadHandler);\n removeEventListener(element, mediaLoadEventName, loadHandler);\n removeEventListener(element, errorEventName, errorHandler);\n };\n var eventHandler = function eventHandler(event, success, instance) {\n var settings = instance._settings;\n var className = success ? settings.class_loaded : settings.class_error;\n var callback = success ? settings.callback_loaded : settings.callback_error;\n var element = event.target;\n removeClass(element, settings.class_loading);\n addClass(element, className);\n callbackIfSet(callback, element);\n updateLoadingCount(instance, -1);\n };\n var addOneShotEventListeners = function addOneShotEventListeners(element, instance) {\n var loadHandler = function loadHandler(event) {\n eventHandler(event, true, instance);\n removeEventListeners(element, loadHandler, errorHandler);\n };\n var errorHandler = function errorHandler(event) {\n eventHandler(event, false, instance);\n removeEventListeners(element, loadHandler, errorHandler);\n };\n addEventListeners(element, loadHandler, errorHandler);\n };\n var managedTags = [\"IMG\", \"IFRAME\", \"VIDEO\"];\n var onEnter = function onEnter(element, instance) {\n var settings = instance._settings;\n callbackIfSet(settings.callback_enter, element);\n if (!settings.load_delay) {\n revealAndUnobserve(element, instance);\n return;\n }\n delayLoad(element, instance);\n };\n var revealAndUnobserve = function revealAndUnobserve(element, instance) {\n var observer = instance._observer;\n revealElement(element, instance);\n if (observer && instance._settings.auto_unobserve) {\n observer.unobserve(element);\n }\n };\n var onExit = function onExit(element, instance) {\n var settings = instance._settings;\n callbackIfSet(settings.callback_exit, element);\n if (!settings.load_delay) {\n return;\n }\n cancelDelayLoad(element);\n };\n var cancelDelayLoad = function cancelDelayLoad(element) {\n var timeoutId = getTimeoutData(element);\n if (!timeoutId) {\n return; // do nothing if timeout doesn't exist\n }\n clearTimeout(timeoutId);\n setTimeoutData(element, null);\n };\n var delayLoad = function delayLoad(element, instance) {\n var loadDelay = instance._settings.load_delay;\n var timeoutId = getTimeoutData(element);\n if (timeoutId) {\n return; // do nothing if timeout already set\n }\n timeoutId = setTimeout(function () {\n revealAndUnobserve(element, instance);\n cancelDelayLoad(element);\n }, loadDelay);\n setTimeoutData(element, timeoutId);\n };\n var revealElement = function revealElement(element, instance, force) {\n var settings = instance._settings;\n if (!force && getWasProcessedData(element)) {\n return; // element has already been processed and force wasn't true\n }\n if (managedTags.indexOf(element.tagName) > -1) {\n addOneShotEventListeners(element, instance);\n addClass(element, settings.class_loading);\n }\n setSources(element, instance);\n setWasProcessedData(element);\n callbackIfSet(settings.callback_reveal, element);\n callbackIfSet(settings.callback_set, element);\n };\n var isIntersecting = function isIntersecting(entry) {\n return entry.isIntersecting || entry.intersectionRatio > 0;\n };\n var getObserverSettings = function getObserverSettings(settings) {\n return {\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n };\n };\n var setObserver = function setObserver(instance) {\n if (!supportsIntersectionObserver) {\n return false;\n }\n instance._observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n return isIntersecting(entry) ? onEnter(entry.target, instance) : onExit(entry.target, instance);\n });\n }, getObserverSettings(instance._settings));\n return true;\n };\n var nativeLazyTags = [\"IMG\", \"IFRAME\"];\n var shouldUseNative = function shouldUseNative(settings) {\n return settings.use_native && \"loading\" in HTMLImageElement.prototype;\n };\n var loadAllNative = function loadAllNative(instance) {\n instance._elements.forEach(function (element) {\n if (nativeLazyTags.indexOf(element.tagName) === -1) {\n return;\n }\n element.setAttribute(\"loading\", \"lazy\");\n revealElement(element, instance);\n });\n };\n var nodeSetToArray = function nodeSetToArray(nodeSet) {\n return Array.prototype.slice.call(nodeSet);\n };\n var queryElements = function queryElements(settings) {\n return settings.container.querySelectorAll(settings.elements_selector);\n };\n var getElements = function getElements(elements, settings) {\n return purgeProcessedElements(nodeSetToArray(elements || queryElements(settings)));\n };\n var LazyLoad = function LazyLoad(customSettings, elements) {\n this._settings = getInstanceSettings(customSettings);\n this._loadingCount = 0;\n setObserver(this);\n this.update(elements);\n };\n LazyLoad.prototype = {\n update: function update(elements) {\n var _this = this;\n var settings = this._settings;\n this._elements = getElements(elements, settings);\n if (isBot || !this._observer) {\n this.loadAll();\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(this);\n this._elements = getElements(elements, settings);\n }\n this._elements.forEach(function (element) {\n _this._observer.observe(element);\n });\n },\n destroy: function destroy() {\n var _this2 = this;\n if (this._observer) {\n this._elements.forEach(function (element) {\n _this2._observer.unobserve(element);\n });\n this._observer = null;\n }\n this._elements = null;\n this._settings = null;\n },\n load: function load(element, force) {\n revealElement(element, this, force);\n },\n loadAll: function loadAll() {\n var _this3 = this;\n this._elements.forEach(function (element) {\n revealAndUnobserve(element, _this3);\n });\n }\n };\n /* Automatic instances creation if required (useful for async script loading) */\n\n if (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n }\n return LazyLoad;\n});"]}