{"version":3,"file":"js/456-5049cbf554c4837c5168.js","mappings":"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","sources":["webpack://mamaclean/./node_modules/js-cookie/dist/js.cookie.js","webpack://mamaclean/./node_modules/scrollyeah/src/scrollyeah.js","webpack://mamaclean/./node_modules/vanilla-lazyload/dist/lazyload.js"],"sourcesContent":["/*! js-cookie v3.0.1 | MIT */\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, (function () {\n var current = global.Cookies;\n var exports = global.Cookies = factory();\n exports.noConflict = function () { global.Cookies = current; return exports; };\n }()));\n}(this, (function () { 'use strict';\n\n /* eslint-disable no-var */\n function assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n }\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n var defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n };\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n\n function init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n }\n\n var api = init(defaultConverter, { path: '/' });\n /* eslint-enable no-var */\n\n return api;\n\n})));\n","(function($){\n /*!\n * Bez v1.0.10-g5ae0136\n * http://github.com/rdallasgray/bez\n *\n * A plugin to convert CSS3 cubic-bezier co-ordinates to jQuery-compatible easing functions\n *\n * With thanks to Nikolay Nemshilov for clarification on the cubic-bezier maths\n * See http://st-on-it.blogspot.com/2011/05/calculating-cubic-bezier-function.html\n *\n * Copyright 2011 Robert Dallas Gray. All rights reserved.\n * Provided under the FreeBSD license: https://github.com/rdallasgray/bez/blob/master/LICENSE.txt\n */\n $.extend({bez:function(a){var b=\"bez_\"+$.makeArray(arguments).join(\"_\").replace(\".\",\"p\");if(typeof $.easing[b]!=\"function\"){var c=function(a,b){var c=[null,null],d=[null,null],e=[null,null],f=function(f,g){return e[g]=3*a[g],d[g]=3*(b[g]-a[g])-e[g],c[g]=1-e[g]-d[g],f*(e[g]+f*(d[g]+f*c[g]))},g=function(a){return e[0]+a*(2*d[0]+3*c[0]*a)},h=function(a){var b=a,c=0,d;while(++c<14){d=f(b,0)-a;if(Math.abs(d)<.001)break;b-=d/g(b)}return b};return function(a){return f(h(a),1)}};$.easing[b]=function(b,d,e,f,g){return f*c([a[0],a[1]],[a[2],a[3]])(d/g)+e}}return b}});\n\n /* Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)\n * Licensed under the MIT License (LICENSE.txt).\n *\n * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.\n * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.\n * Thanks to: Seamus Leahy for adding deltaX and deltaY\n *\n * Version: 3.0.4\n *\n * Requires: 1.2.2+\n */\n var mousewheel=[\"DOMMouseScroll\",\"mousewheel\"];\n $.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=mousewheel.length;d;){this.addEventListener(mousewheel[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=mousewheel.length;d;){this.removeEventListener(mousewheel[--d],b,false)}}else{this.onmousewheel=null}}};$.fn.extend({mousewheel:function(d){return d?this.bind(\"mousewheel\",d):this.trigger(\"mousewheel\")},unmousewheel:function(d){return this.unbind(\"mousewheel\",d)}});function b(i){var g=i||window.event,f=[].slice.call(arguments,1),j=0,h=true,e=0,d=0;i=$.event.fix(g);i.type=\"mousewheel\";if(i.wheelDelta){j=i.wheelDelta/120}if(i.detail){j=-i.detail/3}d=j;if(g.axis!==undefined&&g.axis===g.HORIZONTAL_AXIS){d=0;e=-1*j}if(g.wheelDeltaY!==undefined){d=g.wheelDeltaY/120}if(g.wheelDeltaX!==undefined){e=-1*g.wheelDeltaX/120}f.unshift(i,j,e,d);return $.event.dispatch.apply(this,f)};\n\n\n var touchFLAG = ('ontouchstart' in document);\n var o__dragTimeout = 300;\n var o__bez = $.bez([.1,0,.25,1]);\n var o__transitionDuration = 333;\n\n var $window = $(window);\n var $document = $(document);\n\n var _options = [\n ['maxWidth', 'number', 999999],\n ['shadows', 'boolean', true],\n ['disableIfFit', 'boolean', true],\n ['centerIfFit', 'boolean', false],\n ['triggerScrollyeah', 'boolean', false]\n ];\n\n function collectOptions(block) {\n var options = {};\n for (var _i = 0; _i < _options.length; _i++) {\n var name = _options[_i][0];\n var type = _options[_i][1];\n if (block) {\n var attr = block.attr('data-'+name);\n if (attr) {\n if (type == 'number') {\n attr = Number(attr);\n if (!isNaN(attr)) {\n options[name] = attr;\n }\n } else if (type == 'boolean') {\n if (attr == 'true') {\n options[name] = true;\n } else if (attr = 'false') {\n options[name] = false;\n }\n } else if (type == 'string') {\n options[name] = attr;\n }\n }\n } else {\n options[name] = _options[_i][2];\n }\n }\n return options;\n }\n\n $.fn.scrollyeah = function(options) {\n if (typeof(scrollyeahDefaults) == 'undefined') {\n scrollyeahDefaults = {};\n }\n\n var o = $.extend(collectOptions(), $.extend({}, scrollyeahDefaults, options));\n\n this.each(function(){\n var scrollyeah = $(this);\n if (!scrollyeah.data('ini')) {\n doScrollyeah(scrollyeah, o);\n }\n });\n\n //Chainability\n return this;\n }\n\n var _prefix = ['-webkit-', '-moz-', '-o-', '-ms-', ''];\n\n function getCSS(prop, val) {\n var obj = {};\n for (var _i = 0; _i < _prefix.length; _i++) {\n obj[_prefix[_i]+prop] = val;\n }\n return obj;\n }\n\n function getTranslate(pos) {\n return {left: pos};\n }\n\n function getDuration(time) {\n return getCSS('transition-duration', time+'ms');\n }\n\n function doScrollyeah(scrollyeah, o) {\n scrollyeah\n .data({ini: true})\n //.css({padding: o.verticalPadding + 'px 0'})\n .wrapInner('
');\n\n var wrap = $('.scrollyeah__wrap', scrollyeah).css({width: o.maxWidth});\n var shaft = $('.scrollyeah__shaft', scrollyeah);\n\n if (o.shadows) {\n var shadow = $('').appendTo(scrollyeah);\n }\n var shaftWidth, scrollyeahWidth, scrollyeahHeight, shaftMaxPos, shaftMinPos, shaftPos = 0, shaftPosShift, shaftOverPosShift;\n\n var scrollFLAG = true;\n\n var parallax = $('.scrollyeah__parallax', shaft);\n var disable = $('.scrollyeah__disable', shaft);\n //shaft.data({extra: extra});\n\n parallax.each(function(){\n var $this = $(this);\n var parallax = Number($this.attr('data-parallaxRate'));\n $this.data({parallax: parallax});\n });\n\n function getParallaxPos(pos, block) {\n var center = shaftMaxPos - (shaftMaxPos - shaftMinPos)/2;\n return ((pos - center) * block.data('parallax'));\n }\n\n function preventClick(e) {\n return false;\n }\n\n function clearBackAnimate(block) {\n clearTimeout(block.data('backAnimate'));\n }\n\n var animateInterval, clearAnimateInterval;\n\n function animate(block, pos, time, overPos, extra) {\n var POS = isNaN(pos) ? 0 : pos;\n clearBackAnimate(block);\n if (overPos) {\n POS = overPos;\n block.data({\n backAnimate: setTimeout(function(){\n animate(block, pos, Math.max(o__transitionDuration, time/2), false, extra);\n }, time)\n });\n }\n\n block.stop().animate(getTranslate(POS), time, o__bez);\n\n if (!extra && o.triggerScrollyeah) {\n clearInterval(animateInterval);\n animateInterval = setInterval(function(){\n scrollyeah.trigger('scrollyeah', shaft.position()[_pos]);\n }, 25);\n clearTimeout(clearAnimateInterval);\n clearAnimateInterval = setTimeout(function(){\n clearInterval(animateInterval);\n }, time + 100);\n }\n\n\n }\n\n function setPos(pos, block, extra) {\n clearBackAnimate(block);\n\n block.stop();\n if (pos === false) {\n pos = block.position()[_pos];\n }\n block.css(getTranslate(pos));\n if (!extra) {\n shaftPos = pos;\n if (o.triggerScrollyeah) {\n scrollyeah.trigger('scrollyeah', shaftPos);\n }\n return shaftPos;\n }\n }\n\n function setTouchAndShadow(pos) {\n if (shaftWidth > scrollyeahWidth) {\n scrollFLAG = true;\n //if (!o.disableIfFit) {\n scrollyeah.addClass('scrollyeah_active');\n //}\n if (o.shadows) {\n scrollyeah.addClass('scrollyeah_shadow');\n\n if (pos <= shaftMinPos) {\n scrollyeah.removeClass('scrollyeah_shadow_no-left').addClass('scrollyeah_shadow_no-right');\n } else if (pos >= shaftMaxPos) {\n scrollyeah.removeClass('scrollyeah_shadow_no-right').addClass('scrollyeah_shadow_no-left');\n } else {\n scrollyeah.removeClass('scrollyeah_shadow_no-left scrollyeah_shadow_no-right');\n }\n }\n } else {\n if (o.disableIfFit) {\n scrollFLAG = false;\n scrollyeah.removeClass('scrollyeah_active');\n } else {\n scrollFLAG = true;\n scrollyeah.addClass('scrollyeah_active');\n }\n if (o.shadows) {\n scrollyeah.removeClass('scrollyeah_shadow');\n }\n }\n }\n\n function onResize() {\n shaftWidth = shaft.width();\n scrollyeahWidth = scrollyeah.width();\n scrollyeahHeight = scrollyeah.height();\n if (!o.centerIfFit) {\n shaftMaxPos = 0;\n } else {\n shaftMaxPos = Math.max((scrollyeahWidth - shaftWidth)/2, 0);\n }\n //console.log('shaftMaxPos', shaftMaxPos);\n shaftMinPos = Math.min(-(shaftWidth - scrollyeahWidth), shaftMaxPos);\n\n //console.log('shaftMinPos', shaftMinPos);\n shaft.data({maxPos: shaftMaxPos, minPos: shaftMinPos});\n\n// if (o.shadows) {\n// shadow.css({height: scrollyeahHeight + o.verticalPadding*2 - o.shadowSize*2});\n// }\n\n\n if (shaftPos < shaftMinPos) {\n setPos(shaftMinPos, shaft);\n }\n if (shaftPos > shaftMaxPos) {\n setPos(shaftMaxPos, shaft);\n }\n\n parallax.each(function(){\n var $this = $(this);\n setPos(getParallaxPos(shaftPos, $this), $this, true);\n });\n setTouchAndShadow(shaftPos);\n }\n\n onResize();\n\n $window.bind('resize load', onResize);\n if (touchFLAG) {\n window.addEventListener('orientationchange', onResize, false);\n }\n\n var shaftGrabbingFLAG, setShaftGrabbingFLAGTimeout;\n\n var _pos = 'left',\n _coo = 'pageX',\n _coo2 = 'pageY';\n\n function touch(mouseDown, mouseMove, mouseUp) {\n var coo,\n coo2,\n downPos,\n downPos2,\n downElPos,\n downTime,\n moveCoo = [],\n moveTime,\n directionLast,\n upTime,\n upTimeLast = 0;\n\n var movableFLAG = false;\n var checkedDirectionFLAG = false;\n var limitFLAG = false;\n function onMouseDown(e) {\n if ((touchFLAG || e.which < 2) && scrollFLAG) {\n function act() {\n\n downTime = new Date().getTime();\n downPos = coo;\n downPos2 = coo2;\n moveCoo = [[downTime, coo]];\n\n downElPos = setPos(false, shaft);\n parallax.each(function(){\n var $this = $(this);\n setPos(getParallaxPos(shaftPos, $this), $this, true);\n });\n\n mouseDown();\n }\n if (!touchFLAG) {\n coo = e[_coo];\n e.preventDefault();\n act();\n $document.bind('mousemove.scrollyeah', onMouseMove);\n $document.bind('mouseup.scrollyeah', onMouseUp);\n } else if (touchFLAG && e.targetTouches.length == 1) {\n coo = e.targetTouches[0][_coo];\n coo2 = e.targetTouches[0][_coo2];\n act();\n shaft[0].addEventListener('touchmove', onMouseMove, false);\n shaft[0].addEventListener('touchend', onMouseUp, false);\n } else if (touchFLAG && e.targetTouches.length > 1) {\n return false;\n }\n }\n }\n\n var setMouseWheelFLAGTimeout, mouseWheelFLAG;\n\n function onMouseWheel(event, delta, deltaX, deltaY) {\n //console.log(deltaX, deltaY);\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n event.preventDefault();\n clearTimeout(setMouseWheelFLAGTimeout);\n if (!mouseWheelFLAG) {\n setPos(false, shaft);\n parallax.each(function(){\n var $this = $(this);\n setPos(getParallaxPos(shaftPos, $this), $this, true);\n });\n\n mouseWheelFLAG = true;\n }\n\n setMouseWheelFLAGTimeout = setTimeout(function(){\n mouseWheelFLAG = false;\n }, 100);\n\n shaftPos = shaftPos - Math.round(deltaX*25);\n\n if (shaftPos < shaftMinPos) shaftPos = shaftMinPos;\n if (shaftPos > shaftMaxPos) shaftPos = shaftMaxPos;\n\n shaft.css(getTranslate(shaftPos));\n if (o.triggerScrollyeah) {\n scrollyeah.trigger('scrollyeah', shaftPos);\n }\n\n parallax.each(function(){\n var $this = $(this);\n $this.css(getTranslate(getParallaxPos(shaftPos, $this)));\n });\n\n setTouchAndShadow(shaftPos);\n\n return false;\n }\n }\n\n function onMouseMove(e) {\n function act() {\n e.preventDefault();\n\n moveTime = new Date().getTime();\n moveCoo.push([moveTime, coo]);\n\n var pos = downPos - coo;\n shaftPos = downElPos-pos;\n\n if (shaftPos > shaftMaxPos) {\n shaftPos = Math.round(shaftPos + ((shaftMaxPos - shaftPos)/ 1.5));\n limitFLAG = 'left';\n\n } else if (shaftPos < shaftMinPos) {\n shaftPos = Math.round(shaftPos + ((shaftMinPos - shaftPos) / 1.5));\n limitFLAG = 'right';\n } else {\n limitFLAG = false;\n }\n\n shaft.css(getTranslate(shaftPos));\n if (o.triggerScrollyeah) {\n scrollyeah.trigger('scrollyeah', shaftPos);\n }\n\n parallax.each(function(){\n var $this = $(this);\n $this.css(getTranslate(getParallaxPos(shaftPos, $this)));\n });\n\n mouseMove(shaftPos, pos, limitFLAG);\n }\n if (!touchFLAG) {\n coo = e[_coo];\n act();\n } else if (touchFLAG && e.targetTouches.length == 1) {\n coo = e.targetTouches[0][_coo];\n coo2 = e.targetTouches[0][_coo2];\n\n if (!checkedDirectionFLAG) {\n if (Math.abs(coo-downPos) - Math.abs(coo2-downPos2) >= -5) {\n movableFLAG = true;\n e.preventDefault();\n }\n checkedDirectionFLAG = true;\n } else if (movableFLAG) {\n act();\n }\n }\n }\n\n function onMouseUp(e) {\n if (!touchFLAG || !e.targetTouches.length) {\n movableFLAG = false;\n checkedDirectionFLAG = false;\n\n if (!touchFLAG) {\n $document.unbind('mouseup.scrollyeah', onMouseUp);\n $document.unbind('mousemove.scrollyeah', onMouseMove);\n } else {\n shaft[0].removeEventListener('touchmove', onMouseMove, false);\n shaft[0].removeEventListener('touchend', onMouseUp, false);\n }\n\n upTime = new Date().getTime();\n var dirtyLeft = -shaftPos;\n\n var _backTimeIdeal = upTime - o__dragTimeout;\n var _diff, _diffMin, backTime, backCoo;\n for (i=0;i= 0;\n var timeDiff = upTime - backTime;\n var isSwipe = timeDiff <= o__dragTimeout;\n var timeFromLast = upTime - upTimeLast;\n var sameDirection = direction === directionLast;\n\n mouseUp(dirtyLeft, timeDiff, isSwipe, timeFromLast, sameDirection, posDiff, e);\n\n upTimeLast = upTime;\n directionLast = direction;\n }\n }\n\n if (!touchFLAG) {\n shaft\n .mousedown(onMouseDown)\n .mousewheel(onMouseWheel)\n } else {\n shaft[0].addEventListener('touchstart', onMouseDown, false);\n }\n }\n\n\n var clickPreventedFLAG = false;\n\n function shaftOnMouseDown() {}\n function shaftOnMouseMove(pos, posDiff) {\n clearTimeout(setShaftGrabbingFLAGTimeout);\n if (!shaftGrabbingFLAG) {\n shaftGrabbingFLAG = true;\n shaft.addClass('scrollyeah__shaft_grabbing');\n }\n\n if (Math.abs(posDiff) >= 5 && !clickPreventedFLAG) {\n // Отменяем клик по ссылкам!\n clickPreventedFLAG = true;\n $('a', scrollyeah).bind('click', preventClick);\n }\n\n setTouchAndShadow(pos);\n }\n function shaftOnMouseUp(dirtyLeft, timeDiff, isSwipe, timeFromLast, sameDirection, posDiff, e) {\n setShaftGrabbingFLAGTimeout = setTimeout(function() {\n // Разрешаем клик по ссылкам!\n clickPreventedFLAG = false;\n $('a', scrollyeah).unbind('click', preventClick);\n }, o__dragTimeout);\n\n shaftGrabbingFLAG = false;\n shaft.removeClass('scrollyeah__shaft_grabbing');\n\n dirtyLeft = -dirtyLeft;\n\n var newPos = dirtyLeft;\n var overPos;\n var time = o__transitionDuration*2;\n\n if (dirtyLeft > shaftMaxPos) {\n newPos = shaftMaxPos;\n time = time/2;\n } else if (dirtyLeft < shaftMinPos) {\n newPos = shaftMinPos;\n time = time/2;\n } else {\n if (isSwipe) {\n posDiff = -posDiff;\n var speed = posDiff/timeDiff;\n newPos = Math.round(dirtyLeft + speed*250);\n var outFactor = .04;\n if (newPos > shaftMaxPos) {\n overPos = Math.abs(newPos - shaftMaxPos);\n time = Math.abs(time/((speed*250)/(Math.abs(speed*250) - overPos*(1-outFactor))));\n newPos = shaftMaxPos;\n overPos = newPos + overPos*outFactor;\n } else if (newPos < shaftMinPos) {\n overPos = Math.abs(newPos - shaftMinPos);\n time = Math.abs(time/((speed*250)/(Math.abs(speed*250) - overPos*(1-outFactor))));\n newPos = shaftMinPos;\n overPos = newPos - overPos*outFactor;\n }\n }\n }\n\n shaftPos = newPos;\n\n if (newPos != dirtyLeft) {\n animate(shaft, newPos, time, overPos, false);\n parallax.each(function(){\n var $this = $(this);\n animate($this, getParallaxPos(newPos, $this), time, getParallaxPos(overPos, $this), true);\n });\n setTouchAndShadow(newPos);\n }\n }\n\n touch(shaftOnMouseDown, shaftOnMouseMove, shaftOnMouseUp);\n\n disable.bind('click mousedown mouseup mousemove', function(e){\n e.stopPropagation();\n }).css({\n '-webkit-user-select': 'auto',\n '-moz-user-select': 'auto',\n '-o-user-select': 'auto',\n '-ms-user-select': 'auto',\n 'user-select': 'auto',\n cursor: 'auto'\n });\n\n }\n})(jQuery);\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.LazyLoad = factory());\n}(this, (function () { 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\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 isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\n\n var defaultSettings = {\n elements_selector: \".lazy\",\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 data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false\n };\n var getExtendedSettings = function getExtendedSettings(customSettings) {\n return _extends({}, defaultSettings, customSettings);\n };\n\n /* Creates instance and notifies it through the window element */\n var createInstance = function createInstance(classObj, options) {\n var event;\n var eventString = \"LazyLoad::Initialized\";\n var instance = new classObj(options);\n\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\n window.dispatchEvent(event);\n };\n /* Auto initialization of one or more instances of lazyload, depending on the \n options passed in (plain object or an array) */\n\n\n var autoInitialize = function autoInitialize(classObj, options) {\n if (!options) {\n return;\n }\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\n var SRC = \"src\";\n var SRCSET = \"srcset\";\n var SIZES = \"sizes\";\n var POSTER = \"poster\";\n var ORIGINALS = \"llOriginalAttrs\";\n\n var statusLoading = \"loading\";\n var statusLoaded = \"loaded\";\n var statusApplied = \"applied\";\n var statusEntered = \"entered\";\n var statusError = \"error\";\n var statusNative = \"native\";\n\n var dataPrefix = \"data-\";\n var statusDataName = \"ll-status\";\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\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n\n element.setAttribute(attrName, value);\n };\n var getStatus = function getStatus(element) {\n return getData(element, statusDataName);\n };\n var setStatus = function setStatus(element, status) {\n return setData(element, statusDataName, status);\n };\n var resetStatus = function resetStatus(element) {\n return setStatus(element, null);\n };\n var hasEmptyStatus = function hasEmptyStatus(element) {\n return getStatus(element) === null;\n };\n var hasStatusLoading = function hasStatusLoading(element) {\n return getStatus(element) === statusLoading;\n };\n var hasStatusError = function hasStatusError(element) {\n return getStatus(element) === statusError;\n };\n var hasStatusNative = function hasStatusNative(element) {\n return getStatus(element) === statusNative;\n };\n var statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\n var hadStartedLoading = function hadStartedLoading(element) {\n return statusesAfterLoading.indexOf(getStatus(element)) >= 0;\n };\n\n var safeCallback = function safeCallback(callback, arg1, arg2, arg3) {\n if (!callback) {\n return;\n }\n\n if (arg3 !== undefined) {\n callback(arg1, arg2, arg3);\n return;\n }\n\n if (arg2 !== undefined) {\n callback(arg1, arg2);\n return;\n }\n\n callback(arg1);\n };\n\n var addClass = function addClass(element, className) {\n if (supportsClassList) {\n element.classList.add(className);\n return;\n }\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\n element.className = element.className.replace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").replace(/^\\s+/, \"\").replace(/\\s+$/, \"\");\n };\n\n var addTempImage = function addTempImage(element) {\n element.llTempImage = document.createElement(\"IMG\");\n };\n var deleteTempImage = function deleteTempImage(element) {\n delete element.llTempImage;\n };\n var getTempImage = function getTempImage(element) {\n return element.llTempImage;\n };\n\n var unobserve = function unobserve(element, instance) {\n if (!instance) return;\n var observer = instance._observer;\n if (!observer) return;\n observer.unobserve(element);\n };\n var resetObserver = function resetObserver(observer) {\n observer.disconnect();\n };\n var unobserveEntered = function unobserveEntered(element, settings, instance) {\n if (settings.unobserve_entered) unobserve(element, instance);\n };\n\n var updateLoadingCount = function updateLoadingCount(instance, delta) {\n if (!instance) return;\n instance.loadingCount += delta;\n };\n var decreaseToLoadCount = function decreaseToLoadCount(instance) {\n if (!instance) return;\n instance.toLoadCount -= 1;\n };\n var setToLoadCount = function setToLoadCount(instance, value) {\n if (!instance) return;\n instance.toLoadCount = value;\n };\n var isSomethingLoading = function isSomethingLoading(instance) {\n return instance.loadingCount > 0;\n };\n var haveElementsToLoad = function haveElementsToLoad(instance) {\n return instance.toLoadCount > 0;\n };\n\n var getSourceTags = function getSourceTags(parentTag) {\n var sourceTags = [];\n\n for (var i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n\n return sourceTags;\n };\n\n var forEachPictureSource = function forEachPictureSource(element, fn) {\n var parent = element.parentNode;\n\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n\n var sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n };\n var forEachVideoSource = function forEachVideoSource(element, fn) {\n var sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n };\n\n var attrsSrc = [SRC];\n var attrsSrcPoster = [SRC, POSTER];\n var attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\n var hasOriginalAttrs = function hasOriginalAttrs(element) {\n return !!element[ORIGINALS];\n };\n var getOriginalAttrs = function getOriginalAttrs(element) {\n return element[ORIGINALS];\n };\n var deleteOriginalAttrs = function deleteOriginalAttrs(element) {\n return delete element[ORIGINALS];\n }; // ## SAVE ##\n\n var setOriginalsObject = function setOriginalsObject(element, attributes) {\n if (hasOriginalAttrs(element)) {\n return;\n }\n\n var originals = {};\n attributes.forEach(function (attribute) {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n };\n var saveOriginalBackgroundStyle = function saveOriginalBackgroundStyle(element) {\n if (hasOriginalAttrs(element)) {\n return;\n }\n\n element[ORIGINALS] = {\n backgroundImage: element.style.backgroundImage\n };\n }; // ## RESTORE ##\n\n var setOrResetAttribute = function setOrResetAttribute(element, attrName, value) {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n\n element.setAttribute(attrName, value);\n };\n\n var restoreOriginalAttrs = function restoreOriginalAttrs(element, attributes) {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n\n var originals = getOriginalAttrs(element);\n attributes.forEach(function (attribute) {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n };\n var restoreOriginalBgImage = function restoreOriginalBgImage(element) {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n\n var originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n };\n\n var manageApplied = function manageApplied(element, settings, instance) {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied); // Instance is not provided when loading is called from static class\n\n if (!instance) return;\n\n if (settings.unobserve_completed) {\n // Unobserve now because we can't do it on load\n unobserve(element, settings);\n }\n\n safeCallback(settings.callback_applied, element, instance);\n };\n var manageLoading = function manageLoading(element, settings, instance) {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading); // Instance is not provided when loading is called from static class\n\n if (!instance) return;\n updateLoadingCount(instance, +1);\n safeCallback(settings.callback_loading, element, instance);\n };\n var setAttributeIfValue = function setAttributeIfValue(element, attrName, value) {\n if (!value) {\n return;\n }\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(imgEl, settings) {\n forEachPictureSource(imgEl, function (sourceTag) {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n };\n var setSourcesIframe = function setSourcesIframe(iframe, settings) {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n };\n var setSourcesVideo = function setSourcesVideo(videoEl, settings) {\n forEachVideoSource(videoEl, function (sourceEl) {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n };\n var setBackground = function setBackground(element, settings, instance) {\n var bg1xValue = getData(element, settings.data_bg);\n var bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) return;\n element.style.backgroundImage = \"url(\\\"\".concat(bgDataValue, \"\\\")\");\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n }; // NOTE: THE TEMP IMAGE TRICK CANNOT BE DONE WITH data-multi-bg\n // BECAUSE INSIDE ITS VALUES MUST BE WRAPPED WITH URL() AND ONE OF THEM\n // COULD BE A GRADIENT BACKGROUND IMAGE\n\n var setMultiBackground = function setMultiBackground(element, settings, instance) {\n var bg1xValue = getData(element, settings.data_bg_multi);\n var bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n\n if (!bgDataValue) {\n return;\n }\n\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n };\n var setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo\n };\n var setSourcesNative = function setSourcesNative(element, settings) {\n var setSourcesFunction = setSourcesFunctions[element.tagName];\n\n if (!setSourcesFunction) {\n return;\n }\n\n setSourcesFunction(element, settings);\n };\n var setSources = function setSources(element, settings, instance) {\n var setSourcesFunction = setSourcesFunctions[element.tagName];\n\n if (!setSourcesFunction) {\n return;\n }\n\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n };\n\n var elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\"];\n var hasLoadEvent = function hasLoadEvent(element) {\n return elementsWithLoadEvent.indexOf(element.tagName) > -1;\n };\n var checkFinish = function checkFinish(settings, instance) {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n };\n var addEventListener = function addEventListener(element, eventName, handler) {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n };\n var removeEventListener = function removeEventListener(element, eventName, handler) {\n element.removeEventListener(eventName, handler);\n };\n var hasEventListeners = function hasEventListeners(element) {\n return !!element.llEvLisnrs;\n };\n var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) {\n if (!hasEventListeners(element)) element.llEvLisnrs = {};\n var loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener(element, loadEventName, loadHandler);\n addEventListener(element, \"error\", errorHandler);\n };\n var removeEventListeners = function removeEventListeners(element) {\n if (!hasEventListeners(element)) {\n return;\n }\n\n var eventListeners = element.llEvLisnrs;\n\n for (var eventName in eventListeners) {\n var handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n\n delete element.llEvLisnrs;\n };\n var doneHandler = function doneHandler(element, settings, instance) {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n };\n var loadHandler = function loadHandler(event, element, settings, instance) {\n var goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative) checkFinish(settings, instance);\n };\n var errorHandler = function errorHandler(event, element, settings, instance) {\n var goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (!goingNative) checkFinish(settings, instance);\n };\n var addOneShotEventListeners = function addOneShotEventListeners(element, settings, instance) {\n var elementToListenTo = getTempImage(element) || element;\n\n if (hasEventListeners(elementToListenTo)) {\n // This happens when loading is retried twice\n return;\n }\n\n var _loadHandler = function _loadHandler(event) {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n\n var _errorHandler = function _errorHandler(event) {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n };\n\n var loadBackground = function loadBackground(element, settings, instance) {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n };\n\n var loadRegular = function loadRegular(element, settings, instance) {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n };\n\n var load = function load(element, settings, instance) {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n };\n var loadNative = function loadNative(element, settings, instance) {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n };\n\n var removeImageAttributes = function removeImageAttributes(element) {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n };\n\n var resetSourcesImg = function resetSourcesImg(element) {\n forEachPictureSource(element, function (sourceTag) {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n };\n\n var restoreImg = function restoreImg(imgEl) {\n forEachPictureSource(imgEl, function (sourceEl) {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n };\n var restoreVideo = function restoreVideo(videoEl) {\n forEachVideoSource(videoEl, function (sourceEl) {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n };\n var restoreIframe = function restoreIframe(iframeEl) {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n };\n var restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo\n };\n\n var restoreAttributes = function restoreAttributes(element) {\n var restoreFunction = restoreFunctions[element.tagName];\n\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n\n restoreFunction(element);\n };\n\n var resetClasses = function resetClasses(element, settings) {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n };\n\n var restore = function restore(element, settings) {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n };\n\n var cancelLoading = function cancelLoading(element, entry, settings, instance) {\n if (!settings.cancel_on_exit) return;\n if (!hasStatusLoading(element)) return;\n if (element.tagName !== \"IMG\") return; //Works only on images\n\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n };\n\n var onEnter = function onEnter(element, entry, settings, instance) {\n var dontLoad = hadStartedLoading(element);\n /* Save status \n before setting it, to prevent loading it again. Fixes #526. */\n\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad) return;\n load(element, settings, instance);\n };\n var onExit = function onExit(element, entry, settings, instance) {\n if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing\n\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n };\n\n var tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\n var shouldUseNative = function shouldUseNative(settings) {\n return settings.use_native && \"loading\" in HTMLImageElement.prototype;\n };\n var loadAllNative = function loadAllNative(elements, settings, instance) {\n elements.forEach(function (element) {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n };\n\n var isIntersecting = function isIntersecting(entry) {\n return entry.isIntersecting || entry.intersectionRatio > 0;\n };\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\n var intersectionHandler = function intersectionHandler(entries, settings, instance) {\n entries.forEach(function (entry) {\n return isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance);\n });\n };\n\n var observeElements = function observeElements(observer, elements) {\n elements.forEach(function (element) {\n observer.observe(element);\n });\n };\n var updateObserver = function updateObserver(observer, elementsToObserve) {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n };\n var setObserver = function setObserver(settings, instance) {\n if (!supportsIntersectionObserver || shouldUseNative(settings)) {\n return;\n }\n\n instance._observer = new IntersectionObserver(function (entries) {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n };\n\n var toArray = function toArray(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 excludeManagedElements = function excludeManagedElements(elements) {\n return toArray(elements).filter(hasEmptyStatus);\n };\n var hasError = function hasError(element) {\n return hasStatusError(element);\n };\n var filterErrorElements = function filterErrorElements(elements) {\n return toArray(elements).filter(hasError);\n };\n var getElementsToLoad = function getElementsToLoad(elements, settings) {\n return excludeManagedElements(elements || queryElements(settings));\n };\n\n var retryLazyLoad = function retryLazyLoad(settings, instance) {\n var errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach(function (element) {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n };\n var setOnlineCheck = function setOnlineCheck(settings, instance) {\n if (!runningOnBrowser) {\n return;\n }\n\n window.addEventListener(\"online\", function () {\n retryLazyLoad(settings, instance);\n });\n };\n\n var LazyLoad = function LazyLoad(customSettings, elements) {\n var settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n };\n\n LazyLoad.prototype = {\n update: function update(givenNodeset) {\n var settings = this._settings;\n var elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n\n if (isBot || !supportsIntersectionObserver) {\n this.loadAll(elementsToLoad);\n return;\n }\n\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n\n updateObserver(this._observer, elementsToLoad);\n },\n destroy: function destroy() {\n // Observer\n if (this._observer) {\n this._observer.disconnect();\n } // Clean custom attributes on elements\n\n\n queryElements(this._settings).forEach(function (element) {\n deleteOriginalAttrs(element);\n }); // Delete all internal props\n\n delete this._observer;\n delete this._settings;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n loadAll: function loadAll(elements) {\n var _this = this;\n\n var settings = this._settings;\n var elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach(function (element) {\n unobserve(element, _this);\n load(element, settings, _this);\n });\n },\n restoreAll: function restoreAll() {\n var settings = this._settings;\n queryElements(settings).forEach(function (element) {\n restore(element, settings);\n });\n }\n };\n\n LazyLoad.load = function (element, customSettings) {\n var settings = getExtendedSettings(customSettings);\n load(element, settings);\n };\n\n LazyLoad.resetStatus = function (element) {\n resetStatus(element);\n }; // Automatic instances creation if required (useful for async script loading)\n\n\n if (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n }\n\n return LazyLoad;\n\n})));\n"],"names":["module","exports","assign","target","i","arguments","length","source","key","init","converter","defaultAttributes","set","value","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","get","cookies","jar","parts","slice","join","foundKey","read","e","Object","create","remove","withAttributes","this","withConverter","freeze","path","factory","$","extend","bez","a","b","makeArray","easing","c","d","f","g","Math","abs","h","mousewheel","window","event","call","j","fix","type","wheelDelta","detail","undefined","axis","HORIZONTAL_AXIS","wheelDeltaY","wheelDeltaX","unshift","dispatch","apply","special","setup","addEventListener","onmousewheel","teardown","removeEventListener","fn","bind","trigger","unmousewheel","unbind","touchFLAG","o__dragTimeout","o__bez","o__transitionDuration","$window","$document","_options","scrollyeah","options","scrollyeahDefaults","o","block","_i","name","attr","Number","isNaN","collectOptions","each","data","ini","wrapInner","css","width","maxWidth","shaft","shadows","appendTo","shaftWidth","scrollyeahWidth","shaftMaxPos","shaftMinPos","animateInterval","clearAnimateInterval","shaftGrabbingFLAG","setShaftGrabbingFLAGTimeout","shaftPos","scrollFLAG","parallax","disable","getParallaxPos","pos","preventClick","clearBackAnimate","clearTimeout","animate","time","overPos","extra","POS","backAnimate","setTimeout","max","stop","getTranslate","triggerScrollyeah","clearInterval","setInterval","position","_pos","setPos","setTouchAndShadow","addClass","removeClass","disableIfFit","onResize","height","centerIfFit","min","maxPos","minPos","$this","_coo","_coo2","touch","mouseDown","mouseMove","mouseUp","coo","coo2","downPos","downPos2","downElPos","downTime","moveTime","directionLast","upTime","setMouseWheelFLAGTimeout","mouseWheelFLAG","moveCoo","upTimeLast","movableFLAG","checkedDirectionFLAG","limitFLAG","onMouseDown","which","act","getTime","targetTouches","onMouseMove","onMouseUp","preventDefault","onMouseWheel","delta","deltaX","deltaY","round","push","_diff","_diffMin","backTime","backCoo","dirtyLeft","_backTimeIdeal","posDiff","direction","timeDiff","mousedown","clickPreventedFLAG","shaftOnMouseDown","shaftOnMouseMove","shaftOnMouseUp","isSwipe","timeFromLast","sameDirection","newPos","speed","outFactor","stopPropagation","cursor","doScrollyeah","left","_extends","prototype","hasOwnProperty","runningOnBrowser","isBot","navigator","test","userAgent","supportsIntersectionObserver","supportsClassList","createElement","isHiDpi","devicePixelRatio","defaultSettings","elements_selector","container","threshold","thresholds","data_src","data_srcset","data_sizes","data_bg","data_bg_hidpi","data_bg_multi","data_bg_multi_hidpi","data_poster","class_applied","class_loading","class_loaded","class_error","class_entered","class_exited","unobserve_completed","unobserve_entered","cancel_on_exit","callback_enter","callback_exit","callback_applied","callback_loading","callback_loaded","callback_error","callback_finish","callback_cancel","use_native","getExtendedSettings","customSettings","createInstance","classObj","eventString","instance","CustomEvent","err","createEvent","initCustomEvent","dispatchEvent","autoInitialize","optionsItem","SRC","SRCSET","SIZES","POSTER","ORIGINALS","statusLoading","statusLoaded","statusApplied","statusEntered","statusError","statusNative","dataPrefix","statusDataName","getData","element","attribute","getAttribute","setData","attrName","setAttribute","removeAttribute","getStatus","setStatus","status","resetStatus","hasEmptyStatus","hasStatusLoading","hasStatusError","hasStatusNative","statusesAfterLoading","hadStartedLoading","indexOf","safeCallback","callback","arg1","arg2","arg3","className","classList","add","RegExp","addTempImage","llTempImage","deleteTempImage","getTempImage","unobserve","observer","_observer","resetObserver","disconnect","unobserveEntered","settings","updateLoadingCount","loadingCount","decreaseToLoadCount","toLoadCount","setToLoadCount","isSomethingLoading","haveElementsToLoad","getSourceTags","parentTag","childTag","sourceTags","children","tagName","forEachPictureSource","parent","parentNode","forEach","forEachVideoSource","attrsSrc","attrsSrcPoster","attrsSrcSrcsetSizes","hasOriginalAttrs","getOriginalAttrs","deleteOriginalAttrs","setOriginalsObject","originals","saveOriginalBackgroundStyle","backgroundImage","style","setOrResetAttribute","restoreOriginalAttrs","restoreOriginalBgImage","manageApplied","manageLoading","setAttributeIfValue","setImageAttributes","setBackground","bg1xValue","bgHiDpiValue","bgDataValue","concat","setMultiBackground","setSourcesFunctions","IMG","imgEl","sourceTag","IFRAME","iframe","VIDEO","videoEl","sourceEl","load","setSourcesNative","setSourcesFunction","setSources","elementsWithLoadEvent","hasLoadEvent","checkFinish","eventName","handler","llEvLisnrs","hasEventListeners","addEventListeners","loadHandler","errorHandler","loadEventName","removeEventListeners","eventListeners","doneHandler","goingNative","addOneShotEventListeners","elementToListenTo","loadBackground","loadRegular","loadNative","removeImageAttributes","resetSourcesImg","restoreImg","restoreFunctions","iframeEl","restoreAttributes","restoreFunction","resetClasses","restore","cancelLoading","entry","onEnter","dontLoad","onExit","tagsWithNativeLazy","shouldUseNative","HTMLImageElement","loadAllNative","elements","isIntersecting","intersectionRatio","getObserverSettings","root","rootMargin","intersectionHandler","entries","observeElements","observe","updateObserver","elementsToObserve","setObserver","IntersectionObserver","toArray","nodeSet","Array","queryElements","querySelectorAll","excludeManagedElements","filter","hasError","filterErrorElements","getElementsToLoad","retryLazyLoad","update","setOnlineCheck","LazyLoad","_settings","givenNodeset","elementsToLoad","loadAll","destroy","_this","restoreAll","lazyLoadOptions"],"sourceRoot":""}