@netless/app-slide 0.3.0-canary.3 → 0.3.0-canary.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const dt=require("@netless/slide");var Ce={exports:{}},ut={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Ae={exports:{}},pt=function(t){return!t||typeof t=="string"?!1:t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&t.constructor.name!=="String")},ht=pt,gt=Array.prototype.concat,ft=Array.prototype.slice,_e=Ae.exports=function(t){for(var s=[],r=0,o=t.length;r<o;r++){var l=t[r];ht(l)?s=gt.call(s,ft.call(l)):s.push(l)}return s};_e.wrap=function(e){return function(){return e(_e(arguments))}};var G=ut,Z=Ae.exports,Le=Object.hasOwnProperty,$e=Object.create(null);for(var ne in G)Le.call(G,ne)&&($e[G[ne]]=ne);var _=Ce.exports={to:{},get:{}};_.get=function(e){var t=e.substring(0,3).toLowerCase(),s,r;switch(t){case"hsl":s=_.get.hsl(e),r="hsl";break;case"hwb":s=_.get.hwb(e),r="hwb";break;default:s=_.get.rgb(e),r="rgb";break}return s?{model:r,value:s}:null};_.get.rgb=function(e){if(!e)return null;var t=/^#([a-f0-9]{3,4})$/i,s=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,r=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,o=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,l=/^(\w+)$/,a=[0,0,0,1],i,n,d;if(i=e.match(s)){for(d=i[2],i=i[1],n=0;n<3;n++){var u=n*2;a[n]=parseInt(i.slice(u,u+2),16)}d&&(a[3]=parseInt(d,16)/255)}else if(i=e.match(t)){for(i=i[1],d=i[3],n=0;n<3;n++)a[n]=parseInt(i[n]+i[n],16);d&&(a[3]=parseInt(d+d,16)/255)}else if(i=e.match(r)){for(n=0;n<3;n++)a[n]=parseInt(i[n+1],0);i[4]&&(i[5]?a[3]=parseFloat(i[4])*.01:a[3]=parseFloat(i[4]))}else if(i=e.match(o)){for(n=0;n<3;n++)a[n]=Math.round(parseFloat(i[n+1])*2.55);i[4]&&(i[5]?a[3]=parseFloat(i[4])*.01:a[3]=parseFloat(i[4]))}else return(i=e.match(l))?i[1]==="transparent"?[0,0,0,0]:Le.call(G,i[1])?(a=G[i[1]],a[3]=1,a):null:null;for(n=0;n<3;n++)a[n]=$(a[n],0,255);return a[3]=$(a[3],0,1),a};_.get.hsl=function(e){if(!e)return null;var t=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,s=e.match(t);if(s){var r=parseFloat(s[4]),o=(parseFloat(s[1])%360+360)%360,l=$(parseFloat(s[2]),0,100),a=$(parseFloat(s[3]),0,100),i=$(isNaN(r)?1:r,0,1);return[o,l,a,i]}return null};_.get.hwb=function(e){if(!e)return null;var t=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,s=e.match(t);if(s){var r=parseFloat(s[4]),o=(parseFloat(s[1])%360+360)%360,l=$(parseFloat(s[2]),0,100),a=$(parseFloat(s[3]),0,100),i=$(isNaN(r)?1:r,0,1);return[o,l,a,i]}return null};_.to.hex=function(){var e=Z(arguments);return"#"+Y(e[0])+Y(e[1])+Y(e[2])+(e[3]<1?Y(Math.round(e[3]*255)):"")};_.to.rgb=function(){var e=Z(arguments);return e.length<4||e[3]===1?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"};_.to.rgb.percent=function(){var e=Z(arguments),t=Math.round(e[0]/255*100),s=Math.round(e[1]/255*100),r=Math.round(e[2]/255*100);return e.length<4||e[3]===1?"rgb("+t+"%, "+s+"%, "+r+"%)":"rgba("+t+"%, "+s+"%, "+r+"%, "+e[3]+")"};_.to.hsl=function(){var e=Z(arguments);return e.length<4||e[3]===1?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"};_.to.hwb=function(){var e=Z(arguments),t="";return e.length>=4&&e[3]!==1&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"};_.to.keyword=function(e){return $e[e.slice(0,3)]};function $(e,t,s){return Math.min(Math.max(t,e),s)}function Y(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}const ze="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",bt=ze.length,we=Array(20),vt=()=>{for(let e=0;e<20;e++)we[e]=ze.charAt(Math.random()*bt);return we.join("")};function ye(e){try{return e()}catch(t){console.error(t)}}class Ne{constructor(){this.disposers=new Map}addDisposer(t,s=this.genUID()){return this.flush(s),this.disposers.set(s,Array.isArray(t)?()=>t.forEach(ye):t),s}add(t,s=this.genUID()){const r=t();return r?this.addDisposer(r,s):s}addEventListener(t,s,r,o,l=this.genUID()){return t.addEventListener(s,r,o),this.addDisposer(()=>t.removeEventListener(s,r,o),l),l}setTimeout(t,s,r=this.genUID()){const o=window.setTimeout(()=>{this.remove(r),t()},s);return this.addDisposer(()=>window.clearTimeout(o),r)}setInterval(t,s,r=this.genUID()){const o=window.setInterval(t,s);return this.addDisposer(()=>window.clearInterval(o),r)}remove(t){const s=this.disposers.get(t);return this.disposers.delete(t),s}flush(t){const s=this.remove(t);if(s)try{s()}catch(r){console.error(r)}}flushAll(){this.disposers.forEach(ye),this.disposers.clear()}genUID(){let t;do t=vt();while(this.disposers.has(t));return t}}const N=typeof window<"u",Oe=N&&!("onscroll"in window)||typeof navigator<"u"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Me=N&&"IntersectionObserver"in window,De=N&&"classList"in document.createElement("p"),Te=N&&window.devicePixelRatio>1,mt={elements_selector:".lazy",container:Oe||N?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},Fe=e=>Object.assign({},mt,e),ke=function(e,t){let s;const r="LazyLoad::Initialized",o=new e(t);try{s=new CustomEvent(r,{detail:{instance:o}})}catch{s=document.createEvent("CustomEvent"),s.initCustomEvent(r,!1,!1,{instance:o})}window.dispatchEvent(s)},_t=(e,t)=>{if(!!t)if(!t.length)ke(e,t);else for(let s=0,r;r=t[s];s+=1)ke(e,r)},I="src",ie="srcset",le="sizes",Pe="poster",K="llOriginalAttrs",Ve="data",ce="loading",Re="loaded",qe="applied",wt="entered",de="error",Be="native",He="data-",Ue="ll-status",v=(e,t)=>e.getAttribute(He+t),yt=(e,t,s)=>{var r=He+t;if(s===null){e.removeAttribute(r);return}e.setAttribute(r,s)},Q=e=>v(e,Ue),D=(e,t)=>yt(e,Ue,t),te=e=>D(e,null),ue=e=>Q(e)===null,kt=e=>Q(e)===ce,St=e=>Q(e)===de,pe=e=>Q(e)===Be,xt=[ce,Re,qe,de],Et=e=>xt.indexOf(Q(e))>=0,O=(e,t,s,r)=>{if(!!e){if(r!==void 0){e(t,s,r);return}if(s!==void 0){e(t,s);return}e(t)}},U=(e,t)=>{if(De){e.classList.add(t);return}e.className+=(e.className?" ":"")+t},S=(e,t)=>{if(De){e.classList.remove(t);return}e.className=e.className.replace(new RegExp("(^|\\s+)"+t+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},It=e=>{e.llTempImage=document.createElement("IMG")},Ct=e=>{delete e.llTempImage},je=e=>e.llTempImage,se=(e,t)=>{if(!t)return;const s=t._observer;!s||s.unobserve(e)},At=e=>{e.disconnect()},Lt=(e,t,s)=>{t.unobserve_entered&&se(e,s)},he=(e,t)=>{!e||(e.loadingCount+=t)},$t=e=>{!e||(e.toLoadCount-=1)},Ge=(e,t)=>{!e||(e.toLoadCount=t)},zt=e=>e.loadingCount>0,Nt=e=>e.toLoadCount>0,We=e=>{let t=[];for(let s=0,r;r=e.children[s];s+=1)r.tagName==="SOURCE"&&t.push(r);return t},ge=(e,t)=>{const s=e.parentNode;if(!s||s.tagName!=="PICTURE")return;We(s).forEach(t)},Je=(e,t)=>{We(e).forEach(t)},re=[I],Ze=[I,Pe],J=[I,ie,le],Ke=[Ve],oe=e=>!!e[K],Qe=e=>e[K],Xe=e=>delete e[K],B=(e,t)=>{if(oe(e))return;const s={};t.forEach(r=>{s[r]=e.getAttribute(r)}),e[K]=s},Ot=e=>{oe(e)||(e[K]={backgroundImage:e.style.backgroundImage})},Mt=(e,t,s)=>{if(!s){e.removeAttribute(t);return}e.setAttribute(t,s)},M=(e,t)=>{if(!oe(e))return;const s=Qe(e);t.forEach(r=>{Mt(e,r,s[r])})},Dt=e=>{if(!oe(e))return;const t=Qe(e);e.style.backgroundImage=t.backgroundImage},Ye=(e,t,s)=>{U(e,t.class_applied),D(e,qe),s&&(t.unobserve_completed&&se(e,t),O(t.callback_applied,e,s))},et=(e,t,s)=>{U(e,t.class_loading),D(e,ce),s&&(he(s,1),O(t.callback_loading,e,s))},z=(e,t,s)=>{!s||e.setAttribute(t,s)},Se=(e,t)=>{z(e,le,v(e,t.data_sizes)),z(e,ie,v(e,t.data_srcset)),z(e,I,v(e,t.data_src))},Tt=(e,t)=>{ge(e,s=>{B(s,J),Se(s,t)}),B(e,J),Se(e,t)},Ft=(e,t)=>{B(e,re),z(e,I,v(e,t.data_src))},Pt=(e,t)=>{Je(e,s=>{B(s,re),z(s,I,v(s,t.data_src))}),B(e,Ze),z(e,Pe,v(e,t.data_poster)),z(e,I,v(e,t.data_src)),e.load()},Vt=(e,t)=>{B(e,Ke),z(e,Ve,v(e,t.data_src))},Rt=(e,t,s)=>{const r=v(e,t.data_bg),o=v(e,t.data_bg_hidpi),l=Te&&o?o:r;!l||(e.style.backgroundImage=`url("${l}")`,je(e).setAttribute(I,l),et(e,t,s))},qt=(e,t,s)=>{const r=v(e,t.data_bg_multi),o=v(e,t.data_bg_multi_hidpi),l=Te&&o?o:r;!l||(e.style.backgroundImage=l,Ye(e,t,s))},Bt=(e,t,s)=>{const r=v(e,t.data_bg_set);if(!r)return;const o=r.split("|");let l=o.map(a=>`image-set(${a})`);e.style.backgroundImage=l.join(),e.style.backgroundImage===""&&(l=o.map(a=>`-webkit-image-set(${a})`),e.style.backgroundImage=l.join()),Ye(e,t,s)},tt={IMG:Tt,IFRAME:Ft,VIDEO:Pt,OBJECT:Vt},Ht=(e,t)=>{const s=tt[e.tagName];!s||s(e,t)},Ut=(e,t,s)=>{const r=tt[e.tagName];!r||(r(e,t),et(e,t,s))},jt=["IMG","IFRAME","VIDEO","OBJECT"],Gt=e=>jt.indexOf(e.tagName)>-1,st=(e,t)=>{t&&!zt(t)&&!Nt(t)&&O(e.callback_finish,t)},xe=(e,t,s)=>{e.addEventListener(t,s),e.llEvLisnrs[t]=s},Wt=(e,t,s)=>{e.removeEventListener(t,s)},fe=e=>!!e.llEvLisnrs,Jt=(e,t,s)=>{fe(e)||(e.llEvLisnrs={});const r=e.tagName==="VIDEO"?"loadeddata":"load";xe(e,r,t),xe(e,"error",s)},ae=e=>{if(!fe(e))return;const t=e.llEvLisnrs;for(let s in t){const r=t[s];Wt(e,s,r)}delete e.llEvLisnrs},rt=(e,t,s)=>{Ct(e),he(s,-1),$t(s),S(e,t.class_loading),t.unobserve_completed&&se(e,s)},Zt=(e,t,s,r)=>{const o=pe(t);rt(t,s,r),U(t,s.class_loaded),D(t,Re),O(s.callback_loaded,t,r),o||st(s,r)},Kt=(e,t,s,r)=>{const o=pe(t);rt(t,s,r),U(t,s.class_error),D(t,de),O(s.callback_error,t,r),s.restore_on_error&&M(t,J),o||st(s,r)},be=(e,t,s)=>{const r=je(e)||e;if(fe(r))return;Jt(r,a=>{Zt(a,e,t,s),ae(r)},a=>{Kt(a,e,t,s),ae(r)})},Qt=(e,t,s)=>{It(e),be(e,t,s),Ot(e),Rt(e,t,s),qt(e,t,s),Bt(e,t,s)},Xt=(e,t,s)=>{be(e,t,s),Ut(e,t,s)},ve=(e,t,s)=>{Gt(e)?Xt(e,t,s):Qt(e,t,s)},Yt=(e,t,s)=>{e.setAttribute("loading","lazy"),be(e,t,s),Ht(e,t),D(e,Be)},Ee=e=>{e.removeAttribute(I),e.removeAttribute(ie),e.removeAttribute(le)},es=e=>{ge(e,t=>{Ee(t)}),Ee(e)},ot=e=>{ge(e,t=>{M(t,J)}),M(e,J)},ts=e=>{Je(e,t=>{M(t,re)}),M(e,Ze),e.load()},ss=e=>{M(e,re)},rs=e=>{M(e,Ke)},os={IMG:ot,IFRAME:ss,VIDEO:ts,OBJECT:rs},ns=e=>{const t=os[e.tagName];if(!t){Dt(e);return}t(e)},as=(e,t)=>{ue(e)||pe(e)||(S(e,t.class_entered),S(e,t.class_exited),S(e,t.class_applied),S(e,t.class_loading),S(e,t.class_loaded),S(e,t.class_error))},is=(e,t)=>{ns(e),as(e,t),te(e),Xe(e)},ls=(e,t,s,r)=>{!s.cancel_on_exit||!kt(e)||e.tagName==="IMG"&&(ae(e),es(e),ot(e),S(e,s.class_loading),he(r,-1),te(e),O(s.callback_cancel,e,t,r))},cs=(e,t,s,r)=>{const o=Et(e);D(e,wt),U(e,s.class_entered),S(e,s.class_exited),Lt(e,s,r),O(s.callback_enter,e,t,r),!o&&ve(e,s,r)},ds=(e,t,s,r)=>{ue(e)||(U(e,s.class_exited),ls(e,t,s,r),O(s.callback_exit,e,t,r))},us=["IMG","IFRAME","VIDEO"],nt=e=>e.use_native&&"loading"in HTMLImageElement.prototype,ps=(e,t,s)=>{e.forEach(r=>{us.indexOf(r.tagName)!==-1&&Yt(r,t,s)}),Ge(s,0)},hs=e=>e.isIntersecting||e.intersectionRatio>0,gs=e=>({root:e.container===document?null:e.container,rootMargin:e.thresholds||e.threshold+"px"}),fs=(e,t,s)=>{e.forEach(r=>hs(r)?cs(r.target,r,t,s):ds(r.target,r,t,s))},bs=(e,t)=>{t.forEach(s=>{e.observe(s)})},vs=(e,t)=>{At(e),bs(e,t)},ms=(e,t)=>{!Me||nt(e)||(t._observer=new IntersectionObserver(s=>{fs(s,e,t)},gs(e)))},at=e=>Array.prototype.slice.call(e),ee=e=>e.container.querySelectorAll(e.elements_selector),_s=e=>at(e).filter(ue),ws=e=>St(e),ys=e=>at(e).filter(ws),Ie=(e,t)=>_s(e||ee(t)),ks=(e,t)=>{ys(ee(e)).forEach(r=>{S(r,e.class_error),te(r)}),t.update()},Ss=(e,t)=>{!N||(t._onlineHandler=()=>{ks(e,t)},window.addEventListener("online",t._onlineHandler))},xs=e=>{!N||window.removeEventListener("online",e._onlineHandler)},X=function(e,t){const s=Fe(e);this._settings=s,this.loadingCount=0,ms(s,this),Ss(s,this),this.update(t)};X.prototype={update:function(e){const t=this._settings,s=Ie(e,t);if(Ge(this,s.length),Oe||!Me){this.loadAll(s);return}if(nt(t)){ps(s,t,this);return}vs(this._observer,s)},destroy:function(){this._observer&&this._observer.disconnect(),xs(this),ee(this._settings).forEach(e=>{Xe(e)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(e){const t=this._settings;Ie(e,t).forEach(r=>{se(r,this),ve(r,t,this)})},restoreAll:function(){const e=this._settings;ee(e).forEach(t=>{is(t,e)})}};X.load=(e,t)=>{const s=Fe(t);ve(e,s)};X.resetStatus=e=>{te(e)};N&&_t(X,window.lazyLoadOptions);const R="netless-app-slide",it="https://convertcdn.netless.link/dynamicConvert";function W(){}const Es=`.netless-app-slide-tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.netless-app-slide-tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.netless-app-slide-content{position:relative;height:100%;overflow:hidden}.netless-app-slide-slide{width:100%;height:100%;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-preview-mask{display:none;position:absolute;z-index:10200;top:0;left:0;width:100%;height:100%}.netless-app-slide-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:10300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:rgba(237,237,240,.9);box-shadow:inset -1px 0 #0000001c;transition:transform .4s;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-preview-active .netless-app-slide-preview-mask{display:block}.netless-app-slide-preview-active .netless-app-slide-preview{transform:translate(0)}.netless-app-slide-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:transparent;outline:none;border:7px solid transparent;border-radius:4px;transition:border-color .3s;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-preview-page:hover,.netless-app-slide-preview-page.netless-app-slide-preview-page-active{border-color:#444e601a}.netless-app-slide-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-slide-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.netless-app-slide-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:rgba(249,249,252,.9);transition:opacity .4s}.netless-app-slide-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:transparent;transition:background .4s;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-slide-footer-btn:hover{background:transparent!important}}.netless-app-slide-footer-btn>svg{width:100%;height:100%}.netless-app-slide-footer-btn>svg:nth-of-type(2){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-slide-footer-btn~.netless-app-slide-footer-btn{margin-left:15px}.netless-app-slide-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-slide-page-number{display:flex;align-items:center;height:26px;margin-left:auto;font-size:13px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;word-break:keep-all;font-variant-numeric:tabular-nums}.netless-app-slide-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 .5em 0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";background:transparent;transition:background .4s;font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-page-number-input:hover,.netless-app-slide-page-number-input:focus,.netless-app-slide-page-number-input:active{user-select:text;background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-slide-readonly .netless-app-slide-footer-btn{cursor:not-allowed}.netless-app-slide-readonly .netless-app-slide-footer-btn:hover{background:transparent}.netless-app-slide-readonly .netless-app-slide-page-number-input{cursor:not-allowed}.netless-app-slide-readonly .netless-app-slide-page-number-input:hover,.netless-app-slide-readonly .netless-app-slide-page-number-input:focus,.netless-app-slide-readonly .netless-app-slide-page-number-input:active{background:transparent;box-shadow:none}.netless-app-slide-readonly .netless-app-slide-page-number-input:disabled{color:inherit}.netless-app-slide-readonly.netless-app-slide-float-footer{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input:active,.telebox-color-scheme-dark .netless-app-slide-page-number-input:focus,.telebox-color-scheme-dark .netless-app-slide-page-number-input:hover{color:currentColor;background:#25282e}.telebox-color-scheme-dark .netless-app-slide-footer{border-top:none}.telebox-color-scheme-dark .netless-app-slide-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-slide-preview{background:rgba(50,50,50,.9)}
2
+ `;function Is(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-sidebar`),s.setAttribute("viewBox","0 0 64 64");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z"),s.appendChild(r),s}function Cs(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-arrow-left`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z"),s.appendChild(r),s}function As(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-play`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M418.158 257.419L174.663 413.33c-6.017 3.919-15.708 3.772-21.291-.29-2.791-2.018-4.295-4.483-4.295-7.084V94.109c0-5.65 6.883-10.289 15.271-10.289 4.298 0 8.391 1.307 11.181 3.332l242.629 155.484c6.016 3.917 6.451 10.292.649 14.491-.216.154-.432.154-.649.292zM170.621 391.288l223.116-141.301L170.71 107.753l-.089 283.535z"),s.appendChild(r),s}function Ls(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-pause`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M312.491 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261zM165.257 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261z"),s.appendChild(r),s}function $s(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-arrow-right`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z"),s.appendChild(r),s}function g(e){return document.createElement(e)}function q(e,t){return e.appendChild(t)}function f(e){return`${R}-${e}`}function m(e,t){e.className=f(t)}function zs(e){return e.endsWith("/")?e.slice(0,-1):e}async function Ns({taskId:e,url:t}){const s=lt(e,t),r=`${s}/preview/1.png`,o=`${s}/jsonOutput/slide-1.json`,l=new Promise(i=>{const n=new Image;n.onload=()=>i(n),n.onerror=()=>i(null),n.src=r}),a=fetch(o).then(i=>i.json());return{preview:await l,slide:await a}}function lt(e,t){return`${zs(t||it)}/${e}`}function Os(){let e=W;const t=p=>{e=p};let s=!1,r=!1,o=!1,l=[],a=0;const i=f("readonly"),n=f("preview-active"),d=g("div");m(d,"content");const u=g("div");m(u,"preview-mask"),u.onclick=function(w){r||w.target===u&&b(!1)},q(d,u);const h=g("div");m(h,"preview"),h.classList.add(f("tele-fancy-scrollbar")),h.onclick=function(w){var L;if(r)return;const E=(L=w.target.dataset)==null?void 0:L.pageIndex;E&&(w.preventDefault(),w.stopPropagation(),w.stopImmediatePropagation(),e(Number(E)),b(!1))},q(d,h);const k=new X({container:h,elements_selector:`.${f("preview-page>img")}`});function x(p){r!==p&&(r=p,d.classList.toggle(i,r))}function b(p){o!==p&&(o=p,d.classList.toggle(n,o))}function T(p){if(l!==p){l=p;const w=f("preview-page"),E=f("preview-page-name");l.forEach((L,F)=>{const j=String(F),c=g("a");c.className=w+" "+f(`preview-page-${F}`),c.href="#",c.dataset.pageIndex=j;const P=g("span");P.className=E,P.textContent=String(F+1),P.dataset.pageIndex=j;const V=g("img");V.width=L.width,V.height=L.height,V.src=L.thumbnail,V.alt=`page-${F}`,V.dataset.pageIndex=j,q(c,V),q(c,P),q(h,c)}),s||k.update()}}function C(p,w=!1){if(w||a!==p){a=p;const E=h.querySelector(`.${f(`preview-page-${a}`)}`);E&&h.scrollTo({top:E.offsetTop-16})}}function A(){s=!0,k.destroy()}function y(){return o}return{$content:d,$preview:h,set_readonly:x,set_active:b,get_active:y,set_pages:T,on_new_page_index:t,set_page_index:C,destroy:A}}function Ms(){let e=W;const t=c=>{e=c};let s=W;const r=c=>{s=c};let o=W;const l=c=>{o=c};let a=!1,i=!1,n=0,d=0;const u=g("div");m(u,"footer");const h=g("button");m(h,"btn-sidebar"),h.classList.add(f("footer-btn")),h.appendChild(Is(R)),h.onclick=function(){a||s()},h.style.display="none",u.appendChild(h);const k=g("div");m(k,"page-jumps");const x=g("button");m(x,"btn-page-back"),x.classList.add(f("footer-btn")),x.appendChild(Cs(R)),x.onclick=function(){a||e(n-1)},k.appendChild(x);const b=g("button");m(b,"btn-page-play"),b.classList.add(f("footer-btn")),b.appendChild(As(R)),b.appendChild(Ls(R));let T=0;b.onclick=function(){a||(b.classList.add(f("footer-btn-playing")),o(),clearTimeout(T),T=setTimeout(()=>{b.classList.remove(f("footer-btn-playing"))},500))},k.appendChild(b);const C=g("button");m(C,"btn-page-next"),C.classList.add(f("footer-btn")),C.appendChild($s(R)),C.onclick=function(){a||e(n+1)},k.appendChild(C);const A=g("div");m(A,"page-number");const y=g("input");m(y,"page-number-input"),y.value=String(n+1),y.onchange=function(){a||y.value&&e(Number(y.value)-1)};const p=g("span");m(p,"total-page"),p.textContent=" / ",A.appendChild(y),A.appendChild(p),u.appendChild(k),u.appendChild(A);const w=f("readonly");function E(c){a!==c&&(a=c,u.classList.toggle(w,a),y.disabled=a)}function L(c){i!==c&&(i=c,h.style.display=i?"":"none")}function F(c,P=!1){(P||n!==c)&&(n=c,y.value=String(n+1))}function j(c){d!==c&&(d=c,p.textContent=` / ${d}`)}return{$footer:u,$pageNumberInput:y,set_readonly:E,set_sidebar:L,set_page_index:F,set_page_count:j,on_new_page_index:t,on_toggle_preview:r,on_play:l}}function Ds(){const e=g("div");return m(e,"slide"),e}function Ts(e){if(typeof document<"u"){const t=()=>e(document.visibilityState==="visible");return document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)}return W}class H{constructor(t){this.sideEffect=new Ne,this.$slide=Ds(),this.sidebar=Os(),this.footer=Ms(),this._ready=!1,this._slideCount=0,this._destroyed=!1,this._isFrozen=!1,this.$content=this.sidebar.$content,this.$footer=this.footer.$footer,q(this.$content,this.$slide);let s;this._readyPromise=new Promise(i=>{s=i});const r=i=>{this._ready&&i>=0&&i<this._slideCount?this.slide.renderSlide(i+1):this.setPage(this.slide.slideState.currentSlideIndex)};this.sidebar.on_new_page_index(r),this.footer.on_new_page_index(r),this.footer.on_toggle_preview(()=>{this.sidebar.set_active(!this.sidebar.get_active())}),this.footer.on_play(()=>{this.slide.nextStep()}),this.sideEffect.addDisposer(this.sidebar.destroy),this.sideEffect.addDisposer(()=>this.slide.destroy()),this.sideEffect.addDisposer(()=>{this.$content.parentElement&&this.$content.remove(),this.$footer.parentElement&&this.$footer.remove(),this.$slide.parentElement&&this.$slide.remove()});let o=!1;this.sideEffect.addDisposer(Ts(i=>{this._destroyed||(i?o||this.unfreeze():(o=this._isFrozen,this.freeze()))})),this.slide=new dt.Slide({anchor:this.$slide,resize:!0,mode:"local",interactive:!0,enableGlobalClick:!0,...t}),this.slide.setResource(t.taskId,t.url||it);let l;this._infoPromise=new Promise(i=>{l=i}),this.slide.on("slideChange",i=>{this._destroyed||this.setPage(i)}),this.slide.on("renderEnd",()=>{this._ready||setTimeout(()=>{this._ready=!0,s()},1e3)}),Ns(t).then(({preview:i,slide:n})=>{if(!this._destroyed){if(this._slideCount=n.slideCount,i){const{taskId:d,url:u}=t,{slideCount:h}=n,{width:k,height:x}=i,b=lt(d,u),T=Array.from({length:h},(C,A)=>({width:k,height:x,thumbnail:`${b}/preview/${A+1}.png`}));this.sidebar.set_pages(T),this.footer.set_sidebar(!0)}this.footer.set_page_count(n.slideCount),l(n)}}).catch(i=>{console.log("[Slide] fetch slide info error"),console.error(i)}),this.ready(()=>{this._isFrozen&&this.freeze()})}prepare(t){return this._infoPromise.then(t)}ready(t){return this._readyPromise.then(t)}destroy(){this._destroyed=!0,this.sideEffect.flushAll()}setReadonly(t){this.slide.setInteractive(!t),this.sidebar.set_readonly(t),this.footer.set_readonly(t)}setPage(t){this.sidebar.set_page_index(t-1,!0),this.footer.set_page_index(t-1,!0)}freeze(){this._destroyed||(this._isFrozen=!0,this._ready&&this.slide.frozen())}unfreeze(){this._destroyed||(this._isFrozen=!1,this._ready&&this.slide.release())}}H.styles=Es;class Fs{constructor(){this.threshold=2,this._map=new Map,this._queue=[]}set(t,s){return this._map.set(t,s),this._queue.includes(t)||this._queue.unshift(t),this._refresh(),()=>{this.delete(t)}}delete(t){this._map.delete(t),this._queue=this._queue.filter(s=>s!==t),this._refresh()}focus(t){const s=this._queue.indexOf(t);s>=0&&this._queue.splice(s,1),this._queue.unshift(t),this._refresh()}_refresh(){let t;this._queue.forEach((s,r)=>{!(t=this._map.get(s))||(r<this.threshold?t.unfreeze():t.freeze())})}}const me=new Fs,Ps=function(t){t.on("focus",s=>{me.focus(s.appId)})},Vs="0.3.0-canary.6",Rs={kind:"Slide",setup(e){var l,a;if(console.log("[Slide] setup @ 0.3.0-canary.6"),!e.storage.state.taskId)throw new Error("[Slide] no taskId");const t=e.getAppOptions()||{},s=Hs(e);s.info("[Slide] setup @ 0.3.0-canary.6");const r=new Ne,o=new H({interactive:!0,mode:"interactive",resize:!0,enableGlobalClick:!0,timestamp:Bs(e),logger:s,renderOptions:{minFPS:t.minFPS||25,maxFPS:t.maxFPS||30,autoFPS:(l=t.autoFPS)!=null?l:!0,autoResolution:(a=t.autoResolution)!=null?a:!0,resolution:t.resolution,maxResolutionLevel:t.maxResolutionLevel,transactionBgColor:t.transactionBgColor||ct(e.box.$content)},taskId:e.storage.state.taskId,url:e.storage.state.url});o.context=e,r.addDisposer(me.set(e.appId,o)),e.box.mountStyles(H.styles),e.box.mountStage(o.$slide),e.box.mountFooter(o.$footer),e.box.mountContent(o.$content),r.addDisposer(()=>o.destroy()),Gs({context:e,viewer:o,sideEffect:r,logger:s}),js(e,()=>{s.info("[Slide] destroy"),r.flushAll()})}};function qs(e){const{container:t}=e;t.style.cssText="display:flex;flex-direction:column";const s=new H(e);return t.appendChild(document.createElement("style")).textContent=H.styles,t.appendChild(s.$content),t.appendChild(s.$footer),s.prepare(()=>s.slide.renderSlide(1)),s}function Bs(e){const t=e.room,s=e.displayer;return t?()=>t.calibrationTimestamp:s?()=>s.beginTimestamp+s.progressTime:()=>Date.now()}function Hs(e){return e.displayer.logger}function ct(e){try{let t=window.getComputedStyle(e).backgroundColor;if(t!=="rgba(0, 0, 0, 0)"&&t!=="transparent")return t=Us(t),console.log("[Slide] guess bg color:",t),t;if(e.parentElement)return ct(e.parentElement)}catch{}return"#ffffff"}function Us(e){const t=Ce.exports.get(e);if(t&&t.model==="rgb"){const s=t.value,o=(((Math.round(s[0])&255)<<16)+((Math.round(s[1])&255)<<8)+(Math.round(s[2])&255)).toString(16);return"#"+"000000".substring(o.length)+o}else return e}function js(e,t){e.emitter.on("destroy",t)}function Gs({context:e,viewer:t,sideEffect:s,logger:r}){const o=r.info.bind(r);let l=null;t.prepare(({width:n,height:d,slideCount:u})=>{e.destroyed||(n&&e.box.setStageRatio(d/n),l=e.createWhiteBoardView({size:u}),l.setBaseRect({width:n,height:d}),i())});const{slide:a}=t;function i(){if(e.storage.state.state)o("[Slide] restore",{...e.storage.state.state}),a.setSlideState(e.storage.state.state);else if(e.isAddApp)o("[Slide] kick start"),a.renderSlide(1);else{o("[Slide] wait for restore");const n=s.add(()=>{const u=setInterval(()=>{e.storage.state.state||(o("[Slide] timeout"),a.renderSlide(1))},15e3);return()=>clearInterval(u)}),d=s.addDisposer(e.storage.addStateChangedListener(()=>{e.storage.state.state&&(o("[Slide] restore",{...e.storage.state.state}),a.setSlideState(e.storage.state.state),s.flush(d),s.flush(n))}))}}a.on("stateChange",()=>{e.isWritable&&(o("[Slide] save state",{...a.slideState}),e.storage.setState({state:a.slideState}))}),a.on("syncDispatch",n=>{e.isWritable&&(o("[Slide] dispatch",{...n}),e.dispatchMagixEvent("syncDispatch",n))}),s.addDisposer(e.addMagixEventListener("syncDispatch",({payload:n})=>{o("[Slide] receive",{...n}),a.emit("syncReceive",n)},{fireSelfEventAfterCommit:!0})),a.on("slideChange",n=>{e.isWritable&&l&&(o("[Slide] page to",n),l.jumpPage(n-1))}),t.setReadonly(!e.isWritable),s.addDisposer(e.emitter.on("writableChange",n=>{t.setReadonly(!n)}))}exports.SlideViewer=H;exports.addHooks=Ps;exports.default=Rs;exports.previewSlide=qs;exports.refrigerator=me;exports.version=Vs;
3
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sources":["../../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js","../../../node_modules/.pnpm/is-arrayish@0.3.2/node_modules/is-arrayish/index.js","../../../node_modules/.pnpm/simple-swizzle@0.2.2/node_modules/simple-swizzle/index.js","../../../node_modules/.pnpm/color-string@1.9.1/node_modules/color-string/index.js","../../../node_modules/.pnpm/side-effect-manager@1.1.1/node_modules/side-effect-manager/dist/side-effect-manager.es.js","../../../node_modules/.pnpm/vanilla-lazyload@17.8.3/node_modules/vanilla-lazyload/dist/lazyload.esm.js","../src/constants.ts","../src/utils.ts","../src/icons/sidebar.ts","../src/icons/arrow-left.ts","../src/icons/play.ts","../src/icons/pause.ts","../src/icons/arrow-right.ts","../src/SlideViewer.ts","../src/Refrigerator.ts","../src/index.ts"],"sourcesContent":["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const s=\"!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",e=s.length,t=Array(20),i=()=>{for(let i=0;i<20;i++)t[i]=s.charAt(Math.random()*e);return t.join(\"\")};function r(s){try{return s()}catch(e){console.error(e)}}class n{constructor(){this.disposers=new Map}addDisposer(s,e=this.genUID()){return this.flush(e),this.disposers.set(e,Array.isArray(s)?()=>s.forEach(r):s),e}add(s,e=this.genUID()){const t=s();return t?this.addDisposer(t,e):e}addEventListener(s,e,t,i,r=this.genUID()){return s.addEventListener(e,t,i),this.addDisposer((()=>s.removeEventListener(e,t,i)),r),r}setTimeout(s,e,t=this.genUID()){const i=window.setTimeout((()=>{this.remove(t),s()}),e);return this.addDisposer((()=>window.clearTimeout(i)),t)}setInterval(s,e,t=this.genUID()){const i=window.setInterval(s,e);return this.addDisposer((()=>window.clearInterval(i)),t)}remove(s){const e=this.disposers.get(s);return this.disposers.delete(s),e}flush(s){const e=this.remove(s);if(e)try{e()}catch(t){console.error(t)}}flushAll(){this.disposers.forEach(r),this.disposers.clear()}genUID(){let s;do{s=i()}while(this.disposers.has(s));return s}}class h{constructor(){this.finished=Promise.resolve(),this.disposers=new Map,this._nextTask=new Map,this._isRunning=new Set}add(s,e=this.genUID()){return this._isRunning.has(e)?this._nextTask.set(e,(()=>this._add(s,e))):this._add(s,e),e}async _add(s,e){this._startTask(e);const t=this.remove(e);if(t)try{await t()}catch(n){console.error(n)}try{const t=await s();t&&this.disposers.set(e,Array.isArray(t)?async()=>Promise.all(t.map(r)):t)}catch(n){console.error(n)}this._endTask(e);const i=this._nextTask.get(e);i&&(this._nextTask.delete(e),i())}addDisposer(s,e=this.genUID()){return this.add((()=>s),e)}remove(s){const e=this.disposers.get(s);return this.disposers.delete(s),e}flush(s){this._isRunning.has(s)?this._nextTask.set(s,(()=>this._flush(s))):this._flush(s)}async _flush(s){const e=this.remove(s);if(e){this._startTask(s);try{await e()}catch(i){console.error(i)}this._endTask(s)}const t=this._nextTask.get(s);t&&(this._nextTask.delete(s),t())}flushAll(){this.disposers.forEach(((s,e)=>this.flush(e)))}genUID(){let s;do{s=i()}while(this.disposers.has(s));return s}_startTask(s){this._isRunning.add(s),this._resolveFinished||(this.finished=new Promise((s=>{this._resolveFinished=s})))}_endTask(s){this._isRunning.delete(s),this._resolveFinished&&this._isRunning.size<=0&&this._nextTask.size<=0&&(this._resolveFinished(),this._resolveFinished=void 0)}}export{h as AsyncSideEffectManager,n as SideEffectManager,i as genUID};\n//# sourceMappingURL=side-effect-manager.es.js.map\n","const runningOnBrowser = typeof window !== \"undefined\";\n\nconst isBot =\n (runningOnBrowser && !(\"onscroll\" in window)) ||\n (typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));\n\nconst supportsIntersectionObserver = runningOnBrowser && \"IntersectionObserver\" in window;\n\nconst supportsClassList = runningOnBrowser && \"classList\" in document.createElement(\"p\");\n\nconst isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\n\nconst 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_bg_set: \"bg-set\",\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 restore_on_error: false,\n};\n\nconst getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\n\n/* Creates instance and notifies it through the window element */\nconst createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n // Works in modern browsers\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n // Works in Internet Explorer (all versions)\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.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) */\nconst 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 (let i = 0, optionsItem; (optionsItem = options[i]); i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\n\nconst SRC = \"src\";\nconst SRCSET = \"srcset\";\nconst SIZES = \"sizes\";\nconst POSTER = \"poster\";\nconst ORIGINALS = \"llOriginalAttrs\";\nconst DATA = \"data\";\n\nconst statusLoading = \"loading\";\nconst statusLoaded = \"loaded\";\nconst statusApplied = \"applied\";\nconst statusEntered = \"entered\";\nconst statusError = \"error\";\nconst statusNative = \"native\";\n\nconst dataPrefix = \"data-\";\nconst statusDataName = \"ll-status\";\n\nconst getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\n\nconst 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\nconst getStatus = (element) => getData(element, statusDataName);\nconst setStatus = (element, status) => setData(element, statusDataName, status);\nconst resetStatus = (element) => setStatus(element, null);\n\nconst hasEmptyStatus = (element) => getStatus(element) === null;\nconst hasStatusLoading = (element) => getStatus(element) === statusLoading;\nconst hasStatusError = (element) => getStatus(element) === statusError;\nconst hasStatusNative = (element) => getStatus(element) === statusNative;\n\nconst statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nconst hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\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 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 addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\n\nconst deleteTempImage = (element) => {\n delete element.llTempImage;\n};\n\nconst getTempImage = (element) => element.llTempImage;\n\nconst unobserve = (element, instance) => {\n if (!instance) return;\n const observer = instance._observer;\n if (!observer) return;\n observer.unobserve(element);\n};\n\nconst resetObserver = (observer) => {\n observer.disconnect();\n};\n\nconst unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered) unobserve(element, instance);\n};\n\nconst updateLoadingCount = (instance, delta) => {\n if (!instance) return;\n instance.loadingCount += delta;\n};\n\nconst decreaseToLoadCount = (instance) => {\n if (!instance) return;\n instance.toLoadCount -= 1;\n};\n\nconst setToLoadCount = (instance, value) => {\n if (!instance) return;\n instance.toLoadCount = value;\n};\n\nconst isSomethingLoading = (instance) => instance.loadingCount > 0;\n\nconst haveElementsToLoad = (instance) => instance.toLoadCount > 0;\n\nconst getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let 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\nconst forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\n\nconst forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\n\nconst attrsSrc = [SRC];\nconst attrsSrcPoster = [SRC, POSTER];\nconst attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nconst attrsData = [DATA];\n\nconst hasOriginalAttrs = (element) => !!element[ORIGINALS];\nconst getOriginalAttrs = (element) => element[ORIGINALS];\nconst deleteOriginalAttrs = (element) => delete element[ORIGINALS];\n\n// ## SAVE ##\n\nconst setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\n\nconst saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\n\n// ## RESTORE ##\n\nconst setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\n\nconst restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\n\nconst manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n // Instance is not provided when loading is called from static class\n if (!instance) return;\n if (settings.unobserve_completed) {\n // Unobserve now because we can't do it on load\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\n\nconst manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n // Instance is not provided when loading is called from static class\n if (!instance) return;\n updateLoadingCount(instance, +1);\n safeCallback(settings.callback_loading, element, instance);\n};\n\nconst setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\n\nconst 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\nconst setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\n\nconst setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\n\nconst setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\n\nconst setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\n};\n\nconst setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\n\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\nconst setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\n\nconst setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n // Temporary fix for Chromeium with the -webkit- prefix\n if (element.style.backgroundImage === '') {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\n\nconst setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\n};\n\nconst setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\n\nconst setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\n\nconst elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\", \"OBJECT\"];\nconst hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\n\nconst checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\n\nconst addEventListener = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\n\nconst removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\n\nconst hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\n\nconst addEventListeners = (element, loadHandler, errorHandler) => {\n if (!hasEventListeners(element)) element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener(element, loadEventName, loadHandler);\n addEventListener(element, \"error\", errorHandler);\n};\n\nconst removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\n\nconst doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\n\nconst loadHandler = (event, element, settings, instance) => {\n const 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\nconst errorHandler = (event, element, settings, instance) => {\n const 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 (settings.restore_on_error) restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\n if (!goingNative) checkFinish(settings, instance);\n};\n\nconst addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n // This happens when loading is retried twice\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\n\nconst 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 setImgsetBackground(element, settings, instance);\n};\n\nconst loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\n\nconst load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\n\nconst loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\n\nconst removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\n\nconst resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\n\nconst restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\n\nconst restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\n\nconst restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\n\nconst restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\n\nconst restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\n};\n\nconst restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\n\nconst resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\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\nconst restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\n\nconst 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 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\nconst onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element); /* Save status \n before setting it, to prevent loading it again. Fixes #526. */\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\nconst onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\n\nconst tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\n\nconst shouldUseNative = (settings) =>\n settings.use_native && \"loading\" in HTMLImageElement.prototype;\n\nconst loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\n\nconst isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\n\nconst getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\n\nconst intersectionHandler = (entries, settings, instance) => {\n entries.forEach((entry) =>\n isIntersecting(entry)\n ? onEnter(entry.target, entry, settings, instance)\n : onExit(entry.target, entry, settings, instance)\n );\n};\n\nconst observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\n\nconst updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\n\nconst setObserver = (settings, instance) => {\n if (!supportsIntersectionObserver || shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\n\nconst toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\n\nconst queryElements = (settings) =>\n settings.container.querySelectorAll(settings.elements_selector);\n\nconst excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\n\nconst hasError = (element) => hasStatusError(element);\nconst filterErrorElements = (elements) => toArray(elements).filter(hasError);\n\nconst getElementsToLoad = (elements, settings) =>\n excludeManagedElements(elements || queryElements(settings));\n\nconst retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\n\nconst setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\n\nconst resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\n};\n\nconst LazyLoad = function (customSettings, elements) {\n const 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\nLazyLoad.prototype = {\n update: function (givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n\n if (isBot || !supportsIntersectionObserver) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n\n updateObserver(this._observer, elementsToLoad);\n },\n\n destroy: function () {\n // Observer\n if (this._observer) {\n this._observer.disconnect();\n }\n // Clean handlers\n resetOnlineCheck(this);\n // Clean custom attributes on elements\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n // Delete all internal props\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n\n loadAll: function (elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\n\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\n\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\n\n// Automatic instances creation if required (useful for async script loading)\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\nexport { LazyLoad as default };\n","export const namespace = \"netless-app-slide\";\n\nexport const DefaultUrl = \"https://convertcdn.netless.link/dynamicConvert\";\n","export function noop() {\n return;\n}\n","export function sidebarSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function arrowLeftSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function playSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-play`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M418.158 257.419L174.663 413.33c-6.017 3.919-15.708 3.772-21.291-.29-2.791-2.018-4.295-4.483-4.295-7.084V94.109c0-5.65 6.883-10.289 15.271-10.289 4.298 0 8.391 1.307 11.181 3.332l242.629 155.484c6.016 3.917 6.451 10.292.649 14.491-.216.154-.432.154-.649.292zM170.621 391.288l223.116-141.301L170.71 107.753l-.089 283.535z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function pauseSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-pause`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M312.491 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261zM165.257 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","export function arrowRightSVG(namespace: string): SVGElement {\n const NS = \"http://www.w3.org/2000/svg\";\n\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\n \"d\",\n \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\"\n );\n\n $svg.appendChild($path);\n\n return $svg;\n}\n","import type { ISlideConfig } from \"@netless/slide\";\n\nimport { Slide } from \"@netless/slide\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport LazyLoad from \"vanilla-lazyload\";\n\nimport { DefaultUrl, namespace } from \"./constants\";\nimport { noop } from \"./utils\";\nimport styles from \"./style.scss?inline\";\n\nimport { sidebarSVG } from \"./icons/sidebar\";\nimport { arrowLeftSVG } from \"./icons/arrow-left\";\nimport { playSVG } from \"./icons/play\";\nimport { pauseSVG } from \"./icons/pause\";\nimport { arrowRightSVG } from \"./icons/arrow-right\";\n\nfunction h<K extends keyof HTMLElementTagNameMap>(tag: K) {\n return document.createElement(tag);\n}\n\nfunction append(parent: HTMLElement, child: HTMLElement) {\n return parent.appendChild(child);\n}\n\nfunction wrap_class(name: string) {\n return `${namespace}-${name}`;\n}\n\nfunction set_class(el: HTMLElement, name: string) {\n el.className = wrap_class(name);\n}\n\nfunction trim_slash(s: string) {\n return s.endsWith(\"/\") ? s.slice(0, -1) : s;\n}\n\ninterface SlideAttributes {\n taskId: string;\n url?: string;\n}\n\ninterface PreviewPage {\n width: number;\n height: number;\n thumbnail: string;\n}\n\nasync function fetch_slide_info({ taskId, url }: SlideAttributes) {\n const prefix = make_prefix(taskId, url);\n const imgSrc = `${prefix}/preview/1.png`;\n const jsonUrl = `${prefix}/jsonOutput/slide-1.json`;\n\n interface PreviewInfo {\n width: number;\n height: number;\n }\n const p1 = new Promise<PreviewInfo | null>(resolve => {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => resolve(null);\n image.src = imgSrc;\n });\n\n interface SlideInfo {\n width: number;\n height: number;\n slideCount: number;\n }\n const p2: Promise<SlideInfo> = fetch(jsonUrl).then(r => r.json());\n\n return { preview: await p1, slide: await p2 };\n}\n\nfunction make_prefix(taskId: string, url?: string) {\n return `${trim_slash(url || DefaultUrl)}/${taskId}`;\n}\n\nfunction create_sidebar() {\n type NewPageIndexCallback = (newPageIndex: number) => void;\n let new_page_index_callback: NewPageIndexCallback = noop;\n const on_new_page_index = (callback: NewPageIndexCallback) => {\n new_page_index_callback = callback;\n };\n\n let destroyed = false;\n let readonly = false;\n let active = false;\n let pages: PreviewPage[] = [];\n let page_index = 0;\n\n const class_readonly = wrap_class(\"readonly\");\n const class_preview_active = wrap_class(\"preview-active\");\n\n const $content = h(\"div\");\n set_class($content, \"content\");\n\n const $previewMask = h(\"div\");\n set_class($previewMask, \"preview-mask\");\n $previewMask.onclick = function on_click_preview_mask(ev) {\n if (readonly) return;\n if (ev.target !== $previewMask) return;\n set_active(false);\n };\n append($content, $previewMask);\n\n const $preview = h(\"div\");\n set_class($preview, \"preview\");\n $preview.classList.add(wrap_class(\"tele-fancy-scrollbar\"));\n $preview.onclick = function on_click_preview(ev) {\n if (readonly) return;\n const page_index = (ev.target as HTMLElement).dataset?.pageIndex;\n if (page_index) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n new_page_index_callback(Number(page_index));\n set_active(false);\n }\n };\n append($content, $preview);\n\n const lazyload = new LazyLoad({\n container: $preview,\n elements_selector: `.${wrap_class(\"preview-page>img\")}`,\n });\n\n function set_readonly(readonly_: boolean) {\n if (readonly !== readonly_) {\n readonly = readonly_;\n $content.classList.toggle(class_readonly, readonly);\n }\n }\n\n function set_active(active_: boolean) {\n if (active !== active_) {\n active = active_;\n $content.classList.toggle(class_preview_active, active);\n }\n }\n\n function set_pages(pages_: PreviewPage[]) {\n if (pages !== pages_) {\n pages = pages_;\n\n const page_class = wrap_class(\"preview-page\");\n const page_name_class = wrap_class(\"preview-page-name\");\n\n pages.forEach((page, i) => {\n const pageIndex = String(i);\n\n const $page = h(\"a\");\n $page.className = page_class + \" \" + wrap_class(`preview-page-${i}`);\n $page.href = \"#\";\n $page.dataset.pageIndex = pageIndex;\n\n const $name = h(\"span\");\n $name.className = page_name_class;\n $name.textContent = String(i + 1);\n $name.dataset.pageIndex = pageIndex;\n\n const $img = h(\"img\");\n $img.width = page.width;\n $img.height = page.height;\n $img.src = page.thumbnail;\n $img.alt = `page-${i}`;\n $img.dataset.pageIndex = pageIndex;\n\n append($page, $img);\n append($page, $name);\n append($preview, $page);\n });\n\n if (!destroyed) {\n lazyload.update();\n }\n }\n }\n\n function set_page_index(page_index_: number, force = false) {\n if (force || page_index !== page_index_) {\n page_index = page_index_;\n const $page = $preview.querySelector<HTMLElement>(\n `.${wrap_class(`preview-page-${page_index}`)}`\n );\n if ($page) {\n $preview.scrollTo({ top: $page.offsetTop - 16 });\n }\n }\n }\n\n function destroy() {\n destroyed = true;\n lazyload.destroy();\n }\n\n function get_active() {\n return active;\n }\n\n return {\n $content,\n $preview,\n set_readonly,\n set_active,\n get_active,\n set_pages,\n on_new_page_index,\n set_page_index,\n destroy,\n };\n}\n\nfunction create_footer() {\n type NewPageIndexCallback = (newPageIndex: number) => void;\n let new_page_index_callback: NewPageIndexCallback = noop;\n const on_new_page_index = (callback: NewPageIndexCallback) => {\n new_page_index_callback = callback;\n };\n\n let toggle_preview_callback: () => void = noop;\n const on_toggle_preview = (callback: () => void) => {\n toggle_preview_callback = callback;\n };\n\n let play_callback: () => void = noop;\n const on_play = (callback: () => void) => {\n play_callback = callback;\n };\n\n let readonly = false;\n let sidebar = false;\n let page_index = 0;\n let page_count = 0;\n\n const $footer = h(\"div\");\n set_class($footer, \"footer\");\n\n const $btnSidebar = h(\"button\");\n set_class($btnSidebar, \"btn-sidebar\");\n $btnSidebar.classList.add(wrap_class(\"footer-btn\"));\n $btnSidebar.appendChild(sidebarSVG(namespace));\n $btnSidebar.onclick = function on_click_btn_sidebar() {\n if (readonly) return;\n toggle_preview_callback();\n };\n $btnSidebar.style.display = \"none\";\n $footer.appendChild($btnSidebar);\n\n const $pageJumps = h(\"div\");\n set_class($pageJumps, \"page-jumps\");\n\n const $btnPageBack = h(\"button\");\n set_class($btnPageBack, \"btn-page-back\");\n $btnPageBack.classList.add(wrap_class(\"footer-btn\"));\n $btnPageBack.appendChild(arrowLeftSVG(namespace));\n $btnPageBack.onclick = function on_click_btn_page_back() {\n if (readonly) return;\n new_page_index_callback(page_index - 1);\n };\n $pageJumps.appendChild($btnPageBack);\n\n const $btnPlay = h(\"button\");\n set_class($btnPlay, \"btn-page-play\");\n $btnPlay.classList.add(wrap_class(\"footer-btn\"));\n $btnPlay.appendChild(playSVG(namespace));\n $btnPlay.appendChild(pauseSVG(namespace));\n let returnPlayTimer = 0;\n $btnPlay.onclick = function on_click_btn_play() {\n if (readonly) return;\n $btnPlay.classList.add(wrap_class(\"footer-btn-playing\"));\n play_callback();\n clearTimeout(returnPlayTimer);\n returnPlayTimer = setTimeout(() => {\n $btnPlay.classList.remove(wrap_class(\"footer-btn-playing\"));\n }, 500);\n };\n $pageJumps.appendChild($btnPlay);\n\n const $btnPageNext = h(\"button\");\n set_class($btnPageNext, \"btn-page-next\");\n $btnPageNext.classList.add(wrap_class(\"footer-btn\"));\n $btnPageNext.appendChild(arrowRightSVG(namespace));\n $btnPageNext.onclick = function on_click_btn_page_next() {\n if (readonly) return;\n new_page_index_callback(page_index + 1);\n };\n $pageJumps.appendChild($btnPageNext);\n\n const $pageNumber = h(\"div\");\n set_class($pageNumber, \"page-number\");\n\n const $pageNumberInput = h(\"input\");\n set_class($pageNumberInput, \"page-number-input\");\n $pageNumberInput.value = String(page_index + 1);\n $pageNumberInput.onchange = function on_change_page_number_input() {\n if (readonly) return;\n if ($pageNumberInput.value) {\n new_page_index_callback(Number($pageNumberInput.value) - 1);\n }\n };\n\n const $totalPage = h(\"span\");\n set_class($totalPage, \"total-page\");\n $totalPage.textContent = \" / \";\n\n $pageNumber.appendChild($pageNumberInput);\n $pageNumber.appendChild($totalPage);\n\n $footer.appendChild($pageJumps);\n $footer.appendChild($pageNumber);\n\n const class_readonly = wrap_class(\"readonly\");\n\n function set_readonly(readonly_: boolean) {\n if (readonly !== readonly_) {\n readonly = readonly_;\n $footer.classList.toggle(class_readonly, readonly);\n $pageNumberInput.disabled = readonly;\n }\n }\n\n function set_sidebar(sidebar_: boolean) {\n if (sidebar !== sidebar_) {\n sidebar = sidebar_;\n $btnSidebar.style.display = sidebar ? \"\" : \"none\";\n }\n }\n\n function set_page_index(page_index_: number, force = false) {\n if (force || page_index !== page_index_) {\n page_index = page_index_;\n $pageNumberInput.value = String(page_index + 1);\n }\n }\n\n function set_page_count(page_count_: number) {\n if (page_count !== page_count_) {\n page_count = page_count_;\n $totalPage.textContent = ` / ${page_count}`;\n }\n }\n\n return {\n $footer,\n $pageNumberInput,\n set_readonly,\n set_sidebar,\n set_page_index,\n set_page_count,\n on_new_page_index,\n on_toggle_preview,\n on_play,\n };\n}\n\nfunction create_slide_wrapper() {\n const $slide = h(\"div\");\n set_class($slide, \"slide\");\n return $slide;\n}\n\nfunction on_visibility_change(callback: (visible: boolean) => void) {\n if (typeof document !== \"undefined\") {\n const listener = () => callback(document.visibilityState === \"visible\");\n document.addEventListener(\"visibilitychange\", listener);\n return () => document.removeEventListener(\"visibilitychange\", listener);\n }\n return noop;\n}\n\nexport type SlideViewerOptions = Omit<ISlideConfig, \"anchor\" | \"mode\" | \"interactive\"> & {\n mode?: ISlideConfig[\"mode\"];\n interactive?: ISlideConfig[\"interactive\"];\n} & SlideAttributes;\n\nexport interface SlideViewerInfoResponse {\n width: number;\n height: number;\n slideCount: number;\n}\n\nexport class SlideViewer {\n static styles = styles;\n\n private readonly sideEffect = new SideEffectManager();\n\n readonly $slide = create_slide_wrapper();\n readonly sidebar = create_sidebar();\n readonly footer = create_footer();\n readonly $content: HTMLElement;\n readonly $footer: HTMLElement;\n\n readonly slide;\n\n private readonly _readyPromise: Promise<void>;\n private readonly _infoPromise: Promise<SlideViewerInfoResponse>;\n private _ready = false;\n private _slideCount = 0;\n private _destroyed = false;\n\n constructor(options: SlideViewerOptions) {\n this.$content = this.sidebar.$content;\n this.$footer = this.footer.$footer;\n append(this.$content, this.$slide);\n\n let resolveReady: () => void;\n this._readyPromise = new Promise(resolve => {\n resolveReady = resolve;\n });\n\n const on_new_page_index = (index: number) => {\n if (this._ready && index >= 0 && index < this._slideCount) {\n this.slide.renderSlide(index + 1);\n } else {\n this.setPage(this.slide.slideState.currentSlideIndex);\n }\n };\n this.sidebar.on_new_page_index(on_new_page_index);\n this.footer.on_new_page_index(on_new_page_index);\n\n this.footer.on_toggle_preview(() => {\n this.sidebar.set_active(!this.sidebar.get_active());\n });\n\n this.footer.on_play(() => {\n this.slide.nextStep();\n });\n\n this.sideEffect.addDisposer(this.sidebar.destroy);\n this.sideEffect.addDisposer(() => this.slide.destroy());\n this.sideEffect.addDisposer(() => {\n this.$content.parentElement && this.$content.remove();\n this.$footer.parentElement && this.$footer.remove();\n this.$slide.parentElement && this.$slide.remove();\n });\n\n let saved_is_frozen = false;\n this.sideEffect.addDisposer(\n on_visibility_change(visible => {\n if (this._destroyed) return;\n if (!visible) {\n saved_is_frozen = this._isFrozen;\n this.freeze();\n } else {\n if (!saved_is_frozen) this.unfreeze();\n }\n })\n );\n\n this.slide = new Slide({\n anchor: this.$slide,\n resize: true,\n mode: \"local\",\n interactive: true,\n enableGlobalClick: true,\n ...options,\n });\n this.slide.setResource(options.taskId, options.url || DefaultUrl);\n\n let resolveFetching: (response: SlideViewerInfoResponse) => void;\n this._infoPromise = new Promise<SlideViewerInfoResponse>(resolve => {\n resolveFetching = resolve;\n });\n\n this.slide.on(\"slideChange\", page => {\n if (this._destroyed) return;\n this.setPage(page);\n });\n\n this.slide.on(\"renderEnd\", () => {\n if (!this._ready)\n setTimeout(() => {\n this._ready = true;\n resolveReady();\n }, 1000);\n });\n\n const fetching = fetch_slide_info(options).then(({ preview, slide }) => {\n if (this._destroyed) return;\n\n this._slideCount = slide.slideCount;\n\n if (preview) {\n const { taskId, url } = options;\n const { slideCount } = slide;\n const { width, height } = preview;\n\n const prefix = make_prefix(taskId, url);\n const pages = Array.from({ length: slideCount }, (_, i) => ({\n width,\n height,\n thumbnail: `${prefix}/preview/${i + 1}.png`,\n }));\n\n this.sidebar.set_pages(pages);\n this.footer.set_sidebar(true);\n }\n\n this.footer.set_page_count(slide.slideCount);\n resolveFetching(slide);\n });\n\n fetching.catch(error => {\n console.log(\"[Slide] fetch slide info error\");\n console.error(error);\n });\n\n this.ready(() => {\n if (this._isFrozen) {\n this.freeze();\n }\n });\n }\n\n prepare(callback: (response: SlideViewerInfoResponse) => void) {\n return this._infoPromise.then(callback);\n }\n\n ready(callback: () => void) {\n return this._readyPromise.then(callback);\n }\n\n destroy() {\n this._destroyed = true;\n this.sideEffect.flushAll();\n }\n\n setReadonly(readonly: boolean) {\n this.slide.setInteractive(!readonly);\n this.sidebar.set_readonly(readonly);\n this.footer.set_readonly(readonly);\n }\n\n setPage(page: number) {\n this.sidebar.set_page_index(page - 1, true);\n this.footer.set_page_index(page - 1, true);\n }\n\n private _isFrozen = false;\n\n freeze() {\n if (this._destroyed) return;\n this._isFrozen = true;\n if (!this._ready) return;\n this.slide.frozen();\n }\n\n unfreeze() {\n if (this._destroyed) return;\n this._isFrozen = false;\n if (!this._ready) return;\n this.slide.release();\n }\n}\n","import type { SlideViewer } from \"./SlideViewer\";\nimport type { AddHooks } from \"./typings\";\n\nexport class Refrigerator {\n threshold = 2;\n\n private _map = new Map<string, SlideViewer>();\n private _queue: string[] = [];\n\n set(appId: string, viewer: SlideViewer) {\n this._map.set(appId, viewer);\n if (!this._queue.includes(appId)) {\n this._queue.unshift(appId);\n }\n this._refresh();\n return () => {\n this.delete(appId);\n };\n }\n\n delete(appId: string) {\n this._map.delete(appId);\n this._queue = this._queue.filter(id => id !== appId);\n this._refresh();\n }\n\n focus(appId: string) {\n const index = this._queue.indexOf(appId);\n if (index >= 0) {\n this._queue.splice(index, 1);\n }\n this._queue.unshift(appId);\n this._refresh();\n }\n\n private _refresh() {\n let viewer: SlideViewer | undefined;\n this._queue.forEach((appId, i) => {\n if (!(viewer = this._map.get(appId))) return;\n if (i < this.threshold) {\n viewer.unfreeze();\n } else {\n viewer.freeze();\n }\n });\n if (import.meta.env.DEV) {\n console.log(\n \"[Slide] refrigerator._refresh\",\n `[${this._queue.slice(0, this.threshold)}]`,\n `[${this._queue.slice(this.threshold)}]`\n );\n }\n }\n}\n\nexport const refrigerator = new Refrigerator();\nif (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).refrigerator = refrigerator;\n}\n\nexport const addHooks: AddHooks = function addHooks(emitter) {\n emitter.on(\"focus\", event => {\n refrigerator.focus(event.appId);\n });\n};\n","import type { AppContext, NetlessApp, Player, WhiteBoardView } from \"@netless/window-manager\";\nimport type { AddHooks, AppOptions, Attributes, MagixEvents, SlideState } from \"./typings\";\nimport type { SlideViewerOptions } from \"./SlideViewer\";\n\nexport type { SlideState, AddHooks, AppOptions, Attributes, MagixEvents, SlideViewerOptions };\n\nimport ColorString from \"color-string\";\nimport { SideEffectManager } from \"side-effect-manager\";\nimport { SlideViewer } from \"./SlideViewer\";\nimport { refrigerator, addHooks } from \"./Refrigerator\";\n\nexport { SlideViewer, refrigerator, addHooks };\n\nexport const version = __APP_VERSION__;\n\nconst SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, void> = {\n kind: \"Slide\",\n setup(context) {\n console.log(\"[Slide] setup @ \" + __APP_VERSION__);\n\n if (!context.storage.state.taskId) {\n throw new Error(\"[Slide] no taskId\");\n }\n\n const options = context.getAppOptions() || {};\n const logger = make_logger(context);\n logger.info(\"[Slide] setup @ \" + __APP_VERSION__);\n\n const sideEffect = new SideEffectManager();\n\n // Create UI\n const viewer = new SlideViewer({\n interactive: true,\n mode: \"interactive\",\n resize: true,\n enableGlobalClick: true,\n timestamp: make_timestamp(context),\n logger,\n renderOptions: {\n minFPS: options.minFPS || 25,\n maxFPS: options.maxFPS || 30,\n autoFPS: options.autoFPS ?? true,\n autoResolution: options.autoResolution ?? true,\n resolution: options.resolution,\n maxResolutionLevel: options.maxResolutionLevel,\n transactionBgColor: options.transactionBgColor || make_bg_color(context.box.$content),\n },\n\n taskId: context.storage.state.taskId,\n url: context.storage.state.url,\n });\n\n // For debugging.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (viewer as any).context = context;\n\n sideEffect.addDisposer(refrigerator.set(context.appId, viewer));\n\n if (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).slideViewer = viewer;\n }\n\n // Mount UI\n context.box.mountStyles(SlideViewer.styles);\n context.box.mountStage(viewer.$slide);\n context.box.mountFooter(viewer.$footer);\n context.box.mountContent(viewer.$content);\n sideEffect.addDisposer(() => viewer.destroy());\n\n // Connect UI with Netless App\n connect({ context, viewer, sideEffect, logger });\n\n onUnmount(context, () => {\n logger.info(\"[Slide] destroy\");\n sideEffect.flushAll();\n });\n },\n};\n\nexport default SlideApp;\n\nexport function previewSlide(options: SlideViewerOptions & { container: HTMLElement }) {\n const { container } = options;\n container.style.cssText = \"display:flex;flex-direction:column\";\n const viewer = new SlideViewer(options);\n container.appendChild(document.createElement(\"style\")).textContent = SlideViewer.styles;\n container.appendChild(viewer.$content);\n container.appendChild(viewer.$footer);\n viewer.prepare(() => viewer.slide.renderSlide(1));\n return viewer;\n}\n\nif (import.meta.env.DEV) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).previewSlide = previewSlide;\n}\n\nfunction make_timestamp(context: AppContext): () => number {\n const room = context.room;\n const player = context.displayer as Player;\n if (room) {\n return () => room.calibrationTimestamp;\n } else if (player) {\n return () => player.beginTimestamp + player.progressTime;\n } else {\n return () => Date.now();\n }\n}\n\nfunction make_logger(context: AppContext): { info: (msg: string) => void } {\n if (import.meta.env.DEV) {\n return { info: console.debug.bind(console) };\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (context.displayer as any).logger;\n}\n\nfunction make_bg_color(el: HTMLElement): string {\n try {\n let bg = window.getComputedStyle(el).backgroundColor;\n if (bg !== \"rgba(0, 0, 0, 0)\" && bg !== \"transparent\") {\n bg = hex(bg);\n console.log(\"[Slide] guess bg color:\", bg);\n return bg;\n }\n if (el.parentElement) {\n return make_bg_color(el.parentElement);\n }\n } catch {\n // ignored\n }\n return \"#ffffff\";\n}\n\n// https://github.com/Qix-/color-convert/blob/8dfdbbc6b46fa6a305bf394d942cc1b08e23fca5/conversions.js#L616\nfunction hex(color: string): string {\n const result = ColorString.get(color);\n if (result && result.model === \"rgb\") {\n const args = result.value;\n\n const integer =\n ((Math.round(args[0]) & 0xff) << 16) +\n ((Math.round(args[1]) & 0xff) << 8) +\n (Math.round(args[2]) & 0xff);\n\n const string = integer.toString(16);\n return \"#\" + \"000000\".substring(string.length) + string;\n } else {\n return color;\n }\n}\n\nfunction onUnmount(context: AppContext, callback: () => void) {\n context.emitter.on(\"destroy\", callback);\n}\n\ninterface ConnectParams {\n context: AppContext;\n viewer: SlideViewer;\n sideEffect: SideEffectManager;\n logger: { info: (msg: string) => void };\n}\n\nfunction connect({ context, viewer, sideEffect, logger }: ConnectParams) {\n const log = import.meta.env.DEV ? console.log.bind(console) : logger.info.bind(logger);\n\n let whiteboard: WhiteBoardView | null = null;\n\n viewer.prepare(({ width, height, slideCount }) => {\n if (context.destroyed) return;\n width && context.box.setStageRatio(height / width);\n whiteboard = context.createWhiteBoardView({ size: slideCount });\n whiteboard.setBaseRect({ width, height });\n kick_start();\n });\n\n const { slide } = viewer;\n\n function kick_start() {\n if (context.storage.state.state) {\n log(\"[Slide] restore\", { ...context.storage.state.state });\n slide.setSlideState(context.storage.state.state);\n } else if (context.isAddApp) {\n log(\"[Slide] kick start\");\n slide.renderSlide(1);\n } else {\n log(\"[Slide] wait for restore\");\n const timeoutID = sideEffect.add(() => {\n const timer = setInterval(() => {\n if (!context.storage.state.state) {\n log(\"[Slide] timeout\");\n slide.renderSlide(1);\n }\n }, 15 * 1000);\n return () => clearInterval(timer);\n });\n const disposerID = sideEffect.addDisposer(\n context.storage.addStateChangedListener(() => {\n if (context.storage.state.state) {\n log(\"[Slide] restore\", { ...context.storage.state.state });\n slide.setSlideState(context.storage.state.state);\n sideEffect.flush(disposerID);\n sideEffect.flush(timeoutID);\n }\n })\n );\n }\n }\n\n // setup sync event\n slide.on(\"stateChange\", () => {\n if (context.isWritable) {\n log(\"[Slide] save state\", { ...slide.slideState });\n context.storage.setState({ state: slide.slideState });\n }\n });\n slide.on(\"syncDispatch\", payload => {\n if (context.isWritable) {\n log(\"[Slide] dispatch\", { ...payload });\n context.dispatchMagixEvent(\"syncDispatch\", payload);\n }\n });\n sideEffect.addDisposer(\n context.addMagixEventListener(\n \"syncDispatch\",\n ({ payload }) => {\n log(\"[Slide] receive\", { ...payload });\n slide.emit(\"syncReceive\", payload);\n },\n { fireSelfEventAfterCommit: true }\n )\n );\n\n // save state\n slide.on(\"slideChange\", page => {\n if (context.isWritable && whiteboard) {\n log(\"[Slide] page to\", page);\n whiteboard.jumpPage(page - 1);\n }\n });\n\n // handle ui events\n viewer.setReadonly(!context.isWritable);\n sideEffect.addDisposer(\n context.emitter.on(\"writableChange\", w => {\n viewer.setReadonly(!w);\n })\n );\n}\n"],"names":["isArrayish","require$$0","swizzle","simpleSwizzleModule","require$$1","colorStringModule","SideEffectManager","Slide","ColorString"],"mappings":"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"}