@netless/app-slide 0.2.105-beta.3 → 0.2.106-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/main.cjs.js +1 -1
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +12 -5
- package/dist/main.es.js.map +1 -1
- package/dist/main.iife.js +1 -1
- package/dist/main.iife.js.map +1 -1
- package/package.json +2 -2
- package/src/DocsViewer/ResizableContainer.ts +2 -0
- package/src/SlideDocsViewer/index.ts +9 -5
- package/src/index.ts +33 -27
package/dist/index.d.ts
CHANGED
|
@@ -1327,6 +1327,8 @@ interface AppResult {
|
|
|
1327
1327
|
scaleView: (to: number) => void;
|
|
1328
1328
|
getViewScale: () => number | undefined;
|
|
1329
1329
|
translateView: (offsetX: number, offsetY: number) => void;
|
|
1330
|
+
onPptMediaPermissionRequest: (callback: () => void) => () => void;
|
|
1331
|
+
playPptMedia: () => void;
|
|
1330
1332
|
}
|
|
1331
1333
|
declare const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, AppResult> & {
|
|
1332
1334
|
teardown(context: _netless_window_manager.AppContext): void;
|
package/dist/main.cjs.js
CHANGED
|
@@ -8071,5 +8071,5 @@ geometry=${JSON.stringify(s)}`;let l=this.players.get(a);if(!l){const h={};l=new
|
|
|
8071
8071
|
box-shadow: 1px 0 2px rgba(0, 0, 0, 0.2);
|
|
8072
8072
|
cursor: grab;
|
|
8073
8073
|
`,this.addThumbDragListener(B,"vertical",L,A),M.appendChild(B),this.container.appendChild(M),this.verticalScrollBar=M}addThumbDragListener(T,f,M,w){let A=0,L=0;const B=(wt,bt)=>{f==="horizontal"?this.isDraggingHorizontal=!0:this.isDraggingVertical=!0,A=f==="horizontal"?wt:bt,L=f==="horizontal"?parseFloat(T.style.left)||0:parseFloat(T.style.top)||0,T.style.cursor="grabbing"},G=(wt,bt)=>{var Z,V;if(!(f==="horizontal"?this.isDraggingHorizontal:this.isDraggingVertical))return;const k=(f==="horizontal"?wt:bt)-A;let X=L+k;X=Math.max(1,Math.min(w-M-1,X)),f==="horizontal"?T.style.left=`${X}px`:T.style.top=`${X}px`;const O=w-M-2;let z=0;O>0&&(z=(X-1)/O,z=Math.max(0,Math.min(1,z))),f==="horizontal"?this.resizableContainer.handleNormalizeTranslate(z,(Z=this.resizableContainer.translateY)!=null?Z:.5,{triggerScrollBar:!1,triggerSync:!0}):this.resizableContainer.handleNormalizeTranslate((V=this.resizableContainer.translateX)!=null?V:.5,z,{triggerScrollBar:!1,triggerSync:!0})},W=()=>{f==="horizontal"?this.isDraggingHorizontal=!1:this.isDraggingVertical=!1,T.style.cursor="grab"},K=wt=>{B(wt.clientX,wt.clientY),wt.preventDefault()},et=wt=>{G(wt.clientX,wt.clientY)},at=()=>{W()};this.addTrackedListener(T,"mousedown",K),this.addTrackedListener(document,"mousemove",et),this.addTrackedListener(document,"mouseup",at)}destroy(){this.clearScrollBars()}}class sA{constructor(T,f,M,w){this.onScaleChanged=null,this.onLayoutUpdated=null,this.scaleChangedListeners=new Set,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 A=!1;(this.slideWidth!==this.slide.width||this.slideHeight!==this.slide.height)&&(this.slideWidth=this.slide.width,this.slideHeight=this.slide.height,A=!0),A&&this.updateResizableContainer()}},this.enableResize=M,this.parent=T,this.context=f,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 oA(this.root,this))}getTranslate(){return{x:this.translateX,y:this.translateY}}getScale(){return this.scale}addScaleChangedListener(T){return this.scaleChangedListeners.add(T),()=>{this.scaleChangedListeners.delete(T)}}renderScrollBar(T,f,M,w){this.scrollBar&&this.scrollBar.render(T,M,f,w)}setSlideObject(T){this.slide=T,this.slide.on("renderEnd",this.updateSlideSize)}updateResizableContainer(){var f,M;this.cancelScheduledLayoutUpdate();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 w=this.whiteboardContainer.getBoundingClientRect();if(w.width/w.height>this.slideWidth/this.slideHeight){const A=w.height*this.slideWidth/this.slideHeight,L=(w.width-A)/2;this.whiteboardContainer.style.clipPath=`inset(0px ${L}px 0px ${L}px)`}else if(w.width/w.height<this.slideWidth/this.slideHeight){const A=w.width*this.slideHeight/this.slideWidth,L=(w.height-A)/2;this.whiteboardContainer.style.clipPath=`inset(${L}px 0px ${L}px 0px)`}}this.renderScrollBar(T.width,T.width*this.scale,T.height,T.height*this.scale),this.handleNormalizeTranslate(this.translateX,this.translateY,{triggerScrollBar:!0,triggerSync:!1,force:!0}),(f=this.slide)==null||f.notifyFrameResize(),(M=this.onLayoutUpdated)==null||M.call(this)}handleNormalizeTranslate(T,f,M){var G;if(Math.abs(T-this.translateX)<.001&&Math.abs(f-this.translateY)<.001&&!M.triggerSync&&!M.force)return;const w=this.scrollContainer.getBoundingClientRect(),A=this.container.getBoundingClientRect(),L=-T*(A.width-w.width),B=-f*(A.height-w.height);this.translateX=T,this.translateY=f,this.container.style.transform=`translate(${L}px, ${B}px)`,M.triggerScrollBar&&((G=this.scrollBar)==null||G.handleNormalizeTranslate(T,f)),M.triggerSync&&this.enableResize&&this.context.getIsWritable()&&this.context.storage.setState({translateX:this.translateX,translateY:this.translateY})}scaleContainer(T){var f;if(!(Math.abs(this.scale-T)<.001||!this.enableResize)){if(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.scale=T,this.enableResize){(f=this.onScaleChanged)==null||f.call(this,this.scale);for(const M of this.scaleChangedListeners)M(this.scale)}this.layoutFrameId===void 0&&(this.layoutFrameId=requestAnimationFrame(()=>{this.layoutFrameId=void 0,this.updateResizableContainer()}))}}cancelScheduledLayoutUpdate(){this.layoutFrameId!==void 0&&(cancelAnimationFrame(this.layoutFrameId),this.layoutFrameId=void 0)}addSlideContainer(T){this.container.appendChild(T)}addWhiteboardContainer(T){this.container.appendChild(T),this.whiteboardContainer=T}getCurrentScale(){return this.scale}destroy(T){var f;this.cancelScheduledLayoutUpdate(),this.onLayoutUpdated=null,this.scaleChangedListeners.clear(),(f=this.scrollBar)==null||f.destroy()}}var Ms=[],aA=function(){return Ms.some(function(x){return x.activeTargets.length>0})},lA=function(){return Ms.some(function(x){return x.skippedTargets.length>0})},dv="ResizeObserver loop completed with undelivered notifications.",hA=function(){var x;typeof ErrorEvent=="function"?x=new ErrorEvent("error",{message:dv}):(x=document.createEvent("Event"),x.initEvent("error",!1,!1),x.message=dv),window.dispatchEvent(x)},xl;(function(x){x.BORDER_BOX="border-box",x.CONTENT_BOX="content-box",x.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(xl||(xl={}));var Cs=function(x){return Object.freeze(x)},uA=function(){function x(T,f){this.inlineSize=T,this.blockSize=f,Cs(this)}return x}(),ay=function(){function x(T,f,M,w){return this.x=T,this.y=f,this.width=M,this.height=w,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,Cs(this)}return x.prototype.toJSON=function(){var T=this,f=T.x,M=T.y,w=T.top,A=T.right,L=T.bottom,B=T.left,G=T.width,W=T.height;return{x:f,y:M,top:w,right:A,bottom:L,left:B,width:G,height:W}},x.fromRect=function(T){return new x(T.x,T.y,T.width,T.height)},x}(),kd=function(x){return x instanceof SVGElement&&"getBBox"in x},ly=function(x){if(kd(x)){var T=x.getBBox(),f=T.width,M=T.height;return!f&&!M}var w=x,A=w.offsetWidth,L=w.offsetHeight;return!(A||L||x.getClientRects().length)},pv=function(x){var T;if(x instanceof Element)return!0;var f=(T=x==null?void 0:x.ownerDocument)===null||T===void 0?void 0:T.defaultView;return!!(f&&x instanceof f.Element)},cA=function(x){switch(x.tagName){case"INPUT":if(x.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},vl=typeof window!="undefined"?window:{},tu=new WeakMap,fv=/auto|scroll/,dA=/^tb|vertical/,pA=/msie|trident/i.test(vl.navigator&&vl.navigator.userAgent),lo=function(x){return parseFloat(x||"0")},fa=function(x,T,f){return x===void 0&&(x=0),T===void 0&&(T=0),f===void 0&&(f=!1),new uA((f?T:x)||0,(f?x:T)||0)},mv=Cs({devicePixelContentBoxSize:fa(),borderBoxSize:fa(),contentBoxSize:fa(),contentRect:new ay(0,0,0,0)}),hy=function(x,T){if(T===void 0&&(T=!1),tu.has(x)&&!T)return tu.get(x);if(ly(x))return tu.set(x,mv),mv;var f=getComputedStyle(x),M=kd(x)&&x.ownerSVGElement&&x.getBBox(),w=!pA&&f.boxSizing==="border-box",A=dA.test(f.writingMode||""),L=!M&&fv.test(f.overflowY||""),B=!M&&fv.test(f.overflowX||""),G=M?0:lo(f.paddingTop),W=M?0:lo(f.paddingRight),K=M?0:lo(f.paddingBottom),et=M?0:lo(f.paddingLeft),at=M?0:lo(f.borderTopWidth),wt=M?0:lo(f.borderRightWidth),bt=M?0:lo(f.borderBottomWidth),D=M?0:lo(f.borderLeftWidth),P=et+W,k=G+K,X=D+wt,O=at+bt,z=B?x.offsetHeight-O-x.clientHeight:0,Z=L?x.offsetWidth-X-x.clientWidth:0,V=w?P+X:0,Mt=w?k+O:0,Ht=M?M.width:lo(f.width)-V-Z,st=M?M.height:lo(f.height)-Mt-z,U=Ht+P+Z+X,F=st+k+z+O,lt=Cs({devicePixelContentBoxSize:fa(Math.round(Ht*devicePixelRatio),Math.round(st*devicePixelRatio),A),borderBoxSize:fa(U,F,A),contentBoxSize:fa(Ht,st,A),contentRect:new ay(et,G,Ht,st)});return tu.set(x,lt),lt},uy=function(x,T,f){var M=hy(x,f),w=M.borderBoxSize,A=M.contentBoxSize,L=M.devicePixelContentBoxSize;switch(T){case xl.DEVICE_PIXEL_CONTENT_BOX:return L;case xl.BORDER_BOX:return w;default:return A}},fA=function(){function x(T){var f=hy(T);this.target=T,this.contentRect=f.contentRect,this.borderBoxSize=Cs([f.borderBoxSize]),this.contentBoxSize=Cs([f.contentBoxSize]),this.devicePixelContentBoxSize=Cs([f.devicePixelContentBoxSize])}return x}(),cy=function(x){if(ly(x))return 1/0;for(var T=0,f=x.parentNode;f;)T+=1,f=f.parentNode;return T},mA=function(){var x=1/0,T=[];Ms.forEach(function(L){if(L.activeTargets.length!==0){var B=[];L.activeTargets.forEach(function(W){var K=new fA(W.target),et=cy(W.target);B.push(K),W.lastReportedSize=uy(W.target,W.observedBox),et<x&&(x=et)}),T.push(function(){L.callback.call(L.observer,B,L.observer)}),L.activeTargets.splice(0,L.activeTargets.length)}});for(var f=0,M=T;f<M.length;f++){var w=M[f];w()}return x},gv=function(x){Ms.forEach(function(f){f.activeTargets.splice(0,f.activeTargets.length),f.skippedTargets.splice(0,f.skippedTargets.length),f.observationTargets.forEach(function(w){w.isActive()&&(cy(w.target)>x?f.activeTargets.push(w):f.skippedTargets.push(w))})})},gA=function(){var x=0;for(gv(x);aA();)x=mA(),gv(x);return lA()&&hA(),x>0},fd,dy=[],vA=function(){return dy.splice(0).forEach(function(x){return x()})},yA=function(x){if(!fd){var T=0,f=document.createTextNode(""),M={characterData:!0};new MutationObserver(function(){return vA()}).observe(f,M),fd=function(){f.textContent="".concat(T?T--:T++)}}dy.push(x),fd()},_A=function(x){yA(function(){requestAnimationFrame(x)})},nu=0,xA=function(){return!!nu},bA=250,wA={attributes:!0,characterData:!0,childList:!0,subtree:!0},vv=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],yv=function(x){return x===void 0&&(x=0),Date.now()+x},md=!1,TA=function(){function x(){var T=this;this.stopped=!0,this.listener=function(){return T.schedule()}}return x.prototype.run=function(T){var f=this;if(T===void 0&&(T=bA),!md){md=!0;var M=yv(T);_A(function(){var w=!1;try{w=gA()}finally{if(md=!1,T=M-yv(),!xA())return;w?f.run(1e3):T>0?f.run(T):f.start()}})}},x.prototype.schedule=function(){this.stop(),this.run()},x.prototype.observe=function(){var T=this,f=function(){return T.observer&&T.observer.observe(document.body,wA)};document.body?f():vl.addEventListener("DOMContentLoaded",f)},x.prototype.start=function(){var T=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),vv.forEach(function(f){return vl.addEventListener(f,T.listener,!0)}))},x.prototype.stop=function(){var T=this;this.stopped||(this.observer&&this.observer.disconnect(),vv.forEach(function(f){return vl.removeEventListener(f,T.listener,!0)}),this.stopped=!0)},x}(),bd=new TA,_v=function(x){!nu&&x>0&&bd.start(),nu+=x,!nu&&bd.stop()},SA=function(x){return!kd(x)&&!cA(x)&&getComputedStyle(x).display==="inline"},EA=function(){function x(T,f){this.target=T,this.observedBox=f||xl.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return x.prototype.isActive=function(){var T=uy(this.target,this.observedBox,!0);return SA(this.target)&&(this.lastReportedSize=T),this.lastReportedSize.inlineSize!==T.inlineSize||this.lastReportedSize.blockSize!==T.blockSize},x}(),AA=function(){function x(T,f){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=T,this.callback=f}return x}(),eu=new WeakMap,xv=function(x,T){for(var f=0;f<x.length;f+=1)if(x[f].target===T)return f;return-1},iu=function(){function x(){}return x.connect=function(T,f){var M=new AA(T,f);eu.set(T,M)},x.observe=function(T,f,M){var w=eu.get(T),A=w.observationTargets.length===0;xv(w.observationTargets,f)<0&&(A&&Ms.push(w),w.observationTargets.push(new EA(f,M&&M.box)),_v(1),bd.schedule())},x.unobserve=function(T,f){var M=eu.get(T),w=xv(M.observationTargets,f),A=M.observationTargets.length===1;w>=0&&(A&&Ms.splice(Ms.indexOf(M),1),M.observationTargets.splice(w,1),_v(-1))},x.disconnect=function(T){var f=this,M=eu.get(T);M.observationTargets.slice().forEach(function(w){return f.unobserve(T,w.target)}),M.activeTargets.splice(0,M.activeTargets.length)},x}(),MA=function(){function x(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.");iu.connect(this,T)}return x.prototype.observe=function(T,f){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!pv(T))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");iu.observe(this,T,f)},x.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(!pv(T))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");iu.unobserve(this,T)},x.prototype.disconnect=function(){iu.disconnect(this)},x.toString=function(){return"function ResizeObserver () { [polyfill code] }"},x}();const CA=window.ResizeObserver||MA,bv=.5,gd=({width:x,height:T})=>`${x.toFixed(1)} x ${T.toFixed(1)} px`,vd=(x,T)=>Boolean(x&&T&&Math.abs(x.width-T.width)<=bv&&Math.abs(x.height-T.height)<=bv),RA=new Set(["clicker"]),IA=function(){};class py{constructor({context:T,box:f,view:M,mountSlideController:w,mountWhiteboard:A,baseScenePath:L,appId:B,urlInterrupter:G,enableScale:W,onPagesReady:K,onNavigate:et}){this.slideController=null,this.isViewMounted=!1,this.justSildeReadonly=!1,this.syncEventQueuePolicy="fifo",this.boxSizeEventCount=0,this._applyResize=(at,wt)=>{var D,P,k;if(at.width<=0||at.height<=0||vd(this.lastAppliedSize,at))return;this.lastAppliedSize=at,this.lastAppliedSource=wt,(D=this.resizableContainer)==null||D.updateResizableContainer(),(k=(P=this.slideController)==null?void 0:P.slide)==null||k.notifyFrameResize(),this.scaleDocsToFit();const bt=this._getContentSize();console.log("[app-slide] resize",{appId:this.appId,source:wt,eventCount:this.boxSizeEventCount,event:gd(at),dom:gd(bt)})},this._applyCurrentBoxSize=at=>{const wt=at!=null?at:this._getContentSize();this._applyResize(wt,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},vd(this.lastObserverSize,this.latestBoxSize)||vd(this.lastAppliedSize,this.latestBoxSize)){console.log("[app-slide] boxSizeChange skipped, observer already applied",{appId:this.appId,eventCount:this.boxSizeEventCount,source:this.lastAppliedSource,size:gd(this.latestBoxSize)});return}this._applyResize(this.latestBoxSize,"event"),this._reconnectContentObserver()}},this.onError=({error:at,index:wt})=>{var bt,D;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"),(D=this.slideController)!=null&&D.onRenderError&&this.slideController.onRenderError(at,wt),Ur.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=Iv(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:wt}=this.slideController.slide;if(at&&wt){const bt=this.context.storage.state.originSize,{width:D,height:P}=bt&&bt.width>0&&bt.height>0?bt:{width:at,height:wt};if(D>0&&P>0){this.whiteboardView.moveCameraToContain({originX:-D/2,originY:-P/2,width:D,height:P,animationMode:"immediately"});const k=this.whiteboardView.camera.scale;this.whiteboardView.setCameraBound({damping:1,maxContentMode:()=>k,minContentMode:()=>k,centerX:0,centerY:0,width:at,height:wt})}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,wt)=>{this.slideController&&this.slideController.jumpToPage(at+1,wt)},this.sideEffect=new ga,this.namespace="netless-app-slide",this.toPdf=async()=>{if(!this.slideController){this.reportProgress(100,null);return}const{slide:at}=this.slideController,wt=1920,bt=document.createElement("canvas"),D=bt.getContext("2d"),{slideCount:P,width:k,height:X}=at;let O=Math.floor(k),z=Math.floor(X);O>wt&&(O=wt,z=Math.floor(X*O/k)),z>wt&&(z=wt,O=Math.floor(k*z/X)),bt.width=O,bt.height=z;const Z=document.createElement("canvas");Z.width=O,Z.height=z;const V=Z.getContext("2d");if(!V||!this.getWhiteSnapshot||!D)return this.reportProgress(100,null),null;const Mt=O>z?"l":"p",{jsPDF:Ht}=await Promise.resolve().then(function(){return ME(require("jspdf"))}),st=new Ht({format:[O,z],orientation:Mt,compress:!0});for(let lt=1;lt<=P;lt++){let Q=null;try{Q=await this.slideController.slide.snapshotWithTimingEnd(lt)}catch{}if(Q){const $=document.createElement("img");$.src=Q,await new Promise(ct=>$.onload=ct),D.drawImage($,0,0,O,z)}V.clearRect(0,0,O,z),await this.getWhiteSnapshot(lt,Z,V,k,X);try{const $=Z.toDataURL("image/png"),ct=document.createElement("img");ct.src=$,await new Promise(nt=>ct.onload=nt),D.drawImage(ct,0,0,O,z)}catch{}const vt=bt.toDataURL("image/jpeg",.6);lt>1&&st.addPage(),st.addImage(vt,"JPEG",0,0,O,z,"","FAST"),D.clearRect(0,0,O,z),Math.ceil(lt/P*100)<100&&this.reportProgress(Math.ceil(lt/P*100),null)}const U=st.output("arraybuffer"),F=this.box.title;this.reportProgress(100,{pdf:U,title:F})},this.context=T,this.box=f,this.whiteboardView=M,this.mountSlideController=w,this.mountWhiteboard=A,this.onNavigate=et||IA,this.baseScenePath=L,this.enableScale=W!=null?W:!1,this.appId=B,this.viewer=new Bd({readonly:f.readonly,onNewPageIndex:this.onNewPageIndex,onPlay:this.onPlay,urlInterrupter:G,onPagesReady:K}),this.sideEffect.add(()=>{const at=wt=>{this.setReadonly(wt)};return f.events.on("readonly",at),()=>f.events.off("readonly",at)}),this.sideEffect.add(()=>{const at=wt=>{wt.data.type==="@netless/_request_save_pdf_"&&wt.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(()=>{var P,k;const at=X=>{this.resizableContainer&&this.resizableContainer.scaleContainer(X)};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 wt=(P=this.context.storage.state.translateX)!=null?P:.5,bt=(k=this.context.storage.state.translateY)!=null?k:.5;this.resizableContainer.handleNormalizeTranslate(wt,bt,{triggerScrollBar:!0,triggerSync:!1});const D=X=>{var O,z;if(X.slideScale!==void 0){const Z=X.slideScale.newValue;at(Z!=null?Z:1)}if(X.translateX!==void 0||X.translateY!==void 0){const Z=this.resizableContainer.getTranslate(),V=X.translateX?(O=X.translateX.newValue)!=null?O:.5:Z.x,Mt=X.translateY?(z=X.translateY.newValue)!=null?z:.5:Z.y;this.resizableContainer&&this.resizableContainer.handleNormalizeTranslate(V,Mt,{triggerScrollBar:!0,triggerSync:!1})}};return console.log("[SlideDocsViewer] Adding storage state listener"),this.context.storage.onStateChanged.addListener(D),()=>{console.log("[SlideDocsViewer] Removing storage state listener"),this.context.storage.onStateChanged.removeListener(D)}})}setJustSildeReadonly(T){this.justSildeReadonly=T,this.applyInteractionState()}setSyncEventQueuePolicy(T){this.syncEventQueuePolicy=T,this.applyInteractionState()}applyInteractionState(){var f;const T=(f=this.slideController)==null?void 0:f.slide;!T||(T.setInteractive(!this.justSildeReadonly),T.setSyncEventQueuePolicy(this.syncEventQueuePolicy))}render(){this.resizableContainer||(this.resizableContainer=new sA(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&&!NE(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,f,M,w;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(),(w=(M=(f=(T=this.context).getAppProxy)==null?void 0:f.call(T))==null?void 0:M.scheduleBoxSizeSync)==null||w.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 CA(T=>{const f=T[T.length-1],M=f!=null&&f.contentRect?{width:f.contentRect.width,height:f.contentRect.height}:this._getContentSize();this._onObserverSize(M)})),this._reconnectContentObserver()}_registerBoxSizeChange(){var T,f,M,w;this.offBoxSizeChange=this.context.emitter.on("boxSizeChange",this._onContextBoxSizeChange),this._observeContentSize(),this._applyCurrentBoxSize(),(w=(M=(f=(T=this.context).getAppProxy)==null?void 0:f.call(T))==null?void 0:M.scheduleBoxSizeSync)==null||w.call(M)}getPageIndex(T){return(T>0?T:1)-1}unmount(){var T,f;return(T=this.offBoxSizeChange)==null||T.call(this),this.offBoxSizeChange=void 0,(f=this.contentResizeObserver)==null||f.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||RA.has(T)?"none":"auto"}wrapClassName(T){return`${this.namespace}-${T}`}async getWhiteSnapshot(T,f,M,w,A){const L={centerX:0,centerY:0,scale:Math.min(f.width/w,f.height/A)},B=`${this.baseScenePath}/${T}`,G=this.context.manager.windowManger;G._appliancePlugin?await G._appliancePlugin.screenshotToCanvasAsync(M,B,f.width,f.height,L):this.whiteboardView.screenshotToCanvas(M,B,f.width,f.height,L)}reportProgress(T,f){window.postMessage({type:"@netless/_result_save_pdf_",appId:this.appId,progress:T,result:f})}}exports.useFreezer=!1;exports.FreezerLength=2;function PA(){return exports.FreezerLength}function OA(x){exports.FreezerLength=x<1?1/0:x}const ml=x=>"["+x+"]",yl={map:new Map,boxes:new Map,queue:[],validateQueue(){for(this.queue.sort((x,T)=>{var w,A,L,B;const f=(A=(w=this.boxes.get(x))==null?void 0:w.zIndex)!=null?A:0,M=(B=(L=this.boxes.get(T))==null?void 0:L.zIndex)!=null?B:0;return-(f-M)}),Zi("[Slide] freezer: validate",ml(this.queue));this.queue.length>exports.FreezerLength;){const x=this.queue.pop(),T=this.map.get(x);T&&(Zi("[Slide] freezer: validate-freeze",x,ml(this.queue)),T.freeze())}},set(x,T,f){Zi("[Slide] freezer: add",x,ml(this.queue)),this.map.set(x,T),this.boxes.set(x,f),this.queue.includes(x)||this.queue.unshift(x),this.validateQueue()},delete(x){this.map.delete(x),this.boxes.delete(x),this.queue=this.queue.filter(T=>T!==x),Zi("[Slide] freezer: delete",x,ml(this.queue))},focus(x){const T=this.map.get(x),f=this.queue.indexOf(x);f>-1&&this.queue.splice(f,1),this.queue.unshift(x),this.validateQueue(),Zi("[Slide] freezer: focus",x,ml(this.queue)),T&&T.unfreeze()}},wd=new Set;function LA(x){return wd.add(x),()=>wd.delete(x)}const Td=new Set;function NA(x){return Td.add(x),()=>Td.delete(x)}const DA=x=>{exports.useFreezer=!0,x.on("focus",({appId:T})=>{yl.focus(T)}),x.on("created",({appId:T})=>{wd.forEach(f=>f(T))}),x.on("destroy",({appId:T})=>{Td.forEach(f=>f(T))})};var fy=`.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))}
|
|
8074
|
-
`;function FA({container:x,taskId:T,resourceList:f=[],url:M=Ed,debug:w=!1}){if(!T)throw new Error("[Slide] taskId is required");x.style.cssText+="display:flex;flex-direction:column";const A=new my({target:x});return A.debug=!!w,A.mount(T,M,f),A}class my{constructor(T){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new ga,this.ready=!1,this.readyPromise=new Promise(f=>{this.resolveReady=()=>{this.ready=!0,f()}}),this.hotkeyListener=f=>{if(this.slide)switch(f.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}},this.onPageChanged=f=>{this.viewer.setPageIndex(f-1)},this.onTransitionStart=()=>{this.viewer.setPlaying()},this.onTransitionEnd=()=>{this.viewer.setPaused()},this.onError=({error:f})=>{this.viewer.setPaused(),console.warn("[Slide] render error",f)},this.destroyed=!1,this.refreshPages=()=>{this.slide&&(this.viewer.pages=Iv(this.slide,this.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slide.slideState.currentSlideIndex)))},this.onPlay=()=>{this.slide&&this.slide.nextStep()},this.onNewPageIndex=f=>{this.slide&&this.slide.slideCount>0&&this.slide.renderSlide(Tv(f+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=T.target,this.bgColor=Rv(this.target),this.viewer=new Bd({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,f,M,w=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new fn.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,f),this.slide.renderSlide(1),this.previewList=w}renderStyle(){const T=document.createElement("style");return T.appendChild(document.createTextNode(fy)),T}registerEventListeners(){if(!this.slide)return;const{slide:T}=this;T.on(fn.SLIDE_EVENTS.slideChange,this.onPageChanged),T.on(fn.SLIDE_EVENTS.renderStart,this.onTransitionStart),T.on(fn.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),T.on(fn.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),T.on(fn.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),T.on(fn.SLIDE_EVENTS.renderError,this.onError),T.on(fn.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 BA=fn.Slide.usePlugin.bind(fn.Slide),Sd="0.2.
|
|
8074
|
+
`;function FA({container:x,taskId:T,resourceList:f=[],url:M=Ed,debug:w=!1}){if(!T)throw new Error("[Slide] taskId is required");x.style.cssText+="display:flex;flex-direction:column";const A=new my({target:x});return A.debug=!!w,A.mount(T,M,f),A}class my{constructor(T){this.slide=null,this.debug=!1,this.previewList=[],this.sideEffect=new ga,this.ready=!1,this.readyPromise=new Promise(f=>{this.resolveReady=()=>{this.ready=!0,f()}}),this.hotkeyListener=f=>{if(this.slide)switch(f.key){case"ArrowUp":case"ArrowLeft":{this.slide.prevStep();break}case"ArrowRight":case"ArrowDown":{this.slide.nextStep();break}}},this.onPageChanged=f=>{this.viewer.setPageIndex(f-1)},this.onTransitionStart=()=>{this.viewer.setPlaying()},this.onTransitionEnd=()=>{this.viewer.setPaused()},this.onError=({error:f})=>{this.viewer.setPaused(),console.warn("[Slide] render error",f)},this.destroyed=!1,this.refreshPages=()=>{this.slide&&(this.viewer.pages=Iv(this.slide,this.previewList),this.viewer.setPageIndex(this.getPageIndex(this.slide.slideState.currentSlideIndex)))},this.onPlay=()=>{this.slide&&this.slide.nextStep()},this.onNewPageIndex=f=>{this.slide&&this.slide.slideCount>0&&this.slide.renderSlide(Tv(f+1,1,this.slide.slideCount))},this.namespace="netless-app-slide",this.target=T.target,this.bgColor=Rv(this.target),this.viewer=new Bd({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,f,M,w=[]){this.target.appendChild(this.renderStyle()),this.target.appendChild(this.viewer.$content),this.target.appendChild(this.viewer.$footer),this.slide=new fn.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,f),this.slide.renderSlide(1),this.previewList=w}renderStyle(){const T=document.createElement("style");return T.appendChild(document.createTextNode(fy)),T}registerEventListeners(){if(!this.slide)return;const{slide:T}=this;T.on(fn.SLIDE_EVENTS.slideChange,this.onPageChanged),T.on(fn.SLIDE_EVENTS.renderStart,this.onTransitionStart),T.on(fn.SLIDE_EVENTS.renderEnd,this.onTransitionEnd),T.on(fn.SLIDE_EVENTS.mainSeqStepStart,this.onTransitionStart),T.on(fn.SLIDE_EVENTS.mainSeqStepEnd,this.onTransitionEnd),T.on(fn.SLIDE_EVENTS.renderError,this.onError),T.on(fn.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 BA=fn.Slide.usePlugin.bind(fn.Slide),Sd="0.2.106-beta.0",kA=5e3,As={kind:"Slide",setup(x){var z,Z,V,Mt,Ht,st;if(console.log("[Slide] setup @ "+Sd),x.getIsWritable()&&x.storage.ensureState(_d),!x.storage.state.taskId)throw new Error("[Slide] no taskId");const T=x.getView();if(!T)throw new Error("[Slide] no view, please set scenePath on addApp()");T.disableCameraTransform=!0;const f=x.getBox();f.mountStyles(fy);try{f.$content.dataset.appSlideVersion=Sd}catch{}const M=x.getInitScenePath();let w=null,A,L=!1;const B=U=>{const F=x.getRoom();if(w&&w.slideController){let lt=!1;F&&x.getIsWritable()&&(yd(F,x,w.slideController.slide,M),lt=!0),Zi("[Slide] page to",U,lt?"(synced)":""),w.viewer.setPageIndex(U-1),w.viewer.setPaused(),w.onPageChanged();const Q=w.viewer.pages.length;Q>0&&x.dispatchAppEvent("pageStateChange",{index:U-1,length:Q})}},G=U=>{const F=x.getAppOptions()||{},lt=new Ov({context:x,...U,onPageChanged:B,onNavigate:U.onNavigate,onRenderError:(Q,vt)=>{var It;L=!0,(It=F.onRenderError)==null||It.call(F,Q,vt)},showRenderError:F.showRenderError,invisibleBehavior:F.invisibleBehavior});return A=lt,exports.useFreezer&&yl.set(x.appId,lt,f),Ur.setAppController(x.appId,lt),lt.readyPromise.then(U.onReady).then(()=>{if(bt)return;const Q=x.getRoom();let vt=!1;Q&&x.getIsWritable()&&(yd(Q,x,lt.slide,M),vt=!0);const It=lt.slide.slideState.currentSlideIndex;Zi("[Slide] page to",It,vt?"(synced)":"","(on ready)"),lt.slide.on("renderEnd",U.onRenderEnd)}),lt};w=new py({context:x,box:f,view:T,mountSlideController:G,mountWhiteboard:x.mountView.bind(x),baseScenePath:M,appId:x.appId,urlInterrupter:(z=x.getAppOptions())==null?void 0:z.urlInterrupter,enableScale:(V=(Z=x.getAppOptions())==null?void 0:Z.enableScale)!=null?V:!1,onPagesReady:({length:U})=>{const F=(w==null?void 0:w.viewer.pageIndex)||0;x.dispatchAppEvent("pageStateChange",{index:F,length:U})},onNavigate:(U,F)=>{Zi("[Slide] user navigate to",U,F?`(${F})`:"")}});const W=x.getAppOptions();w.setSyncEventQueuePolicy((Mt=W==null?void 0:W.syncEventQueuePolicy)!=null?Mt:"fifo"),w.setJustSildeReadonly((Ht=W==null?void 0:W.justSildeReadonly)!=null?Ht:!1);const K=x.getRoom(),et=new ga;et.add(()=>{var U;return Ur.setAppContext(x.appId,x),Ur.enable=((U=x.getAppOptions())==null?void 0:U.debug)||!1,Ur.level="debug",()=>Ur.deleteApp(x.appId)}),K&&(w.toggleClickThrough(K.state.memberState.currentApplianceName),et.add(()=>{const U=F=>{F.memberState&&w&&w.toggleClickThrough(F.memberState.currentApplianceName)};return K.callbacks.on("onRoomStateChanged",U),()=>K.callbacks.off("onRoomStateChanged",U)}));const at=()=>{var U;return((U=x.getWindowManager())==null?void 0:U.lazySetupInMaximizedMode)===!0},wt=()=>{var lt;const U=x.getBoxStatus();if(U)return U!=="normal";const F=(lt=x.getWindowManager())==null?void 0:lt.boxState;return F!=null&&F!=="normal"};et.add(()=>x.emitter.on("focus",U=>{if(bt||!at())return;const F=w==null?void 0:w.slideController;if(!!F){if(!U){if(!wt())return;F.isFrozen||(Zi("[Slide] blur freeze",x.appId),F.freeze());return}exports.useFreezer?yl.focus(x.appId):F.isFrozen&&(Zi("[Slide] focus unfreeze",x.appId),F.unfreeze())}}));let bt=!1,D;const P=()=>{if(bt)return;bt=!0;const U=D;D=void 0,U==null||U(),Zi("[Slide] destroy",x.appId),exports.useFreezer&&yl.delete(x.appId),et.flushAll(),w&&(w.destroy(),w=null)};D=x.emitter.on("destroy",P),w.mount(),As.__teardownByContext||(As.__teardownByContext=new WeakMap),As.__teardownByContext.set(x,P);const k=U=>new Promise(F=>{let lt=!1;const Q=$=>{lt||(lt=!0,window.clearTimeout(vt),window.clearInterval(It),F($))},vt=window.setTimeout(()=>Q(!1),U);A==null||A.readyPromise.then(()=>Q(!L),()=>Q(!1));const It=window.setInterval(()=>{(bt||L)&&Q(!1)},100)}),X={onPptMediaPermissionRequest:U=>{var lt,Q;const F=(lt=w==null?void 0:w.slideController)==null?void 0:lt.slide;return(Q=F==null?void 0:F.onPptMediaPermissionRequest(U))!=null?Q:()=>{}},playPptMedia:()=>{var U;(U=w==null?void 0:w.slideController)==null||U.slide.playPptMedia()},onScaleChanged:U=>w?w.resizableContainer.addScaleChangedListener(U):()=>{},scaleView:U=>{const F=Number(U);if(!Number.isFinite(F)||F<=0)return;const lt=w==null?void 0:w.resizableContainer;!lt||Math.abs(lt.getScale()-F)<.001||(x.storage.setState({slideScale:F,translateX:.5,translateY:.5}),lt.handleNormalizeTranslate(.5,.5,{triggerScrollBar:!0,triggerSync:!1}),lt.scaleContainer(F))},getViewScale:()=>w==null?void 0:w.resizableContainer.getScale(),translateView:(U,F)=>{var lt,Q;if(w!=null&&w.resizableContainer){const vt=w.resizableContainer,It=x.getBox().$content.getBoundingClientRect(),$=vt.container.getBoundingClientRect(),ct=$.width-It.width,nt=$.height-It.height;if(ct>0||nt>0){const yt=(lt=vt.translateX)!=null?lt:.5,Tt=(Q=vt.translateY)!=null?Q:.5,Ut=ct>0?U/ct:0,zt=nt>0?F/nt:0,Yt=Math.max(0,Math.min(1,yt+Ut)),ot=Math.max(0,Math.min(1,Tt+zt));x.storage.setState({translateX:Yt,translateY:ot}),vt.handleNormalizeTranslate(Yt,ot,{triggerScrollBar:!0,triggerSync:!1})}}},setSildeReadonly:U=>{w==null||w.setJustSildeReadonly(U)},setSyncEventQueuePolicy:U=>{w==null||w.setSyncEventQueuePolicy(U)},viewer:()=>w,controller:()=>w==null?void 0:w.slideController,slide:()=>{var U;return(U=w==null?void 0:w.slideController)==null?void 0:U.slide},nextStep:()=>{var U;return w&&w.slideController?((U=w==null?void 0:w.slideController)==null||U.slide.nextStep(),!0):!1},prevStep:()=>{var U;return w&&w.slideController?((U=w==null?void 0:w.slideController)==null||U.slide.prevStep(),!0):!1},position:()=>{const U=w==null?void 0:w.slideController;if(U)return[U.page,U.pageCount]},nextPage:()=>{const U=w==null?void 0:w.slideController;if(U){const{page:F,pageCount:lt}=U;if(lt>0&&F<lt)return U.jumpToPage(F+1),!0}return!1},prevPage:()=>{const U=w==null?void 0:w.slideController;if(U){const{page:F,pageCount:lt}=U;if(lt>0&&F>1)return U.jumpToPage(F-1),!0}return!1},jumpToPage:U=>{const F=w==null?void 0:w.slideController;if(F){const{page:lt,pageCount:Q}=F;if(Q>0&<>0&<<=Q)return F.jumpToPage(U),!0}return!1}},O=(st=W==null?void 0:W.setupReadyTimeout)!=null?st:kA;return k(O).then(()=>{if(L)throw new Error("[Slide] first render failed before ready");return!bt&&!(A!=null&&A.ready)&&Zi("[Slide] setup ready wait timed out, slide keeps loading in background"),X})},teardown(x){var T,f,M;(f=(T=As.__teardownByContext)==null?void 0:T.get(x))==null||f(),(M=As.__teardownByContext)==null||M.delete(x)}};exports.DefaultUrl=Ed;exports.DocsViewer=Bd;exports.SideEffectManager=ga;exports.Slide=fn.Slide;exports.SlideController=Ov;exports.SlideControllerBase=Pv;exports.SlideDocsViewer=py;exports.SlidePreviewer=my;exports.addHooks=DA;exports.apps=yl;exports.default=As;exports.getFreezerLength=PA;exports.log=Zi;exports.logger=Ur;exports.onCreated=LA;exports.onDestroyed=NA;exports.previewSlide=FA;exports.setFreezerLength=OA;exports.syncSceneWithSlide=yd;exports.usePlugin=BA;exports.version=Sd;
|
|
8075
8075
|
//# sourceMappingURL=main.cjs.js.map
|