@netless/app-slide 0.2.101 → 0.2.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.iife.js CHANGED
@@ -8029,7 +8029,7 @@ self.onmessage = function(e) {
8029
8029
  `),t.trackLogger.addLog(a,"error",l,o.randomId);var u=(h=o.config.logger)===null||h===void 0?void 0:h.error;u&&u("["+l+"] "+a)}},o.logger.info("new slide with clientId: "+o.config.clientId+", version: "+o.version,o.taskId),o.tracker({name:"initSlide",result:"",reason:"",payload:{taskId:o.taskId}}),o.anchor=o.config.anchor;var s=Rv(o.mode,o.config.syncEventQueuePolicy);return o.config.syncEventQueuePolicy=s,o.syncQueue=new G2(o.receiveSyncHandler,{policy:s,onCompact:o.handleSyncQueueCompact,onCompactedRenderComplete:o.handleSyncQueueCompactRenderComplete,onCatchUpStateChange:o.handleSyncQueueCatchUpStateChange,shouldTrackCatchUpEvent:function(a){return!o.selfSyncEvents.has(a)}}),o.lock=new H2(o.mode==="interactive"),o.cacheImage.style.position="absolute",o.cacheImage.style.display="block",o.cacheImage.style.zIndex="100",o.setMedianControllerAttribute(),o.canvasContainer.style.position="relative",o.canvasContainer.style.fontSize="0",o.canvasContainer.appendChild(o.medianController),o.frame.appendChild(o.canvasContainer),o.frame.appendChild(o.cacheImage),o.config.disableFrameResizeObserver||o.frameResizeObserver.observe(o.frame),o.on(sr.syncReceive,function(a){(o.lock.unlock(a.type,a.uuid)||!!o.config.clientId&&a.clientId===o.config.clientId)&&o.selfSyncEvents.add(a),!o.player&&o.config.skipActionWhenFrozen||o.mode==="sync"&&o.config.clientId===a.clientId||o.syncQueue.addTask(a)}),o.renderingTaskManager.eventHub.on("task-error",function(a){var l=a.error,h=a.task,u=Hn.transform(l);u.errorType===qn.RuntimeWarn?o.logger.warn(u.message,o.taskId):o.logger.error(u.message,o.taskId),o.isLoading=!1,o.reportError(u,h.slideIndex)}),window.addEventListener("__slide_ref__",o.handleSlideRef),window.addEventListener("__slide_updateStageCountLimit",o.updateStageCountLimit),o.resizeView=Bh()(o.resizeView.bind(o),50),o.player=o.initPlayer(o.config),o.config.controller&&o.createController(),o.player.view&&o.canvasContainer.appendChild(o.player.view),o.config.disableClickDebounce||(o.handleViewClick=Bh()(o.handleViewClick,300)),o.player.errorChannel.on("error",function(a,l){var h=Hn.transform(a);h.errorType===qn.RuntimeWarn?o.logger.warn(h.message,o.taskId):o.logger.error(h.message,o.taskId),o.isLoading=!1,o.reportError(a,l),o.tracker({name:"slideError",reason:h.errorMsg,result:"",payload:{code:h.errorType}})}),window.addEventListener("message",o.recoverHandler),t.volumeAdjuster.on("update",o._updateVolumeByStaticAdjuster),o.volumeAdjuster.volume=t.volumeAdjuster.volume,o}var e,n;return Y2(t,i),t.flushLog=function(r){return r===void 0&&(r=!1),Vi(this,void 0,void 0,function(){return Wi(this,function(o){switch(o.label){case 0:if(!(t._tempLog.length>131072||r&&t._tempLog.length>0))return[3,5];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,gr==null?void 0:gr.setItem("run_time_log_"+t._tempLogIndex,t._tempLog)];case 2:return o.sent(),[3,4];case 3:return o.sent(),[3,4];case 4:t._tempLog="",t._tempLogIndex+=1,o.label=5;case 5:return[2]}})})},t.stopRemoteLog=function(){t.remoteLogAddress=null},t.startRemoteLog=function(r){return Vi(this,void 0,void 0,function(){var o,s,a,l,h;return Wi(this,function(u){switch(u.label){case 0:return t.remoteLogAddress=r,[4,t.flushLog(!0)];case 1:if(u.sent(),!gr)return[3,13];o=[],u.label=2;case 2:return u.trys.push([2,4,,5]),[4,gr.keys()];case 3:return o=(u.sent()||[]).sort(function(p,y){return parseInt(p.replace("run_time_log_",""))-parseInt(y.replace("run_time_log_",""))}),[3,5];case 4:return u.sent(),[3,5];case 5:s=0,a=o,u.label=6;case 6:if(!(s<a.length))return[3,13];l=a[s],l.replace("run_time_log_",""),h="",u.label=7;case 7:return u.trys.push([7,9,,10]),[4,gr.getItem(l)];case 8:return h=u.sent()||"",[3,10];case 9:return u.sent(),[3,10];case 10:return[4,fetch(t.remoteLogAddress+"/logs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({log:h})})];case 11:u.sent(),u.label=12;case 12:return s++,[3,6];case 13:return[2]}})})},t.appendLogString=function(r){t._tempLog+=r,t.remoteLogAddress&&fetch(t.remoteLogAddress+"/logs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({log:r})}).catch(function(){})},t.setStageCountLimit=function(r){if(!yo()(r)||!Number.isInteger(r))throw new Error("Invalid stage count limit");t.__stageCountLimit=r},Object.defineProperty(t.prototype,"dispatchIncrId",{get:function(){return this._dispatchIncrId++},enumerable:!1,configurable:!0}),t.prototype.updatePlayerInteractive=function(){var r;(r=this.player)===null||r===void 0||r.setInteractive(this.interactive&&!this.syncCatchUpInputBlocked)},t.prototype.reportError=function(r,o){this.emit(sr.renderError,{error:r,index:o}),window.postMessage({type:"@slide/_error_",errorType:r.errorType,errorMsg:r.errorMsg,slideId:this.randomId,slideIndex:o||-1,customMessage:"@slide/_error_"},"*"),t.trackLogger.uploadLog(!0)},t.prototype.initSlideConfig=function(r){return r.timestamp&&(this.timestamp=r.timestamp),r.rtcAudio&&(cr.RtcAudioClazz=r.rtcAudio),r.enableWebAudio!==!1&&(r.enableWebAudio=!0),this.mode=r.mode,this.anchor=r.anchor,this.anchor.appendChild(this.frame),this.enableGlobalClick=!yi()(r.enableGlobalClick)&&r.enableGlobalClick,this.resize=r.resize||!1,this.interactive=r.interactive,this.frame.style.cssText=r.fixedFrameSize?"width:"+r.fixedFrameSize.width+"px;height:"+r.fixedFrameSize.height+"px;":"width:100%;height:100%",this.frame.style.cssText+="display:flex;justify-content:center;align-items:center;visibility:hidden;position:relative;z-index:1;",r.fixedFrameSize&&(this.frameWidth=r.fixedFrameSize.width,this.frameHeight=r.fixedFrameSize.height),r.disableClickDebounce=r.disableClickDebounce||!1,r},t.prototype.initPlayer=function(r){var o,s,a,l=this,h=new cr({mode:this.mode,useLocalCache:!!yi()(this.config.useLocalCache)||this.config.useLocalCache,logger:this.logger,resourceTimeout:yi()(this.config.resourceTimeout)?15e3:this.config.resourceTimeout,loadDelegate:this.config.loaderDelegate,volumeAdjuster:this.volumeAdjuster,urlInterrupter:this.urlInterrupter,tracker:this.tracker,enableWebAudio:this.config.enableWebAudio,enableAutoForward:this.config.enableAutoForward,customLinks:this.config.customLinks,resourceMaxRetries:this.config.resourceMaxRetries,onResourceMaxRetries:this.config.onResourceMaxRetries},r.renderOptions);return h.setInteractive(this.interactive&&!this.syncCatchUpInputBlocked),h.updateConfig(r.renderOptions||{}),h.on(ze.renderStart,function(u){l.isLoading=!0,l.emit(sr.renderStart,u),window.postMessage({type:"@slide/_render_start_",taskId:l.taskId,index:u},"*")}),h.on(ze.renderEnd,function(u){l.isLoading=!1,l.player&&(l.designHeight=l.player.designHeight,l.designWidth=l.player.designWidth,l.cacheImage.style.width=l.player.designWidth+"px",l.cacheImage.style.height=l.player.designHeight+"px",l.cacheImage.style.maxWidth=l.player.designWidth+"px",l.cacheImage.style.minWidth=l.player.designHeight+"px",l._slideCount=l.player.slideCount),l.emit(sr.renderEnd,u),window.postMessage({type:"@slide/_render_end_",taskId:l.taskId,index:u},"*")}),h.on(ze.slideChange,function(u){l.__slideState.currentSlideIndex=u,l.emitStateChange(),l.emit(sr.slideChange,u)}),h.on(ze.mainSeqStateChange,function(u){l.__slideState.mainSeqState=u,l.emitStateChange()}),h.on(ze.mainSeqStepChange,function(u){l.__slideState.mainSeqStep=u,l.emitStateChange()}),h.on(ze.interactiveSeqStateChange,function(u){var p=u.id,y=u.state;l.__slideState.interactiveSeqState[p]=y,l.emitStateChange()}),h.on(ze.animateStart,function(){l.isAnimating!==!0&&(l.isAnimating=!0,l.emit(sr.animateStart))}),h.on(ze.animateEnd,function(){l.isAnimating!==!1&&(l.isAnimating=!1,l.emit(sr.animateEnd))}),h.on(ze.interactiveSeqAction,function(u){var p=u.action,y=u.seqId;l.emitSyncDispatch({slideIndex:l.__slideState.currentSlideIndex,type:"interactiveAnim",action:p,seqId:y}),l.emitStateChange()}),h.on(ze.mainSeqStepStart,function(u){l.emit(sr.mainSeqStepStart,u)}),h.on(ze.mainSeqStepEnd,function(u){l.emit(sr.mainSeqStepEnd,u)}),h.on(ze.mediaPlay,function(u){var p,y=(p=l.__slideState.mediaState[u.id])!==null&&p!==void 0?p:{};y.type="play",y.time=l.timestamp()-1e3*u.time,l.__slideState.mediaState[u.id]=y,u._stateOnly?l.config.mode==="interactive"&&l.receiveSyncHandler({slideIndex:l.__slideState.currentSlideIndex,type:"mediaPlay",id:u.id,state:y}).catch(function(b){l.logger.error(b==null?void 0:b.message,l.taskId)}):l.emitSyncDispatch({slideIndex:l.__slideState.currentSlideIndex,type:"mediaPlay",id:u.id,state:y}),l.emitStateChange()}),h.on(ze.mediaStop,function(u){delete l.__slideState.mediaState[u.id],l.emitStateChange()}),h.on(ze.mediaPause,function(u){var p,y=(p=l.__slideState.mediaState[u.id])!==null&&p!==void 0?p:{};y.type="pause",y.time=u.time,l.__slideState.mediaState[u.id]=y,u._stateOnly?l.config.mode==="interactive"&&l.receiveSyncHandler({slideIndex:l.__slideState.currentSlideIndex,type:"mediaPause",id:u.id,state:y}).catch(function(b){l.logger.error(b==null?void 0:b.message,l.taskId)}):l.emitSyncDispatch({slideIndex:l.__slideState.currentSlideIndex,type:"mediaPause",id:u.id,state:y}),l.emitStateChange()}),h.on(ze.mediaSeek,function(u){var p,y=(p=l.__slideState.mediaState[u.id])!==null&&p!==void 0?p:{};u.isPlaying?(y.type="play",y.time=l.timestamp()-1e3*u.time):(y.type="pause",y.time=u.time),l.__slideState.mediaState[u.id]=y,l.emitSyncDispatch({slideIndex:l.__slideState.currentSlideIndex,type:"mediaSeek",id:u.id,time:u.time,state:y}),l.emitStateChange()}),h.on(ze.requestNextStep,function(){l.nextStep()}),h.on(ze.requestPrevSlide,function(u){l.handlePrevSlide(u)}),h.on(ze.requestNextSlide,function(u){l.handleNextSlide(u)}),h.on(ze.useraddLink,function(u){l.emit(sr.useraddLink,l.taskId,l.renderingIndex,u)}),h.on(ze.requestGotoSlide,function(u){var p;l.syncCatchUpInputBlocked||(!((p=l.config.navigatorDelegate)===null||p===void 0)&&p.gotoPage?l.config.navigatorDelegate.gotoPage(u):l.handleGotoSlide(u))}),h.on(ze.requestOpenUrl,function(u){var p;!((p=l.config.navigatorDelegate)===null||p===void 0)&&p.openUrl&&l.config.navigatorDelegate.openUrl(u)}),h.on(ze.fullscreenChange,function(u){var p,y=u.targetId,b=u.state;l.emitSyncDispatch({slideIndex:l.__slideState.currentSlideIndex,type:"mediaFullscreen",targetId:y,state:b});var w=(p=l.__slideState.mediaState[y])!==null&&p!==void 0?p:{};w.fullscreen=b,l.__slideState.mediaState[y]=w,l.emitStateChange()}),h.on(ze.changeLocalFullscreenState,function(u){u.slideIndex===l.__slideState.currentSlideIndex?(u.targetId&&l.__slideState.mediaState[u.targetId]&&(l.__slideState.mediaState[u.targetId].fullscreen=u.status),l.emitStateChange()):l.logger.info("event slideIndex: "+u.slideIndex+", current slideIndex: "+l.__slideState.currentSlideIndex,l.taskId)}),(o=h.view)===null||o===void 0||o.addEventListener("touchend",this.handleViewTouchEnd),(s=h.view)===null||s===void 0||s.addEventListener("touchstart",this.handleViewTouchStart),(a=h.view)===null||a===void 0||a.addEventListener("click",this.handleViewClick),h.on(ze.userInput,this.userInputHandle),h},t.prototype._handleViewClick=function(){var r=this;setTimeout(function(){var o=Date.now();Math.abs(o-r.userInputTime)>500&&r.enableGlobalClick&&r.nextStep()})},t.prototype.createController=function(){this.player&&(this.playerController=new k2(this.player,this.frame))},t.prototype.setMedianControllerAttribute=function(){this.medianController.className="median-container",this.medianController.style.position="absolute",this.medianController.style.left="0",this.medianController.style.top="0",this.medianController.style.zIndex="2",this.medianController.style.fontSize="16px"},t.prototype.frameResizeHandler=function(){if(!this.config.fixedFrameSize){var r=this.frame.getBoundingClientRect(),o=r.width,s=r.height;this.frameWidth=o,this.frameHeight=s,this.resizeView()}},t.prototype.notifyFrameResize=function(){this.frameResizeHandler()},t.prototype.updateFixedFrameSize=function(r,o,s){this.config.fixedFrameSize&&(this.frameWidth=r,this.frameHeight=o,this.frame.style.width=r+"px",this.frame.style.height=o+"px",this.resizeView(s))},t.prototype._resizeView=function(r){var o,s,a=this,l=this.width,h=this.height;if(l>0&&h>0){var u=this.frameWidth/l,p=u*h;p>this.frameHeight&&(u*=this.frameHeight/p),(o=this.player)===null||o===void 0||o.scaleView(u,this.resize,r),this.cacheImage.style.transform="scale("+u+")",this.medianController.style.transform="scale("+u+")",this.medianController.setAttribute("data-scale",u.toString()),this.isInitResized||(this.isInitResized=!0,(s=this.player)===null||s===void 0||s.clock.setTimeout(function(){a.frame.style.visibility="visible"},32))}},t.prototype.setSlideState=function(r){var o,s,a;return Vi(this,void 0,void 0,function(){var l,h=this;return Wi(this,function(u){switch(u.label){case 0:return this.isSyncingSlideState=!0,this.logger.info("stateChange receive "+JSON.stringify(r),this.taskId),r.taskId&&r.taskId!==this.__slideState.taskId&&(this.__slideState.taskId=r.taskId,(o=this.player)===null||o===void 0||o.setResourceData(r.taskId,this.__slideState.url)),r.url&&r.url!==this.__slideState.url&&(this.__slideState.url=r.url,(s=this.player)===null||s===void 0||s.setResourceData(this.__slideState.taskId,r.url)),Number.isInteger(r.currentSlideIndex)&&r.currentSlideIndex!==this.__slideState.currentSlideIndex?(this.__slideState.currentSlideIndex=r.currentSlideIndex,[4,this.enqueueRenderSlide(r.currentSlideIndex)]):[3,2];case 1:u.sent(),u.label=2;case 2:return[4,(a=this.player)===null||a===void 0?void 0:a.clock.waitUntil(function(){var p,y;return((p=h.player)===null||p===void 0?void 0:p.currentIndex)===r.currentSlideIndex&&((y=h.player)===null||y===void 0?void 0:y.currentStage)},3e3)];case 3:return u.sent(),l=!1,Number.isInteger(r.mainSeqStep)&&r.mainSeqStep!==this.__slideState.mainSeqStep&&(l=!0,this.__slideState.mainSeqStep=r.mainSeqStep),r.mainSeqState&&r.mainSeqState!==this.__slideState.mainSeqState&&(l=!0,this.__slideState.mainSeqState=r.mainSeqState),l&&this.setMainSeqStep(this.__slideState.mainSeqStep,this.__slideState.mainSeqState==="idle"?"start":"end"),r.interactiveSeqState&&(this.initInteractiveSeq(r),this.__slideState.interactiveSeqState=r.interactiveSeqState),[4,Xh(1500)];case 4:return u.sent(),r.mediaState&&(this.initMedia(r),this.__slideState.mediaState=r.mediaState),this.isSyncingSlideState=!1,[2]}})})},t.prototype.initInteractiveSeq=function(r){var o;for(var s in r.interactiveSeqState){var a=r.interactiveSeqState[s];(o=this.player)===null||o===void 0||o.setInteractiveSeqState(s,a.step,a.state==="idle"?"start":"end")}},t.prototype.initMedia=function(r){var o,s,a;for(var l in r.mediaState){var h=r.mediaState[l],u=this.__slideState.mediaState[l];if((o=this.player)===null||o===void 0||o.syncFullscreenVideoState({targetId:l,state:!!h.fullscreen,slideIndex:this.slideState.currentSlideIndex}),!u||h.type!==u.type||h.time!==u.time)if(h.type==="play"){var p=(this.timestamp()-h.time)/1e3;(s=this.player)===null||s===void 0||s.setMediaState(l,!0,p)}else(a=this.player)===null||a===void 0||a.setMediaState(l,!1,h.time)}},Object.defineProperty(t.prototype,"slideCount",{get:function(){return this._slideCount},enumerable:!1,configurable:!0}),t.prototype.getSizeAsync=function(){return Vi(this,void 0,void 0,function(){var r;return Wi(this,function(o){switch(o.label){case 0:if(this.width>0&&this.height>0)return[2,[this.width,this.height]];o.label=1;case 1:return o.trys.push([1,4,,5]),[4,fetch(this.__slideState.url+"/"+this.__slideState.taskId+"/jsonOutput/slide-1.json")];case 2:return[4,o.sent().json()];case 3:return[2,[(r=o.sent()).width,r.height]];case 4:return o.sent(),[2,[0,0]];case 5:return[2]}})})},t.prototype.getSlideCountAsync=function(){return Vi(this,void 0,void 0,function(){return Wi(this,function(r){switch(r.label){case 0:if(this._slideCount>0)return[2,this._slideCount];r.label=1;case 1:return r.trys.push([1,4,,5]),[4,fetch(this.__slideState.url+"/"+this.__slideState.taskId+"/jsonOutput/slide-1.json")];case 2:return[4,r.sent().json()];case 3:return[2,r.sent().slideCount];case 4:return r.sent(),[2,0];case 5:return[2]}})})},Object.defineProperty(t.prototype,"slideState",{get:function(){return this.__slideState.mainSeqState=this.mainSeqState,this.__slideState.mainSeqStep=this.mainSeqStep,JSON.parse(JSON.stringify(this.__slideState))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"mainSeqLength",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.mainSeqLength())||0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"mainSeqStep",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.mainSeqStep())||0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"mainSeqState",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.mainSeqState())||null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"renderOptions",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.config)||null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"drawCall",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.runtime.drawCall)||0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"renderFps",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.runtime.fps)||0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"runtimeFps",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.fps.value)||0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"view",{get:function(){var r;return((r=this.player)===null||r===void 0?void 0:r.view)||null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"width",{get:function(){return this.designWidth},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){return this.designHeight},enumerable:!1,configurable:!0}),t.prototype.updateRenderOption=function(r){this.player&&(this.player.updateConfig(r),this.renderOptions&&(this.config.renderOptions=this.renderOptions))},t.prototype.setResource=function(r,o){var s;this.taskId=r,(s=this.player)===null||s===void 0||s.setResourceData(r,o),this.__slideState.taskId=r,this.__slideState.url=o,this.emitSyncDispatch({slideIndex:this.__slideState.currentSlideIndex,type:"setResource",taskId:r,url:o})},t.prototype.setResourceList=function(r,o){var s;this.taskId=r,this.resourceList=o,(s=this.player)===null||s===void 0||s.setResourceData(r,"__internal__"),this.__slideState.taskId=r,this.__slideState.url="__internal__"},t.prototype._renderSlide=function(r){var o;return Vi(this,void 0,void 0,function(){var s=this;return Wi(this,function(a){switch(a.label){case 0:return this.renderingIndex=r,this.player&&r===this.player.currentIndex?[2]:((cr.platform.isIOS()||cr.platform.isAndroid())&&this.iosResetCache.indexOf(r)<0&&this.iosResetCache.push(r),this.flushDebounce(),[4,(o=this.player)===null||o===void 0?void 0:o.renderSlide(r)]);case 1:return a.sent(),this.__slideState.currentSlideIndex=r,this._resizeView(),this.__slideState.interactiveSeqState={},this.__slideState.mediaState={},this.emitStateChange(),setTimeout(function(){var l,h,u,p;l=s.isReleasing,h=s.player,u=s.frame,p=s.cacheImage,!l&&(h==null?void 0:h.view)&&(h.view.style.visibility==="hidden"&&(h.view.style.visibility="visible"),u.style.visibility==="hidden"&&(u.style.visibility="visible"),p.style.display="none")},100),[2]}})})},t.prototype.renderSlide=function(r,o){if(o===void 0&&(o=!0),this.syncCatchUpInputBlocked)this.logger.info("prevent renderSlide while sync event queue is catching up",this.taskId);else if(this.player){var s=Number(r);(s!==this.player.currentIndex||this.renderingTaskManager.hasStartTask())&&(s>this.slideCount&&this.slideCount>0||this.poseRenderSlide(s,o))}},t.prototype.needCreateNewPlayer=function(){var r=t.__stageCountLimit;return r<=0&&(r=cr.platform.isLowGpuMemory()?15:30),(cr.platform.isIOS()||cr.platform.isAndroid())&&this.iosResetCache.length>r},t.prototype.poseRenderSlide=function(r,o){this.mode==="interactive"?this.emitSyncDispatch({slideIndex:this.__slideState.currentSlideIndex,type:"renderSlide",index:r,isForward:o}):this.mode==="sync"?(this.doRenderSlide(r,o),this.emitSyncDispatch({slideIndex:this.__slideState.currentSlideIndex,type:"renderSlide",index:r,isForward:o})):this.doRenderSlide(r,o)},t.prototype.doRenderSlide=function(r,o){return o===void 0&&(o=!0),this.syncCatchUpInputBlocked?(this.logger.info("prevent doRenderSlide while sync event queue is catching up",this.taskId),Promise.resolve()):this.enqueueRenderSlide(r,o)},t.prototype.enqueueRenderSlide=function(r,o){var s,a,l,h=this;if(o===void 0&&(o=!0),!this.player)return Promise.resolve();if(this.needCreateNewPlayer()&&(this.iosResetCache=[],this.iosNewPlayer=this.initPlayer(this.config),this.iosNewPlayer.setResourceData(this.__slideState.taskId,this.__slideState.url)),this.iosNewPlayer){var u=this.player.getSnapshot();this.cacheImage.src=u,this.player.destroy(),(s=this.playerController)===null||s===void 0||s.destroy(),this.player=this.iosNewPlayer,this.iosNewPlayer=void 0,!((a=this.config)===null||a===void 0)&&a.controller&&this.createController(),!((l=this==null?void 0:this.player)===null||l===void 0)&&l.view&&(this.player.view.style.visibility="hidden",this.canvasContainer.appendChild(this.player.view))}var p=Math.random().toString(32).substr(2);return this.player.isForward=o,this.renderingTaskManager.addTask(function(){return h._renderSlide(r)},r,p),new Promise(function(y,b){h.renderingTaskManager.eventHub.once("task-end-"+p,y),h.renderingTaskManager.eventHub.once("task-error-"+p,b)})},t.prototype.getSnapshot=function(){var r,o;return(o=(r=this.player)===null||r===void 0?void 0:r.getSnapshot())!==null&&o!==void 0?o:null},t.prototype.nextStep=function(){!this.isLoading&&this.player&&this.interactive&&!this.syncCatchUpInputBlocked?(this.hasNextStep()||this.emit(sr.slideStepEnd),this.player.mainSeqHasNextStep()?this.mode==="interactive"?this.emitSyncDispatch({slideIndex:this.__slideState.currentSlideIndex,type:"nextStep",next:this.player.mainSeqStep()+1}):this.mode==="sync"?(this.doNextStep(!1,""),this.emitSyncDispatch({slideIndex:this.__slideState.currentSlideIndex,type:"nextStep",next:this.player.mainSeqStep()})):this.doNextStep(!1,""):this.handleNextSlide()):this.logger.info("prevent nextStep. isLoading: "+this.isLoading+", player: "+!!this.player+", interactive: "+this.interactive+", syncCatchUpInputBlocked: "+this.syncCatchUpInputBlocked,this.taskId)},t.prototype.doNextStep=function(r,o){if(this.player){var s=!this.config.clientId||o===this.config.clientId;this.player.nextStep(r,s);var a=this.player.mainSeqStep();this.__slideState.mainSeqStep=a,this.emitStateChange()}},t.prototype.prevStep=function(){!this.isLoading&&this.player&&this.interactive&&!this.syncCatchUpInputBlocked?(this.hasPrevStep()||this.emit(sr.slideStepStart),this.player.mainSeqHasPrevStep()?this.mode==="interactive"?this.emitSyncDispatch({type:"prevStep",slideIndex:this.__slideState.currentSlideIndex,next:this.player.mainSeqStep()-1}):this.mode==="sync"?(this.doPrevStep(),this.emitSyncDispatch({slideIndex:this.__slideState.currentSlideIndex,type:"prevStep",next:this.player.mainSeqStep()})):this.doPrevStep():this.handlePrevSlide()):this.logger.info("prevent prevStep. isLoading: "+this.isLoading+", player: "+!!this.player+", interactive: "+this.interactive+", syncCatchUpInputBlocked: "+this.syncCatchUpInputBlocked,this.taskId)},t.prototype.doPrevStep=function(r){if(r===void 0&&(r=!1),this.player){this.player.prevStep(r);var o=this.player.mainSeqStep();this.__slideState.mainSeqStep=o,this.emitStateChange()}},t.prototype.isSlideStateReady=function(r){return r.taskId.length>0&&r.url.length>0&&r.currentSlideIndex>0},t.prototype.emitStateChange=function(){if(this.mode!=="local"&&!this.isSyncingSlideState){var r=this.slideState;!o2()(this.lastEmitedState,r)&&this.isSlideStateReady(r)&&(this.lastEmitedState=r,this.emit(sr.stateChange,r),this.logger.info("stateChange dispatch "+JSON.stringify(this.slideState),this.taskId))}},t.prototype.emitSyncDispatch=function(r){if(!this.lock.isLocked(r.type)){var o=Math.random().toString(32).substr(2);this.lock.addLock(r.type,o);var s=Es(Es({},r),{uuid:o,clientId:this.config.clientId});this.config.mode==="sync"&&(s.incrId=this.dispatchIncrId),this.emit(sr.syncDispatch,s),this.logger.info("sync dispatch "+JSON.stringify(s),this.taskId)}},t.prototype.setMainSeqStep=function(r,o){var s;(s=this.player)===null||s===void 0||s.setMainSeqStep(r,o)},t.prototype.setInteractive=function(r){this.interactive=r,this.updatePlayerInteractive()},t.prototype.setSyncEventQueuePolicy=function(r){var o=Rv(this.mode,r);this.syncQueue.setPolicy(o),this.config.syncEventQueuePolicy=o},t.prototype.pause=function(){var r;(r=this.player)===null||r===void 0||r.pause()},t.prototype.resume=function(){var r;(r=this.player)===null||r===void 0||r.resume()},t.prototype._doFrozen=function(r){var o;return Vi(this,void 0,void 0,function(){var s,a,l,h=this;return Wi(this,function(u){switch(u.label){case 0:return this.logger.info("do frozen with player["+!!this.player+"]",this.taskId),this.tracker({name:"frozenSlide",reason:"",result:"",payload:{taskId:this.taskId}}),this.view&&this.player?[4,this.player.clock.waitUntil(function(){return!h.isLoading},6e4)]:[3,2];case 1:for(a in u.sent(),s=this.player.getSnapshot()||"",this.cacheImage.src=s,this.cacheImage.style.display="block",this.frame.style.visibility==="hidden"&&(this.frame.style.visibility="visible"),this.player.destroy(),(o=this.playerController)===null||o===void 0||o.destroy(),this.player=void 0,this.__slideState.mediaState)l=this.__slideState.mediaState[a],this.__slideState.mediaState[a]=Es(Es({},l),{frozenTime:this.timestamp()});u.label=2;case 2:return r&&r(),[2]}})})},t.prototype.frozen=function(r){var o=this;this.frozenTaskManager.addTask("frozen",function(){return o._doFrozen(r)})},t.prototype._doRelease=function(r){var o,s;return Vi(this,void 0,void 0,function(){var a,l,h,u;return Wi(this,function(p){switch(p.label){case 0:if(this.logger.info("do release slide",this.taskId),this.tracker({name:"releaseSlide",reason:"",result:"",payload:{taskId:this.taskId}}),this.player)return[2];this.isReleasing=!0,p.label=1;case 1:for(l in p.trys.push([1,,4,5]),this.player=this.initPlayer(this.config),!((o=this.config)===null||o===void 0)&&o.controller&&this.createController(),this.player.view&&(this.canvasContainer.appendChild(this.player.view),this.player.view.style.visibility="hidden"),a=this.__slideState,this.__slideState=Qg()(Iv),a.mediaState)(h=a.mediaState[l]).type==="play"&&(u=Math.max((s=h.frozenTime)!==null&&s!==void 0?s:0,h.time),h.time=this.timestamp()-(u-h.time),h.frozenTime=void 0);return[4,this.setSlideState(a)];case 2:return p.sent(),[4,this.player.clock.delay(333)];case 3:return p.sent(),this.player.view&&(this.player.view.style.visibility="visible"),this.frame.style.visibility==="hidden"&&(this.frame.style.visibility="visible"),this.cacheImage.style.display="none",r&&r(),[3,5];case 4:return this.isReleasing=!1,[7];case 5:return[2]}})})},t.prototype.release=function(r){var o=this;this.frozenTaskManager.addTask("release",function(){return o._doRelease(r)})},t.prototype._doDestroy=function(){var r,o,s,a,l=this;this.logger.info("do destroy slide",this.taskId),this.tracker({name:"destroySlide",reason:"",result:"",payload:{taskId:this.taskId}});var h=t.instances.findIndex(function(u){return u.randomId===l.randomId});if(h>=0&&t.instances.splice(h,1),this.playerController&&this.playerController.destroy(),this.config.disableFrameResizeObserver||this.frameResizeObserver.disconnect(),(r=this.player)===null||r===void 0||r.removeAllListeners(),(o=this.player)===null||o===void 0||o.destroy(),(s=this.player)===null||s===void 0||s.removeAllListeners(),this.logger={warn:function(){return{}},info:function(){return{}},error:function(){return{}}},this.syncQueue.destroy(),this.renderingTaskManager.destroy(),this.frozenTaskManager.destroy(),window.removeEventListener("__slide_ref__",this.handleSlideRef),window.removeEventListener("__slide_updateStageCountLimit",this.updateStageCountLimit),window.removeEventListener("message",this.recoverHandler),this.removeAllListeners(),(a=this.player)===null||a===void 0?void 0:a.view)try{this.anchor.removeChild(this.player.view)}catch{this.logger.error("removeChild error Slide.ts:1982",this.taskId)}try{this.anchor.removeChild(this.frame)}catch{this.logger.error("removeChild error Slide.ts:1988",this.taskId)}t.volumeAdjuster.off("update",this._updateVolumeByStaticAdjuster)},t.prototype.waitLoadEnd=function(){return Vi(this,void 0,void 0,function(){var r;return Wi(this,function(o){switch(o.label){case 0:r=0,o.label=1;case 1:return this.isLoading&&r<10?[4,Xh(100)]:[3,3];case 2:return o.sent(),r+=1,[3,1];case 3:return[2]}})})},t.prototype.preload=function(r){return this.player?this.player.preload(r):Promise.resolve()},t.prototype.preloadResource=function(r){return this.player?this.player.preloadResource(r):Promise.resolve()},t.prototype.destroy=function(){var r=this;this.logger.info("pre destroy slide",""),this.isLoading?this.waitLoadEnd().then(function(){r._doDestroy()}):this._doDestroy()},t.prototype.clearSlideCache=function(){var r;(r=this.player)===null||r===void 0||r.clearLocalCache()},t.prototype.hasNextStep=function(){if(!this.player)return!1;var r=this.player.currentIndex===this.slideCount,o=this.mainSeqLength===0||this.mainSeqStep>=this.mainSeqLength-1,s=this.mainSeqState==="end"||this.mainSeqState==="running"||this.mainSeqState==null;return!(r&&o&&s)},t.prototype.hasPrevStep=function(){if(!this.player)return!1;var r=this.player.currentIndex===1,o=this.mainSeqLength===0||this.mainSeqStep===0,s=this.mainSeqState==="idle"||this.mainSeqState===null;return!(r&&o&&s)},t.prototype.snapshot=function(){return Vi(this,void 0,void 0,function(){return Wi(this,function(r){return this.player?[2,this.player.getSnapshot()]:[2,null]})})},t.prototype.snapshotWithTimingEnd=function(r){return Vi(this,void 0,void 0,function(){return Wi(this,function(o){return this.player?[2,this.player.snapshotWithTimingEnd(r)]:[2,null]})})},t.prototype.updateGlobalVolume=function(r){this.volumeAdjuster.volume=r},t.prototype.getGlobalVolume=function(){return this.volumeAdjuster.volume},t.clearLocalCache=function(){cr.clearLocalCache()},t.disposeLocalCache=function(){},t.prototype.getNoteForCurrentSlide=function(r){return Vi(this,void 0,void 0,function(){var o,s;return Wi(this,function(a){switch(a.label){case 0:if(!this.player)return[2,null];if(this.slideNots)return[2,this.slideNots[r]];a.label=1;case 1:return a.trys.push([1,4,,5]),[4,fetch(this.__slideState.url+"/"+this.__slideState.taskId+"/jsonOutput/note.json")];case 2:return[4,a.sent().json()];case 3:return o=a.sent(),this.slideNots=o,[2,o[r]];case 4:return s=a.sent(),this.logger.error("getNotesForCurrentSlide error: "+String(s),this.taskId),[2,null];case 5:return[2]}})})},e=t,t.preloadResource=X2,t.instances=[],t._tempFrozenIds=[],t._tempLog="",t._tempLogIndex=1,t.remoteLogAddress=null,t.usePlugin=function(r){r.context({logger:{info:function(o){t.appendLogString("INFO - "+new Date().toISOString()+" - "+o+`
8030
8030
  `)},warn:function(o){t.appendLogString("WARN - "+new Date().toISOString()+" - "+o+`
8031
8031
  `)},error:function(o){t.appendLogString("ERROR - "+new Date().toISOString()+" - "+o+`
8032
- `)}}}),function(o){var s=Qc.get(o.hookPoint)||[];s.push(o),Qc.set(o.hookPoint,s)}(r)},t.volumeAdjuster=new Zg,t.__stageCountLimit=-1,t.trackLogger=new z2,t.handleFrozenAllSlide=function(){t.instances.forEach(function(r){r.player&&(t._tempFrozenIds.push(r.randomId),r.frozen())})},t.handleReleaseAllSlide=function(){t._tempFrozenIds.forEach(function(r){var o=t.instances.find(function(s){return s.randomId===r});o&&o.release()}),t._tempFrozenIds=[]},t.handleLogReport=function(r){return Vi(void 0,void 0,void 0,function(){var o,s,a,l,h,u;return Wi(e,function(p){switch(p.label){case 0:return[4,t.flushLog(!0)];case 1:if(p.sent(),!gr)return[3,12];o=[],p.label=2;case 2:return p.trys.push([2,4,,5]),[4,gr.keys()];case 3:return o=(p.sent()||[]).sort(function(y,b){return parseInt(y.replace("run_time_log_",""))-parseInt(b.replace("run_time_log_",""))}),[3,5];case 4:return p.sent(),[3,5];case 5:if(o.length===0)return window.postMessage({type:"@slide/_report_log_",log:"",index:1,total:1,customMessage:"@slide/_report_log_",sessionId:r},"*"),[2];s=0,a=o,p.label=6;case 6:if(!(s<a.length))return[3,12];l=a[s],h=l.replace("run_time_log_",""),u="",p.label=7;case 7:return p.trys.push([7,9,,10]),[4,gr.getItem(l)];case 8:return u=p.sent()||"",[3,10];case 9:return p.sent(),[3,10];case 10:window.postMessage({type:"@slide/_report_log_",log:u,index:parseInt(h,10),total:o.length,customMessage:"@slide/_report_log_",sessionId:r},"*"),p.label=11;case 11:return s++,[3,6];case 12:return[2]}})})},t.handleLogDownload=function(){return Vi(void 0,void 0,void 0,function(){var r,o,s,a,l,h,u;return Wi(e,function(p){switch(p.label){case 0:return p.trys.push([0,7,,8]),[4,t.flushLog(!0)];case 1:return p.sent(),r="",gr?[4,gr.keys()]:[3,6];case 2:o=(p.sent()||[]).sort(function(y,b){return parseInt(y.replace("run_time_log_",""))-parseInt(b.replace("run_time_log_",""))}),s=0,a=o,p.label=3;case 3:return s<a.length?(l=a[s],h=r,[4,gr.getItem(l)]):[3,6];case 4:r=h+(p.sent()||""),p.label=5;case 5:return s++,[3,3];case 6:return(u=document.createElement("a")).setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(r)),u.setAttribute("download","slide_log"),u.style.display="none",document.body.appendChild(u),u.click(),document.body.removeChild(u),[3,8];case 7:return p.sent(),[3,8];case 8:return[2]}})})},q2([(n="Slide.initConfig",function(r,o,s){var a=s.value;s.value=function(){for(var l=[],h=0;h<arguments.length;h++)l[h]=arguments[h];for(var u=Qc.get(n)||[],p=l,y=0,b=u;y<b.length;y++){var w=b[y];try{p=w.before(p)}catch{}if(!Array.isArray(p)||p.length!==l.length)throw new Error("plugin before hook return invalid args")}for(var C=a.bind(this).apply(void 0,p),I=0,H=u.reverse();I<H.length;I++){w=H[I];try{C=w.after(C)}catch{}if(!C)throw new Error("plugin after hook return undefined result")}return C}})],t.prototype,"initSlideConfig",null),t}(vi.a);gr==null||gr.clear().catch(function(){}),window.addEventListener("__slide_log__",ao.handleLogDownload),window.addEventListener("message",function(i){var t;if(i.data.type==="@slide/_request_log_")ao.handleLogReport(i.data.sessionId).catch(function(){});else if(i.data.type==="@slide/_request_frozen_")ao.handleFrozenAllSlide();else if(i.data.type==="@slide/_request_release_")ao.handleReleaseAllSlide();else if(i.data.type==="@slide/_update_volume_"){var e=.5;try{e=parseFloat(i.data.volume.toString())}catch{}ao.volumeAdjuster.volume=e}else if(i.data.type==="@slide/_get_volume_")window.postMessage({type:"@slide/_report_volume_",volume:ao.volumeAdjuster.volume,customMessage:"@slide/_report_volume_"},"*");else if(i.data.type==="@slide/_preload_slide_"){var n=(t=i.data.sessionId)!==null&&t!==void 0?t:Math.random().toString(32).substr(2);ao.preloadResource(i.data.taskId,i.data.prefix,i.data.maxResolutionLevel,function(r){window.postMessage({type:"@slide/_preload_slide_progress_",sessionId:n,taskId:i.data.taskId,progress:r},"*")},i.data.pages).catch(function(r){window.postMessage({type:"@slide/_preload_slide_error_",sessionId:n,taskId:i.data.taskId,error:r},"*")})}}),window.setInterval(function(){ao.flushLog().catch(function(){})},2e3)}]),Hv="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",jv=87,zv=20,xd=[],Vv=()=>{for(let _=0;_<zv;_++)xd[_]=Hv.charAt(Math.random()*jv);return xd.join("")};function bd(_){try{return _()}catch(T){console.error(T)}}var Cs=class{constructor(){this.push=this.addDisposer,this.disposers=new Map}addDisposer(_,T=this.genUID()){return this.flush(T),this.disposers.set(T,Array.isArray(_)?Wv(_):_),T}add(_,T=this.genUID()){const m=_();return m?this.addDisposer(m,T):T}addEventListener(_,T,m,M,E=this.genUID()){return _.addEventListener(T,m,M),this.addDisposer(()=>_.removeEventListener(T,m,M),E),E}setTimeout(_,T,m=this.genUID()){const M=window.setTimeout(()=>{this.remove(m),_()},T);return this.addDisposer(()=>window.clearTimeout(M),m)}setInterval(_,T,m=this.genUID()){const M=window.setInterval(_,T);return this.addDisposer(()=>window.clearInterval(M),m)}remove(_){const T=this.disposers.get(_);return this.disposers.delete(_),T}flush(_){const T=this.remove(_);T&&T()}flushAll(){this.disposers.forEach(bd),this.disposers.clear()}genUID(){let _;do _=Vv();while(this.disposers.has(_));return _}};function Wv(_){return()=>_.forEach(bd)}function Td(_,T,m){return Math.min(Math.max(_,T),m)}function Xv(_){return typeof _=="object"&&_!==null}function Yv(_){if(!_)return!1;const T=_.tagName;return T==="INPUT"||T==="TEXTAREA"||T==="SELECT"}var Sd={exports:{}},qv={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]},wd={exports:{}},Jv=function(T){return!T||typeof T=="string"?!1:T instanceof Array||Array.isArray(T)||T.length>=0&&(T.splice instanceof Function||Object.getOwnPropertyDescriptor(T,T.length-1)&&T.constructor.name!=="String")},Kv=Jv,Zv=Array.prototype.concat,$v=Array.prototype.slice,Ed=wd.exports=function(T){for(var m=[],M=0,E=T.length;M<E;M++){var P=T[M];Kv(P)?m=Zv.call(m,$v.call(P)):m.push(P)}return m};Ed.wrap=function(_){return function(){return _(Ed(arguments))}};var pa=qv,fa=wd.exports,Ad=Object.hasOwnProperty,Cd=Object.create(null);for(var qh in pa)Ad.call(pa,qh)&&(Cd[pa[qh]]=qh);var _r=Sd.exports={to:{},get:{}};_r.get=function(_){var T=_.substring(0,3).toLowerCase(),m,M;switch(T){case"hsl":m=_r.get.hsl(_),M="hsl";break;case"hwb":m=_r.get.hwb(_),M="hwb";break;default:m=_r.get.rgb(_),M="rgb";break}return m?{model:M,value:m}:null},_r.get.rgb=function(_){if(!_)return null;var T=/^#([a-f0-9]{3,4})$/i,m=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,M=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,E=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,P=/^(\w+)$/,D=[0,0,0,1],B,z,X;if(B=_.match(m)){for(X=B[2],B=B[1],z=0;z<3;z++){var Z=z*2;D[z]=parseInt(B.slice(Z,Z+2),16)}X&&(D[3]=parseInt(X,16)/255)}else if(B=_.match(T)){for(B=B[1],X=B[3],z=0;z<3;z++)D[z]=parseInt(B[z]+B[z],16);X&&(D[3]=parseInt(X+X,16)/255)}else if(B=_.match(M)){for(z=0;z<3;z++)D[z]=parseInt(B[z+1],0);B[4]&&(B[5]?D[3]=parseFloat(B[4])*.01:D[3]=parseFloat(B[4]))}else if(B=_.match(E)){for(z=0;z<3;z++)D[z]=Math.round(parseFloat(B[z+1])*2.55);B[4]&&(B[5]?D[3]=parseFloat(B[4])*.01:D[3]=parseFloat(B[4]))}else return(B=_.match(P))?B[1]==="transparent"?[0,0,0,0]:Ad.call(pa,B[1])?(D=pa[B[1]],D[3]=1,D):null:null;for(z=0;z<3;z++)D[z]=To(D[z],0,255);return D[3]=To(D[3],0,1),D},_r.get.hsl=function(_){if(!_)return null;var T=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,m=_.match(T);if(m){var M=parseFloat(m[4]),E=(parseFloat(m[1])%360+360)%360,P=To(parseFloat(m[2]),0,100),D=To(parseFloat(m[3]),0,100),B=To(isNaN(M)?1:M,0,1);return[E,P,D,B]}return null},_r.get.hwb=function(_){if(!_)return null;var T=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,m=_.match(T);if(m){var M=parseFloat(m[4]),E=(parseFloat(m[1])%360+360)%360,P=To(parseFloat(m[2]),0,100),D=To(parseFloat(m[3]),0,100),B=To(isNaN(M)?1:M,0,1);return[E,P,D,B]}return null},_r.to.hex=function(){var _=fa(arguments);return"#"+ml(_[0])+ml(_[1])+ml(_[2])+(_[3]<1?ml(Math.round(_[3]*255)):"")},_r.to.rgb=function(){var _=fa(arguments);return _.length<4||_[3]===1?"rgb("+Math.round(_[0])+", "+Math.round(_[1])+", "+Math.round(_[2])+")":"rgba("+Math.round(_[0])+", "+Math.round(_[1])+", "+Math.round(_[2])+", "+_[3]+")"},_r.to.rgb.percent=function(){var _=fa(arguments),T=Math.round(_[0]/255*100),m=Math.round(_[1]/255*100),M=Math.round(_[2]/255*100);return _.length<4||_[3]===1?"rgb("+T+"%, "+m+"%, "+M+"%)":"rgba("+T+"%, "+m+"%, "+M+"%, "+_[3]+")"},_r.to.hsl=function(){var _=fa(arguments);return _.length<4||_[3]===1?"hsl("+_[0]+", "+_[1]+"%, "+_[2]+"%)":"hsla("+_[0]+", "+_[1]+"%, "+_[2]+"%, "+_[3]+")"},_r.to.hwb=function(){var _=fa(arguments),T="";return _.length>=4&&_[3]!==1&&(T=", "+_[3]),"hwb("+_[0]+", "+_[1]+"%, "+_[2]+"%"+T+")"},_r.to.keyword=function(_){return Cd[_.slice(0,3)]};function To(_,T,m){return Math.min(Math.max(T,_),m)}function ml(_){var T=Math.round(_).toString(16).toUpperCase();return T.length<2?"0"+T:T}var Qv=Sd.exports;class ty{constructor(T){this.enable=T,this.apps={},this.level="debug",this.roomLogger=null,this._onMessage=m=>{let M;m instanceof CustomEvent?M=m.detail:Xv(m.data)&&(M=m.data),M&&(typeof M.slide=="boolean"?this.enable=M.slide:M.slide==="__instance"?console.log(this):M.slide==="__debug"&&Object.values(this.apps).forEach(E=>{var P,D;(D=(P=E.controller)==null?void 0:P.slide)==null||D.createController()}))},this.initialize()}setAppContext(T,m){var M;((M=this.apps)[T]||(M[T]={})).context=m,this.log(`[Slide] new ${T}`)}setAppController(T,m){var M;((M=this.apps)[T]||(M[T]={})).controller=m}deleteApp(T){delete this.apps[T],this.log(`[Slide] delete ${T}`)}initialize(){window.addEventListener("message",this._onMessage)}dispose(){window.removeEventListener("message",this._onMessage)}log(...T){this.roomLogger?this.roomLogger.info(...T):this.enable&&console.log(...T)}verbose(...T){this.roomLogger?this.roomLogger.debug(...T):this.enable&&this.level==="verbose"&&console.log(...T)}warn(...T){this.roomLogger?this.roomLogger.warn(...T):console.warn(...T)}}const Mr=new ty(!1),ri=Mr.log.bind(Mr),Jh=Mr.verbose.bind(Mr),ey=_=>{Mr.roomLogger=_.logger};function Md(_){try{const T=window.getComputedStyle(_).backgroundColor;if(T!=="rgba(0, 0, 0, 0)"&&T!=="transparent")return T;if(_.parentElement)return Md(_.parentElement)}catch{}return"#ffffff"}function ny(_){const T=Qv.get(_);if(T&&T.model==="rgb"){const m=T.value,E=(((Math.round(m[0])&255)<<16)+((Math.round(m[1])&255)<<8)+(Math.round(m[2])&255)).toString(16);return"#"+"000000".substring(E.length)+E}else return _}let gl="";function Rd(_){return gl||(gl=ny(Md(_)),ri("[Slide] guess bg color",gl)),gl}const iy=_=>_.tracker;function Id(_,T=[]){const{width:m,height:M,slideCount:E,slideState:P}=_,{taskId:D,url:B}=P,z=[];for(let X=1;X<=E;++X){const Z=T.find(nt=>nt.indexOf(`preview/${X}.png`)>=0);Z?z.push({width:m,height:M,thumbnail:Z,src:"ppt"}):z.push({width:m,height:M,thumbnail:`${B}/${D}/preview/${X}.png`,src:"ppt"})}return z}function Kh(_,T,m,M){var B;const E=m.slideState.currentSlideIndex;if(!(E>0)||!T.getIsWritable())return;const P=[M,E].join("/");if(T.isAddApp&&_.scenePathType(P)!=="page"){_.removeScenes(M);const z=m.slideCount,X=[];for(let Z=1;Z<=z;++Z)X.push({name:`${Z}`});_.putScenes(M,X)}let D;T.getBox().focus?D=_.state.sceneState.scenePath:D=((B=T.getView())==null?void 0:B.focusScenePath)||"",D!==P&&_.scenePathType(P)==="page"&&T.setScenePath(P)}const Zh="https://convertcdn.netless.link/dynamicConvert",ry=40,$h={taskId:"",url:"",state:null,resourceList:[],previewList:[],customLinks:[],slideScale:1,translateX:.5,translateY:.5},oy=function(){};class Pd{constructor(T){this.sideEffect=new Cs,this.previewList=[],this.ready=!1,this.readyPromise=new Promise(at=>{this.resolveReady=Tt=>{this.ready?ri("[Slide] render end",Tt):setTimeout(()=>{this.ready=!0,at()},1e3)}}),this.onSyncDispatch=at=>{if(this.context.getIsWritable()&&this.room){const Tt={type:ui.SLIDE_EVENTS.syncDispatch,payload:at};Jh("[Slide] dispatch",JSON.stringify(at)),this.context.dispatchMagixEvent(ui.SLIDE_EVENTS.syncDispatch,Tt)}},this.magixEventListener=at=>{const{type:Tt,payload:bt}=at.payload;Tt===ui.SLIDE_EVENTS.syncDispatch&&(this.syncStateOnce(),Jh("[Slide] receive",JSON.stringify(bt)),this.slide.emit(ui.SLIDE_EVENTS.syncReceive,bt))},this.onStateChange=at=>{this.context.getIsWritable()&&(Jh("[Slide] state change",JSON.stringify(at,null,2)),this.context.storage.setState({state:at}))},this.pollCount=0,this.pollReadyState=()=>{this.ready?this._toFreeze===1?this.freeze():this._toFreeze===-1&&this.unfreeze():this.pollCount<ry?(this.pollCount++,setTimeout(this.pollReadyState,500)):(this.pollCount=0,ri("[Slide] init timeout"))},this._pageCount=0,this.destroyed=!1,this.timestamp=()=>this.room&&this.room.calibrationTimestamp?this.room.calibrationTimestamp:this.player?this.player.beginTimestamp+this.player.progressTime:Date.now(),this.isFrozen=!1,this._toFreeze=0,this.freeze=()=>{this.isFrozen=!0,this.ready?(ri("[Slide] freeze",this.context.appId),this.invisibleBehavior==="frozen"?this.slide.frozen():this.slide.pause()):this._toFreeze=1},this.unfreeze=async()=>{if(!!this.visible)if(this.isFrozen=!1,this.ready){let at=!1;if(ri("[Slide] unfreeze",this.context.appId),this.invisibleBehavior==="frozen"?(this.slide.release(),at=!0):this.slide.resume(),at){const Tt=this.context.storage.state.state;Tt&&(ri("[Slide] sync storage",JSON.stringify(Tt)),this.slide.setSlideState(Tt))}}else this._toFreeze=-1},this.bindAppStateChangeEvent=()=>{try{if(this.context.getBoxStatus())this.context.getAppProxy()&&this.context.emitter.on("boxStatusChange",this.onAppStatusChangeHandler);else{const Tt=this.context.getWindowManager();Tt&&Tt.emitter.on("boxStateChange",this.onAppStateChangeHandler)}}catch{ri("[Slide] bind app state change event failed, because should update window manager to latest version")}},this.onAppStateChangeHandler=at=>{at==="minimized"&&(ri("[Slide] freeze because app state is minimized"),this.freeze())},this.onAppStatusChangeHandler=at=>{const{appId:Tt,status:bt}=at;Tt===this.context.appId&&bt==="minimized"&&(ri("[Slide] freeze because app status is minimized"),this.freeze())},this.getAppStatus=()=>{try{const at=this.context.getBoxStatus();return at||this.context.getWindowManager().boxState}catch{return}},this.onVisibilityChange=async()=>{if(this.getAppStatus()==="minimized"){ri("[Slide] do nothing because app state is minimized");return}(this.visible=document.visibilityState==="visible")?this.savedIsFrozen||(ri("[Slide] unfreeze because tab becomes visible",{savedIsFrozen:this.savedIsFrozen}),this.unfreeze()):(this.savedIsFrozen=this.isFrozen,ri("[Slide] freeze because tab becomes invisible"),this.freeze())};const{context:m,onRenderStart:M,onPageChanged:E,onTransitionStart:P,onTransitionEnd:D,onNavigate:B,onError:z,onRenderError:X,showRenderError:Z,invisibleBehavior:nt}=T;this.invisibleBehavior=nt!=null?nt:"frozen",this.onRenderStart=M,this.onPageChanged=E,this.onTransitionStart=P,this.onTransitionEnd=D,this.onNavigate=B||oy,this.onError=z,this.onRenderError=X,this.showRenderError=Z!=null?Z:!0,this.context=m,this.room=m.getRoom(),this.player=this.room?void 0:m.getDisplayer(),ey(this.room||this.player),this.syncStateOnceFlag=!this.context.isAddApp,this.visible=document.visibilityState==="visible",this.savedIsFrozen=!1}jumpToPage(T,m){this.ready&&(T=Td(T,1,this.pageCount),this.onNavigate(T,m),this.slide.renderSlide(T))}initialize(){this.registerEventListeners(),this.kickStart()}kickStart(){const{context:T,slide:m}=this;T.getIsWritable()&&T.storage.ensureState($h);const{taskId:M,url:E,resourceList:P,previewList:D,state:B}=T.storage.state;this.previewList=D,P&&P.length>0?m.setResourceList(M,P):m.setResource(M,E||Zh),B?(ri("[Slide] init with state",JSON.stringify(B)),this.syncStateOnceFlag=!1,m.setSlideState(B)):T.isAddApp&&(ri("[Slide] init by renderSlide",1),m.renderSlide(1)),this.pollReadyState()}registerEventListeners(){const{context:T,slide:m}=this,M=this.sideEffect.addDisposer(T.storage.addStateChangedListener(()=>{T.storage.state.state&&(this.syncStateOnce(),this.sideEffect.flush(M))}));this.sideEffect.add(()=>T.addMagixEventListener(ui.SLIDE_EVENTS.syncDispatch,this.magixEventListener,{fireSelfEventAfterCommit:!0})),m.on(ui.SLIDE_EVENTS.renderStart,this.onRenderStart),m.on(ui.SLIDE_EVENTS.slideChange,this.onPageChanged),m.on(ui.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),m.on(ui.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),m.on(ui.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),m.on(ui.SLIDE_EVENTS.renderError,this.onError),m.on(ui.SLIDE_EVENTS.stateChange,this.onStateChange),m.on(ui.SLIDE_EVENTS.syncDispatch,this.onSyncDispatch),m.on(ui.SLIDE_EVENTS.renderEnd,this.resolveReady),this.sideEffect.add(()=>(document.addEventListener("visibilitychange",this.onVisibilityChange),this.bindAppStateChangeEvent(),()=>{document.removeEventListener("visibilitychange",this.onVisibilityChange);try{this.context.emitter.off("boxStatusChange",this.onAppStatusChangeHandler),this.context.getWindowManager().emitter.off("boxStateChange",this.onAppStateChangeHandler)}catch{ri("[Slide] unbind app state change event failed, because should update window manager to latest version")}}))}syncStateOnce(){if(this.syncStateOnceFlag){this.context.getIsWritable()&&this.context.storage.ensureState($h);const{state:T}=this.context.storage.state;T&&(ri("[Slide] sync with state (once)",JSON.stringify(T)),this.slide.setSlideState(T),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(T,m={}){var D,B,z,X,Z;const M=this.context.getAppOptions()||{},E=this.context.storage.state;return new ui.Slide({anchor:T,interactive:!0,mode:"interactive",syncEventQueuePolicy:(D=M.syncEventQueuePolicy)!=null?D:"fifo",controller:!1,enableGlobalClick:(B=M.enableGlobalClick)!=null?B:!0,renderOptions:{minFPS:M.minFPS||25,maxFPS:M.maxFPS||30,autoFPS:(z=M.autoFPS)!=null?z:!0,autoResolution:(X=M.autoResolution)!=null?X:!0,resolution:M.resolution,transactionBgColor:M.bgColor||Rd(T),maxResolutionLevel:M.maxResolutionLevel,forceCanvas:M.forceCanvas,enableNvidiaDetect:M.enableNvidiaDetect},fixedFrameSize:M.fixedFrameSize,loaderDelegate:M.loaderDelegate,navigatorDelegate:M.navigatorDelegate,urlInterrupter:M.urlInterrupter,resourceTimeout:M.resourceTimeout,rtcAudio:M.rtcAudio,useLocalCache:M.useLocalCache,logger:M.logger,whiteTracker:m.whiteTracker,timestamp:this.timestamp,customLinks:E.customLinks,skipActionWhenFrozen:(Z=M.skipActionWhenFrozen)!=null?Z:!0,resourceMaxRetries:M.resourceMaxRetries,onResourceMaxRetries:M.onResourceMaxRetries,disableFrameResizeObserver:!0})}destroy(){this.sideEffect.flushAll(),this.destroyed||(ri("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0)}}class Od extends Pd{constructor(T){super(T),this.slide=this.createSlide(T.anchor,{whiteTracker:iy(T.context.getDisplayer())}),this.initialize()}}function sy(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-sidebar`),m.setAttribute("viewBox","0 0 64 64");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function ay(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-arrow-left`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function ly(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-arrow-right`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function hy(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-play`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function uy(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-pause`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}const So=typeof window!="undefined",Nd=So&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Ld=So&&"IntersectionObserver"in window,Dd=So&&"classList"in document.createElement("p"),Fd=So&&window.devicePixelRatio>1,cy={elements_selector:".lazy",container:Nd||So?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},Bd=_=>Object.assign({},cy,_),kd=function(_,T){let m;const M="LazyLoad::Initialized",E=new _(T);try{m=new CustomEvent(M,{detail:{instance:E}})}catch{m=document.createEvent("CustomEvent"),m.initCustomEvent(M,!1,!1,{instance:E})}window.dispatchEvent(m)},dy=(_,T)=>{if(!!T)if(!T.length)kd(_,T);else for(let m=0,M;M=T[m];m+=1)kd(_,M)},ho="src",Qh="srcset",tu="sizes",Ud="poster",ma="llOriginalAttrs",Gd="data",eu="loading",Hd="loaded",jd="applied",py="entered",nu="error",zd="native",Vd="data-",Wd="ll-status",pr=(_,T)=>_.getAttribute(Vd+T),fy=(_,T,m)=>{const M=Vd+T;if(m===null){_.removeAttribute(M);return}_.setAttribute(M,m)},ga=_=>pr(_,Wd),es=(_,T)=>fy(_,Wd,T),vl=_=>es(_,null),iu=_=>ga(_)===null,my=_=>ga(_)===eu,gy=_=>ga(_)===nu,ru=_=>ga(_)===zd,vy=[eu,Hd,jd,nu],yy=_=>vy.indexOf(ga(_))>=0,wo=(_,T,m,M)=>{if(!(!_||typeof _!="function")){if(M!==void 0){_(T,m,M);return}if(m!==void 0){_(T,m);return}_(T)}},Ms=(_,T)=>{if(T!==""){if(Dd){_.classList.add(T);return}_.className+=(_.className?" ":"")+T}},qr=(_,T)=>{if(T!==""){if(Dd){_.classList.remove(T);return}_.className=_.className.replace(new RegExp("(^|\\s+)"+T+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}},_y=_=>{_.llTempImage=document.createElement("IMG")},xy=_=>{delete _.llTempImage},Xd=_=>_.llTempImage,yl=(_,T)=>{if(!T)return;const m=T._observer;!m||m.unobserve(_)},by=_=>{_.disconnect()},Ty=(_,T,m)=>{T.unobserve_entered&&yl(_,m)},ou=(_,T)=>{!_||(_.loadingCount+=T)},Sy=_=>{!_||(_.toLoadCount-=1)},Yd=(_,T)=>{!_||(_.toLoadCount=T)},wy=_=>_.loadingCount>0,Ey=_=>_.toLoadCount>0,qd=_=>{let T=[];for(let m=0,M;M=_.children[m];m+=1)M.tagName==="SOURCE"&&T.push(M);return T},su=(_,T)=>{const m=_.parentNode;if(!m||m.tagName!=="PICTURE")return;qd(m).forEach(T)},Jd=(_,T)=>{qd(_).forEach(T)},_l=[ho],Kd=[ho,Ud],va=[ho,Qh,tu],Zd=[Gd],xl=_=>!!_[ma],$d=_=>_[ma],Qd=_=>delete _[ma],Rs=(_,T)=>{if(xl(_))return;const m={};T.forEach(M=>{m[M]=_.getAttribute(M)}),_[ma]=m},Ay=_=>{xl(_)||(_[ma]={backgroundImage:_.style.backgroundImage})},Cy=(_,T,m)=>{if(!m){_.removeAttribute(T);return}_.setAttribute(T,m)},ns=(_,T)=>{if(!xl(_))return;const m=$d(_);T.forEach(M=>{Cy(_,M,m[M])})},My=_=>{if(!xl(_))return;const T=$d(_);_.style.backgroundImage=T.backgroundImage},tp=(_,T,m)=>{Ms(_,T.class_applied),es(_,jd),m&&(T.unobserve_completed&&yl(_,T),wo(T.callback_applied,_,m))},ep=(_,T,m)=>{Ms(_,T.class_loading),es(_,eu),m&&(ou(m,1),wo(T.callback_loading,_,m))},Eo=(_,T,m)=>{!m||_.setAttribute(T,m)},np=(_,T)=>{Eo(_,tu,pr(_,T.data_sizes)),Eo(_,Qh,pr(_,T.data_srcset)),Eo(_,ho,pr(_,T.data_src))},Ry=(_,T)=>{su(_,m=>{Rs(m,va),np(m,T)}),Rs(_,va),np(_,T)},Iy=(_,T)=>{Rs(_,_l),Eo(_,ho,pr(_,T.data_src))},Py=(_,T)=>{Jd(_,m=>{Rs(m,_l),Eo(m,ho,pr(m,T.data_src))}),Rs(_,Kd),Eo(_,Ud,pr(_,T.data_poster)),Eo(_,ho,pr(_,T.data_src)),_.load()},Oy=(_,T)=>{Rs(_,Zd),Eo(_,Gd,pr(_,T.data_src))},Ny=(_,T,m)=>{const M=pr(_,T.data_bg),E=pr(_,T.data_bg_hidpi),P=Fd&&E?E:M;!P||(_.style.backgroundImage=`url("${P}")`,Xd(_).setAttribute(ho,P),ep(_,T,m))},Ly=(_,T,m)=>{const M=pr(_,T.data_bg_multi),E=pr(_,T.data_bg_multi_hidpi),P=Fd&&E?E:M;!P||(_.style.backgroundImage=P,tp(_,T,m))},Dy=(_,T,m)=>{const M=pr(_,T.data_bg_set);if(!M)return;const E=M.split("|");let P=E.map(D=>`image-set(${D})`);_.style.backgroundImage=P.join(),_.style.backgroundImage===""&&(P=E.map(D=>`-webkit-image-set(${D})`),_.style.backgroundImage=P.join()),tp(_,T,m)},ip={IMG:Ry,IFRAME:Iy,VIDEO:Py,OBJECT:Oy},Fy=(_,T)=>{const m=ip[_.tagName];!m||m(_,T)},By=(_,T,m)=>{const M=ip[_.tagName];!M||(M(_,T),ep(_,T,m))},ky=["IMG","IFRAME","VIDEO","OBJECT"],Uy=_=>ky.indexOf(_.tagName)>-1,rp=(_,T)=>{T&&!wy(T)&&!Ey(T)&&wo(_.callback_finish,T)},op=(_,T,m)=>{_.addEventListener(T,m),_.llEvLisnrs[T]=m},Gy=(_,T,m)=>{_.removeEventListener(T,m)},au=_=>!!_.llEvLisnrs,Hy=(_,T,m)=>{au(_)||(_.llEvLisnrs={});const M=_.tagName==="VIDEO"?"loadeddata":"load";op(_,M,T),op(_,"error",m)},lu=_=>{if(!au(_))return;const T=_.llEvLisnrs;for(let m in T){const M=T[m];Gy(_,m,M)}delete _.llEvLisnrs},sp=(_,T,m)=>{xy(_),ou(m,-1),Sy(m),qr(_,T.class_loading),T.unobserve_completed&&yl(_,m)},jy=(_,T,m,M)=>{const E=ru(T);sp(T,m,M),Ms(T,m.class_loaded),es(T,Hd),wo(m.callback_loaded,T,M),E||rp(m,M)},zy=(_,T,m,M)=>{const E=ru(T);sp(T,m,M),Ms(T,m.class_error),es(T,nu),wo(m.callback_error,T,M),m.restore_on_error&&ns(T,va),E||rp(m,M)},hu=(_,T,m)=>{const M=Xd(_)||_;if(au(M))return;Hy(M,D=>{jy(D,_,T,m),lu(M)},D=>{zy(D,_,T,m),lu(M)})},Vy=(_,T,m)=>{_y(_),hu(_,T,m),Ay(_),Ny(_,T,m),Ly(_,T,m),Dy(_,T,m)},Wy=(_,T,m)=>{hu(_,T,m),By(_,T,m)},uu=(_,T,m)=>{Uy(_)?Wy(_,T,m):Vy(_,T,m)},Xy=(_,T,m)=>{_.setAttribute("loading","lazy"),hu(_,T,m),Fy(_,T),es(_,zd)},ap=_=>{_.removeAttribute(ho),_.removeAttribute(Qh),_.removeAttribute(tu)},Yy=_=>{su(_,T=>{ap(T)}),ap(_)},lp=_=>{su(_,T=>{ns(T,va)}),ns(_,va)},qy={IMG:lp,IFRAME:_=>{ns(_,_l)},VIDEO:_=>{Jd(_,T=>{ns(T,_l)}),ns(_,Kd),_.load()},OBJECT:_=>{ns(_,Zd)}},Jy=_=>{const T=qy[_.tagName];if(!T){My(_);return}T(_)},Ky=(_,T)=>{iu(_)||ru(_)||(qr(_,T.class_entered),qr(_,T.class_exited),qr(_,T.class_applied),qr(_,T.class_loading),qr(_,T.class_loaded),qr(_,T.class_error))},Zy=(_,T)=>{Jy(_),Ky(_,T),vl(_),Qd(_)},$y=(_,T,m,M)=>{!m.cancel_on_exit||!my(_)||_.tagName==="IMG"&&(lu(_),Yy(_),lp(_),qr(_,m.class_loading),ou(M,-1),vl(_),wo(m.callback_cancel,_,T,M))},Qy=(_,T,m,M)=>{const E=yy(_);es(_,py),Ms(_,m.class_entered),qr(_,m.class_exited),Ty(_,m,M),wo(m.callback_enter,_,T,M),!E&&uu(_,m,M)},t_=(_,T,m,M)=>{iu(_)||(Ms(_,m.class_exited),$y(_,T,m,M),wo(m.callback_exit,_,T,M))},e_=["IMG","IFRAME","VIDEO"],hp=_=>_.use_native&&"loading"in HTMLImageElement.prototype,n_=(_,T,m)=>{_.forEach(M=>{e_.indexOf(M.tagName)!==-1&&Xy(M,T,m)}),Yd(m,0)},i_=_=>_.isIntersecting||_.intersectionRatio>0,r_=_=>({root:_.container===document?null:_.container,rootMargin:_.thresholds||_.threshold+"px"}),o_=(_,T,m)=>{_.forEach(M=>i_(M)?Qy(M.target,M,T,m):t_(M.target,M,T,m))},s_=(_,T)=>{T.forEach(m=>{_.observe(m)})},a_=(_,T)=>{by(_),s_(_,T)},l_=(_,T)=>{!Ld||hp(_)||(T._observer=new IntersectionObserver(m=>{o_(m,_,T)},r_(_)))},up=_=>Array.prototype.slice.call(_),bl=_=>_.container.querySelectorAll(_.elements_selector),h_=_=>up(_).filter(iu),u_=_=>gy(_),c_=_=>up(_).filter(u_),cp=(_,T)=>h_(_||bl(T)),d_=(_,T)=>{c_(bl(_)).forEach(M=>{qr(M,_.class_error),vl(M)}),T.update()},p_=(_,T)=>{!So||(T._onlineHandler=()=>{d_(_,T)},window.addEventListener("online",T._onlineHandler))},f_=_=>{!So||window.removeEventListener("online",_._onlineHandler)},ya=function(_,T){const m=Bd(_);this._settings=m,this.loadingCount=0,l_(m,this),p_(m,this),this.update(T)};ya.prototype={update:function(_){const T=this._settings,m=cp(_,T);if(Yd(this,m.length),Nd||!Ld){this.loadAll(m);return}if(hp(T)){n_(m,T,this);return}a_(this._observer,m)},destroy:function(){this._observer&&this._observer.disconnect(),f_(this),bl(this._settings).forEach(_=>{Qd(_)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(_){const T=this._settings;cp(_,T).forEach(M=>{yl(M,this),uu(M,T,this)})},restoreAll:function(){const _=this._settings;bl(_).forEach(T=>{Zy(T,_)})}},ya.load=(_,T)=>{const m=Bd(T);uu(_,m)},ya.resetStatus=_=>{vl(_)},So&&dy(ya,window.lazyLoadOptions);class cu{constructor({readonly:T,onNewPageIndex:m,onPlay:M,onPagesReady:E,urlInterrupter:P}){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 Cs,this.readonly=T,this.onNewPageIndex=m,this.onPlay=M,this.onPagesReady=E,this.urlInterrupter=P||(D=>D),this.render()}set pages(T){this._pages=T,this.refreshPreview().then(this.refreshBtnSidebar.bind(this)),this.refreshTotalPage(),this.onPagesReady&&this.onPagesReady(T)}get pages(){return this._pages}unmount(){this.$content.remove(),this.$footer.remove()}setReadonly(T){this.readonly=T,this.$content.classList.toggle(this.wrapClassName("readonly"),T),this.$footer.classList.toggle(this.wrapClassName("readonly"),T),this.$pageNumberInput.disabled=T}destroy(){var T;(T=this.previewLazyLoad)==null||T.destroy(),this.sideEffect.flushAll(),this.unmount()}setPageIndex(T){Number.isNaN(T)||(this.pageIndex=T,this.$pageNumberInput.value=String(T+1))}refreshTotalPage(){this.pages.length?this.$totalPage.textContent=" / "+this.pages.length:this.$totalPage.textContent=""}setSmallBox(T){this.isSmallBox!==T&&(this.isSmallBox=T,this.$footer.classList.toggle(this.wrapClassName("float-footer"),T))}render(){return this.renderContent(),this.renderFooter(),this.$content}renderContent(){if(!this.$content){const T=document.createElement("div");T.className=this.wrapClassName("content"),this.$content=T,this.readonly&&T.classList.add(this.wrapClassName("readonly")),T.appendChild(this.renderPreviewMask()),T.appendChild(this.renderPreview())}return this.$content}renderPreview(){if(!this.$preview){const T=document.createElement("div");T.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=T,this.refreshPreview(),this.sideEffect.addEventListener(T,"click",m=>{var E;if(this.readonly)return;const M=(E=m.target.dataset)==null?void 0:E.pageIndex;M&&(m.preventDefault(),m.stopPropagation(),m.stopImmediatePropagation(),this.onNewPageIndex(Number(M),"preview"),this.togglePreview(!1))})}return this.$preview}async refreshPreview(){var P,D;const{$preview:T}=this,m=this.wrapClassName("preview-page"),M=this.wrapClassName("preview-page-name");for(;T.firstChild;)T.firstChild.remove();const E=[];for(let B=0,z=this.pages.length;B<z;B++){const X=this.pages[B],Z=(P=X.thumbnail)!=null?P:X.src.startsWith("ppt")?void 0:X.src;Z&&(E[B]=this.urlInterrupter(Z))}for(let B=0,z=this.pages.length;B<z;B++)E[B]=await E[B];this.pages.forEach((B,z)=>{const X=E[z];if(!X)return;const Z=String(z),nt=document.createElement("a");nt.className=m+" "+this.wrapClassName(`preview-page-${z}`),nt.setAttribute("href","#"),nt.dataset.pageIndex=Z;const at=document.createElement("span");at.className=M,at.textContent=String(z+1),at.dataset.pageIndex=Z;const Tt=document.createElement("img");Tt.width=B.width,Tt.height=B.height,Tt.dataset.src=X,Tt.dataset.pageIndex=Z,nt.appendChild(Tt),nt.appendChild(at),T.appendChild(nt)}),(D=this.previewLazyLoad)==null||D.update()}renderPreviewMask(){return this.$previewMask||(this.$previewMask=document.createElement("div"),this.$previewMask.className=this.wrapClassName("preview-mask"),this.sideEffect.addEventListener(this.$previewMask,"click",T=>{this.readonly||T.target===this.$previewMask&&this.togglePreview(!1)})),this.$previewMask}refreshBtnSidebar(){this.$btnSidebar.style.display=this.pages.length>0?"":"none"}renderFooter(){if(!this.$footer){const T=document.createElement("div");T.className=this.wrapClassName("footer"),this.$footer=T,this.readonly&&T.classList.add(this.wrapClassName("readonly")),this.isSmallBox&&T.classList.add(this.wrapClassName("float-footer"));const m=this.renderFooterBtn("btn-sidebar",sy(this.namespace));this.sideEffect.addEventListener(m,"click",()=>{this.readonly||this.togglePreview()}),this.$btnSidebar=m,this.$btnSidebar.style.display="none",this.$footer.appendChild(m);const M=document.createElement("div");M.className=this.wrapClassName("page-jumps");const E=this.renderFooterBtn("btn-page-back",ay(this.namespace));if(this.sideEffect.addEventListener(E,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex-1,"navigation")}),M.appendChild(E),this.onPlay){const X=this.renderFooterBtn("btn-page-play",hy(this.namespace),uy(this.namespace));this.$btnPlay=X,this.sideEffect.addEventListener(X,"click",()=>{this.readonly||(this.setPlaying(),this.onPlay&&this.onPlay())}),M.appendChild(X)}const P=this.renderFooterBtn("btn-page-next",ly(this.namespace));this.sideEffect.addEventListener(P,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex+1,"navigation")}),M.appendChild(P);const D=document.createElement("div");D.className=this.wrapClassName("page-number");const B=document.createElement("input");B.className=this.wrapClassName("page-number-input"),B.value=String(this.pageIndex+1),this.readonly&&(B.disabled=!0),this.$pageNumberInput=B,this.sideEffect.addEventListener(B,"focus",()=>{B.select()}),this.sideEffect.addEventListener(B,"change",()=>{this.readonly||B.value&&this.onNewPageIndex(Number(B.value)-1,"input")});const z=document.createElement("span");this.$totalPage=z,D.appendChild(B),D.appendChild(z),this.$footer.appendChild(M),this.$footer.appendChild(D)}return this.$footer}renderFooterBtn(T,m,M){const E=document.createElement("button");return E.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(T),E.appendChild(m),M&&E.appendChild(M),E}togglePreview(T){if(this.isShowPreview=T!=null?T:!this.isShowPreview,this.$content.classList.toggle(this.wrapClassName("preview-active"),this.isShowPreview),this.isShowPreview){const m=this.$preview.querySelector("."+this.wrapClassName(`preview-page-${this.pageIndex}`));m&&(this.previewLazyLoad||(this.previewLazyLoad=new ya({container:this.$preview,elements_selector:`.${this.wrapClassName("preview-page>img")}`})),this.$preview.scrollTo({top:m.offsetTop-16}))}}wrapClassName(T){return`${this.namespace}-${T}`}}class m_{constructor(T,m){this.horizontalScrollBar=null,this.verticalScrollBar=null,this.isDraggingHorizontal=!1,this.isDraggingVertical=!1,this.eventListeners=[],this.container=T,this.resizableContainer=m}addTrackedListener(T,m,M){T.addEventListener(m,M),this.eventListeners.push({element:T,type:m,listener:M})}removeAllListeners(){this.eventListeners.forEach(({element:T,type:m,listener:M})=>{T.removeEventListener(m,M)}),this.eventListeners=[]}render(T,m,M,E){this.clearScrollBars(),M>T&&this.createHorizontalScrollBar(T,M),E>m&&this.createVerticalScrollBar(m,E)}handleNormalizeTranslate(T,m){const M=Math.max(0,Math.min(1,T)),E=Math.max(0,Math.min(1,m));if(this.horizontalScrollBar){const P=this.horizontalScrollBar.querySelector(".horizontal-thumb");if(P){const D=this.horizontalScrollBar.offsetWidth,B=P.offsetWidth,z=D-B-2;if(z>0){const X=1+M*z;P.style.left=`${X}px`}}}if(this.verticalScrollBar){const P=this.verticalScrollBar.querySelector(".vertical-thumb");if(P){const D=this.verticalScrollBar.offsetHeight,B=P.offsetHeight,z=D-B-2;if(z>0){const X=1+E*z;P.style.top=`${X}px`}}}}clearScrollBars(){this.removeAllListeners(),this.horizontalScrollBar&&(this.horizontalScrollBar.remove(),this.horizontalScrollBar=null),this.verticalScrollBar&&(this.verticalScrollBar.remove(),this.verticalScrollBar=null)}createHorizontalScrollBar(T,m){const M=document.createElement("div");M.className="scroll-bar horizontal";const E=T,P=E,D=Math.max(30,Math.min(P,P*E/m));M.style.cssText=`
8032
+ `)}}}),function(o){var s=Qc.get(o.hookPoint)||[];s.push(o),Qc.set(o.hookPoint,s)}(r)},t.volumeAdjuster=new Zg,t.__stageCountLimit=-1,t.trackLogger=new z2,t.handleFrozenAllSlide=function(){t.instances.forEach(function(r){r.player&&(t._tempFrozenIds.push(r.randomId),r.frozen())})},t.handleReleaseAllSlide=function(){t._tempFrozenIds.forEach(function(r){var o=t.instances.find(function(s){return s.randomId===r});o&&o.release()}),t._tempFrozenIds=[]},t.handleLogReport=function(r){return Vi(void 0,void 0,void 0,function(){var o,s,a,l,h,u;return Wi(e,function(p){switch(p.label){case 0:return[4,t.flushLog(!0)];case 1:if(p.sent(),!gr)return[3,12];o=[],p.label=2;case 2:return p.trys.push([2,4,,5]),[4,gr.keys()];case 3:return o=(p.sent()||[]).sort(function(y,b){return parseInt(y.replace("run_time_log_",""))-parseInt(b.replace("run_time_log_",""))}),[3,5];case 4:return p.sent(),[3,5];case 5:if(o.length===0)return window.postMessage({type:"@slide/_report_log_",log:"",index:1,total:1,customMessage:"@slide/_report_log_",sessionId:r},"*"),[2];s=0,a=o,p.label=6;case 6:if(!(s<a.length))return[3,12];l=a[s],h=l.replace("run_time_log_",""),u="",p.label=7;case 7:return p.trys.push([7,9,,10]),[4,gr.getItem(l)];case 8:return u=p.sent()||"",[3,10];case 9:return p.sent(),[3,10];case 10:window.postMessage({type:"@slide/_report_log_",log:u,index:parseInt(h,10),total:o.length,customMessage:"@slide/_report_log_",sessionId:r},"*"),p.label=11;case 11:return s++,[3,6];case 12:return[2]}})})},t.handleLogDownload=function(){return Vi(void 0,void 0,void 0,function(){var r,o,s,a,l,h,u;return Wi(e,function(p){switch(p.label){case 0:return p.trys.push([0,7,,8]),[4,t.flushLog(!0)];case 1:return p.sent(),r="",gr?[4,gr.keys()]:[3,6];case 2:o=(p.sent()||[]).sort(function(y,b){return parseInt(y.replace("run_time_log_",""))-parseInt(b.replace("run_time_log_",""))}),s=0,a=o,p.label=3;case 3:return s<a.length?(l=a[s],h=r,[4,gr.getItem(l)]):[3,6];case 4:r=h+(p.sent()||""),p.label=5;case 5:return s++,[3,3];case 6:return(u=document.createElement("a")).setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(r)),u.setAttribute("download","slide_log"),u.style.display="none",document.body.appendChild(u),u.click(),document.body.removeChild(u),[3,8];case 7:return p.sent(),[3,8];case 8:return[2]}})})},q2([(n="Slide.initConfig",function(r,o,s){var a=s.value;s.value=function(){for(var l=[],h=0;h<arguments.length;h++)l[h]=arguments[h];for(var u=Qc.get(n)||[],p=l,y=0,b=u;y<b.length;y++){var w=b[y];try{p=w.before(p)}catch{}if(!Array.isArray(p)||p.length!==l.length)throw new Error("plugin before hook return invalid args")}for(var C=a.bind(this).apply(void 0,p),I=0,H=u.reverse();I<H.length;I++){w=H[I];try{C=w.after(C)}catch{}if(!C)throw new Error("plugin after hook return undefined result")}return C}})],t.prototype,"initSlideConfig",null),t}(vi.a);gr==null||gr.clear().catch(function(){}),window.addEventListener("__slide_log__",ao.handleLogDownload),window.addEventListener("message",function(i){var t;if(i.data.type==="@slide/_request_log_")ao.handleLogReport(i.data.sessionId).catch(function(){});else if(i.data.type==="@slide/_request_frozen_")ao.handleFrozenAllSlide();else if(i.data.type==="@slide/_request_release_")ao.handleReleaseAllSlide();else if(i.data.type==="@slide/_update_volume_"){var e=.5;try{e=parseFloat(i.data.volume.toString())}catch{}ao.volumeAdjuster.volume=e}else if(i.data.type==="@slide/_get_volume_")window.postMessage({type:"@slide/_report_volume_",volume:ao.volumeAdjuster.volume,customMessage:"@slide/_report_volume_"},"*");else if(i.data.type==="@slide/_preload_slide_"){var n=(t=i.data.sessionId)!==null&&t!==void 0?t:Math.random().toString(32).substr(2);ao.preloadResource(i.data.taskId,i.data.prefix,i.data.maxResolutionLevel,function(r){window.postMessage({type:"@slide/_preload_slide_progress_",sessionId:n,taskId:i.data.taskId,progress:r},"*")},i.data.pages).catch(function(r){window.postMessage({type:"@slide/_preload_slide_error_",sessionId:n,taskId:i.data.taskId,error:r},"*")})}}),window.setInterval(function(){ao.flushLog().catch(function(){})},2e3)}]),Hv="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",jv=87,zv=20,xd=[],Vv=()=>{for(let _=0;_<zv;_++)xd[_]=Hv.charAt(Math.random()*jv);return xd.join("")};function bd(_){try{return _()}catch(T){console.error(T)}}var Cs=class{constructor(){this.push=this.addDisposer,this.disposers=new Map}addDisposer(_,T=this.genUID()){return this.flush(T),this.disposers.set(T,Array.isArray(_)?Wv(_):_),T}add(_,T=this.genUID()){const m=_();return m?this.addDisposer(m,T):T}addEventListener(_,T,m,M,E=this.genUID()){return _.addEventListener(T,m,M),this.addDisposer(()=>_.removeEventListener(T,m,M),E),E}setTimeout(_,T,m=this.genUID()){const M=window.setTimeout(()=>{this.remove(m),_()},T);return this.addDisposer(()=>window.clearTimeout(M),m)}setInterval(_,T,m=this.genUID()){const M=window.setInterval(_,T);return this.addDisposer(()=>window.clearInterval(M),m)}remove(_){const T=this.disposers.get(_);return this.disposers.delete(_),T}flush(_){const T=this.remove(_);T&&T()}flushAll(){this.disposers.forEach(bd),this.disposers.clear()}genUID(){let _;do _=Vv();while(this.disposers.has(_));return _}};function Wv(_){return()=>_.forEach(bd)}function Td(_,T,m){return Math.min(Math.max(_,T),m)}function Xv(_){return typeof _=="object"&&_!==null}function Yv(_){if(!_)return!1;const T=_.tagName;return T==="INPUT"||T==="TEXTAREA"||T==="SELECT"}var Sd={exports:{}},qv={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]},wd={exports:{}},Jv=function(T){return!T||typeof T=="string"?!1:T instanceof Array||Array.isArray(T)||T.length>=0&&(T.splice instanceof Function||Object.getOwnPropertyDescriptor(T,T.length-1)&&T.constructor.name!=="String")},Kv=Jv,Zv=Array.prototype.concat,$v=Array.prototype.slice,Ed=wd.exports=function(T){for(var m=[],M=0,E=T.length;M<E;M++){var P=T[M];Kv(P)?m=Zv.call(m,$v.call(P)):m.push(P)}return m};Ed.wrap=function(_){return function(){return _(Ed(arguments))}};var pa=qv,fa=wd.exports,Ad=Object.hasOwnProperty,Cd=Object.create(null);for(var qh in pa)Ad.call(pa,qh)&&(Cd[pa[qh]]=qh);var _r=Sd.exports={to:{},get:{}};_r.get=function(_){var T=_.substring(0,3).toLowerCase(),m,M;switch(T){case"hsl":m=_r.get.hsl(_),M="hsl";break;case"hwb":m=_r.get.hwb(_),M="hwb";break;default:m=_r.get.rgb(_),M="rgb";break}return m?{model:M,value:m}:null},_r.get.rgb=function(_){if(!_)return null;var T=/^#([a-f0-9]{3,4})$/i,m=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,M=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,E=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,P=/^(\w+)$/,D=[0,0,0,1],B,z,X;if(B=_.match(m)){for(X=B[2],B=B[1],z=0;z<3;z++){var Z=z*2;D[z]=parseInt(B.slice(Z,Z+2),16)}X&&(D[3]=parseInt(X,16)/255)}else if(B=_.match(T)){for(B=B[1],X=B[3],z=0;z<3;z++)D[z]=parseInt(B[z]+B[z],16);X&&(D[3]=parseInt(X+X,16)/255)}else if(B=_.match(M)){for(z=0;z<3;z++)D[z]=parseInt(B[z+1],0);B[4]&&(B[5]?D[3]=parseFloat(B[4])*.01:D[3]=parseFloat(B[4]))}else if(B=_.match(E)){for(z=0;z<3;z++)D[z]=Math.round(parseFloat(B[z+1])*2.55);B[4]&&(B[5]?D[3]=parseFloat(B[4])*.01:D[3]=parseFloat(B[4]))}else return(B=_.match(P))?B[1]==="transparent"?[0,0,0,0]:Ad.call(pa,B[1])?(D=pa[B[1]],D[3]=1,D):null:null;for(z=0;z<3;z++)D[z]=To(D[z],0,255);return D[3]=To(D[3],0,1),D},_r.get.hsl=function(_){if(!_)return null;var T=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,m=_.match(T);if(m){var M=parseFloat(m[4]),E=(parseFloat(m[1])%360+360)%360,P=To(parseFloat(m[2]),0,100),D=To(parseFloat(m[3]),0,100),B=To(isNaN(M)?1:M,0,1);return[E,P,D,B]}return null},_r.get.hwb=function(_){if(!_)return null;var T=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,m=_.match(T);if(m){var M=parseFloat(m[4]),E=(parseFloat(m[1])%360+360)%360,P=To(parseFloat(m[2]),0,100),D=To(parseFloat(m[3]),0,100),B=To(isNaN(M)?1:M,0,1);return[E,P,D,B]}return null},_r.to.hex=function(){var _=fa(arguments);return"#"+ml(_[0])+ml(_[1])+ml(_[2])+(_[3]<1?ml(Math.round(_[3]*255)):"")},_r.to.rgb=function(){var _=fa(arguments);return _.length<4||_[3]===1?"rgb("+Math.round(_[0])+", "+Math.round(_[1])+", "+Math.round(_[2])+")":"rgba("+Math.round(_[0])+", "+Math.round(_[1])+", "+Math.round(_[2])+", "+_[3]+")"},_r.to.rgb.percent=function(){var _=fa(arguments),T=Math.round(_[0]/255*100),m=Math.round(_[1]/255*100),M=Math.round(_[2]/255*100);return _.length<4||_[3]===1?"rgb("+T+"%, "+m+"%, "+M+"%)":"rgba("+T+"%, "+m+"%, "+M+"%, "+_[3]+")"},_r.to.hsl=function(){var _=fa(arguments);return _.length<4||_[3]===1?"hsl("+_[0]+", "+_[1]+"%, "+_[2]+"%)":"hsla("+_[0]+", "+_[1]+"%, "+_[2]+"%, "+_[3]+")"},_r.to.hwb=function(){var _=fa(arguments),T="";return _.length>=4&&_[3]!==1&&(T=", "+_[3]),"hwb("+_[0]+", "+_[1]+"%, "+_[2]+"%"+T+")"},_r.to.keyword=function(_){return Cd[_.slice(0,3)]};function To(_,T,m){return Math.min(Math.max(T,_),m)}function ml(_){var T=Math.round(_).toString(16).toUpperCase();return T.length<2?"0"+T:T}var Qv=Sd.exports;class ty{constructor(T){this.enable=T,this.apps={},this.level="debug",this.roomLogger=null,this._onMessage=m=>{let M;m instanceof CustomEvent?M=m.detail:Xv(m.data)&&(M=m.data),M&&(typeof M.slide=="boolean"?this.enable=M.slide:M.slide==="__instance"?console.log(this):M.slide==="__debug"&&Object.values(this.apps).forEach(E=>{var P,D;(D=(P=E.controller)==null?void 0:P.slide)==null||D.createController()}))},this.initialize()}setAppContext(T,m){var M;((M=this.apps)[T]||(M[T]={})).context=m,this.log(`[Slide] new ${T}`)}setAppController(T,m){var M;((M=this.apps)[T]||(M[T]={})).controller=m}deleteApp(T){delete this.apps[T],this.log(`[Slide] delete ${T}`)}initialize(){window.addEventListener("message",this._onMessage)}dispose(){window.removeEventListener("message",this._onMessage)}log(...T){this.roomLogger?this.roomLogger.info(...T):this.enable&&console.log(...T)}verbose(...T){this.roomLogger?this.roomLogger.debug(...T):this.enable&&this.level==="verbose"&&console.log(...T)}warn(...T){this.roomLogger?this.roomLogger.warn(...T):console.warn(...T)}}const Mr=new ty(!1),ri=Mr.log.bind(Mr),Jh=Mr.verbose.bind(Mr),ey=_=>{Mr.roomLogger=_.logger};function Md(_){try{const T=window.getComputedStyle(_).backgroundColor;if(T!=="rgba(0, 0, 0, 0)"&&T!=="transparent")return T;if(_.parentElement)return Md(_.parentElement)}catch{}return"#ffffff"}function ny(_){const T=Qv.get(_);if(T&&T.model==="rgb"){const m=T.value,E=(((Math.round(m[0])&255)<<16)+((Math.round(m[1])&255)<<8)+(Math.round(m[2])&255)).toString(16);return"#"+"000000".substring(E.length)+E}else return _}let gl="";function Rd(_){return gl||(gl=ny(Md(_)),ri("[Slide] guess bg color",gl)),gl}const iy=_=>_.tracker;function Id(_,T=[]){const{width:m,height:M,slideCount:E,slideState:P}=_,{taskId:D,url:B}=P,z=[];for(let X=1;X<=E;++X){const Z=T.find(nt=>nt.indexOf(`preview/${X}.png`)>=0);Z?z.push({width:m,height:M,thumbnail:Z,src:"ppt"}):z.push({width:m,height:M,thumbnail:`${B}/${D}/preview/${X}.png`,src:"ppt"})}return z}function Kh(_,T,m,M){var B;const E=m.slideState.currentSlideIndex;if(!(E>0)||!T.getIsWritable())return;const P=[M,E].join("/");if(T.isAddApp&&_.scenePathType(P)!=="page"){_.removeScenes(M);const z=m.slideCount,X=[];for(let Z=1;Z<=z;++Z)X.push({name:`${Z}`});_.putScenes(M,X)}let D;T.getBox().focus?D=_.state.sceneState.scenePath:D=((B=T.getView())==null?void 0:B.focusScenePath)||"",D!==P&&_.scenePathType(P)==="page"&&T.setScenePath(P)}const Zh="https://convertcdn.netless.link/dynamicConvert",ry=40,$h={taskId:"",url:"",state:null,resourceList:[],previewList:[],customLinks:[],slideScale:1,translateX:.5,translateY:.5},oy=function(){};class Pd{constructor(T){this.sideEffect=new Cs,this.previewList=[],this.ready=!1,this.readyPromise=new Promise(at=>{this.resolveReady=Tt=>{this.ready?ri("[Slide] render end",Tt):setTimeout(()=>{this.ready=!0,at()},1e3)}}),this.onSyncDispatch=at=>{if(this.context.getIsWritable()&&this.room){const Tt={type:ui.SLIDE_EVENTS.syncDispatch,payload:at};Jh("[Slide] dispatch",JSON.stringify(at)),this.context.dispatchMagixEvent(ui.SLIDE_EVENTS.syncDispatch,Tt)}},this.magixEventListener=at=>{const{type:Tt,payload:bt}=at.payload;Tt===ui.SLIDE_EVENTS.syncDispatch&&(this.syncStateOnce(),Jh("[Slide] receive",JSON.stringify(bt)),this.slide.emit(ui.SLIDE_EVENTS.syncReceive,bt))},this.onStateChange=at=>{this.context.getIsWritable()&&(Jh("[Slide] state change",JSON.stringify(at,null,2)),this.context.storage.setState({state:at}))},this.pollCount=0,this.pollReadyState=()=>{this.ready?this._toFreeze===1?this.freeze():this._toFreeze===-1&&this.unfreeze():this.pollCount<ry?(this.pollCount++,setTimeout(this.pollReadyState,500)):(this.pollCount=0,ri("[Slide] init timeout"))},this._pageCount=0,this.destroyed=!1,this.timestamp=()=>this.room&&this.room.calibrationTimestamp?this.room.calibrationTimestamp:this.player?this.player.beginTimestamp+this.player.progressTime:Date.now(),this.isFrozen=!1,this._toFreeze=0,this.freeze=()=>{this.isFrozen=!0,this.ready?(ri("[Slide] freeze",this.context.appId),this.invisibleBehavior==="frozen"?this.slide.frozen():this.slide.pause()):this._toFreeze=1},this.unfreeze=async()=>{if(!!this.visible)if(this.isFrozen=!1,this.ready){let at=!1;if(ri("[Slide] unfreeze",this.context.appId),this.invisibleBehavior==="frozen"?(this.slide.release(()=>{this.slide.notifyFrameResize()}),at=!0):(this.slide.resume(),this.slide.notifyFrameResize()),at){const Tt=this.context.storage.state.state;Tt&&(ri("[Slide] sync storage",JSON.stringify(Tt)),this.slide.setSlideState(Tt))}}else this._toFreeze=-1},this.bindAppStateChangeEvent=()=>{try{if(this.context.getBoxStatus())this.context.getAppProxy()&&this.context.emitter.on("boxStatusChange",this.onAppStatusChangeHandler);else{const Tt=this.context.getWindowManager();Tt&&Tt.emitter.on("boxStateChange",this.onAppStateChangeHandler)}}catch{ri("[Slide] bind app state change event failed, because should update window manager to latest version")}},this.onAppStateChangeHandler=at=>{at==="minimized"&&(ri("[Slide] freeze because app state is minimized"),this.freeze())},this.onAppStatusChangeHandler=at=>{const{appId:Tt,status:bt}=at;Tt===this.context.appId&&bt==="minimized"&&(ri("[Slide] freeze because app status is minimized"),this.freeze())},this.getAppStatus=()=>{try{const at=this.context.getBoxStatus();return at||this.context.getWindowManager().boxState}catch{return}},this.onVisibilityChange=async()=>{if(this.getAppStatus()==="minimized"){ri("[Slide] do nothing because app state is minimized");return}(this.visible=document.visibilityState==="visible")?this.savedIsFrozen||(ri("[Slide] unfreeze because tab becomes visible",{savedIsFrozen:this.savedIsFrozen}),this.unfreeze()):(this.savedIsFrozen=this.isFrozen,ri("[Slide] freeze because tab becomes invisible"),this.freeze())};const{context:m,onRenderStart:M,onPageChanged:E,onTransitionStart:P,onTransitionEnd:D,onNavigate:B,onError:z,onRenderError:X,showRenderError:Z,invisibleBehavior:nt}=T;this.invisibleBehavior=nt!=null?nt:"frozen",this.onRenderStart=M,this.onPageChanged=E,this.onTransitionStart=P,this.onTransitionEnd=D,this.onNavigate=B||oy,this.onError=z,this.onRenderError=X,this.showRenderError=Z!=null?Z:!0,this.context=m,this.room=m.getRoom(),this.player=this.room?void 0:m.getDisplayer(),ey(this.room||this.player),this.syncStateOnceFlag=!this.context.isAddApp,this.visible=document.visibilityState==="visible",this.savedIsFrozen=!1}jumpToPage(T,m){this.ready&&(T=Td(T,1,this.pageCount),this.onNavigate(T,m),this.slide.renderSlide(T))}initialize(){this.registerEventListeners(),this.kickStart()}kickStart(){const{context:T,slide:m}=this;T.getIsWritable()&&T.storage.ensureState($h);const{taskId:M,url:E,resourceList:P,previewList:D,state:B}=T.storage.state;this.previewList=D,P&&P.length>0?m.setResourceList(M,P):m.setResource(M,E||Zh),B?(ri("[Slide] init with state",JSON.stringify(B)),this.syncStateOnceFlag=!1,m.setSlideState(B)):T.isAddApp&&(ri("[Slide] init by renderSlide",1),m.renderSlide(1)),this.pollReadyState()}registerEventListeners(){const{context:T,slide:m}=this,M=this.sideEffect.addDisposer(T.storage.addStateChangedListener(()=>{T.storage.state.state&&(this.syncStateOnce(),this.sideEffect.flush(M))}));this.sideEffect.add(()=>T.addMagixEventListener(ui.SLIDE_EVENTS.syncDispatch,this.magixEventListener,{fireSelfEventAfterCommit:!0})),m.on(ui.SLIDE_EVENTS.renderStart,this.onRenderStart),m.on(ui.SLIDE_EVENTS.slideChange,this.onPageChanged),m.on(ui.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),m.on(ui.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),m.on(ui.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),m.on(ui.SLIDE_EVENTS.renderError,this.onError),m.on(ui.SLIDE_EVENTS.stateChange,this.onStateChange),m.on(ui.SLIDE_EVENTS.syncDispatch,this.onSyncDispatch),m.on(ui.SLIDE_EVENTS.renderEnd,this.resolveReady),this.sideEffect.add(()=>(document.addEventListener("visibilitychange",this.onVisibilityChange),this.bindAppStateChangeEvent(),()=>{document.removeEventListener("visibilitychange",this.onVisibilityChange);try{this.context.emitter.off("boxStatusChange",this.onAppStatusChangeHandler),this.context.getWindowManager().emitter.off("boxStateChange",this.onAppStateChangeHandler)}catch{ri("[Slide] unbind app state change event failed, because should update window manager to latest version")}}))}syncStateOnce(){if(this.syncStateOnceFlag){this.context.getIsWritable()&&this.context.storage.ensureState($h);const{state:T}=this.context.storage.state;T&&(ri("[Slide] sync with state (once)",JSON.stringify(T)),this.slide.setSlideState(T),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(T,m={}){var D,B,z,X,Z;const M=this.context.getAppOptions()||{},E=this.context.storage.state;return new ui.Slide({anchor:T,interactive:!0,mode:"interactive",syncEventQueuePolicy:(D=M.syncEventQueuePolicy)!=null?D:"fifo",controller:!1,enableGlobalClick:(B=M.enableGlobalClick)!=null?B:!0,renderOptions:{minFPS:M.minFPS||25,maxFPS:M.maxFPS||30,autoFPS:(z=M.autoFPS)!=null?z:!0,autoResolution:(X=M.autoResolution)!=null?X:!0,resolution:M.resolution,transactionBgColor:M.bgColor||Rd(T),maxResolutionLevel:M.maxResolutionLevel,forceCanvas:M.forceCanvas,enableNvidiaDetect:M.enableNvidiaDetect},fixedFrameSize:M.fixedFrameSize,loaderDelegate:M.loaderDelegate,navigatorDelegate:M.navigatorDelegate,urlInterrupter:M.urlInterrupter,resourceTimeout:M.resourceTimeout,rtcAudio:M.rtcAudio,useLocalCache:M.useLocalCache,logger:M.logger,whiteTracker:m.whiteTracker,timestamp:this.timestamp,customLinks:E.customLinks,skipActionWhenFrozen:(Z=M.skipActionWhenFrozen)!=null?Z:!0,resourceMaxRetries:M.resourceMaxRetries,onResourceMaxRetries:M.onResourceMaxRetries,disableFrameResizeObserver:!0})}destroy(){this.sideEffect.flushAll(),this.destroyed||(ri("[Slide] destroy slide (once)"),this.slide.destroy(),this.destroyed=!0)}}class Od extends Pd{constructor(T){super(T),this.slide=this.createSlide(T.anchor,{whiteTracker:iy(T.context.getDisplayer())}),this.initialize()}}function sy(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-sidebar`),m.setAttribute("viewBox","0 0 64 64");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function ay(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-arrow-left`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function ly(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-arrow-right`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function hy(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-play`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}function uy(_){const T="http://www.w3.org/2000/svg",m=document.createElementNS(T,"svg");m.setAttribute("class",`${_}-footer-icon-pause`),m.setAttribute("viewBox","0 0 500 500");const M=document.createElementNS(T,"path");return M.setAttribute("fill","currentColor"),M.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"),m.appendChild(M),m}const So=typeof window!="undefined",Nd=So&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Ld=So&&"IntersectionObserver"in window,Dd=So&&"classList"in document.createElement("p"),Fd=So&&window.devicePixelRatio>1,cy={elements_selector:".lazy",container:Nd||So?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},Bd=_=>Object.assign({},cy,_),kd=function(_,T){let m;const M="LazyLoad::Initialized",E=new _(T);try{m=new CustomEvent(M,{detail:{instance:E}})}catch{m=document.createEvent("CustomEvent"),m.initCustomEvent(M,!1,!1,{instance:E})}window.dispatchEvent(m)},dy=(_,T)=>{if(!!T)if(!T.length)kd(_,T);else for(let m=0,M;M=T[m];m+=1)kd(_,M)},ho="src",Qh="srcset",tu="sizes",Ud="poster",ma="llOriginalAttrs",Gd="data",eu="loading",Hd="loaded",jd="applied",py="entered",nu="error",zd="native",Vd="data-",Wd="ll-status",pr=(_,T)=>_.getAttribute(Vd+T),fy=(_,T,m)=>{const M=Vd+T;if(m===null){_.removeAttribute(M);return}_.setAttribute(M,m)},ga=_=>pr(_,Wd),es=(_,T)=>fy(_,Wd,T),vl=_=>es(_,null),iu=_=>ga(_)===null,my=_=>ga(_)===eu,gy=_=>ga(_)===nu,ru=_=>ga(_)===zd,vy=[eu,Hd,jd,nu],yy=_=>vy.indexOf(ga(_))>=0,wo=(_,T,m,M)=>{if(!(!_||typeof _!="function")){if(M!==void 0){_(T,m,M);return}if(m!==void 0){_(T,m);return}_(T)}},Ms=(_,T)=>{if(T!==""){if(Dd){_.classList.add(T);return}_.className+=(_.className?" ":"")+T}},qr=(_,T)=>{if(T!==""){if(Dd){_.classList.remove(T);return}_.className=_.className.replace(new RegExp("(^|\\s+)"+T+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}},_y=_=>{_.llTempImage=document.createElement("IMG")},xy=_=>{delete _.llTempImage},Xd=_=>_.llTempImage,yl=(_,T)=>{if(!T)return;const m=T._observer;!m||m.unobserve(_)},by=_=>{_.disconnect()},Ty=(_,T,m)=>{T.unobserve_entered&&yl(_,m)},ou=(_,T)=>{!_||(_.loadingCount+=T)},Sy=_=>{!_||(_.toLoadCount-=1)},Yd=(_,T)=>{!_||(_.toLoadCount=T)},wy=_=>_.loadingCount>0,Ey=_=>_.toLoadCount>0,qd=_=>{let T=[];for(let m=0,M;M=_.children[m];m+=1)M.tagName==="SOURCE"&&T.push(M);return T},su=(_,T)=>{const m=_.parentNode;if(!m||m.tagName!=="PICTURE")return;qd(m).forEach(T)},Jd=(_,T)=>{qd(_).forEach(T)},_l=[ho],Kd=[ho,Ud],va=[ho,Qh,tu],Zd=[Gd],xl=_=>!!_[ma],$d=_=>_[ma],Qd=_=>delete _[ma],Rs=(_,T)=>{if(xl(_))return;const m={};T.forEach(M=>{m[M]=_.getAttribute(M)}),_[ma]=m},Ay=_=>{xl(_)||(_[ma]={backgroundImage:_.style.backgroundImage})},Cy=(_,T,m)=>{if(!m){_.removeAttribute(T);return}_.setAttribute(T,m)},ns=(_,T)=>{if(!xl(_))return;const m=$d(_);T.forEach(M=>{Cy(_,M,m[M])})},My=_=>{if(!xl(_))return;const T=$d(_);_.style.backgroundImage=T.backgroundImage},tp=(_,T,m)=>{Ms(_,T.class_applied),es(_,jd),m&&(T.unobserve_completed&&yl(_,T),wo(T.callback_applied,_,m))},ep=(_,T,m)=>{Ms(_,T.class_loading),es(_,eu),m&&(ou(m,1),wo(T.callback_loading,_,m))},Eo=(_,T,m)=>{!m||_.setAttribute(T,m)},np=(_,T)=>{Eo(_,tu,pr(_,T.data_sizes)),Eo(_,Qh,pr(_,T.data_srcset)),Eo(_,ho,pr(_,T.data_src))},Ry=(_,T)=>{su(_,m=>{Rs(m,va),np(m,T)}),Rs(_,va),np(_,T)},Iy=(_,T)=>{Rs(_,_l),Eo(_,ho,pr(_,T.data_src))},Py=(_,T)=>{Jd(_,m=>{Rs(m,_l),Eo(m,ho,pr(m,T.data_src))}),Rs(_,Kd),Eo(_,Ud,pr(_,T.data_poster)),Eo(_,ho,pr(_,T.data_src)),_.load()},Oy=(_,T)=>{Rs(_,Zd),Eo(_,Gd,pr(_,T.data_src))},Ny=(_,T,m)=>{const M=pr(_,T.data_bg),E=pr(_,T.data_bg_hidpi),P=Fd&&E?E:M;!P||(_.style.backgroundImage=`url("${P}")`,Xd(_).setAttribute(ho,P),ep(_,T,m))},Ly=(_,T,m)=>{const M=pr(_,T.data_bg_multi),E=pr(_,T.data_bg_multi_hidpi),P=Fd&&E?E:M;!P||(_.style.backgroundImage=P,tp(_,T,m))},Dy=(_,T,m)=>{const M=pr(_,T.data_bg_set);if(!M)return;const E=M.split("|");let P=E.map(D=>`image-set(${D})`);_.style.backgroundImage=P.join(),_.style.backgroundImage===""&&(P=E.map(D=>`-webkit-image-set(${D})`),_.style.backgroundImage=P.join()),tp(_,T,m)},ip={IMG:Ry,IFRAME:Iy,VIDEO:Py,OBJECT:Oy},Fy=(_,T)=>{const m=ip[_.tagName];!m||m(_,T)},By=(_,T,m)=>{const M=ip[_.tagName];!M||(M(_,T),ep(_,T,m))},ky=["IMG","IFRAME","VIDEO","OBJECT"],Uy=_=>ky.indexOf(_.tagName)>-1,rp=(_,T)=>{T&&!wy(T)&&!Ey(T)&&wo(_.callback_finish,T)},op=(_,T,m)=>{_.addEventListener(T,m),_.llEvLisnrs[T]=m},Gy=(_,T,m)=>{_.removeEventListener(T,m)},au=_=>!!_.llEvLisnrs,Hy=(_,T,m)=>{au(_)||(_.llEvLisnrs={});const M=_.tagName==="VIDEO"?"loadeddata":"load";op(_,M,T),op(_,"error",m)},lu=_=>{if(!au(_))return;const T=_.llEvLisnrs;for(let m in T){const M=T[m];Gy(_,m,M)}delete _.llEvLisnrs},sp=(_,T,m)=>{xy(_),ou(m,-1),Sy(m),qr(_,T.class_loading),T.unobserve_completed&&yl(_,m)},jy=(_,T,m,M)=>{const E=ru(T);sp(T,m,M),Ms(T,m.class_loaded),es(T,Hd),wo(m.callback_loaded,T,M),E||rp(m,M)},zy=(_,T,m,M)=>{const E=ru(T);sp(T,m,M),Ms(T,m.class_error),es(T,nu),wo(m.callback_error,T,M),m.restore_on_error&&ns(T,va),E||rp(m,M)},hu=(_,T,m)=>{const M=Xd(_)||_;if(au(M))return;Hy(M,D=>{jy(D,_,T,m),lu(M)},D=>{zy(D,_,T,m),lu(M)})},Vy=(_,T,m)=>{_y(_),hu(_,T,m),Ay(_),Ny(_,T,m),Ly(_,T,m),Dy(_,T,m)},Wy=(_,T,m)=>{hu(_,T,m),By(_,T,m)},uu=(_,T,m)=>{Uy(_)?Wy(_,T,m):Vy(_,T,m)},Xy=(_,T,m)=>{_.setAttribute("loading","lazy"),hu(_,T,m),Fy(_,T),es(_,zd)},ap=_=>{_.removeAttribute(ho),_.removeAttribute(Qh),_.removeAttribute(tu)},Yy=_=>{su(_,T=>{ap(T)}),ap(_)},lp=_=>{su(_,T=>{ns(T,va)}),ns(_,va)},qy={IMG:lp,IFRAME:_=>{ns(_,_l)},VIDEO:_=>{Jd(_,T=>{ns(T,_l)}),ns(_,Kd),_.load()},OBJECT:_=>{ns(_,Zd)}},Jy=_=>{const T=qy[_.tagName];if(!T){My(_);return}T(_)},Ky=(_,T)=>{iu(_)||ru(_)||(qr(_,T.class_entered),qr(_,T.class_exited),qr(_,T.class_applied),qr(_,T.class_loading),qr(_,T.class_loaded),qr(_,T.class_error))},Zy=(_,T)=>{Jy(_),Ky(_,T),vl(_),Qd(_)},$y=(_,T,m,M)=>{!m.cancel_on_exit||!my(_)||_.tagName==="IMG"&&(lu(_),Yy(_),lp(_),qr(_,m.class_loading),ou(M,-1),vl(_),wo(m.callback_cancel,_,T,M))},Qy=(_,T,m,M)=>{const E=yy(_);es(_,py),Ms(_,m.class_entered),qr(_,m.class_exited),Ty(_,m,M),wo(m.callback_enter,_,T,M),!E&&uu(_,m,M)},t_=(_,T,m,M)=>{iu(_)||(Ms(_,m.class_exited),$y(_,T,m,M),wo(m.callback_exit,_,T,M))},e_=["IMG","IFRAME","VIDEO"],hp=_=>_.use_native&&"loading"in HTMLImageElement.prototype,n_=(_,T,m)=>{_.forEach(M=>{e_.indexOf(M.tagName)!==-1&&Xy(M,T,m)}),Yd(m,0)},i_=_=>_.isIntersecting||_.intersectionRatio>0,r_=_=>({root:_.container===document?null:_.container,rootMargin:_.thresholds||_.threshold+"px"}),o_=(_,T,m)=>{_.forEach(M=>i_(M)?Qy(M.target,M,T,m):t_(M.target,M,T,m))},s_=(_,T)=>{T.forEach(m=>{_.observe(m)})},a_=(_,T)=>{by(_),s_(_,T)},l_=(_,T)=>{!Ld||hp(_)||(T._observer=new IntersectionObserver(m=>{o_(m,_,T)},r_(_)))},up=_=>Array.prototype.slice.call(_),bl=_=>_.container.querySelectorAll(_.elements_selector),h_=_=>up(_).filter(iu),u_=_=>gy(_),c_=_=>up(_).filter(u_),cp=(_,T)=>h_(_||bl(T)),d_=(_,T)=>{c_(bl(_)).forEach(M=>{qr(M,_.class_error),vl(M)}),T.update()},p_=(_,T)=>{!So||(T._onlineHandler=()=>{d_(_,T)},window.addEventListener("online",T._onlineHandler))},f_=_=>{!So||window.removeEventListener("online",_._onlineHandler)},ya=function(_,T){const m=Bd(_);this._settings=m,this.loadingCount=0,l_(m,this),p_(m,this),this.update(T)};ya.prototype={update:function(_){const T=this._settings,m=cp(_,T);if(Yd(this,m.length),Nd||!Ld){this.loadAll(m);return}if(hp(T)){n_(m,T,this);return}a_(this._observer,m)},destroy:function(){this._observer&&this._observer.disconnect(),f_(this),bl(this._settings).forEach(_=>{Qd(_)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(_){const T=this._settings;cp(_,T).forEach(M=>{yl(M,this),uu(M,T,this)})},restoreAll:function(){const _=this._settings;bl(_).forEach(T=>{Zy(T,_)})}},ya.load=(_,T)=>{const m=Bd(T);uu(_,m)},ya.resetStatus=_=>{vl(_)},So&&dy(ya,window.lazyLoadOptions);class cu{constructor({readonly:T,onNewPageIndex:m,onPlay:M,onPagesReady:E,urlInterrupter:P}){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 Cs,this.readonly=T,this.onNewPageIndex=m,this.onPlay=M,this.onPagesReady=E,this.urlInterrupter=P||(D=>D),this.render()}set pages(T){this._pages=T,this.refreshPreview().then(this.refreshBtnSidebar.bind(this)),this.refreshTotalPage(),this.onPagesReady&&this.onPagesReady(T)}get pages(){return this._pages}unmount(){this.$content.remove(),this.$footer.remove()}setReadonly(T){this.readonly=T,this.$content.classList.toggle(this.wrapClassName("readonly"),T),this.$footer.classList.toggle(this.wrapClassName("readonly"),T),this.$pageNumberInput.disabled=T}destroy(){var T;(T=this.previewLazyLoad)==null||T.destroy(),this.sideEffect.flushAll(),this.unmount()}setPageIndex(T){Number.isNaN(T)||(this.pageIndex=T,this.$pageNumberInput.value=String(T+1))}refreshTotalPage(){this.pages.length?this.$totalPage.textContent=" / "+this.pages.length:this.$totalPage.textContent=""}setSmallBox(T){this.isSmallBox!==T&&(this.isSmallBox=T,this.$footer.classList.toggle(this.wrapClassName("float-footer"),T))}render(){return this.renderContent(),this.renderFooter(),this.$content}renderContent(){if(!this.$content){const T=document.createElement("div");T.className=this.wrapClassName("content"),this.$content=T,this.readonly&&T.classList.add(this.wrapClassName("readonly")),T.appendChild(this.renderPreviewMask()),T.appendChild(this.renderPreview())}return this.$content}renderPreview(){if(!this.$preview){const T=document.createElement("div");T.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=T,this.refreshPreview(),this.sideEffect.addEventListener(T,"click",m=>{var E;if(this.readonly)return;const M=(E=m.target.dataset)==null?void 0:E.pageIndex;M&&(m.preventDefault(),m.stopPropagation(),m.stopImmediatePropagation(),this.onNewPageIndex(Number(M),"preview"),this.togglePreview(!1))})}return this.$preview}async refreshPreview(){var P,D;const{$preview:T}=this,m=this.wrapClassName("preview-page"),M=this.wrapClassName("preview-page-name");for(;T.firstChild;)T.firstChild.remove();const E=[];for(let B=0,z=this.pages.length;B<z;B++){const X=this.pages[B],Z=(P=X.thumbnail)!=null?P:X.src.startsWith("ppt")?void 0:X.src;Z&&(E[B]=this.urlInterrupter(Z))}for(let B=0,z=this.pages.length;B<z;B++)E[B]=await E[B];this.pages.forEach((B,z)=>{const X=E[z];if(!X)return;const Z=String(z),nt=document.createElement("a");nt.className=m+" "+this.wrapClassName(`preview-page-${z}`),nt.setAttribute("href","#"),nt.dataset.pageIndex=Z;const at=document.createElement("span");at.className=M,at.textContent=String(z+1),at.dataset.pageIndex=Z;const Tt=document.createElement("img");Tt.width=B.width,Tt.height=B.height,Tt.dataset.src=X,Tt.dataset.pageIndex=Z,nt.appendChild(Tt),nt.appendChild(at),T.appendChild(nt)}),(D=this.previewLazyLoad)==null||D.update()}renderPreviewMask(){return this.$previewMask||(this.$previewMask=document.createElement("div"),this.$previewMask.className=this.wrapClassName("preview-mask"),this.sideEffect.addEventListener(this.$previewMask,"click",T=>{this.readonly||T.target===this.$previewMask&&this.togglePreview(!1)})),this.$previewMask}refreshBtnSidebar(){this.$btnSidebar.style.display=this.pages.length>0?"":"none"}renderFooter(){if(!this.$footer){const T=document.createElement("div");T.className=this.wrapClassName("footer"),this.$footer=T,this.readonly&&T.classList.add(this.wrapClassName("readonly")),this.isSmallBox&&T.classList.add(this.wrapClassName("float-footer"));const m=this.renderFooterBtn("btn-sidebar",sy(this.namespace));this.sideEffect.addEventListener(m,"click",()=>{this.readonly||this.togglePreview()}),this.$btnSidebar=m,this.$btnSidebar.style.display="none",this.$footer.appendChild(m);const M=document.createElement("div");M.className=this.wrapClassName("page-jumps");const E=this.renderFooterBtn("btn-page-back",ay(this.namespace));if(this.sideEffect.addEventListener(E,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex-1,"navigation")}),M.appendChild(E),this.onPlay){const X=this.renderFooterBtn("btn-page-play",hy(this.namespace),uy(this.namespace));this.$btnPlay=X,this.sideEffect.addEventListener(X,"click",()=>{this.readonly||(this.setPlaying(),this.onPlay&&this.onPlay())}),M.appendChild(X)}const P=this.renderFooterBtn("btn-page-next",ly(this.namespace));this.sideEffect.addEventListener(P,"click",()=>{this.readonly||this.onNewPageIndex(this.pageIndex+1,"navigation")}),M.appendChild(P);const D=document.createElement("div");D.className=this.wrapClassName("page-number");const B=document.createElement("input");B.className=this.wrapClassName("page-number-input"),B.value=String(this.pageIndex+1),this.readonly&&(B.disabled=!0),this.$pageNumberInput=B,this.sideEffect.addEventListener(B,"focus",()=>{B.select()}),this.sideEffect.addEventListener(B,"change",()=>{this.readonly||B.value&&this.onNewPageIndex(Number(B.value)-1,"input")});const z=document.createElement("span");this.$totalPage=z,D.appendChild(B),D.appendChild(z),this.$footer.appendChild(M),this.$footer.appendChild(D)}return this.$footer}renderFooterBtn(T,m,M){const E=document.createElement("button");return E.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(T),E.appendChild(m),M&&E.appendChild(M),E}togglePreview(T){if(this.isShowPreview=T!=null?T:!this.isShowPreview,this.$content.classList.toggle(this.wrapClassName("preview-active"),this.isShowPreview),this.isShowPreview){const m=this.$preview.querySelector("."+this.wrapClassName(`preview-page-${this.pageIndex}`));m&&(this.previewLazyLoad||(this.previewLazyLoad=new ya({container:this.$preview,elements_selector:`.${this.wrapClassName("preview-page>img")}`})),this.$preview.scrollTo({top:m.offsetTop-16}))}}wrapClassName(T){return`${this.namespace}-${T}`}}class m_{constructor(T,m){this.horizontalScrollBar=null,this.verticalScrollBar=null,this.isDraggingHorizontal=!1,this.isDraggingVertical=!1,this.eventListeners=[],this.container=T,this.resizableContainer=m}addTrackedListener(T,m,M){T.addEventListener(m,M),this.eventListeners.push({element:T,type:m,listener:M})}removeAllListeners(){this.eventListeners.forEach(({element:T,type:m,listener:M})=>{T.removeEventListener(m,M)}),this.eventListeners=[]}render(T,m,M,E){this.clearScrollBars(),M>T&&this.createHorizontalScrollBar(T,M),E>m&&this.createVerticalScrollBar(m,E)}handleNormalizeTranslate(T,m){const M=Math.max(0,Math.min(1,T)),E=Math.max(0,Math.min(1,m));if(this.horizontalScrollBar){const P=this.horizontalScrollBar.querySelector(".horizontal-thumb");if(P){const D=this.horizontalScrollBar.offsetWidth,B=P.offsetWidth,z=D-B-2;if(z>0){const X=1+M*z;P.style.left=`${X}px`}}}if(this.verticalScrollBar){const P=this.verticalScrollBar.querySelector(".vertical-thumb");if(P){const D=this.verticalScrollBar.offsetHeight,B=P.offsetHeight,z=D-B-2;if(z>0){const X=1+E*z;P.style.top=`${X}px`}}}}clearScrollBars(){this.removeAllListeners(),this.horizontalScrollBar&&(this.horizontalScrollBar.remove(),this.horizontalScrollBar=null),this.verticalScrollBar&&(this.verticalScrollBar.remove(),this.verticalScrollBar=null)}createHorizontalScrollBar(T,m){const M=document.createElement("div");M.className="scroll-bar horizontal";const E=T,P=E,D=Math.max(30,Math.min(P,P*E/m));M.style.cssText=`
8033
8033
  position: absolute;
8034
8034
  bottom: 0;
8035
8035
  left: 0;
@@ -8069,6 +8069,6 @@ self.onmessage = function(e) {
8069
8069
  border-radius: 4px;
8070
8070
  box-shadow: 1px 0 2px rgba(0, 0, 0, 0.2);
8071
8071
  cursor: grab;
8072
- `,this.addThumbDragListener(B,"vertical",D,P),M.appendChild(B),this.container.appendChild(M),this.verticalScrollBar=M}addThumbDragListener(T,m,M,E){let P=0,D=0;const B=(Tt,bt)=>{m==="horizontal"?this.isDraggingHorizontal=!0:this.isDraggingVertical=!0,P=m==="horizontal"?Tt:bt,D=m==="horizontal"?parseFloat(T.style.left)||0:parseFloat(T.style.top)||0,T.style.cursor="grabbing"},z=(Tt,bt)=>{var Q,G;if(!(m==="horizontal"?this.isDraggingHorizontal:this.isDraggingVertical))return;const F=(m==="horizontal"?Tt:bt)-P;let W=D+F;W=Math.max(1,Math.min(E-M-1,W)),m==="horizontal"?T.style.left=`${W}px`:T.style.top=`${W}px`;const O=E-M-2;let j=0;O>0&&(j=(W-1)/O,j=Math.max(0,Math.min(1,j))),m==="horizontal"?this.resizableContainer.handleNormalizeTranslate(j,(Q=this.resizableContainer.translateY)!=null?Q:.5,{triggerScrollBar:!1,triggerSync:!0}):this.resizableContainer.handleNormalizeTranslate((G=this.resizableContainer.translateX)!=null?G:.5,j,{triggerScrollBar:!1,triggerSync:!0})},X=()=>{m==="horizontal"?this.isDraggingHorizontal=!1:this.isDraggingVertical=!1,T.style.cursor="grab"},Z=Tt=>{B(Tt.clientX,Tt.clientY),Tt.preventDefault()},nt=Tt=>{z(Tt.clientX,Tt.clientY)},at=()=>{X()};this.addTrackedListener(T,"mousedown",Z),this.addTrackedListener(document,"mousemove",nt),this.addTrackedListener(document,"mouseup",at)}destroy(){this.clearScrollBars()}}class g_{constructor(T,m,M,E){this.onScaleChanged=null,this.whiteboardContainer=null,this.slide=null,this.scale=1,this.slideWidth=1,this.slideHeight=1,this.scrollBar=null,this.translateX=.5,this.translateY=.5,this.updateSlideSize=()=>{if(this.slide){let P=!1;(this.slideWidth!==this.slide.width||this.slideHeight!==this.slide.height)&&(this.slideWidth=this.slide.width,this.slideHeight=this.slide.height,P=!0),P&&this.updateResizableContainer()}},this.enableResize=M,this.parent=T,this.context=m,this.root=document.createElement("div"),this.root.style.width="100%",this.root.style.height="100%",this.root.style.overflow="hidden",this.parent.appendChild(this.root),this.scrollContainer=document.createElement("div"),this.scrollContainer.setAttribute("data-resizable-scroll","true"),this.scrollContainer.style.width="100%",this.scrollContainer.style.height="100%",this.scrollContainer.style.position="relative",this.scrollContainer.style.overflow="hidden",this.container=document.createElement("div"),this.container.style.position="relative",this.container.setAttribute("data-resizable-container","true"),this.scrollContainer.appendChild(this.container),this.root.appendChild(this.scrollContainer),this.enableResize&&(this.scrollBar=new m_(this.root,this))}getTranslate(){return{x:this.translateX,y:this.translateY}}getScale(){return this.scale}renderScrollBar(T,m,M,E){this.scrollBar&&this.scrollBar.render(T,M,m,E)}setSlideObject(T){this.slide=T,this.slide.on("renderEnd",this.updateSlideSize)}updateResizableContainer(){const T=this.scrollContainer.getBoundingClientRect();if(this.container.style.width=`${T.width*this.scale}px`,this.container.style.height=`${T.height*this.scale}px`,this.whiteboardContainer&&this.enableResize){const m=this.whiteboardContainer.getBoundingClientRect();if(m.width/m.height>this.slideWidth/this.slideHeight){const M=m.height*this.slideWidth/this.slideHeight,E=(m.width-M)/2;this.whiteboardContainer.style.clipPath=`inset(0px ${E}px 0px ${E}px)`}else if(m.width/m.height<this.slideWidth/this.slideHeight){const M=m.width*this.slideHeight/this.slideWidth,E=(m.height-M)/2;this.whiteboardContainer.style.clipPath=`inset(${E}px 0px ${E}px 0px)`}}this.translateX=.5,this.translateY=.5,this.renderScrollBar(T.width,T.width*this.scale,T.height,T.height*this.scale),this.handleNormalizeTranslate(this.translateX,this.translateY,{triggerScrollBar:!0,triggerSync:!0})}handleNormalizeTranslate(T,m,M){var z;if(Math.abs(T-this.translateX)<.001&&Math.abs(m-this.translateY)<.001&&!M.triggerSync)return;const E=this.scrollContainer.getBoundingClientRect(),P=this.container.getBoundingClientRect(),D=-T*(P.width-E.width),B=-m*(P.height-E.height);this.translateX=T,this.translateY=m,this.container.style.transform=`translate(${D}px, ${B}px)`,M.triggerScrollBar&&((z=this.scrollBar)==null||z.handleNormalizeTranslate(T,m)),M.triggerSync&&this.enableResize&&this.context.getIsWritable()&&this.context.storage.setState({translateX:this.translateX,translateY:this.translateY})}scaleContainer(T){Math.abs(this.scale-T)<.001||!this.enableResize||(T>1?(this.scrollContainer.style.width="calc(100% - 6px)",this.scrollContainer.style.height="calc(100% - 6px)"):(this.scrollContainer.style.width="100%",this.scrollContainer.style.height="100%"),T=this.enableResize?T:1,this.onScaleChanged&&this.enableResize&&this.onScaleChanged(T),this.scale=T,setTimeout(()=>{this.updateResizableContainer()}))}addSlideContainer(T){this.container.appendChild(T)}addWhiteboardContainer(T){this.container.appendChild(T),this.whiteboardContainer=T}getCurrentScale(){return this.scale}destroy(T){var m;(m=this.scrollBar)==null||m.destroy()}}var is=[],v_=function(){return is.some(function(_){return _.activeTargets.length>0})},y_=function(){return is.some(function(_){return _.skippedTargets.length>0})},dp="ResizeObserver loop completed with undelivered notifications.",__=function(){var _;typeof ErrorEvent=="function"?_=new ErrorEvent("error",{message:dp}):(_=document.createEvent("Event"),_.initEvent("error",!1,!1),_.message=dp),window.dispatchEvent(_)},_a;(function(_){_.BORDER_BOX="border-box",_.CONTENT_BOX="content-box",_.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(_a||(_a={}));var rs=function(_){return Object.freeze(_)},x_=function(){function _(T,m){this.inlineSize=T,this.blockSize=m,rs(this)}return _}(),pp=function(){function _(T,m,M,E){return this.x=T,this.y=m,this.width=M,this.height=E,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,rs(this)}return _.prototype.toJSON=function(){var T=this,m=T.x,M=T.y,E=T.top,P=T.right,D=T.bottom,B=T.left,z=T.width,X=T.height;return{x:m,y:M,top:E,right:P,bottom:D,left:B,width:z,height:X}},_.fromRect=function(T){return new _(T.x,T.y,T.width,T.height)},_}(),du=function(_){return _ instanceof SVGElement&&"getBBox"in _},fp=function(_){if(du(_)){var T=_.getBBox(),m=T.width,M=T.height;return!m&&!M}var E=_,P=E.offsetWidth,D=E.offsetHeight;return!(P||D||_.getClientRects().length)},mp=function(_){var T;if(_ instanceof Element)return!0;var m=(T=_==null?void 0:_.ownerDocument)===null||T===void 0?void 0:T.defaultView;return!!(m&&_ instanceof m.Element)},b_=function(_){switch(_.tagName){case"INPUT":if(_.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},xa=typeof window!="undefined"?window:{},Tl=new WeakMap,gp=/auto|scroll/,T_=/^tb|vertical/,S_=/msie|trident/i.test(xa.navigator&&xa.navigator.userAgent),Jr=function(_){return parseFloat(_||"0")},Is=function(_,T,m){return _===void 0&&(_=0),T===void 0&&(T=0),m===void 0&&(m=!1),new x_((m?T:_)||0,(m?_:T)||0)},vp=rs({devicePixelContentBoxSize:Is(),borderBoxSize:Is(),contentBoxSize:Is(),contentRect:new pp(0,0,0,0)}),yp=function(_,T){if(T===void 0&&(T=!1),Tl.has(_)&&!T)return Tl.get(_);if(fp(_))return Tl.set(_,vp),vp;var m=getComputedStyle(_),M=du(_)&&_.ownerSVGElement&&_.getBBox(),E=!S_&&m.boxSizing==="border-box",P=T_.test(m.writingMode||""),D=!M&&gp.test(m.overflowY||""),B=!M&&gp.test(m.overflowX||""),z=M?0:Jr(m.paddingTop),X=M?0:Jr(m.paddingRight),Z=M?0:Jr(m.paddingBottom),nt=M?0:Jr(m.paddingLeft),at=M?0:Jr(m.borderTopWidth),Tt=M?0:Jr(m.borderRightWidth),bt=M?0:Jr(m.borderBottomWidth),N=M?0:Jr(m.borderLeftWidth),R=nt+X,F=z+Z,W=N+Tt,O=at+bt,j=B?_.offsetHeight-O-_.clientHeight:0,Q=D?_.offsetWidth-W-_.clientWidth:0,G=E?R+W:0,It=E?F+O:0,Vt=M?M.width:Jr(m.width)-G-Q,ot=M?M.height:Jr(m.height)-It-j,V=Vt+R+Q+W,U=ot+F+j+O,ct=rs({devicePixelContentBoxSize:Is(Math.round(Vt*devicePixelRatio),Math.round(ot*devicePixelRatio),P),borderBoxSize:Is(V,U,P),contentBoxSize:Is(Vt,ot,P),contentRect:new pp(nt,z,Vt,ot)});return Tl.set(_,ct),ct},_p=function(_,T,m){var M=yp(_,m),E=M.borderBoxSize,P=M.contentBoxSize,D=M.devicePixelContentBoxSize;switch(T){case _a.DEVICE_PIXEL_CONTENT_BOX:return D;case _a.BORDER_BOX:return E;default:return P}},w_=function(){function _(T){var m=yp(T);this.target=T,this.contentRect=m.contentRect,this.borderBoxSize=rs([m.borderBoxSize]),this.contentBoxSize=rs([m.contentBoxSize]),this.devicePixelContentBoxSize=rs([m.devicePixelContentBoxSize])}return _}(),xp=function(_){if(fp(_))return 1/0;for(var T=0,m=_.parentNode;m;)T+=1,m=m.parentNode;return T},E_=function(){var _=1/0,T=[];is.forEach(function(D){if(D.activeTargets.length!==0){var B=[];D.activeTargets.forEach(function(X){var Z=new w_(X.target),nt=xp(X.target);B.push(Z),X.lastReportedSize=_p(X.target,X.observedBox),nt<_&&(_=nt)}),T.push(function(){D.callback.call(D.observer,B,D.observer)}),D.activeTargets.splice(0,D.activeTargets.length)}});for(var m=0,M=T;m<M.length;m++){var E=M[m];E()}return _},bp=function(_){is.forEach(function(m){m.activeTargets.splice(0,m.activeTargets.length),m.skippedTargets.splice(0,m.skippedTargets.length),m.observationTargets.forEach(function(E){E.isActive()&&(xp(E.target)>_?m.activeTargets.push(E):m.skippedTargets.push(E))})})},A_=function(){var _=0;for(bp(_);v_();)_=E_(),bp(_);return y_()&&__(),_>0},pu,Tp=[],C_=function(){return Tp.splice(0).forEach(function(_){return _()})},M_=function(_){if(!pu){var T=0,m=document.createTextNode(""),M={characterData:!0};new MutationObserver(function(){return C_()}).observe(m,M),pu=function(){m.textContent="".concat(T?T--:T++)}}Tp.push(_),pu()},R_=function(_){M_(function(){requestAnimationFrame(_)})},Sl=0,I_=function(){return!!Sl},P_=250,O_={attributes:!0,characterData:!0,childList:!0,subtree:!0},Sp=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],wp=function(_){return _===void 0&&(_=0),Date.now()+_},fu=!1,N_=function(){function _(){var T=this;this.stopped=!0,this.listener=function(){return T.schedule()}}return _.prototype.run=function(T){var m=this;if(T===void 0&&(T=P_),!fu){fu=!0;var M=wp(T);R_(function(){var E=!1;try{E=A_()}finally{if(fu=!1,T=M-wp(),!I_())return;E?m.run(1e3):T>0?m.run(T):m.start()}})}},_.prototype.schedule=function(){this.stop(),this.run()},_.prototype.observe=function(){var T=this,m=function(){return T.observer&&T.observer.observe(document.body,O_)};document.body?m():xa.addEventListener("DOMContentLoaded",m)},_.prototype.start=function(){var T=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),Sp.forEach(function(m){return xa.addEventListener(m,T.listener,!0)}))},_.prototype.stop=function(){var T=this;this.stopped||(this.observer&&this.observer.disconnect(),Sp.forEach(function(m){return xa.removeEventListener(m,T.listener,!0)}),this.stopped=!0)},_}(),mu=new N_,Ep=function(_){!Sl&&_>0&&mu.start(),Sl+=_,!Sl&&mu.stop()},L_=function(_){return!du(_)&&!b_(_)&&getComputedStyle(_).display==="inline"},D_=function(){function _(T,m){this.target=T,this.observedBox=m||_a.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return _.prototype.isActive=function(){var T=_p(this.target,this.observedBox,!0);return L_(this.target)&&(this.lastReportedSize=T),this.lastReportedSize.inlineSize!==T.inlineSize||this.lastReportedSize.blockSize!==T.blockSize},_}(),F_=function(){function _(T,m){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=T,this.callback=m}return _}(),wl=new WeakMap,Ap=function(_,T){for(var m=0;m<_.length;m+=1)if(_[m].target===T)return m;return-1},El=function(){function _(){}return _.connect=function(T,m){var M=new F_(T,m);wl.set(T,M)},_.observe=function(T,m,M){var E=wl.get(T),P=E.observationTargets.length===0;Ap(E.observationTargets,m)<0&&(P&&is.push(E),E.observationTargets.push(new D_(m,M&&M.box)),Ep(1),mu.schedule())},_.unobserve=function(T,m){var M=wl.get(T),E=Ap(M.observationTargets,m),P=M.observationTargets.length===1;E>=0&&(P&&is.splice(is.indexOf(M),1),M.observationTargets.splice(E,1),Ep(-1))},_.disconnect=function(T){var m=this,M=wl.get(T);M.observationTargets.slice().forEach(function(E){return m.unobserve(T,E.target)}),M.activeTargets.splice(0,M.activeTargets.length)},_}(),B_=function(){function _(T){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof T!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");El.connect(this,T)}return _.prototype.observe=function(T,m){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!mp(T))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");El.observe(this,T,m)},_.prototype.unobserve=function(T){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!mp(T))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");El.unobserve(this,T)},_.prototype.disconnect=function(){El.disconnect(this)},_.toString=function(){return"function ResizeObserver () { [polyfill code] }"},_}();const k_=window.ResizeObserver||B_,Cp=.5,gu=({width:_,height:T})=>`${_.toFixed(1)} x ${T.toFixed(1)} px`,vu=(_,T)=>Boolean(_&&T&&Math.abs(_.width-T.width)<=Cp&&Math.abs(_.height-T.height)<=Cp),U_=new Set(["clicker"]),G_=function(){};class Mp{constructor({context:T,box:m,view:M,mountSlideController:E,mountWhiteboard:P,baseScenePath:D,appId:B,urlInterrupter:z,enableScale:X,onPagesReady:Z,onNavigate:nt}){this.slideController=null,this.isViewMounted=!1,this.justSildeReadonly=!1,this.syncEventQueuePolicy="fifo",this.boxSizeEventCount=0,this._applyResize=(at,Tt)=>{var N,R,F;if(at.width<=0||at.height<=0||vu(this.lastAppliedSize,at))return;this.lastAppliedSize=at,this.lastAppliedSource=Tt,(N=this.resizableContainer)==null||N.updateResizableContainer(),(F=(R=this.slideController)==null?void 0:R.slide)==null||F.notifyFrameResize(),this.scaleDocsToFit();const bt=this._getContentSize();console.log("[app-slide] resize",{appId:this.appId,source:Tt,eventCount:this.boxSizeEventCount,event:gu(at),dom:gu(bt)})},this._applyCurrentBoxSize=at=>{const Tt=at!=null?at:this._getContentSize();this._applyResize(Tt,at?"event":"observer")},this._onObserverSize=at=>{at.width<=0||at.height<=0||(this.lastObserverSize=at,this._applyResize(at,"observer"))},this._onContextBoxSizeChange=at=>{if(at.appId===this.context.appId){if(this.boxSizeEventCount+=1,this.latestBoxSize={width:at.width,height:at.height},vu(this.lastObserverSize,this.latestBoxSize)||vu(this.lastAppliedSize,this.latestBoxSize)){console.log("[app-slide] boxSizeChange skipped, observer already applied",{appId:this.appId,eventCount:this.boxSizeEventCount,source:this.lastAppliedSource,size:gu(this.latestBoxSize)});return}this._applyResize(this.latestBoxSize,"event"),this._reconnectContentObserver()}},this.onError=({error:at,index:Tt})=>{var bt,N;this.viewer.setPaused(),(bt=this.slideController)!=null&&bt.showRenderError&&(this.$overlay.textContent=`Error on slide[page=${this.slideController.page}]: ${at.message}`,this.$overlay.style.opacity="1"),(N=this.slideController)!=null&&N.onRenderError&&this.slideController.onRenderError(at,Tt),Mr.warn("[Slide] render error",at)},this.onRenderStart=()=>{this.$whiteboardView.classList.add(this.wrapClassName("wb-view-hidden")),this.viewer.setPlaying()},this.onRenderEnd=()=>{},this.onPageChanged=()=>{clearTimeout(this._onPageChangedTimer),this._onPageChangedTimer=setTimeout(this._onPageChanged,200)},this._onPageChangedTimer=0,this._onPageChanged=()=>{this.$overlay.style.opacity="",this.$whiteboardView.classList.remove(this.wrapClassName("wb-view-hidden"))},this.refreshPages=()=>{this.slideController&&(this.viewer.pages=Id(this.slideController.slide,this.slideController.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slideController.page)),this.scaleDocsToFit())},this.scaleDocsToFit=()=>{if(this.slideController){const{width:at,height:Tt}=this.slideController.slide;at&&Tt&&(this.whiteboardView.moveCameraToContain({originX:-at/2,originY:-Tt/2,width:at,height:Tt,animationMode:"immediately"}),this.whiteboardView.setCameraBound({damping:1,maxContentMode:()=>this.whiteboardView.camera.scale,minContentMode:()=>this.whiteboardView.camera.scale,centerX:0,centerY:0,width:at,height:Tt}),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=(at,Tt)=>{this.slideController&&this.slideController.jumpToPage(at+1,Tt)},this.sideEffect=new Cs,this.namespace="netless-app-slide",this.toPdf=async()=>{if(!this.slideController){this.reportProgress(100,null);return}const{slide:at}=this.slideController,Tt=1920,bt=document.createElement("canvas"),N=bt.getContext("2d"),{slideCount:R,width:F,height:W}=at;let O=Math.floor(F),j=Math.floor(W);O>Tt&&(O=Tt,j=Math.floor(W*O/F)),j>Tt&&(j=Tt,O=Math.floor(F*j/W)),bt.width=O,bt.height=j;const Q=document.createElement("canvas");Q.width=O,Q.height=j;const G=Q.getContext("2d");if(!G||!this.getWhiteSnapshot||!N)return this.reportProgress(100,null),null;const It=O>j?"l":"p",{jsPDF:Vt}=await import("jspdf"),ot=new Vt({format:[O,j],orientation:It,compress:!0});for(let ct=1;ct<=R;ct++){let tt=null;try{tt=await this.slideController.slide.snapshotWithTimingEnd(ct)}catch{}if(tt){const K=document.createElement("img");K.src=tt,await new Promise(dt=>K.onload=dt),N.drawImage(K,0,0,O,j)}G.clearRect(0,0,O,j),await this.getWhiteSnapshot(ct,Q,G,F,W);try{const K=Q.toDataURL("image/png"),dt=document.createElement("img");dt.src=K,await new Promise(rt=>dt.onload=rt),N.drawImage(dt,0,0,O,j)}catch{}const vt=bt.toDataURL("image/jpeg",.6);ct>1&&ot.addPage(),ot.addImage(vt,"JPEG",0,0,O,j,"","FAST"),N.clearRect(0,0,O,j),Math.ceil(ct/R*100)<100&&this.reportProgress(Math.ceil(ct/R*100),null)}const V=ot.output("arraybuffer"),U=this.box.title;this.reportProgress(100,{pdf:V,title:U})},this.context=T,this.box=m,this.whiteboardView=M,this.mountSlideController=E,this.mountWhiteboard=P,this.onNavigate=nt||G_,this.baseScenePath=D,this.enableScale=X!=null?X:!1,this.appId=B,this.viewer=new cu({readonly:m.readonly,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay,urlInterrupter:z,onPagesReady:Z}),this.sideEffect.add(()=>{const at=Tt=>{this.setReadonly(Tt)};return m.events.on("readonly",at),()=>m.events.off("readonly",at)}),this.sideEffect.add(()=>{const at=Tt=>{Tt.data.type==="@netless/_request_save_pdf_"&&Tt.data.appId===this.appId&&this.toPdf().catch(()=>this.reportProgress(100,null))};return window.addEventListener("message",at),()=>{window.removeEventListener("message",at)}}),this.render(),this._registerBoxSizeChange(),this.sideEffect.add(()=>{const at=bt=>{this.resizableContainer&&this.resizableContainer.scaleContainer(bt)};console.log("[SlideDocsViewer] Initial storage state:",this.context.storage.state),console.log("[SlideDocsViewer] Initial slideScale:",this.context.storage.state.slideScale),this.context.storage.state.slideScale!==void 0?(console.log("[SlideDocsViewer] Applying initial slideScale:",this.context.storage.state.slideScale),at(this.context.storage.state.slideScale)):console.log("[SlideDocsViewer] No initial slideScale found");const Tt=bt=>{var N,R;if(bt.slideScale!==void 0){const F=bt.slideScale.newValue;at(F!=null?F:1)}if(bt.translateX!==void 0||bt.translateY!==void 0){const F=this.resizableContainer.getTranslate(),W=bt.translateX?(N=bt.translateX.newValue)!=null?N:.5:F.x,O=bt.translateY?(R=bt.translateY.newValue)!=null?R:.5:F.y;this.resizableContainer&&this.resizableContainer.handleNormalizeTranslate(W,O,{triggerScrollBar:!0,triggerSync:!1})}};return console.log("[SlideDocsViewer] Adding storage state listener"),this.context.storage.onStateChanged.addListener(Tt),()=>{console.log("[SlideDocsViewer] Removing storage state listener"),this.context.storage.onStateChanged.removeListener(Tt)}})}setJustSildeReadonly(T){this.justSildeReadonly=T,this.applyInteractionState()}setSyncEventQueuePolicy(T){this.syncEventQueuePolicy=T,this.applyInteractionState()}applyInteractionState(){var m;const T=(m=this.slideController)==null?void 0:m.slide;!T||(T.setInteractive(!this.justSildeReadonly),T.setSyncEventQueuePolicy(this.syncEventQueuePolicy))}render(){this.resizableContainer||(this.resizableContainer=new g_(this.viewer.$content,this.context,this.enableScale,this.box)),this.renderSlideContainer(),this.renderWhiteboardView(),this.renderOverlay(),this.resizableContainer.addSlideContainer(this.$slide),this.resizableContainer.addWhiteboardContainer(this.$whiteboardView),this.viewer.$content.appendChild(this.$overlay),this.sideEffect.addEventListener(window,"keydown",T=>{if(!this.justSildeReadonly&&this.box.focus&&this.slideController&&!Yv(T.target))switch(T.key){case"ArrowUp":case"ArrowLeft":{this.slideController.slide.prevStep(),this.onNavigate(this.slideController.page,"keydown");break}case"ArrowRight":case"ArrowDown":{this.slideController.slide.nextStep(),this.onNavigate(this.slideController.page,"keydown");break}}})}renderOverlay(){if(!this.$overlay){const T=document.createElement("div");T.className=this.wrapClassName("overlay"),this.$overlay=T}return this.$overlay}renderSlideContainer(){if(!this.$slide){const T=document.createElement("div");T.className=this.wrapClassName("slide"),T.dataset.appKind="Slide",this.$slide=T}return this.$slide}renderWhiteboardView(){return this.$whiteboardView||(this.$whiteboardView=document.createElement("div"),this.$whiteboardView.className=this.wrapClassName("wb-view")),this.$whiteboardView}mount(){var T,m,M,E;return this.box.mountContent(this.viewer.$content),this.box.mountFooter(this.viewer.$footer),this.slideController=this.mountSlideController({anchor:this.$slide,onRenderStart:this.onRenderStart,onRenderEnd:this.onRenderEnd,onTransitionStart:this.viewer.setPlaying,onTransitionEnd:this.viewer.setPaused,onReady:this.refreshPages,onNavigate:this.onNavigate,onError:this.onError}),this.applyInteractionState(),this.resizableContainer.setSlideObject(this.slideController.slide),this.scaleDocsToFit(),this.sideEffect.add(()=>(this.whiteboardView.callbacks.on("onSizeUpdated",this.scaleDocsToFit),()=>this.whiteboardView.callbacks.off("onSizeUpdated",this.scaleDocsToFit))),this._observeContentSize(),this._applyCurrentBoxSize(),(E=(M=(m=(T=this.context).getAppProxy)==null?void 0:m.call(T))==null?void 0:M.scheduleBoxSizeSync)==null||E.call(M),this}_getContentSize(){const T=(this.viewer.$content||this.box.$content).getBoundingClientRect();return{width:T.width,height:T.height}}_reconnectContentObserver(){const T=this.viewer.$content;!T||!this.contentResizeObserver||(this.contentResizeObserver.disconnect(),this.contentResizeObserver.observe(T))}_observeContentSize(){this.contentResizeObserver||(this.contentResizeObserver=new k_(T=>{const m=T[T.length-1],M=m!=null&&m.contentRect?{width:m.contentRect.width,height:m.contentRect.height}:this._getContentSize();this._onObserverSize(M)})),this._reconnectContentObserver()}_registerBoxSizeChange(){var T,m,M,E;this.offBoxSizeChange=this.context.emitter.on("boxSizeChange",this._onContextBoxSizeChange),this._observeContentSize(),this._applyCurrentBoxSize(),(E=(M=(m=(T=this.context).getAppProxy)==null?void 0:m.call(T))==null?void 0:M.scheduleBoxSizeSync)==null||E.call(M)}getPageIndex(T){return(T>0?T:1)-1}unmount(){var T,m;return(T=this.offBoxSizeChange)==null||T.call(this),this.offBoxSizeChange=void 0,(m=this.contentResizeObserver)==null||m.disconnect(),this.contentResizeObserver=void 0,this.slideController&&(this.slideController.destroy(),this.slideController=null),this.viewer.unmount(),this.resizableContainer.destroy(this.box),this}setReadonly(T){this.viewer.setReadonly(T)}destroy(){this.sideEffect.flushAll(),this.unmount(),this.viewer.destroy()}toggleClickThrough(T){this.$whiteboardView.style.pointerEvents=!T||U_.has(T)?"none":"auto"}wrapClassName(T){return`${this.namespace}-${T}`}async getWhiteSnapshot(T,m,M,E,P){const D={centerX:0,centerY:0,scale:Math.min(m.width/E,m.height/P)},B=`${this.baseScenePath}/${T}`,z=this.context.manager.windowManger;z._appliancePlugin?await z._appliancePlugin.screenshotToCanvasAsync(M,B,m.width,m.height,D):this.whiteboardView.screenshotToCanvas(M,B,m.width,m.height,D)}reportProgress(T,m){window.postMessage({type:"@netless/_result_save_pdf_",appId:this.appId,progress:T,result:m})}}Yn.useFreezer=!1,Yn.FreezerLength=2;function H_(){return Yn.FreezerLength}function j_(_){Yn.FreezerLength=_<1?1/0:_}const ba=_=>"["+_+"]",Al={map:new Map,boxes:new Map,queue:[],validateQueue(){for(this.queue.sort((_,T)=>{var E,P,D,B;const m=(P=(E=this.boxes.get(_))==null?void 0:E.zIndex)!=null?P:0,M=(B=(D=this.boxes.get(T))==null?void 0:D.zIndex)!=null?B:0;return-(m-M)}),ri("[Slide] freezer: validate",ba(this.queue));this.queue.length>Yn.FreezerLength;){const _=this.queue.pop(),T=this.map.get(_);T&&(ri("[Slide] freezer: validate-freeze",_,ba(this.queue)),T.freeze())}},set(_,T,m){ri("[Slide] freezer: add",_,ba(this.queue)),this.map.set(_,T),this.boxes.set(_,m),this.queue.includes(_)||this.queue.unshift(_),this.validateQueue()},delete(_){this.map.delete(_),this.boxes.delete(_),this.queue=this.queue.filter(T=>T!==_),ri("[Slide] freezer: delete",_,ba(this.queue))},focus(_){const T=this.map.get(_),m=this.queue.indexOf(_);m>-1&&this.queue.splice(m,1),this.queue.unshift(_),this.validateQueue(),ri("[Slide] freezer: focus",_,ba(this.queue)),T&&T.unfreeze()}},yu=new Set;function z_(_){return yu.add(_),()=>yu.delete(_)}const _u=new Set;function V_(_){return _u.add(_),()=>_u.delete(_)}const W_=_=>{Yn.useFreezer=!0,_.on("focus",({appId:T})=>{Al.focus(T)}),_.on("created",({appId:T})=>{yu.forEach(m=>m(T))}),_.on("destroy",({appId:T})=>{_u.forEach(m=>m(T))})};var Rp=`.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;-webkit-user-select:none;-webkit-touch-callout:none;-user-select:none;color:#191919}.netless-app-slide-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:rgba(249,249,252,.9);transition:opacity .4s}.netless-app-slide-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:transparent;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-slide-footer-btn:hover{background:transparent!important}}.netless-app-slide-footer-btn>svg{width:100%;height:100%}.netless-app-slide-footer-btn>svg:nth-of-type(2){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-slide-footer-btn~.netless-app-slide-footer-btn{margin-left:15px}.netless-app-slide-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-slide-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-slide-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:transparent;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-page-number-input:hover,.netless-app-slide-page-number-input:focus,.netless-app-slide-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-slide-readonly.netless-app-slide-footer{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-slide-page-number-input:active,.telebox-color-scheme-dark .netless-app-slide-page-number-input:focus,.telebox-color-scheme-dark .netless-app-slide-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-slide-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-slide-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-slide-preview{background:rgba(50,50,50,.9)}.netless-app-slide-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden;transition:opacity .2s}.netless-app-slide-wb-view-hidden{opacity:0}.netless-app-slide-overlay{display:flex;align-items:center;justify-content:center;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%;padding:8px;background:rgba(255,0,0,.25);transition:opacity .3s;opacity:0;pointer-events:none}.netless-app-slide-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-slide-slide canvas{transform:scale(var(--netless-app-slide-scale, 1))}
8073
- `;function X_({container:_,taskId:T,resourceList:m=[],url:M=Zh,debug:E=!1}){if(!T)throw new Error("[Slide] taskId is required");_.style.cssText+="display:flex;flex-direction:column";const P=new Ip({target:_});return P.debug=!!E,P.mount(T,M,m),P}class Ip{constructor(T){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new Cs,this.ready=!1,this.readyPromise=new Promise(m=>{this.resolveReady=()=>{this.ready=!0,m()}}),this.hotkeyListener=m=>{if(this.slide)switch(m.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}},this.onPageChanged=m=>{this.viewer.setPageIndex(m-1)},this.onTransitionStart=()=>{this.viewer.setPlaying()},this.onTransitionEnd=()=>{this.viewer.setPaused()},this.onError=({error:m})=>{this.viewer.setPaused(),console.warn("[Slide] render error",m)},this.destroyed=!1,this.refreshPages=()=>{this.slide&&(this.viewer.pages=Id(this.slide,this.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slide.slideState.currentSlideIndex)))},this.onPlay=()=>{this.slide&&this.slide.nextStep()},this.onNewPageIndex=m=>{this.slide&&this.slide.slideCount>0&&this.slide.renderSlide(Td(m+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=T.target,this.bgColor=Rd(this.target),this.viewer=new cu({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.registerHotKeys(window)}registerHotKeys(T){this.sideEffect.addEventListener(T,"keydown",this.hotkeyListener,void 0,"hotkey")}mount(T,m,M,E=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new ui.Slide({anchor:this.$slide,interactive:!0,mode:"local",controller:this.debug,enableGlobalClick:!0,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,transactionBgColor:this.bgColor}}),this.registerEventListeners(),M.length>0?this.slide.setResourceList(T,M):this.slide.setResource(T,m),this.slide.renderSlide(1),this.previewList=E}renderStyle(){const T=document.createElement("style");return T.appendChild(document.createTextNode(Rp)),T}registerEventListeners(){if(!this.slide)return;const{slide:T}=this;T.on(ui.SLIDE_EVENTS.slideChange,this.onPageChanged),T.on(ui.SLIDE_EVENTS.renderStart,this.onTransitionStart),T.on(ui.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),T.on(ui.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),T.on(ui.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),T.on(ui.SLIDE_EVENTS.renderError,this.onError),T.on(ui.SLIDE_EVENTS.renderEnd,this.resolveReady),this.readyPromise.then(this.refreshPages)}destroy(){this.sideEffect.flushAll(),this.slide&&!this.destroyed&&(this.slide.destroy(),this.destroyed=!0),this.viewer.destroy()}getPageIndex(T){return(T>0?T:1)-1}renderSlideContainer(){if(!this.$slide){const T=document.createElement("div");T.className=this.wrapClassName("slide"),T.dataset.appKind="Slide",this.$slide=T}return this.$slide}wrapClassName(T){return`${this.namespace}-${T}`}}const Y_=ui.Slide.usePlugin.bind(ui.Slide),xu="0.2.101",q_={kind:"Slide",setup(_){var Z,nt,at,Tt,bt;if(console.log("[Slide] setup @ "+xu),_.getIsWritable()&&_.storage.ensureState($h),!_.storage.state.taskId)throw new Error("[Slide] no taskId");const T=_.getView();if(!T)throw new Error("[Slide] no view, please set scenePath on addApp()");T.disableCameraTransform=!0;const m=_.getBox();m.mountStyles(Rp);try{m.$content.dataset.appSlideVersion=xu}catch{}const M=_.getInitScenePath();let E=null;const P=N=>{const R=_.getRoom();if(E&&E.slideController){let F=!1;R&&_.getIsWritable()&&(Kh(R,_,E.slideController.slide,M),F=!0),ri("[Slide] page to",N,F?"(synced)":""),E.viewer.setPageIndex(N-1),E.viewer.setPaused(),E.onPageChanged();const W=E.viewer.pages.length;W>0&&_.dispatchAppEvent("pageStateChange",{index:N-1,length:W})}},D=N=>{const R=_.getAppOptions()||{},F=new Od({context:_,...N,onPageChanged:P,onNavigate:N.onNavigate,onRenderError:R.onRenderError,showRenderError:R.showRenderError,invisibleBehavior:R.invisibleBehavior});return Yn.useFreezer&&Al.set(_.appId,F,m),Mr.setAppController(_.appId,F),F.readyPromise.then(N.onReady).then(()=>{const W=_.getRoom();let O=!1;W&&_.getIsWritable()&&(Kh(W,_,F.slide,M),O=!0);const j=F.slide.slideState.currentSlideIndex;ri("[Slide] page to",j,O?"(synced)":"","(on ready)"),F.slide.on("renderEnd",N.onRenderEnd)}),F};E=new Mp({context:_,box:m,view:T,mountSlideController:D,mountWhiteboard:_.mountView.bind(_),baseScenePath:M,appId:_.appId,urlInterrupter:(Z=_.getAppOptions())==null?void 0:Z.urlInterrupter,enableScale:(at=(nt=_.getAppOptions())==null?void 0:nt.enableScale)!=null?at:!1,onPagesReady:({length:N})=>{const R=(E==null?void 0:E.viewer.pageIndex)||0;_.dispatchAppEvent("pageStateChange",{index:R,length:N})},onNavigate:(N,R)=>{ri("[Slide] user navigate to",N,R?`(${R})`:"")}});const B=_.getAppOptions();E.setSyncEventQueuePolicy((Tt=B==null?void 0:B.syncEventQueuePolicy)!=null?Tt:"fifo"),E.setJustSildeReadonly((bt=B==null?void 0:B.justSildeReadonly)!=null?bt:!1);const z=_.getRoom(),X=new Cs;return X.add(()=>{var N;return Mr.setAppContext(_.appId,_),Mr.enable=((N=_.getAppOptions())==null?void 0:N.debug)||!1,Mr.level="debug",()=>Mr.deleteApp(_.appId)}),z&&(E.toggleClickThrough(z.state.memberState.currentApplianceName),X.add(()=>{const N=R=>{R.memberState&&E&&E.toggleClickThrough(R.memberState.currentApplianceName)};return z.callbacks.on("onRoomStateChanged",N),()=>z.callbacks.off("onRoomStateChanged",N)})),_.emitter.on("destroy",()=>{ri("[Slide] destroy",_.appId),Yn.useFreezer&&Al.delete(_.appId),X.flushAll(),E&&(E.destroy(),E=null)}),E.mount(),{onScaleChanged:N=>{!E||(E.resizableContainer.onScaleChanged=N)},scaleView:N=>{let R=Number(N);Number.isNaN(R)&&(R=1),R<1&&(R=1),R>4&&(R=4),_.storage.setState({slideScale:R}),_.storage.setState({translateX:.5,translateY:.5}),E==null||E.resizableContainer.scaleContainer(R)},getViewScale:()=>E==null?void 0:E.resizableContainer.getScale(),translateView:(N,R)=>{var F,W;if(E!=null&&E.resizableContainer){const O=E.resizableContainer,j=_.getBox().$content.getBoundingClientRect(),Q=O.container.getBoundingClientRect(),G=Q.width-j.width,It=Q.height-j.height;if(G>0||It>0){const Vt=(F=O.translateX)!=null?F:.5,ot=(W=O.translateY)!=null?W:.5,V=G>0?N/G:0,U=It>0?R/It:0,ct=Math.max(0,Math.min(1,Vt+V)),tt=Math.max(0,Math.min(1,ot+U));_.storage.setState({translateX:ct,translateY:tt}),O.handleNormalizeTranslate(ct,tt,{triggerScrollBar:!0,triggerSync:!1})}}},setSildeReadonly:N=>{E==null||E.setJustSildeReadonly(N)},setSyncEventQueuePolicy:N=>{E==null||E.setSyncEventQueuePolicy(N)},viewer:()=>E,controller:()=>E==null?void 0:E.slideController,slide:()=>{var N;return(N=E==null?void 0:E.slideController)==null?void 0:N.slide},nextStep:()=>{var N;return E&&E.slideController?((N=E==null?void 0:E.slideController)==null||N.slide.nextStep(),!0):!1},prevStep:()=>{var N;return E&&E.slideController?((N=E==null?void 0:E.slideController)==null||N.slide.prevStep(),!0):!1},position:()=>{const N=E==null?void 0:E.slideController;if(N)return[N.page,N.pageCount]},nextPage:()=>{const N=E==null?void 0:E.slideController;if(N){const{page:R,pageCount:F}=N;if(F>0&&R<F)return N.jumpToPage(R+1),!0}return!1},prevPage:()=>{const N=E==null?void 0:E.slideController;if(N){const{page:R,pageCount:F}=N;if(F>0&&R>1)return N.jumpToPage(R-1),!0}return!1},jumpToPage:N=>{const R=E==null?void 0:E.slideController;if(R){const{page:F,pageCount:W}=R;if(W>0&&F>0&&F<=W)return R.jumpToPage(N),!0}return!1}}}};return Yn.DefaultUrl=Zh,Yn.DocsViewer=cu,Yn.SideEffectManager=Cs,Yn.Slide=ui.Slide,Yn.SlideController=Od,Yn.SlideControllerBase=Pd,Yn.SlideDocsViewer=Mp,Yn.SlidePreviewer=Ip,Yn.addHooks=W_,Yn.apps=Al,Yn.default=q_,Yn.getFreezerLength=H_,Yn.log=ri,Yn.logger=Mr,Yn.onCreated=z_,Yn.onDestroyed=V_,Yn.previewSlide=X_,Yn.setFreezerLength=j_,Yn.syncSceneWithSlide=Kh,Yn.usePlugin=Y_,Yn.version=xu,Object.defineProperties(Yn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),Yn}({});
8072
+ `,this.addThumbDragListener(B,"vertical",D,P),M.appendChild(B),this.container.appendChild(M),this.verticalScrollBar=M}addThumbDragListener(T,m,M,E){let P=0,D=0;const B=(Tt,bt)=>{m==="horizontal"?this.isDraggingHorizontal=!0:this.isDraggingVertical=!0,P=m==="horizontal"?Tt:bt,D=m==="horizontal"?parseFloat(T.style.left)||0:parseFloat(T.style.top)||0,T.style.cursor="grabbing"},z=(Tt,bt)=>{var Q,G;if(!(m==="horizontal"?this.isDraggingHorizontal:this.isDraggingVertical))return;const F=(m==="horizontal"?Tt:bt)-P;let W=D+F;W=Math.max(1,Math.min(E-M-1,W)),m==="horizontal"?T.style.left=`${W}px`:T.style.top=`${W}px`;const O=E-M-2;let j=0;O>0&&(j=(W-1)/O,j=Math.max(0,Math.min(1,j))),m==="horizontal"?this.resizableContainer.handleNormalizeTranslate(j,(Q=this.resizableContainer.translateY)!=null?Q:.5,{triggerScrollBar:!1,triggerSync:!0}):this.resizableContainer.handleNormalizeTranslate((G=this.resizableContainer.translateX)!=null?G:.5,j,{triggerScrollBar:!1,triggerSync:!0})},X=()=>{m==="horizontal"?this.isDraggingHorizontal=!1:this.isDraggingVertical=!1,T.style.cursor="grab"},Z=Tt=>{B(Tt.clientX,Tt.clientY),Tt.preventDefault()},nt=Tt=>{z(Tt.clientX,Tt.clientY)},at=()=>{X()};this.addTrackedListener(T,"mousedown",Z),this.addTrackedListener(document,"mousemove",nt),this.addTrackedListener(document,"mouseup",at)}destroy(){this.clearScrollBars()}}class g_{constructor(T,m,M,E){this.onScaleChanged=null,this.onLayoutUpdated=null,this.whiteboardContainer=null,this.slide=null,this.scale=1,this.slideWidth=1,this.slideHeight=1,this.scrollBar=null,this.translateX=.5,this.translateY=.5,this.updateSlideSize=()=>{if(this.slide){let P=!1;(this.slideWidth!==this.slide.width||this.slideHeight!==this.slide.height)&&(this.slideWidth=this.slide.width,this.slideHeight=this.slide.height,P=!0),P&&this.updateResizableContainer()}},this.enableResize=M,this.parent=T,this.context=m,this.root=document.createElement("div"),this.root.style.width="100%",this.root.style.height="100%",this.root.style.overflow="hidden",this.parent.appendChild(this.root),this.scrollContainer=document.createElement("div"),this.scrollContainer.setAttribute("data-resizable-scroll","true"),this.scrollContainer.style.width="100%",this.scrollContainer.style.height="100%",this.scrollContainer.style.position="relative",this.scrollContainer.style.overflow="hidden",this.container=document.createElement("div"),this.container.style.position="relative",this.container.setAttribute("data-resizable-container","true"),this.scrollContainer.appendChild(this.container),this.root.appendChild(this.scrollContainer),this.enableResize&&(this.scrollBar=new m_(this.root,this))}getTranslate(){return{x:this.translateX,y:this.translateY}}getScale(){return this.scale}renderScrollBar(T,m,M,E){this.scrollBar&&this.scrollBar.render(T,M,m,E)}setSlideObject(T){this.slide=T,this.slide.on("renderEnd",this.updateSlideSize)}updateResizableContainer(){var m,M;const T=this.scrollContainer.getBoundingClientRect();if(this.container.style.width=`${T.width*this.scale}px`,this.container.style.height=`${T.height*this.scale}px`,this.whiteboardContainer&&this.enableResize){const E=this.whiteboardContainer.getBoundingClientRect();if(E.width/E.height>this.slideWidth/this.slideHeight){const P=E.height*this.slideWidth/this.slideHeight,D=(E.width-P)/2;this.whiteboardContainer.style.clipPath=`inset(0px ${D}px 0px ${D}px)`}else if(E.width/E.height<this.slideWidth/this.slideHeight){const P=E.width*this.slideHeight/this.slideWidth,D=(E.height-P)/2;this.whiteboardContainer.style.clipPath=`inset(${D}px 0px ${D}px 0px)`}}this.translateX=.5,this.translateY=.5,this.renderScrollBar(T.width,T.width*this.scale,T.height,T.height*this.scale),this.handleNormalizeTranslate(this.translateX,this.translateY,{triggerScrollBar:!0,triggerSync:!0}),(m=this.slide)==null||m.notifyFrameResize(),(M=this.onLayoutUpdated)==null||M.call(this)}handleNormalizeTranslate(T,m,M){var z;if(Math.abs(T-this.translateX)<.001&&Math.abs(m-this.translateY)<.001&&!M.triggerSync)return;const E=this.scrollContainer.getBoundingClientRect(),P=this.container.getBoundingClientRect(),D=-T*(P.width-E.width),B=-m*(P.height-E.height);this.translateX=T,this.translateY=m,this.container.style.transform=`translate(${D}px, ${B}px)`,M.triggerScrollBar&&((z=this.scrollBar)==null||z.handleNormalizeTranslate(T,m)),M.triggerSync&&this.enableResize&&this.context.getIsWritable()&&this.context.storage.setState({translateX:this.translateX,translateY:this.translateY})}scaleContainer(T){Math.abs(this.scale-T)<.001||!this.enableResize||(T>1?(this.scrollContainer.style.width="calc(100% - 6px)",this.scrollContainer.style.height="calc(100% - 6px)"):(this.scrollContainer.style.width="100%",this.scrollContainer.style.height="100%"),T=this.enableResize?T:1,this.onScaleChanged&&this.enableResize&&this.onScaleChanged(T),this.scale=T,setTimeout(()=>{this.updateResizableContainer()}))}addSlideContainer(T){this.container.appendChild(T)}addWhiteboardContainer(T){this.container.appendChild(T),this.whiteboardContainer=T}getCurrentScale(){return this.scale}destroy(T){var m;this.onLayoutUpdated=null,(m=this.scrollBar)==null||m.destroy()}}var is=[],v_=function(){return is.some(function(_){return _.activeTargets.length>0})},y_=function(){return is.some(function(_){return _.skippedTargets.length>0})},dp="ResizeObserver loop completed with undelivered notifications.",__=function(){var _;typeof ErrorEvent=="function"?_=new ErrorEvent("error",{message:dp}):(_=document.createEvent("Event"),_.initEvent("error",!1,!1),_.message=dp),window.dispatchEvent(_)},_a;(function(_){_.BORDER_BOX="border-box",_.CONTENT_BOX="content-box",_.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(_a||(_a={}));var rs=function(_){return Object.freeze(_)},x_=function(){function _(T,m){this.inlineSize=T,this.blockSize=m,rs(this)}return _}(),pp=function(){function _(T,m,M,E){return this.x=T,this.y=m,this.width=M,this.height=E,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,rs(this)}return _.prototype.toJSON=function(){var T=this,m=T.x,M=T.y,E=T.top,P=T.right,D=T.bottom,B=T.left,z=T.width,X=T.height;return{x:m,y:M,top:E,right:P,bottom:D,left:B,width:z,height:X}},_.fromRect=function(T){return new _(T.x,T.y,T.width,T.height)},_}(),du=function(_){return _ instanceof SVGElement&&"getBBox"in _},fp=function(_){if(du(_)){var T=_.getBBox(),m=T.width,M=T.height;return!m&&!M}var E=_,P=E.offsetWidth,D=E.offsetHeight;return!(P||D||_.getClientRects().length)},mp=function(_){var T;if(_ instanceof Element)return!0;var m=(T=_==null?void 0:_.ownerDocument)===null||T===void 0?void 0:T.defaultView;return!!(m&&_ instanceof m.Element)},b_=function(_){switch(_.tagName){case"INPUT":if(_.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},xa=typeof window!="undefined"?window:{},Tl=new WeakMap,gp=/auto|scroll/,T_=/^tb|vertical/,S_=/msie|trident/i.test(xa.navigator&&xa.navigator.userAgent),Jr=function(_){return parseFloat(_||"0")},Is=function(_,T,m){return _===void 0&&(_=0),T===void 0&&(T=0),m===void 0&&(m=!1),new x_((m?T:_)||0,(m?_:T)||0)},vp=rs({devicePixelContentBoxSize:Is(),borderBoxSize:Is(),contentBoxSize:Is(),contentRect:new pp(0,0,0,0)}),yp=function(_,T){if(T===void 0&&(T=!1),Tl.has(_)&&!T)return Tl.get(_);if(fp(_))return Tl.set(_,vp),vp;var m=getComputedStyle(_),M=du(_)&&_.ownerSVGElement&&_.getBBox(),E=!S_&&m.boxSizing==="border-box",P=T_.test(m.writingMode||""),D=!M&&gp.test(m.overflowY||""),B=!M&&gp.test(m.overflowX||""),z=M?0:Jr(m.paddingTop),X=M?0:Jr(m.paddingRight),Z=M?0:Jr(m.paddingBottom),nt=M?0:Jr(m.paddingLeft),at=M?0:Jr(m.borderTopWidth),Tt=M?0:Jr(m.borderRightWidth),bt=M?0:Jr(m.borderBottomWidth),N=M?0:Jr(m.borderLeftWidth),R=nt+X,F=z+Z,W=N+Tt,O=at+bt,j=B?_.offsetHeight-O-_.clientHeight:0,Q=D?_.offsetWidth-W-_.clientWidth:0,G=E?R+W:0,It=E?F+O:0,Vt=M?M.width:Jr(m.width)-G-Q,ot=M?M.height:Jr(m.height)-It-j,V=Vt+R+Q+W,U=ot+F+j+O,ct=rs({devicePixelContentBoxSize:Is(Math.round(Vt*devicePixelRatio),Math.round(ot*devicePixelRatio),P),borderBoxSize:Is(V,U,P),contentBoxSize:Is(Vt,ot,P),contentRect:new pp(nt,z,Vt,ot)});return Tl.set(_,ct),ct},_p=function(_,T,m){var M=yp(_,m),E=M.borderBoxSize,P=M.contentBoxSize,D=M.devicePixelContentBoxSize;switch(T){case _a.DEVICE_PIXEL_CONTENT_BOX:return D;case _a.BORDER_BOX:return E;default:return P}},w_=function(){function _(T){var m=yp(T);this.target=T,this.contentRect=m.contentRect,this.borderBoxSize=rs([m.borderBoxSize]),this.contentBoxSize=rs([m.contentBoxSize]),this.devicePixelContentBoxSize=rs([m.devicePixelContentBoxSize])}return _}(),xp=function(_){if(fp(_))return 1/0;for(var T=0,m=_.parentNode;m;)T+=1,m=m.parentNode;return T},E_=function(){var _=1/0,T=[];is.forEach(function(D){if(D.activeTargets.length!==0){var B=[];D.activeTargets.forEach(function(X){var Z=new w_(X.target),nt=xp(X.target);B.push(Z),X.lastReportedSize=_p(X.target,X.observedBox),nt<_&&(_=nt)}),T.push(function(){D.callback.call(D.observer,B,D.observer)}),D.activeTargets.splice(0,D.activeTargets.length)}});for(var m=0,M=T;m<M.length;m++){var E=M[m];E()}return _},bp=function(_){is.forEach(function(m){m.activeTargets.splice(0,m.activeTargets.length),m.skippedTargets.splice(0,m.skippedTargets.length),m.observationTargets.forEach(function(E){E.isActive()&&(xp(E.target)>_?m.activeTargets.push(E):m.skippedTargets.push(E))})})},A_=function(){var _=0;for(bp(_);v_();)_=E_(),bp(_);return y_()&&__(),_>0},pu,Tp=[],C_=function(){return Tp.splice(0).forEach(function(_){return _()})},M_=function(_){if(!pu){var T=0,m=document.createTextNode(""),M={characterData:!0};new MutationObserver(function(){return C_()}).observe(m,M),pu=function(){m.textContent="".concat(T?T--:T++)}}Tp.push(_),pu()},R_=function(_){M_(function(){requestAnimationFrame(_)})},Sl=0,I_=function(){return!!Sl},P_=250,O_={attributes:!0,characterData:!0,childList:!0,subtree:!0},Sp=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],wp=function(_){return _===void 0&&(_=0),Date.now()+_},fu=!1,N_=function(){function _(){var T=this;this.stopped=!0,this.listener=function(){return T.schedule()}}return _.prototype.run=function(T){var m=this;if(T===void 0&&(T=P_),!fu){fu=!0;var M=wp(T);R_(function(){var E=!1;try{E=A_()}finally{if(fu=!1,T=M-wp(),!I_())return;E?m.run(1e3):T>0?m.run(T):m.start()}})}},_.prototype.schedule=function(){this.stop(),this.run()},_.prototype.observe=function(){var T=this,m=function(){return T.observer&&T.observer.observe(document.body,O_)};document.body?m():xa.addEventListener("DOMContentLoaded",m)},_.prototype.start=function(){var T=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),Sp.forEach(function(m){return xa.addEventListener(m,T.listener,!0)}))},_.prototype.stop=function(){var T=this;this.stopped||(this.observer&&this.observer.disconnect(),Sp.forEach(function(m){return xa.removeEventListener(m,T.listener,!0)}),this.stopped=!0)},_}(),mu=new N_,Ep=function(_){!Sl&&_>0&&mu.start(),Sl+=_,!Sl&&mu.stop()},L_=function(_){return!du(_)&&!b_(_)&&getComputedStyle(_).display==="inline"},D_=function(){function _(T,m){this.target=T,this.observedBox=m||_a.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return _.prototype.isActive=function(){var T=_p(this.target,this.observedBox,!0);return L_(this.target)&&(this.lastReportedSize=T),this.lastReportedSize.inlineSize!==T.inlineSize||this.lastReportedSize.blockSize!==T.blockSize},_}(),F_=function(){function _(T,m){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=T,this.callback=m}return _}(),wl=new WeakMap,Ap=function(_,T){for(var m=0;m<_.length;m+=1)if(_[m].target===T)return m;return-1},El=function(){function _(){}return _.connect=function(T,m){var M=new F_(T,m);wl.set(T,M)},_.observe=function(T,m,M){var E=wl.get(T),P=E.observationTargets.length===0;Ap(E.observationTargets,m)<0&&(P&&is.push(E),E.observationTargets.push(new D_(m,M&&M.box)),Ep(1),mu.schedule())},_.unobserve=function(T,m){var M=wl.get(T),E=Ap(M.observationTargets,m),P=M.observationTargets.length===1;E>=0&&(P&&is.splice(is.indexOf(M),1),M.observationTargets.splice(E,1),Ep(-1))},_.disconnect=function(T){var m=this,M=wl.get(T);M.observationTargets.slice().forEach(function(E){return m.unobserve(T,E.target)}),M.activeTargets.splice(0,M.activeTargets.length)},_}(),B_=function(){function _(T){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof T!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");El.connect(this,T)}return _.prototype.observe=function(T,m){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!mp(T))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");El.observe(this,T,m)},_.prototype.unobserve=function(T){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!mp(T))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");El.unobserve(this,T)},_.prototype.disconnect=function(){El.disconnect(this)},_.toString=function(){return"function ResizeObserver () { [polyfill code] }"},_}();const k_=window.ResizeObserver||B_,Cp=.5,gu=({width:_,height:T})=>`${_.toFixed(1)} x ${T.toFixed(1)} px`,vu=(_,T)=>Boolean(_&&T&&Math.abs(_.width-T.width)<=Cp&&Math.abs(_.height-T.height)<=Cp),U_=new Set(["clicker"]),G_=function(){};class Mp{constructor({context:T,box:m,view:M,mountSlideController:E,mountWhiteboard:P,baseScenePath:D,appId:B,urlInterrupter:z,enableScale:X,onPagesReady:Z,onNavigate:nt}){this.slideController=null,this.isViewMounted=!1,this.justSildeReadonly=!1,this.syncEventQueuePolicy="fifo",this.boxSizeEventCount=0,this._applyResize=(at,Tt)=>{var N,R,F;if(at.width<=0||at.height<=0||vu(this.lastAppliedSize,at))return;this.lastAppliedSize=at,this.lastAppliedSource=Tt,(N=this.resizableContainer)==null||N.updateResizableContainer(),(F=(R=this.slideController)==null?void 0:R.slide)==null||F.notifyFrameResize(),this.scaleDocsToFit();const bt=this._getContentSize();console.log("[app-slide] resize",{appId:this.appId,source:Tt,eventCount:this.boxSizeEventCount,event:gu(at),dom:gu(bt)})},this._applyCurrentBoxSize=at=>{const Tt=at!=null?at:this._getContentSize();this._applyResize(Tt,at?"event":"observer")},this._onObserverSize=at=>{at.width<=0||at.height<=0||(this.lastObserverSize=at,this._applyResize(at,"observer"))},this._onContextBoxSizeChange=at=>{if(at.appId===this.context.appId){if(this.boxSizeEventCount+=1,this.latestBoxSize={width:at.width,height:at.height},vu(this.lastObserverSize,this.latestBoxSize)||vu(this.lastAppliedSize,this.latestBoxSize)){console.log("[app-slide] boxSizeChange skipped, observer already applied",{appId:this.appId,eventCount:this.boxSizeEventCount,source:this.lastAppliedSource,size:gu(this.latestBoxSize)});return}this._applyResize(this.latestBoxSize,"event"),this._reconnectContentObserver()}},this.onError=({error:at,index:Tt})=>{var bt,N;this.viewer.setPaused(),(bt=this.slideController)!=null&&bt.showRenderError&&(this.$overlay.textContent=`Error on slide[page=${this.slideController.page}]: ${at.message}`,this.$overlay.style.opacity="1"),(N=this.slideController)!=null&&N.onRenderError&&this.slideController.onRenderError(at,Tt),Mr.warn("[Slide] render error",at)},this.onRenderStart=()=>{this.$whiteboardView.classList.add(this.wrapClassName("wb-view-hidden")),this.viewer.setPlaying()},this.onRenderEnd=()=>{},this.onPageChanged=()=>{clearTimeout(this._onPageChangedTimer),this._onPageChangedTimer=setTimeout(this._onPageChanged,200)},this._onPageChangedTimer=0,this._onPageChanged=()=>{this.$overlay.style.opacity="",this.$whiteboardView.classList.remove(this.wrapClassName("wb-view-hidden"))},this.refreshPages=()=>{this.slideController&&(this.viewer.pages=Id(this.slideController.slide,this.slideController.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slideController.page)),this.scaleDocsToFit())},this.scaleDocsToFit=()=>{if(this.slideController){const{width:at,height:Tt}=this.slideController.slide;at&&Tt&&(this.whiteboardView.moveCameraToContain({originX:-at/2,originY:-Tt/2,width:at,height:Tt,animationMode:"immediately"}),this.whiteboardView.setCameraBound({damping:1,maxContentMode:()=>this.whiteboardView.camera.scale,minContentMode:()=>this.whiteboardView.camera.scale,centerX:0,centerY:0,width:at,height:Tt}),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=(at,Tt)=>{this.slideController&&this.slideController.jumpToPage(at+1,Tt)},this.sideEffect=new Cs,this.namespace="netless-app-slide",this.toPdf=async()=>{if(!this.slideController){this.reportProgress(100,null);return}const{slide:at}=this.slideController,Tt=1920,bt=document.createElement("canvas"),N=bt.getContext("2d"),{slideCount:R,width:F,height:W}=at;let O=Math.floor(F),j=Math.floor(W);O>Tt&&(O=Tt,j=Math.floor(W*O/F)),j>Tt&&(j=Tt,O=Math.floor(F*j/W)),bt.width=O,bt.height=j;const Q=document.createElement("canvas");Q.width=O,Q.height=j;const G=Q.getContext("2d");if(!G||!this.getWhiteSnapshot||!N)return this.reportProgress(100,null),null;const It=O>j?"l":"p",{jsPDF:Vt}=await import("jspdf"),ot=new Vt({format:[O,j],orientation:It,compress:!0});for(let ct=1;ct<=R;ct++){let tt=null;try{tt=await this.slideController.slide.snapshotWithTimingEnd(ct)}catch{}if(tt){const K=document.createElement("img");K.src=tt,await new Promise(dt=>K.onload=dt),N.drawImage(K,0,0,O,j)}G.clearRect(0,0,O,j),await this.getWhiteSnapshot(ct,Q,G,F,W);try{const K=Q.toDataURL("image/png"),dt=document.createElement("img");dt.src=K,await new Promise(rt=>dt.onload=rt),N.drawImage(dt,0,0,O,j)}catch{}const vt=bt.toDataURL("image/jpeg",.6);ct>1&&ot.addPage(),ot.addImage(vt,"JPEG",0,0,O,j,"","FAST"),N.clearRect(0,0,O,j),Math.ceil(ct/R*100)<100&&this.reportProgress(Math.ceil(ct/R*100),null)}const V=ot.output("arraybuffer"),U=this.box.title;this.reportProgress(100,{pdf:V,title:U})},this.context=T,this.box=m,this.whiteboardView=M,this.mountSlideController=E,this.mountWhiteboard=P,this.onNavigate=nt||G_,this.baseScenePath=D,this.enableScale=X!=null?X:!1,this.appId=B,this.viewer=new cu({readonly:m.readonly,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay,urlInterrupter:z,onPagesReady:Z}),this.sideEffect.add(()=>{const at=Tt=>{this.setReadonly(Tt)};return m.events.on("readonly",at),()=>m.events.off("readonly",at)}),this.sideEffect.add(()=>{const at=Tt=>{Tt.data.type==="@netless/_request_save_pdf_"&&Tt.data.appId===this.appId&&this.toPdf().catch(()=>this.reportProgress(100,null))};return window.addEventListener("message",at),()=>{window.removeEventListener("message",at)}}),this.render(),this._registerBoxSizeChange(),this.sideEffect.add(()=>{const at=bt=>{this.resizableContainer&&this.resizableContainer.scaleContainer(bt)};console.log("[SlideDocsViewer] Initial storage state:",this.context.storage.state),console.log("[SlideDocsViewer] Initial slideScale:",this.context.storage.state.slideScale),this.context.storage.state.slideScale!==void 0?(console.log("[SlideDocsViewer] Applying initial slideScale:",this.context.storage.state.slideScale),at(this.context.storage.state.slideScale)):console.log("[SlideDocsViewer] No initial slideScale found");const Tt=bt=>{var N,R;if(bt.slideScale!==void 0){const F=bt.slideScale.newValue;at(F!=null?F:1)}if(bt.translateX!==void 0||bt.translateY!==void 0){const F=this.resizableContainer.getTranslate(),W=bt.translateX?(N=bt.translateX.newValue)!=null?N:.5:F.x,O=bt.translateY?(R=bt.translateY.newValue)!=null?R:.5:F.y;this.resizableContainer&&this.resizableContainer.handleNormalizeTranslate(W,O,{triggerScrollBar:!0,triggerSync:!1})}};return console.log("[SlideDocsViewer] Adding storage state listener"),this.context.storage.onStateChanged.addListener(Tt),()=>{console.log("[SlideDocsViewer] Removing storage state listener"),this.context.storage.onStateChanged.removeListener(Tt)}})}setJustSildeReadonly(T){this.justSildeReadonly=T,this.applyInteractionState()}setSyncEventQueuePolicy(T){this.syncEventQueuePolicy=T,this.applyInteractionState()}applyInteractionState(){var m;const T=(m=this.slideController)==null?void 0:m.slide;!T||(T.setInteractive(!this.justSildeReadonly),T.setSyncEventQueuePolicy(this.syncEventQueuePolicy))}render(){this.resizableContainer||(this.resizableContainer=new g_(this.viewer.$content,this.context,this.enableScale,this.box),this.resizableContainer.onLayoutUpdated=()=>{this.scaleDocsToFit()}),this.renderSlideContainer(),this.renderWhiteboardView(),this.renderOverlay(),this.resizableContainer.addSlideContainer(this.$slide),this.resizableContainer.addWhiteboardContainer(this.$whiteboardView),this.viewer.$content.appendChild(this.$overlay),this.sideEffect.addEventListener(window,"keydown",T=>{if(!this.justSildeReadonly&&this.box.focus&&this.slideController&&!Yv(T.target))switch(T.key){case"ArrowUp":case"ArrowLeft":{this.slideController.slide.prevStep(),this.onNavigate(this.slideController.page,"keydown");break}case"ArrowRight":case"ArrowDown":{this.slideController.slide.nextStep(),this.onNavigate(this.slideController.page,"keydown");break}}})}renderOverlay(){if(!this.$overlay){const T=document.createElement("div");T.className=this.wrapClassName("overlay"),this.$overlay=T}return this.$overlay}renderSlideContainer(){if(!this.$slide){const T=document.createElement("div");T.className=this.wrapClassName("slide"),T.dataset.appKind="Slide",this.$slide=T}return this.$slide}renderWhiteboardView(){return this.$whiteboardView||(this.$whiteboardView=document.createElement("div"),this.$whiteboardView.className=this.wrapClassName("wb-view")),this.$whiteboardView}mount(){var T,m,M,E;return this.box.mountContent(this.viewer.$content),this.box.mountFooter(this.viewer.$footer),this.slideController=this.mountSlideController({anchor:this.$slide,onRenderStart:this.onRenderStart,onRenderEnd:this.onRenderEnd,onTransitionStart:this.viewer.setPlaying,onTransitionEnd:this.viewer.setPaused,onReady:this.refreshPages,onNavigate:this.onNavigate,onError:this.onError}),this.applyInteractionState(),this.resizableContainer.setSlideObject(this.slideController.slide),this.scaleDocsToFit(),this.sideEffect.add(()=>(this.whiteboardView.callbacks.on("onSizeUpdated",this.scaleDocsToFit),()=>this.whiteboardView.callbacks.off("onSizeUpdated",this.scaleDocsToFit))),this._observeContentSize(),this._applyCurrentBoxSize(),(E=(M=(m=(T=this.context).getAppProxy)==null?void 0:m.call(T))==null?void 0:M.scheduleBoxSizeSync)==null||E.call(M),this}_getContentSize(){const T=(this.viewer.$content||this.box.$content).getBoundingClientRect();return{width:T.width,height:T.height}}_reconnectContentObserver(){const T=this.viewer.$content;!T||!this.contentResizeObserver||(this.contentResizeObserver.disconnect(),this.contentResizeObserver.observe(T))}_observeContentSize(){this.contentResizeObserver||(this.contentResizeObserver=new k_(T=>{const m=T[T.length-1],M=m!=null&&m.contentRect?{width:m.contentRect.width,height:m.contentRect.height}:this._getContentSize();this._onObserverSize(M)})),this._reconnectContentObserver()}_registerBoxSizeChange(){var T,m,M,E;this.offBoxSizeChange=this.context.emitter.on("boxSizeChange",this._onContextBoxSizeChange),this._observeContentSize(),this._applyCurrentBoxSize(),(E=(M=(m=(T=this.context).getAppProxy)==null?void 0:m.call(T))==null?void 0:M.scheduleBoxSizeSync)==null||E.call(M)}getPageIndex(T){return(T>0?T:1)-1}unmount(){var T,m;return(T=this.offBoxSizeChange)==null||T.call(this),this.offBoxSizeChange=void 0,(m=this.contentResizeObserver)==null||m.disconnect(),this.contentResizeObserver=void 0,this.slideController&&(this.slideController.destroy(),this.slideController=null),this.viewer.unmount(),this.resizableContainer.destroy(this.box),this}setReadonly(T){this.viewer.setReadonly(T)}destroy(){this.sideEffect.flushAll(),this.unmount(),this.viewer.destroy()}toggleClickThrough(T){this.$whiteboardView.style.pointerEvents=!T||U_.has(T)?"none":"auto"}wrapClassName(T){return`${this.namespace}-${T}`}async getWhiteSnapshot(T,m,M,E,P){const D={centerX:0,centerY:0,scale:Math.min(m.width/E,m.height/P)},B=`${this.baseScenePath}/${T}`,z=this.context.manager.windowManger;z._appliancePlugin?await z._appliancePlugin.screenshotToCanvasAsync(M,B,m.width,m.height,D):this.whiteboardView.screenshotToCanvas(M,B,m.width,m.height,D)}reportProgress(T,m){window.postMessage({type:"@netless/_result_save_pdf_",appId:this.appId,progress:T,result:m})}}Yn.useFreezer=!1,Yn.FreezerLength=2;function H_(){return Yn.FreezerLength}function j_(_){Yn.FreezerLength=_<1?1/0:_}const ba=_=>"["+_+"]",Al={map:new Map,boxes:new Map,queue:[],validateQueue(){for(this.queue.sort((_,T)=>{var E,P,D,B;const m=(P=(E=this.boxes.get(_))==null?void 0:E.zIndex)!=null?P:0,M=(B=(D=this.boxes.get(T))==null?void 0:D.zIndex)!=null?B:0;return-(m-M)}),ri("[Slide] freezer: validate",ba(this.queue));this.queue.length>Yn.FreezerLength;){const _=this.queue.pop(),T=this.map.get(_);T&&(ri("[Slide] freezer: validate-freeze",_,ba(this.queue)),T.freeze())}},set(_,T,m){ri("[Slide] freezer: add",_,ba(this.queue)),this.map.set(_,T),this.boxes.set(_,m),this.queue.includes(_)||this.queue.unshift(_),this.validateQueue()},delete(_){this.map.delete(_),this.boxes.delete(_),this.queue=this.queue.filter(T=>T!==_),ri("[Slide] freezer: delete",_,ba(this.queue))},focus(_){const T=this.map.get(_),m=this.queue.indexOf(_);m>-1&&this.queue.splice(m,1),this.queue.unshift(_),this.validateQueue(),ri("[Slide] freezer: focus",_,ba(this.queue)),T&&T.unfreeze()}},yu=new Set;function z_(_){return yu.add(_),()=>yu.delete(_)}const _u=new Set;function V_(_){return _u.add(_),()=>_u.delete(_)}const W_=_=>{Yn.useFreezer=!0,_.on("focus",({appId:T})=>{Al.focus(T)}),_.on("created",({appId:T})=>{yu.forEach(m=>m(T))}),_.on("destroy",({appId:T})=>{_u.forEach(m=>m(T))})};var Rp=`.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;-webkit-user-select:none;-webkit-touch-callout:none;-user-select:none;color:#191919}.netless-app-slide-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:rgba(249,249,252,.9);transition:opacity .4s}.netless-app-slide-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:transparent;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-slide-footer-btn:hover{background:transparent!important}}.netless-app-slide-footer-btn>svg{width:100%;height:100%}.netless-app-slide-footer-btn>svg:nth-of-type(2){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-slide-footer-btn~.netless-app-slide-footer-btn{margin-left:15px}.netless-app-slide-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-slide-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-slide-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:transparent;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-page-number-input:hover,.netless-app-slide-page-number-input:focus,.netless-app-slide-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-slide-readonly.netless-app-slide-footer{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-slide-page-number-input:active,.telebox-color-scheme-dark .netless-app-slide-page-number-input:focus,.telebox-color-scheme-dark .netless-app-slide-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-slide-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-slide-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-slide-preview{background:rgba(50,50,50,.9)}.netless-app-slide-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden;transition:opacity .2s}.netless-app-slide-wb-view-hidden{opacity:0}.netless-app-slide-overlay{display:flex;align-items:center;justify-content:center;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%;padding:8px;background:rgba(255,0,0,.25);transition:opacity .3s;opacity:0;pointer-events:none}.netless-app-slide-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-slide-slide canvas{transform:scale(var(--netless-app-slide-scale, 1))}
8073
+ `;function X_({container:_,taskId:T,resourceList:m=[],url:M=Zh,debug:E=!1}){if(!T)throw new Error("[Slide] taskId is required");_.style.cssText+="display:flex;flex-direction:column";const P=new Ip({target:_});return P.debug=!!E,P.mount(T,M,m),P}class Ip{constructor(T){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new Cs,this.ready=!1,this.readyPromise=new Promise(m=>{this.resolveReady=()=>{this.ready=!0,m()}}),this.hotkeyListener=m=>{if(this.slide)switch(m.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}},this.onPageChanged=m=>{this.viewer.setPageIndex(m-1)},this.onTransitionStart=()=>{this.viewer.setPlaying()},this.onTransitionEnd=()=>{this.viewer.setPaused()},this.onError=({error:m})=>{this.viewer.setPaused(),console.warn("[Slide] render error",m)},this.destroyed=!1,this.refreshPages=()=>{this.slide&&(this.viewer.pages=Id(this.slide,this.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slide.slideState.currentSlideIndex)))},this.onPlay=()=>{this.slide&&this.slide.nextStep()},this.onNewPageIndex=m=>{this.slide&&this.slide.slideCount>0&&this.slide.renderSlide(Td(m+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=T.target,this.bgColor=Rd(this.target),this.viewer=new cu({readonly:!1,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay}),this.render()}render(){this.viewer.$content.appendChild(this.renderSlideContainer()),this.registerHotKeys(window)}registerHotKeys(T){this.sideEffect.addEventListener(T,"keydown",this.hotkeyListener,void 0,"hotkey")}mount(T,m,M,E=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new ui.Slide({anchor:this.$slide,interactive:!0,mode:"local",controller:this.debug,enableGlobalClick:!0,renderOptions:{minFPS:25,maxFPS:30,autoFPS:!0,autoResolution:!0,transactionBgColor:this.bgColor}}),this.registerEventListeners(),M.length>0?this.slide.setResourceList(T,M):this.slide.setResource(T,m),this.slide.renderSlide(1),this.previewList=E}renderStyle(){const T=document.createElement("style");return T.appendChild(document.createTextNode(Rp)),T}registerEventListeners(){if(!this.slide)return;const{slide:T}=this;T.on(ui.SLIDE_EVENTS.slideChange,this.onPageChanged),T.on(ui.SLIDE_EVENTS.renderStart,this.onTransitionStart),T.on(ui.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),T.on(ui.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),T.on(ui.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),T.on(ui.SLIDE_EVENTS.renderError,this.onError),T.on(ui.SLIDE_EVENTS.renderEnd,this.resolveReady),this.readyPromise.then(this.refreshPages)}destroy(){this.sideEffect.flushAll(),this.slide&&!this.destroyed&&(this.slide.destroy(),this.destroyed=!0),this.viewer.destroy()}getPageIndex(T){return(T>0?T:1)-1}renderSlideContainer(){if(!this.$slide){const T=document.createElement("div");T.className=this.wrapClassName("slide"),T.dataset.appKind="Slide",this.$slide=T}return this.$slide}wrapClassName(T){return`${this.namespace}-${T}`}}const Y_=ui.Slide.usePlugin.bind(ui.Slide),xu="0.2.102",q_={kind:"Slide",setup(_){var Z,nt,at,Tt,bt;if(console.log("[Slide] setup @ "+xu),_.getIsWritable()&&_.storage.ensureState($h),!_.storage.state.taskId)throw new Error("[Slide] no taskId");const T=_.getView();if(!T)throw new Error("[Slide] no view, please set scenePath on addApp()");T.disableCameraTransform=!0;const m=_.getBox();m.mountStyles(Rp);try{m.$content.dataset.appSlideVersion=xu}catch{}const M=_.getInitScenePath();let E=null;const P=N=>{const R=_.getRoom();if(E&&E.slideController){let F=!1;R&&_.getIsWritable()&&(Kh(R,_,E.slideController.slide,M),F=!0),ri("[Slide] page to",N,F?"(synced)":""),E.viewer.setPageIndex(N-1),E.viewer.setPaused(),E.onPageChanged();const W=E.viewer.pages.length;W>0&&_.dispatchAppEvent("pageStateChange",{index:N-1,length:W})}},D=N=>{const R=_.getAppOptions()||{},F=new Od({context:_,...N,onPageChanged:P,onNavigate:N.onNavigate,onRenderError:R.onRenderError,showRenderError:R.showRenderError,invisibleBehavior:R.invisibleBehavior});return Yn.useFreezer&&Al.set(_.appId,F,m),Mr.setAppController(_.appId,F),F.readyPromise.then(N.onReady).then(()=>{const W=_.getRoom();let O=!1;W&&_.getIsWritable()&&(Kh(W,_,F.slide,M),O=!0);const j=F.slide.slideState.currentSlideIndex;ri("[Slide] page to",j,O?"(synced)":"","(on ready)"),F.slide.on("renderEnd",N.onRenderEnd)}),F};E=new Mp({context:_,box:m,view:T,mountSlideController:D,mountWhiteboard:_.mountView.bind(_),baseScenePath:M,appId:_.appId,urlInterrupter:(Z=_.getAppOptions())==null?void 0:Z.urlInterrupter,enableScale:(at=(nt=_.getAppOptions())==null?void 0:nt.enableScale)!=null?at:!1,onPagesReady:({length:N})=>{const R=(E==null?void 0:E.viewer.pageIndex)||0;_.dispatchAppEvent("pageStateChange",{index:R,length:N})},onNavigate:(N,R)=>{ri("[Slide] user navigate to",N,R?`(${R})`:"")}});const B=_.getAppOptions();E.setSyncEventQueuePolicy((Tt=B==null?void 0:B.syncEventQueuePolicy)!=null?Tt:"fifo"),E.setJustSildeReadonly((bt=B==null?void 0:B.justSildeReadonly)!=null?bt:!1);const z=_.getRoom(),X=new Cs;return X.add(()=>{var N;return Mr.setAppContext(_.appId,_),Mr.enable=((N=_.getAppOptions())==null?void 0:N.debug)||!1,Mr.level="debug",()=>Mr.deleteApp(_.appId)}),z&&(E.toggleClickThrough(z.state.memberState.currentApplianceName),X.add(()=>{const N=R=>{R.memberState&&E&&E.toggleClickThrough(R.memberState.currentApplianceName)};return z.callbacks.on("onRoomStateChanged",N),()=>z.callbacks.off("onRoomStateChanged",N)})),_.emitter.on("destroy",()=>{ri("[Slide] destroy",_.appId),Yn.useFreezer&&Al.delete(_.appId),X.flushAll(),E&&(E.destroy(),E=null)}),E.mount(),{onScaleChanged:N=>{!E||(E.resizableContainer.onScaleChanged=N)},scaleView:N=>{let R=Number(N);Number.isNaN(R)&&(R=1),R<1&&(R=1),R>4&&(R=4),_.storage.setState({slideScale:R}),_.storage.setState({translateX:.5,translateY:.5}),E==null||E.resizableContainer.scaleContainer(R)},getViewScale:()=>E==null?void 0:E.resizableContainer.getScale(),translateView:(N,R)=>{var F,W;if(E!=null&&E.resizableContainer){const O=E.resizableContainer,j=_.getBox().$content.getBoundingClientRect(),Q=O.container.getBoundingClientRect(),G=Q.width-j.width,It=Q.height-j.height;if(G>0||It>0){const Vt=(F=O.translateX)!=null?F:.5,ot=(W=O.translateY)!=null?W:.5,V=G>0?N/G:0,U=It>0?R/It:0,ct=Math.max(0,Math.min(1,Vt+V)),tt=Math.max(0,Math.min(1,ot+U));_.storage.setState({translateX:ct,translateY:tt}),O.handleNormalizeTranslate(ct,tt,{triggerScrollBar:!0,triggerSync:!1})}}},setSildeReadonly:N=>{E==null||E.setJustSildeReadonly(N)},setSyncEventQueuePolicy:N=>{E==null||E.setSyncEventQueuePolicy(N)},viewer:()=>E,controller:()=>E==null?void 0:E.slideController,slide:()=>{var N;return(N=E==null?void 0:E.slideController)==null?void 0:N.slide},nextStep:()=>{var N;return E&&E.slideController?((N=E==null?void 0:E.slideController)==null||N.slide.nextStep(),!0):!1},prevStep:()=>{var N;return E&&E.slideController?((N=E==null?void 0:E.slideController)==null||N.slide.prevStep(),!0):!1},position:()=>{const N=E==null?void 0:E.slideController;if(N)return[N.page,N.pageCount]},nextPage:()=>{const N=E==null?void 0:E.slideController;if(N){const{page:R,pageCount:F}=N;if(F>0&&R<F)return N.jumpToPage(R+1),!0}return!1},prevPage:()=>{const N=E==null?void 0:E.slideController;if(N){const{page:R,pageCount:F}=N;if(F>0&&R>1)return N.jumpToPage(R-1),!0}return!1},jumpToPage:N=>{const R=E==null?void 0:E.slideController;if(R){const{page:F,pageCount:W}=R;if(W>0&&F>0&&F<=W)return R.jumpToPage(N),!0}return!1}}}};return Yn.DefaultUrl=Zh,Yn.DocsViewer=cu,Yn.SideEffectManager=Cs,Yn.Slide=ui.Slide,Yn.SlideController=Od,Yn.SlideControllerBase=Pd,Yn.SlideDocsViewer=Mp,Yn.SlidePreviewer=Ip,Yn.addHooks=W_,Yn.apps=Al,Yn.default=q_,Yn.getFreezerLength=H_,Yn.log=ri,Yn.logger=Mr,Yn.onCreated=z_,Yn.onDestroyed=V_,Yn.previewSlide=X_,Yn.setFreezerLength=j_,Yn.syncSceneWithSlide=Kh,Yn.usePlugin=Y_,Yn.version=xu,Object.defineProperties(Yn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),Yn}({});
8074
8074
  //# sourceMappingURL=main.iife.js.map