diff --git a/static/js/lazyload.min.js b/static/js/lazyload.min.js index afbca66..b72dd74 100644 --- a/static/js/lazyload.min.js +++ b/static/js/lazyload.min.js @@ -1,2 +1 @@ function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e-1&&(I(t,e),g(t,r.class_loading)),p(t,e),function(t){s(t,"was-processed","true")}(t),d(r.callback_reveal,t,e),d(r.callback_set,t,e))},z=function(t){return!!n&&(t._observer=new IntersectionObserver(function(e){e.forEach(function(e){return function(t){return t.isIntersecting||t.intersectionRatio>0}(e)?function(t,e,n){var r=n._settings;d(r.callback_enter,t,e,n),r.load_delay?x(t,n):L(t,n)}(e.target,e,t):function(t,e,n){var r=n._settings;d(r.callback_exit,t,e,n),r.load_delay&&O(t)}(e.target,e,t)})},{root:(e=t._settings).container===document?null:e.container,rootMargin:e.thresholds||e.threshold+"px"}),!0);var e},C=["IMG","IFRAME"],N=function(t,e){return function(t){return t.filter(function(t){return!c(t)})}((n=t||function(t){return t.container.querySelectorAll(t.elements_selector)}(e),Array.prototype.slice.call(n)));var n},M=function(t){var e=t._settings;_toConsumableArray(e.container.querySelectorAll("."+e.class_error)).forEach(function(t){y(t,e.class_error),function(t){s(t,"was-processed",null)}(t)}),t.update()},R=function(e,n){var r;this._settings=function(t){return _extends({},o,t)}(e),this._loadingCount=0,z(this),this.update(n),r=this,t&&window.addEventListener("online",function(t){M(r)})};return R.prototype={update:function(t){var n,r=this,o=this._settings;(this._elements=N(t,o),!e&&this._observer)?(function(t){return t.use_native&&"loading"in HTMLImageElement.prototype}(o)&&((n=this)._elements.forEach(function(t){-1!==C.indexOf(t.tagName)&&(t.setAttribute("loading","lazy"),S(t,n))}),this._elements=N(t,o)),this._elements.forEach(function(t){r._observer.observe(t)})):this.loadAll()},destroy:function(){var t=this;this._observer&&(this._elements.forEach(function(e){t._observer.unobserve(e)}),this._observer=null),this._elements=null,this._settings=null},load:function(t,e){S(t,this,e)},loadAll:function(){var t=this;this._elements.forEach(function(e){L(e,t)})}},t&&function(t,e){if(e)if(e.length)for(var n,r=0;n=e[r];r+=1)a(t,n);else a(t,e)}(R,window.lazyLoadOptions),R}); -//# sourceMappingURL=lazyload.min.js.map diff --git a/static/js/lazyload.min.js.map b/static/js/lazyload.min.js.map deleted file mode 100644 index 3705ab3..0000000 --- a/static/js/lazyload.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["lazyload.js"],"names":["global","factory","exports","_typeof","module","define","amd","LazyLoad","this","runningOnBrowser","window","isBot","navigator","test","userAgent","supportsIntersectionObserver","supportsClassList","createElement","elements_selector","container","defaultSettings","document","threshold","thresholds","data_src","data_srcset","data_sizes","data_bg","data_poster","class_loading","class_loaded","class_error","load_delay","auto_unobserve","callback_enter","callback_exit","callback_reveal","callback_loaded","callback_error","createInstance","classObj","options","event","instance","detail","err","createEvent","eventString","getData","element","attribute","getAttribute","setData","value","attrName","timeoutDataName","removeAttribute","getWasProcessedData","setTimeoutData","setAttribute","safeCallback","callback","arg1","arg2","arg3","getTimeoutData","purgeProcessedElements","updateLoadingCount","plusMinus","_loadingCount","_elements","length","purgeOneElement","_settings","elements","getSourceTags","parentTag","sourceTags","childTag","i","push","setAttributeIfValue","settings","setSourcesFunctions","IMG","parent","tagName","forEach","sourceTag","setImageAttributes","IFRAME","VIDEO","setSourcesImg","load","setSources","srcDataValue","elementToPurge","style","backgroundImage","setSourcesFunction","setWasProcessedData","setSourcesIframe","setSourcesVideo","concat","bgDataValue","addClass","className","add","setSourcesBgImage","replace","handler","addEventListener","eventName","removeEventListener","remove","errorEventName","loadHandler","errorHandler","success","addEventListeners","removeClass","removeEventListeners","addOneShotEventListeners","eventHandler","revealAndUnobserve","observer","_observer","revealElement","managedTags","onEnter","cancelDelayLoad","timeoutId","clearTimeout","delayLoad","setTimeout","loadDelay","force","callback_set","IntersectionObserver","entries","entry","intersectionRatio","isIntersecting","indexOf","root","resetWasProcessedData","nodeSet","querySelectorAll","queryElements","setObserver","prototype","slice","call","retryLazyLoad","getObserverSettings","_toConsumableArray","dataPrefix","update","customSettings","nodeSetToArray","_extends","getElements","_this","use_native","HTMLImageElement","shouldUseNative","nativeLazyTags","rootMargin","observe","destroy","setOnlineCheck","_this2","unobserve","getInstanceSettings","_this3","optionsItem","dispatchEvent","autoInitialize","lazyLoadOptions"],"mappings":"g6BAAC,SAAUA,EAAQC,GACC,YAAnB,oBAAOC,QAAP,YAAAC,QAAOD,WAA0C,oBAAXE,OAAyBA,OAAOF,QAAUD,IAC9D,mBAAXI,QAAyBA,OAAOC,IAAMD,OAAOJ,GACnDD,EAAOO,SAAWN,IAHnB,CAICO,KAAO,WAAc,aAEvB,IAAMC,EAAqC,oBAAXC,OAE1BC,EACJF,KAAsB,aAAcC,SACf,oBAAdE,WACP,gCAAgCC,KAAKD,UAAUE,WAVhDC,EADAN,GAIoB,yBAAAC,OAYfM,EAVNP,GAAMA,cAA0BC,SAAWO,cAA3C,KAOMF,EAAAA,CAGNG,kBAAMF,MAGNG,UAAMC,GAAeX,EAAGY,SAAA,KACvBH,UAAAA,IACAC,WAAS,KACTG,SAAAA,MACAC,YAAU,SACVC,WAAQ,QACRC,QAAAA,KACAC,YAAU,SACVC,cAAS,UACTC,aAAW,SACXC,YAAAA,QACAC,WAAAA,EACAC,gBAAa,EACbC,eAbuB,KAcvBC,cAAAA,KACAC,gBAAc,KACdC,gBAAa,KACbC,eAAAA,KACAC,gBAAAA,KACAC,YAAAA,GASDC,EAAA,SAAAC,EAAAC,GAEC,IAAIC,EADLC,EAAMJ,IAAcC,EAAGC,GACtB,IAEAC,EAAIC,IAAAA,YADc,wBACH,CAAfC,OAAA,CAAAD,SAAAA,KAIE,MAAOE,IAFRH,EAAArB,SAAAyB,YAAA,gBACAJ,gBAJiB,yBAIOK,GAAa,EAAA,CAAAJ,SAAAA,IAAYA,OAAAA,cAAAA,IAcjD,IACDK,EAGO,SAAAC,EAAAC,GACN,OAAAD,EAAAE,aALA,QAKAD,IAGCE,EAAA,SAAAH,EAAAC,EAAAG,GACD,IAAAC,EATA,QASAJ,EACD,OAAAG,EAIDJ,EAAMM,aAAeD,EAAGD,GAUtBJ,EAAQO,gBAAgBF,IAYpBG,EAAsB,SAAAR,GAAO,MAlCjC,SAqBDD,EAAIK,EAVqB,kBAYxBK,EAAA,SAAAT,EAAAI,GAAA,OACAD,EAAAH,EAzBD,aAyBCI,IACDJ,EAAQU,SAAAA,GAAaL,OAArBN,EAAAC,EA1BA,eAmDKW,EAAe,SAACC,EAAUC,EAAMC,EAAMC,GAhBtCP,SAGAC,IAANM,OAGMC,IAANF,EAEAF,EAAMK,GAFwBL,EAAIb,EAAAA,GAHXa,EACtBT,EAAAA,EAAQH,KAKRkB,EAAA,SAAAxB,EAAAyB,GACAzB,EAFD0B,eAAAD,EA0BmC,IAA9BzB,EAAS2B,UAAUC,QAA2C,IAA3B5B,EAAS0B,eAtBjDT,EAAMY,EAAkBC,UAAlBD,gBAAmBE,IAAzBC,EAAA,SAAAC,GAIA,IAwBC,IAxBKhB,EAwBDiB,EAAa,GAxBZjB,EAAAA,EAAekB,EAAflB,EAAgBC,SAADkB,GAAAA,GAAuBf,EAC5B,WAAfc,EAAKjB,SACJgB,EAAAG,KAAAF,GAGD,OAAId,GAGHiB,EAAA,SAAAhC,EAAAK,EAAAD,GA0BIA,GAvBJJ,EAAAU,aAAAL,EAAAD,IAEDQ,EAAA,SAAAZ,EAAAiC,GACAD,EA4BChC,EA1BF,QACCN,EAAAA,EAAS0B,EAAT3C,aACAuD,EACCrB,EACA,SACDZ,EALDC,EAAAiC,EAAAzD,cAOAwD,EAAmBhC,EAAG,MAAhB0B,EAAgBC,EAASM,EAAI1D,YAgDnC2D,EAAA,CAgCCC,IA9EgBN,SAAAA,EAAWA,GAC1B,IAAAO,EAAIP,EAASQ,WAEZD,GAAA,YAAAA,EAAAC,SACDX,EAAAU,GA8BWE,QAAQ,SAAAC,GA7BpBC,EAAAD,EAAAN,KAIAO,EAAYxC,EAAAiC,IAuDbQ,OAtByB,SAACzC,EAASiC,GA9BlCjC,EAAQU,EAAaL,MAAUD,EAA/BJ,EAAAiC,EAAA1D,YAqDAmE,MAlDuB,SAAA1C,EAAGiC,GAC1BD,EAAmBhC,GAKnBgC,QAAAA,SAAAA,GAKAA,EAXDO,EAoCG,MAtBHxC,EAAM4C,EAAgBV,EAAhBU,aAGLX,EACChC,EACA4B,SACCY,EAAAA,EAAAA,EAAmBD,cAEpBP,EAAAhC,EAAA,MAAAD,EAAAC,EAAAiC,EAAA1D,WAwBDyB,EAAQ4C,SAORC,EAAIC,SAAJ9C,EAAkBN,GACjBM,IAlGuByB,EAAUsB,EAkGjC/C,EAAQgD,EAAMC,UACdZ,EAAArC,EAAAqC,QAgBKa,EAAqBhB,EAAoBG,GAd/C,GAAAa,EAmBC,OAlBAlD,EAAciD,EAAAA,GACd/B,EAAAxB,EAAA,QACDA,EAXD2B,WA7FyBI,EA6FzB/B,EAAA2B,UA7FmC0B,EA6FnC/C,EA5GMmD,EAAAA,OAAAA,SAAAA,GAAsB,OAAAnD,IAAtBmD,OA4GoB,SAACnD,EAASiC,GAtBpC,IAAMmB,EAAgBrD,EAAGC,EAAnBoD,EAAAA,UACLpB,EAAAA,EAAoBhC,EAADiC,EAAwBvD,SAyBvCoE,IAtBL9C,EAAMqD,MAAAA,gBAAN,QAAAC,OAAMD,EAAN,OAGErB,IAKAhC,EANDgD,MAAAC,gBAAAM,GA8BApB,CAAKQ,EADsBV,IAA5BuB,EAAA,SAAAxD,EAAAyD,GAoBK1F,EAdLiC,EAAM6C,UAAaa,IAAAD,GAGlBzD,EAAMkD,YAAAA,EAAqBhB,UAAAA,IAAoBG,IAAAA,GAE9Ca,EAAAA,SAAAA,EAAmBlD,GACnBkB,EACAxB,EAAAA,UAAS2B,OAAYE,GAmBtBvB,EAAQyD,UAAYzD,EAAQyD,UAhB5BE,QAAAA,IAAAA,OAAiB,WAAU1B,EAA3B,YAAA,KACA2B,QAXD,OAAA,IA6BEA,QAAQ,OAAQ,KAXjB5D,EAAqB,SAACA,EAAQyD,EAAYI,GAC1C7D,EAND8D,iBAAAC,EAAAF,IASCG,EAAuB,SAAAhE,EAAA+D,EAAAF,GACtB7D,EAAAA,oBAAkBiE,EAAlBJ,IAWIK,EAAiB,SAAvBlE,EAAAmE,EAAAC,GAiBCJ,EAAoBhE,EApCGyD,OAoC4BU,GAfpDH,EAAMF,EApBJ,aAoBuBK,GACxBnE,EAAQ8D,EApBP,QAoBmCD,IAG/BG,EAAAA,SAAsBvE,EAAtBuE,EAAAA,GACLhE,IAAAA,EAAQgE,EAAAA,UADTP,EAAAY,EAAApC,EAAApD,aAAAoD,EAAAnD,YAmBO8B,EAAWyD,EAflBpC,EAAMqC,gBACLR,EAAAA,eACAA,EAAAA,EAAiB9D,OAEjBuE,EAJDvE,EAAAiC,EAAArD,eAqBC4E,EAASxD,EAASyD,GAfnB9C,EAAM6D,EAAAA,EAAuB9E,GAE5BsE,EAAAA,GAAmB,IAmBdS,EAA2B,SAACzE,EAASN,GAf3C,IAAMgF,EAAe,SAAfA,EAAejF,GACpBiF,EAAIzC,GAAWvC,EAAS8B,GACxBgD,EAAkBH,EAAUpC,EAASpD,IAIrCuF,EAAgB3E,SAAhB2E,EAAgB3E,GAEhB8E,EAAW9E,GAACO,EAASiC,GACrBuB,EAAkBC,EAAlBU,EAAAC,KArByB,SAACpE,EAASmE,EAAaC,GAlBhDpE,EAAQyD,EAXeA,OAWHU,GAIpBL,EATD9D,EALE,aAKFmE,GA0BCL,EAAiB9D,EA9BhB,QA8ByCoE,GAqB1ClD,CAAAA,EAAmBxB,EAAnB0E,IAGKK,EAAAA,CAAAA,MAAAA,SAA2B,SAAjCE,EAAA,SAAA3E,EAAAN,GAyBC,IAAIkF,EAAWlF,EAASmF,UAbzBC,EAAMC,EAAerF,GAehBkF,GAAYlF,EAAS8B,UAAUxC,gBAbpC4F,EAAMI,UAAUhF,IAWfiF,EAAevF,SAAAA,GACfoF,IAAAA,EAAa9D,EAAUtB,GAiBlBwF,IAdJC,aAAAD,GACDzE,EANDT,EAAA,QASCoF,EAAc,SAAG1F,EAAS8B,GAC1Bb,IAAAA,EAAasB,EAAS/C,UAAAA,WAkBlBgG,EAAYlE,EAAehB,GAjB/BkF,IAqBAA,EAAYG,WAAW,WAlBvBJ,EAAgBjF,EAAhBN,GACAuF,EAPDjF,IA2BIsF,GAlBJ7E,EAAMwE,EAAkBC,KAEvBJ,EAAgB,SAAA9E,EAAAN,EAAA6F,GACf,IAAAtD,EAAQvC,EAAA8B,WACR+D,GAAA/E,EAAAR,KAEDS,EAAAA,QAAeT,EAAfqC,UAAA,IACAoC,EAPDzE,EAAAN,GA6BE8D,EAASxD,EAASiC,EAASrD,gBAnB5BiE,EAAIyC,EAAY5F,GAzPW,SAAAM,GAZ5BG,EAAMA,EARoB,gBAXxB,QAyRDgD,CAAgBnC,GAsBhBL,EAAasB,EAAS9C,gBAAiBa,EAASN,GArBhDiB,EAAIuE,EAAWM,aAAAxF,EAAAN,KAUVoF,EAAa,SAAApF,GAClB,QAAA5B,IAEC4B,EAAAmF,UAAQ,IAAAY,qBAAA,SAAAC,GACRA,EAAApD,QAAA,SAAAqD,GAAA,OAWqB,SAAAA,GAAK,OAtB3BT,EAAAA,gBAAYG,EAAWO,kBAAW,EAoChCC,CAAeF,GA1FhBjB,SAAAA,EAAoBiB,EAAMjG,GAC1B8E,IAAAA,EAAAA,EAAqBxE,UACrBW,EAHDsB,EAAAhD,eAAAe,EAAA2F,EAAAjG,GAgBKuC,EAASlD,WATbqG,EAHDpF,EAAAN,GAAAiF,EAAkB3E,EAAGN,GA+DrBsF,CAAID,EAAYe,OAAQ9F,EAAON,GAnD1BuC,SAAAA,EAASlD,EAAYW,GACzBiF,IAAAA,EAAAA,EAAmB3E,UACnBW,EAAAsB,EAAA/C,cAAAc,EAAA2F,EAAAjG,GACAuC,EAAAlD,YAEDkG,EARDjF,GAuDEyE,CAAAA,EAAAA,OAAAA,EAAyBzE,MAXzB,CACA+F,MADgB/F,EAahBN,EAAA8B,WAfqBtD,YAAtBE,SAAA,KAAA6D,EAAA/D,UAIAuC,WAAAA,EAAeT,YAASkF,EAAxB7G,UAAA,QAqCO,GAvCU2B,IAAAA,GAgBjBW,EAAasB,CAAAA,MAAS9C,UAgBtBO,EAASmF,SAAAA,EAAgBY,GAAhBZ,OArRqB,SAAApD,GAd/B,OAAMuE,EAAAA,OAAAA,SAAAA,GAAwB,OAAAxF,EAAxBwF,KAoSJN,EALkBO,EAKGxE,GAHrB,SAAAQ,GAAA,OACAA,EAAA/D,UAAAgI,iBAAAjE,EAAAhE,mBAEqBkI,CAAAlE,GALjBmE,MAAcC,UAAQC,MAAIC,KAAAN,KAAZ,IAAAA,GAKGO,EAArB,SAAA9G,GAKA,IANoBuC,EAMlBwE,EAAAA,UAIJC,mBAHCzE,EAAA/D,UAAAgI,iBACA,IAZDjE,EAAAnD,cAcoBwD,QAAI,SAAAtC,GA6BtBuE,EAAYvE,EAASiC,EAASnD,aAvV1BiB,SAAAA,GACLI,EAAAH,EALyB,gBAKG2G,MA2T7BX,CAAwBhG,KAAQN,EAAhCkH,UA0CMtJ,EAAW,SAASuJ,EAAgBpF,GAtCtBa,IAAAA,EASpB/E,KAAMuJ,UA3YN,SAAAD,GAyBC,OAAOE,SAAc,GAAI5I,EAAiB0I,GAkXrCC,CAAAA,GAAwBvJ,KAAA6D,cAAUiF,EAAVD,EAA9B7I,MAiCCA,KAAKqJ,OAAOnF,GA1COa,EAWd6D,KAVJ3I,GAgCDC,OAAOqG,iBAAiB,SAAU,SAAArE,GA7BjCO,EAAQU,MAgDP,OANHpD,EAAS+I,UAAY,CAhCrBO,OAAMI,SAAWvF,GAAG,IAzCboE,EAyCaoB,EAAA1J,KAAA0E,EACnBhB,KAAAA,WADmB1D,KAApB8D,UAAA2F,EAAAvF,EAAAQ,IAoCMvE,GAAUH,KAAKsH,YA7FrB,SAAA5C,GAAA,OAwCCA,EAASiF,YAAc,YAAaC,iBAAiBd,UAyDhDe,CAAgBnF,MAjFf4D,EAiDNtI,MAlDD8D,UAAAiB,QAAA,SAAAtC,IA6BmD,IAA7CqH,EAAevB,QAAQ9F,EAAQqC,WAzBpC0D,EAAIrF,aAAWxC,UAAT,QACNoJ,EAAUtH,EAAEiC,MA8CXsC,KAAAA,UAAYvE,EAASiC,EAASnD,IAE9BvB,KAHD8D,UAAAiB,QAAA,SAAAtC,GAqCEiH,EAAKpC,UAAU0C,QAAQvH,MA1C1BzC,KAAMiJ,WAYNgB,QAAMC,WAAc,IAAAC,EAAAnK,KACnBA,KAAKC,YACJD,KAAA8D,UAAAiB,QAAA,SAAAtC,GACA0H,EAAA7C,UAAA8C,UAAA3H,KACDvC,KAAAA,UAAOqG,MAENvG,KAFD8D,UAAA,KAGA9D,KAPDiE,UAAA,MAUCoB,KAAA,SAAKpB,EAAYoG,GACjB9C,EAAK1D,EAAgB7D,KAArBgI,IAGAkC,QAAAA,WAAe,IAAAI,EAAAtK,KACfA,KAND8D,UAAAiB,QAAA,SAAAtC,GA0CG2E,EAAmB3E,EAAS6H,OA/B7BrK,GA7YAiC,SAAiBI,EAATL,GACRC,GAAAA,EACA,GAAAD,EAAA8B,OAeA,IAAK,IAAWwG,EAAPhG,EAAI,EAAiBgG,EAActI,EAAQsC,GAAKA,GAAK,EAC7DxC,EAAeC,EAAUuI,QAf3BrK,EAAOsK,EAActI,GAgbrBuI,CAAe1K,EAAUG,OAAOwK,iBAnC9B3K","file":"lazyload.min.js","sourcesContent":["(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.LazyLoad = factory());\n}(this, (function () { 'use strict';\n\nconst runningOnBrowser = typeof window !== \"undefined\";\n\nconst isBot =\n\t(runningOnBrowser && !(\"onscroll\" in window)) ||\n\t(typeof navigator !== \"undefined\" &&\n\t\t/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));\n\nconst supportsIntersectionObserver =\n\trunningOnBrowser && \"IntersectionObserver\" in window;\n\nconst supportsClassList =\n\trunningOnBrowser && \"classList\" in document.createElement(\"p\");\n\nconst defaultSettings = {\n\telements_selector: \"img\",\n\tcontainer: isBot || runningOnBrowser ? document : null,\n\tthreshold: 300,\n\tthresholds: null,\n\tdata_src: \"src\",\n\tdata_srcset: \"srcset\",\n\tdata_sizes: \"sizes\",\n\tdata_bg: \"bg\",\n\tdata_poster: \"poster\",\n\tclass_loading: \"loading\",\n\tclass_loaded: \"loaded\",\n\tclass_error: \"error\",\n\tload_delay: 0,\n\tauto_unobserve: true,\n\tcallback_enter: null,\n\tcallback_exit: null,\n\tcallback_reveal: null,\n\tcallback_loaded: null,\n\tcallback_error: null,\n\tcallback_finish: null,\n\tuse_native: false\n};\n\nvar getInstanceSettings = customSettings => {\n\treturn Object.assign({}, defaultSettings, customSettings);\n};\n\n/* Creates instance and notifies it through the window element */\nconst createInstance = function(classObj, options) {\n\tvar event;\n\tlet eventString = \"LazyLoad::Initialized\";\n\tlet instance = new classObj(options);\n\ttry {\n\t\t// Works in modern browsers\n\t\tevent = new CustomEvent(eventString, { detail: { instance } });\n\t} catch (err) {\n\t\t// Works in Internet Explorer (all versions)\n\t\tevent = document.createEvent(\"CustomEvent\");\n\t\tevent.initCustomEvent(eventString, false, false, { instance });\n\t}\n\twindow.dispatchEvent(event);\n};\n\n/* Auto initialization of one or more instances of lazyload, depending on the \n options passed in (plain object or an array) */\nfunction autoInitialize(classObj, options) {\n\tif (!options) {\n\t\treturn;\n\t}\n\tif (!options.length) {\n\t\t// Plain object\n\t\tcreateInstance(classObj, options);\n\t} else {\n\t\t// Array of objects\n\t\tfor (let i = 0, optionsItem; (optionsItem = options[i]); i += 1) {\n\t\t\tcreateInstance(classObj, optionsItem);\n\t\t}\n\t}\n}\n\nconst dataPrefix = \"data-\";\nconst processedDataName = \"was-processed\";\nconst timeoutDataName = \"ll-timeout\";\nconst trueString = \"true\";\n\nconst getData = (element, attribute) => {\n\treturn element.getAttribute(dataPrefix + attribute);\n};\n\nconst setData = (element, attribute, value) => {\n\tvar attrName = dataPrefix + attribute;\n\tif (value === null) {\n\t\telement.removeAttribute(attrName);\n\t\treturn;\n\t}\n\telement.setAttribute(attrName, value);\n};\n\nconst resetWasProcessedData = element =>\n\tsetData(element, processedDataName, null);\n\nconst setWasProcessedData = element =>\n\tsetData(element, processedDataName, trueString);\n\nconst getWasProcessedData = element =>\n\tgetData(element, processedDataName) === trueString;\n\nconst setTimeoutData = (element, value) =>\n\tsetData(element, timeoutDataName, value);\n\nconst getTimeoutData = element => getData(element, timeoutDataName);\n\nconst purgeProcessedElements = elements => {\n\treturn elements.filter(element => !getWasProcessedData(element));\n};\n\nconst purgeOneElement = (elements, elementToPurge) => {\n\treturn elements.filter(element => element !== elementToPurge);\n};\n\nconst safeCallback = (callback, arg1, arg2, arg3) => {\n\tif (!callback) {\n\t\treturn;\n\t}\n\n\tif (arg3 !== undefined) {\n\t\tcallback(arg1, arg2, arg3);\n\t\treturn;\n\t}\n\tif (arg2 !== undefined) {\n\t\tcallback(arg1, arg2);\n\t\treturn;\n\t}\n\tcallback(arg1);\n};\n\nconst updateLoadingCount = (instance, plusMinus) => {\n\tinstance._loadingCount += plusMinus;\n\tif (instance._elements.length === 0 && instance._loadingCount === 0) {\n\t\tsafeCallback(instance._settings.callback_finish, instance);\n\t}\n};\n\nconst getSourceTags = parentTag => {\n\tlet sourceTags = [];\n\tfor (let i = 0, childTag; (childTag = parentTag.children[i]); i += 1) {\n\t\tif (childTag.tagName === \"SOURCE\") {\n\t\t\tsourceTags.push(childTag);\n\t\t}\n\t}\n\treturn sourceTags;\n};\n\nconst setAttributeIfValue = (element, attrName, value) => {\n\tif (!value) {\n\t\treturn;\n\t}\n\telement.setAttribute(attrName, value);\n};\n\nconst setImageAttributes = (element, settings) => {\n\tsetAttributeIfValue(\n\t\telement,\n\t\t\"sizes\",\n\t\tgetData(element, settings.data_sizes)\n\t);\n\tsetAttributeIfValue(\n\t\telement,\n\t\t\"srcset\",\n\t\tgetData(element, settings.data_srcset)\n\t);\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\n};\n\nconst setSourcesImg = (element, settings) => {\n\tconst parent = element.parentNode;\n\n\tif (parent && parent.tagName === \"PICTURE\") {\n\t\tlet sourceTags = getSourceTags(parent);\n\t\tsourceTags.forEach(sourceTag => {\n\t\t\tsetImageAttributes(sourceTag, settings);\n\t\t});\n\t}\n\n\tsetImageAttributes(element, settings);\n};\n\nconst setSourcesIframe = (element, settings) => {\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\n};\n\nconst setSourcesVideo = (element, settings) => {\n\tlet sourceTags = getSourceTags(element);\n\tsourceTags.forEach(sourceTag => {\n\t\tsetAttributeIfValue(\n\t\t\tsourceTag,\n\t\t\t\"src\",\n\t\t\tgetData(sourceTag, settings.data_src)\n\t\t);\n\t});\n\tsetAttributeIfValue(\n\t\telement,\n\t\t\"poster\",\n\t\tgetData(element, settings.data_poster)\n\t);\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\n\telement.load();\n};\n\nconst setSourcesBgImage = (element, settings) => {\n\tconst srcDataValue = getData(element, settings.data_src);\n\tconst bgDataValue = getData(element, settings.data_bg);\n\n\tif (srcDataValue) {\n\t\telement.style.backgroundImage = `url(\"${srcDataValue}\")`;\n\t}\n\n\tif (bgDataValue) {\n\t\telement.style.backgroundImage = bgDataValue;\n\t}\n};\n\nconst setSourcesFunctions = {\n\tIMG: setSourcesImg,\n\tIFRAME: setSourcesIframe,\n\tVIDEO: setSourcesVideo\n};\n\nconst setSources = (element, instance) => {\n\tconst settings = instance._settings;\n\tconst tagName = element.tagName;\n\tconst setSourcesFunction = setSourcesFunctions[tagName];\n\tif (setSourcesFunction) {\n\t\tsetSourcesFunction(element, settings);\n\t\tupdateLoadingCount(instance, 1);\n\t\tinstance._elements = purgeOneElement(instance._elements, element);\n\t\treturn;\n\t}\n\tsetSourcesBgImage(element, settings);\n};\n\nconst addClass = (element, className) => {\n\tif (supportsClassList) {\n\t\telement.classList.add(className);\n\t\treturn;\n\t}\n\telement.className += (element.className ? \" \" : \"\") + className;\n};\n\nconst removeClass = (element, className) => {\n\tif (supportsClassList) {\n\t\telement.classList.remove(className);\n\t\treturn;\n\t}\n\telement.className = element.className.\n\t\treplace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").\n\t\treplace(/^\\s+/, \"\").\n\t\treplace(/\\s+$/, \"\");\n};\n\nconst genericLoadEventName = \"load\";\nconst mediaLoadEventName = \"loadeddata\";\nconst errorEventName = \"error\";\n\nconst addEventListener = (element, eventName, handler) => {\n\telement.addEventListener(eventName, handler);\n};\n\nconst removeEventListener = (element, eventName, handler) => {\n\telement.removeEventListener(eventName, handler);\n};\n\nconst addEventListeners = (element, loadHandler, errorHandler) => {\n\taddEventListener(element, genericLoadEventName, loadHandler);\n\taddEventListener(element, mediaLoadEventName, loadHandler);\n\taddEventListener(element, errorEventName, errorHandler);\n};\n\nconst removeEventListeners = (element, loadHandler, errorHandler) => {\n\tremoveEventListener(element, genericLoadEventName, loadHandler);\n\tremoveEventListener(element, mediaLoadEventName, loadHandler);\n\tremoveEventListener(element, errorEventName, errorHandler);\n};\n\nconst eventHandler = function(event, success, instance) {\n\tvar settings = instance._settings;\n\tconst className = success ? settings.class_loaded : settings.class_error;\n\tconst callback = success\n\t\t? settings.callback_loaded\n\t\t: settings.callback_error;\n\tconst element = event.target;\n\n\tremoveClass(element, settings.class_loading);\n\taddClass(element, className);\n\tsafeCallback(callback, element, instance);\n\n\tupdateLoadingCount(instance, -1);\n};\n\nconst addOneShotEventListeners = (element, instance) => {\n\tconst loadHandler = event => {\n\t\teventHandler(event, true, instance);\n\t\tremoveEventListeners(element, loadHandler, errorHandler);\n\t};\n\tconst errorHandler = event => {\n\t\teventHandler(event, false, instance);\n\t\tremoveEventListeners(element, loadHandler, errorHandler);\n\t};\n\taddEventListeners(element, loadHandler, errorHandler);\n};\n\nconst managedTags = [\"IMG\", \"IFRAME\", \"VIDEO\"];\n\nconst onEnter = (element, entry, instance) => {\n\tconst settings = instance._settings;\n\tsafeCallback(settings.callback_enter, element, entry, instance);\n\tif (!settings.load_delay) {\n\t\trevealAndUnobserve(element, instance);\n\t\treturn;\n\t}\n\tdelayLoad(element, instance);\n};\n\nconst revealAndUnobserve = (element, instance) => {\n\tvar observer = instance._observer;\n\trevealElement(element, instance);\n\tif (observer && instance._settings.auto_unobserve) {\n\t\tobserver.unobserve(element);\n\t}\n};\n\nconst onExit = (element, entry, instance) => {\n\tconst settings = instance._settings;\n\tsafeCallback(settings.callback_exit, element, entry, instance);\n\tif (!settings.load_delay) {\n\t\treturn;\n\t}\n\tcancelDelayLoad(element);\n};\n\nconst cancelDelayLoad = element => {\n\tvar timeoutId = getTimeoutData(element);\n\tif (!timeoutId) {\n\t\treturn; // do nothing if timeout doesn't exist\n\t}\n\tclearTimeout(timeoutId);\n\tsetTimeoutData(element, null);\n};\n\nconst delayLoad = (element, instance) => {\n\tvar loadDelay = instance._settings.load_delay;\n\tvar timeoutId = getTimeoutData(element);\n\tif (timeoutId) {\n\t\treturn; // do nothing if timeout already set\n\t}\n\ttimeoutId = setTimeout(function() {\n\t\trevealAndUnobserve(element, instance);\n\t\tcancelDelayLoad(element);\n\t}, loadDelay);\n\tsetTimeoutData(element, timeoutId);\n};\n\nconst revealElement = (element, instance, force) => {\n\tvar settings = instance._settings;\n\tif (!force && getWasProcessedData(element)) {\n\t\treturn; // element has already been processed and force wasn't true\n\t}\n\tif (managedTags.indexOf(element.tagName) > -1) {\n\t\taddOneShotEventListeners(element, instance);\n\t\taddClass(element, settings.class_loading);\n\t}\n\tsetSources(element, instance);\n\tsetWasProcessedData(element);\n\tsafeCallback(settings.callback_reveal, element, instance);\n\tsafeCallback(settings.callback_set, element, instance);\n};\n\nconst isIntersecting = entry =>\n\tentry.isIntersecting || entry.intersectionRatio > 0;\n\nconst getObserverSettings = settings => ({\n\troot: settings.container === document ? null : settings.container,\n\trootMargin: settings.thresholds || settings.threshold + \"px\"\n});\n\nconst setObserver = instance => {\n\tif (!supportsIntersectionObserver) {\n\t\treturn false;\n\t}\n\tinstance._observer = new IntersectionObserver(entries => {\n\t\tentries.forEach(entry =>\n\t\t\tisIntersecting(entry)\n\t\t\t\t? onEnter(entry.target, entry, instance)\n\t\t\t\t: onExit(entry.target, entry, instance)\n\t\t);\n\t}, getObserverSettings(instance._settings));\n\treturn true;\n};\n\nconst nativeLazyTags = [\"IMG\", \"IFRAME\"];\n\nconst shouldUseNative = settings =>\n\tsettings.use_native && \"loading\" in HTMLImageElement.prototype;\n\nconst loadAllNative = instance => {\n\tinstance._elements.forEach(element => {\n\t\tif (nativeLazyTags.indexOf(element.tagName) === -1) {\n\t\t\treturn;\n\t\t}\n\t\telement.setAttribute(\"loading\", \"lazy\");\n\t\trevealElement(element, instance);\n\t});\n};\n\nconst nodeSetToArray = nodeSet => Array.prototype.slice.call(nodeSet);\n\nconst queryElements = settings =>\n\tsettings.container.querySelectorAll(settings.elements_selector);\n\nconst getElements = (elements, settings) =>\n\tpurgeProcessedElements(nodeSetToArray(elements || queryElements(settings)));\n\nconst retryLazyLoad = instance => {\n\tvar settings = instance._settings;\n\tvar errorElements = settings.container.querySelectorAll(\n\t\t\".\" + settings.class_error\n\t);\n\t[...errorElements].forEach(element => {\n\t\tremoveClass(element, settings.class_error);\n\t\tresetWasProcessedData(element);\n\t});\n\tinstance.update();\n};\n\nconst setOnlineCheck = instance => {\n\tif (!runningOnBrowser) {\n\t\treturn;\n\t}\n\twindow.addEventListener(\"online\", event => {\n\t\tretryLazyLoad(instance);\n\t});\n};\n\nconst LazyLoad = function(customSettings, elements) {\n\tthis._settings = getInstanceSettings(customSettings);\n\tthis._loadingCount = 0;\n\tsetObserver(this);\n\tthis.update(elements);\n\tsetOnlineCheck(this);\n};\n\nLazyLoad.prototype = {\n\tupdate: function(elements) {\n\t\tvar settings = this._settings;\n\t\tthis._elements = getElements(elements, settings);\n\t\tif (isBot || !this._observer) {\n\t\t\tthis.loadAll();\n\t\t\treturn;\n\t\t}\n\t\tif (shouldUseNative(settings)) {\n\t\t\tloadAllNative(this);\n\t\t\tthis._elements = getElements(elements, settings);\n\t\t}\n\t\tthis._elements.forEach(element => {\n\t\t\tthis._observer.observe(element);\n\t\t});\n\t},\n\n\tdestroy: function() {\n\t\tif (this._observer) {\n\t\t\tthis._elements.forEach(element => {\n\t\t\t\tthis._observer.unobserve(element);\n\t\t\t});\n\t\t\tthis._observer = null;\n\t\t}\n\t\tthis._elements = null;\n\t\tthis._settings = null;\n\t},\n\n\tload: function(element, force) {\n\t\trevealElement(element, this, force);\n\t},\n\n\tloadAll: function() {\n\t\tthis._elements.forEach(element => {\n\t\t\trevealAndUnobserve(element, this);\n\t\t});\n\t}\n};\n\n/* Automatic instances creation if required (useful for async script loading) */\nif (runningOnBrowser) {\n\tautoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\nreturn LazyLoad;\n\n})));\n"]} \ No newline at end of file