lazysizes
Version:
High performance (jankfree) lazy loader for images (including responsive images), iframes and scripts (widgets).
2 lines • 5.63 kB
JavaScript
/*! lazysizes - v4.0.1 */
!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener("lazyunveilread",c,!0)};b=b.bind(null,a,a.document),"object"==typeof module&&module.exports?b(require("lazysizes")):a.lazySizes?c():a.addEventListener("lazyunveilread",c,!0)}(window,function(a,b,c){"use strict";function d(a){a.match(B)?this.urls[RegExp.$1]=v.map[RegExp.$2]||RegExp.$2:this.urls.include=v.map[a]||a}function e(a){var b,c,e;return a=a.trim(),a=v.map[a]||a,c=a.match(C),c?(e=RegExp.$1,b={condition:u.include.conditions[RegExp.$3]||u.customMedia[RegExp.$3]||RegExp.$2||null,name:RegExp.$3}):(e=a,b={condition:null,name:""}),b.urls={},(v.map[e]||e).split(A).forEach(d,b),!b.urls.include&&b.urls.amd&&(this.saved=!0,b.initial=this),b}function f(a){var b,d,f=a.getAttribute("data-include")||"",g=a.lazyInclude;return(!g||g.str!=f||v.allowReload)&&(d={saved:!1,content:null},g={str:f,candidates:(v.map[f]||f).split(y).map(e,d)},!(b=g.candidates.length)||g.candidates[b-1].condition?(d.saved=!0,g.candidates.push({urls:{},condition:null,name:"initial",content:d})):d.saved&&1==g.candidates.length&&(d.saved=!1),g.initialContent=d,d.saved&&(d.content=a.innerHTML),a.lazyInclude=g,g.candidates.length>1?c.aC(a,"lazyconditionalinclude"):c.rC(a,"lazyconditionalinclude")),g}function g(b,c){var d=!c.condition;return c.condition&&(h(),x[c.name]?d=!0:a.matchMedia&&"string"==typeof c.condition?d=(matchMedia(c.condition)||{}).matches:"function"==typeof c.condition&&(d=c.condition(b,c))),d}function h(){var a;x||(w||(w=b.querySelector(v.contentElement)),w?(a=(G(w,":after").getPropertyValue("content")||"none").replace(D,""),x={},a&&(x[a]=1),a=(G(w,":before").getPropertyValue("content")||"none").replace(D,""),a&&(x[a]=1)):x={})}function i(a){var b,c,d=a.lazyInclude;if(d&&d.candidates)for(b=0;b<d.candidates.length&&(c=d.candidates[b],!g(a,c));b++);return c&&c!=d.current||(c=null),c}function j(a,b){var c=new XMLHttpRequest;c.addEventListener("readystatechange",function(){var a=this.DONE||4;this.readyState===a&&(b(c),c=null)},!1),c.open.apply(c,a.openArgs),c.setRequestHeader("X-Requested-With","XMLHttpRequest"),a.xhrModifier&&a.xhrModifier(c,elem,candidate),c.send(a.sendData)}function k(a,b){a=a.split("|,|");var d=a.length-1;c.cfg.requireJs?c.cfg.requireJs(a,b):a.forEach(function(a,c){m(a,c==d?b:null)})}function l(a,b){c.cfg.systemJs?c.cfg.systemJs(a,b):m(a,b)}function m(a,c,d){if(!z[a]){var e=b.createElement(c===!0?"script":"link"),f=b.getElementsByTagName("script")[0];c?(e.src=a,e.async=!1):(e.rel="stylesheet",e.href=a),f.parentNode.insertBefore(e,f),z[a]=!0,z[e.href]=!0}}function n(a){a=a.split("|,|"),a.forEach(m)}function o(a){a&&"function"==typeof a.lazytransform&&a.lazytransform(this)}function p(a){a&&"function"==typeof a.lazyunload&&a.lazyunload(this)}function q(a){a&&"function"==typeof a.lazyload&&a.lazyload(this)}function r(a,b){var d,e,f,g=a.lazyInclude.current||null,h={candidate:b,openArgs:["GET",b.urls.include,!0],sendData:null,xhrModifier:null,content:b.content&&b.content.content||b.content,oldCandidate:g},i=c.fire(a,"lazyincludeload",h);if(i.defaultPrevented)return void H.d();if(d=function(){var d,h=e.status,i=e.content||e.responseText,j=!(null!=i||!g||!g.urls.include),k={candidate:b,content:i,text:e.responseText||e.content,response:e.response,xml:e.responseXML,isSuccess:"status"in e?h>=200&&300>h||304===h:!0,oldCandidate:g,insert:!0,resetHTML:j},l={target:a,details:k,detail:k};b.modules=f,g&&g.modules&&(g.modules.forEach(p,l),g.modules=null,k.resetHTML&&null==k.content&&b.initial&&b.initial.saved&&(k.content=b.initial.content)),f.forEach(o,l),d=c.fire(a,"lazyincludeloaded",k),k.insert&&k.isSuccess&&!d.defaultPrevented&&null!=k.content&&k.content!=a.innerHTML&&(a.innerHTML=k.content),H.d(),f.forEach(q,l),setTimeout(function(){c.fire(a,"lazyincluded",k)}),e=null,f=null},a.lazyInclude.current=b,a.setAttribute("data-currentinclude",b.name),b.urls.css&&n(b.urls.css),null==h.content&&b.urls.include?j(h,function(a){e=a,f&&d()}):e=h,b.urls.amd||b.urls.module){var m=function(){f=Array.prototype.slice.call(arguments),e&&d()};b.urls.amd?k(b.urls.amd,m):l(b.urls.module,m)}else f=[];e&&f&&d()}function s(a){var b,c=f(a);return c.candidates.length&&E.contains(a)?(b=i(a),b&&r(a,b),!0):void 0}function t(a){a.detail.instance==c&&!a.defaultPrevented&&a.target.getAttribute("data-include")&&(H.q(a.target),a.detail.firesLoad=!0)}if(b.getElementsByClassName){var u,v,w,x,y=/\s*,+\s+/,z={},A=/\s+/,B=/^(amd|css|module)\:(.+)/i,C=/(.+)\s+(\(\s*(.+)\s*\))/,D=/['"]/g,E=b.documentElement,F=b.getElementsByClassName("lazyconditionalinclude"),G=function(b,c){var d=b.ownerDocument.defaultView;return d.opener||(d=a),d.getComputedStyle(b,c||null)||{getPropertyValue:function(){},isNull:!0}},H=function(){var a=2,b=3,c=a,d=0,e=0,f=[],g=function(){var a,b=function(){f.length&&(d=0,f.d())};return function(){clearTimeout(a),a=setTimeout(b,999)}}();return{q:function(a){var h=null==a.getAttribute("data-lazyqueue");h&&(e++,c=b),d>c?f[h?"unshift":"push"](a):s(a)&&(d++,g())},d:function(){if(d&&d--,e>0&&(e--,e||(c=a)),!(d>c)){for(;f.length;)if(s(f.shift())){d++;break}g()}}}}(),I=function(){var a,b=function(){for(var a=0,b=F.length;b>a;a++)!c.hC(F[a],u.lazyClass)&&i(F[a])&&c.aC(F[a],u.lazyClass)};return function(c){clearTimeout(a),x=null,a=setTimeout(b,"resize"==c.type?31:0)}}();u=c&&c.cfg||a.lazySizesConfig,u||(u={},a.lazySizesConfig=u),u.include||(u.include={}),v=u.include,v.contentElement||(v.contentElement="html"),v.conditions||(v.conditions={}),v.map||(v.map={}),addEventListener("lazybeforeunveil",t,!1),addEventListener("resize",I,!1),addEventListener("lazyrefreshincludes",I,!1)}});