@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.es.js CHANGED
@@ -39266,7 +39266,7 @@ class SlidePreviewer {
39266
39266
  }
39267
39267
  }
39268
39268
  const usePlugin = /* @__PURE__ */ Slide.Slide.usePlugin.bind(Slide.Slide);
39269
- const version = "0.2.61-beta.0";
39269
+ const version = "0.2.61";
39270
39270
  const SlideApp = {
39271
39271
  kind: "Slide",
39272
39272
  setup(context) {
package/dist/main.iife.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=Mc.get(o.hookPoint)||[];s.push(o),Mc.set(o.hookPoint,s)}(r)},t.volumeAdjuster=new lv,t.trackLogger=new Cw,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 Xi(void 0,void 0,void 0,function(){var o,s,a,l,h,u;return Yi(e,function(p){switch(p.label){case 0:return[4,t.flushLog(!0)];case 1:if(p.sent(),!pr)return[3,12];o=[],p.label=2;case 2:return p.trys.push([2,4,,5]),[4,pr.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,pr.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 Xi(void 0,void 0,void 0,function(){var r,o,s,a,l,h,u;return Yi(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="",pr?[4,pr.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,pr.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]}})})},Nw([(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=Mc.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 w=a.bind(this).apply(void 0,p),C=0,H=u.reverse();C<H.length;C++){E=H[C];try{w=E.after(w)}catch{}if(!w)throw new Error("plugin after hook return undefined result")}return w}})],t.prototype,"initSlideConfig",null),t}(xi.a);pr==null||pr.clear().catch(function(){}),window.addEventListener("__slide_log__",io.handleLogDownload),window.addEventListener("message",function(i){if(i.data.type==="@slide/_request_log_")io.handleLogReport(i.data.sessionId).catch(function(){});else if(i.data.type==="@slide/_request_frozen_")io.handleFrozenAllSlide();else if(i.data.type==="@slide/_request_release_")io.handleReleaseAllSlide();else if(i.data.type==="@slide/_update_volume_"){var t=.5;try{t=parseFloat(i.data.volume.toString())}catch{}io.volumeAdjuster.volume=t}else i.data.type==="@slide/_get_volume_"?window.postMessage({type:"@slide/_report_volume_",volume:io.volumeAdjuster.volume,customMessage:"@slide/_report_volume_"},"*"):i.data.type==="@slide/_preload_slide_"&&io.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(){io.flushLog().catch(function(){})},2e3)}]);const Ar="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t0=87,e0=20,Jc=[],n0=()=>{for(let b=0;b<e0;b++)Jc[b]=Ar.charAt(Math.random()*t0);return Jc.join("")};function Kc(b){try{return b()}catch(A){console.error(A)}}class ia{constructor(){this.push=this.addDisposer,this.disposers=new Map}addDisposer(A,v=this.genUID()){return this.flush(v),this.disposers.set(v,Array.isArray(A)?i0(A):A),v}add(A,v=this.genUID()){const P=A();return P?this.addDisposer(P,v):v}addEventListener(A,v,P,M,I=this.genUID()){return A.addEventListener(v,P,M),this.addDisposer(()=>A.removeEventListener(v,P,M),I),I}setTimeout(A,v,P=this.genUID()){const M=window.setTimeout(()=>{this.remove(P),A()},v);return this.addDisposer(()=>window.clearTimeout(M),P)}setInterval(A,v,P=this.genUID()){const M=window.setInterval(A,v);return this.addDisposer(()=>window.clearInterval(M),P)}remove(A){const v=this.disposers.get(A);return this.disposers.delete(A),v}flush(A){const v=this.remove(A);v&&v()}flushAll(){this.disposers.forEach(Kc),this.disposers.clear()}genUID(){let A;do A=n0();while(this.disposers.has(A));return A}}function i0(b){return()=>b.forEach(Kc)}function Zc(b,A,v){return Math.min(Math.max(b,A),v)}function r0(b){return typeof b=="object"&&b!==null}function o0(b){if(!b)return!1;const A=b.tagName;return A==="INPUT"||A==="TEXTAREA"||A==="SELECT"}var Qc={exports:{}},s0={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]},$c={exports:{}},a0=function(A){return!A||typeof A=="string"?!1:A instanceof Array||Array.isArray(A)||A.length>=0&&(A.splice instanceof Function||Object.getOwnPropertyDescriptor(A,A.length-1)&&A.constructor.name!=="String")},l0=a0,h0=Array.prototype.concat,u0=Array.prototype.slice,td=$c.exports=function(A){for(var v=[],P=0,M=A.length;P<M;P++){var I=A[P];l0(I)?v=h0.call(v,u0.call(I)):v.push(I)}return v};td.wrap=function(b){return function(){return b(td(arguments))}};var ra=s0,oa=$c.exports,ed=Object.hasOwnProperty,nd=Object.create(null);for(var Rh in ra)ed.call(ra,Rh)&&(nd[ra[Rh]]=Rh);var gr=Qc.exports={to:{},get:{}};gr.get=function(b){var A=b.substring(0,3).toLowerCase(),v,P;switch(A){case"hsl":v=gr.get.hsl(b),P="hsl";break;case"hwb":v=gr.get.hwb(b),P="hwb";break;default:v=gr.get.rgb(b),P="rgb";break}return v?{model:P,value:v}:null},gr.get.rgb=function(b){if(!b)return null;var A=/^#([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(A)){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]:ed.call(ra,k[1])?(D=ra[k[1]],D[3]=1,D):null:null;for(W=0;W<3;W++)D[W]=go(D[W],0,255);return D[3]=go(D[3],0,1),D},gr.get.hsl=function(b){if(!b)return null;var A=/^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(A);if(v){var P=parseFloat(v[4]),M=(parseFloat(v[1])%360+360)%360,I=go(parseFloat(v[2]),0,100),D=go(parseFloat(v[3]),0,100),k=go(isNaN(P)?1:P,0,1);return[M,I,D,k]}return null},gr.get.hwb=function(b){if(!b)return null;var A=/^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(A);if(v){var P=parseFloat(v[4]),M=(parseFloat(v[1])%360+360)%360,I=go(parseFloat(v[2]),0,100),D=go(parseFloat(v[3]),0,100),k=go(isNaN(P)?1:P,0,1);return[M,I,D,k]}return null},gr.to.hex=function(){var b=oa(arguments);return"#"+il(b[0])+il(b[1])+il(b[2])+(b[3]<1?il(Math.round(b[3]*255)):"")},gr.to.rgb=function(){var b=oa(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]+")"},gr.to.rgb.percent=function(){var b=oa(arguments),A=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("+A+"%, "+v+"%, "+P+"%)":"rgba("+A+"%, "+v+"%, "+P+"%, "+b[3]+")"},gr.to.hsl=function(){var b=oa(arguments);return b.length<4||b[3]===1?"hsl("+b[0]+", "+b[1]+"%, "+b[2]+"%)":"hsla("+b[0]+", "+b[1]+"%, "+b[2]+"%, "+b[3]+")"},gr.to.hwb=function(){var b=oa(arguments),A="";return b.length>=4&&b[3]!==1&&(A=", "+b[3]),"hwb("+b[0]+", "+b[1]+"%, "+b[2]+"%"+A+")"},gr.to.keyword=function(b){return nd[b.slice(0,3)]};function go(b,A,v){return Math.min(Math.max(A,b),v)}function il(b){var A=Math.round(b).toString(16).toUpperCase();return A.length<2?"0"+A:A}var c0=Qc.exports;class d0{constructor(A){this.enable=A,this.apps={},this.level="debug",this.roomLogger=null,this._onMessage=v=>{let P;v instanceof CustomEvent?P=v.detail:r0(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(A,v){var P;((P=this.apps)[A]||(P[A]={})).context=v,this.log(`[Slide] new ${A}`)}setAppController(A,v){var P;((P=this.apps)[A]||(P[A]={})).controller=v}deleteApp(A){delete this.apps[A],this.log(`[Slide] delete ${A}`)}initialize(){window.addEventListener("message",this._onMessage)}dispose(){window.removeEventListener("message",this._onMessage)}log(...A){this.roomLogger?this.roomLogger.info(...A):this.enable&&console.log(...A)}verbose(...A){this.roomLogger?this.roomLogger.debug(...A):this.enable&&this.level==="verbose"&&console.log(...A)}warn(...A){this.roomLogger?this.roomLogger.warn(...A):console.warn(...A)}}const Mr=new d0(!1),Ci=Mr.log.bind(Mr),Ih=Mr.verbose.bind(Mr),p0=b=>{Mr.roomLogger=b.logger};function id(b){try{const A=window.getComputedStyle(b).backgroundColor;if(A!=="rgba(0, 0, 0, 0)"&&A!=="transparent")return A;if(b.parentElement)return id(b.parentElement)}catch{}return"#ffffff"}function f0(b){const A=c0.get(b);if(A&&A.model==="rgb"){const v=A.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 rl="";function rd(b){return rl||(rl=f0(id(b)),Ci("[Slide] guess bg color",rl)),rl}const m0=b=>b.tracker;function od(b,A=[]){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=A.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 sd(b,A,v,P){var k;const M=v.slideState.currentSlideIndex;if(!(M>0)||!A.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;A.getBox().focus?D=b.state.sceneState.scenePath:D=((k=A.getView())==null?void 0:k.focusScenePath)||"",D!==I&&A.setScenePath(I)}const Ph="https://convertcdn.netless.link/dynamicConvert",g0=40,Oh={taskId:"",url:"",state:null,resourceList:[],previewList:[]},v0=function(){};class _0{constructor({context:A,anchor:v,onRenderStart:P,onPageChanged:M,onTransitionStart:I,onTransitionEnd:D,onNavigate:k,onError:W,onRenderError:Y,showRenderError:V,invisibleBehavior:et}){this.sideEffect=new ia,this.previewList=[],this.ready=!1,this.readyPromise=new Promise(ut=>{this.resolveReady=()=>{this.ready?Ci("[Slide] render end"):setTimeout(()=>{this.ready=!0,ut()},1e3)}}),this.onSyncDispatch=ut=>{if(this.context.getIsWritable()&&this.room){const Nt={type:Dn.SLIDE_EVENTS.syncDispatch,payload:ut};Ih("[Slide] dispatch",JSON.stringify(ut)),this.context.dispatchMagixEvent(Dn.SLIDE_EVENTS.syncDispatch,Nt)}},this.magixEventListener=ut=>{const{type:Nt,payload:At}=ut.payload;Nt===Dn.SLIDE_EVENTS.syncDispatch&&(this.syncStateOnce(),Ih("[Slide] receive",JSON.stringify(At)),this.slide.emit(Dn.SLIDE_EVENTS.syncReceive,At))},this.onStateChange=ut=>{this.context.getIsWritable()&&(Ih("[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<g0?(this.pollCount++,setTimeout(this.pollReadyState,500)):(this.pollCount=0,Ci("[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?(Ci("[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){Ci("[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&&(Ci("[Slide] sync storage",Nt),this.slide.setSlideState({currentSlideIndex:Nt}))}else this._toFreeze=-1},this.onVisibilityChange=async()=>{(this.visible=document.visibilityState==="visible")?(Ci("[Slide] unfreeze because tab becomes visible",{savedIsFrozen:this.savedIsFrozen}),this.savedIsFrozen||this.unfreeze()):(this.savedIsFrozen=this.isFrozen,Ci("[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||v0,this.onError=W,this.onRenderError=Y,this.showRenderError=V!=null?V:!0,this.context=A,this.room=A.getRoom(),this.player=this.room?void 0:A.getDisplayer(),p0(this.room||this.player),this.slide=this.createSlide(v,{whiteTracker:m0(A.getDisplayer())}),this.syncStateOnceFlag=!this.context.isAddApp,this.visible=document.visibilityState==="visible",this.savedIsFrozen=!1,this.initialize()}jumpToPage(A,v){this.ready&&(A=Zc(A,1,this.pageCount),this.onNavigate(A,v),this.slide.renderSlide(A))}initialize(){this.registerEventListeners(),this.kickStart()}kickStart(){const{context:A,slide:v}=this;A.getIsWritable()&&A.storage.ensureState(Oh);const{taskId:P,url:M,resourceList:I,previewList:D,state:k}=A.storage.state;this.previewList=D,I&&I.length>0?v.setResourceList(P,I):v.setResource(P,M||Ph),k?(Ci("[Slide] init with state",JSON.stringify(k)),this.syncStateOnceFlag=!1,v.setSlideState(k)):A.isAddApp&&(Ci("[Slide] init by renderSlide",1),v.renderSlide(1)),this.pollReadyState()}registerEventListeners(){const{context:A,slide:v}=this,P=this.sideEffect.addDisposer(A.storage.addStateChangedListener(()=>{A.storage.state.state&&(this.syncStateOnce(),this.sideEffect.flush(P))}));this.sideEffect.add(()=>A.addMagixEventListener(Dn.SLIDE_EVENTS.syncDispatch,this.magixEventListener,{fireSelfEventAfterCommit:!0})),v.on(Dn.SLIDE_EVENTS.renderStart,this.onRenderStart),v.on(Dn.SLIDE_EVENTS.slideChange,this.onPageChanged),v.on(Dn.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),v.on(Dn.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),v.on(Dn.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),v.on(Dn.SLIDE_EVENTS.renderError,this.onError),v.on(Dn.SLIDE_EVENTS.stateChange,this.onStateChange),v.on(Dn.SLIDE_EVENTS.syncDispatch,this.onSyncDispatch),v.on(Dn.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(Oh);const{state:A}=this.context.storage.state;A&&(Ci("[Slide] sync with state (once)",JSON.stringify(A)),this.slide.setSlideState(A),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(A,v={}){var I,D,k;const P=this.context.getAppOptions()||{};return new Dn.Slide({anchor:A,interactive:!0,mode:"interactive",controller:Mr.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||rd(A),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||(Ci("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0)}}function y0(b){const A="http://www.w3.org/2000/svg",v=document.createElementNS(A,"svg");v.setAttribute("class",`${b}-footer-icon-sidebar`),v.setAttribute("viewBox","0 0 64 64");const P=document.createElementNS(A,"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 x0(b){const A="http://www.w3.org/2000/svg",v=document.createElementNS(A,"svg");v.setAttribute("class",`${b}-footer-icon-arrow-left`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(A,"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 b0(b){const A="http://www.w3.org/2000/svg",v=document.createElementNS(A,"svg");v.setAttribute("class",`${b}-footer-icon-arrow-right`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(A,"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 T0(b){const A="http://www.w3.org/2000/svg",v=document.createElementNS(A,"svg");v.setAttribute("class",`${b}-footer-icon-play`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(A,"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 E0(b){const A="http://www.w3.org/2000/svg",v=document.createElementNS(A,"svg");v.setAttribute("class",`${b}-footer-icon-pause`),v.setAttribute("viewBox","0 0 500 500");const P=document.createElementNS(A,"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 vo=typeof window!="undefined",ad=vo&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),ld=vo&&"IntersectionObserver"in window,hd=vo&&"classList"in document.createElement("p"),ud=vo&&window.devicePixelRatio>1,S0={elements_selector:".lazy",container:ad||vo?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},cd=b=>Object.assign({},S0,b),dd=function(b,A){let v;const P="LazyLoad::Initialized",M=new b(A);try{v=new CustomEvent(P,{detail:{instance:M}})}catch{v=document.createEvent("CustomEvent"),v.initCustomEvent(P,!1,!1,{instance:M})}window.dispatchEvent(v)},w0=(b,A)=>{if(!!A)if(!A.length)dd(b,A);else for(let v=0,P;P=A[v];v+=1)dd(b,P)},oo="src",Nh="srcset",Lh="sizes",pd="poster",sa="llOriginalAttrs",fd="data",Dh="loading",md="loaded",gd="applied",A0="entered",Fh="error",vd="native",_d="data-",yd="ll-status",cr=(b,A)=>b.getAttribute(_d+A),M0=(b,A,v)=>{var P=_d+A;if(v===null){b.removeAttribute(P);return}b.setAttribute(P,v)},aa=b=>cr(b,yd),Jo=(b,A)=>M0(b,yd,A),ol=b=>Jo(b,null),Bh=b=>aa(b)===null,C0=b=>aa(b)===Dh,R0=b=>aa(b)===Fh,Uh=b=>aa(b)===vd,I0=[Dh,md,gd,Fh],P0=b=>I0.indexOf(aa(b))>=0,_o=(b,A,v,P)=>{if(!!b){if(P!==void 0){b(A,v,P);return}if(v!==void 0){b(A,v);return}b(A)}},ys=(b,A)=>{if(hd){b.classList.add(A);return}b.className+=(b.className?" ":"")+A},Yr=(b,A)=>{if(hd){b.classList.remove(A);return}b.className=b.className.replace(new RegExp("(^|\\s+)"+A+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},O0=b=>{b.llTempImage=document.createElement("IMG")},N0=b=>{delete b.llTempImage},xd=b=>b.llTempImage,sl=(b,A)=>{if(!A)return;const v=A._observer;!v||v.unobserve(b)},L0=b=>{b.disconnect()},D0=(b,A,v)=>{A.unobserve_entered&&sl(b,v)},kh=(b,A)=>{!b||(b.loadingCount+=A)},F0=b=>{!b||(b.toLoadCount-=1)},bd=(b,A)=>{!b||(b.toLoadCount=A)},B0=b=>b.loadingCount>0,U0=b=>b.toLoadCount>0,Td=b=>{let A=[];for(let v=0,P;P=b.children[v];v+=1)P.tagName==="SOURCE"&&A.push(P);return A},Gh=(b,A)=>{const v=b.parentNode;if(!v||v.tagName!=="PICTURE")return;Td(v).forEach(A)},Ed=(b,A)=>{Td(b).forEach(A)},al=[oo],Sd=[oo,pd],la=[oo,Nh,Lh],wd=[fd],ll=b=>!!b[sa],Ad=b=>b[sa],Md=b=>delete b[sa],xs=(b,A)=>{if(ll(b))return;const v={};A.forEach(P=>{v[P]=b.getAttribute(P)}),b[sa]=v},k0=b=>{ll(b)||(b[sa]={backgroundImage:b.style.backgroundImage})},G0=(b,A,v)=>{if(!v){b.removeAttribute(A);return}b.setAttribute(A,v)},Ko=(b,A)=>{if(!ll(b))return;const v=Ad(b);A.forEach(P=>{G0(b,P,v[P])})},H0=b=>{if(!ll(b))return;const A=Ad(b);b.style.backgroundImage=A.backgroundImage},Cd=(b,A,v)=>{ys(b,A.class_applied),Jo(b,gd),v&&(A.unobserve_completed&&sl(b,A),_o(A.callback_applied,b,v))},Rd=(b,A,v)=>{ys(b,A.class_loading),Jo(b,Dh),v&&(kh(v,1),_o(A.callback_loading,b,v))},yo=(b,A,v)=>{!v||b.setAttribute(A,v)},Id=(b,A)=>{yo(b,Lh,cr(b,A.data_sizes)),yo(b,Nh,cr(b,A.data_srcset)),yo(b,oo,cr(b,A.data_src))},j0=(b,A)=>{Gh(b,v=>{xs(v,la),Id(v,A)}),xs(b,la),Id(b,A)},z0=(b,A)=>{xs(b,al),yo(b,oo,cr(b,A.data_src))},V0=(b,A)=>{Ed(b,v=>{xs(v,al),yo(v,oo,cr(v,A.data_src))}),xs(b,Sd),yo(b,pd,cr(b,A.data_poster)),yo(b,oo,cr(b,A.data_src)),b.load()},W0=(b,A)=>{xs(b,wd),yo(b,fd,cr(b,A.data_src))},X0=(b,A,v)=>{const P=cr(b,A.data_bg),M=cr(b,A.data_bg_hidpi),I=ud&&M?M:P;!I||(b.style.backgroundImage=`url("${I}")`,xd(b).setAttribute(oo,I),Rd(b,A,v))},Y0=(b,A,v)=>{const P=cr(b,A.data_bg_multi),M=cr(b,A.data_bg_multi_hidpi),I=ud&&M?M:P;!I||(b.style.backgroundImage=I,Cd(b,A,v))},q0=(b,A,v)=>{const P=cr(b,A.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()),Cd(b,A,v)},Pd={IMG:j0,IFRAME:z0,VIDEO:V0,OBJECT:W0},J0=(b,A)=>{const v=Pd[b.tagName];!v||v(b,A)},K0=(b,A,v)=>{const P=Pd[b.tagName];!P||(P(b,A),Rd(b,A,v))},Z0=["IMG","IFRAME","VIDEO","OBJECT"],Q0=b=>Z0.indexOf(b.tagName)>-1,Od=(b,A)=>{A&&!B0(A)&&!U0(A)&&_o(b.callback_finish,A)},Nd=(b,A,v)=>{b.addEventListener(A,v),b.llEvLisnrs[A]=v},$0=(b,A,v)=>{b.removeEventListener(A,v)},Hh=b=>!!b.llEvLisnrs,t_=(b,A,v)=>{Hh(b)||(b.llEvLisnrs={});const P=b.tagName==="VIDEO"?"loadeddata":"load";Nd(b,P,A),Nd(b,"error",v)},jh=b=>{if(!Hh(b))return;const A=b.llEvLisnrs;for(let v in A){const P=A[v];$0(b,v,P)}delete b.llEvLisnrs},Ld=(b,A,v)=>{N0(b),kh(v,-1),F0(v),Yr(b,A.class_loading),A.unobserve_completed&&sl(b,v)},e_=(b,A,v,P)=>{const M=Uh(A);Ld(A,v,P),ys(A,v.class_loaded),Jo(A,md),_o(v.callback_loaded,A,P),M||Od(v,P)},n_=(b,A,v,P)=>{const M=Uh(A);Ld(A,v,P),ys(A,v.class_error),Jo(A,Fh),_o(v.callback_error,A,P),v.restore_on_error&&Ko(A,la),M||Od(v,P)},zh=(b,A,v)=>{const P=xd(b)||b;if(Hh(P))return;t_(P,D=>{e_(D,b,A,v),jh(P)},D=>{n_(D,b,A,v),jh(P)})},i_=(b,A,v)=>{O0(b),zh(b,A,v),k0(b),X0(b,A,v),Y0(b,A,v),q0(b,A,v)},r_=(b,A,v)=>{zh(b,A,v),K0(b,A,v)},Vh=(b,A,v)=>{Q0(b)?r_(b,A,v):i_(b,A,v)},o_=(b,A,v)=>{b.setAttribute("loading","lazy"),zh(b,A,v),J0(b,A),Jo(b,vd)},Dd=b=>{b.removeAttribute(oo),b.removeAttribute(Nh),b.removeAttribute(Lh)},s_=b=>{Gh(b,A=>{Dd(A)}),Dd(b)},Fd=b=>{Gh(b,A=>{Ko(A,la)}),Ko(b,la)},a_={IMG:Fd,IFRAME:b=>{Ko(b,al)},VIDEO:b=>{Ed(b,A=>{Ko(A,al)}),Ko(b,Sd),b.load()},OBJECT:b=>{Ko(b,wd)}},l_=b=>{const A=a_[b.tagName];if(!A){H0(b);return}A(b)},h_=(b,A)=>{Bh(b)||Uh(b)||(Yr(b,A.class_entered),Yr(b,A.class_exited),Yr(b,A.class_applied),Yr(b,A.class_loading),Yr(b,A.class_loaded),Yr(b,A.class_error))},u_=(b,A)=>{l_(b),h_(b,A),ol(b),Md(b)},c_=(b,A,v,P)=>{!v.cancel_on_exit||!C0(b)||b.tagName==="IMG"&&(jh(b),s_(b),Fd(b),Yr(b,v.class_loading),kh(P,-1),ol(b),_o(v.callback_cancel,b,A,P))},d_=(b,A,v,P)=>{const M=P0(b);Jo(b,A0),ys(b,v.class_entered),Yr(b,v.class_exited),D0(b,v,P),_o(v.callback_enter,b,A,P),!M&&Vh(b,v,P)},p_=(b,A,v,P)=>{Bh(b)||(ys(b,v.class_exited),c_(b,A,v,P),_o(v.callback_exit,b,A,P))},f_=["IMG","IFRAME","VIDEO"],Bd=b=>b.use_native&&"loading"in HTMLImageElement.prototype,m_=(b,A,v)=>{b.forEach(P=>{f_.indexOf(P.tagName)!==-1&&o_(P,A,v)}),bd(v,0)},g_=b=>b.isIntersecting||b.intersectionRatio>0,v_=b=>({root:b.container===document?null:b.container,rootMargin:b.thresholds||b.threshold+"px"}),__=(b,A,v)=>{b.forEach(P=>g_(P)?d_(P.target,P,A,v):p_(P.target,P,A,v))},y_=(b,A)=>{A.forEach(v=>{b.observe(v)})},x_=(b,A)=>{L0(b),y_(b,A)},b_=(b,A)=>{!ld||Bd(b)||(A._observer=new IntersectionObserver(v=>{__(v,b,A)},v_(b)))},Ud=b=>Array.prototype.slice.call(b),hl=b=>b.container.querySelectorAll(b.elements_selector),T_=b=>Ud(b).filter(Bh),E_=b=>R0(b),S_=b=>Ud(b).filter(E_),kd=(b,A)=>T_(b||hl(A)),w_=(b,A)=>{S_(hl(b)).forEach(P=>{Yr(P,b.class_error),ol(P)}),A.update()},A_=(b,A)=>{!vo||(A._onlineHandler=()=>{w_(b,A)},window.addEventListener("online",A._onlineHandler))},M_=b=>{!vo||window.removeEventListener("online",b._onlineHandler)},ha=function(b,A){const v=cd(b);this._settings=v,this.loadingCount=0,b_(v,this),A_(v,this),this.update(A)};ha.prototype={update:function(b){const A=this._settings,v=kd(b,A);if(bd(this,v.length),ad||!ld){this.loadAll(v);return}if(Bd(A)){m_(v,A,this);return}x_(this._observer,v)},destroy:function(){this._observer&&this._observer.disconnect(),M_(this),hl(this._settings).forEach(b=>{Md(b)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(b){const A=this._settings;kd(b,A).forEach(P=>{sl(P,this),Vh(P,A,this)})},restoreAll:function(){const b=this._settings;hl(b).forEach(A=>{u_(A,b)})}},ha.load=(b,A)=>{const v=cd(A);Vh(b,v)},ha.resetStatus=b=>{ol(b)},vo&&w0(ha,window.lazyLoadOptions);class Gd{constructor({readonly:A,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 ia,this.readonly=A,this.onNewPageIndex=v,this.onPlay=P,this.onPagesReady=M,this.urlInterrupter=I||(D=>D),this.render()}set pages(A){this._pages=A,this.refreshPreview().then(this.refreshBtnSidebar.bind(this)),this.refreshTotalPage(),this.onPagesReady&&this.onPagesReady(A)}get pages(){return this._pages}unmount(){this.$content.remove(),this.$footer.remove()}setReadonly(A){this.readonly=A,this.$content.classList.toggle(this.wrapClassName("readonly"),A),this.$footer.classList.toggle(this.wrapClassName("readonly"),A),this.$pageNumberInput.disabled=A}destroy(){var A;(A=this.previewLazyLoad)==null||A.destroy(),this.sideEffect.flushAll(),this.unmount()}setPageIndex(A){Number.isNaN(A)||(this.pageIndex=A,this.$pageNumberInput.value=String(A+1))}refreshTotalPage(){this.pages.length?this.$totalPage.textContent=" / "+this.pages.length:this.$totalPage.textContent=""}setSmallBox(A){this.isSmallBox!==A&&(this.isSmallBox=A,this.$footer.classList.toggle(this.wrapClassName("float-footer"),A))}render(){return this.renderContent(),this.renderFooter(),this.$content}renderContent(){if(!this.$content){const A=document.createElement("div");A.className=this.wrapClassName("content"),this.$content=A,this.readonly&&A.classList.add(this.wrapClassName("readonly")),A.appendChild(this.renderPreviewMask()),A.appendChild(this.renderPreview())}return this.$content}renderPreview(){if(!this.$preview){const A=document.createElement("div");A.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=A,this.refreshPreview(),this.sideEffect.addEventListener(A,"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:A}=this,v=this.wrapClassName("preview-page"),P=this.wrapClassName("preview-page-name");for(;A.firstChild;)A.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),A.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",A=>{this.readonly||A.target===this.$previewMask&&this.togglePreview(!1)})),this.$previewMask}refreshBtnSidebar(){this.$btnSidebar.style.display=this.pages.length>0?"":"none"}renderFooter(){if(!this.$footer){const A=document.createElement("div");A.className=this.wrapClassName("footer"),this.$footer=A,this.readonly&&A.classList.add(this.wrapClassName("readonly")),this.isSmallBox&&A.classList.add(this.wrapClassName("float-footer"));const v=this.renderFooterBtn("btn-sidebar",y0(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",x0(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",T0(this.namespace),E0(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",b0(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(A,v,P){const M=document.createElement("button");return M.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(A),M.appendChild(v),P&&M.appendChild(P),M}togglePreview(A){if(this.isShowPreview=A!=null?A:!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 ha({container:this.$preview,elements_selector:`.${this.wrapClassName("preview-page>img")}`})),this.$preview.scrollTo({top:v.offsetTop-16}))}}wrapClassName(A){return`${this.namespace}-${A}`}}const C_=new Set(["clicker"]),R_=function(){};class I_{constructor({box:A,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),Mr.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=od(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 ia,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 import("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=A,this.whiteboardView=v,this.mountSlideController=P,this.mountWhiteboard=M,this.onNavigate=Y||R_,this.baseScenePath=I,this.appId=D,this.viewer=new Gd({readonly:A.readonly,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay,urlInterrupter:k,onPagesReady:W}),this.sideEffect.add(()=>{const V=et=>{this.setReadonly(et)};return A.events.on("readonly",V),()=>A.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",A=>{if(this.box.focus&&this.slideController&&!o0(A.target))switch(A.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 A=document.createElement("div");A.className=this.wrapClassName("overlay"),this.$overlay=A}return this.$overlay}renderSlideContainer(){if(!this.$slide){const A=document.createElement("div");A.className=this.wrapClassName("slide"),A.dataset.appKind="Slide",this.$slide=A}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(A){return(A>0?A:1)-1}unmount(){return this.slideController&&(this.slideController.destroy(),this.slideController=null),this.viewer.unmount(),this}setReadonly(A){this.viewer.setReadonly(A)}destroy(){this.sideEffect.flushAll(),this.unmount(),this.viewer.destroy()}toggleClickThrough(A){this.$whiteboardView.style.pointerEvents=!A||C_.has(A)?"none":"auto"}wrapClassName(A){return`${this.namespace}-${A}`}getWhiteSnapshot(A,v,P,M,I){this.whiteboardView.screenshotToCanvas(P,`${this.baseScenePath}/${A}`,v.width,v.height,{centerX:0,centerY:0,scale:Math.min(v.width/M,v.height/I)})}reportProgress(A,v){window.postMessage({type:"@netless/_result_save_pdf_",appId:this.appId,progress:A,result:v})}}let Wh=!1;Zn.FreezerLength=2;function P_(){return Zn.FreezerLength}function O_(b){Zn.FreezerLength=b<1?1/0:b}const ua=b=>"["+b+"]",ul={map:new Map,boxes:new Map,queue:[],validateQueue(){for(this.queue.sort((b,A)=>{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(A))==null?void 0:D.zIndex)!=null?k:0;return-(v-P)}),Ci("[Slide] freezer: validate",ua(this.queue));this.queue.length>Zn.FreezerLength;){const b=this.queue.pop(),A=this.map.get(b);A&&(Ci("[Slide] freezer: validate-freeze",b,ua(this.queue)),A.freeze())}},set(b,A,v){Ci("[Slide] freezer: add",b,ua(this.queue)),this.map.set(b,A),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(A=>A!==b),Ci("[Slide] freezer: delete",b,ua(this.queue))},focus(b){const A=this.map.get(b),v=this.queue.indexOf(b);v>-1&&this.queue.splice(v,1),this.queue.unshift(b),this.validateQueue(),Ci("[Slide] freezer: focus",b,ua(this.queue)),A&&A.unfreeze()}},Xh=new Set;function N_(b){return Xh.add(b),()=>Xh.delete(b)}const Yh=new Set;function L_(b){return Yh.add(b),()=>Yh.delete(b)}const D_=b=>{Wh=!0,b.on("focus",({appId:A})=>{ul.focus(A)}),b.on("created",({appId:A})=>{Xh.forEach(v=>v(A))}),b.on("destroy",({appId:A})=>{Yh.forEach(v=>v(A))})};var Hd=(()=>`.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 F_({container:b,taskId:A,resourceList:v=[],url:P=Ph,debug:M=!1}){if(!A)throw new Error("[Slide] taskId is required");b.style.cssText+="display:flex;flex-direction:column";const I=new jd({target:b});return I.debug=!!M,I.mount(A,P,v),I}class jd{constructor(A){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new ia,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=od(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(Zc(v+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=A.target,this.bgColor=rd(this.target),this.viewer=new Gd({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.registerHotKeys(window)}registerHotKeys(A){this.sideEffect.addEventListener(A,"keydown",this.hotkeyListener,void 0,"hotkey")}mount(A,v,P,M=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new Dn.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(A,P):this.slide.setResource(A,v),this.slide.renderSlide(1),this.previewList=M}renderStyle(){const A=document.createElement("style");return A.appendChild(document.createTextNode(Hd)),A}registerEventListeners(){if(!this.slide)return;const{slide:A}=this;A.on(Dn.SLIDE_EVENTS.slideChange,this.onPageChanged),A.on(Dn.SLIDE_EVENTS.renderStart,this.onTransitionStart),A.on(Dn.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),A.on(Dn.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),A.on(Dn.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),A.on(Dn.SLIDE_EVENTS.renderError,this.onError),A.on(Dn.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(A){return(A>0?A:1)-1}renderSlideContainer(){if(!this.$slide){const A=document.createElement("div");A.className=this.wrapClassName("slide"),A.dataset.appKind="Slide",this.$slide=A}return this.$slide}wrapClassName(A){return`${this.namespace}-${A}`}}const B_=Dn.Slide.usePlugin.bind(Dn.Slide),qh="0.2.61-beta.0",U_={kind:"Slide",setup(b){var Y;if(console.log("[Slide] setup @ "+qh),b.getIsWritable()&&b.storage.ensureState(Oh),!b.storage.state.taskId)throw new Error("[Slide] no taskId");const A=b.getView();if(!A)throw new Error("[Slide] no view, please set scenePath on addApp()");A.disableCameraTransform=!0;const v=b.getBox();v.mountStyles(Hd);try{v.$content.dataset.appSlideVersion=qh}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()&&(sd(et,b,M.slideController.slide,P),ut=!0),Ci("[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 _0($v(qc({context:b},V),{onPageChanged:I,onNavigate:V.onNavigate,onRenderError:et.onRenderError,showRenderError:et.showRenderError,invisibleBehavior:et.invisibleBehavior}));return Wh&&ul.set(b.appId,ut,v),Mr.setAppController(b.appId,ut),ut.readyPromise.then(V.onReady).then(()=>{const Nt=b.getRoom();let At=!1;Nt&&b.getIsWritable()&&(sd(Nt,b,ut.slide,P),At=!0);const L=ut.slide.slideState.currentSlideIndex;Ci("[Slide] page to",L,At?"(synced)":"","(on ready)"),ut.slide.on("renderEnd",V.onRenderEnd)}),ut};M=new I_({box:v,view:A,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)=>{Ci("[Slide] user navigate to",V,et?`(${et})`:"")}});const k=b.getRoom(),W=new ia;return W.add(()=>{var V;return Mr.setAppContext(b.appId,b),Mr.enable=((V=b.getAppOptions())==null?void 0:V.debug)||!1,Mr.level="debug",()=>Mr.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",()=>{Ci("[Slide] destroy",b.appId),Wh&&ul.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}}}};return Zn.DefaultUrl=Ph,Zn.Slide=Dn.Slide,Zn.SlidePreviewer=jd,Zn.addHooks=D_,Zn.apps=ul,Zn.default=U_,Zn.getFreezerLength=P_,Zn.onCreated=N_,Zn.onDestroyed=L_,Zn.previewSlide=F_,Zn.setFreezerLength=O_,Zn.usePlugin=B_,Zn.version=qh,Object.defineProperties(Zn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),Zn}({});
7964
+ `)();function F_({container:b,taskId:A,resourceList:v=[],url:P=Ph,debug:M=!1}){if(!A)throw new Error("[Slide] taskId is required");b.style.cssText+="display:flex;flex-direction:column";const I=new jd({target:b});return I.debug=!!M,I.mount(A,P,v),I}class jd{constructor(A){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new ia,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=od(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(Zc(v+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=A.target,this.bgColor=rd(this.target),this.viewer=new Gd({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.registerHotKeys(window)}registerHotKeys(A){this.sideEffect.addEventListener(A,"keydown",this.hotkeyListener,void 0,"hotkey")}mount(A,v,P,M=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new Dn.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(A,P):this.slide.setResource(A,v),this.slide.renderSlide(1),this.previewList=M}renderStyle(){const A=document.createElement("style");return A.appendChild(document.createTextNode(Hd)),A}registerEventListeners(){if(!this.slide)return;const{slide:A}=this;A.on(Dn.SLIDE_EVENTS.slideChange,this.onPageChanged),A.on(Dn.SLIDE_EVENTS.renderStart,this.onTransitionStart),A.on(Dn.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),A.on(Dn.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),A.on(Dn.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),A.on(Dn.SLIDE_EVENTS.renderError,this.onError),A.on(Dn.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(A){return(A>0?A:1)-1}renderSlideContainer(){if(!this.$slide){const A=document.createElement("div");A.className=this.wrapClassName("slide"),A.dataset.appKind="Slide",this.$slide=A}return this.$slide}wrapClassName(A){return`${this.namespace}-${A}`}}const B_=Dn.Slide.usePlugin.bind(Dn.Slide),qh="0.2.61",U_={kind:"Slide",setup(b){var Y;if(console.log("[Slide] setup @ "+qh),b.getIsWritable()&&b.storage.ensureState(Oh),!b.storage.state.taskId)throw new Error("[Slide] no taskId");const A=b.getView();if(!A)throw new Error("[Slide] no view, please set scenePath on addApp()");A.disableCameraTransform=!0;const v=b.getBox();v.mountStyles(Hd);try{v.$content.dataset.appSlideVersion=qh}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()&&(sd(et,b,M.slideController.slide,P),ut=!0),Ci("[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 _0($v(qc({context:b},V),{onPageChanged:I,onNavigate:V.onNavigate,onRenderError:et.onRenderError,showRenderError:et.showRenderError,invisibleBehavior:et.invisibleBehavior}));return Wh&&ul.set(b.appId,ut,v),Mr.setAppController(b.appId,ut),ut.readyPromise.then(V.onReady).then(()=>{const Nt=b.getRoom();let At=!1;Nt&&b.getIsWritable()&&(sd(Nt,b,ut.slide,P),At=!0);const L=ut.slide.slideState.currentSlideIndex;Ci("[Slide] page to",L,At?"(synced)":"","(on ready)"),ut.slide.on("renderEnd",V.onRenderEnd)}),ut};M=new I_({box:v,view:A,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)=>{Ci("[Slide] user navigate to",V,et?`(${et})`:"")}});const k=b.getRoom(),W=new ia;return W.add(()=>{var V;return Mr.setAppContext(b.appId,b),Mr.enable=((V=b.getAppOptions())==null?void 0:V.debug)||!1,Mr.level="debug",()=>Mr.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",()=>{Ci("[Slide] destroy",b.appId),Wh&&ul.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}}}};return Zn.DefaultUrl=Ph,Zn.Slide=Dn.Slide,Zn.SlidePreviewer=jd,Zn.addHooks=D_,Zn.apps=ul,Zn.default=U_,Zn.getFreezerLength=P_,Zn.onCreated=N_,Zn.onDestroyed=L_,Zn.previewSlide=F_,Zn.setFreezerLength=O_,Zn.usePlugin=B_,Zn.version=qh,Object.defineProperties(Zn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),Zn}({});
7965
7965
  //# sourceMappingURL=main.iife.js.map