@netless/app-slide 0.0.44 → 0.0.45

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/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import { apps, FreezerLength, addHooks } from "./utils/freezer";
6
6
  export type { PreviewParams } from "./SlidePreviewer";
7
7
  export { SlidePreviewer, default as previewSlide } from "./SlidePreviewer";
8
8
  export type { Attributes, AddHooks, FreezableSlide };
9
- export declare const version = "0.0.44";
9
+ export declare const version = "0.0.45";
10
10
  export { DefaultUrl, apps, FreezerLength, addHooks };
11
11
  declare const SlideApp: NetlessApp<Attributes>;
12
12
  export default SlideApp;
package/dist/main.cjs.js CHANGED
@@ -6075,6 +6075,6 @@ void main(void){
6075
6075
  `)}},t.prototype.emitSyncDispatch=function(e){if(!this.lock.isLocked(e.type)){var n=Math.random().toString(32).substr(2);this.lock.addLock(e.type,n),this.emit(To.syncDispatch,yp(yp({},e),{uuid:n})),this.log+="=== sync dispatch ["+new Date().toISOString()+`] ===
6076
6076
  `,this.log+=JSON.stringify(e,null,2),this.log+=`
6077
6077
 
6078
- `}},t.prototype.setMainSeqStep=function(e,n){var i;(i=this.player)===null||i===void 0||i.setMainSeqStep(e,n)},t.prototype.setInteractive=function(e){var n;this.interactive=e,(n=this.player)===null||n===void 0||n.setInteractive(e)},t.prototype.pause=function(){var e;(e=this.player)===null||e===void 0||e.pause()},t.prototype.resume=function(){var e;(e=this.player)===null||e===void 0||e.resume()},t.prototype.frozen=function(){var e;return Ns(this,void 0,void 0,function(){var n,i,o,s=this;return Fs(this,function(a){switch(a.label){case 0:return this.isFrowning?[2,O_(function(){return!s.isFrowning},6e4)]:this.view&&this.player?(this.isFrowning=!0,[4,this.player.clock.waitUntil(function(){return!s.isLoading},6e4)]):[3,2];case 1:for(i in a.sent(),n=this.player.getSnapshot()||"",this.cacheImage.src=n,this.frame.appendChild(this.cacheImage),this.player.destroy(),(e=this.playerController)===null||e===void 0||e.destroy(),this.player=void 0,this.__slideState.mediaState)o=this.__slideState.mediaState[i],this.__slideState.mediaState[i]=yp(yp({},o),{frozenTime:this.timestamp()});this.isFrowning=!1,a.label=2;case 2:return[2]}})})},t.prototype.release=function(){var e;return Ns(this,void 0,void 0,function(){var n,i,o,s,a=this;return Fs(this,function(l){switch(l.label){case 0:if(this.isReleasing)return[2,O_(function(){return!a.isReleasing},6e4)];for(i in this.isReleasing=!0,this.player=this.initPlayer(this.config),this.player.view&&(this.frame.appendChild(this.player.view),this.player.view.style.visibility="hidden"),n=this.__slideState,this.__slideState=Object(j.cloneDeep)(pS),n.mediaState)(o=n.mediaState[i]).type==="play"&&(s=Math.max((e=o.frozenTime)!==null&&e!==void 0?e:0,o.time),o.time=this.timestamp()-(s-o.time),o.frozenTime=void 0);return[4,this.setSlideState(n)];case 1:return l.sent(),[4,this.player.clock.delay(333)];case 2:l.sent(),this.player.view&&(this.player.view.style.visibility="visible");try{this.frame.removeChild(this.cacheImage)}catch{}return this.isReleasing=!1,[2]}})})},t.prototype.destroy=function(){var e,n,i,o;this.playerController&&this.playerController.destroy(),this.frameResizeObserver.disconnect(),(e=this.player)===null||e===void 0||e.removeAllListeners(),(n=this.player)===null||n===void 0||n.destroy(),(i=this.player)===null||i===void 0||i.removeAllListeners(),window.removeEventListener("__slide_log__",this.handleLogDownload),window.removeEventListener("__slide_state__",this.handleSlideStateLog),window.removeEventListener("__slide_ref__",this.handleSlideRef),window.clearInterval(this.persistLogId),Nu&&Nu.removeItem(this.logId).catch(function(){});try{((o=this.player)===null||o===void 0?void 0:o.view)&&this.anchor.removeChild(this.player.view)}catch{}},t.disposeLocalCache=function(){wc.storeManager.dispose()},t}(L.a)}]);function PS(T,P,v){return Math.min(Math.max(T,P),v)}function RS(T){return typeof T=="object"&&T!==null}function Mp(T){return JSON.parse(JSON.stringify(T))}var IS={exports:{}},gI={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]},LS={exports:{}},vI=function(P){return!P||typeof P=="string"?!1:P instanceof Array||Array.isArray(P)||P.length>=0&&(P.splice instanceof Function||Object.getOwnPropertyDescriptor(P,P.length-1)&&P.constructor.name!=="String")},_I=vI,yI=Array.prototype.concat,xI=Array.prototype.slice,OS=LS.exports=function(P){for(var v=[],b=0,it=P.length;b<it;b++){var dt=P[b];_I(dt)?v=yI.call(v,xI.call(dt)):v.push(dt)}return v};OS.wrap=function(T){return function(){return T(OS(arguments))}};var Ap=gI,Cp=LS.exports,DS=Object.hasOwnProperty,NS={};for(var k_ in Ap)DS.call(Ap,k_)&&(NS[Ap[k_]]=k_);var ro=IS.exports={to:{},get:{}};ro.get=function(T){var P=T.substring(0,3).toLowerCase(),v,b;switch(P){case"hsl":v=ro.get.hsl(T),b="hsl";break;case"hwb":v=ro.get.hwb(T),b="hwb";break;default:v=ro.get.rgb(T),b="rgb";break}return v?{model:b,value:v}:null};ro.get.rgb=function(T){if(!T)return null;var P=/^#([a-f0-9]{3,4})$/i,v=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,b=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,it=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,dt=/^(\w+)$/,Y=[0,0,0,1],L,j,F;if(L=T.match(v)){for(F=L[2],L=L[1],j=0;j<3;j++){var k=j*2;Y[j]=parseInt(L.slice(k,k+2),16)}F&&(Y[3]=parseInt(F,16)/255)}else if(L=T.match(P)){for(L=L[1],F=L[3],j=0;j<3;j++)Y[j]=parseInt(L[j]+L[j],16);F&&(Y[3]=parseInt(F+F,16)/255)}else if(L=T.match(b)){for(j=0;j<3;j++)Y[j]=parseInt(L[j+1],0);L[4]&&(L[5]?Y[3]=parseFloat(L[4])*.01:Y[3]=parseFloat(L[4]))}else if(L=T.match(it)){for(j=0;j<3;j++)Y[j]=Math.round(parseFloat(L[j+1])*2.55);L[4]&&(L[5]?Y[3]=parseFloat(L[4])*.01:Y[3]=parseFloat(L[4]))}else return(L=T.match(dt))?L[1]==="transparent"?[0,0,0,0]:DS.call(Ap,L[1])?(Y=Ap[L[1]],Y[3]=1,Y):null:null;for(j=0;j<3;j++)Y[j]=Sl(Y[j],0,255);return Y[3]=Sl(Y[3],0,1),Y};ro.get.hsl=function(T){if(!T)return null;var P=/^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=T.match(P);if(v){var b=parseFloat(v[4]),it=(parseFloat(v[1])%360+360)%360,dt=Sl(parseFloat(v[2]),0,100),Y=Sl(parseFloat(v[3]),0,100),L=Sl(isNaN(b)?1:b,0,1);return[it,dt,Y,L]}return null};ro.get.hwb=function(T){if(!T)return null;var P=/^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=T.match(P);if(v){var b=parseFloat(v[4]),it=(parseFloat(v[1])%360+360)%360,dt=Sl(parseFloat(v[2]),0,100),Y=Sl(parseFloat(v[3]),0,100),L=Sl(isNaN(b)?1:b,0,1);return[it,dt,Y,L]}return null};ro.to.hex=function(){var T=Cp(arguments);return"#"+_g(T[0])+_g(T[1])+_g(T[2])+(T[3]<1?_g(Math.round(T[3]*255)):"")};ro.to.rgb=function(){var T=Cp(arguments);return T.length<4||T[3]===1?"rgb("+Math.round(T[0])+", "+Math.round(T[1])+", "+Math.round(T[2])+")":"rgba("+Math.round(T[0])+", "+Math.round(T[1])+", "+Math.round(T[2])+", "+T[3]+")"};ro.to.rgb.percent=function(){var T=Cp(arguments),P=Math.round(T[0]/255*100),v=Math.round(T[1]/255*100),b=Math.round(T[2]/255*100);return T.length<4||T[3]===1?"rgb("+P+"%, "+v+"%, "+b+"%)":"rgba("+P+"%, "+v+"%, "+b+"%, "+T[3]+")"};ro.to.hsl=function(){var T=Cp(arguments);return T.length<4||T[3]===1?"hsl("+T[0]+", "+T[1]+"%, "+T[2]+"%)":"hsla("+T[0]+", "+T[1]+"%, "+T[2]+"%, "+T[3]+")"};ro.to.hwb=function(){var T=Cp(arguments),P="";return T.length>=4&&T[3]!==1&&(P=", "+T[3]),"hwb("+T[0]+", "+T[1]+"%, "+T[2]+"%"+P+")"};ro.to.keyword=function(T){return NS[T.slice(0,3)]};function Sl(T,P,v){return Math.min(Math.max(P,T),v)}function _g(T){var P=Math.round(T).toString(16).toUpperCase();return P.length<2?"0"+P:P}var bI=IS.exports;class wI{constructor(P){this.enable=P,this.apps={},this.level="debug",this._onMessage=v=>{RS(v.data)&&(typeof v.data.slide=="boolean"?this.enable=v.data.slide:v.data.slide==="__instance"&&console.log(this))},window.addEventListener("message",this._onMessage)}log(...P){this.enable&&console.log(...P)}verbose(...P){this.enable&&this.level==="verbose"&&console.log(...P)}dispose(P){this.enable=!1,delete this.apps[P],window.removeEventListener("message",this._onMessage)}}const Bs=new wI(!1),Qi=Bs.log.bind(Bs),SI=Bs.verbose.bind(Bs);function FS(T){try{const P=window.getComputedStyle(T).backgroundColor;if(P!=="rgba(0, 0, 0, 0)"&&P!=="transparent")return P;if(T.parentElement)return FS(T.parentElement)}catch{}return"#ffffff"}function TI(T){const P=bI.get(T);if(P&&P.model==="rgb"){const v=P.value,it=(((Math.round(v[0])&255)<<16)+((Math.round(v[1])&255)<<8)+(Math.round(v[2])&255)).toString(16);return"#"+"000000".substring(it.length)+it}else return T}let yg="";function kS(T){return yg||(yg=TI(FS(T)),Qi("[Slide] guess bg color",yg)),yg}function BS(T){const{width:P,height:v,slideCount:b,slideState:it}=T,{taskId:dt,url:Y}=it,L=[];for(let j=1;j<=b;++j)L.push({width:P,height:v,thumbnail:`${Y}/${dt}/preview/${j}.png`,src:"ppt"});return L}function EI(T,P,v,b){var L;const it=v.slideState.currentSlideIndex;if(!(it>0)||!P.getIsWritable())return;const dt=[b,it].join("/");if(T.scenePathType(dt)!=="page"){T.removeScenes(b);const j=v.slideCount,F=[];for(let k=1;k<=j;++k)F.push({name:`${k}`});T.putScenes(b,F)}let Y;P.getBox().focus?Y=T.state.sceneState.scenePath:Y=((L=P.getView())==null?void 0:L.focusScenePath)||"",Y!==dt&&P.setScenePath(dt)}const B_="https://convertcdn.netless.link/dynamicConvert",MI=40,U_={taskId:"",url:"",state:null};class AI{constructor({context:P,anchor:v,onPageChanged:b,onTransitionStart:it,onTransitionEnd:dt,onError:Y}){this.sideEffect=new Ep,this.ready=!1,this.readyPromise=new Promise(L=>{this.resolveReady=()=>setTimeout(()=>{this.ready=!0,L()},1e3)}),this.onSyncDispatch=L=>{if(this.context.getIsWritable()&&this.room){const j={type:Li.SLIDE_EVENTS.syncDispatch,payload:L};Qi("[Slide] dispatch",L),this.room.dispatchMagixEvent(this.channel,j)}},this.magixEventListener=L=>{if(L.event===this.channel&&RS(L.payload)){const{type:j,payload:F}=L.payload;j===Li.SLIDE_EVENTS.syncDispatch&&(this.syncStateOnce(),Qi("[Slide] receive",F),this.syncStateOnceFlag||this.slide.emit(Li.SLIDE_EVENTS.syncReceive,F))}},this.onStateChange=L=>{this.context.getIsWritable()&&(SI("[Slide] state change",JSON.stringify(L,null,2)),this.context.updateAttributes(["state"],L))},this.onSeeked=()=>{const L=this.context.getAttributes().state;L&&this.slide.setSlideState(Mp(L))},this.pollCount=0,this.pollReadyState=()=>{this.ready?this._toFreeze===1?this.freeze():this._toFreeze===-1&&this.unfreeze():this.pollCount<MI?(this.pollCount++,setTimeout(this.pollReadyState,500)):(this.pollCount=0,Qi("[Slide] renderSlide (retry after timeout)",1),this.slide.renderSlide(1))},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.freezePromise=null,this.freeze=()=>{this.ready?(Qi("[Slide] freeze",this.context.appId),this.freezePromise?this._toFreeze=1:this.isFrozen||(this._toFreeze=0,this.freezePromise=this.slide.frozen().then(this.afterFreeze.bind(this,1)))):this._toFreeze=1},this.unfreeze=async()=>{this.ready?(Qi("[Slide] unfreeze",this.context.appId),this.freezePromise?this._toFreeze=-1:this.isFrozen&&(this._toFreeze=0,this.freezePromise=this.slide.release().then(this.afterFreeze.bind(this,-1)))):this._toFreeze=-1},this.onPageChanged=b,this.onTransitionStart=it,this.onTransitionEnd=dt,this.onError=Y,this.context=P,this.channel=`channel-${P.appId}`,this.room=P.getRoom(),this.player=this.room?void 0:P.getDisplayer(),this.slide=this.createSlide(v),this.syncStateOnceFlag=!this.context.isAddApp,this.initialize()}jumpToPage(P){this.ready&&(P=PS(P,1,this.pageCount),this.slide.renderSlide(P))}initialize(){this.registerEventListeners(),this.kickStart()}kickStart(){const{context:P,slide:v}=this,{taskId:b,url:it,state:dt}=ku(ku({},U_),this.context.getAttributes());v.setResource(b,it||B_),dt?(Qi("[Slide] init with state",Mp(dt)),this.syncStateOnceFlag=!1,v.setSlideState(Mp(dt))):P.isAddApp&&(Qi("[Slide] init by renderSlide",1),v.renderSlide(1)),this.pollReadyState()}registerEventListeners(){const{context:P,slide:v}=this;this.sideEffect.add(()=>{const b=P.mobxUtils.reaction(()=>P.getAttributes().state,()=>{this.syncStateOnce(),b()});return b}),this.sideEffect.add(()=>(P.emitter.on("seek",this.onSeeked),()=>P.emitter.off("seek",this.onSeeked))),this.sideEffect.add(()=>{const b=P.getDisplayer();return b.addMagixEventListener(this.channel,this.magixEventListener,{fireSelfEventAfterCommit:!0}),()=>b.removeMagixEventListener(this.channel)}),v.on(Li.SLIDE_EVENTS.slideChange,this.onPageChanged),v.on(Li.SLIDE_EVENTS.renderStart,this.onTransitionStart),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)}syncStateOnce(){if(this.syncStateOnceFlag){const{state:P}=ku(ku({},U_),this.context.getAttributes());P&&(Qi("[Slide] sync with state (once)",Mp(P)),this.slide.setSlideState(Mp(P)),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(P){var b,it;return new Li.Slide({anchor:P,interactive:!0,mode:"interactive",resize:!0,controller:Bs.enable,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,resolution:(b=this.context.getAppOptions())==null?void 0:b.resolution,transactionBgColor:((it=this.context.getAppOptions())==null?void 0:it.bgColor)||kS(P)},timestamp:this.timestamp})}destroy(){this.sideEffect.flushAll(),this.destroyed||(Qi("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0)}afterFreeze(P){P===1?(this.isFrozen=!0,this.freezePromise=null,this._toFreeze===-1&&this.unfreeze()):P===-1&&(this.isFrozen=!1,this.freezePromise=null,this._toFreeze===1&&this.freeze())}}function CI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-sidebar`),v.setAttribute("viewBox","0 0 64 64");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function PI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-arrow-left`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function RI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-arrow-right`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function II(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-play`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function LI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-pause`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}const Bu=typeof window!="undefined",US=Bu&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),GS=Bu&&"IntersectionObserver"in window,HS=Bu&&"classList"in document.createElement("p"),zS=Bu&&window.devicePixelRatio>1,OI={elements_selector:".lazy",container:US||Bu?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_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},jS=T=>Object.assign({},OI,T),VS=function(T,P){let v;const b="LazyLoad::Initialized",it=new T(P);try{v=new CustomEvent(b,{detail:{instance:it}})}catch{v=document.createEvent("CustomEvent"),v.initCustomEvent(b,!1,!1,{instance:it})}window.dispatchEvent(v)},DI=(T,P)=>{if(!!P)if(!P.length)VS(T,P);else for(let v=0,b;b=P[v];v+=1)VS(T,b)},Ia="src",G_="srcset",H_="sizes",WS="poster",Pp="llOriginalAttrs",z_="loading",XS="loaded",qS="applied",NI="entered",j_="error",YS="native",$S="data-",ZS="ll-status",Eo=(T,P)=>T.getAttribute($S+P),FI=(T,P,v)=>{var b=$S+P;if(v===null){T.removeAttribute(b);return}T.setAttribute(b,v)},Rp=T=>Eo(T,ZS),Uu=(T,P)=>FI(T,ZS,P),xg=T=>Uu(T,null),V_=T=>Rp(T)===null,kI=T=>Rp(T)===z_,BI=T=>Rp(T)===j_,W_=T=>Rp(T)===YS,UI=[z_,XS,qS,j_],GI=T=>UI.indexOf(Rp(T))>=0,Tl=(T,P,v,b)=>{if(!!T){if(b!==void 0){T(P,v,b);return}if(v!==void 0){T(P,v);return}T(P)}},Ac=(T,P)=>{if(HS){T.classList.add(P);return}T.className+=(T.className?" ":"")+P},Us=(T,P)=>{if(HS){T.classList.remove(P);return}T.className=T.className.replace(new RegExp("(^|\\s+)"+P+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},HI=T=>{T.llTempImage=document.createElement("IMG")},zI=T=>{delete T.llTempImage},JS=T=>T.llTempImage,bg=(T,P)=>{if(!P)return;const v=P._observer;!v||v.unobserve(T)},jI=T=>{T.disconnect()},VI=(T,P,v)=>{P.unobserve_entered&&bg(T,v)},X_=(T,P)=>{!T||(T.loadingCount+=P)},WI=T=>{!T||(T.toLoadCount-=1)},KS=(T,P)=>{!T||(T.toLoadCount=P)},XI=T=>T.loadingCount>0,qI=T=>T.toLoadCount>0,QS=T=>{let P=[];for(let v=0,b;b=T.children[v];v+=1)b.tagName==="SOURCE"&&P.push(b);return P},q_=(T,P)=>{const v=T.parentNode;if(!v||v.tagName!=="PICTURE")return;QS(v).forEach(P)},tT=(T,P)=>{QS(T).forEach(P)},wg=[Ia],eT=[Ia,WS],Sg=[Ia,G_,H_],Tg=T=>!!T[Pp],nT=T=>T[Pp],iT=T=>delete T[Pp],Ip=(T,P)=>{if(Tg(T))return;const v={};P.forEach(b=>{v[b]=T.getAttribute(b)}),T[Pp]=v},YI=T=>{Tg(T)||(T[Pp]={backgroundImage:T.style.backgroundImage})},$I=(T,P,v)=>{if(!v){T.removeAttribute(P);return}T.setAttribute(P,v)},Lp=(T,P)=>{if(!Tg(T))return;const v=nT(T);P.forEach(b=>{$I(T,b,v[b])})},ZI=T=>{if(!Tg(T))return;const P=nT(T);T.style.backgroundImage=P.backgroundImage},JI=(T,P,v)=>{Ac(T,P.class_applied),Uu(T,qS),!!v&&(P.unobserve_completed&&bg(T,P),Tl(P.callback_applied,T,v))},rT=(T,P,v)=>{Ac(T,P.class_loading),Uu(T,z_),!!v&&(X_(v,1),Tl(P.callback_loading,T,v))},Gu=(T,P,v)=>{!v||T.setAttribute(P,v)},oT=(T,P)=>{Gu(T,H_,Eo(T,P.data_sizes)),Gu(T,G_,Eo(T,P.data_srcset)),Gu(T,Ia,Eo(T,P.data_src))},KI=(T,P)=>{q_(T,v=>{Ip(v,Sg),oT(v,P)}),Ip(T,Sg),oT(T,P)},QI=(T,P)=>{Ip(T,wg),Gu(T,Ia,Eo(T,P.data_src))},t3=(T,P)=>{tT(T,v=>{Ip(v,wg),Gu(v,Ia,Eo(v,P.data_src))}),Ip(T,eT),Gu(T,WS,Eo(T,P.data_poster)),Gu(T,Ia,Eo(T,P.data_src)),T.load()},e3=(T,P,v)=>{const b=Eo(T,P.data_bg),it=Eo(T,P.data_bg_hidpi),dt=zS&&it?it:b;!dt||(T.style.backgroundImage=`url("${dt}")`,JS(T).setAttribute(Ia,dt),rT(T,P,v))},n3=(T,P,v)=>{const b=Eo(T,P.data_bg_multi),it=Eo(T,P.data_bg_multi_hidpi),dt=zS&&it?it:b;!dt||(T.style.backgroundImage=dt,JI(T,P,v))},sT={IMG:KI,IFRAME:QI,VIDEO:t3},i3=(T,P)=>{const v=sT[T.tagName];!v||v(T,P)},r3=(T,P,v)=>{const b=sT[T.tagName];!b||(b(T,P),rT(T,P,v))},o3=["IMG","IFRAME","VIDEO"],s3=T=>o3.indexOf(T.tagName)>-1,aT=(T,P)=>{P&&!XI(P)&&!qI(P)&&Tl(T.callback_finish,P)},lT=(T,P,v)=>{T.addEventListener(P,v),T.llEvLisnrs[P]=v},a3=(T,P,v)=>{T.removeEventListener(P,v)},Y_=T=>!!T.llEvLisnrs,l3=(T,P,v)=>{Y_(T)||(T.llEvLisnrs={});const b=T.tagName==="VIDEO"?"loadeddata":"load";lT(T,b,P),lT(T,"error",v)},$_=T=>{if(!Y_(T))return;const P=T.llEvLisnrs;for(let v in P){const b=P[v];a3(T,v,b)}delete T.llEvLisnrs},uT=(T,P,v)=>{zI(T),X_(v,-1),WI(v),Us(T,P.class_loading),P.unobserve_completed&&bg(T,v)},u3=(T,P,v,b)=>{const it=W_(P);uT(P,v,b),Ac(P,v.class_loaded),Uu(P,XS),Tl(v.callback_loaded,P,b),it||aT(v,b)},h3=(T,P,v,b)=>{const it=W_(P);uT(P,v,b),Ac(P,v.class_error),Uu(P,j_),Tl(v.callback_error,P,b),it||aT(v,b)},Z_=(T,P,v)=>{const b=JS(T)||T;if(Y_(b))return;l3(b,Y=>{u3(Y,T,P,v),$_(b)},Y=>{h3(Y,T,P,v),$_(b)})},c3=(T,P,v)=>{HI(T),Z_(T,P,v),YI(T),e3(T,P,v),n3(T,P,v)},d3=(T,P,v)=>{Z_(T,P,v),r3(T,P,v)},J_=(T,P,v)=>{s3(T)?d3(T,P,v):c3(T,P,v)},p3=(T,P,v)=>{T.setAttribute("loading","lazy"),Z_(T,P,v),i3(T,P),Uu(T,YS)},hT=T=>{T.removeAttribute(Ia),T.removeAttribute(G_),T.removeAttribute(H_)},f3=T=>{q_(T,P=>{hT(P)}),hT(T)},cT=T=>{q_(T,P=>{Lp(P,Sg)}),Lp(T,Sg)},m3=T=>{tT(T,P=>{Lp(P,wg)}),Lp(T,eT),T.load()},g3=T=>{Lp(T,wg)},v3={IMG:cT,IFRAME:g3,VIDEO:m3},_3=T=>{const P=v3[T.tagName];if(!P){ZI(T);return}P(T)},y3=(T,P)=>{V_(T)||W_(T)||(Us(T,P.class_entered),Us(T,P.class_exited),Us(T,P.class_applied),Us(T,P.class_loading),Us(T,P.class_loaded),Us(T,P.class_error))},x3=(T,P)=>{_3(T),y3(T,P),xg(T),iT(T)},b3=(T,P,v,b)=>{!v.cancel_on_exit||!kI(T)||T.tagName==="IMG"&&($_(T),f3(T),cT(T),Us(T,v.class_loading),X_(b,-1),xg(T),Tl(v.callback_cancel,T,P,b))},w3=(T,P,v,b)=>{const it=GI(T);Uu(T,NI),Ac(T,v.class_entered),Us(T,v.class_exited),VI(T,v,b),Tl(v.callback_enter,T,P,b),!it&&J_(T,v,b)},S3=(T,P,v,b)=>{V_(T)||(Ac(T,v.class_exited),b3(T,P,v,b),Tl(v.callback_exit,T,P,b))},T3=["IMG","IFRAME","VIDEO"],dT=T=>T.use_native&&"loading"in HTMLImageElement.prototype,E3=(T,P,v)=>{T.forEach(b=>{T3.indexOf(b.tagName)!==-1&&p3(b,P,v)}),KS(v,0)},M3=T=>T.isIntersecting||T.intersectionRatio>0,A3=T=>({root:T.container===document?null:T.container,rootMargin:T.thresholds||T.threshold+"px"}),C3=(T,P,v)=>{T.forEach(b=>M3(b)?w3(b.target,b,P,v):S3(b.target,b,P,v))},P3=(T,P)=>{P.forEach(v=>{T.observe(v)})},R3=(T,P)=>{jI(T),P3(T,P)},I3=(T,P)=>{!GS||dT(T)||(P._observer=new IntersectionObserver(v=>{C3(v,T,P)},A3(T)))},pT=T=>Array.prototype.slice.call(T),Eg=T=>T.container.querySelectorAll(T.elements_selector),L3=T=>pT(T).filter(V_),O3=T=>BI(T),D3=T=>pT(T).filter(O3),fT=(T,P)=>L3(T||Eg(P)),N3=(T,P)=>{D3(Eg(T)).forEach(b=>{Us(b,T.class_error),xg(b)}),P.update()},F3=(T,P)=>{!Bu||window.addEventListener("online",()=>{N3(T,P)})},Op=function(T,P){const v=jS(T);this._settings=v,this.loadingCount=0,I3(v,this),F3(v,this),this.update(P)};Op.prototype={update:function(T){const P=this._settings,v=fT(T,P);if(KS(this,v.length),US||!GS){this.loadAll(v);return}if(dT(P)){E3(v,P,this);return}R3(this._observer,v)},destroy:function(){this._observer&&this._observer.disconnect(),Eg(this._settings).forEach(T=>{iT(T)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(T){const P=this._settings;fT(T,P).forEach(b=>{bg(b,this),J_(b,P,this)})},restoreAll:function(){const T=this._settings;Eg(T).forEach(P=>{x3(P,T)})}};Op.load=(T,P)=>{const v=jS(P);J_(T,v)};Op.resetStatus=T=>{xg(T)};Bu&&DI(Op,window.lazyLoadOptions);class mT{constructor({readonly:P,onNewPageIndex:v,onPlay:b}){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 Ep,this.readonly=P,this.onNewPageIndex=v,this.onPlay=b,this.render()}set pages(P){this._pages=P,this.refreshPreview(),this.refreshTotalPage(),this.refreshBtnSidebar()}get pages(){return this._pages}unmount(){this.$content.remove(),this.$footer.remove()}setReadonly(P){this.readonly=P,this.$content.classList.toggle(this.wrapClassName("readonly"),P),this.$footer.classList.toggle(this.wrapClassName("readonly"),P),this.$pageNumberInput.disabled=P}destroy(){this.sideEffect.flushAll(),this.unmount()}setPageIndex(P){Number.isNaN(P)||(this.pageIndex=P,this.$pageNumberInput.value=String(P+1))}refreshTotalPage(){this.pages.length?this.$totalPage.textContent=" / "+this.pages.length:this.$totalPage.textContent=""}setSmallBox(P){this.isSmallBox!==P&&(this.isSmallBox=P,this.$footer.classList.toggle(this.wrapClassName("float-footer"),P))}render(){return this.renderContent(),this.renderFooter(),this.$content}renderContent(){if(!this.$content){const P=document.createElement("div");P.className=this.wrapClassName("content"),this.$content=P,this.readonly&&P.classList.add(this.wrapClassName("readonly")),P.appendChild(this.renderPreviewMask()),P.appendChild(this.renderPreview())}return this.$content}renderPreview(){if(!this.$preview){const P=document.createElement("div");P.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=P,this.sideEffect.add(()=>(this.previewLazyLoad=new Op({container:this.$preview,elements_selector:`.${this.wrapClassName("preview-page>img")}`}),()=>{var v;return(v=this.previewLazyLoad)==null?void 0:v.destroy()})),this.refreshPreview(),this.sideEffect.addEventListener(P,"click",v=>{var it;if(this.readonly)return;const b=(it=v.target.dataset)==null?void 0:it.pageIndex;b&&(v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation(),this.onNewPageIndex(Number(b)),this.togglePreview(!1))})}return this.$preview}refreshPreview(){var it;const{$preview:P}=this,v=this.wrapClassName("preview-page"),b=this.wrapClassName("preview-page-name");for(;P.firstChild;)P.firstChild.remove();this.pages.forEach((dt,Y)=>{var mt;const L=(mt=dt.thumbnail)!=null?mt:dt.src.startsWith("ppt")?void 0:dt.src;if(!L)return;const j=String(Y),F=document.createElement("a");F.className=v+" "+this.wrapClassName(`preview-page-${Y}`),F.setAttribute("href","#"),F.dataset.pageIndex=j;const k=document.createElement("span");k.className=b,k.textContent=String(Y+1),k.dataset.pageIndex=j;const $=document.createElement("img");$.width=dt.width,$.height=dt.height,$.dataset.src=L,$.dataset.pageIndex=j,F.appendChild($),F.appendChild(k),P.appendChild(F)}),(it=this.previewLazyLoad)==null||it.update()}renderPreviewMask(){return this.$previewMask||(this.$previewMask=document.createElement("div"),this.$previewMask.className=this.wrapClassName("preview-mask"),this.sideEffect.addEventListener(this.$previewMask,"click",P=>{this.readonly||P.target===this.$previewMask&&this.togglePreview(!1)})),this.$previewMask}refreshBtnSidebar(){this.$btnSidebar.style.display=this.pages.length>0?"":"none"}renderFooter(){if(!this.$footer){const P=document.createElement("div");P.className=this.wrapClassName("footer"),this.$footer=P,this.readonly&&P.classList.add(this.wrapClassName("readonly")),this.isSmallBox&&P.classList.add(this.wrapClassName("float-footer"));const v=this.renderFooterBtn("btn-sidebar",CI(this.namespace));this.sideEffect.addEventListener(v,"click",()=>{this.readonly||this.togglePreview()}),this.$btnSidebar=v,this.$btnSidebar.style.display="none",this.$footer.appendChild(v);const b=document.createElement("div");b.className=this.wrapClassName("page-jumps");const it=this.renderFooterBtn("btn-page-back",PI(this.namespace));if(this.sideEffect.addEventListener(it,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex-1)}),b.appendChild(it),this.onPlay){const F=this.renderFooterBtn("btn-page-play",II(this.namespace),LI(this.namespace));this.$btnPlay=F,this.sideEffect.addEventListener(F,"click",()=>{this.readonly||(this.setPlaying(),this.onPlay&&this.onPlay())}),b.appendChild(F)}const dt=this.renderFooterBtn("btn-page-next",RI(this.namespace));this.sideEffect.addEventListener(dt,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex+1)}),b.appendChild(dt);const Y=document.createElement("div");Y.className=this.wrapClassName("page-number");const L=document.createElement("input");L.className=this.wrapClassName("page-number-input"),L.value=String(this.pageIndex+1),this.readonly&&(L.disabled=!0),this.$pageNumberInput=L,this.sideEffect.addEventListener(L,"change",()=>{this.readonly||L.value&&this.onNewPageIndex(Number(L.value)-1)});const j=document.createElement("span");this.$totalPage=j,Y.appendChild(L),Y.appendChild(j),this.$footer.appendChild(b),this.$footer.appendChild(Y)}return this.$footer}renderFooterBtn(P,v,b){const it=document.createElement("button");return it.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(P),it.appendChild(v),b&&it.appendChild(b),it}togglePreview(P){if(this.isShowPreview=P!=null?P:!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.$preview.scrollTo({top:v.offsetTop-16})}}wrapClassName(P){return`${this.namespace}-${P}`}}const k3=new Set(["clicker"]);class B3{constructor({box:P,view:v,mountSlideController:b,mountWhiteboard:it}){this.slideController=null,this.isViewMounted=!1,this.onError=({error:dt})=>{this.viewer.setPaused(),console.warn("[Slide] render error",dt)},this.refreshPages=()=>{this.slideController&&(this.viewer.pages=BS(this.slideController.slide),this.viewer.setPageIndex(this.getPageIndex(this.slideController.page)),this.scaleDocsToFit())},this.scaleDocsToFit=()=>{if(this.slideController){const{width:dt,height:Y}=this.slideController.slide;dt&&Y&&(this.whiteboardView.moveCameraToContain({originX:-dt/2,originY:-Y/2,width:dt,height:Y,animationMode:"immediately"}),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=dt=>{this.slideController&&this.slideController.jumpToPage(dt+1)},this.sideEffect=new Ep,this.namespace="netless-app-slide",this.box=P,this.whiteboardView=v,this.mountSlideController=b,this.mountWhiteboard=it,this.viewer=new mT({readonly:P.readonly,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.sideEffect.add(()=>{const dt=Y=>{this.setReadonly(Y)};return P.events.on("readonly",dt),()=>P.events.off("readonly",dt)}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.viewer.$content.appendChild(this.renderWhiteboardView()),this.sideEffect.addEventListener(window,"keydown",P=>{if(this.box.focus&&this.slideController)switch(P.key){case"ArrowUp":case"ArrowLeft":{this.slideController.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slideController.slide.nextStep();break}}})}renderSlideContainer(){if(!this.$slide){const P=document.createElement("div");P.className=this.wrapClassName("slide"),P.dataset.appKind="Slide",this.$slide=P}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,onTransitionStart:this.viewer.setPlaying,onTransitionEnd:this.viewer.setPaused,onReady:this.refreshPages,onError:this.onError}),this.scaleDocsToFit(),this.sideEffect.add(()=>(this.whiteboardView.callbacks.on("onSizeUpdated",this.scaleDocsToFit),()=>this.whiteboardView.callbacks.off("onSizeUpdated",this.scaleDocsToFit))),this}getPageIndex(P){return(P>0?P:1)-1}unmount(){return this.slideController&&(this.slideController.destroy(),this.slideController=null),this.viewer.unmount(),this}setReadonly(P){this.viewer.setReadonly(P)}destroy(){this.sideEffect.flushAll(),this.unmount(),this.viewer.destroy()}toggleClickThrough(P){this.$whiteboardView.style.pointerEvents=!P||k3.has(P)?"none":"auto"}wrapClassName(P){return`${this.namespace}-${P}`}}const gT=2,Mg={map:new Map,queue:[],validateQueue(){for(Qi("[Slide] freezer: validate",this.queue);this.queue.length>gT;){const T=this.queue.pop(),P=this.map.get(T);P&&(Qi("[Slide] freezer: validate-freeze",T,this.queue),P.freeze())}},set(T,P){Qi("[Slide] freezer: add",T,this.queue),this.map.set(T,P),this.queue.includes(T)||this.queue.unshift(T),this.validateQueue()},delete(T){Qi("[Slide] freezer: delete",T,this.queue),this.map.delete(T),this.queue=this.queue.filter(P=>P!==T)},focus(T){const P=this.map.get(T),v=this.queue.indexOf(T);v>-1&&this.queue.splice(v,1),this.queue.unshift(T),this.validateQueue(),Qi("[Slide] freezer: focus",T,this.queue),P&&P.unfreeze()}},U3=T=>{T.on("focus",({appId:P})=>{Mg.focus(P)})};var vT=`.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}.netless-app-slide-footer-btn:hover{background:rgba(237,237,240,.9)}.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:1.5em;text-align:right;border-radius:2px;color:currentColor;background:transparent;transition:background .4s;user-select:text}.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-btn{cursor:not-allowed}.netless-app-slide-readonly .netless-app-slide-footer-btn:hover{background:transparent}.netless-app-slide-readonly .netless-app-slide-page-number-input{cursor:not-allowed}.netless-app-slide-readonly .netless-app-slide-page-number-input:hover,.netless-app-slide-readonly .netless-app-slide-page-number-input:focus,.netless-app-slide-readonly .netless-app-slide-page-number-input:active{background:transparent;box-shadow:none}.netless-app-slide-readonly .netless-app-slide-page-number-input:disabled{color:inherit}.netless-app-slide-readonly.netless-app-slide-float-footer{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input{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}.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))}
6079
- `;function G3({container:T,taskId:P,url:v=B_,debug:b=!1}){if(!P)throw new Error("[Slide] taskId is required");T.style.cssText+="display:flex;flex-direction:column";const it=new _T({target:T});return it.debug=!!b,it.mount(P,v),it}class _T{constructor(P){this.slide=null,this.debug=!1,this.sideEffect=new Ep,this.ready=!1,this.readyPromise=new Promise(v=>{this.resolveReady=()=>{this.ready=!0,v()}}),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=BS(this.slide),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(PS(v+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=P.target,this.bgColor=kS(this.target),this.viewer=new mT({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.sideEffect.addEventListener(window,"keydown",P=>{if(this.slide)switch(P.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}})}mount(P,v){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:!1,mode:"local",resize:!0,controller:this.debug,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,transactionBgColor:this.bgColor}}),this.registerEventListeners(),this.slide.setResource(P,v),this.slide.renderSlide(1)}renderStyle(){const P=document.createElement("style");return P.appendChild(document.createTextNode(vT)),P}registerEventListeners(){if(!this.slide)return;const{slide:P}=this;P.on(Li.SLIDE_EVENTS.slideChange,this.onPageChanged),P.on(Li.SLIDE_EVENTS.renderStart,this.onTransitionStart),P.on(Li.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),P.on(Li.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),P.on(Li.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),P.on(Li.SLIDE_EVENTS.renderError,this.onError),P.on(Li.SLIDE_EVENTS.renderEnd,this.resolveReady),this.readyPromise.then(this.refreshPages)}destroy(){this.sideEffect.flushAll(),this.slide&&!this.destroyed&&(Qi("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0),this.viewer.destroy()}getPageIndex(P){return(P>0?P:1)-1}renderSlideContainer(){if(!this.$slide){const P=document.createElement("div");P.className=this.wrapClassName("slide"),P.dataset.appKind="Slide",this.$slide=P}return this.$slide}wrapClassName(P){return`${this.namespace}-${P}`}}const K_="0.0.44",H3={kind:"Slide",setup(T){console.log("[Slide] setup @ "+K_),T.getIsWritable()&&mI(T,U_);const P=T.getAttributes();if(!(P==null?void 0:P.taskId))throw new Error("[Slide] no taskId");const v=T.getView();if(!v)throw new Error("[Slide] no view, please set scenePath on addApp()");v.disableCameraTransform=!0;const b=T.getBox();b.mountStyles(vT);try{b.$content.dataset.appSlideVersion=K_}catch{}const it=T.getInitScenePath();let dt=null;const Y=k=>{const $=T.getRoom();if(dt&&dt.slideController){let mt=!1;$&&T.getIsWritable()&&(EI($,T,dt.slideController.slide,it),mt=!0),Qi("[Slide] page to",k,mt),dt.viewer.setPageIndex(k-1)}},L=k=>{var mt,At;const $=new AI(MS(ku({context:T},k),{onPageChanged:Y}));return Mg.set(T.appId,$),((mt=Bs.apps)[At=T.appId]||(mt[At]={})).controller=$,$.readyPromise.then(k.onReady),$};dt=new B3({box:b,view:v,mountSlideController:L,mountWhiteboard:T.mountView.bind(T)});const j=T.getRoom(),F=new Ep;F.add(()=>{var k,$,mt;return((k=Bs.apps)[$=T.appId]||(k[$]={})).context=T,Bs.enable=((mt=T.getAppOptions())==null?void 0:mt.debug)||!1,Bs.level="debug",()=>Bs.dispose(T.appId)}),j&&(dt.toggleClickThrough(j.state.memberState.currentApplianceName),F.add(()=>{const k=$=>{$.memberState&&dt&&dt.toggleClickThrough($.memberState.currentApplianceName)};return j.callbacks.on("onRoomStateChanged",k),()=>j.callbacks.off("onRoomStateChanged",k)})),T.emitter.on("destroy",()=>{Qi("[Slide]: destroy"),Mg.delete(T.appId),F.flushAll(),dt&&(dt.destroy(),dt=null)}),dt.mount()}};exports.DefaultUrl=B_;exports.FreezerLength=gT;exports.SlidePreviewer=_T;exports.addHooks=U3;exports.apps=Mg;exports.default=H3;exports.previewSlide=G3;exports.version=K_;
6078
+ `}},t.prototype.setMainSeqStep=function(e,n){var i;(i=this.player)===null||i===void 0||i.setMainSeqStep(e,n)},t.prototype.setInteractive=function(e){var n;this.interactive=e,(n=this.player)===null||n===void 0||n.setInteractive(e)},t.prototype.pause=function(){var e;(e=this.player)===null||e===void 0||e.pause()},t.prototype.resume=function(){var e;(e=this.player)===null||e===void 0||e.resume()},t.prototype.frozen=function(){var e;return Ns(this,void 0,void 0,function(){var n,i,o,s=this;return Fs(this,function(a){switch(a.label){case 0:return this.isFrowning?[2,O_(function(){return!s.isFrowning},6e4)]:this.view&&this.player?(this.isFrowning=!0,[4,this.player.clock.waitUntil(function(){return!s.isLoading},6e4)]):[3,2];case 1:for(i in a.sent(),n=this.player.getSnapshot()||"",this.cacheImage.src=n,this.frame.appendChild(this.cacheImage),this.player.destroy(),(e=this.playerController)===null||e===void 0||e.destroy(),this.player=void 0,this.__slideState.mediaState)o=this.__slideState.mediaState[i],this.__slideState.mediaState[i]=yp(yp({},o),{frozenTime:this.timestamp()});this.isFrowning=!1,a.label=2;case 2:return[2]}})})},t.prototype.release=function(){var e;return Ns(this,void 0,void 0,function(){var n,i,o,s,a=this;return Fs(this,function(l){switch(l.label){case 0:if(this.isReleasing)return[2,O_(function(){return!a.isReleasing},6e4)];for(i in this.isReleasing=!0,this.player=this.initPlayer(this.config),this.player.view&&(this.frame.appendChild(this.player.view),this.player.view.style.visibility="hidden"),n=this.__slideState,this.__slideState=Object(j.cloneDeep)(pS),n.mediaState)(o=n.mediaState[i]).type==="play"&&(s=Math.max((e=o.frozenTime)!==null&&e!==void 0?e:0,o.time),o.time=this.timestamp()-(s-o.time),o.frozenTime=void 0);return[4,this.setSlideState(n)];case 1:return l.sent(),[4,this.player.clock.delay(333)];case 2:l.sent(),this.player.view&&(this.player.view.style.visibility="visible");try{this.frame.removeChild(this.cacheImage)}catch{}return this.isReleasing=!1,[2]}})})},t.prototype.destroy=function(){var e,n,i,o;this.playerController&&this.playerController.destroy(),this.frameResizeObserver.disconnect(),(e=this.player)===null||e===void 0||e.removeAllListeners(),(n=this.player)===null||n===void 0||n.destroy(),(i=this.player)===null||i===void 0||i.removeAllListeners(),window.removeEventListener("__slide_log__",this.handleLogDownload),window.removeEventListener("__slide_state__",this.handleSlideStateLog),window.removeEventListener("__slide_ref__",this.handleSlideRef),window.clearInterval(this.persistLogId),Nu&&Nu.removeItem(this.logId).catch(function(){});try{((o=this.player)===null||o===void 0?void 0:o.view)&&this.anchor.removeChild(this.player.view)}catch{}},t.disposeLocalCache=function(){wc.storeManager.dispose()},t}(L.a)}]);function PS(T,P,v){return Math.min(Math.max(T,P),v)}function RS(T){return typeof T=="object"&&T!==null}function Mp(T){return JSON.parse(JSON.stringify(T))}var IS={exports:{}},gI={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]},LS={exports:{}},vI=function(P){return!P||typeof P=="string"?!1:P instanceof Array||Array.isArray(P)||P.length>=0&&(P.splice instanceof Function||Object.getOwnPropertyDescriptor(P,P.length-1)&&P.constructor.name!=="String")},_I=vI,yI=Array.prototype.concat,xI=Array.prototype.slice,OS=LS.exports=function(P){for(var v=[],b=0,it=P.length;b<it;b++){var dt=P[b];_I(dt)?v=yI.call(v,xI.call(dt)):v.push(dt)}return v};OS.wrap=function(T){return function(){return T(OS(arguments))}};var Ap=gI,Cp=LS.exports,DS=Object.hasOwnProperty,NS={};for(var k_ in Ap)DS.call(Ap,k_)&&(NS[Ap[k_]]=k_);var ro=IS.exports={to:{},get:{}};ro.get=function(T){var P=T.substring(0,3).toLowerCase(),v,b;switch(P){case"hsl":v=ro.get.hsl(T),b="hsl";break;case"hwb":v=ro.get.hwb(T),b="hwb";break;default:v=ro.get.rgb(T),b="rgb";break}return v?{model:b,value:v}:null};ro.get.rgb=function(T){if(!T)return null;var P=/^#([a-f0-9]{3,4})$/i,v=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,b=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,it=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,dt=/^(\w+)$/,Y=[0,0,0,1],L,j,F;if(L=T.match(v)){for(F=L[2],L=L[1],j=0;j<3;j++){var k=j*2;Y[j]=parseInt(L.slice(k,k+2),16)}F&&(Y[3]=parseInt(F,16)/255)}else if(L=T.match(P)){for(L=L[1],F=L[3],j=0;j<3;j++)Y[j]=parseInt(L[j]+L[j],16);F&&(Y[3]=parseInt(F+F,16)/255)}else if(L=T.match(b)){for(j=0;j<3;j++)Y[j]=parseInt(L[j+1],0);L[4]&&(L[5]?Y[3]=parseFloat(L[4])*.01:Y[3]=parseFloat(L[4]))}else if(L=T.match(it)){for(j=0;j<3;j++)Y[j]=Math.round(parseFloat(L[j+1])*2.55);L[4]&&(L[5]?Y[3]=parseFloat(L[4])*.01:Y[3]=parseFloat(L[4]))}else return(L=T.match(dt))?L[1]==="transparent"?[0,0,0,0]:DS.call(Ap,L[1])?(Y=Ap[L[1]],Y[3]=1,Y):null:null;for(j=0;j<3;j++)Y[j]=Sl(Y[j],0,255);return Y[3]=Sl(Y[3],0,1),Y};ro.get.hsl=function(T){if(!T)return null;var P=/^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=T.match(P);if(v){var b=parseFloat(v[4]),it=(parseFloat(v[1])%360+360)%360,dt=Sl(parseFloat(v[2]),0,100),Y=Sl(parseFloat(v[3]),0,100),L=Sl(isNaN(b)?1:b,0,1);return[it,dt,Y,L]}return null};ro.get.hwb=function(T){if(!T)return null;var P=/^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=T.match(P);if(v){var b=parseFloat(v[4]),it=(parseFloat(v[1])%360+360)%360,dt=Sl(parseFloat(v[2]),0,100),Y=Sl(parseFloat(v[3]),0,100),L=Sl(isNaN(b)?1:b,0,1);return[it,dt,Y,L]}return null};ro.to.hex=function(){var T=Cp(arguments);return"#"+_g(T[0])+_g(T[1])+_g(T[2])+(T[3]<1?_g(Math.round(T[3]*255)):"")};ro.to.rgb=function(){var T=Cp(arguments);return T.length<4||T[3]===1?"rgb("+Math.round(T[0])+", "+Math.round(T[1])+", "+Math.round(T[2])+")":"rgba("+Math.round(T[0])+", "+Math.round(T[1])+", "+Math.round(T[2])+", "+T[3]+")"};ro.to.rgb.percent=function(){var T=Cp(arguments),P=Math.round(T[0]/255*100),v=Math.round(T[1]/255*100),b=Math.round(T[2]/255*100);return T.length<4||T[3]===1?"rgb("+P+"%, "+v+"%, "+b+"%)":"rgba("+P+"%, "+v+"%, "+b+"%, "+T[3]+")"};ro.to.hsl=function(){var T=Cp(arguments);return T.length<4||T[3]===1?"hsl("+T[0]+", "+T[1]+"%, "+T[2]+"%)":"hsla("+T[0]+", "+T[1]+"%, "+T[2]+"%, "+T[3]+")"};ro.to.hwb=function(){var T=Cp(arguments),P="";return T.length>=4&&T[3]!==1&&(P=", "+T[3]),"hwb("+T[0]+", "+T[1]+"%, "+T[2]+"%"+P+")"};ro.to.keyword=function(T){return NS[T.slice(0,3)]};function Sl(T,P,v){return Math.min(Math.max(P,T),v)}function _g(T){var P=Math.round(T).toString(16).toUpperCase();return P.length<2?"0"+P:P}var bI=IS.exports;class wI{constructor(P){this.enable=P,this.apps={},this.level="debug",this._onMessage=v=>{RS(v.data)&&(typeof v.data.slide=="boolean"?this.enable=v.data.slide:v.data.slide==="__instance"&&console.log(this))},window.addEventListener("message",this._onMessage)}log(...P){this.enable&&console.log(...P)}verbose(...P){this.enable&&this.level==="verbose"&&console.log(...P)}dispose(P){this.enable=!1,delete this.apps[P],window.removeEventListener("message",this._onMessage)}}const Bs=new wI(!1),Qi=Bs.log.bind(Bs),SI=Bs.verbose.bind(Bs);function FS(T){try{const P=window.getComputedStyle(T).backgroundColor;if(P!=="rgba(0, 0, 0, 0)"&&P!=="transparent")return P;if(T.parentElement)return FS(T.parentElement)}catch{}return"#ffffff"}function TI(T){const P=bI.get(T);if(P&&P.model==="rgb"){const v=P.value,it=(((Math.round(v[0])&255)<<16)+((Math.round(v[1])&255)<<8)+(Math.round(v[2])&255)).toString(16);return"#"+"000000".substring(it.length)+it}else return T}let yg="";function kS(T){return yg||(yg=TI(FS(T)),Qi("[Slide] guess bg color",yg)),yg}function BS(T){const{width:P,height:v,slideCount:b,slideState:it}=T,{taskId:dt,url:Y}=it,L=[];for(let j=1;j<=b;++j)L.push({width:P,height:v,thumbnail:`${Y}/${dt}/preview/${j}.png`,src:"ppt"});return L}function EI(T,P,v,b){var L;const it=v.slideState.currentSlideIndex;if(!(it>0)||!P.getIsWritable())return;const dt=[b,it].join("/");if(T.scenePathType(dt)!=="page"){T.removeScenes(b);const j=v.slideCount,F=[];for(let k=1;k<=j;++k)F.push({name:`${k}`});T.putScenes(b,F)}let Y;P.getBox().focus?Y=T.state.sceneState.scenePath:Y=((L=P.getView())==null?void 0:L.focusScenePath)||"",Y!==dt&&P.setScenePath(dt)}const B_="https://convertcdn.netless.link/dynamicConvert",MI=40,U_={taskId:"",url:"",state:null};class AI{constructor({context:P,anchor:v,onPageChanged:b,onTransitionStart:it,onTransitionEnd:dt,onError:Y}){this.sideEffect=new Ep,this.ready=!1,this.readyPromise=new Promise(L=>{this.resolveReady=()=>setTimeout(()=>{this.ready=!0,L()},1e3)}),this.onSyncDispatch=L=>{if(this.context.getIsWritable()&&this.room){const j={type:Li.SLIDE_EVENTS.syncDispatch,payload:L};Qi("[Slide] dispatch",L),this.room.dispatchMagixEvent(this.channel,j)}},this.magixEventListener=L=>{if(L.event===this.channel&&RS(L.payload)){const{type:j,payload:F}=L.payload;j===Li.SLIDE_EVENTS.syncDispatch&&(this.syncStateOnce(),Qi("[Slide] receive",F),this.syncStateOnceFlag||this.slide.emit(Li.SLIDE_EVENTS.syncReceive,F))}},this.onStateChange=L=>{this.context.getIsWritable()&&(SI("[Slide] state change",JSON.stringify(L,null,2)),this.context.updateAttributes(["state"],L))},this.onSeeked=()=>{const L=this.context.getAttributes().state;L&&this.slide.setSlideState(Mp(L))},this.pollCount=0,this.pollReadyState=()=>{this.ready?this._toFreeze===1?this.freeze():this._toFreeze===-1&&this.unfreeze():this.pollCount<MI?(this.pollCount++,setTimeout(this.pollReadyState,500)):(this.pollCount=0,Qi("[Slide] renderSlide (retry after timeout)",1),this.slide.renderSlide(1))},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.freezePromise=null,this.freeze=()=>{this.ready?(Qi("[Slide] freeze",this.context.appId),this.freezePromise?this._toFreeze=1:this.isFrozen||(this._toFreeze=0,this.freezePromise=this.slide.frozen().then(this.afterFreeze.bind(this,1)))):this._toFreeze=1},this.unfreeze=async()=>{this.ready?(Qi("[Slide] unfreeze",this.context.appId),this.freezePromise?this._toFreeze=-1:this.isFrozen&&(this._toFreeze=0,this.freezePromise=this.slide.release().then(this.afterFreeze.bind(this,-1)))):this._toFreeze=-1},this.onPageChanged=b,this.onTransitionStart=it,this.onTransitionEnd=dt,this.onError=Y,this.context=P,this.channel=`channel-${P.appId}`,this.room=P.getRoom(),this.player=this.room?void 0:P.getDisplayer(),this.slide=this.createSlide(v),this.syncStateOnceFlag=!this.context.isAddApp,this.initialize()}jumpToPage(P){this.ready&&(P=PS(P,1,this.pageCount),this.slide.renderSlide(P))}initialize(){this.registerEventListeners(),this.kickStart()}kickStart(){const{context:P,slide:v}=this,{taskId:b,url:it,state:dt}=ku(ku({},U_),this.context.getAttributes());v.setResource(b,it||B_),dt?(Qi("[Slide] init with state",Mp(dt)),this.syncStateOnceFlag=!1,v.setSlideState(Mp(dt))):P.isAddApp&&(Qi("[Slide] init by renderSlide",1),v.renderSlide(1)),this.pollReadyState()}registerEventListeners(){const{context:P,slide:v}=this;this.sideEffect.add(()=>{const b=P.mobxUtils.reaction(()=>P.getAttributes().state,()=>{this.syncStateOnce(),b()});return b}),this.sideEffect.add(()=>(P.emitter.on("seek",this.onSeeked),()=>P.emitter.off("seek",this.onSeeked))),this.sideEffect.add(()=>{const b=P.getDisplayer();return b.addMagixEventListener(this.channel,this.magixEventListener,{fireSelfEventAfterCommit:!0}),()=>b.removeMagixEventListener(this.channel)}),v.on(Li.SLIDE_EVENTS.slideChange,this.onPageChanged),v.on(Li.SLIDE_EVENTS.renderStart,this.onTransitionStart),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)}syncStateOnce(){if(this.syncStateOnceFlag){const{state:P}=ku(ku({},U_),this.context.getAttributes());P&&(Qi("[Slide] sync with state (once)",Mp(P)),this.slide.setSlideState(Mp(P)),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(P){var b,it;return new Li.Slide({anchor:P,interactive:!0,mode:"interactive",resize:!0,controller:Bs.enable,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,resolution:(b=this.context.getAppOptions())==null?void 0:b.resolution,transactionBgColor:((it=this.context.getAppOptions())==null?void 0:it.bgColor)||kS(P)},timestamp:this.timestamp})}destroy(){this.sideEffect.flushAll(),this.destroyed||(Qi("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0)}afterFreeze(P){P===1?(this.isFrozen=!0,this.freezePromise=null,this._toFreeze===-1&&this.unfreeze()):P===-1&&(this.isFrozen=!1,this.freezePromise=null,this._toFreeze===1&&this.freeze())}}function CI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-sidebar`),v.setAttribute("viewBox","0 0 64 64");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function PI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-arrow-left`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function RI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-arrow-right`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function II(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-play`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}function LI(T){const P="http://www.w3.org/2000/svg",v=document.createElementNS(P,"svg");v.setAttribute("class",`${T}-footer-icon-pause`),v.setAttribute("viewBox","0 0 500 500");const b=document.createElementNS(P,"path");return b.setAttribute("fill","currentColor"),b.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(b),v}const Bu=typeof window!="undefined",US=Bu&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),GS=Bu&&"IntersectionObserver"in window,HS=Bu&&"classList"in document.createElement("p"),zS=Bu&&window.devicePixelRatio>1,OI={elements_selector:".lazy",container:US||Bu?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_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},jS=T=>Object.assign({},OI,T),VS=function(T,P){let v;const b="LazyLoad::Initialized",it=new T(P);try{v=new CustomEvent(b,{detail:{instance:it}})}catch{v=document.createEvent("CustomEvent"),v.initCustomEvent(b,!1,!1,{instance:it})}window.dispatchEvent(v)},DI=(T,P)=>{if(!!P)if(!P.length)VS(T,P);else for(let v=0,b;b=P[v];v+=1)VS(T,b)},Ia="src",G_="srcset",H_="sizes",WS="poster",Pp="llOriginalAttrs",z_="loading",XS="loaded",qS="applied",NI="entered",j_="error",YS="native",$S="data-",ZS="ll-status",Eo=(T,P)=>T.getAttribute($S+P),FI=(T,P,v)=>{var b=$S+P;if(v===null){T.removeAttribute(b);return}T.setAttribute(b,v)},Rp=T=>Eo(T,ZS),Uu=(T,P)=>FI(T,ZS,P),xg=T=>Uu(T,null),V_=T=>Rp(T)===null,kI=T=>Rp(T)===z_,BI=T=>Rp(T)===j_,W_=T=>Rp(T)===YS,UI=[z_,XS,qS,j_],GI=T=>UI.indexOf(Rp(T))>=0,Tl=(T,P,v,b)=>{if(!!T){if(b!==void 0){T(P,v,b);return}if(v!==void 0){T(P,v);return}T(P)}},Ac=(T,P)=>{if(HS){T.classList.add(P);return}T.className+=(T.className?" ":"")+P},Us=(T,P)=>{if(HS){T.classList.remove(P);return}T.className=T.className.replace(new RegExp("(^|\\s+)"+P+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},HI=T=>{T.llTempImage=document.createElement("IMG")},zI=T=>{delete T.llTempImage},JS=T=>T.llTempImage,bg=(T,P)=>{if(!P)return;const v=P._observer;!v||v.unobserve(T)},jI=T=>{T.disconnect()},VI=(T,P,v)=>{P.unobserve_entered&&bg(T,v)},X_=(T,P)=>{!T||(T.loadingCount+=P)},WI=T=>{!T||(T.toLoadCount-=1)},KS=(T,P)=>{!T||(T.toLoadCount=P)},XI=T=>T.loadingCount>0,qI=T=>T.toLoadCount>0,QS=T=>{let P=[];for(let v=0,b;b=T.children[v];v+=1)b.tagName==="SOURCE"&&P.push(b);return P},q_=(T,P)=>{const v=T.parentNode;if(!v||v.tagName!=="PICTURE")return;QS(v).forEach(P)},tT=(T,P)=>{QS(T).forEach(P)},wg=[Ia],eT=[Ia,WS],Sg=[Ia,G_,H_],Tg=T=>!!T[Pp],nT=T=>T[Pp],iT=T=>delete T[Pp],Ip=(T,P)=>{if(Tg(T))return;const v={};P.forEach(b=>{v[b]=T.getAttribute(b)}),T[Pp]=v},YI=T=>{Tg(T)||(T[Pp]={backgroundImage:T.style.backgroundImage})},$I=(T,P,v)=>{if(!v){T.removeAttribute(P);return}T.setAttribute(P,v)},Lp=(T,P)=>{if(!Tg(T))return;const v=nT(T);P.forEach(b=>{$I(T,b,v[b])})},ZI=T=>{if(!Tg(T))return;const P=nT(T);T.style.backgroundImage=P.backgroundImage},JI=(T,P,v)=>{Ac(T,P.class_applied),Uu(T,qS),!!v&&(P.unobserve_completed&&bg(T,P),Tl(P.callback_applied,T,v))},rT=(T,P,v)=>{Ac(T,P.class_loading),Uu(T,z_),!!v&&(X_(v,1),Tl(P.callback_loading,T,v))},Gu=(T,P,v)=>{!v||T.setAttribute(P,v)},oT=(T,P)=>{Gu(T,H_,Eo(T,P.data_sizes)),Gu(T,G_,Eo(T,P.data_srcset)),Gu(T,Ia,Eo(T,P.data_src))},KI=(T,P)=>{q_(T,v=>{Ip(v,Sg),oT(v,P)}),Ip(T,Sg),oT(T,P)},QI=(T,P)=>{Ip(T,wg),Gu(T,Ia,Eo(T,P.data_src))},t3=(T,P)=>{tT(T,v=>{Ip(v,wg),Gu(v,Ia,Eo(v,P.data_src))}),Ip(T,eT),Gu(T,WS,Eo(T,P.data_poster)),Gu(T,Ia,Eo(T,P.data_src)),T.load()},e3=(T,P,v)=>{const b=Eo(T,P.data_bg),it=Eo(T,P.data_bg_hidpi),dt=zS&&it?it:b;!dt||(T.style.backgroundImage=`url("${dt}")`,JS(T).setAttribute(Ia,dt),rT(T,P,v))},n3=(T,P,v)=>{const b=Eo(T,P.data_bg_multi),it=Eo(T,P.data_bg_multi_hidpi),dt=zS&&it?it:b;!dt||(T.style.backgroundImage=dt,JI(T,P,v))},sT={IMG:KI,IFRAME:QI,VIDEO:t3},i3=(T,P)=>{const v=sT[T.tagName];!v||v(T,P)},r3=(T,P,v)=>{const b=sT[T.tagName];!b||(b(T,P),rT(T,P,v))},o3=["IMG","IFRAME","VIDEO"],s3=T=>o3.indexOf(T.tagName)>-1,aT=(T,P)=>{P&&!XI(P)&&!qI(P)&&Tl(T.callback_finish,P)},lT=(T,P,v)=>{T.addEventListener(P,v),T.llEvLisnrs[P]=v},a3=(T,P,v)=>{T.removeEventListener(P,v)},Y_=T=>!!T.llEvLisnrs,l3=(T,P,v)=>{Y_(T)||(T.llEvLisnrs={});const b=T.tagName==="VIDEO"?"loadeddata":"load";lT(T,b,P),lT(T,"error",v)},$_=T=>{if(!Y_(T))return;const P=T.llEvLisnrs;for(let v in P){const b=P[v];a3(T,v,b)}delete T.llEvLisnrs},uT=(T,P,v)=>{zI(T),X_(v,-1),WI(v),Us(T,P.class_loading),P.unobserve_completed&&bg(T,v)},u3=(T,P,v,b)=>{const it=W_(P);uT(P,v,b),Ac(P,v.class_loaded),Uu(P,XS),Tl(v.callback_loaded,P,b),it||aT(v,b)},h3=(T,P,v,b)=>{const it=W_(P);uT(P,v,b),Ac(P,v.class_error),Uu(P,j_),Tl(v.callback_error,P,b),it||aT(v,b)},Z_=(T,P,v)=>{const b=JS(T)||T;if(Y_(b))return;l3(b,Y=>{u3(Y,T,P,v),$_(b)},Y=>{h3(Y,T,P,v),$_(b)})},c3=(T,P,v)=>{HI(T),Z_(T,P,v),YI(T),e3(T,P,v),n3(T,P,v)},d3=(T,P,v)=>{Z_(T,P,v),r3(T,P,v)},J_=(T,P,v)=>{s3(T)?d3(T,P,v):c3(T,P,v)},p3=(T,P,v)=>{T.setAttribute("loading","lazy"),Z_(T,P,v),i3(T,P),Uu(T,YS)},hT=T=>{T.removeAttribute(Ia),T.removeAttribute(G_),T.removeAttribute(H_)},f3=T=>{q_(T,P=>{hT(P)}),hT(T)},cT=T=>{q_(T,P=>{Lp(P,Sg)}),Lp(T,Sg)},m3=T=>{tT(T,P=>{Lp(P,wg)}),Lp(T,eT),T.load()},g3=T=>{Lp(T,wg)},v3={IMG:cT,IFRAME:g3,VIDEO:m3},_3=T=>{const P=v3[T.tagName];if(!P){ZI(T);return}P(T)},y3=(T,P)=>{V_(T)||W_(T)||(Us(T,P.class_entered),Us(T,P.class_exited),Us(T,P.class_applied),Us(T,P.class_loading),Us(T,P.class_loaded),Us(T,P.class_error))},x3=(T,P)=>{_3(T),y3(T,P),xg(T),iT(T)},b3=(T,P,v,b)=>{!v.cancel_on_exit||!kI(T)||T.tagName==="IMG"&&($_(T),f3(T),cT(T),Us(T,v.class_loading),X_(b,-1),xg(T),Tl(v.callback_cancel,T,P,b))},w3=(T,P,v,b)=>{const it=GI(T);Uu(T,NI),Ac(T,v.class_entered),Us(T,v.class_exited),VI(T,v,b),Tl(v.callback_enter,T,P,b),!it&&J_(T,v,b)},S3=(T,P,v,b)=>{V_(T)||(Ac(T,v.class_exited),b3(T,P,v,b),Tl(v.callback_exit,T,P,b))},T3=["IMG","IFRAME","VIDEO"],dT=T=>T.use_native&&"loading"in HTMLImageElement.prototype,E3=(T,P,v)=>{T.forEach(b=>{T3.indexOf(b.tagName)!==-1&&p3(b,P,v)}),KS(v,0)},M3=T=>T.isIntersecting||T.intersectionRatio>0,A3=T=>({root:T.container===document?null:T.container,rootMargin:T.thresholds||T.threshold+"px"}),C3=(T,P,v)=>{T.forEach(b=>M3(b)?w3(b.target,b,P,v):S3(b.target,b,P,v))},P3=(T,P)=>{P.forEach(v=>{T.observe(v)})},R3=(T,P)=>{jI(T),P3(T,P)},I3=(T,P)=>{!GS||dT(T)||(P._observer=new IntersectionObserver(v=>{C3(v,T,P)},A3(T)))},pT=T=>Array.prototype.slice.call(T),Eg=T=>T.container.querySelectorAll(T.elements_selector),L3=T=>pT(T).filter(V_),O3=T=>BI(T),D3=T=>pT(T).filter(O3),fT=(T,P)=>L3(T||Eg(P)),N3=(T,P)=>{D3(Eg(T)).forEach(b=>{Us(b,T.class_error),xg(b)}),P.update()},F3=(T,P)=>{!Bu||window.addEventListener("online",()=>{N3(T,P)})},Op=function(T,P){const v=jS(T);this._settings=v,this.loadingCount=0,I3(v,this),F3(v,this),this.update(P)};Op.prototype={update:function(T){const P=this._settings,v=fT(T,P);if(KS(this,v.length),US||!GS){this.loadAll(v);return}if(dT(P)){E3(v,P,this);return}R3(this._observer,v)},destroy:function(){this._observer&&this._observer.disconnect(),Eg(this._settings).forEach(T=>{iT(T)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(T){const P=this._settings;fT(T,P).forEach(b=>{bg(b,this),J_(b,P,this)})},restoreAll:function(){const T=this._settings;Eg(T).forEach(P=>{x3(P,T)})}};Op.load=(T,P)=>{const v=jS(P);J_(T,v)};Op.resetStatus=T=>{xg(T)};Bu&&DI(Op,window.lazyLoadOptions);class mT{constructor({readonly:P,onNewPageIndex:v,onPlay:b}){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 Ep,this.readonly=P,this.onNewPageIndex=v,this.onPlay=b,this.render()}set pages(P){this._pages=P,this.refreshPreview(),this.refreshTotalPage(),this.refreshBtnSidebar()}get pages(){return this._pages}unmount(){this.$content.remove(),this.$footer.remove()}setReadonly(P){this.readonly=P,this.$content.classList.toggle(this.wrapClassName("readonly"),P),this.$footer.classList.toggle(this.wrapClassName("readonly"),P),this.$pageNumberInput.disabled=P}destroy(){this.sideEffect.flushAll(),this.unmount()}setPageIndex(P){Number.isNaN(P)||(this.pageIndex=P,this.$pageNumberInput.value=String(P+1))}refreshTotalPage(){this.pages.length?this.$totalPage.textContent=" / "+this.pages.length:this.$totalPage.textContent=""}setSmallBox(P){this.isSmallBox!==P&&(this.isSmallBox=P,this.$footer.classList.toggle(this.wrapClassName("float-footer"),P))}render(){return this.renderContent(),this.renderFooter(),this.$content}renderContent(){if(!this.$content){const P=document.createElement("div");P.className=this.wrapClassName("content"),this.$content=P,this.readonly&&P.classList.add(this.wrapClassName("readonly")),P.appendChild(this.renderPreviewMask()),P.appendChild(this.renderPreview())}return this.$content}renderPreview(){if(!this.$preview){const P=document.createElement("div");P.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=P,this.sideEffect.add(()=>(this.previewLazyLoad=new Op({container:this.$preview,elements_selector:`.${this.wrapClassName("preview-page>img")}`}),()=>{var v;return(v=this.previewLazyLoad)==null?void 0:v.destroy()})),this.refreshPreview(),this.sideEffect.addEventListener(P,"click",v=>{var it;if(this.readonly)return;const b=(it=v.target.dataset)==null?void 0:it.pageIndex;b&&(v.preventDefault(),v.stopPropagation(),v.stopImmediatePropagation(),this.onNewPageIndex(Number(b)),this.togglePreview(!1))})}return this.$preview}refreshPreview(){var it;const{$preview:P}=this,v=this.wrapClassName("preview-page"),b=this.wrapClassName("preview-page-name");for(;P.firstChild;)P.firstChild.remove();this.pages.forEach((dt,Y)=>{var mt;const L=(mt=dt.thumbnail)!=null?mt:dt.src.startsWith("ppt")?void 0:dt.src;if(!L)return;const j=String(Y),F=document.createElement("a");F.className=v+" "+this.wrapClassName(`preview-page-${Y}`),F.setAttribute("href","#"),F.dataset.pageIndex=j;const k=document.createElement("span");k.className=b,k.textContent=String(Y+1),k.dataset.pageIndex=j;const $=document.createElement("img");$.width=dt.width,$.height=dt.height,$.dataset.src=L,$.dataset.pageIndex=j,F.appendChild($),F.appendChild(k),P.appendChild(F)}),(it=this.previewLazyLoad)==null||it.update()}renderPreviewMask(){return this.$previewMask||(this.$previewMask=document.createElement("div"),this.$previewMask.className=this.wrapClassName("preview-mask"),this.sideEffect.addEventListener(this.$previewMask,"click",P=>{this.readonly||P.target===this.$previewMask&&this.togglePreview(!1)})),this.$previewMask}refreshBtnSidebar(){this.$btnSidebar.style.display=this.pages.length>0?"":"none"}renderFooter(){if(!this.$footer){const P=document.createElement("div");P.className=this.wrapClassName("footer"),this.$footer=P,this.readonly&&P.classList.add(this.wrapClassName("readonly")),this.isSmallBox&&P.classList.add(this.wrapClassName("float-footer"));const v=this.renderFooterBtn("btn-sidebar",CI(this.namespace));this.sideEffect.addEventListener(v,"click",()=>{this.readonly||this.togglePreview()}),this.$btnSidebar=v,this.$btnSidebar.style.display="none",this.$footer.appendChild(v);const b=document.createElement("div");b.className=this.wrapClassName("page-jumps");const it=this.renderFooterBtn("btn-page-back",PI(this.namespace));if(this.sideEffect.addEventListener(it,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex-1)}),b.appendChild(it),this.onPlay){const F=this.renderFooterBtn("btn-page-play",II(this.namespace),LI(this.namespace));this.$btnPlay=F,this.sideEffect.addEventListener(F,"click",()=>{this.readonly||(this.setPlaying(),this.onPlay&&this.onPlay())}),b.appendChild(F)}const dt=this.renderFooterBtn("btn-page-next",RI(this.namespace));this.sideEffect.addEventListener(dt,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex+1)}),b.appendChild(dt);const Y=document.createElement("div");Y.className=this.wrapClassName("page-number");const L=document.createElement("input");L.className=this.wrapClassName("page-number-input"),L.value=String(this.pageIndex+1),this.readonly&&(L.disabled=!0),this.$pageNumberInput=L,this.sideEffect.addEventListener(L,"change",()=>{this.readonly||L.value&&this.onNewPageIndex(Number(L.value)-1)});const j=document.createElement("span");this.$totalPage=j,Y.appendChild(L),Y.appendChild(j),this.$footer.appendChild(b),this.$footer.appendChild(Y)}return this.$footer}renderFooterBtn(P,v,b){const it=document.createElement("button");return it.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(P),it.appendChild(v),b&&it.appendChild(b),it}togglePreview(P){if(this.isShowPreview=P!=null?P:!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.$preview.scrollTo({top:v.offsetTop-16})}}wrapClassName(P){return`${this.namespace}-${P}`}}const k3=new Set(["clicker"]);class B3{constructor({box:P,view:v,mountSlideController:b,mountWhiteboard:it}){this.slideController=null,this.isViewMounted=!1,this.onError=({error:dt})=>{this.viewer.setPaused(),console.warn("[Slide] render error",dt)},this.refreshPages=()=>{this.slideController&&(this.viewer.pages=BS(this.slideController.slide),this.viewer.setPageIndex(this.getPageIndex(this.slideController.page)),this.scaleDocsToFit())},this.scaleDocsToFit=()=>{if(this.slideController){const{width:dt,height:Y}=this.slideController.slide;dt&&Y&&(this.whiteboardView.moveCameraToContain({originX:-dt/2,originY:-Y/2,width:dt,height:Y,animationMode:"immediately"}),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=dt=>{this.slideController&&this.slideController.jumpToPage(dt+1)},this.sideEffect=new Ep,this.namespace="netless-app-slide",this.box=P,this.whiteboardView=v,this.mountSlideController=b,this.mountWhiteboard=it,this.viewer=new mT({readonly:P.readonly,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.sideEffect.add(()=>{const dt=Y=>{this.setReadonly(Y)};return P.events.on("readonly",dt),()=>P.events.off("readonly",dt)}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.viewer.$content.appendChild(this.renderWhiteboardView()),this.sideEffect.addEventListener(window,"keydown",P=>{if(this.box.focus&&this.slideController)switch(P.key){case"ArrowUp":case"ArrowLeft":{this.slideController.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slideController.slide.nextStep();break}}})}renderSlideContainer(){if(!this.$slide){const P=document.createElement("div");P.className=this.wrapClassName("slide"),P.dataset.appKind="Slide",this.$slide=P}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,onTransitionStart:this.viewer.setPlaying,onTransitionEnd:this.viewer.setPaused,onReady:this.refreshPages,onError:this.onError}),this.scaleDocsToFit(),this.sideEffect.add(()=>(this.whiteboardView.callbacks.on("onSizeUpdated",this.scaleDocsToFit),()=>this.whiteboardView.callbacks.off("onSizeUpdated",this.scaleDocsToFit))),this}getPageIndex(P){return(P>0?P:1)-1}unmount(){return this.slideController&&(this.slideController.destroy(),this.slideController=null),this.viewer.unmount(),this}setReadonly(P){this.viewer.setReadonly(P)}destroy(){this.sideEffect.flushAll(),this.unmount(),this.viewer.destroy()}toggleClickThrough(P){this.$whiteboardView.style.pointerEvents=!P||k3.has(P)?"none":"auto"}wrapClassName(P){return`${this.namespace}-${P}`}}const gT=2,Mg={map:new Map,queue:[],validateQueue(){for(Qi("[Slide] freezer: validate",this.queue);this.queue.length>gT;){const T=this.queue.pop(),P=this.map.get(T);P&&(Qi("[Slide] freezer: validate-freeze",T,this.queue),P.freeze())}},set(T,P){Qi("[Slide] freezer: add",T,this.queue),this.map.set(T,P),this.queue.includes(T)||this.queue.unshift(T),this.validateQueue()},delete(T){Qi("[Slide] freezer: delete",T,this.queue),this.map.delete(T),this.queue=this.queue.filter(P=>P!==T)},focus(T){const P=this.map.get(T),v=this.queue.indexOf(T);v>-1&&this.queue.splice(v,1),this.queue.unshift(T),this.validateQueue(),Qi("[Slide] freezer: focus",T,this.queue),P&&P.unfreeze()}},U3=T=>{T.on("focus",({appId:P})=>{Mg.focus(P)})};var vT=`.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:1.5em;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}.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))}
6079
+ `;function G3({container:T,taskId:P,url:v=B_,debug:b=!1}){if(!P)throw new Error("[Slide] taskId is required");T.style.cssText+="display:flex;flex-direction:column";const it=new _T({target:T});return it.debug=!!b,it.mount(P,v),it}class _T{constructor(P){this.slide=null,this.debug=!1,this.sideEffect=new Ep,this.ready=!1,this.readyPromise=new Promise(v=>{this.resolveReady=()=>{this.ready=!0,v()}}),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=BS(this.slide),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(PS(v+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=P.target,this.bgColor=kS(this.target),this.viewer=new mT({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.sideEffect.addEventListener(window,"keydown",P=>{if(this.slide)switch(P.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}})}mount(P,v){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:!1,mode:"local",resize:!0,controller:this.debug,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,transactionBgColor:this.bgColor}}),this.registerEventListeners(),this.slide.setResource(P,v),this.slide.renderSlide(1)}renderStyle(){const P=document.createElement("style");return P.appendChild(document.createTextNode(vT)),P}registerEventListeners(){if(!this.slide)return;const{slide:P}=this;P.on(Li.SLIDE_EVENTS.slideChange,this.onPageChanged),P.on(Li.SLIDE_EVENTS.renderStart,this.onTransitionStart),P.on(Li.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),P.on(Li.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),P.on(Li.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),P.on(Li.SLIDE_EVENTS.renderError,this.onError),P.on(Li.SLIDE_EVENTS.renderEnd,this.resolveReady),this.readyPromise.then(this.refreshPages)}destroy(){this.sideEffect.flushAll(),this.slide&&!this.destroyed&&(Qi("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0),this.viewer.destroy()}getPageIndex(P){return(P>0?P:1)-1}renderSlideContainer(){if(!this.$slide){const P=document.createElement("div");P.className=this.wrapClassName("slide"),P.dataset.appKind="Slide",this.$slide=P}return this.$slide}wrapClassName(P){return`${this.namespace}-${P}`}}const K_="0.0.45",H3={kind:"Slide",setup(T){console.log("[Slide] setup @ "+K_),T.getIsWritable()&&mI(T,U_);const P=T.getAttributes();if(!(P==null?void 0:P.taskId))throw new Error("[Slide] no taskId");const v=T.getView();if(!v)throw new Error("[Slide] no view, please set scenePath on addApp()");v.disableCameraTransform=!0;const b=T.getBox();b.mountStyles(vT);try{b.$content.dataset.appSlideVersion=K_}catch{}const it=T.getInitScenePath();let dt=null;const Y=k=>{const $=T.getRoom();if(dt&&dt.slideController){let mt=!1;$&&T.getIsWritable()&&(EI($,T,dt.slideController.slide,it),mt=!0),Qi("[Slide] page to",k,mt),dt.viewer.setPageIndex(k-1)}},L=k=>{var mt,At;const $=new AI(MS(ku({context:T},k),{onPageChanged:Y}));return Mg.set(T.appId,$),((mt=Bs.apps)[At=T.appId]||(mt[At]={})).controller=$,$.readyPromise.then(k.onReady),$};dt=new B3({box:b,view:v,mountSlideController:L,mountWhiteboard:T.mountView.bind(T)});const j=T.getRoom(),F=new Ep;F.add(()=>{var k,$,mt;return((k=Bs.apps)[$=T.appId]||(k[$]={})).context=T,Bs.enable=((mt=T.getAppOptions())==null?void 0:mt.debug)||!1,Bs.level="debug",()=>Bs.dispose(T.appId)}),j&&(dt.toggleClickThrough(j.state.memberState.currentApplianceName),F.add(()=>{const k=$=>{$.memberState&&dt&&dt.toggleClickThrough($.memberState.currentApplianceName)};return j.callbacks.on("onRoomStateChanged",k),()=>j.callbacks.off("onRoomStateChanged",k)})),T.emitter.on("destroy",()=>{Qi("[Slide]: destroy"),Mg.delete(T.appId),F.flushAll(),dt&&(dt.destroy(),dt=null)}),dt.mount()}};exports.DefaultUrl=B_;exports.FreezerLength=gT;exports.SlidePreviewer=_T;exports.addHooks=U3;exports.apps=Mg;exports.default=H3;exports.previewSlide=G3;exports.version=K_;
6080
6080
  //# sourceMappingURL=main.cjs.js.map