@netless/app-slide 0.2.61-beta.0 → 0.2.61

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.cjs.js CHANGED
@@ -7961,5 +7961,5 @@ self.onmessage = function(e) {
7961
7961
  `)},warn:function(o){t.appendLogString("WARN - "+new Date().toISOString()+" - "+o+`
7962
7962
  `)},error:function(o){t.appendLogString("ERROR - "+new Date().toISOString()+" - "+o+`
7963
7963
  `)}}}),function(o){var s=oc.get(o.hookPoint)||[];s.push(o),oc.set(o.hookPoint,s)}(r)},t.volumeAdjuster=new dg,t.trackLogger=new HE,t.handleFrozenAllSlide=function(){t.instances.forEach(function(r){r.player&&(t._tempFrozenIds.push(r.randomId),r.frozen())})},t.handleReleaseAllSlide=function(){t._tempFrozenIds.forEach(function(r){var o=t.instances.find(function(s){return s.randomId===r});o&&o.release()}),t._tempFrozenIds=[]},t.handleLogReport=function(r){return Wi(void 0,void 0,void 0,function(){var o,s,a,l,h,u;return Xi(e,function(p){switch(p.label){case 0:return[4,t.flushLog(!0)];case 1:if(p.sent(),!cr)return[3,12];o=[],p.label=2;case 2:return p.trys.push([2,4,,5]),[4,cr.keys()];case 3:return o=(p.sent()||[]).sort(function(_,x){return parseInt(_.replace("run_time_log_",""))-parseInt(x.replace("run_time_log_",""))}),[3,5];case 4:return p.sent(),[3,5];case 5:if(o.length===0)return window.postMessage({type:"@slide/_report_log_",log:"",index:1,total:1,customMessage:"@slide/_report_log_",sessionId:r},"*"),[2];s=0,a=o,p.label=6;case 6:if(!(s<a.length))return[3,12];l=a[s],h=l.replace("run_time_log_",""),u="",p.label=7;case 7:return p.trys.push([7,9,,10]),[4,cr.getItem(l)];case 8:return u=p.sent()||"",[3,10];case 9:return p.sent(),[3,10];case 10:window.postMessage({type:"@slide/_report_log_",log:u,index:parseInt(h,10),total:o.length,customMessage:"@slide/_report_log_",sessionId:r},"*"),p.label=11;case 11:return s++,[3,6];case 12:return[2]}})})},t.handleLogDownload=function(){return Wi(void 0,void 0,void 0,function(){var r,o,s,a,l,h,u;return Xi(e,function(p){switch(p.label){case 0:return p.trys.push([0,7,,8]),[4,t.flushLog(!0)];case 1:return p.sent(),r="",cr?[4,cr.keys()]:[3,6];case 2:o=(p.sent()||[]).sort(function(_,x){return parseInt(_.replace("run_time_log_",""))-parseInt(x.replace("run_time_log_",""))}),s=0,a=o,p.label=3;case 3:return s<a.length?(l=a[s],h=r,[4,cr.getItem(l)]):[3,6];case 4:r=h+(p.sent()||""),p.label=5;case 5:return s++,[3,3];case 6:return(u=document.createElement("a")).setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(r)),u.setAttribute("download","slide_log"),u.style.display="none",document.body.appendChild(u),u.click(),document.body.removeChild(u),[3,8];case 7:return p.sent(),[3,8];case 8:return[2]}})})},XE([(n="Slide.initConfig",function(r,o,s){var a=s.value;s.value=function(){for(var l=[],h=0;h<arguments.length;h++)l[h]=arguments[h];for(var u=oc.get(n)||[],p=l,_=0,x=u;_<x.length;_++){var E=x[_];try{p=E.before(p)}catch{}if(!Array.isArray(p)||p.length!==l.length)throw new Error("plugin before hook return invalid args")}for(var A=a.bind(this).apply(void 0,p),C=0,H=u.reverse();C<H.length;C++){E=H[C];try{A=E.after(A)}catch{}if(!A)throw new Error("plugin after hook return undefined result")}return A}})],t.prototype,"initSlideConfig",null),t}(yi.a);cr==null||cr.clear().catch(function(){}),window.addEventListener("__slide_log__",to.handleLogDownload),window.addEventListener("message",function(i){if(i.data.type==="@slide/_request_log_")to.handleLogReport(i.data.sessionId).catch(function(){});else if(i.data.type==="@slide/_request_frozen_")to.handleFrozenAllSlide();else if(i.data.type==="@slide/_request_release_")to.handleReleaseAllSlide();else if(i.data.type==="@slide/_update_volume_"){var t=.5;try{t=parseFloat(i.data.volume.toString())}catch{}to.volumeAdjuster.volume=t}else i.data.type==="@slide/_get_volume_"?window.postMessage({type:"@slide/_report_volume_",volume:to.volumeAdjuster.volume,customMessage:"@slide/_report_volume_"},"*"):i.data.type==="@slide/_preload_slide_"&&to.preloadResource(i.data.taskId,i.data.prefix,i.data.maxResolutionLevel,function(e){window.postMessage({type:"@slide/_preload_slide_progress_",taskId:i.data.taskId,progress:e},"*")}).catch(function(e){window.postMessage({type:"@slide/_preload_slide_error_",taskId:i.data.taskId,error:e},"*")})}),window.setInterval(function(){to.flushLog().catch(function(){})},2e3)}]);const eS="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",nS=87,iS=20,rv=[],rS=()=>{for(let b=0;b<iS;b++)rv[b]=eS.charAt(Math.random()*nS);return rv.join("")};function dv(b){try{return b()}catch(S){console.error(S)}}class Ka{constructor(){this.push=this.addDisposer,this.disposers=new Map}addDisposer(S,v=this.genUID()){return this.flush(v),this.disposers.set(v,Array.isArray(S)?oS(S):S),v}add(S,v=this.genUID()){const P=S();return P?this.addDisposer(P,v):v}addEventListener(S,v,P,M,I=this.genUID()){return S.addEventListener(v,P,M),this.addDisposer(()=>S.removeEventListener(v,P,M),I),I}setTimeout(S,v,P=this.genUID()){const M=window.setTimeout(()=>{this.remove(P),S()},v);return this.addDisposer(()=>window.clearTimeout(M),P)}setInterval(S,v,P=this.genUID()){const M=window.setInterval(S,v);return this.addDisposer(()=>window.clearInterval(M),P)}remove(S){const v=this.disposers.get(S);return this.disposers.delete(S),v}flush(S){const v=this.remove(S);v&&v()}flushAll(){this.disposers.forEach(dv),this.disposers.clear()}genUID(){let S;do S=rS();while(this.disposers.has(S));return S}}function oS(b){return()=>b.forEach(dv)}function pv(b,S,v){return Math.min(Math.max(b,S),v)}function sS(b){return typeof b=="object"&&b!==null}function aS(b){if(!b)return!1;const S=b.tagName;return S==="INPUT"||S==="TEXTAREA"||S==="SELECT"}var fv={exports:{}},lS={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]},mv={exports:{}},hS=function(S){return!S||typeof S=="string"?!1:S instanceof Array||Array.isArray(S)||S.length>=0&&(S.splice instanceof Function||Object.getOwnPropertyDescriptor(S,S.length-1)&&S.constructor.name!=="String")},uS=hS,cS=Array.prototype.concat,dS=Array.prototype.slice,ov=mv.exports=function(S){for(var v=[],P=0,M=S.length;P<M;P++){var I=S[P];uS(I)?v=cS.call(v,dS.call(I)):v.push(I)}return v};ov.wrap=function(b){return function(){return b(ov(arguments))}};var qa=lS,Za=mv.exports,gv=Object.hasOwnProperty,vv=Object.create(null);for(var Mc in qa)gv.call(qa,Mc)&&(vv[qa[Mc]]=Mc);var Sr=fv.exports={to:{},get:{}};Sr.get=function(b){var S=b.substring(0,3).toLowerCase(),v,P;switch(S){case"hsl":v=Sr.get.hsl(b),P="hsl";break;case"hwb":v=Sr.get.hwb(b),P="hwb";break;default:v=Sr.get.rgb(b),P="rgb";break}return v?{model:P,value:v}:null};Sr.get.rgb=function(b){if(!b)return null;var S=/^#([a-f0-9]{3,4})$/i,v=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,P=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,M=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,I=/^(\w+)$/,D=[0,0,0,1],k,W,Y;if(k=b.match(v)){for(Y=k[2],k=k[1],W=0;W<3;W++){var V=W*2;D[W]=parseInt(k.slice(V,V+2),16)}Y&&(D[3]=parseInt(Y,16)/255)}else if(k=b.match(S)){for(k=k[1],Y=k[3],W=0;W<3;W++)D[W]=parseInt(k[W]+k[W],16);Y&&(D[3]=parseInt(Y+Y,16)/255)}else if(k=b.match(P)){for(W=0;W<3;W++)D[W]=parseInt(k[W+1],0);k[4]&&(k[5]?D[3]=parseFloat(k[4])*.01:D[3]=parseFloat(k[4]))}else if(k=b.match(M)){for(W=0;W<3;W++)D[W]=Math.round(parseFloat(k[W+1])*2.55);k[4]&&(k[5]?D[3]=parseFloat(k[4])*.01:D[3]=parseFloat(k[4]))}else return(k=b.match(I))?k[1]==="transparent"?[0,0,0,0]:gv.call(qa,k[1])?(D=qa[k[1]],D[3]=1,D):null:null;for(W=0;W<3;W++)D[W]=zo(D[W],0,255);return D[3]=zo(D[3],0,1),D};Sr.get.hsl=function(b){if(!b)return null;var S=/^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*)?\)$/,v=b.match(S);if(v){var P=parseFloat(v[4]),M=(parseFloat(v[1])%360+360)%360,I=zo(parseFloat(v[2]),0,100),D=zo(parseFloat(v[3]),0,100),k=zo(isNaN(P)?1:P,0,1);return[M,I,D,k]}return null};Sr.get.hwb=function(b){if(!b)return null;var S=/^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*)?\)$/,v=b.match(S);if(v){var P=parseFloat(v[4]),M=(parseFloat(v[1])%360+360)%360,I=zo(parseFloat(v[2]),0,100),D=zo(parseFloat(v[3]),0,100),k=zo(isNaN(P)?1:P,0,1);return[M,I,D,k]}return null};Sr.to.hex=function(){var b=Za(arguments);return"#"+yh(b[0])+yh(b[1])+yh(b[2])+(b[3]<1?yh(Math.round(b[3]*255)):"")};Sr.to.rgb=function(){var b=Za(arguments);return b.length<4||b[3]===1?"rgb("+Math.round(b[0])+", "+Math.round(b[1])+", "+Math.round(b[2])+")":"rgba("+Math.round(b[0])+", "+Math.round(b[1])+", "+Math.round(b[2])+", "+b[3]+")"};Sr.to.rgb.percent=function(){var b=Za(arguments),S=Math.round(b[0]/255*100),v=Math.round(b[1]/255*100),P=Math.round(b[2]/255*100);return b.length<4||b[3]===1?"rgb("+S+"%, "+v+"%, "+P+"%)":"rgba("+S+"%, "+v+"%, "+P+"%, "+b[3]+")"};Sr.to.hsl=function(){var b=Za(arguments);return b.length<4||b[3]===1?"hsl("+b[0]+", "+b[1]+"%, "+b[2]+"%)":"hsla("+b[0]+", "+b[1]+"%, "+b[2]+"%, "+b[3]+")"};Sr.to.hwb=function(){var b=Za(arguments),S="";return b.length>=4&&b[3]!==1&&(S=", "+b[3]),"hwb("+b[0]+", "+b[1]+"%, "+b[2]+"%"+S+")"};Sr.to.keyword=function(b){return vv[b.slice(0,3)]};function zo(b,S,v){return Math.min(Math.max(S,b),v)}function yh(b){var S=Math.round(b).toString(16).toUpperCase();return S.length<2?"0"+S:S}var pS=fv.exports;class fS{constructor(S){this.enable=S,this.apps={},this.level="debug",this.roomLogger=null,this._onMessage=v=>{let P;v instanceof CustomEvent?P=v.detail:sS(v.data)&&(P=v.data),P&&(typeof P.slide=="boolean"?this.enable=P.slide:P.slide==="__instance"?console.log(this):P.slide==="__debug"&&Object.values(this.apps).forEach(M=>{var I,D;(D=(I=M.controller)==null?void 0:I.slide)==null||D.createController()}))},this.initialize()}setAppContext(S,v){var P;((P=this.apps)[S]||(P[S]={})).context=v,this.log(`[Slide] new ${S}`)}setAppController(S,v){var P;((P=this.apps)[S]||(P[S]={})).controller=v}deleteApp(S){delete this.apps[S],this.log(`[Slide] delete ${S}`)}initialize(){window.addEventListener("message",this._onMessage)}dispose(){window.removeEventListener("message",this._onMessage)}log(...S){this.roomLogger?this.roomLogger.info(...S):this.enable&&console.log(...S)}verbose(...S){this.roomLogger?this.roomLogger.debug(...S):this.enable&&this.level==="verbose"&&console.log(...S)}warn(...S){this.roomLogger?this.roomLogger.warn(...S):console.warn(...S)}}const Nr=new fS(!1),Pi=Nr.log.bind(Nr),Cc=Nr.verbose.bind(Nr),mS=b=>{Nr.roomLogger=b.logger};function _v(b){try{const S=window.getComputedStyle(b).backgroundColor;if(S!=="rgba(0, 0, 0, 0)"&&S!=="transparent")return S;if(b.parentElement)return _v(b.parentElement)}catch{}return"#ffffff"}function gS(b){const S=pS.get(b);if(S&&S.model==="rgb"){const v=S.value,M=(((Math.round(v[0])&255)<<16)+((Math.round(v[1])&255)<<8)+(Math.round(v[2])&255)).toString(16);return"#"+"000000".substring(M.length)+M}else return b}let xh="";function yv(b){return xh||(xh=gS(_v(b)),Pi("[Slide] guess bg color",xh)),xh}const vS=b=>b.tracker;function xv(b,S=[]){const{width:v,height:P,slideCount:M,slideState:I}=b,{taskId:D,url:k}=I,W=[];for(let Y=1;Y<=M;++Y){const V=S.find(et=>et.indexOf(`preview/${Y}.png`)>=0);V?W.push({width:v,height:P,thumbnail:V,src:"ppt"}):W.push({width:v,height:P,thumbnail:`${k}/${D}/preview/${Y}.png`,src:"ppt"})}return W}function sv(b,S,v,P){var k;const M=v.slideState.currentSlideIndex;if(!(M>0)||!S.getIsWritable())return;const I=[P,M].join("/");if(b.scenePathType(I)!=="page"){b.removeScenes(P);const W=v.slideCount,Y=[];for(let V=1;V<=W;++V)Y.push({name:`${V}`});b.putScenes(P,Y)}let D;S.getBox().focus?D=b.state.sceneState.scenePath:D=((k=S.getView())==null?void 0:k.focusScenePath)||"",D!==I&&S.setScenePath(I)}const Dc="https://convertcdn.netless.link/dynamicConvert",_S=40,Rc={taskId:"",url:"",state:null,resourceList:[],previewList:[]},yS=function(){};class xS{constructor({context:S,anchor:v,onRenderStart:P,onPageChanged:M,onTransitionStart:I,onTransitionEnd:D,onNavigate:k,onError:W,onRenderError:Y,showRenderError:V,invisibleBehavior:et}){this.sideEffect=new Ka,this.previewList=[],this.ready=!1,this.readyPromise=new Promise(ut=>{this.resolveReady=()=>{this.ready?Pi("[Slide] render end"):setTimeout(()=>{this.ready=!0,ut()},1e3)}}),this.onSyncDispatch=ut=>{if(this.context.getIsWritable()&&this.room){const Nt={type:li.SLIDE_EVENTS.syncDispatch,payload:ut};Cc("[Slide] dispatch",JSON.stringify(ut)),this.context.dispatchMagixEvent(li.SLIDE_EVENTS.syncDispatch,Nt)}},this.magixEventListener=ut=>{const{type:Nt,payload:At}=ut.payload;Nt===li.SLIDE_EVENTS.syncDispatch&&(this.syncStateOnce(),Cc("[Slide] receive",JSON.stringify(At)),this.slide.emit(li.SLIDE_EVENTS.syncReceive,At))},this.onStateChange=ut=>{this.context.getIsWritable()&&(Cc("[Slide] state change",JSON.stringify(ut,null,2)),this.context.storage.setState({state:ut}))},this.pollCount=0,this.pollReadyState=()=>{this.ready?this._toFreeze===1?this.freeze():this._toFreeze===-1&&this.unfreeze():this.pollCount<_S?(this.pollCount++,setTimeout(this.pollReadyState,500)):(this.pollCount=0,Pi("[Slide] init timeout"))},this._pageCount=0,this.destroyed=!1,this.timestamp=()=>this.room&&this.room.calibrationTimestamp?this.room.calibrationTimestamp:this.player?this.player.beginTimestamp+this.player.progressTime:Date.now(),this.isFrozen=!1,this._toFreeze=0,this.freeze=()=>{this.isFrozen=!0,this.ready?(Pi("[Slide] freeze",this.context.appId),this.invisibleBehavior==="frozen"?this.slide.frozen():this.slide.pause()):this._toFreeze=1},this.unfreeze=async()=>{var ut;if(!!this.visible)if(this.isFrozen=!1,this.ready){Pi("[Slide] unfreeze",this.context.appId),this.invisibleBehavior==="frozen"?this.slide.release():this.slide.resume();const Nt=(ut=this.context.storage.state.state)==null?void 0:ut.currentSlideIndex;Nt&&(Pi("[Slide] sync storage",Nt),this.slide.setSlideState({currentSlideIndex:Nt}))}else this._toFreeze=-1},this.onVisibilityChange=async()=>{(this.visible=document.visibilityState==="visible")?(Pi("[Slide] unfreeze because tab becomes visible",{savedIsFrozen:this.savedIsFrozen}),this.savedIsFrozen||this.unfreeze()):(this.savedIsFrozen=this.isFrozen,Pi("[Slide] freeze because tab becomes invisible"),this.freeze())},this.invisibleBehavior=et!=null?et:"frozen",this.onRenderStart=P,this.onPageChanged=M,this.onTransitionStart=I,this.onTransitionEnd=D,this.onNavigate=k||yS,this.onError=W,this.onRenderError=Y,this.showRenderError=V!=null?V:!0,this.context=S,this.room=S.getRoom(),this.player=this.room?void 0:S.getDisplayer(),mS(this.room||this.player),this.slide=this.createSlide(v,{whiteTracker:vS(S.getDisplayer())}),this.syncStateOnceFlag=!this.context.isAddApp,this.visible=document.visibilityState==="visible",this.savedIsFrozen=!1,this.initialize()}jumpToPage(S,v){this.ready&&(S=pv(S,1,this.pageCount),this.onNavigate(S,v),this.slide.renderSlide(S))}initialize(){this.registerEventListeners(),this.kickStart()}kickStart(){const{context:S,slide:v}=this;S.getIsWritable()&&S.storage.ensureState(Rc);const{taskId:P,url:M,resourceList:I,previewList:D,state:k}=S.storage.state;this.previewList=D,I&&I.length>0?v.setResourceList(P,I):v.setResource(P,M||Dc),k?(Pi("[Slide] init with state",JSON.stringify(k)),this.syncStateOnceFlag=!1,v.setSlideState(k)):S.isAddApp&&(Pi("[Slide] init by renderSlide",1),v.renderSlide(1)),this.pollReadyState()}registerEventListeners(){const{context:S,slide:v}=this,P=this.sideEffect.addDisposer(S.storage.addStateChangedListener(()=>{S.storage.state.state&&(this.syncStateOnce(),this.sideEffect.flush(P))}));this.sideEffect.add(()=>S.addMagixEventListener(li.SLIDE_EVENTS.syncDispatch,this.magixEventListener,{fireSelfEventAfterCommit:!0})),v.on(li.SLIDE_EVENTS.renderStart,this.onRenderStart),v.on(li.SLIDE_EVENTS.slideChange,this.onPageChanged),v.on(li.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),v.on(li.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),v.on(li.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),v.on(li.SLIDE_EVENTS.renderError,this.onError),v.on(li.SLIDE_EVENTS.stateChange,this.onStateChange),v.on(li.SLIDE_EVENTS.syncDispatch,this.onSyncDispatch),v.on(li.SLIDE_EVENTS.renderEnd,this.resolveReady),this.sideEffect.add(()=>(document.addEventListener("visibilitychange",this.onVisibilityChange),()=>document.removeEventListener("visibilitychange",this.onVisibilityChange)))}syncStateOnce(){if(this.syncStateOnceFlag){this.context.getIsWritable()&&this.context.storage.ensureState(Rc);const{state:S}=this.context.storage.state;S&&(Pi("[Slide] sync with state (once)",JSON.stringify(S)),this.slide.setSlideState(S),this.syncStateOnceFlag=!1)}}get pageCount(){return this._pageCount>0?this._pageCount:(this._pageCount=this.slide.slideCount,this._pageCount)}get page(){return this.slide.slideState.currentSlideIndex}createSlide(S,v={}){var I,D,k;const P=this.context.getAppOptions()||{};return new li.Slide({anchor:S,interactive:!0,mode:"interactive",controller:Nr.enable,enableGlobalClick:(I=P.enableGlobalClick)!=null?I:!0,renderOptions:{minFPS:P.minFPS||25,maxFPS:P.maxFPS||30,autoFPS:(D=P.autoFPS)!=null?D:!0,autoResolution:(k=P.autoResolution)!=null?k:!0,resolution:P.resolution,transactionBgColor:P.bgColor||yv(S),maxResolutionLevel:P.maxResolutionLevel,forceCanvas:P.forceCanvas,enableNvidiaDetect:P.enableNvidiaDetect},fixedFrameSize:P.fixedFrameSize,loaderDelegate:P.loaderDelegate,navigatorDelegate:P.navigatorDelegate,urlInterrupter:P.urlInterrupter,resourceTimeout:P.resourceTimeout,rtcAudio:P.rtcAudio,useLocalCache:P.useLocalCache,logger:P.logger,whiteTracker:v.whiteTracker,timestamp:this.timestamp})}destroy(){this.sideEffect.flushAll(),this.destroyed||(Pi("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0)}}function bS(b){const S="http://www.w3.org/2000/svg",v=document.createElementNS(S,"svg");v.setAttribute("class",`${b}-footer-icon-sidebar`),v.setAttribute("viewBox","0 0 64 64");const P=document.createElementNS(S,"path");return P.setAttribute("fill","currentColor"),P.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"),v.appendChild(P),v}function TS(b){const S="http://www.w3.org/2000/svg",v=document.createElementNS(S,"svg");v.setAttribute("class",`${b}-footer-icon-arrow-left`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(S,"path");return P.setAttribute("fill","currentColor"),P.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"),v.appendChild(P),v}function ES(b){const S="http://www.w3.org/2000/svg",v=document.createElementNS(S,"svg");v.setAttribute("class",`${b}-footer-icon-arrow-right`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(S,"path");return P.setAttribute("fill","currentColor"),P.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"),v.appendChild(P),v}function SS(b){const S="http://www.w3.org/2000/svg",v=document.createElementNS(S,"svg");v.setAttribute("class",`${b}-footer-icon-play`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(S,"path");return P.setAttribute("fill","currentColor"),P.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"),v.appendChild(P),v}function wS(b){const S="http://www.w3.org/2000/svg",v=document.createElementNS(S,"svg");v.setAttribute("class",`${b}-footer-icon-pause`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(S,"path");return P.setAttribute("fill","currentColor"),P.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"),v.appendChild(P),v}const Wo=typeof window!="undefined",bv=Wo&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Tv=Wo&&"IntersectionObserver"in window,Ev=Wo&&"classList"in document.createElement("p"),Sv=Wo&&window.devicePixelRatio>1,AS={elements_selector:".lazy",container:bv||Wo?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},wv=b=>Object.assign({},AS,b),av=function(b,S){let v;const P="LazyLoad::Initialized",M=new b(S);try{v=new CustomEvent(P,{detail:{instance:M}})}catch{v=document.createEvent("CustomEvent"),v.initCustomEvent(P,!1,!1,{instance:M})}window.dispatchEvent(v)},MS=(b,S)=>{if(!!S)if(!S.length)av(b,S);else for(let v=0,P;P=S[v];v+=1)av(b,P)},po="src",Fc="srcset",Bc="sizes",Av="poster",Qa="llOriginalAttrs",Mv="data",Uc="loading",Cv="loaded",Rv="applied",CS="entered",kc="error",Iv="native",Pv="data-",Ov="ll-status",fr=(b,S)=>b.getAttribute(Pv+S),RS=(b,S,v)=>{var P=Pv+S;if(v===null){b.removeAttribute(P);return}b.setAttribute(P,v)},$a=b=>fr(b,Ov),gs=(b,S)=>RS(b,Ov,S),Eh=b=>gs(b,null),Gc=b=>$a(b)===null,IS=b=>$a(b)===Uc,PS=b=>$a(b)===kc,Hc=b=>$a(b)===Iv,OS=[Uc,Cv,Rv,kc],NS=b=>OS.indexOf($a(b))>=0,Xo=(b,S,v,P)=>{if(!!b){if(P!==void 0){b(S,v,P);return}if(v!==void 0){b(S,v);return}b(S)}},ta=(b,S)=>{if(Ev){b.classList.add(S);return}b.className+=(b.className?" ":"")+S},no=(b,S)=>{if(Ev){b.classList.remove(S);return}b.className=b.className.replace(new RegExp("(^|\\s+)"+S+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},LS=b=>{b.llTempImage=document.createElement("IMG")},DS=b=>{delete b.llTempImage},Nv=b=>b.llTempImage,Sh=(b,S)=>{if(!S)return;const v=S._observer;!v||v.unobserve(b)},FS=b=>{b.disconnect()},BS=(b,S,v)=>{S.unobserve_entered&&Sh(b,v)},jc=(b,S)=>{!b||(b.loadingCount+=S)},US=b=>{!b||(b.toLoadCount-=1)},Lv=(b,S)=>{!b||(b.toLoadCount=S)},kS=b=>b.loadingCount>0,GS=b=>b.toLoadCount>0,Dv=b=>{let S=[];for(let v=0,P;P=b.children[v];v+=1)P.tagName==="SOURCE"&&S.push(P);return S},zc=(b,S)=>{const v=b.parentNode;if(!v||v.tagName!=="PICTURE")return;Dv(v).forEach(S)},Fv=(b,S)=>{Dv(b).forEach(S)},wh=[po],Bv=[po,Av],Ja=[po,Fc,Bc],Uv=[Mv],Ah=b=>!!b[Qa],kv=b=>b[Qa],Gv=b=>delete b[Qa],$s=(b,S)=>{if(Ah(b))return;const v={};S.forEach(P=>{v[P]=b.getAttribute(P)}),b[Qa]=v},HS=b=>{Ah(b)||(b[Qa]={backgroundImage:b.style.backgroundImage})},jS=(b,S,v)=>{if(!v){b.removeAttribute(S);return}b.setAttribute(S,v)},ms=(b,S)=>{if(!Ah(b))return;const v=kv(b);S.forEach(P=>{jS(b,P,v[P])})},zS=b=>{if(!Ah(b))return;const S=kv(b);b.style.backgroundImage=S.backgroundImage},Hv=(b,S,v)=>{ta(b,S.class_applied),gs(b,Rv),v&&(S.unobserve_completed&&Sh(b,S),Xo(S.callback_applied,b,v))},jv=(b,S,v)=>{ta(b,S.class_loading),gs(b,Uc),v&&(jc(v,1),Xo(S.callback_loading,b,v))},Vo=(b,S,v)=>{!v||b.setAttribute(S,v)},lv=(b,S)=>{Vo(b,Bc,fr(b,S.data_sizes)),Vo(b,Fc,fr(b,S.data_srcset)),Vo(b,po,fr(b,S.data_src))},VS=(b,S)=>{zc(b,v=>{$s(v,Ja),lv(v,S)}),$s(b,Ja),lv(b,S)},WS=(b,S)=>{$s(b,wh),Vo(b,po,fr(b,S.data_src))},XS=(b,S)=>{Fv(b,v=>{$s(v,wh),Vo(v,po,fr(v,S.data_src))}),$s(b,Bv),Vo(b,Av,fr(b,S.data_poster)),Vo(b,po,fr(b,S.data_src)),b.load()},YS=(b,S)=>{$s(b,Uv),Vo(b,Mv,fr(b,S.data_src))},qS=(b,S,v)=>{const P=fr(b,S.data_bg),M=fr(b,S.data_bg_hidpi),I=Sv&&M?M:P;!I||(b.style.backgroundImage=`url("${I}")`,Nv(b).setAttribute(po,I),jv(b,S,v))},JS=(b,S,v)=>{const P=fr(b,S.data_bg_multi),M=fr(b,S.data_bg_multi_hidpi),I=Sv&&M?M:P;!I||(b.style.backgroundImage=I,Hv(b,S,v))},KS=(b,S,v)=>{const P=fr(b,S.data_bg_set);if(!P)return;const M=P.split("|");let I=M.map(D=>`image-set(${D})`);b.style.backgroundImage=I.join(),b.style.backgroundImage===""&&(I=M.map(D=>`-webkit-image-set(${D})`),b.style.backgroundImage=I.join()),Hv(b,S,v)},zv={IMG:VS,IFRAME:WS,VIDEO:XS,OBJECT:YS},ZS=(b,S)=>{const v=zv[b.tagName];!v||v(b,S)},QS=(b,S,v)=>{const P=zv[b.tagName];!P||(P(b,S),jv(b,S,v))},$S=["IMG","IFRAME","VIDEO","OBJECT"],tw=b=>$S.indexOf(b.tagName)>-1,Vv=(b,S)=>{S&&!kS(S)&&!GS(S)&&Xo(b.callback_finish,S)},hv=(b,S,v)=>{b.addEventListener(S,v),b.llEvLisnrs[S]=v},ew=(b,S,v)=>{b.removeEventListener(S,v)},Vc=b=>!!b.llEvLisnrs,nw=(b,S,v)=>{Vc(b)||(b.llEvLisnrs={});const P=b.tagName==="VIDEO"?"loadeddata":"load";hv(b,P,S),hv(b,"error",v)},Ic=b=>{if(!Vc(b))return;const S=b.llEvLisnrs;for(let v in S){const P=S[v];ew(b,v,P)}delete b.llEvLisnrs},Wv=(b,S,v)=>{DS(b),jc(v,-1),US(v),no(b,S.class_loading),S.unobserve_completed&&Sh(b,v)},iw=(b,S,v,P)=>{const M=Hc(S);Wv(S,v,P),ta(S,v.class_loaded),gs(S,Cv),Xo(v.callback_loaded,S,P),M||Vv(v,P)},rw=(b,S,v,P)=>{const M=Hc(S);Wv(S,v,P),ta(S,v.class_error),gs(S,kc),Xo(v.callback_error,S,P),v.restore_on_error&&ms(S,Ja),M||Vv(v,P)},Wc=(b,S,v)=>{const P=Nv(b)||b;if(Vc(P))return;nw(P,D=>{iw(D,b,S,v),Ic(P)},D=>{rw(D,b,S,v),Ic(P)})},ow=(b,S,v)=>{LS(b),Wc(b,S,v),HS(b),qS(b,S,v),JS(b,S,v),KS(b,S,v)},sw=(b,S,v)=>{Wc(b,S,v),QS(b,S,v)},Xc=(b,S,v)=>{tw(b)?sw(b,S,v):ow(b,S,v)},aw=(b,S,v)=>{b.setAttribute("loading","lazy"),Wc(b,S,v),ZS(b,S),gs(b,Iv)},uv=b=>{b.removeAttribute(po),b.removeAttribute(Fc),b.removeAttribute(Bc)},lw=b=>{zc(b,S=>{uv(S)}),uv(b)},Xv=b=>{zc(b,S=>{ms(S,Ja)}),ms(b,Ja)},hw=b=>{Fv(b,S=>{ms(S,wh)}),ms(b,Bv),b.load()},uw=b=>{ms(b,wh)},cw=b=>{ms(b,Uv)},dw={IMG:Xv,IFRAME:uw,VIDEO:hw,OBJECT:cw},pw=b=>{const S=dw[b.tagName];if(!S){zS(b);return}S(b)},fw=(b,S)=>{Gc(b)||Hc(b)||(no(b,S.class_entered),no(b,S.class_exited),no(b,S.class_applied),no(b,S.class_loading),no(b,S.class_loaded),no(b,S.class_error))},mw=(b,S)=>{pw(b),fw(b,S),Eh(b),Gv(b)},gw=(b,S,v,P)=>{!v.cancel_on_exit||!IS(b)||b.tagName==="IMG"&&(Ic(b),lw(b),Xv(b),no(b,v.class_loading),jc(P,-1),Eh(b),Xo(v.callback_cancel,b,S,P))},vw=(b,S,v,P)=>{const M=NS(b);gs(b,CS),ta(b,v.class_entered),no(b,v.class_exited),BS(b,v,P),Xo(v.callback_enter,b,S,P),!M&&Xc(b,v,P)},_w=(b,S,v,P)=>{Gc(b)||(ta(b,v.class_exited),gw(b,S,v,P),Xo(v.callback_exit,b,S,P))},yw=["IMG","IFRAME","VIDEO"],Yv=b=>b.use_native&&"loading"in HTMLImageElement.prototype,xw=(b,S,v)=>{b.forEach(P=>{yw.indexOf(P.tagName)!==-1&&aw(P,S,v)}),Lv(v,0)},bw=b=>b.isIntersecting||b.intersectionRatio>0,Tw=b=>({root:b.container===document?null:b.container,rootMargin:b.thresholds||b.threshold+"px"}),Ew=(b,S,v)=>{b.forEach(P=>bw(P)?vw(P.target,P,S,v):_w(P.target,P,S,v))},Sw=(b,S)=>{S.forEach(v=>{b.observe(v)})},ww=(b,S)=>{FS(b),Sw(b,S)},Aw=(b,S)=>{!Tv||Yv(b)||(S._observer=new IntersectionObserver(v=>{Ew(v,b,S)},Tw(b)))},qv=b=>Array.prototype.slice.call(b),bh=b=>b.container.querySelectorAll(b.elements_selector),Mw=b=>qv(b).filter(Gc),Cw=b=>PS(b),Rw=b=>qv(b).filter(Cw),cv=(b,S)=>Mw(b||bh(S)),Iw=(b,S)=>{Rw(bh(b)).forEach(P=>{no(P,b.class_error),Eh(P)}),S.update()},Pw=(b,S)=>{!Wo||(S._onlineHandler=()=>{Iw(b,S)},window.addEventListener("online",S._onlineHandler))},Ow=b=>{!Wo||window.removeEventListener("online",b._onlineHandler)},tl=function(b,S){const v=wv(b);this._settings=v,this.loadingCount=0,Aw(v,this),Pw(v,this),this.update(S)};tl.prototype={update:function(b){const S=this._settings,v=cv(b,S);if(Lv(this,v.length),bv||!Tv){this.loadAll(v);return}if(Yv(S)){xw(v,S,this);return}ww(this._observer,v)},destroy:function(){this._observer&&this._observer.disconnect(),Ow(this),bh(this._settings).forEach(b=>{Gv(b)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(b){const S=this._settings;cv(b,S).forEach(P=>{Sh(P,this),Xc(P,S,this)})},restoreAll:function(){const b=this._settings;bh(b).forEach(S=>{mw(S,b)})}};tl.load=(b,S)=>{const v=wv(S);Xc(b,v)};tl.resetStatus=b=>{Eh(b)};Wo&&MS(tl,window.lazyLoadOptions);class Jv{constructor({readonly:S,onNewPageIndex:v,onPlay:P,onPagesReady:M,urlInterrupter:I}){this._pages=[],this.pageIndex=0,this.setPaused=()=>{this.$btnPlay.classList.toggle(this.wrapClassName("footer-btn-playing"),!1)},this.setPlaying=()=>{this.$btnPlay.classList.toggle(this.wrapClassName("footer-btn-playing"),!0)},this.namespace="netless-app-slide",this.isShowPreview=!1,this.isSmallBox=!1,this.sideEffect=new Ka,this.readonly=S,this.onNewPageIndex=v,this.onPlay=P,this.onPagesReady=M,this.urlInterrupter=I||(D=>D),this.render()}set pages(S){this._pages=S,this.refreshPreview().then(this.refreshBtnSidebar.bind(this)),this.refreshTotalPage(),this.onPagesReady&&this.onPagesReady(S)}get pages(){return this._pages}unmount(){this.$content.remove(),this.$footer.remove()}setReadonly(S){this.readonly=S,this.$content.classList.toggle(this.wrapClassName("readonly"),S),this.$footer.classList.toggle(this.wrapClassName("readonly"),S),this.$pageNumberInput.disabled=S}destroy(){var S;(S=this.previewLazyLoad)==null||S.destroy(),this.sideEffect.flushAll(),this.unmount()}setPageIndex(S){Number.isNaN(S)||(this.pageIndex=S,this.$pageNumberInput.value=String(S+1))}refreshTotalPage(){this.pages.length?this.$totalPage.textContent=" / "+this.pages.length:this.$totalPage.textContent=""}setSmallBox(S){this.isSmallBox!==S&&(this.isSmallBox=S,this.$footer.classList.toggle(this.wrapClassName("float-footer"),S))}render(){return this.renderContent(),this.renderFooter(),this.$content}renderContent(){if(!this.$content){const S=document.createElement("div");S.className=this.wrapClassName("content"),this.$content=S,this.readonly&&S.classList.add(this.wrapClassName("readonly")),S.appendChild(this.renderPreviewMask()),S.appendChild(this.renderPreview())}return this.$content}renderPreview(){if(!this.$preview){const S=document.createElement("div");S.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=S,this.refreshPreview(),this.sideEffect.addEventListener(S,"click",v=>{var M;if(this.readonly)return;const P=(M=v.target.dataset)==null?void 0:M.pageIndex;P&&(v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation(),this.onNewPageIndex(Number(P),"preview"),this.togglePreview(!1))})}return this.$preview}async refreshPreview(){var I,D;const{$preview:S}=this,v=this.wrapClassName("preview-page"),P=this.wrapClassName("preview-page-name");for(;S.firstChild;)S.firstChild.remove();const M=[];for(let k=0,W=this.pages.length;k<W;k++){const Y=this.pages[k],V=(I=Y.thumbnail)!=null?I:Y.src.startsWith("ppt")?void 0:Y.src;V&&(M[k]=this.urlInterrupter(V))}for(let k=0,W=this.pages.length;k<W;k++)M[k]=await M[k];this.pages.forEach((k,W)=>{const Y=M[W];if(!Y)return;const V=String(W),et=document.createElement("a");et.className=v+" "+this.wrapClassName(`preview-page-${W}`),et.setAttribute("href","#"),et.dataset.pageIndex=V;const ut=document.createElement("span");ut.className=P,ut.textContent=String(W+1),ut.dataset.pageIndex=V;const Nt=document.createElement("img");Nt.width=k.width,Nt.height=k.height,Nt.dataset.src=Y,Nt.dataset.pageIndex=V,et.appendChild(Nt),et.appendChild(ut),S.appendChild(et)}),(D=this.previewLazyLoad)==null||D.update()}renderPreviewMask(){return this.$previewMask||(this.$previewMask=document.createElement("div"),this.$previewMask.className=this.wrapClassName("preview-mask"),this.sideEffect.addEventListener(this.$previewMask,"click",S=>{this.readonly||S.target===this.$previewMask&&this.togglePreview(!1)})),this.$previewMask}refreshBtnSidebar(){this.$btnSidebar.style.display=this.pages.length>0?"":"none"}renderFooter(){if(!this.$footer){const S=document.createElement("div");S.className=this.wrapClassName("footer"),this.$footer=S,this.readonly&&S.classList.add(this.wrapClassName("readonly")),this.isSmallBox&&S.classList.add(this.wrapClassName("float-footer"));const v=this.renderFooterBtn("btn-sidebar",bS(this.namespace));this.sideEffect.addEventListener(v,"click",()=>{this.readonly||this.togglePreview()}),this.$btnSidebar=v,this.$btnSidebar.style.display="none",this.$footer.appendChild(v);const P=document.createElement("div");P.className=this.wrapClassName("page-jumps");const M=this.renderFooterBtn("btn-page-back",TS(this.namespace));if(this.sideEffect.addEventListener(M,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex-1,"navigation")}),P.appendChild(M),this.onPlay){const Y=this.renderFooterBtn("btn-page-play",SS(this.namespace),wS(this.namespace));this.$btnPlay=Y,this.sideEffect.addEventListener(Y,"click",()=>{this.readonly||(this.setPlaying(),this.onPlay&&this.onPlay())}),P.appendChild(Y)}const I=this.renderFooterBtn("btn-page-next",ES(this.namespace));this.sideEffect.addEventListener(I,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex+1,"navigation")}),P.appendChild(I);const D=document.createElement("div");D.className=this.wrapClassName("page-number");const k=document.createElement("input");k.className=this.wrapClassName("page-number-input"),k.value=String(this.pageIndex+1),this.readonly&&(k.disabled=!0),this.$pageNumberInput=k,this.sideEffect.addEventListener(k,"focus",()=>{k.select()}),this.sideEffect.addEventListener(k,"change",()=>{this.readonly||k.value&&this.onNewPageIndex(Number(k.value)-1,"input")});const W=document.createElement("span");this.$totalPage=W,D.appendChild(k),D.appendChild(W),this.$footer.appendChild(P),this.$footer.appendChild(D)}return this.$footer}renderFooterBtn(S,v,P){const M=document.createElement("button");return M.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(S),M.appendChild(v),P&&M.appendChild(P),M}togglePreview(S){if(this.isShowPreview=S!=null?S:!this.isShowPreview,this.$content.classList.toggle(this.wrapClassName("preview-active"),this.isShowPreview),this.isShowPreview){const v=this.$preview.querySelector("."+this.wrapClassName(`preview-page-${this.pageIndex}`));v&&(this.previewLazyLoad||(this.previewLazyLoad=new tl({container:this.$preview,elements_selector:`.${this.wrapClassName("preview-page>img")}`})),this.$preview.scrollTo({top:v.offsetTop-16}))}}wrapClassName(S){return`${this.namespace}-${S}`}}const Nw=new Set(["clicker"]),Lw=function(){};class Dw{constructor({box:S,view:v,mountSlideController:P,mountWhiteboard:M,baseScenePath:I,appId:D,urlInterrupter:k,onPagesReady:W,onNavigate:Y}){this.slideController=null,this.isViewMounted=!1,this.onError=({error:V,index:et})=>{var ut,Nt;this.viewer.setPaused(),(ut=this.slideController)!=null&&ut.showRenderError&&(this.$overlay.textContent=`Error on slide[page=${this.slideController.page}]: ${V.message}`,this.$overlay.style.opacity="1"),(Nt=this.slideController)!=null&&Nt.onRenderError&&this.slideController.onRenderError(V,et),Nr.warn("[Slide] render error",V)},this.onRenderStart=()=>{this.$whiteboardView.classList.add(this.wrapClassName("wb-view-hidden")),this.viewer.setPlaying()},this.onRenderEnd=()=>{},this.onPageChanged=()=>{clearTimeout(this._onPageChangedTimer),this._onPageChangedTimer=setTimeout(this._onPageChanged,200)},this._onPageChangedTimer=0,this._onPageChanged=()=>{this.$overlay.style.opacity="",this.$whiteboardView.classList.remove(this.wrapClassName("wb-view-hidden"))},this.refreshPages=()=>{this.slideController&&(this.viewer.pages=xv(this.slideController.slide,this.slideController.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slideController.page)),this.scaleDocsToFit())},this.scaleDocsToFit=()=>{if(this.slideController){const{width:V,height:et}=this.slideController.slide;V&&et&&(this.whiteboardView.moveCameraToContain({originX:-V/2,originY:-et/2,width:V,height:et,animationMode:"immediately"}),this.whiteboardView.setCameraBound({damping:1,maxContentMode:()=>this.whiteboardView.camera.scale,minContentMode:()=>this.whiteboardView.camera.scale,centerX:0,centerY:0,width:V,height:et}),this.isViewMounted||(this.isViewMounted=!0,console.log("[Slide] mount whiteboard view"),this.mountWhiteboard(this.$whiteboardView)))}},this.onPlay=()=>{this.slideController&&this.slideController.slide.nextStep()},this.onNewPageIndex=(V,et)=>{this.slideController&&this.slideController.jumpToPage(V+1,et)},this.sideEffect=new Ka,this.namespace="netless-app-slide",this.toPdf=async()=>{if(!this.slideController){this.reportProgress(100,null);return}const{slide:V}=this.slideController,et=1920,ut=document.createElement("canvas"),Nt=ut.getContext("2d"),{slideCount:At,width:L,height:R}=V;let F=Math.floor(L),X=Math.floor(R);F>et&&(F=et,X=Math.floor(R*F/L)),X>et&&(X=et,F=Math.floor(L*X/R)),ut.width=F,ut.height=X;const O=document.createElement("canvas");O.width=F,O.height=X;const j=O.getContext("2d");if(!j||!this.getWhiteSnapshot||!Nt)return this.reportProgress(100,null),null;const tt=F>X?"l":"p",{jsPDF:G}=await Promise.resolve().then(function(){return tS(require("jspdf"))}),Pt=new G({format:[F,X],orientation:tt,compress:!0});for(let z=1;z<=At;z++){let U=null;try{U=await this.slideController.slide.snapshotWithTimingEnd(z)}catch{}if(U){const gt=document.createElement("img");gt.src=U,await new Promise(Dt=>gt.onload=Dt),Nt.drawImage(gt,0,0,F,X)}j.clearRect(0,0,F,X),this.getWhiteSnapshot(z,O,j,L,R);try{const gt=O.toDataURL("image/png"),Dt=document.createElement("img");Dt.src=gt,await new Promise(K=>Dt.onload=K),Nt.drawImage(Dt,0,0,F,X)}catch{}const ft=ut.toDataURL("image/jpeg",.6);z>1&&Pt.addPage(),Pt.addImage(ft,"JPEG",0,0,F,X,"","FAST"),Nt.clearRect(0,0,F,X),Math.ceil(z/At*100)<100&&this.reportProgress(Math.ceil(z/At*100),null)}const Vt=Pt.output("arraybuffer"),st=this.box.title;this.reportProgress(100,{pdf:Vt,title:st})},this.box=S,this.whiteboardView=v,this.mountSlideController=P,this.mountWhiteboard=M,this.onNavigate=Y||Lw,this.baseScenePath=I,this.appId=D,this.viewer=new Jv({readonly:S.readonly,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay,urlInterrupter:k,onPagesReady:W}),this.sideEffect.add(()=>{const V=et=>{this.setReadonly(et)};return S.events.on("readonly",V),()=>S.events.off("readonly",V)}),this.sideEffect.add(()=>{const V=et=>{et.data.type==="@netless/_request_save_pdf_"&&et.data.appId===this.appId&&this.toPdf().catch(()=>this.reportProgress(100,null))};return window.addEventListener("message",V),()=>{window.removeEventListener("message",V)}}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.viewer.$content.appendChild(this.renderWhiteboardView()),this.viewer.$content.appendChild(this.renderOverlay()),this.sideEffect.addEventListener(window,"keydown",S=>{if(this.box.focus&&this.slideController&&!aS(S.target))switch(S.key){case"ArrowUp":case"ArrowLeft":{this.slideController.slide.prevStep(),this.onNavigate(this.slideController.page,"keydown");break}case"ArrowRight":case"ArrowDown":{this.slideController.slide.nextStep(),this.onNavigate(this.slideController.page,"keydown");break}}})}renderOverlay(){if(!this.$overlay){const S=document.createElement("div");S.className=this.wrapClassName("overlay"),this.$overlay=S}return this.$overlay}renderSlideContainer(){if(!this.$slide){const S=document.createElement("div");S.className=this.wrapClassName("slide"),S.dataset.appKind="Slide",this.$slide=S}return this.$slide}renderWhiteboardView(){return this.$whiteboardView||(this.$whiteboardView=document.createElement("div"),this.$whiteboardView.className=this.wrapClassName("wb-view")),this.$whiteboardView}mount(){return this.box.mountContent(this.viewer.$content),this.box.mountFooter(this.viewer.$footer),this.slideController=this.mountSlideController({anchor:this.$slide,onRenderStart:this.onRenderStart,onRenderEnd:this.onRenderEnd,onTransitionStart:this.viewer.setPlaying,onTransitionEnd:this.viewer.setPaused,onReady:this.refreshPages,onNavigate:this.onNavigate,onError:this.onError}),this.scaleDocsToFit(),this.sideEffect.add(()=>(this.whiteboardView.callbacks.on("onSizeUpdated",this.scaleDocsToFit),()=>this.whiteboardView.callbacks.off("onSizeUpdated",this.scaleDocsToFit))),this}getPageIndex(S){return(S>0?S:1)-1}unmount(){return this.slideController&&(this.slideController.destroy(),this.slideController=null),this.viewer.unmount(),this}setReadonly(S){this.viewer.setReadonly(S)}destroy(){this.sideEffect.flushAll(),this.unmount(),this.viewer.destroy()}toggleClickThrough(S){this.$whiteboardView.style.pointerEvents=!S||Nw.has(S)?"none":"auto"}wrapClassName(S){return`${this.namespace}-${S}`}getWhiteSnapshot(S,v,P,M,I){this.whiteboardView.screenshotToCanvas(P,`${this.baseScenePath}/${S}`,v.width,v.height,{centerX:0,centerY:0,scale:Math.min(v.width/M,v.height/I)})}reportProgress(S,v){window.postMessage({type:"@netless/_result_save_pdf_",appId:this.appId,progress:S,result:v})}}let Pc=!1;exports.FreezerLength=2;function Fw(){return exports.FreezerLength}function Bw(b){exports.FreezerLength=b<1?1/0:b}const Ya=b=>"["+b+"]",Th={map:new Map,boxes:new Map,queue:[],validateQueue(){for(this.queue.sort((b,S)=>{var M,I,D,k;const v=(I=(M=this.boxes.get(b))==null?void 0:M.zIndex)!=null?I:0,P=(k=(D=this.boxes.get(S))==null?void 0:D.zIndex)!=null?k:0;return-(v-P)}),Pi("[Slide] freezer: validate",Ya(this.queue));this.queue.length>exports.FreezerLength;){const b=this.queue.pop(),S=this.map.get(b);S&&(Pi("[Slide] freezer: validate-freeze",b,Ya(this.queue)),S.freeze())}},set(b,S,v){Pi("[Slide] freezer: add",b,Ya(this.queue)),this.map.set(b,S),this.boxes.set(b,v),this.queue.includes(b)||this.queue.unshift(b),this.validateQueue()},delete(b){this.map.delete(b),this.boxes.delete(b),this.queue=this.queue.filter(S=>S!==b),Pi("[Slide] freezer: delete",b,Ya(this.queue))},focus(b){const S=this.map.get(b),v=this.queue.indexOf(b);v>-1&&this.queue.splice(v,1),this.queue.unshift(b),this.validateQueue(),Pi("[Slide] freezer: focus",b,Ya(this.queue)),S&&S.unfreeze()}},Oc=new Set;function Uw(b){return Oc.add(b),()=>Oc.delete(b)}const Nc=new Set;function kw(b){return Nc.add(b),()=>Nc.delete(b)}const Gw=b=>{Pc=!0,b.on("focus",({appId:S})=>{Th.focus(S)}),b.on("created",({appId:S})=>{Oc.forEach(v=>v(S))}),b.on("destroy",({appId:S})=>{Nc.forEach(v=>v(S))})};var Kv=(()=>`.netless-app-slide-content{position:relative;height:100%;overflow:hidden}.netless-app-slide-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-slide-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;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}.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;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;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;color:#191919}.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;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{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-slide-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:transparent;transition:background .4s;user-select:text;-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{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-slide-readonly.netless-app-slide-footer{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input{color:#a6a6a8}.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:#222}.telebox-color-scheme-dark .netless-app-slide-footer{color:#a6a6a8;background:#2d2d33;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)}.netless-app-slide-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden;transition:opacity .2s}.netless-app-slide-wb-view-hidden{opacity:0}.netless-app-slide-overlay{display:flex;align-items:center;justify-content:center;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%;padding:8px;background:rgba(255,0,0,.25);transition:opacity .3s;opacity:0;pointer-events:none}.netless-app-slide-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-slide-slide canvas{transform:scale(var(--netless-app-slide-scale, 1))}
7964
- `)();function Hw({container:b,taskId:S,resourceList:v=[],url:P=Dc,debug:M=!1}){if(!S)throw new Error("[Slide] taskId is required");b.style.cssText+="display:flex;flex-direction:column";const I=new Zv({target:b});return I.debug=!!M,I.mount(S,P,v),I}class Zv{constructor(S){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new Ka,this.ready=!1,this.readyPromise=new Promise(v=>{this.resolveReady=()=>{this.ready=!0,v()}}),this.hotkeyListener=v=>{if(this.slide)switch(v.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}},this.onPageChanged=v=>{this.viewer.setPageIndex(v-1)},this.onTransitionStart=()=>{this.viewer.setPlaying()},this.onTransitionEnd=()=>{this.viewer.setPaused()},this.onError=({error:v})=>{this.viewer.setPaused(),console.warn("[Slide] render error",v)},this.destroyed=!1,this.refreshPages=()=>{this.slide&&(this.viewer.pages=xv(this.slide,this.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slide.slideState.currentSlideIndex)))},this.onPlay=()=>{this.slide&&this.slide.nextStep()},this.onNewPageIndex=v=>{this.slide&&this.slide.slideCount>0&&this.slide.renderSlide(pv(v+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=S.target,this.bgColor=yv(this.target),this.viewer=new Jv({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.registerHotKeys(window)}registerHotKeys(S){this.sideEffect.addEventListener(S,"keydown",this.hotkeyListener,void 0,"hotkey")}mount(S,v,P,M=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new li.Slide({anchor:this.$slide,interactive:!0,mode:"local",controller:this.debug,enableGlobalClick:!0,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,transactionBgColor:this.bgColor}}),this.registerEventListeners(),P.length>0?this.slide.setResourceList(S,P):this.slide.setResource(S,v),this.slide.renderSlide(1),this.previewList=M}renderStyle(){const S=document.createElement("style");return S.appendChild(document.createTextNode(Kv)),S}registerEventListeners(){if(!this.slide)return;const{slide:S}=this;S.on(li.SLIDE_EVENTS.slideChange,this.onPageChanged),S.on(li.SLIDE_EVENTS.renderStart,this.onTransitionStart),S.on(li.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),S.on(li.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),S.on(li.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),S.on(li.SLIDE_EVENTS.renderError,this.onError),S.on(li.SLIDE_EVENTS.renderEnd,this.resolveReady),this.readyPromise.then(this.refreshPages)}destroy(){this.sideEffect.flushAll(),this.slide&&!this.destroyed&&(this.slide.destroy(),this.destroyed=!0),this.viewer.destroy()}getPageIndex(S){return(S>0?S:1)-1}renderSlideContainer(){if(!this.$slide){const S=document.createElement("div");S.className=this.wrapClassName("slide"),S.dataset.appKind="Slide",this.$slide=S}return this.$slide}wrapClassName(S){return`${this.namespace}-${S}`}}const jw=li.Slide.usePlugin.bind(li.Slide),Lc="0.2.61-beta.0",zw={kind:"Slide",setup(b){var Y;if(console.log("[Slide] setup @ "+Lc),b.getIsWritable()&&b.storage.ensureState(Rc),!b.storage.state.taskId)throw new Error("[Slide] no taskId");const S=b.getView();if(!S)throw new Error("[Slide] no view, please set scenePath on addApp()");S.disableCameraTransform=!0;const v=b.getBox();v.mountStyles(Kv);try{v.$content.dataset.appSlideVersion=Lc}catch{}const P=b.getInitScenePath();let M=null;const I=V=>{const et=b.getRoom();if(M&&M.slideController){let ut=!1;et&&b.getIsWritable()&&(sv(et,b,M.slideController.slide,P),ut=!0),Pi("[Slide] page to",V,ut?"(synced)":""),M.viewer.setPageIndex(V-1),M.viewer.setPaused(),M.onPageChanged();const Nt=M.viewer.pages.length;Nt>0&&b.dispatchAppEvent("pageStateChange",{index:V-1,length:Nt})}},D=V=>{const et=b.getAppOptions()||{},ut=new xS(iv(Ac({context:b},V),{onPageChanged:I,onNavigate:V.onNavigate,onRenderError:et.onRenderError,showRenderError:et.showRenderError,invisibleBehavior:et.invisibleBehavior}));return Pc&&Th.set(b.appId,ut,v),Nr.setAppController(b.appId,ut),ut.readyPromise.then(V.onReady).then(()=>{const Nt=b.getRoom();let At=!1;Nt&&b.getIsWritable()&&(sv(Nt,b,ut.slide,P),At=!0);const L=ut.slide.slideState.currentSlideIndex;Pi("[Slide] page to",L,At?"(synced)":"","(on ready)"),ut.slide.on("renderEnd",V.onRenderEnd)}),ut};M=new Dw({box:v,view:S,mountSlideController:D,mountWhiteboard:b.mountView.bind(b),baseScenePath:P,appId:b.appId,urlInterrupter:(Y=b.getAppOptions())==null?void 0:Y.urlInterrupter,onPagesReady:({length:V})=>{const et=(M==null?void 0:M.viewer.pageIndex)||0;b.dispatchAppEvent("pageStateChange",{index:et,length:V})},onNavigate:(V,et)=>{Pi("[Slide] user navigate to",V,et?`(${et})`:"")}});const k=b.getRoom(),W=new Ka;return W.add(()=>{var V;return Nr.setAppContext(b.appId,b),Nr.enable=((V=b.getAppOptions())==null?void 0:V.debug)||!1,Nr.level="debug",()=>Nr.deleteApp(b.appId)}),k&&(M.toggleClickThrough(k.state.memberState.currentApplianceName),W.add(()=>{const V=et=>{et.memberState&&M&&M.toggleClickThrough(et.memberState.currentApplianceName)};return k.callbacks.on("onRoomStateChanged",V),()=>k.callbacks.off("onRoomStateChanged",V)})),b.emitter.on("destroy",()=>{Pi("[Slide] destroy",b.appId),Pc&&Th.delete(b.appId),W.flushAll(),M&&(M.destroy(),M=null)}),M.mount(),{viewer:()=>M,controller:()=>M==null?void 0:M.slideController,slide:()=>{var V;return(V=M==null?void 0:M.slideController)==null?void 0:V.slide},nextStep:()=>{var V;return M&&M.slideController?((V=M==null?void 0:M.slideController)==null||V.slide.nextStep(),!0):!1},prevStep:()=>{var V;return M&&M.slideController?((V=M==null?void 0:M.slideController)==null||V.slide.prevStep(),!0):!1},position:()=>{const V=M==null?void 0:M.slideController;if(V)return[V.page,V.pageCount]},nextPage:()=>{const V=M==null?void 0:M.slideController;if(V){const{page:et,pageCount:ut}=V;if(ut>0&&et<ut)return V.jumpToPage(et+1),!0}return!1},prevPage:()=>{const V=M==null?void 0:M.slideController;if(V){const{page:et,pageCount:ut}=V;if(ut>0&&et>1)return V.jumpToPage(et-1),!0}return!1},jumpToPage:V=>{const et=M==null?void 0:M.slideController;if(et){const{page:ut,pageCount:Nt}=et;if(Nt>0&&ut>0&&ut<=Nt)return et.jumpToPage(V),!0}return!1}}}};exports.DefaultUrl=Dc;exports.Slide=li.Slide;exports.SlidePreviewer=Zv;exports.addHooks=Gw;exports.apps=Th;exports.default=zw;exports.getFreezerLength=Fw;exports.onCreated=Uw;exports.onDestroyed=kw;exports.previewSlide=Hw;exports.setFreezerLength=Bw;exports.usePlugin=jw;exports.version=Lc;
7964
+ `)();function Hw({container:b,taskId:S,resourceList:v=[],url:P=Dc,debug:M=!1}){if(!S)throw new Error("[Slide] taskId is required");b.style.cssText+="display:flex;flex-direction:column";const I=new Zv({target:b});return I.debug=!!M,I.mount(S,P,v),I}class Zv{constructor(S){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new Ka,this.ready=!1,this.readyPromise=new Promise(v=>{this.resolveReady=()=>{this.ready=!0,v()}}),this.hotkeyListener=v=>{if(this.slide)switch(v.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}},this.onPageChanged=v=>{this.viewer.setPageIndex(v-1)},this.onTransitionStart=()=>{this.viewer.setPlaying()},this.onTransitionEnd=()=>{this.viewer.setPaused()},this.onError=({error:v})=>{this.viewer.setPaused(),console.warn("[Slide] render error",v)},this.destroyed=!1,this.refreshPages=()=>{this.slide&&(this.viewer.pages=xv(this.slide,this.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slide.slideState.currentSlideIndex)))},this.onPlay=()=>{this.slide&&this.slide.nextStep()},this.onNewPageIndex=v=>{this.slide&&this.slide.slideCount>0&&this.slide.renderSlide(pv(v+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=S.target,this.bgColor=yv(this.target),this.viewer=new Jv({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.registerHotKeys(window)}registerHotKeys(S){this.sideEffect.addEventListener(S,"keydown",this.hotkeyListener,void 0,"hotkey")}mount(S,v,P,M=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new li.Slide({anchor:this.$slide,interactive:!0,mode:"local",controller:this.debug,enableGlobalClick:!0,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,transactionBgColor:this.bgColor}}),this.registerEventListeners(),P.length>0?this.slide.setResourceList(S,P):this.slide.setResource(S,v),this.slide.renderSlide(1),this.previewList=M}renderStyle(){const S=document.createElement("style");return S.appendChild(document.createTextNode(Kv)),S}registerEventListeners(){if(!this.slide)return;const{slide:S}=this;S.on(li.SLIDE_EVENTS.slideChange,this.onPageChanged),S.on(li.SLIDE_EVENTS.renderStart,this.onTransitionStart),S.on(li.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),S.on(li.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),S.on(li.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),S.on(li.SLIDE_EVENTS.renderError,this.onError),S.on(li.SLIDE_EVENTS.renderEnd,this.resolveReady),this.readyPromise.then(this.refreshPages)}destroy(){this.sideEffect.flushAll(),this.slide&&!this.destroyed&&(this.slide.destroy(),this.destroyed=!0),this.viewer.destroy()}getPageIndex(S){return(S>0?S:1)-1}renderSlideContainer(){if(!this.$slide){const S=document.createElement("div");S.className=this.wrapClassName("slide"),S.dataset.appKind="Slide",this.$slide=S}return this.$slide}wrapClassName(S){return`${this.namespace}-${S}`}}const jw=li.Slide.usePlugin.bind(li.Slide),Lc="0.2.61",zw={kind:"Slide",setup(b){var Y;if(console.log("[Slide] setup @ "+Lc),b.getIsWritable()&&b.storage.ensureState(Rc),!b.storage.state.taskId)throw new Error("[Slide] no taskId");const S=b.getView();if(!S)throw new Error("[Slide] no view, please set scenePath on addApp()");S.disableCameraTransform=!0;const v=b.getBox();v.mountStyles(Kv);try{v.$content.dataset.appSlideVersion=Lc}catch{}const P=b.getInitScenePath();let M=null;const I=V=>{const et=b.getRoom();if(M&&M.slideController){let ut=!1;et&&b.getIsWritable()&&(sv(et,b,M.slideController.slide,P),ut=!0),Pi("[Slide] page to",V,ut?"(synced)":""),M.viewer.setPageIndex(V-1),M.viewer.setPaused(),M.onPageChanged();const Nt=M.viewer.pages.length;Nt>0&&b.dispatchAppEvent("pageStateChange",{index:V-1,length:Nt})}},D=V=>{const et=b.getAppOptions()||{},ut=new xS(iv(Ac({context:b},V),{onPageChanged:I,onNavigate:V.onNavigate,onRenderError:et.onRenderError,showRenderError:et.showRenderError,invisibleBehavior:et.invisibleBehavior}));return Pc&&Th.set(b.appId,ut,v),Nr.setAppController(b.appId,ut),ut.readyPromise.then(V.onReady).then(()=>{const Nt=b.getRoom();let At=!1;Nt&&b.getIsWritable()&&(sv(Nt,b,ut.slide,P),At=!0);const L=ut.slide.slideState.currentSlideIndex;Pi("[Slide] page to",L,At?"(synced)":"","(on ready)"),ut.slide.on("renderEnd",V.onRenderEnd)}),ut};M=new Dw({box:v,view:S,mountSlideController:D,mountWhiteboard:b.mountView.bind(b),baseScenePath:P,appId:b.appId,urlInterrupter:(Y=b.getAppOptions())==null?void 0:Y.urlInterrupter,onPagesReady:({length:V})=>{const et=(M==null?void 0:M.viewer.pageIndex)||0;b.dispatchAppEvent("pageStateChange",{index:et,length:V})},onNavigate:(V,et)=>{Pi("[Slide] user navigate to",V,et?`(${et})`:"")}});const k=b.getRoom(),W=new Ka;return W.add(()=>{var V;return Nr.setAppContext(b.appId,b),Nr.enable=((V=b.getAppOptions())==null?void 0:V.debug)||!1,Nr.level="debug",()=>Nr.deleteApp(b.appId)}),k&&(M.toggleClickThrough(k.state.memberState.currentApplianceName),W.add(()=>{const V=et=>{et.memberState&&M&&M.toggleClickThrough(et.memberState.currentApplianceName)};return k.callbacks.on("onRoomStateChanged",V),()=>k.callbacks.off("onRoomStateChanged",V)})),b.emitter.on("destroy",()=>{Pi("[Slide] destroy",b.appId),Pc&&Th.delete(b.appId),W.flushAll(),M&&(M.destroy(),M=null)}),M.mount(),{viewer:()=>M,controller:()=>M==null?void 0:M.slideController,slide:()=>{var V;return(V=M==null?void 0:M.slideController)==null?void 0:V.slide},nextStep:()=>{var V;return M&&M.slideController?((V=M==null?void 0:M.slideController)==null||V.slide.nextStep(),!0):!1},prevStep:()=>{var V;return M&&M.slideController?((V=M==null?void 0:M.slideController)==null||V.slide.prevStep(),!0):!1},position:()=>{const V=M==null?void 0:M.slideController;if(V)return[V.page,V.pageCount]},nextPage:()=>{const V=M==null?void 0:M.slideController;if(V){const{page:et,pageCount:ut}=V;if(ut>0&&et<ut)return V.jumpToPage(et+1),!0}return!1},prevPage:()=>{const V=M==null?void 0:M.slideController;if(V){const{page:et,pageCount:ut}=V;if(ut>0&&et>1)return V.jumpToPage(et-1),!0}return!1},jumpToPage:V=>{const et=M==null?void 0:M.slideController;if(et){const{page:ut,pageCount:Nt}=et;if(Nt>0&&ut>0&&ut<=Nt)return et.jumpToPage(V),!0}return!1}}}};exports.DefaultUrl=Dc;exports.Slide=li.Slide;exports.SlidePreviewer=Zv;exports.addHooks=Gw;exports.apps=Th;exports.default=zw;exports.getFreezerLength=Fw;exports.onCreated=Uw;exports.onDestroyed=kw;exports.previewSlide=Hw;exports.setFreezerLength=Bw;exports.usePlugin=jw;exports.version=Lc;
7965
7965
  //# sourceMappingURL=main.cjs.js.map