@netless/window-manager 1.0.0-canary.40 → 1.0.0-canary.43
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.cjs.js +8 -8
- package/dist/index.es.js +36 -21
- package/dist/index.umd.js +8 -8
- package/dist/src/index.d.ts +7 -6
- package/docs/mirgrate-to-1.0.md +34 -5
- package/package.json +2 -2
- package/pnpm-lock.yaml +4 -4
- package/src/index.ts +27 -14
package/dist/index.umd.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
var wp=Object.defineProperty,vp=Object.defineProperties;var xp=Object.getOwnPropertyDescriptors;var Zi=Object.getOwnPropertySymbols;var po=Object.prototype.hasOwnProperty,go=Object.prototype.propertyIsEnumerable;var uo=(E,X,oe)=>X in E?wp(E,X,{enumerable:!0,configurable:!0,writable:!0,value:oe}):E[X]=oe,
|
2
|
-
;return ${e}`)();return typeof i=="undefined"&&(i=window[e]),i},Eo=async(t,e,i)=>{const s=i||To+e;G.emit("loadApp",{kind:e,status:"start"});try{const r=await Po(t);if(!r||r.length===0){G.emit("loadApp",{kind:e,status:"failed",reason:"script is empty."});return}try{const a=Ir(r,s);return G.emit("loadApp",{kind:e,status:"success"}),a}catch(a){if(a.message.includes("Can only have one anonymous define call per script file")){const n=window.define;typeof n=="function"&&n.amd&&delete n.amd;const o=Ir(r,s);return G.emit("loadApp",{kind:e,status:"success"}),o}G.emit("loadApp",{kind:e,status:"failed",reason:a.message})}}catch(r){G.emit("loadApp",{kind:e,status:"failed",reason:r.message})}};async function zo(t,e){const{timeout:i=1e4}=e,s=new AbortController,r=setTimeout(()=>s.abort(),i),a=await fetch(t,pe(R({},e),{signal:s.signal,headers:{"content-type":"text/plain"}}));return clearTimeout(r),a}class Do{constructor(){this.kindEmitters=new Map,this.registered=new Map,this.appClassesCache=new Map,this.appClasses=new Map,this.syncRegisterApp=null,this.onSyncRegisterAppChange=e=>{this.register({kind:e.kind,src:e.src})}}setSyncRegisterApp(e){this.syncRegisterApp=e}async register(e){this.appClassesCache.delete(e.kind),this.registered.set(e.kind,e);const i=e.src;let s;if(typeof i=="string"?(s=async()=>{let r=await Eo(i,e.kind,e.name);if(r)return r.__esModule&&(r=r.default),r;throw new Error(`[WindowManager]: load remote script failed, ${i}`)},this.syncRegisterApp&&this.syncRegisterApp({kind:e.kind,src:i,name:e.name})):typeof i=="function"?s=i:s=async()=>i,this.appClasses.set(e.kind,async()=>{let r=this.appClassesCache.get(e.kind);return r||(r=s(),this.appClassesCache.set(e.kind,r)),r}),e.addHooks){const r=this.createKindEmitter(e.kind);r&&e.addHooks(r)}}unregister(e){this.appClasses.delete(e),this.appClassesCache.delete(e),this.registered.delete(e);const i=this.kindEmitters.get(e);i&&(i.clearListeners(),this.kindEmitters.delete(e))}async notifyApp(e,i,s){const r=this.kindEmitters.get(e);await(r==null?void 0:r.emit(i,s))}createKindEmitter(e){if(!this.kindEmitters.has(e)){const i=new Je.default;this.kindEmitters.set(e,i)}return this.kindEmitters.get(e)}}const ge=new Do,Lo=async t=>{var i,s;const e=await((i=ge.appClasses.get(t))==null?void 0:i());return e&&((s=e.config)==null?void 0:s.singleton)?t:`${t}-${fo.v4().replace("-","").slice(0,8)}`},ht=(t,e)=>{if(!t.didRelease&&t.focusScenePath!==e)return t.focusScenePath=e,t},_r=t=>{t.didRelease||t.release()},zt=(t,e)=>{if(t&&t.isWritable&&t.state.sceneState.scenePath!==e){const i=e==="/"?"":e;t.setScenePath(i)}},Vo=(t,e,i)=>{var s;if(t&&e){const a=(s=dt(t)[e])==null?void 0:s[i];if(a)return`${e}/${a.name}`}},qi=(t,e,i)=>{t&&t.scenePathType(e)!==S.ScenePathType.None&&t.removeScenes(e,i)},$o=(t,e)=>{z.once(t).then(e)};v.debounce((t,e)=>{t.emit("mainViewModeChange",e)},200);const jo=(t,e,i=0)=>{const s=dt(t)[e];if(!s)return;const r=s[i];if(!r)return;const a=r.name;return e===we?`/${a}`:`${e}/${a}`},dt=t=>t.entireScenes(),vt=(t,e,i,s)=>t==null?void 0:t.putScenes(e,i,s),Bo=t=>t.startsWith("/"),Ji=t=>{const e=t.split("/");e.pop();let i=e.join("/");return i===""&&(i="/"),i},Ro=t=>t.endsWith("/")?t.slice(0,-1):t,Ar=t=>{const e=t.split(".").map(i=>i.padStart(2,"0")).join("");return parseInt(e)},li=t=>new Promise(e=>setTimeout(e,t)),Oo=t=>t.split("").reduce((i,s)=>(s===we&&(i+=1),i),0)===1;class Uo{constructor(e){this.saveCamera=e,this.setRect=i=>{this.rect=i,this.remoteCamera&&this.remoteSize&&this.onRemoteUpdate(this.remoteCamera,this.remoteSize)},this.onRemoteUpdate=v.throttle((i,s)=>{if(this.remoteCamera=i,this.remoteSize=s,this.remoteSize&&this.rect){const a={scale:i.scale*ci(s,this.rect)};i.centerX!==null&&(a.centerX=i.centerX),i.centerY!==null&&(a.centerY=i.centerY),this.moveCamera(a)}},10)}setView(e){this.view=e}onRemoteSizeUpdate(e){var s;this.remoteSize=e;const i=!v.isEqual(v.pick(this.rect,["width","height"]),v.pick(e,["width","height"]));if(this.rect&&this.remoteCamera&&i){if(!this.view)return;const r=this.view.camera;(s=this.view)==null||s.moveCameraToContain({width:e.width,height:e.height,originX:r.centerX-e.width/2,originY:r.centerY-e.height/2})}}onLocalCameraUpdate(e){this.saveCamera(e),this.remoteCamera=e}moveCamera(e){var i;(i=this.view)==null||i.moveCamera(pe(R({},e),{animationMode:S.AnimationMode.Immediately}))}}const ci=(t,e)=>{const i=e.width/t.width,s=e.height/t.height;return Math.min(i,s)};class Ho{constructor(e){this.manager=e,this.displayer=this.manager.displayer,this.mainMagixEventListener=i=>{if(i.authorId!==this.displayer.observerId){const s=i.payload;switch(s.eventName){case Q.AppMove:{this.appMoveHandler(s.payload);break}case Q.AppResize:{this.appResizeHandler(s.payload);break}case Q.AppBoxStateChange:{this.boxStateChangeHandler(s.payload);break}case Q.SetMainViewScenePath:{this.setMainViewScenePathHandler(s.payload);break}case Q.CursorMove:{this.cursorMoveHandler(s.payload);break}case Q.RootDirRemoved:{this.rootDirRemovedHandler();break}case Q.Refresh:{this.refreshHandler();break}case Q.InitMainViewCamera:{this.initMainViewCameraHandler();break}case Q.SetAppFocusIndex:{this.setAppFocusViewIndexHandler(s.payload);break}case Q.InvokeAttributesUpdateCallback:{this.manager.attributesUpdateCallback(this.manager.attributes.apps);break}case Q.MoveCamera:{this.moveCameraHandler(s.payload);break}case Q.MoveCameraToContain:{this.moveCameraToContainHandler(s.payload);break}}}},this.appMoveHandler=i=>{var s;(s=this.boxManager)==null||s.moveBox(i)},this.appResizeHandler=i=>{var s,r;(s=this.boxManager)==null||s.resizeBox(Object.assign(i,{skipUpdate:!0})),(r=this.manager.room)==null||r.refreshViewSize()},this.boxStateChangeHandler=i=>{G.emit("boxStateChange",i)},this.setMainViewScenePathHandler=({nextScenePath:i})=>{ht(this.manager.mainView,i),G.emit("mainViewScenePathChange",i)},this.cursorMoveHandler=i=>{z.emit("cursorMove",i)},this.rootDirRemovedHandler=()=>{this.manager.createRootDirScenesCallback(),this.manager.mainViewProxy.rebind(),z.emit("rootDirRemoved")},this.refreshHandler=()=>{this.manager.windowManger._refresh()},this.initMainViewCameraHandler=()=>{this.manager.mainViewProxy.addCameraReaction()},this.setAppFocusViewIndexHandler=i=>{if(i.type==="main")this.manager.setSceneIndexWithoutSync(i.index);else if(i.type==="app"&&i.appID){const s=this.manager.appProxies.get(i.appID);s&&s.setSceneIndexWithoutSync(i.index)}},this.moveCameraHandler=i=>{var r;const s=i;if(i.scale){const a=this.manager.mainViewProxy.size$.value,n=(r=this.manager.boxManager)==null?void 0:r.stageRect;a&&n&&(s.scale=i.scale*ci(a,n))}this.manager.mainView.moveCamera(s)},this.moveCameraToContainHandler=i=>{this.manager.mainView.moveCameraToContain(i)}}get boxManager(){return this.manager.boxManager}addListeners(){this.displayer.addMagixEventListener(Yi,this.mainMagixEventListener)}removeListeners(){this.displayer.removeMagixEventListener(Yi,this.mainMagixEventListener)}}class kr extends Error{constructor(){super(...arguments);this.message="[WindowManager]: app duplicate exists and cannot be created again"}}class Fo extends Error{constructor(e){super(`[WindowManager]: app ${e} need register or provide src`)}}class me extends Error{constructor(){super(...arguments);this.message="[WindowManager]: AppManager must be initialized"}}class Tr extends Error{constructor(e){super(`[WindowManager]: white-web-sdk version must large than ${e}`)}}class Nr extends Error{constructor(){super(...arguments);this.message="[WindowManager]: kind must be a valid string"}}class Pr extends Error{constructor(){super(...arguments);this.message="[WindowManager]: box need created"}}class Er extends Error{constructor(){super(...arguments);this.message='[WindowManager]: ScenePath should start with "/"'}}class Xi extends Error{constructor(){super(...arguments);this.message="[WindowManager]: boxManager need initialize"}}class zr extends Error{constructor(){super(...arguments);this.message="[WindowManager]: room phase only Connected can be bindContainer"}}const Dr=t=>(e,i)=>{if(e!==void 0)if(S.listenUpdated){const s=r=>{r.map(n=>n.kind).includes(t)&&i()};return S.listenUpdated(e,s),i(),()=>S.unlistenUpdated(e,s)}else return S.reaction(()=>e,()=>{i()},{fireImmediately:!0})},Lr=(t,e,i)=>{let s=null;const r=S.reaction(t,()=>{s&&(s(),s=null);const a=t();v.isObject(a)?(s=()=>S.unlistenUpdated(a,e),S.listenUpdated(a,e)):i==null||i(a)},{fireImmediately:!0});return()=>{s==null||s(),r()}},Wo=Dr(S.UpdateEventKind.Removed);Dr(S.UpdateEventKind.Inserted);const Ki=Object.keys;function Vr(t){return Boolean(v.has(t,"__isRef"))}function Zo(t){return{k:ye.genUID(),v:t,__isRef:!0}}class Yo{constructor(){this.listeners=new Set}get length(){return this.listeners.size}dispatch(e){this.listeners.forEach(i=>i(e))}addListener(e){this.listeners.add(e)}removeListener(e){this.listeners.delete(e)}}const Te="_WM-STORAGE_";class $r{constructor(e,i,s){if(this._sideEffect=new ye.SideEffectManager,this._destroyed=!1,this._refMap=new WeakMap,this._lastValue=new Map,this.onStateChanged=new Yo,s&&!v.isObject(s))throw new Error(`Default state for Storage ${i} is not an object.`);this._context=e,this.id=i||null,this._state={};const r=this._getRawState(this._state);this._context.isWritable&&(this.id===null?e.isAddApp&&s&&this.setState(s):(r===this._state||!v.isObject(r))&&(v.get(this._context.getAttributes(),[Te])||this._context.updateAttributes([Te],{}),this._context.updateAttributes([Te,this.id],this._state),s&&this.setState(s))),Ki(r).forEach(a=>{if(!(this.id===null&&a===Te))try{const n=v.isObject(r[a])?JSON.parse(JSON.stringify(r[a])):r[a];Vr(n)?(this._state[a]=n.v,v.isObject(n.v)&&this._refMap.set(n.v,n)):this._state[a]=n}catch(n){console.error(n)}}),this._sideEffect.addDisposer(Lr(()=>this.id===null?e.getAttributes():v.get(e.getAttributes(),[Te,this.id]),this._updateProperties.bind(this),this.destroy.bind(this)))}get state(){return this._destroyed&&console.warn(`Accessing state on destroyed Storage "${this.id}"`),this._state}addStateChangedListener(e){return this.onStateChanged.addListener(e),()=>this.onStateChanged.removeListener(e)}ensureState(e){return this.setState(Ki(e).reduce((i,s)=>(v.has(this._state,s)||(i[s]=e[s]),i),{}))}setState(e){if(this._destroyed){console.error(new Error(`Cannot call setState on destroyed Storage "${this.id}".`));return}if(!this._context.isWritable){console.error(new Error(`Cannot setState on Storage "${this.id}" without writable access`),e);return}const i=Ki(e);i.length>0&&i.forEach(s=>{const r=e[s];if(r!==this._state[s])if(r===void 0)this._lastValue.set(s,this._state[s]),delete this._state[s],this._setRawState(s,r);else{this._lastValue.set(s,this._state[s]),this._state[s]=r;let a=r;if(v.isObject(r)){let n=this._refMap.get(r);n||(n=Zo(r),this._refMap.set(r,n)),a=n}this._setRawState(s,a)}})}emptyStorage(){if(!(v.size(this._state)<=0)){if(this._destroyed){console.error(new Error(`Cannot empty destroyed Storage "${this.id}".`));return}if(!this._context.isWritable){console.error(new Error(`Cannot empty Storage "${this.id}" without writable access.`));return}this.setState(v.mapValues(this._state,v.noop))}}deleteStorage(){if(this.id===null)throw new Error("Cannot delete main Storage");if(!this._context.isWritable){console.error(new Error(`Cannot delete Storage "${this.id}" without writable access.`));return}this.destroy(),this._context.updateAttributes([Te,this.id],void 0)}get destroyed(){return this._destroyed}destroy(){this._destroyed=!0,this._sideEffect.flushAll()}_getRawState(e){var i;return this.id===null?(i=this._context.getAttributes())!=null?i:e:v.get(this._context.getAttributes(),[Te,this.id],e)}_setRawState(e,i){if(this.id===null){if(e===Te)throw new Error(`Cannot set attribute internal filed "${Te}"`);return this._context.updateAttributes([e],i)}else return this._context.updateAttributes([Te,this.id,e],i)}_updateProperties(e){var i;if(this._destroyed){console.error(new Error(`Cannot call _updateProperties on destroyed Storage "${this.id}".`));return}if(e.length>0){const s={};for(let r=0;r<e.length;r++)try{const a=e[r],n=a.key;if(this.id===null&&n===Te)continue;const o=v.isObject(a.value)?JSON.parse(JSON.stringify(a.value)):a.value;let c;switch(this._lastValue.has(n)&&(c=this._lastValue.get(n),this._lastValue.delete(n)),a.kind){case 2:{v.has(this._state,n)&&(c=this._state[n],delete this._state[n]),s[n]={oldValue:c};break}default:{let l=o;if(Vr(o)){const{k:d,v:u}=o,p=this._state[n];v.isObject(p)&&((i=this._refMap.get(p))==null?void 0:i.k)===d?l=p:(l=u,v.isObject(u)&&this._refMap.set(u,o))}l!==this._state[n]&&(c=this._state[n],this._state[n]=l),s[n]={newValue:l,oldValue:c};break}}}catch(a){console.error(a)}this.onStateChanged.dispatch(s)}}}class Qo{constructor(e,i,s,r){this.view=e,this.appContext=i,this.appProxy=s,this.ensureSize=r,this.nextPage=async()=>{const l=this.pageState.index+1;return this.jumpPage(l)},this.prevPage=async()=>{const l=this.pageState.index-1;return this.jumpPage(l)},this.jumpPage=async l=>l<0||l>=this.pageState.length?(console.warn(`[WindowManager]: index ${l} out of range`),!1):(this.appProxy.setSceneIndex(l),!0),this.addPage=async l=>{const d=l==null?void 0:l.after,u=l==null?void 0:l.scene,p=this.appProxy.scenePath;if(!!p)if(d){const m=this.pageState.index+1;vt(this.appContext.room,p,[u||{}],m)}else vt(this.appContext.room,p,[u||{}])},this.removePage=async l=>{const d=l===void 0?this.pageState.index:l;return this.pageState.length===1?(console.warn("[WindowManager]: can not remove the last page"),!1):d<0||d>=this.pageState.length?(console.warn(`[WindowManager]: page index ${l} out of range`),!1):this.appProxy.removeSceneByIndex(d)};const a=new w.Val(s.pageState),n=new w.Val(s.size$.value),o=l=>v.pick(l,["centerX","centerY","scale"]),c=new w.Val(o(this.view.camera));this.baseRect$=n,this.pageState$=a,this.baseCamera$=c,this.appProxy.sideEffectManager.add(()=>[s.appEmitter.on("pageStateChange",l=>a.setValue(l)),s.camera$.subscribe(l=>{l&&c.setValue(o(l))}),s.size$.subscribe(l=>{l&&n.setValue(v.pick(l,["width","height"]))})]),e.disableCameraTransform=!0}get pageState(){return this.pageState$.value}moveCamera(e){this.appProxy.moveCamera(e)}setBaseRect(e){this.appProxy.updateSize(e.width,e.height)}}const Xe=(...t)=>{ue.debug&&console.log("[WindowManager]:",...t)},Go=(t,e)=>{const i=document.createElement("div");i.className="netless-window-manager-playground";const s=document.createElement("div");return s.className="netless-window-manager-main-view",e.appendChild(s),t.appendChild(i),{playground:i,mainViewElement:s}},qo=()=>{if(Ar(S.WhiteVersion)<Ar(vr))throw new Tr(vr)},jr=(t,e)=>{const i=t==null?void 0:t.state.roomMembers;return i==null?void 0:i.find(s=>{var r;return((r=s.payload)==null?void 0:r.uid)===e})},Br=t=>t.map(e=>{var i;return R({uid:((i=e.payload)==null?void 0:i.uid)||""},S.toJS(e))}),Rr=async t=>{try{return await t.createInvisiblePlugin(ue,{})}catch(e){if(e.message==='invisible plugin "WindowManager" exits')return await li(200),t.getInvisiblePlugin(ue.kind);Xe("createInvisiblePlugin failed",e)}};class Jo{constructor(e,i,s,r){this.manager=e,this.appId=i,this.appProxy=s,this.appOptions=r,this.mobxUtils={autorun:S.autorun,reaction:S.reaction,toJS:S.toJS},this.objectUtils={listenUpdated:S.listenUpdated,unlistenUpdated:S.unlistenUpdated,listenDisposed:S.listenDisposed,unlistenDisposed:S.unlistenDisposed},this.store=this.manager.store,this.isReplay=this.manager.isReplay,this.getAttributes=()=>this.appProxy.attributes,this.getScenes=()=>{const a=this.store.getAppAttributes(this.appId);return a!=null&&a.isDynamicPPT?this.appProxy.scenes:a==null?void 0:a.options.scenes},this.createWhiteBoardView=a=>{if(this.whiteBoardView)return this.whiteBoardView;let n=this.view;n||(n=this.appProxy.createAppDir()),a&&v.isBoolean(a.syncCamera)&&this.appProxy.syncCamera$.setValue(a.syncCamera);const o=document.createElement("div");return this._viewWrapper=o,o.className="window-manager-view-wrapper",this.box.$main.appendChild(o),n.divElement=o,this.appProxy.fireMemberStateChange(),this.isAddApp&&this.ensurePageSize(a==null?void 0:a.size),this.whiteBoardView=new Qo(n,this,this.appProxy,this.ensurePageSize),this.appProxy.sideEffectManager.add(()=>[this.box._stageRect$.subscribe(c=>{o.style.left=`${c.x}px`,o.style.top=`${c.y}px`,o.style.width=`${c.width}px`,o.style.height=`${c.height}px`}),()=>()=>{this.whiteBoardView=void 0}]),this.appProxy.whiteBoardViewCreated$.setValue(!0),this.whiteBoardView},this.ensurePageSize=a=>{var c;if(!v.isNumber(a)||!this.appProxy.scenePath||this.appProxy.pageState.length>=a)return;if(a<=0||a>=Sr)throw Error(`[WindowManager]: size ${a} muse be in range [1, ${Sr}]`);const n=a-this.appProxy.pageState.length,o=new Array(n).fill({});(c=this.room)==null||c.putScenes(this.appProxy.scenePath,o)},this.getInitScenePath=()=>this.appProxy.scenePath,this.setAttributes=a=>{this.manager.safeSetAttributes({[this.appId]:a})},this.updateAttributes=(a,n)=>{this.manager.attributes[this.appId]&&this.manager.safeUpdateAttributes([this.appId,...a],n)},this.setScenePath=async a=>{var n;!this.appProxy.box||(this.appProxy.setFullPath(a),(n=this.room)==null||n.setScenePath(a))},this.getAppOptions=()=>typeof this.appOptions=="function"?this.appOptions():this.appOptions,this.createStorage=(a,n)=>{const o=new $r(this,a,n);return this.emitter.on("destroy",()=>{o.destroy()}),o},this.dispatchMagixEvent=(...a)=>{var o;const n=`${this.appId}:${a[0]}`;return(o=this.manager.room)==null?void 0:o.dispatchMagixEvent(n,a[1])},this.addMagixEventListener=(a,n,o)=>{const c=`${this.appId}:${a}`;return this.manager.displayer.addMagixEventListener(c,n,o),()=>this.manager.displayer.removeMagixEventListener(c,n)},this.removeMagixEventListener=this.manager.displayer.removeMagixEventListener.bind(this.manager.displayer),this.emitter=s.appEmitter,this.isAddApp=s.isAddApp}get displayer(){return this.manager.displayer}get destroyed(){return this.appProxy.status==="destroyed"}get view(){return this.appProxy.view}get now(){if(this.isReplay){const e=this.displayer;return e.beginTimestamp+e.progressTime}else return this.displayer.calibrationTimestamp}get isWritable(){return this.manager.canOperate&&!this.destroyed}get box(){const e=this.appProxy.box$.value;if(e)return e;throw new Pr}get room(){return this.manager.room}get members(){return this.manager.members$.value}get currentMember(){const e=jr(this.room,this.manager.uid);if(!e)throw new Error(`Member ${this.manager.uid} not found.`);return R({uid:this.manager.uid},e)}get storage(){return this._storage||(this._storage=new $r(this)),this._storage}}class Xo{constructor(e){this.params=e,this.sceneNode=null,this.createSceneNode=r=>(this.scenePath=r,this.sceneNode&&this.sceneNode.dispose(),this.sceneNode=this.params.displayer.createScenesCallback(r,{onAddScene:this.onSceneChange,onRemoveScene:this.onSceneChange}),this.sceneNode),this.onSceneChange=()=>{this.params.notifyPageStateChange()};const{displayer:i,scenePath:s}=this.params;this.view=this.params.view,s&&(this.scenePath=s,this.sceneNode=i.createScenesCallback(s,{onAddScene:this.onSceneChange,onRemoveScene:this.onSceneChange}))}setView(e){this.view=e}getFullPath(e){var s;const i=(s=this.sceneNode)==null?void 0:s.scenes;if(this.scenePath&&i){const r=i[e];if(r)return`${this.scenePath}/${r}`}}toObject(){var e,i;return{index:((e=this.view)==null?void 0:e.focusSceneIndex)||0,length:((i=this.sceneNode)==null?void 0:i.scenes.length)||0}}destroy(){var e;(e=this.sceneNode)==null||e.dispose()}}class Or{constructor(e){this.context=e,this.sem=new ye.SideEffectManager,this.bindView=s=>{!s||(this.synchronizer.setView(s),this.sem.flush("view"),this.sem.add(()=>(s.callbacks.on("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice),()=>s.callbacks.off("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice)),"view"))},this.onCameraUpdatedByDevice=s=>{if(!!s&&this.context.size$.value&&this.context.stageRect$.value){const r=ci(this.context.size$.value,this.context.stageRect$.value),a=s.scale/r;this.synchronizer.onLocalCameraUpdate(pe(R({},s),{scale:a,id:this.context.uid}))}},this.synchronizer=new Uo(s=>{this.context.camera$.setValue(s,!0),!(this.context.viewMode$&&this.context.viewMode$.value===S.ViewMode.Freedom)&&this.context.storeCamera(s)}),this.bindView(this.context.view$.value),this.sem.add(()=>[this.context.view$.subscribe(s=>{const r=this.context.camera$.value;r&&this.context.size$.value&&(s==null||s.moveCamera({scale:1,animationMode:S.AnimationMode.Immediately}),this.synchronizer.onRemoteUpdate(r,this.context.size$.value)),this.bindView(s)}),this.context.camera$.subscribe((s,r)=>{const a=this.context.size$.value;s&&a&&!r&&this.synchronizer.onRemoteUpdate(s,a)}),this.context.size$.subscribe(s=>{s&&this.synchronizer.onRemoteSizeUpdate(s)}),this.context.stageRect$.subscribe(s=>{s&&this.synchronizer.setRect(s)})]);const i=w.combine([this.context.camera$,this.context.size$]);i.reaction(([s,r])=>{s&&r&&(this.synchronizer.onRemoteUpdate(s,r),i.destroy())})}destroy(){this.sem.flushAll()}}const He=new Je.default,es=(t,e)=>{let i=0;const s=e.length-1;return t===e.index?t===s?i=t-1:i=e.index+1:i=e.index,i};var te=(t=>(t.Apps="apps",t.Focus="focus",t.State="state",t.BoxState="boxState",t.MainViewCamera="mainViewCamera",t.MainViewSize="mainViewSize",t.Broadcaster="broadcaster",t.Cursors="cursors",t.Position="position",t.CursorState="cursorState",t.FullPath="fullPath",t.Registered="registered",t.Camera="camera",t.Size="size",t))(te||{});class Ko{constructor(e){this.context=e,this.setAppFocus=(i,s)=>{s?this.context.safeSetAttributes({focus:i}):this.context.safeSetAttributes({focus:void 0})}}setContext(e){this.context=e}get attributes(){return this.context.getAttributes()}apps(){return v.get(this.attributes,["apps"])}get focus(){return v.get(this.attributes,["focus"])}getAppAttributes(e){return v.get(this.apps(),[e])}getAppState(e){return v.get(this.apps(),[e,"state"])}getMaximized(){return v.get(this.attributes,["maximized"])}getMinimized(){return v.get(this.attributes,["minimized"])}setupAppAttributes(e,i,s){this.attributes.apps||this.context.safeSetAttributes({apps:{}});const a=["scenePath","title"];s||a.push("scenes");const n=v.pick(e.options,a),o={kind:e.kind,options:n,isDynamicPPT:s,setup:!1};typeof e.src=="string"&&(o.src=e.src),o.createdAt=Date.now(),this.context.safeUpdateAttributes(["apps",i],o),this.context.safeUpdateAttributes(["apps",i,"state"],{[ke.Size]:{},[ke.Position]:{},[ke.SceneIndex]:0})}updateAppState(e,i,s){v.get(this.attributes,["apps",e,"state"])&&this.context.safeUpdateAttributes(["apps",e,"state",i],s)}updateAppAttributes(e,i,s){this.context.safeUpdateAttributes(["apps",e,i],s)}cleanAppAttributes(e){this.context.safeUpdateAttributes(["apps",e],void 0),this.context.safeSetAttributes({[e]:void 0}),this.attributes.focus===e&&this.cleanFocus()}cleanFocus(){this.context.safeSetAttributes({focus:void 0})}getAppSceneIndex(e){var i;return(i=this.getAppState(e))==null?void 0:i[ke.SceneIndex]}getAppScenePath(e){var i,s;return(s=(i=this.getAppAttributes(e))==null?void 0:i.options)==null?void 0:s.scenePath}getMainViewScenePath(){return this.attributes._mainScenePath}getMainViewSceneIndex(){return this.attributes._mainSceneIndex}getBoxState(){return this.attributes.boxState}setMainViewScenePath(e){this.context.safeSetAttributes({_mainScenePath:e})}setMainViewSceneIndex(e){this.context.safeSetAttributes({_mainSceneIndex:e})}getMainViewCamera(){return v.get(this.attributes,["mainViewCamera"])}getMainViewSize(){return v.get(this.attributes,["mainViewSize"])}setMainViewCamera(e){this.context.safeSetAttributes({mainViewCamera:R({},e)})}setMainViewSize(e){this.context.safeSetAttributes({mainViewSize:R({},e)})}setMainViewCameraAndSize(e,i){this.context.safeSetAttributes({mainViewCamera:R({},e),mainViewSize:R({},i)})}updateCursor(e,i){v.get(this.attributes,["cursors"])||this.context.safeUpdateAttributes(["cursors"],{}),v.get(this.attributes,["cursors",e])||this.context.safeUpdateAttributes(["cursors",e],{}),this.context.safeUpdateAttributes(["cursors",e,"position"],i)}updateCursorState(e,i){v.get(this.attributes,["cursors",e])||this.context.safeUpdateAttributes(["cursors",e],{}),this.context.safeUpdateAttributes(["cursors",e,"cursorState"],i)}getCursorState(e){return v.get(this.attributes,["cursors",e,"cursorState"])}cleanCursor(e){this.context.safeUpdateAttributes(["cursors",e],void 0)}setMainViewFocusPath(e){const i=this.getMainViewScenePath();i&&ht(e,i)}}const el=new Ko({getAttributes:()=>{throw new Error("getAttributes not implemented")},safeSetAttributes:()=>{throw new Error("safeSetAttributes not implemented")},safeUpdateAttributes:()=>{throw new Error("safeUpdateAttributes not implemented")}});class ts{constructor(e,i,s,r){var a;this.params=e,this.manager=i,this.boxManager=this.manager.boxManager,this.appProxies=this.manager.appProxies,this.viewManager=this.manager.viewManager,this.store=this.manager.store,this.uid=this.manager.uid,this.status="normal",this.sideEffectManager=new ye.SideEffectManager,this.valManager=new w.ValManager,this.fullPath$=this.valManager.attach(new w.Val(void 0)),this.camera$=this.valManager.attach(new w.Val(void 0)),this.size$=this.valManager.attach(new w.Val(void 0)),this.box$=this.valManager.attach(new w.Val(void 0)),this.view$=this.valManager.attach(new w.Val(void 0)),this.syncCamera$=this.valManager.attach(new w.Val(!0)),this.whiteBoardViewCreated$=this.valManager.attach(new w.Val(!1)),this.fireMemberStateChange=()=>{this.manager.room&&this.onMemberStateChange(this.manager.room.state.memberState)},this.onMemberStateChange=n=>{var c,l;n.currentApplianceName==="clicker"?(c=this.appContext)!=null&&c._viewWrapper&&(this.appContext._viewWrapper.style.pointerEvents="none"):(l=this.appContext)!=null&&l._viewWrapper&&(this.appContext._viewWrapper.style.pointerEvents="auto")},this.computedInitialRect=n=>{var c;const o=(c=this.manager.boxManager)==null?void 0:c.stageRect;if(o){const{width:l,height:d}=o,u=n.height/n.width;return d<480?{width:480/u,height:480}:{width:l*.65,height:d*.65}}},this.getAppInitState=n=>{var m,g;const o=this.store.getAppState(n);if(!o)return;const c=this.store.focus,l=(m=this.attributes)==null?void 0:m.maximized,d=(g=this.attributes)==null?void 0:g.minimized;let u={maximized:l,minimized:d,id:n};const p=v.omitBy(o,v.isUndefined);return c===n&&(u=pe(R({},u),{focus:!0})),Object.assign(u,p)},this.appAttributesUpdateListener=n=>{this.sideEffectManager.add(()=>[this.manager.refresher.add(n,()=>S.autorun(()=>{const o=this.manager.attributes[n];o&&this.appEmitter.emit("attributesUpdate",o)})),this.manager.refresher.add(this.stateKey,()=>S.autorun(()=>{var c,l,d;const o=(c=this.appAttributes)==null?void 0:c.state;(o==null?void 0:o.zIndex)>0&&o.zIndex!==((l=this.box)==null?void 0:l.zIndex)&&((d=this.boxManager)==null||d.setZIndex(n,o.zIndex))})),this.manager.refresher.add(`${n}-fullPath`,()=>S.autorun(()=>{var c;const o=(c=this.appAttributes)==null?void 0:c.fullPath;this.setFocusScenePathHandler(o),this.fullPath$.value!==o&&(this.notifyPageStateChange(),this.fullPath$.setValue(o))}))])},this.setFocusScenePathHandler=v.debounce(n=>{var o;this.view&&n&&n!==((o=this.view)==null?void 0:o.focusScenePath)&&ht(this.view,n)},50),this.notifyPageStateChange=v.debounce(()=>{this.pageState&&this.appEmitter.emit("pageStateChange",this.pageState)},50),this.storeCamera=n=>{this.store.updateAppAttributes(this.id,te.Camera,n)},this.storeSize=n=>{this.store.updateAppAttributes(this.id,te.Size,n)},this.updateSize=(n,o)=>{const c={id:this.manager.uid,width:n,height:o};this.store.updateAppAttributes(this.id,te.Size,c),this.size$.setValue(c)},this.moveCamera=n=>{if(!this.camera$.value)return;const o=pe(R(R({},this.camera$.value),n),{id:this.uid});this.storeCamera(o),this.camera$.setValue(o)},this.addCameraReaction=()=>{this.sideEffectManager.add(()=>this.manager.refresher.add(`${this.id}-camera`,()=>S.reaction(()=>{var n;return(n=this.appAttributes)==null?void 0:n.camera},n=>{if(n){const o=S.toJS(n);v.isEqual(o,this.camera$.value)||this.camera$.setValue(o)}})),"camera")},this.addSizeReaction=()=>{this.sideEffectManager.add(()=>this.manager.refresher.add(`${this.id}-size`,()=>S.reaction(()=>{var n;return(n=this.appAttributes)==null?void 0:n.size},n=>{if(n){const o=S.toJS(n);v.isEqual(o,this.size$.value)||this.size$.setValue(o)}})),"size")},this.onFocus=()=>{this.setScenePath()},this.setupDone=()=>{this.store.updateAppAttributes(this.id,"setup",!0),this.manager.dispatchInternalEvent(Q.InvokeAttributesUpdateCallback)},this.kind=e.kind,this.id=s,this.appScenePath=`/${this.id}-app-dir`,this.stateKey=`${this.id}_state`,this.appProxies.set(this.id,this),this.appEmitter=new Je.default,this.appListener=this.makeAppEventListener(this.id),this.isAddApp=r,this.initScenes(),(a=this.params.options)!=null&&a.scenePath&&this.createView(),this.scenePath||(this.scenePath=this.appScenePath),this._pageState=new Xo({displayer:this.manager.displayer,scenePath:this.scenePath,view:this.view,notifyPageStateChange:this.notifyPageStateChange}),this.sideEffectManager.add(()=>()=>this._pageState.destroy()),this.camera$.setValue(S.toJS(this.appAttributes.camera)),this.size$.setValue(S.toJS(this.appAttributes.size)),this.addCameraReaction(),this.addSizeReaction(),this.sideEffectManager.add(()=>z.on("memberStateChange",this.onMemberStateChange)),this.sideEffectManager.add(()=>[this.syncCamera$.reaction(n=>{n||this.viewSync&&(this.viewSync.destroy(),this.viewSync=void 0,this.sideEffectManager.flush("camera"),this.sideEffectManager.flush("size"))}),this.whiteBoardViewCreated$.reaction(n=>{if(n&&this.box){if(!this.syncCamera$.value)return;w.combine([this.box$,this.view$]).subscribe(([o,c])=>{if(o&&c){if(this.camera$.value||(this.storeCamera({centerX:null,centerY:null,scale:1,id:this.uid}),this.camera$.setValue(S.toJS(this.appAttributes.camera))),!this.size$.value&&o.stageRect){const l=this.computedInitialRect(o.stageRect),d=(l==null?void 0:l.width)||o.stageRect.width,u=(l==null?void 0:l.height)||o.stageRect.height;this.storeSize({id:this.uid,width:d,height:u}),this.size$.setValue(S.toJS(this.appAttributes.size))}this.viewSync=new Or({uid:this.uid,view$:this.view$,camera$:this.camera$,size$:this.size$,stageRect$:o._stageRect$,storeCamera:this.storeCamera,storeSize:this.storeSize}),this.sideEffectManager.add(()=>()=>{var l;return(l=this.viewSync)==null?void 0:l.destroy()}),this.whiteBoardViewCreated$.destroy()}})}}),this.manager.members$.reaction(n=>{this.appEmitter.emit("roomMembersChange",n)})])}createAppDir(){const e=this.scenePath||this.appScenePath;this._pageState.createSceneNode(e)||(vt(this.manager.room,e,[{name:"1"}]),this._pageState.createSceneNode(e),this.setSceneIndex(0)),this.scenes=dt(this.manager.displayer)[e];const s=this.createView();return this._pageState.setView(s),s}initScenes(){var i;const e=this.params.options;e&&(this.scenePath=e.scenePath,((i=this.appAttributes)==null?void 0:i.isDynamicPPT)&&this.scenePath?this.scenes=dt(this.manager.displayer)[this.scenePath]:this.scenes=e.scenes)}get view(){return this.view$.value}get viewIndex(){var e;return(e=this.view)==null?void 0:e.focusSceneIndex}get isWritable(){var e;return this.manager.canOperate&&!((e=this.box)!=null&&e.readonly)}get attributes(){return this.manager.attributes[this.id]}get appAttributes(){return this.store.getAppAttributes(this.id)}getFullScenePath(){if(this.scenePath)return v.get(this.appAttributes,[te.FullPath])||this.getFullScenePathFromScenes()}getFullScenePathFromScenes(){const e=v.get(this.appAttributes,["state","SceneIndex"],0),i=Vo(this.manager.room,this.scenePath,e);return i&&this.setFullPath(i),i}setFullPath(e){this.store.updateAppAttributes(this.id,te.FullPath,e)}async baseInsertApp(e=!1){var a;const i=this.params;if(!i.kind)throw new Error("[WindowManager]: kind require");const s=await((a=ge.appClasses.get(i.kind))==null?void 0:a()),r=ge.registered.get(i.kind);if(s)await this.setupApp(this.id,e,s,i.options,r==null?void 0:r.appOptions);else throw new Error(`[WindowManager]: app load failed ${i.kind} ${i.src}`);return z.emit("updateManagerRect"),{appId:this.id,app:s}}get box(){return this.box$.value}async setupApp(e,i,s,r,a){var o;if(Xe("setupApp",e,s,r),!this.boxManager)throw new Xi;const n=new Jo(this.manager,e,this,a);this.appContext=n;try{z.once(`${e}${Q.WindowCreated}`).then(async()=>{var u;let d;i||(d=this.getAppInitState(e),(u=this.boxManager)==null||u.updateBoxState(d)),this.appEmitter.onAny(this.appListener),this.appAttributesUpdateListener(e),this.setViewFocusScenePath(),setTimeout(async()=>{const p=await s.setup(n);this.appResult=p,ge.notifyApp(this.kind,"created",{appId:e,result:p}),this.fixMobileSize(),this.isAddApp&&this.setupDone()},Mr)});const c=(o=this.boxManager)==null?void 0:o.createBox({appId:e,app:s,options:r,canOperate:this.manager.canOperate,smartPosition:this.isAddApp}),l=ge.registered.get(this.kind);l!=null&&l.contentStyles&&(c==null||c.mountUserStyles(l.contentStyles)),this.box$.setValue(c),this.isAddApp&&this.box&&(this.store.updateAppState(e,ke.ZIndex,this.box.zIndex),this.store.updateAppState(e,ke.Size,{width:this.box.intrinsicWidth,height:this.box.intrinsicHeight}),this.boxManager.focusBox({appId:e},!1))}catch(c){throw console.error(c),new Error(`[WindowManager]: app setup error: ${c.message}`)}}fixMobileSize(){var i,s;const e=(i=this.boxManager)==null?void 0:i.getBox(this.id);e&&(e.minimized||(s=this.boxManager)==null||s.resizeBox({appId:this.id,width:e.intrinsicWidth+.001,height:e.intrinsicHeight+.001,skipUpdate:!0}))}async onSeek(e){var s;this.appEmitter.emit("seek",e).catch(r=>{console.log(`[WindowManager]: emit seek error: ${r.message}`)});const i=this.getAppInitState(this.id);(s=this.boxManager)==null||s.updateBoxState(i)}async onReconnected(){var a;if(!Boolean(this.manager.attributes.apps[this.id])){await this.destroy(!0,!1,!0);return}this.appEmitter.emit("reconnected",void 0);const i=this.getAppInitState(this.id);await this.destroy(!0,!1,!0);const s=this.params;await new ts(s,this.manager,this.id,this.isAddApp).baseInsertApp(!0),(a=this.boxManager)==null||a.updateBoxState(i)}async onRemoveScene(e){if(this.scenePath&&e.startsWith(this.scenePath+"/")){let i=this.pageState.index,s=this._pageState.getFullPath(i);s||(i=0,s=this._pageState.getFullPath(i)),s&&this.setFullPath(s),this.setViewFocusScenePath(),this.view&&(this.view.focusSceneIndex=i)}}emitAppSceneStateChange(e){this.appEmitter.emit("sceneStateChange",e)}emitAppIsWritableChange(){this.appEmitter.emit("writableChange",this.isWritable)}makeAppEventListener(e){return(i,s)=>{var r,a,n,o;if(!!this.manager.canOperate)switch(i){case"setBoxSize":{(r=this.boxManager)==null||r.resizeBox({appId:e,width:s.width,height:s.height,skipUpdate:!1});break}case"setBoxMinSize":{(a=this.boxManager)==null||a.setBoxMinSize({appId:e,minWidth:s.minwidth,minHeight:s.minheight});break}case"setBoxTitle":{(n=this.boxManager)==null||n.setBoxTitle({appId:e,title:s.title});break}case yr.destroy:{if(this.status==="destroyed")return;this.destroy(!0,!1,!0,s==null?void 0:s.error),s!=null&&s.error&&console.error(s==null?void 0:s.error);break}case"focus":{(o=this.boxManager)==null||o.focusBox({appId:this.id}),He.emit("focus",{appId:this.id});break}}}}setScenePath(){if(!this.manager.canOperate)return;const e=this.getFullScenePath();this.manager.room&&e&&this.view&&zt(this.manager.room,e)}setViewFocusScenePath(){if(this.status==="destroyed")return;const e=this.getFullScenePath();return e&&this.view&&ht(this.view,e),e}createView(){const e=this.viewManager.createView(this.id);return this.view$.setValue(e),this.setViewFocusScenePath(),e}get pageState(){return this._pageState.toObject()}async removeSceneByIndex(e){const i=this._pageState.getFullPath(e);if(i&&this.pageState){const s=es(e,this.pageState);return this.setSceneIndexWithoutSync(s),this.manager.dispatchInternalEvent(Q.SetAppFocusIndex,{type:"app",appID:this.id,index:s}),setTimeout(()=>{qi(this.manager.room,i,e)},100),!0}else return!1}setSceneIndexWithoutSync(e){this.view&&(this.view.focusSceneIndex=e)}setSceneIndex(e){if(this.view){this.view.focusSceneIndex=e;const i=this._pageState.getFullPath(e);i&&(this.setFullPath(i),zt(this.manager.room,i))}}async destroy(e,i,s,r){var a;if(this.status!=="destroyed"){this.status="destroyed";try{await ge.notifyApp(this.kind,"destroy",{appId:this.id}),G.emit("appClose",{appId:this.id,kind:this.kind,error:r}),await this.appEmitter.emit("destroy",{error:r})}catch(n){console.error("[WindowManager]: notifyApp error",n.message,n.stack)}this.appEmitter.clearListeners(),this.sideEffectManager.flushAll(),z.emit(`destroy-${this.id}`,{error:r}),e&&((a=this.boxManager)==null||a.closeBox(this.id,s)),i&&(this.store.cleanAppAttributes(this.id),this.scenePath&&qi(this.manager.room,this.scenePath)),this.appProxies.delete(this.id),this.viewManager.destroyView(this.id),this.manager.appStatus.delete(this.id),this.valManager.destroy()}}close(){return this.destroy(!0,!0,!1)}}class tl{constructor(e){this.displayer=e,this.views=new Map}createView(e){const i=Ur(this.displayer);return this.views.set(e,i),i}getView(e){return this.views.get(e)}destroyView(e){const i=this.views.get(e);if(i){try{i.release()}catch{}this.views.delete(e)}}setViewScenePath(e,i){const s=this.views.get(e);s&&(s.focusScenePath=i)}destroy(){this.views.forEach(e=>{try{e.release()}catch{}}),this.views.clear()}}const Ur=t=>{const e=t.views.createView();return il(e),e},il=t=>{t.setCameraBound({maxContentMode:()=>10,minContentMode:()=>.1})};class sl{constructor(e){this.manager=e,this.started=!1,this.mainViewIsAddListener=!1,this.store=this.manager.store,this.sideEffectManager=new ye.SideEffectManager,this.camera$=new w.Val(void 0),this.size$=new w.Val(void 0),this.view$=new w.Val(void 0),this.createViewSync=()=>{var i;this.manager.boxManager&&!this.viewSync&&(this.viewSync=new Or({uid:this.manager.uid,view$:this.view$,camera$:this.camera$,size$:this.size$,stageRect$:(i=this.manager.boxManager)==null?void 0:i.stageRect$,viewMode$:this.manager.windowManger.viewMode$,storeCamera:this.storeCamera,storeSize:this.storeSize}))},this.startListenWritableChange=()=>{this.sideEffectManager.add(()=>z.on("writableChange",i=>{i&&this.ensureCameraAndSize()}))},this.addCameraReaction=()=>{this.manager.refresher.add(te.MainViewCamera,this.cameraReaction),this.manager.refresher.add(te.MainViewSize,this.sizeReaction)},this.storeCurrentCamera=()=>{const i=this.view.camera;this.storeCamera(R({id:this.manager.uid},i))},this.storeCurrentSize=()=>{var s;const i=(s=this.manager.boxManager)==null?void 0:s.stageRect;i&&this.storeSize({id:this.manager.uid,width:i.width,height:i.height})},this.storeCamera=i=>{this.store.setMainViewCamera(i)},this.storeSize=i=>{this.store.setMainViewSize(i)},this.cameraReaction=()=>S.reaction(()=>this.mainViewCamera,i=>{if(i){const s=S.toJS(i);v.isEqual(s,this.camera$.value)||this.camera$.setValue(s)}},{fireImmediately:!0}),this.sizeReaction=()=>S.reaction(()=>this.mainViewSize,i=>{if(i){const s=S.toJS(i);v.isEqual(s,this.size$.value)||this.size$.setValue(s)}},{fireImmediately:!0}),this.mainViewClickListener=()=>{this.mainViewClickHandler()},this.setMainViewSize=v.debounce(i=>{this.store.setMainViewSize(pe(R({},i),{id:this.manager.uid}))},50),this.onCameraOrSizeUpdated=()=>{G.emit("cameraStateChange",this.cameraState)},this.mainView=this.createMainView(),z.once("mainViewMounted").then(()=>{this.addMainViewListener(),this.start(),this.ensureCameraAndSize(),this.startListenWritableChange()}),this.sideEffectManager.add(()=>[z.on("startReconnect",()=>{_r(this.mainView)})]),this.createViewSync(),this.sideEffectManager.add(()=>z.on("focusedChange",({focused:i})=>{if(i===void 0){const s=this.store.getMainViewScenePath();s&&zt(this.manager.room,s)}})),this.camera$.reaction(i=>{i&&G.emit("baseCameraChange",i)}),this.size$.reaction(i=>{i&&G.emit("baseSizeChange",i)})}ensureCameraAndSize(){var e;if(!this.mainViewCamera||!this.mainViewSize){this.manager.dispatchInternalEvent(Q.InitMainViewCamera),this.storeCamera(R({id:this.manager.uid},this.view.camera));const i=(e=this.manager.boxManager)==null?void 0:e.stageRect;i&&!this.mainViewSize&&this.storeSize({id:this.manager.uid,width:i.width,height:i.height})}}get mainViewCamera(){return this.store.getMainViewCamera()}get mainViewSize(){return this.store.getMainViewSize()}get didRelease(){return v.get(this.view,["didRelease"])}start(){this.started||(this.addCameraListener(),this.addCameraReaction(),this.started=!0)}get view(){return this.mainView}get cameraState(){return R(R({},this.view.camera),this.view.size)}createMainView(){const e=Ur(this.manager.displayer),i=this.store.getMainViewScenePath();return i&&ht(e,i),this.view$.setValue(e),e}onReconnect(){if(this.didRelease)this.rebind();else{const e=this.store.getMainViewScenePath();this.setFocusScenePath(e)}}setFocusScenePath(e){if(e)return ht(this.view,e)}rebind(){const e=this.mainView.divElement,i=this.mainView.disableCameraTransform,s=R({},this.mainView.camera);this.stop(),_r(this.mainView),this.removeMainViewListener(),this.mainView=this.createMainView(),this.mainView.disableCameraTransform=i,this.mainView.divElement=e,this.mainView.moveCamera(pe(R({},s),{animationMode:S.AnimationMode.Immediately})),this.addMainViewListener(),this.start()}addMainViewListener(){this.mainViewIsAddListener||this.view.divElement&&(this.view.divElement.addEventListener("click",this.mainViewClickListener),this.view.divElement.addEventListener("touchend",this.mainViewClickListener),this.mainViewIsAddListener=!0)}removeMainViewListener(){this.view.divElement&&(this.view.divElement.removeEventListener("click",this.mainViewClickListener),this.view.divElement.removeEventListener("touchend",this.mainViewClickListener)),this.mainViewIsAddListener=!1}async mainViewClickHandler(){var e;!this.manager.canOperate||(this.store.cleanFocus(),(e=this.manager.boxManager)==null||e.blurAllBox())}addCameraListener(){this.view.callbacks.on("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.on("onSizeUpdated",this.onCameraOrSizeUpdated)}removeCameraListener(){this.view.callbacks.off("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.off("onSizeUpdated",this.onCameraOrSizeUpdated)}stop(){this.removeCameraListener(),this.manager.refresher.remove(te.MainViewCamera),this.manager.refresher.remove(te.MainViewSize),this.started=!1}destroy(){this.camera$.destroy(),this.size$.destroy(),this.view$.destroy(),this.removeMainViewListener(),this.stop(),this.sideEffectManager.flushAll()}}class rl{constructor(e){this.context=e,this.addRedoUndoListeners=i=>{if(i===void 0)this.addViewCallbacks(this.context.mainView(),this.onCanRedoStepsUpdate,this.onCanUndoStepsUpdate);else{const s=this.context.getAppProxy(i);s&&s.view&&this.addViewCallbacks(s.view,this.onCanRedoStepsUpdate,this.onCanUndoStepsUpdate)}},this.addViewCallbacks=(i,s,r)=>{s(i.canRedoSteps),r(i.canUndoSteps),i.callbacks.on("onCanRedoStepsUpdate",s),i.callbacks.on("onCanUndoStepsUpdate",r)},this.disposeViewCallbacks=i=>{i.callbacks.off("onCanRedoStepsUpdate",this.onCanRedoStepsUpdate),i.callbacks.off("onCanUndoStepsUpdate",this.onCanUndoStepsUpdate)},this.onCanRedoStepsUpdate=i=>{G.emit("canRedoStepsChange",i)},this.onCanUndoStepsUpdate=i=>{G.emit("canUndoStepsChange",i)},this.disposePrevFocusViewRedoUndoListeners=i=>{let s;if(i===void 0)s=this.context.mainView();else{const r=this.context.getAppProxy(i);r&&r.view&&(s=r.view)}s&&this.disposeViewCallbacks(s)},z.on("focusedChange",i=>{this.disposePrevFocusViewRedoUndoListeners(i.prev),setTimeout(()=>{this.addRedoUndoListeners(i.focused)},0)}),z.on("rootDirRemoved",()=>{this.disposePrevFocusViewRedoUndoListeners(e.focus()),this.addRedoUndoListeners(e.focus())}),this.addRedoUndoListeners(e.focus())}destroy(){this.disposePrevFocusViewRedoUndoListeners(this.context.focus())}}class al{constructor(e){this.windowManger=e,this.appProxies=new Map,this.appStatus=new Map,this.store=el,this.isReplay=this.windowManger.isReplay,this.mainViewScenesLength=0,this.callbacksNode=null,this.appCreateQueue=new xo,this.sceneIndex$=new w.Val(void 0),this.focused$=new w.Val(void 0),this.members$=new w.Val([]),this.sideEffectManager=new ye.SideEffectManager,this.sceneState=null,this.rootDirRemoving=!1,this.onRemoveScenes=async i=>{var r,a;const{scenePath:s}=i;if(s===we){await this.onRootDirRemoved(),this.dispatchInternalEvent(Q.RootDirRemoved);return}if(Oo(s)){let n=this.mainView.focusSceneIndex||0,o=(r=this.callbacksNode)==null?void 0:r.scenes[n];o||(n=0,o=(a=this.callbacksNode)==null?void 0:a.scenes[n]),o&&await this.setMainViewScenePath(`${we}${o}`),await this.setMainViewSceneIndex(n)}else this.appProxies.forEach(n=>{n.onRemoveScene(s)})},this.onReadonlyChanged=()=>{this.appProxies.forEach(i=>{i.emitAppIsWritableChange()})},this.onPlayerSeekStart=async()=>{await this.closeAll()},this.onPlayerSeekDone=async i=>{await this.attributesUpdateCallback(this.attributes.apps),this.appProxies.forEach(s=>{s.onSeek(i)})},this.createRootDirScenesCallback=()=>{let i=!1;this.callbacksNode&&(this.callbacksNode.dispose(),i=!0),this.callbacksNode=this.displayer.createScenesCallback(we,{onAddScene:this.onSceneChange,onRemoveScene:async(s,r)=>{await this.onSceneChange(s),z.emit("rootDirSceneRemoved",r)}}),this.callbacksNode&&(this.updateSceneState(this.callbacksNode),this.mainViewScenesLength=this.callbacksNode.scenes.length,i&&this.emitMainViewScenesChange(this.callbacksNode.scenes.length))},this.removeSceneByIndex=async i=>{var a;const s=es(i,this.windowManger.pageState);this.setSceneIndexWithoutSync(s),this.dispatchInternalEvent(Q.SetAppFocusIndex,{type:"main",index:s});const r=(a=this.callbacksNode)==null?void 0:a.scenes[i];return setTimeout(()=>{r&&qi(this.room,`${we}${r}`,i)},100),new Promise((n,o)=>{z.once("rootDirSceneRemoved").then(c=>{c===r&&n(!0)}).catch(c=>{console.log(`[WindowManager]: removePage error: ${c}`),o(!1)})})},this.setSceneIndexWithoutSync=i=>{var r;const s=(r=this.callbacksNode)==null?void 0:r.scenes[i];s&&this.mainViewProxy.setFocusScenePath(`${we}${s}`)},this.onSceneChange=i=>(this.mainViewScenesLength=i.scenes.length,this.updateSceneState(i),this.emitMainViewScenesChange(this.mainViewScenesLength)),this.emitMainViewScenesChange=i=>Promise.all([G.emit("mainViewScenesLengthChange",i),z.emit("changePageState")]),this.updateSceneState=i=>{const s=this.store.getMainViewSceneIndex()||0;let r=i.scenes[s];r||(r=i.scenes[this.mainView.focusSceneIndex||0]),this.sceneState={scenePath:`${we}${r}`,contextPath:i.path,index:s,scenes:i.scenes.map(a=>({name:a})),sceneName:r},G.emit("sceneStateChange",this.sceneState)},this.onBoxMove=i=>{this.dispatchInternalEvent(Q.AppMove,i),this.store.updateAppState(i.appId,ke.Position,{x:i.x,y:i.y})},this.onBoxResize=i=>{i.width&&i.height&&(this.dispatchInternalEvent(Q.AppResize,i),this.store.updateAppState(i.appId,ke.Size,{width:i.width,height:i.height}))},this.onBoxFocus=i=>{this.windowManger.safeSetAttributes({focus:i.appId})},this.onBoxClose=i=>{const s=this.appProxies.get(i.appId);s&&s.destroy(!1,!0,!0,i.error)},this.onBoxStateChange=i=>{this.dispatchInternalEvent(Q.AppBoxStateChange,i)},this.addAppsChangeListener=()=>{this.refresher.add("apps",()=>Lr(()=>this.attributes.apps,()=>{this.attributesUpdateCallback(this.attributes.apps)}))},this.addAppCloseListener=()=>{var i;(i=this.refresher)==null||i.add("appsClose",()=>Wo(this.attributes.apps,()=>{this.onAppDelete(this.attributes.apps)}))},this.onMainViewIndexChange=i=>{i!==void 0&&this.sceneIndex$.value!==i&&(G.emit("mainViewSceneIndexChange",i),z.emit("changePageState"),this.callbacksNode&&this.updateSceneState(this.callbacksNode),this.sceneIndex$.setValue(i))},this.onFocusChange=i=>{var s;this.focused$.value!==i&&(G.emit("focusedChange",i),z.emit("focusedChange",{focused:i,prev:this.focused$.value}),this.focused$.setValue(i),i!==void 0&&((s=this.boxManager)==null||s.focusBox({appId:i}),setTimeout(()=>{const r=this.appProxies.get(i);r&&(r.onFocus(),ge.notifyApp(r.kind,"focus",{appId:i}))},0)))},this.attributesUpdateCallback=v.debounce(i=>this._attributesUpdateCallback(i),100),this.onRegisteredChange=i=>{!i||Object.entries(i).forEach(([s,r])=>{ge.appClasses.has(s)||ge.register({kind:s,src:r.src,name:r.name})})},this.onMinimized=i=>{var s,r;((s=this.boxManager)==null?void 0:s.minimized)!==i&&(i===!0&&((r=this.boxManager)==null||r.blurAllBox()),setTimeout(()=>{var a;(a=this.boxManager)==null||a.setMinimized(Boolean(i))},0))},this.onAppDelete=async i=>{const s=Object.keys(i);for(const[r,a]of this.appProxies.entries())s.includes(r)||await a.destroy(!0,!1,!0)},this.closeAll=async()=>{for(const[i,s]of this.appProxies.entries())await s.destroy(!0,!1,!0)},this.displayerStateListener=i=>{const s=i.sceneState;if(s){const r=s.scenePath;this.appProxies.forEach(a=>{a.scenePath&&r.startsWith(a.scenePath)&&(a.emitAppSceneStateChange(s),a.setFullPath(r))})}this.appProxies.forEach(r=>{r.appEmitter.emit("roomStateChange",i)}),i.roomMembers&&this.members$.setValue(Br(i.roomMembers)),z.emit("observerIdChange",this.displayer.observerId),i.memberState&&z.emit("memberStateChange",S.toJS(i.memberState))},this.displayerWritableListener=i=>{var a,n;const s=!i,r=this.windowManger.readonly===void 0||!this.windowManger.readonly;this.windowManger.readonly===void 0?(a=this.boxManager)==null||a.setReadonly(i):(n=this.boxManager)==null||n.setReadonly(!(s&&r)),this.appProxies.forEach(o=>{o.emitAppIsWritableChange()}),s&&this.room&&this.room.disableSerialization===!0&&(this.room.disableSerialization=!1),z.emit("writableChange",s)},this.updateSceneIndex=()=>{const i=this.store.getMainViewScenePath(),s=Ji(i),r=dt(this.displayer)[s];if(r.length){const a=i.replace(s,"").replace("/",""),n=r.findIndex(o=>o.name===a);v.isInteger(n)&&n>=0&&this.safeSetAttributes({_mainSceneIndex:n})}},this.updateRootDirRemoving=i=>{this.rootDirRemoving=i},this.displayer=e.displayer,this.store.setContext({getAttributes:()=>this.attributes,safeSetAttributes:i=>this.safeSetAttributes(i),safeUpdateAttributes:(i,s)=>this.safeUpdateAttributes(i,s)}),this.mainViewProxy=new sl(this),this.viewManager=new tl(this.displayer),this.appListeners=new Ho(this),this.displayer.callbacks.on(this.eventName,this.displayerStateListener),this.appListeners.addListeners(),this.refresher=no,this.refresher.setRoom(this.room),this.refresher.setContext({emitter:z}),this.sideEffectManager.add(()=>()=>{var i,s,r;this.appCreateQueue.destroy(),this.mainViewProxy.destroy(),(i=this.refresher)==null||i.destroy(),this.viewManager.destroy(),(s=this.boxManager)==null||s.destroy(),(r=this.callbacksNode)==null||r.dispose()}),z.once("onCreated").then(()=>this.onCreated()),z.on("onReconnected",()=>this.onReconnected()),S.isPlayer(this.displayer)&&(z.on("seekStart",this.onPlayerSeekStart),z.on("seek",this.onPlayerSeekDone)),z.on("removeScenes",this.onRemoveScenes),z.on("setReadonly",this.onReadonlyChanged),this.createRootDirScenesCallback(),ge.setSyncRegisterApp(i=>{this.safeUpdateAttributes([te.Registered,i.kind],i)}),this.members$.setValue(Br(this.displayer.state.roomMembers))}async onRootDirRemoved(e=!0){await this.setMainViewScenePath(xr),this.createRootDirScenesCallback();for(const[i,s]of this.appProxies.entries())s.view&&await this.closeApp(i,e);this.mainViewProxy.rebind(),await z.emit("rootDirRemoved"),this.updateRootDirRemoving(!1)}get eventName(){return S.isRoom(this.displayer)?"onRoomStateChanged":"onPlayerStateChanged"}get attributes(){return this.windowManger.attributes}get canOperate(){return this.windowManger.canOperate}get room(){return S.isRoom(this.displayer)?this.displayer:void 0}get mainView(){return this.mainViewProxy.view}get focusApp(){if(this.store.focus)return this.appProxies.get(this.store.focus)}get uid(){var e;return((e=this.room)==null?void 0:e.uid)||""}getMainViewSceneDir(){const e=this.store.getMainViewScenePath();if(e)return Ji(e);throw new Error("[WindowManager]: mainViewSceneDir not found")}async onCreated(){var e;if(await this.attributesUpdateCallback(this.attributes.apps),z.emit("updateManagerRect"),He.on("move",this.onBoxMove),He.on("resize",this.onBoxResize),He.on("focus",this.onBoxFocus),He.on("close",this.onBoxClose),He.on("boxStateChange",this.onBoxStateChange),this.addAppsChangeListener(),this.addAppCloseListener(),this.refresher.add("maximized",()=>S.autorun(()=>{var s;const i=this.attributes.maximized;(s=this.boxManager)==null||s.setMaximized(Boolean(i))})),this.refresher.add("minimized",()=>S.autorun(()=>{const i=this.attributes.minimized;this.onMinimized(i)})),this.refresher.add("mainViewIndex",()=>S.autorun(()=>{const i=v.get(this.attributes,"_mainSceneIndex");this.onMainViewIndexChange(i)})),this.refresher.add("focusedChange",()=>S.autorun(()=>{const i=v.get(this.attributes,"focus");this.onFocusChange(i)})),this.refresher.add("registeredChange",()=>S.autorun(()=>{const i=v.get(this.attributes,te.Registered);this.onRegisteredChange(i)})),!this.attributes.apps||Object.keys(this.attributes.apps).length===0){const i=this.store.getMainViewScenePath();if(!i)return;this.resetScenePath(i)}this.displayerWritableListener(!((e=this.room)!=null&&e.isWritable)),this.displayer.callbacks.on("onEnableWriteNowChanged",this.displayerWritableListener),this.focused$.setValue(this.attributes.focus),this.sideEffectManager.add(()=>{const i=new rl({mainView:()=>this.mainViewProxy.view,focus:()=>this.attributes.focus,getAppProxy:s=>this.appProxies.get(s)});return()=>i.destroy()})}async _attributesUpdateCallback(e){if(e&&ue.container){const i=Object.keys(e);i.length===0&&this.appCreateQueue.emitReady();let s=i.map(r=>e[r].setup?{id:r,createdAt:e[r].createdAt}:{});this.isReplay&&(s=i.map(r=>({id:r,createdAt:e[r].createdAt})));for(const{id:r}of v.orderBy(s,"createdAt","asc"))if(r&&!this.appProxies.has(r)&&!this.appStatus.has(r)){const a=e[r];try{if(!this.attributes[r])throw new Error("appAttributes is undefined");this.appCreateQueue.push(()=>(this.appStatus.set(r,Gi.StartCreate),this.baseInsertApp({kind:a.kind,options:a.options,isDynamicPPT:a.isDynamicPPT},r,!1))),this.focusByAttributes(e)}catch(n){console.warn("[WindowManager]: Insert App Error",n)}}}}refresh(){this.attributesUpdateCallback(this.attributes.apps)}setBoxManager(e){this.boxManager=e,this.mainViewProxy.createViewSync()}resetMaximized(){var e;(e=this.boxManager)==null||e.setMaximized(Boolean(this.store.getMaximized()))}resetMinimized(){var e;(e=this.boxManager)==null||e.setMinimized(Boolean(this.store.getMinimized()))}bindMainView(e,i){const s=this.mainViewProxy.view;s.disableCameraTransform=i,li(30).then(()=>{s.divElement=e,z.emit("mainViewMounted")}),s.focusScenePath||this.setMainViewFocusPath()}setMainViewFocusPath(e){var s;const i=e||this.store.getMainViewScenePath();if(i)return ht(this.mainView,i),((s=this.mainView)==null?void 0:s.focusScenePath)===i}resetScenePath(e){this.displayer.state.sceneState.scenePath!==e&&zt(this.room,e)}async addApp(e,i){Xe("addApp",e);const{appId:s,needFocus:r}=await this.beforeAddApp(e,i),a=await this.baseInsertApp(e,s,!0,r);return this.afterAddApp(a),a==null?void 0:a.id}async beforeAddApp(e,i){var n,o;const s=await Lo(e.kind);this.appStatus.set(s,Gi.StartCreate);const r=(n=e.attributes)!=null?n:{};this.safeUpdateAttributes([s],r),this.store.setupAppAttributes(e,s,i);const a=!((o=this.boxManager)!=null&&o.minimized);return a&&this.store.setAppFocus(s,!0),{appId:s,needFocus:a}}afterAddApp(e){var i,s;if(e&&e.box){const r=e.box;He.emit("move",{appId:e.id,x:r==null?void 0:r.intrinsicX,y:r==null?void 0:r.intrinsicY}),this.store.updateAppState(e.id,ke.ZIndex,r.zIndex)}(i=this.boxManager)!=null&&i.minimized&&((s=this.boxManager)==null||s.setMinimized(!1,!1))}async closeApp(e,i=!0){const s=this.appProxies.get(e);s&&s.destroy(!0,i,!1)}async baseInsertApp(e,i,s,r){if(this.appProxies.has(i)){console.warn("[WindowManager]: app duplicate exists and cannot be created again");return}const a=new ts(e,this,i,s);if(a)return await a.baseInsertApp(r),this.appStatus.delete(i),a;throw this.appStatus.delete(i),new Error("[WindowManger]: initialize AppProxy failed")}safeSetAttributes(e){this.windowManger.safeSetAttributes(e)}safeUpdateAttributes(e,i){this.windowManger.safeUpdateAttributes(e,i)}async setMainViewScenePath(e){if(this.room){const i=this.displayer.scenePathType(e);if(Ji(e)!==we)throw new Error('[WindowManager]: main view scenePath must in root dir "/"');if(i===S.ScenePathType.None)throw new Error(`[WindowManager]: ${e} not valid scene`);if(i===S.ScenePathType.Page)await this._setMainViewScenePath(e);else if(i===S.ScenePathType.Dir){const r=jo(this.displayer,e);r&&await this._setMainViewScenePath(r)}}}async _setMainViewScenePath(e){this.setMainViewFocusPath(e)&&(this.safeSetAttributes({_mainScenePath:e}),this.store.setMainViewFocusPath(this.mainView),this.updateSceneIndex(),this.dispatchSetMainViewScenePath(e))}async setMainViewSceneIndex(e){var i;if(this.room){if(this.store.getMainViewSceneIndex()===e)return;const s=(i=this.callbacksNode)==null?void 0:i.scenes[e],r=`${we}${s}`;if(s)this.setMainViewFocusPath(r)&&(this.store.setMainViewScenePath(r),this.safeSetAttributes({_mainSceneIndex:e}),this.dispatchSetMainViewScenePath(r));else throw new Error(`[WindowManager]: ${e} not valid index`)}}dispatchSetMainViewScenePath(e){this.dispatchInternalEvent(Q.SetMainViewScenePath,{nextScenePath:e}),zt(this.room,e)}getAppInitPath(e){var s;const i=this.store.getAppAttributes(e);if(i)return(s=i==null?void 0:i.options)==null?void 0:s.scenePath}safeDispatchMagixEvent(e,i){this.canOperate&&this.displayer.dispatchMagixEvent(e,i)}focusByAttributes(e){var i;if(e&&Object.keys(e).length===((i=this.boxManager)==null?void 0:i.boxSize)){const s=this.store.focus;s&&this.boxManager.focusBox({appId:s})}}async onReconnected(){this.attributesUpdateCallback(this.attributes.apps);const i=Array.from(this.appProxies.values()).map(s=>s.onReconnected());this.mainViewProxy.onReconnect(),await Promise.all(i)}notifyContainerRectUpdate(e){this.appProxies.forEach(i=>{i.appEmitter.emit("containerRectUpdate",e)})}dispatchInternalEvent(e,i){this.safeDispatchMagixEvent(Yi,{eventName:e,payload:i})}destroy(){this.displayer.callbacks.off(this.eventName,this.displayerStateListener),this.displayer.callbacks.off("onEnableWriteNowChanged",this.displayerWritableListener),this.appListeners.removeListeners(),He.clearListeners(),z.clearListeners(),this.appProxies.size&&this.appProxies.forEach(e=>{e.destroy(!0,!1,!0)}),G.clearListeners(),this.sideEffectManager.flushAll(),this.sceneIndex$.destroy(),this.focused$.destroy(),this.members$.destroy()}}/*! *****************************************************************************
|
1
|
+
var wp=Object.defineProperty,vp=Object.defineProperties;var xp=Object.getOwnPropertyDescriptors;var Zi=Object.getOwnPropertySymbols;var po=Object.prototype.hasOwnProperty,go=Object.prototype.propertyIsEnumerable;var uo=(E,X,oe)=>X in E?wp(E,X,{enumerable:!0,configurable:!0,writable:!0,value:oe}):E[X]=oe,O=(E,X)=>{for(var oe in X||(X={}))po.call(X,oe)&&uo(E,oe,X[oe]);if(Zi)for(var oe of Zi(X))go.call(X,oe)&&uo(E,oe,X[oe]);return E},ge=(E,X)=>vp(E,xp(X));var mo=(E,X)=>{var oe={};for(var v in E)po.call(E,v)&&X.indexOf(v)<0&&(oe[v]=E[v]);if(E!=null&&Zi)for(var v of Zi(E))X.indexOf(v)<0&&go.call(E,v)&&(oe[v]=E[v]);return oe};(function(E,X){typeof exports=="object"&&typeof module!="undefined"?X(exports,require("p-retry"),require("emittery"),require("lodash"),require("white-web-sdk"),require("uuid"),require("side-effect-manager"),require("value-enhancer"),require("@juggle/resize-observer")):typeof define=="function"&&define.amd?define(["exports","p-retry","emittery","lodash","white-web-sdk","uuid","side-effect-manager","value-enhancer","@juggle/resize-observer"],X):(E=typeof globalThis!="undefined"?globalThis:E||self,X(E.WindowManager={},E.pRetry,E.Emittery,E.lodash,E.whiteWebSdk,E.uuid,E.sideEffectManager,E.valueEnhancer,E.resizeObserver))})(this,function(E,X,oe,v,S,fo,ve,w,br){"use strict";function yr(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var bo=yr(X),Je=yr(oe),Q=(t=>(t.AppMove="AppMove",t.AppFocus="AppFocus",t.AppResize="AppResize",t.AppBoxStateChange="AppBoxStateChange",t.GetAttributes="GetAttributes",t.UpdateWindowManagerWrapper="UpdateWindowManagerWrapper",t.WindowCreated="WindowCreated",t.SetMainViewScenePath="SetMainViewScenePath",t.SetMainViewSceneIndex="SetMainViewSceneIndex",t.SetAppFocusIndex="SetAppFocusIndex",t.SwitchViewsToFreedom="SwitchViewsToFreedom",t.CursorMove="CursorMove",t.RootDirRemoved="RootDirRemoved",t.Refresh="Refresh",t.InitMainViewCamera="InitMainViewCamera",t.InvokeAttributesUpdateCallback="InvokeAttributesUpdateCallback",t.MoveCamera="MoveCamera",t.MoveCameraToContain="moveCameraToContain",t))(Q||{});const Yi="__WindowManger",Qi="__WindowMangerEnsureReconnected__";var Ne=(t=>(t.Size="size",t.Position="position",t.SceneIndex="SceneIndex",t.ZIndex="zIndex",t.Visible="visible",t.Ratio="ratio",t.StageRatio="stageRatio",t.Draggable="draggable",t.Resizable="resizable",t))(Ne||{}),wr=(t=>(t.setBoxSize="setBoxSize",t.setBoxMinSize="setBoxMinSize",t.destroy="destroy",t))(wr||{}),Gi=(t=>(t.StartCreate="StartCreate",t))(Gi||{}),vr=(t=>(t.Leave="leave",t.Normal="normal",t))(vr||{});const xr="2.16.1",yo=340/720,wo=340/720,vo=9/16,xe="/",Mr="/init",Sr=50,Cr=500,G=new Je.default;class xo{constructor(){this.list=[],this.isEmit=!1,this.invoked=()=>{this.currentInvoker=void 0,this.list.length===0&&(this.clear(),this.emitReady())},this.clear=()=>{clearInterval(this.timer),this.timer=void 0}}initInterval(){return setInterval(()=>{this.invoke()},50)}push(e){this.list.push(e),this.invoke(),this.timer===void 0&&this.list.length>0&&(this.timer=this.initInterval())}invoke(){if(this.list.length===0||this.currentInvoker!==void 0)return;const e=this.list.shift();e&&(this.currentInvoker=e,e().then(()=>{this.invoked()}).catch(i=>{console.error(`[WindowManager]: create app error: ${i.message}`),this.invoked()}))}emitReady(){this.isEmit||setTimeout(()=>{G.emit("ready")},Sr),this.isEmit=!0}empty(){this.list=[],this.clear()}destroy(){this.timer&&this.clear()}}const z=new Je.default,Mo="__WindowManagerAppCache";let Et,Ir;const So=async()=>{Et=await _o()},Co=(t,e)=>{if(!!Et)return ko(Et,{kind:t,sourceCode:e})},Io=async t=>Et?await Ao(Et,t):null;function _o(){return new Promise((t,e)=>{const i=indexedDB.open(Mo,2);i.onerror=s=>{e(s)},i.onupgradeneeded=s=>{const r=s.target.result;r.objectStoreNames.contains("apps")||(Ir=r.createObjectStore("apps",{keyPath:"kind"}),Ir.createIndex("kind","kind",{unique:!0}))},i.onsuccess=()=>{const s=i.result;t(s)}})}function Ao(t,e){return new Promise((i,s)=>{const a=t.transaction(["apps"]).objectStore("apps").index("kind").get(e);a.onerror=n=>s(n),a.onsuccess=()=>{a.result?i(a.result):i(null)}})}function ko(t,e){return new Promise((i,s)=>{const r=t.transaction(["apps"],"readwrite").objectStore("apps").add(e);r.onsuccess=()=>i(),r.onerror=()=>s()})}const To="NetlessApp",No=1e4,Po=async t=>{const e=await Io(t);if(e)return e.sourceCode;{const s=await(await zo(t,{timeout:No})).text();return await Co(t,s),s}},_r=(t,e)=>{let i=Function(t+`
|
2
|
+
;return ${e}`)();return typeof i=="undefined"&&(i=window[e]),i},Eo=async(t,e,i)=>{const s=i||To+e;G.emit("loadApp",{kind:e,status:"start"});try{const r=await Po(t);if(!r||r.length===0){G.emit("loadApp",{kind:e,status:"failed",reason:"script is empty."});return}try{const a=_r(r,s);return G.emit("loadApp",{kind:e,status:"success"}),a}catch(a){if(a.message.includes("Can only have one anonymous define call per script file")){const n=window.define;typeof n=="function"&&n.amd&&delete n.amd;const o=_r(r,s);return G.emit("loadApp",{kind:e,status:"success"}),o}G.emit("loadApp",{kind:e,status:"failed",reason:a.message})}}catch(r){G.emit("loadApp",{kind:e,status:"failed",reason:r.message})}};async function zo(t,e){const{timeout:i=1e4}=e,s=new AbortController,r=setTimeout(()=>s.abort(),i),a=await fetch(t,ge(O({},e),{signal:s.signal,headers:{"content-type":"text/plain"}}));return clearTimeout(r),a}class Do{constructor(){this.kindEmitters=new Map,this.registered=new Map,this.appClassesCache=new Map,this.appClasses=new Map,this.syncRegisterApp=null,this.onSyncRegisterAppChange=e=>{this.register({kind:e.kind,src:e.src})}}setSyncRegisterApp(e){this.syncRegisterApp=e}async register(e){this.appClassesCache.delete(e.kind),this.registered.set(e.kind,e);const i=e.src;let s;if(typeof i=="string"?(s=async()=>{let r=await Eo(i,e.kind,e.name);if(r)return r.__esModule&&(r=r.default),r;throw new Error(`[WindowManager]: load remote script failed, ${i}`)},this.syncRegisterApp&&this.syncRegisterApp({kind:e.kind,src:i,name:e.name})):typeof i=="function"?s=i:s=async()=>i,this.appClasses.set(e.kind,async()=>{let r=this.appClassesCache.get(e.kind);return r||(r=s(),this.appClassesCache.set(e.kind,r)),r}),e.addHooks){const r=this.createKindEmitter(e.kind);r&&e.addHooks(r)}}unregister(e){this.appClasses.delete(e),this.appClassesCache.delete(e),this.registered.delete(e);const i=this.kindEmitters.get(e);i&&(i.clearListeners(),this.kindEmitters.delete(e))}async notifyApp(e,i,s){const r=this.kindEmitters.get(e);await(r==null?void 0:r.emit(i,s))}createKindEmitter(e){if(!this.kindEmitters.has(e)){const i=new Je.default;this.kindEmitters.set(e,i)}return this.kindEmitters.get(e)}}const me=new Do,Lo=async t=>{var i,s;const e=await((i=me.appClasses.get(t))==null?void 0:i());return e&&((s=e.config)==null?void 0:s.singleton)?t:`${t}-${fo.v4().replace("-","").slice(0,8)}`},dt=(t,e)=>{if(!t.didRelease&&t.focusScenePath!==e)return t.focusScenePath=e,t},Ar=t=>{t.didRelease||t.release()},zt=(t,e)=>{if(t&&t.isWritable&&t.state.sceneState.scenePath!==e){const i=e==="/"?"":e;t.setScenePath(i)}},Vo=(t,e,i)=>{var s;if(t&&e){const a=(s=ut(t)[e])==null?void 0:s[i];if(a)return`${e}/${a.name}`}},qi=(t,e,i)=>{t&&t.scenePathType(e)!==S.ScenePathType.None&&t.removeScenes(e,i)},$o=(t,e)=>{z.once(t).then(e)};v.debounce((t,e)=>{t.emit("mainViewModeChange",e)},200);const jo=(t,e,i=0)=>{const s=ut(t)[e];if(!s)return;const r=s[i];if(!r)return;const a=r.name;return e===xe?`/${a}`:`${e}/${a}`},ut=t=>t.entireScenes(),vt=(t,e,i,s)=>t==null?void 0:t.putScenes(e,i,s),Bo=t=>t.startsWith("/"),Ji=t=>{const e=t.split("/");e.pop();let i=e.join("/");return i===""&&(i="/"),i},Ro=t=>t.endsWith("/")?t.slice(0,-1):t,kr=t=>{const e=t.split(".").map(i=>i.padStart(2,"0")).join("");return parseInt(e)},li=t=>new Promise(e=>setTimeout(e,t)),Oo=t=>t.split("").reduce((i,s)=>(s===xe&&(i+=1),i),0)===1;class Uo{constructor(e){this.saveCamera=e,this.setRect=i=>{this.rect=i,this.remoteCamera&&this.remoteSize&&this.onRemoteUpdate(this.remoteCamera,this.remoteSize)},this.onRemoteUpdate=v.throttle((i,s)=>{if(this.remoteCamera=i,this.remoteSize=s,this.remoteSize&&this.rect){const a={scale:i.scale*ci(s,this.rect)};i.centerX!==null&&(a.centerX=i.centerX),i.centerY!==null&&(a.centerY=i.centerY),this.moveCamera(a)}},10)}setView(e){this.view=e}onRemoteSizeUpdate(e){var s;this.remoteSize=e;const i=!v.isEqual(v.pick(this.rect,["width","height"]),v.pick(e,["width","height"]));if(this.rect&&this.remoteCamera&&i){if(!this.view)return;const r=this.view.camera;(s=this.view)==null||s.moveCameraToContain({width:e.width,height:e.height,originX:r.centerX-e.width/2,originY:r.centerY-e.height/2})}}onLocalCameraUpdate(e){this.saveCamera(e),this.remoteCamera=e}moveCamera(e){var i;(i=this.view)==null||i.moveCamera(ge(O({},e),{animationMode:S.AnimationMode.Immediately}))}}const ci=(t,e)=>{const i=e.width/t.width,s=e.height/t.height;return Math.min(i,s)};class Ho{constructor(e){this.manager=e,this.displayer=this.manager.displayer,this.mainMagixEventListener=i=>{if(i.authorId!==this.displayer.observerId){const s=i.payload;switch(s.eventName){case Q.AppMove:{this.appMoveHandler(s.payload);break}case Q.AppResize:{this.appResizeHandler(s.payload);break}case Q.AppBoxStateChange:{this.boxStateChangeHandler(s.payload);break}case Q.SetMainViewScenePath:{this.setMainViewScenePathHandler(s.payload);break}case Q.CursorMove:{this.cursorMoveHandler(s.payload);break}case Q.RootDirRemoved:{this.rootDirRemovedHandler();break}case Q.Refresh:{this.refreshHandler();break}case Q.InitMainViewCamera:{this.initMainViewCameraHandler();break}case Q.SetAppFocusIndex:{this.setAppFocusViewIndexHandler(s.payload);break}case Q.InvokeAttributesUpdateCallback:{this.manager.attributesUpdateCallback(this.manager.attributes.apps);break}case Q.MoveCamera:{this.moveCameraHandler(s.payload);break}case Q.MoveCameraToContain:{this.moveCameraToContainHandler(s.payload);break}}}},this.appMoveHandler=i=>{var s;(s=this.boxManager)==null||s.moveBox(i)},this.appResizeHandler=i=>{var s,r;(s=this.boxManager)==null||s.resizeBox(Object.assign(i,{skipUpdate:!0})),(r=this.manager.room)==null||r.refreshViewSize()},this.boxStateChangeHandler=i=>{G.emit("boxStateChange",i)},this.setMainViewScenePathHandler=({nextScenePath:i})=>{dt(this.manager.mainView,i),G.emit("mainViewScenePathChange",i)},this.cursorMoveHandler=i=>{z.emit("cursorMove",i)},this.rootDirRemovedHandler=()=>{this.manager.createRootDirScenesCallback(),this.manager.mainViewProxy.rebind(),z.emit("rootDirRemoved")},this.refreshHandler=()=>{this.manager.windowManger._refresh()},this.initMainViewCameraHandler=()=>{this.manager.mainViewProxy.addCameraReaction()},this.setAppFocusViewIndexHandler=i=>{if(i.type==="main")this.manager.setSceneIndexWithoutSync(i.index);else if(i.type==="app"&&i.appID){const s=this.manager.appProxies.get(i.appID);s&&s.setSceneIndexWithoutSync(i.index)}},this.moveCameraHandler=i=>{var r;const s=i;if(i.scale){const a=this.manager.mainViewProxy.size$.value,n=(r=this.manager.boxManager)==null?void 0:r.stageRect;a&&n&&(s.scale=i.scale*ci(a,n))}this.manager.mainView.moveCamera(s)},this.moveCameraToContainHandler=i=>{this.manager.mainView.moveCameraToContain(i)}}get boxManager(){return this.manager.boxManager}addListeners(){this.displayer.addMagixEventListener(Yi,this.mainMagixEventListener)}removeListeners(){this.displayer.removeMagixEventListener(Yi,this.mainMagixEventListener)}}class Tr extends Error{constructor(){super(...arguments);this.message="[WindowManager]: app duplicate exists and cannot be created again"}}class Fo extends Error{constructor(e){super(`[WindowManager]: app ${e} need register or provide src`)}}class fe extends Error{constructor(){super(...arguments);this.message="[WindowManager]: AppManager must be initialized"}}class Nr extends Error{constructor(e){super(`[WindowManager]: white-web-sdk version must large than ${e}`)}}class Pr extends Error{constructor(){super(...arguments);this.message="[WindowManager]: kind must be a valid string"}}class Er extends Error{constructor(){super(...arguments);this.message="[WindowManager]: box need created"}}class zr extends Error{constructor(){super(...arguments);this.message='[WindowManager]: ScenePath should start with "/"'}}class Xi extends Error{constructor(){super(...arguments);this.message="[WindowManager]: boxManager need initialize"}}class Dr extends Error{constructor(){super(...arguments);this.message="[WindowManager]: room phase only Connected can be bindContainer"}}const Lr=t=>(e,i)=>{if(e!==void 0)if(S.listenUpdated){const s=r=>{r.map(n=>n.kind).includes(t)&&i()};return S.listenUpdated(e,s),i(),()=>S.unlistenUpdated(e,s)}else return S.reaction(()=>e,()=>{i()},{fireImmediately:!0})},Vr=(t,e,i)=>{let s=null;const r=S.reaction(t,()=>{s&&(s(),s=null);const a=t();v.isObject(a)?(s=()=>S.unlistenUpdated(a,e),S.listenUpdated(a,e)):i==null||i(a)},{fireImmediately:!0});return()=>{s==null||s(),r()}},Wo=Lr(S.UpdateEventKind.Removed);Lr(S.UpdateEventKind.Inserted);const Ki=Object.keys;function $r(t){return Boolean(v.has(t,"__isRef"))}function Zo(t){return{k:ve.genUID(),v:t,__isRef:!0}}class Yo{constructor(){this.listeners=new Set}get length(){return this.listeners.size}dispatch(e){this.listeners.forEach(i=>i(e))}addListener(e){this.listeners.add(e)}removeListener(e){this.listeners.delete(e)}}const Pe="_WM-STORAGE_";class jr{constructor(e,i,s){if(this._sideEffect=new ve.SideEffectManager,this._destroyed=!1,this._refMap=new WeakMap,this._lastValue=new Map,this.onStateChanged=new Yo,s&&!v.isObject(s))throw new Error(`Default state for Storage ${i} is not an object.`);this._context=e,this.id=i||null,this._state={};const r=this._getRawState(this._state);this._context.isWritable&&(this.id===null?e.isAddApp&&s&&this.setState(s):(r===this._state||!v.isObject(r))&&(v.get(this._context.getAttributes(),[Pe])||this._context.updateAttributes([Pe],{}),this._context.updateAttributes([Pe,this.id],this._state),s&&this.setState(s))),Ki(r).forEach(a=>{if(!(this.id===null&&a===Pe))try{const n=v.isObject(r[a])?JSON.parse(JSON.stringify(r[a])):r[a];$r(n)?(this._state[a]=n.v,v.isObject(n.v)&&this._refMap.set(n.v,n)):this._state[a]=n}catch(n){console.error(n)}}),this._sideEffect.addDisposer(Vr(()=>this.id===null?e.getAttributes():v.get(e.getAttributes(),[Pe,this.id]),this._updateProperties.bind(this),this.destroy.bind(this)))}get state(){return this._destroyed&&console.warn(`Accessing state on destroyed Storage "${this.id}"`),this._state}addStateChangedListener(e){return this.onStateChanged.addListener(e),()=>this.onStateChanged.removeListener(e)}ensureState(e){return this.setState(Ki(e).reduce((i,s)=>(v.has(this._state,s)||(i[s]=e[s]),i),{}))}setState(e){if(this._destroyed){console.error(new Error(`Cannot call setState on destroyed Storage "${this.id}".`));return}if(!this._context.isWritable){console.error(new Error(`Cannot setState on Storage "${this.id}" without writable access`),e);return}const i=Ki(e);i.length>0&&i.forEach(s=>{const r=e[s];if(r!==this._state[s])if(r===void 0)this._lastValue.set(s,this._state[s]),delete this._state[s],this._setRawState(s,r);else{this._lastValue.set(s,this._state[s]),this._state[s]=r;let a=r;if(v.isObject(r)){let n=this._refMap.get(r);n||(n=Zo(r),this._refMap.set(r,n)),a=n}this._setRawState(s,a)}})}emptyStorage(){if(!(v.size(this._state)<=0)){if(this._destroyed){console.error(new Error(`Cannot empty destroyed Storage "${this.id}".`));return}if(!this._context.isWritable){console.error(new Error(`Cannot empty Storage "${this.id}" without writable access.`));return}this.setState(v.mapValues(this._state,v.noop))}}deleteStorage(){if(this.id===null)throw new Error("Cannot delete main Storage");if(!this._context.isWritable){console.error(new Error(`Cannot delete Storage "${this.id}" without writable access.`));return}this.destroy(),this._context.updateAttributes([Pe,this.id],void 0)}get destroyed(){return this._destroyed}destroy(){this._destroyed=!0,this._sideEffect.flushAll()}_getRawState(e){var i;return this.id===null?(i=this._context.getAttributes())!=null?i:e:v.get(this._context.getAttributes(),[Pe,this.id],e)}_setRawState(e,i){if(this.id===null){if(e===Pe)throw new Error(`Cannot set attribute internal filed "${Pe}"`);return this._context.updateAttributes([e],i)}else return this._context.updateAttributes([Pe,this.id,e],i)}_updateProperties(e){var i;if(this._destroyed){console.error(new Error(`Cannot call _updateProperties on destroyed Storage "${this.id}".`));return}if(e.length>0){const s={};for(let r=0;r<e.length;r++)try{const a=e[r],n=a.key;if(this.id===null&&n===Pe)continue;const o=v.isObject(a.value)?JSON.parse(JSON.stringify(a.value)):a.value;let c;switch(this._lastValue.has(n)&&(c=this._lastValue.get(n),this._lastValue.delete(n)),a.kind){case 2:{v.has(this._state,n)&&(c=this._state[n],delete this._state[n]),s[n]={oldValue:c};break}default:{let l=o;if($r(o)){const{k:d,v:u}=o,p=this._state[n];v.isObject(p)&&((i=this._refMap.get(p))==null?void 0:i.k)===d?l=p:(l=u,v.isObject(u)&&this._refMap.set(u,o))}l!==this._state[n]&&(c=this._state[n],this._state[n]=l),s[n]={newValue:l,oldValue:c};break}}}catch(a){console.error(a)}this.onStateChanged.dispatch(s)}}}class Qo{constructor(e,i,s,r){this.view=e,this.appContext=i,this.appProxy=s,this.ensureSize=r,this.nextPage=async()=>{const l=this.pageState.index+1;return this.jumpPage(l)},this.prevPage=async()=>{const l=this.pageState.index-1;return this.jumpPage(l)},this.jumpPage=async l=>l<0||l>=this.pageState.length?(console.warn(`[WindowManager]: index ${l} out of range`),!1):(this.appProxy.setSceneIndex(l),!0),this.addPage=async l=>{const d=l==null?void 0:l.after,u=l==null?void 0:l.scene,p=this.appProxy.scenePath;if(!!p)if(d){const m=this.pageState.index+1;vt(this.appContext.room,p,[u||{}],m)}else vt(this.appContext.room,p,[u||{}])},this.removePage=async l=>{const d=l===void 0?this.pageState.index:l;return this.pageState.length===1?(console.warn("[WindowManager]: can not remove the last page"),!1):d<0||d>=this.pageState.length?(console.warn(`[WindowManager]: page index ${l} out of range`),!1):this.appProxy.removeSceneByIndex(d)};const a=new w.Val(s.pageState),n=new w.Val(s.size$.value),o=l=>v.pick(l,["centerX","centerY","scale"]),c=new w.Val(o(this.view.camera));this.baseRect$=n,this.pageState$=a,this.baseCamera$=c,this.appProxy.sideEffectManager.add(()=>[s.appEmitter.on("pageStateChange",l=>a.setValue(l)),s.camera$.subscribe(l=>{l&&c.setValue(o(l))}),s.size$.subscribe(l=>{l&&n.setValue(v.pick(l,["width","height"]))})]),e.disableCameraTransform=!0}get pageState(){return this.pageState$.value}moveCamera(e){this.appProxy.moveCamera(e)}setBaseRect(e){this.appProxy.updateSize(e.width,e.height)}}const Xe=(...t)=>{ue.debug&&console.log("[WindowManager]:",...t)},Go=(t,e)=>{const i=document.createElement("div");i.className="netless-window-manager-playground";const s=document.createElement("div");return s.className="netless-window-manager-main-view",e.appendChild(s),t.appendChild(i),{playground:i,mainViewElement:s}},qo=()=>{if(kr(S.WhiteVersion)<kr(xr))throw new Nr(xr)},Br=(t,e)=>{const i=t==null?void 0:t.state.roomMembers;return i==null?void 0:i.find(s=>{var r;return((r=s.payload)==null?void 0:r.uid)===e})},Rr=t=>t.map(e=>{var i;return O({uid:((i=e.payload)==null?void 0:i.uid)||""},S.toJS(e))}),Or=async t=>{try{return await t.createInvisiblePlugin(ue,{})}catch(e){if(e.message==='invisible plugin "WindowManager" exits')return await li(200),t.getInvisiblePlugin(ue.kind);Xe("createInvisiblePlugin failed",e)}};class Jo{constructor(e,i,s,r){this.manager=e,this.appId=i,this.appProxy=s,this.appOptions=r,this.mobxUtils={autorun:S.autorun,reaction:S.reaction,toJS:S.toJS},this.objectUtils={listenUpdated:S.listenUpdated,unlistenUpdated:S.unlistenUpdated,listenDisposed:S.listenDisposed,unlistenDisposed:S.unlistenDisposed},this.store=this.manager.store,this.isReplay=this.manager.isReplay,this.getAttributes=()=>this.appProxy.attributes,this.getScenes=()=>{const a=this.store.getAppAttributes(this.appId);return a!=null&&a.isDynamicPPT?this.appProxy.scenes:a==null?void 0:a.options.scenes},this.createWhiteBoardView=a=>{if(this.whiteBoardView)return this.whiteBoardView;let n=this.view;n||(n=this.appProxy.createAppDir()),a&&v.isBoolean(a.syncCamera)&&this.appProxy.syncCamera$.setValue(a.syncCamera);const o=document.createElement("div");return this._viewWrapper=o,o.className="window-manager-view-wrapper",this.box.$main.appendChild(o),n.divElement=o,this.appProxy.fireMemberStateChange(),this.isAddApp&&this.ensurePageSize(a==null?void 0:a.size),this.whiteBoardView=new Qo(n,this,this.appProxy,this.ensurePageSize),this.appProxy.sideEffectManager.add(()=>[this.box._stageRect$.subscribe(c=>{o.style.left=`${c.x}px`,o.style.top=`${c.y}px`,o.style.width=`${c.width}px`,o.style.height=`${c.height}px`}),()=>()=>{this.whiteBoardView=void 0}]),this.appProxy.whiteBoardViewCreated$.setValue(!0),this.whiteBoardView},this.ensurePageSize=a=>{var c;if(!v.isNumber(a)||!this.appProxy.scenePath||this.appProxy.pageState.length>=a)return;if(a<=0||a>=Cr)throw Error(`[WindowManager]: size ${a} muse be in range [1, ${Cr}]`);const n=a-this.appProxy.pageState.length,o=new Array(n).fill({});(c=this.room)==null||c.putScenes(this.appProxy.scenePath,o)},this.getInitScenePath=()=>this.appProxy.scenePath,this.setAttributes=a=>{this.manager.safeSetAttributes({[this.appId]:a})},this.updateAttributes=(a,n)=>{this.manager.attributes[this.appId]&&this.manager.safeUpdateAttributes([this.appId,...a],n)},this.setScenePath=async a=>{var n;!this.appProxy.box||(this.appProxy.setFullPath(a),(n=this.room)==null||n.setScenePath(a))},this.getAppOptions=()=>typeof this.appOptions=="function"?this.appOptions():this.appOptions,this.createStorage=(a,n)=>{const o=new jr(this,a,n);return this.emitter.on("destroy",()=>{o.destroy()}),o},this.dispatchMagixEvent=(...a)=>{var o;const n=`${this.appId}:${a[0]}`;return(o=this.manager.room)==null?void 0:o.dispatchMagixEvent(n,a[1])},this.addMagixEventListener=(a,n,o)=>{const c=`${this.appId}:${a}`;return this.manager.displayer.addMagixEventListener(c,n,o),()=>this.manager.displayer.removeMagixEventListener(c,n)},this.removeMagixEventListener=this.manager.displayer.removeMagixEventListener.bind(this.manager.displayer),this.emitter=s.appEmitter,this.isAddApp=s.isAddApp}get displayer(){return this.manager.displayer}get destroyed(){return this.appProxy.status==="destroyed"}get view(){return this.appProxy.view}get now(){if(this.isReplay){const e=this.displayer;return e.beginTimestamp+e.progressTime}else return this.displayer.calibrationTimestamp}get isWritable(){return this.manager.canOperate&&!this.destroyed}get box(){const e=this.appProxy.box$.value;if(e)return e;throw new Er}get room(){return this.manager.room}get members(){return this.manager.members$.value}get currentMember(){const e=Br(this.room,this.manager.uid);if(!e)throw new Error(`Member ${this.manager.uid} not found.`);return O({uid:this.manager.uid},e)}get storage(){return this._storage||(this._storage=new jr(this)),this._storage}}class Xo{constructor(e){this.params=e,this.sceneNode=null,this.createSceneNode=r=>(this.scenePath=r,this.sceneNode&&this.sceneNode.dispose(),this.sceneNode=this.params.displayer.createScenesCallback(r,{onAddScene:this.onSceneChange,onRemoveScene:this.onSceneChange}),this.sceneNode),this.onSceneChange=()=>{this.params.notifyPageStateChange()};const{displayer:i,scenePath:s}=this.params;this.view=this.params.view,s&&(this.scenePath=s,this.sceneNode=i.createScenesCallback(s,{onAddScene:this.onSceneChange,onRemoveScene:this.onSceneChange}))}setView(e){this.view=e}getFullPath(e){var s;const i=(s=this.sceneNode)==null?void 0:s.scenes;if(this.scenePath&&i){const r=i[e];if(r)return`${this.scenePath}/${r}`}}toObject(){var e,i;return{index:((e=this.view)==null?void 0:e.focusSceneIndex)||0,length:((i=this.sceneNode)==null?void 0:i.scenes.length)||0}}destroy(){var e;(e=this.sceneNode)==null||e.dispose()}}class Ur{constructor(e){this.context=e,this.sem=new ve.SideEffectManager,this.bindView=s=>{!s||(this.synchronizer.setView(s),this.sem.flush("view"),this.sem.add(()=>(s.callbacks.on("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice),()=>s.callbacks.off("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice)),"view"))},this.onCameraUpdatedByDevice=s=>{if(!!s&&this.context.size$.value&&this.context.stageRect$.value){const r=ci(this.context.size$.value,this.context.stageRect$.value),a=s.scale/r;this.synchronizer.onLocalCameraUpdate(ge(O({},s),{scale:a,id:this.context.uid}))}},this.synchronizer=new Uo(s=>{this.context.camera$.setValue(s,!0),!(this.context.viewMode$&&this.context.viewMode$.value===S.ViewMode.Freedom)&&this.context.storeCamera(s)}),this.bindView(this.context.view$.value),this.sem.add(()=>[this.context.view$.subscribe(s=>{const r=this.context.camera$.value;r&&this.context.size$.value&&(s==null||s.moveCamera({scale:1,animationMode:S.AnimationMode.Immediately}),this.synchronizer.onRemoteUpdate(r,this.context.size$.value)),this.bindView(s)}),this.context.camera$.subscribe((s,r)=>{const a=this.context.size$.value;s&&a&&!r&&this.synchronizer.onRemoteUpdate(s,a)}),this.context.size$.subscribe(s=>{s&&this.synchronizer.onRemoteSizeUpdate(s)}),this.context.stageRect$.subscribe(s=>{s&&this.synchronizer.setRect(s)})]);const i=w.combine([this.context.camera$,this.context.size$]);i.reaction(([s,r])=>{s&&r&&(this.synchronizer.onRemoteUpdate(s,r),i.destroy())})}destroy(){this.sem.flushAll()}}const He=new Je.default,es=(t,e)=>{let i=0;const s=e.length-1;return t===e.index?t===s?i=t-1:i=e.index+1:i=e.index,i};var te=(t=>(t.Apps="apps",t.Focus="focus",t.State="state",t.BoxState="boxState",t.MainViewCamera="mainViewCamera",t.MainViewSize="mainViewSize",t.Broadcaster="broadcaster",t.Cursors="cursors",t.Position="position",t.CursorState="cursorState",t.FullPath="fullPath",t.Registered="registered",t.Camera="camera",t.Size="size",t))(te||{});class Ko{constructor(e){this.context=e,this.setAppFocus=(i,s)=>{s?this.context.safeSetAttributes({focus:i}):this.context.safeSetAttributes({focus:void 0})}}setContext(e){this.context=e}get attributes(){return this.context.getAttributes()}apps(){return v.get(this.attributes,["apps"])}get focus(){return v.get(this.attributes,["focus"])}getAppAttributes(e){return v.get(this.apps(),[e])}getAppState(e){return v.get(this.apps(),[e,"state"])}getMaximized(){return v.get(this.attributes,["maximized"])}getMinimized(){return v.get(this.attributes,["minimized"])}setupAppAttributes(e,i,s){this.attributes.apps||this.context.safeSetAttributes({apps:{}});const a=["scenePath","title"];s||a.push("scenes");const n=v.pick(e.options,a),o={kind:e.kind,options:n,isDynamicPPT:s,setup:!1};typeof e.src=="string"&&(o.src=e.src),o.createdAt=Date.now(),this.context.safeUpdateAttributes(["apps",i],o),this.context.safeUpdateAttributes(["apps",i,"state"],{[Ne.Size]:{},[Ne.Position]:{},[Ne.SceneIndex]:0})}updateAppState(e,i,s){v.get(this.attributes,["apps",e,"state"])&&this.context.safeUpdateAttributes(["apps",e,"state",i],s)}updateAppAttributes(e,i,s){this.context.safeUpdateAttributes(["apps",e,i],s)}cleanAppAttributes(e){this.context.safeUpdateAttributes(["apps",e],void 0),this.context.safeSetAttributes({[e]:void 0}),this.attributes.focus===e&&this.cleanFocus()}cleanFocus(){this.context.safeSetAttributes({focus:void 0})}getAppSceneIndex(e){var i;return(i=this.getAppState(e))==null?void 0:i[Ne.SceneIndex]}getAppScenePath(e){var i,s;return(s=(i=this.getAppAttributes(e))==null?void 0:i.options)==null?void 0:s.scenePath}getMainViewScenePath(){return this.attributes._mainScenePath}getMainViewSceneIndex(){return this.attributes._mainSceneIndex}getBoxState(){return this.attributes.boxState}setMainViewScenePath(e){this.context.safeSetAttributes({_mainScenePath:e})}setMainViewSceneIndex(e){this.context.safeSetAttributes({_mainSceneIndex:e})}getMainViewCamera(){return v.get(this.attributes,["mainViewCamera"])}getMainViewSize(){return v.get(this.attributes,["mainViewSize"])}setMainViewCamera(e){this.context.safeSetAttributes({mainViewCamera:O({},e)})}setMainViewSize(e){this.context.safeSetAttributes({mainViewSize:O({},e)})}setMainViewCameraAndSize(e,i){this.context.safeSetAttributes({mainViewCamera:O({},e),mainViewSize:O({},i)})}updateCursor(e,i){v.get(this.attributes,["cursors"])||this.context.safeUpdateAttributes(["cursors"],{}),v.get(this.attributes,["cursors",e])||this.context.safeUpdateAttributes(["cursors",e],{}),this.context.safeUpdateAttributes(["cursors",e,"position"],i)}updateCursorState(e,i){v.get(this.attributes,["cursors",e])||this.context.safeUpdateAttributes(["cursors",e],{}),this.context.safeUpdateAttributes(["cursors",e,"cursorState"],i)}getCursorState(e){return v.get(this.attributes,["cursors",e,"cursorState"])}cleanCursor(e){this.context.safeUpdateAttributes(["cursors",e],void 0)}setMainViewFocusPath(e){const i=this.getMainViewScenePath();i&&dt(e,i)}}const el=new Ko({getAttributes:()=>{throw new Error("getAttributes not implemented")},safeSetAttributes:()=>{throw new Error("safeSetAttributes not implemented")},safeUpdateAttributes:()=>{throw new Error("safeUpdateAttributes not implemented")}});class ts{constructor(e,i,s,r){var a;this.params=e,this.manager=i,this.boxManager=this.manager.boxManager,this.appProxies=this.manager.appProxies,this.viewManager=this.manager.viewManager,this.store=this.manager.store,this.uid=this.manager.uid,this.status="normal",this.sideEffectManager=new ve.SideEffectManager,this.valManager=new w.ValManager,this.fullPath$=this.valManager.attach(new w.Val(void 0)),this.camera$=this.valManager.attach(new w.Val(void 0)),this.size$=this.valManager.attach(new w.Val(void 0)),this.box$=this.valManager.attach(new w.Val(void 0)),this.view$=this.valManager.attach(new w.Val(void 0)),this.syncCamera$=this.valManager.attach(new w.Val(!0)),this.whiteBoardViewCreated$=this.valManager.attach(new w.Val(!1)),this.fireMemberStateChange=()=>{this.manager.room&&this.onMemberStateChange(this.manager.room.state.memberState)},this.onMemberStateChange=n=>{var c,l;n.currentApplianceName==="clicker"?(c=this.appContext)!=null&&c._viewWrapper&&(this.appContext._viewWrapper.style.pointerEvents="none"):(l=this.appContext)!=null&&l._viewWrapper&&(this.appContext._viewWrapper.style.pointerEvents="auto")},this.computedInitialRect=n=>{var c;const o=(c=this.manager.boxManager)==null?void 0:c.stageRect;if(o){const{width:l,height:d}=o,u=n.height/n.width;return d<480?{width:480/u,height:480}:{width:l*.65,height:d*.65}}},this.getAppInitState=n=>{var m,g;const o=this.store.getAppState(n);if(!o)return;const c=this.store.focus,l=(m=this.attributes)==null?void 0:m.maximized,d=(g=this.attributes)==null?void 0:g.minimized;let u={maximized:l,minimized:d,id:n};const p=v.omitBy(o,v.isUndefined);return c===n&&(u=ge(O({},u),{focus:!0})),Object.assign(u,p)},this.appAttributesUpdateListener=n=>{this.sideEffectManager.add(()=>[this.manager.refresher.add(n,()=>S.autorun(()=>{const o=this.manager.attributes[n];o&&this.appEmitter.emit("attributesUpdate",o)})),this.manager.refresher.add(this.stateKey,()=>S.autorun(()=>{var c,l,d;const o=(c=this.appAttributes)==null?void 0:c.state;(o==null?void 0:o.zIndex)>0&&o.zIndex!==((l=this.box)==null?void 0:l.zIndex)&&((d=this.boxManager)==null||d.setZIndex(n,o.zIndex))})),this.manager.refresher.add(`${n}-fullPath`,()=>S.autorun(()=>{var c;const o=(c=this.appAttributes)==null?void 0:c.fullPath;this.setFocusScenePathHandler(o),this.fullPath$.value!==o&&(this.notifyPageStateChange(),this.fullPath$.setValue(o))}))])},this.setFocusScenePathHandler=v.debounce(n=>{var o;this.view&&n&&n!==((o=this.view)==null?void 0:o.focusScenePath)&&dt(this.view,n)},50),this.notifyPageStateChange=v.debounce(()=>{this.pageState&&this.appEmitter.emit("pageStateChange",this.pageState)},50),this.storeCamera=n=>{this.store.updateAppAttributes(this.id,te.Camera,n)},this.storeSize=n=>{this.store.updateAppAttributes(this.id,te.Size,n)},this.updateSize=(n,o)=>{const c={id:this.manager.uid,width:n,height:o};this.store.updateAppAttributes(this.id,te.Size,c),this.size$.setValue(c)},this.moveCamera=n=>{if(!this.camera$.value)return;const o=ge(O(O({},this.camera$.value),n),{id:this.uid});this.storeCamera(o),this.camera$.setValue(o)},this.addCameraReaction=()=>{this.sideEffectManager.add(()=>this.manager.refresher.add(`${this.id}-camera`,()=>S.reaction(()=>{var n;return(n=this.appAttributes)==null?void 0:n.camera},n=>{if(n){const o=S.toJS(n);v.isEqual(o,this.camera$.value)||this.camera$.setValue(o)}})),"camera")},this.addSizeReaction=()=>{this.sideEffectManager.add(()=>this.manager.refresher.add(`${this.id}-size`,()=>S.reaction(()=>{var n;return(n=this.appAttributes)==null?void 0:n.size},n=>{if(n){const o=S.toJS(n);v.isEqual(o,this.size$.value)||this.size$.setValue(o)}})),"size")},this.onFocus=()=>{this.setScenePath()},this.setupDone=()=>{this.store.updateAppAttributes(this.id,"setup",!0),this.manager.dispatchInternalEvent(Q.InvokeAttributesUpdateCallback)},this.kind=e.kind,this.id=s,this.appScenePath=`/${this.id}-app-dir`,this.stateKey=`${this.id}_state`,this.appProxies.set(this.id,this),this.appEmitter=new Je.default,this.appListener=this.makeAppEventListener(this.id),this.isAddApp=r,this.initScenes(),(a=this.params.options)!=null&&a.scenePath&&this.createView(),this.scenePath||(this.scenePath=this.appScenePath),this._pageState=new Xo({displayer:this.manager.displayer,scenePath:this.scenePath,view:this.view,notifyPageStateChange:this.notifyPageStateChange}),this.sideEffectManager.add(()=>()=>this._pageState.destroy()),this.camera$.setValue(S.toJS(this.appAttributes.camera)),this.size$.setValue(S.toJS(this.appAttributes.size)),this.addCameraReaction(),this.addSizeReaction(),this.sideEffectManager.add(()=>z.on("memberStateChange",this.onMemberStateChange)),this.sideEffectManager.add(()=>[this.syncCamera$.reaction(n=>{n||this.viewSync&&(this.viewSync.destroy(),this.viewSync=void 0,this.sideEffectManager.flush("camera"),this.sideEffectManager.flush("size"))}),this.whiteBoardViewCreated$.reaction(n=>{if(n&&this.box){if(!this.syncCamera$.value)return;w.combine([this.box$,this.view$]).subscribe(([o,c])=>{if(o&&c){if(this.camera$.value||(this.storeCamera({centerX:null,centerY:null,scale:1,id:this.uid}),this.camera$.setValue(S.toJS(this.appAttributes.camera))),!this.size$.value&&o.stageRect){const l=this.computedInitialRect(o.stageRect),d=(l==null?void 0:l.width)||o.stageRect.width,u=(l==null?void 0:l.height)||o.stageRect.height;this.storeSize({id:this.uid,width:d,height:u}),this.size$.setValue(S.toJS(this.appAttributes.size))}this.viewSync=new Ur({uid:this.uid,view$:this.view$,camera$:this.camera$,size$:this.size$,stageRect$:o._stageRect$,storeCamera:this.storeCamera,storeSize:this.storeSize}),this.sideEffectManager.add(()=>()=>{var l;return(l=this.viewSync)==null?void 0:l.destroy()}),this.whiteBoardViewCreated$.destroy()}})}}),this.manager.members$.reaction(n=>{this.appEmitter.emit("roomMembersChange",n)})])}createAppDir(){const e=this.scenePath||this.appScenePath;this._pageState.createSceneNode(e)||(vt(this.manager.room,e,[{name:"1"}]),this._pageState.createSceneNode(e),this.setSceneIndex(0)),this.scenes=ut(this.manager.displayer)[e];const s=this.createView();return this._pageState.setView(s),s}initScenes(){var i;const e=this.params.options;e&&(this.scenePath=e.scenePath,((i=this.appAttributes)==null?void 0:i.isDynamicPPT)&&this.scenePath?this.scenes=ut(this.manager.displayer)[this.scenePath]:this.scenes=e.scenes)}get view(){return this.view$.value}get viewIndex(){var e;return(e=this.view)==null?void 0:e.focusSceneIndex}get isWritable(){var e;return this.manager.canOperate&&!((e=this.box)!=null&&e.readonly)}get attributes(){return this.manager.attributes[this.id]}get appAttributes(){return this.store.getAppAttributes(this.id)}getFullScenePath(){if(this.scenePath)return v.get(this.appAttributes,[te.FullPath])||this.getFullScenePathFromScenes()}getFullScenePathFromScenes(){const e=v.get(this.appAttributes,["state","SceneIndex"],0),i=Vo(this.manager.room,this.scenePath,e);return i&&this.setFullPath(i),i}setFullPath(e){this.store.updateAppAttributes(this.id,te.FullPath,e)}async baseInsertApp(e=!1){var a;const i=this.params;if(!i.kind)throw new Error("[WindowManager]: kind require");const s=await((a=me.appClasses.get(i.kind))==null?void 0:a()),r=me.registered.get(i.kind);if(s)await this.setupApp(this.id,e,s,i.options,r==null?void 0:r.appOptions);else throw new Error(`[WindowManager]: app load failed ${i.kind} ${i.src}`);return z.emit("updateManagerRect"),{appId:this.id,app:s}}get box(){return this.box$.value}async setupApp(e,i,s,r,a){var o;if(Xe("setupApp",e,s,r),!this.boxManager)throw new Xi;const n=new Jo(this.manager,e,this,a);this.appContext=n;try{z.once(`${e}${Q.WindowCreated}`).then(async()=>{var u;let d;i||(d=this.getAppInitState(e),(u=this.boxManager)==null||u.updateBoxState(d)),this.appEmitter.onAny(this.appListener),this.appAttributesUpdateListener(e),this.setViewFocusScenePath(),setTimeout(async()=>{const p=await s.setup(n);this.appResult=p,me.notifyApp(this.kind,"created",{appId:e,result:p}),this.fixMobileSize(),this.isAddApp&&this.setupDone()},Sr)});const c=(o=this.boxManager)==null?void 0:o.createBox({appId:e,app:s,options:r,canOperate:this.manager.canOperate,smartPosition:this.isAddApp}),l=me.registered.get(this.kind);l!=null&&l.contentStyles&&(c==null||c.mountUserStyles(l.contentStyles)),this.box$.setValue(c),this.isAddApp&&this.box&&(this.store.updateAppState(e,Ne.ZIndex,this.box.zIndex),this.store.updateAppState(e,Ne.Size,{width:this.box.intrinsicWidth,height:this.box.intrinsicHeight}),this.boxManager.focusBox({appId:e},!1))}catch(c){throw console.error(c),new Error(`[WindowManager]: app setup error: ${c.message}`)}}fixMobileSize(){var i,s;const e=(i=this.boxManager)==null?void 0:i.getBox(this.id);e&&(e.minimized||(s=this.boxManager)==null||s.resizeBox({appId:this.id,width:e.intrinsicWidth+.001,height:e.intrinsicHeight+.001,skipUpdate:!0}))}async onSeek(e){var s;this.appEmitter.emit("seek",e).catch(r=>{console.log(`[WindowManager]: emit seek error: ${r.message}`)});const i=this.getAppInitState(this.id);(s=this.boxManager)==null||s.updateBoxState(i)}async onReconnected(){var a;if(!Boolean(this.manager.attributes.apps[this.id])){await this.destroy(!0,!1,!0);return}this.appEmitter.emit("reconnected",void 0);const i=this.getAppInitState(this.id);await this.destroy(!0,!1,!0);const s=this.params;await new ts(s,this.manager,this.id,this.isAddApp).baseInsertApp(!0),(a=this.boxManager)==null||a.updateBoxState(i)}async onRemoveScene(e){if(this.scenePath&&e.startsWith(this.scenePath+"/")){let i=this.pageState.index,s=this._pageState.getFullPath(i);s||(i=0,s=this._pageState.getFullPath(i)),s&&this.setFullPath(s),this.setViewFocusScenePath(),this.view&&(this.view.focusSceneIndex=i)}}emitAppSceneStateChange(e){this.appEmitter.emit("sceneStateChange",e)}emitAppIsWritableChange(){this.appEmitter.emit("writableChange",this.isWritable)}makeAppEventListener(e){return(i,s)=>{var r,a,n,o;if(!!this.manager.canOperate)switch(i){case"setBoxSize":{(r=this.boxManager)==null||r.resizeBox({appId:e,width:s.width,height:s.height,skipUpdate:!1});break}case"setBoxMinSize":{(a=this.boxManager)==null||a.setBoxMinSize({appId:e,minWidth:s.minwidth,minHeight:s.minheight});break}case"setBoxTitle":{(n=this.boxManager)==null||n.setBoxTitle({appId:e,title:s.title});break}case wr.destroy:{if(this.status==="destroyed")return;this.destroy(!0,!1,!0,s==null?void 0:s.error),s!=null&&s.error&&console.error(s==null?void 0:s.error);break}case"focus":{(o=this.boxManager)==null||o.focusBox({appId:this.id}),He.emit("focus",{appId:this.id});break}}}}setScenePath(){if(!this.manager.canOperate)return;const e=this.getFullScenePath();this.manager.room&&e&&this.view&&zt(this.manager.room,e)}setViewFocusScenePath(){if(this.status==="destroyed")return;const e=this.getFullScenePath();return e&&this.view&&dt(this.view,e),e}createView(){const e=this.viewManager.createView(this.id);return this.view$.setValue(e),this.setViewFocusScenePath(),e}get pageState(){return this._pageState.toObject()}async removeSceneByIndex(e){const i=this._pageState.getFullPath(e);if(i&&this.pageState){const s=es(e,this.pageState);return this.setSceneIndexWithoutSync(s),this.manager.dispatchInternalEvent(Q.SetAppFocusIndex,{type:"app",appID:this.id,index:s}),setTimeout(()=>{qi(this.manager.room,i,e)},100),!0}else return!1}setSceneIndexWithoutSync(e){this.view&&(this.view.focusSceneIndex=e)}setSceneIndex(e){if(this.view){this.view.focusSceneIndex=e;const i=this._pageState.getFullPath(e);i&&(this.setFullPath(i),zt(this.manager.room,i))}}async destroy(e,i,s,r){var a;if(this.status!=="destroyed"){this.status="destroyed";try{await me.notifyApp(this.kind,"destroy",{appId:this.id}),G.emit("appClose",{appId:this.id,kind:this.kind,error:r}),await this.appEmitter.emit("destroy",{error:r})}catch(n){console.error("[WindowManager]: notifyApp error",n.message,n.stack)}this.appEmitter.clearListeners(),this.sideEffectManager.flushAll(),z.emit(`destroy-${this.id}`,{error:r}),e&&((a=this.boxManager)==null||a.closeBox(this.id,s)),i&&(this.store.cleanAppAttributes(this.id),this.scenePath&&qi(this.manager.room,this.scenePath)),this.appProxies.delete(this.id),this.viewManager.destroyView(this.id),this.manager.appStatus.delete(this.id),this.valManager.destroy()}}close(){return this.destroy(!0,!0,!1)}}class tl{constructor(e){this.displayer=e,this.views=new Map}createView(e){const i=Hr(this.displayer);return this.views.set(e,i),i}getView(e){return this.views.get(e)}destroyView(e){const i=this.views.get(e);if(i){try{i.release()}catch{}this.views.delete(e)}}setViewScenePath(e,i){const s=this.views.get(e);s&&(s.focusScenePath=i)}destroy(){this.views.forEach(e=>{try{e.release()}catch{}}),this.views.clear()}}const Hr=t=>{const e=t.views.createView();return il(e),e},il=t=>{t.setCameraBound({maxContentMode:()=>10,minContentMode:()=>.1})};class sl{constructor(e){this.manager=e,this.started=!1,this.mainViewIsAddListener=!1,this.store=this.manager.store,this.sideEffectManager=new ve.SideEffectManager,this.camera$=new w.Val(void 0),this.size$=new w.Val(void 0),this.view$=new w.Val(void 0),this.createViewSync=()=>{var i;this.manager.boxManager&&!this.viewSync&&(this.viewSync=new Ur({uid:this.manager.uid,view$:this.view$,camera$:this.camera$,size$:this.size$,stageRect$:(i=this.manager.boxManager)==null?void 0:i.stageRect$,viewMode$:this.manager.windowManger.viewMode$,storeCamera:this.storeCamera,storeSize:this.storeSize}))},this.startListenWritableChange=()=>{this.sideEffectManager.add(()=>z.on("writableChange",i=>{i&&this.ensureCameraAndSize()}))},this.addCameraReaction=()=>{this.manager.refresher.add(te.MainViewCamera,this.cameraReaction),this.manager.refresher.add(te.MainViewSize,this.sizeReaction)},this.storeCurrentCamera=()=>{const i=this.view.camera;this.storeCamera(O({id:this.manager.uid},i))},this.storeCurrentSize=()=>{var s;const i=(s=this.manager.boxManager)==null?void 0:s.stageRect;i&&this.storeSize({id:this.manager.uid,width:i.width,height:i.height})},this.storeCamera=i=>{this.store.setMainViewCamera(i)},this.storeSize=i=>{this.store.setMainViewSize(i)},this.cameraReaction=()=>S.reaction(()=>this.mainViewCamera,i=>{if(i){const s=S.toJS(i);v.isEqual(s,this.camera$.value)||this.camera$.setValue(s)}},{fireImmediately:!0}),this.sizeReaction=()=>S.reaction(()=>this.mainViewSize,i=>{if(i){const s=S.toJS(i);v.isEqual(s,this.size$.value)||this.size$.setValue(s)}},{fireImmediately:!0}),this.mainViewClickListener=()=>{this.mainViewClickHandler()},this.setMainViewSize=v.debounce(i=>{this.store.setMainViewSize(ge(O({},i),{id:this.manager.uid}))},50),this.onCameraOrSizeUpdated=()=>{G.emit("cameraStateChange",this.cameraState)},this.mainView=this.createMainView(),z.once("mainViewMounted").then(()=>{this.addMainViewListener(),this.start(),this.ensureCameraAndSize(),this.startListenWritableChange()}),this.sideEffectManager.add(()=>[z.on("startReconnect",()=>{Ar(this.mainView)})]),this.createViewSync(),this.sideEffectManager.add(()=>z.on("focusedChange",({focused:i})=>{if(i===void 0){const s=this.store.getMainViewScenePath();s&&zt(this.manager.room,s)}})),this.camera$.reaction(i=>{i&&G.emit("baseCameraChange",i)}),this.size$.reaction(i=>{i&&G.emit("baseSizeChange",i)})}ensureCameraAndSize(){var e;if(!this.mainViewCamera||!this.mainViewSize){this.manager.dispatchInternalEvent(Q.InitMainViewCamera),this.storeCamera(O({id:this.manager.uid},this.view.camera));const i=(e=this.manager.boxManager)==null?void 0:e.stageRect;i&&!this.mainViewSize&&this.storeSize({id:this.manager.uid,width:i.width,height:i.height})}}get mainViewCamera(){return this.store.getMainViewCamera()}get mainViewSize(){return this.store.getMainViewSize()}get didRelease(){return v.get(this.view,["didRelease"])}start(){this.started||(this.addCameraListener(),this.addCameraReaction(),this.started=!0)}get view(){return this.mainView}get cameraState(){return O(O({},this.view.camera),this.view.size)}createMainView(){const e=Hr(this.manager.displayer),i=this.store.getMainViewScenePath();return i&&dt(e,i),this.view$.setValue(e),e}onReconnect(){if(this.didRelease)this.rebind();else{const e=this.store.getMainViewScenePath();this.setFocusScenePath(e)}}setFocusScenePath(e){if(e)return dt(this.view,e)}rebind(){const e=this.mainView.divElement,i=this.mainView.disableCameraTransform,s=O({},this.mainView.camera);this.stop(),Ar(this.mainView),this.removeMainViewListener(),this.mainView=this.createMainView(),this.mainView.disableCameraTransform=i,this.mainView.divElement=e,this.mainView.moveCamera(ge(O({},s),{animationMode:S.AnimationMode.Immediately})),this.addMainViewListener(),this.start()}addMainViewListener(){this.mainViewIsAddListener||this.view.divElement&&(this.view.divElement.addEventListener("click",this.mainViewClickListener),this.view.divElement.addEventListener("touchend",this.mainViewClickListener),this.mainViewIsAddListener=!0)}removeMainViewListener(){this.view.divElement&&(this.view.divElement.removeEventListener("click",this.mainViewClickListener),this.view.divElement.removeEventListener("touchend",this.mainViewClickListener)),this.mainViewIsAddListener=!1}async mainViewClickHandler(){var e;!this.manager.canOperate||(this.store.cleanFocus(),(e=this.manager.boxManager)==null||e.blurAllBox())}addCameraListener(){this.view.callbacks.on("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.on("onSizeUpdated",this.onCameraOrSizeUpdated)}removeCameraListener(){this.view.callbacks.off("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.off("onSizeUpdated",this.onCameraOrSizeUpdated)}stop(){this.removeCameraListener(),this.manager.refresher.remove(te.MainViewCamera),this.manager.refresher.remove(te.MainViewSize),this.started=!1}destroy(){this.camera$.destroy(),this.size$.destroy(),this.view$.destroy(),this.removeMainViewListener(),this.stop(),this.sideEffectManager.flushAll()}}class rl{constructor(e){this.context=e,this.addRedoUndoListeners=i=>{if(i===void 0)this.addViewCallbacks(this.context.mainView(),this.onCanRedoStepsUpdate,this.onCanUndoStepsUpdate);else{const s=this.context.getAppProxy(i);s&&s.view&&this.addViewCallbacks(s.view,this.onCanRedoStepsUpdate,this.onCanUndoStepsUpdate)}},this.addViewCallbacks=(i,s,r)=>{s(i.canRedoSteps),r(i.canUndoSteps),i.callbacks.on("onCanRedoStepsUpdate",s),i.callbacks.on("onCanUndoStepsUpdate",r)},this.disposeViewCallbacks=i=>{i.callbacks.off("onCanRedoStepsUpdate",this.onCanRedoStepsUpdate),i.callbacks.off("onCanUndoStepsUpdate",this.onCanUndoStepsUpdate)},this.onCanRedoStepsUpdate=i=>{G.emit("canRedoStepsChange",i)},this.onCanUndoStepsUpdate=i=>{G.emit("canUndoStepsChange",i)},this.disposePrevFocusViewRedoUndoListeners=i=>{let s;if(i===void 0)s=this.context.mainView();else{const r=this.context.getAppProxy(i);r&&r.view&&(s=r.view)}s&&this.disposeViewCallbacks(s)},z.on("focusedChange",i=>{this.disposePrevFocusViewRedoUndoListeners(i.prev),setTimeout(()=>{this.addRedoUndoListeners(i.focused)},0)}),z.on("rootDirRemoved",()=>{this.disposePrevFocusViewRedoUndoListeners(e.focus()),this.addRedoUndoListeners(e.focus())}),this.addRedoUndoListeners(e.focus())}destroy(){this.disposePrevFocusViewRedoUndoListeners(this.context.focus())}}class al{constructor(e){this.windowManger=e,this.appProxies=new Map,this.appStatus=new Map,this.store=el,this.isReplay=this.windowManger.isReplay,this.mainViewScenesLength=0,this.callbacksNode=null,this.appCreateQueue=new xo,this.sceneIndex$=new w.Val(void 0),this.focused$=new w.Val(void 0),this.members$=new w.Val([]),this.sideEffectManager=new ve.SideEffectManager,this.sceneState=null,this.rootDirRemoving=!1,this.onRemoveScenes=async i=>{var r,a;const{scenePath:s}=i;if(s===xe){await this.onRootDirRemoved(),this.dispatchInternalEvent(Q.RootDirRemoved);return}if(Oo(s)){let n=this.mainView.focusSceneIndex||0,o=(r=this.callbacksNode)==null?void 0:r.scenes[n];o||(n=0,o=(a=this.callbacksNode)==null?void 0:a.scenes[n]),o&&await this.setMainViewScenePath(`${xe}${o}`),await this.setMainViewSceneIndex(n)}else this.appProxies.forEach(n=>{n.onRemoveScene(s)})},this.onReadonlyChanged=()=>{this.appProxies.forEach(i=>{i.emitAppIsWritableChange()})},this.onPlayerSeekStart=async()=>{await this.closeAll()},this.onPlayerSeekDone=async i=>{await this.attributesUpdateCallback(this.attributes.apps),this.appProxies.forEach(s=>{s.onSeek(i)})},this.createRootDirScenesCallback=()=>{let i=!1;this.callbacksNode&&(this.callbacksNode.dispose(),i=!0),this.callbacksNode=this.displayer.createScenesCallback(xe,{onAddScene:this.onSceneChange,onRemoveScene:async(s,r)=>{await this.onSceneChange(s),z.emit("rootDirSceneRemoved",r)}}),this.callbacksNode&&(this.updateSceneState(this.callbacksNode),this.mainViewScenesLength=this.callbacksNode.scenes.length,i&&this.emitMainViewScenesChange(this.callbacksNode.scenes.length))},this.removeSceneByIndex=async i=>{var a;const s=es(i,this.windowManger.pageState);this.setSceneIndexWithoutSync(s),this.dispatchInternalEvent(Q.SetAppFocusIndex,{type:"main",index:s});const r=(a=this.callbacksNode)==null?void 0:a.scenes[i];return setTimeout(()=>{r&&qi(this.room,`${xe}${r}`,i)},100),new Promise((n,o)=>{z.once("rootDirSceneRemoved").then(c=>{c===r&&n(!0)}).catch(c=>{console.log(`[WindowManager]: removePage error: ${c}`),o(!1)})})},this.setSceneIndexWithoutSync=i=>{var r;const s=(r=this.callbacksNode)==null?void 0:r.scenes[i];s&&this.mainViewProxy.setFocusScenePath(`${xe}${s}`)},this.onSceneChange=i=>(this.mainViewScenesLength=i.scenes.length,this.updateSceneState(i),this.emitMainViewScenesChange(this.mainViewScenesLength)),this.emitMainViewScenesChange=i=>Promise.all([G.emit("mainViewScenesLengthChange",i),z.emit("changePageState")]),this.updateSceneState=i=>{const s=this.store.getMainViewSceneIndex()||0;let r=i.scenes[s];r||(r=i.scenes[this.mainView.focusSceneIndex||0]),this.sceneState={scenePath:`${xe}${r}`,contextPath:i.path,index:s,scenes:i.scenes.map(a=>({name:a})),sceneName:r},G.emit("sceneStateChange",this.sceneState)},this.onBoxMove=i=>{this.dispatchInternalEvent(Q.AppMove,i),this.store.updateAppState(i.appId,Ne.Position,{x:i.x,y:i.y})},this.onBoxResize=i=>{i.width&&i.height&&(this.dispatchInternalEvent(Q.AppResize,i),this.store.updateAppState(i.appId,Ne.Size,{width:i.width,height:i.height}))},this.onBoxFocus=i=>{this.windowManger.safeSetAttributes({focus:i.appId})},this.onBoxClose=i=>{const s=this.appProxies.get(i.appId);s&&s.destroy(!1,!0,!0,i.error)},this.onBoxStateChange=i=>{this.dispatchInternalEvent(Q.AppBoxStateChange,i)},this.addAppsChangeListener=()=>{this.refresher.add("apps",()=>Vr(()=>this.attributes.apps,()=>{this.attributesUpdateCallback(this.attributes.apps)}))},this.addAppCloseListener=()=>{var i;(i=this.refresher)==null||i.add("appsClose",()=>Wo(this.attributes.apps,()=>{this.onAppDelete(this.attributes.apps)}))},this.onMainViewIndexChange=i=>{i!==void 0&&this.sceneIndex$.value!==i&&(G.emit("mainViewSceneIndexChange",i),z.emit("changePageState"),this.callbacksNode&&this.updateSceneState(this.callbacksNode),this.sceneIndex$.setValue(i))},this.onFocusChange=i=>{var s;this.focused$.value!==i&&(G.emit("focusedChange",i),z.emit("focusedChange",{focused:i,prev:this.focused$.value}),this.focused$.setValue(i),i!==void 0&&((s=this.boxManager)==null||s.focusBox({appId:i}),setTimeout(()=>{const r=this.appProxies.get(i);r&&(r.onFocus(),me.notifyApp(r.kind,"focus",{appId:i}))},0)))},this.attributesUpdateCallback=v.debounce(i=>this._attributesUpdateCallback(i),100),this.onRegisteredChange=i=>{!i||Object.entries(i).forEach(([s,r])=>{me.appClasses.has(s)||me.register({kind:s,src:r.src,name:r.name})})},this.onMinimized=i=>{var s,r;((s=this.boxManager)==null?void 0:s.minimized)!==i&&(i===!0&&((r=this.boxManager)==null||r.blurAllBox()),setTimeout(()=>{var a;(a=this.boxManager)==null||a.setMinimized(Boolean(i))},0))},this.onAppDelete=async i=>{const s=Object.keys(i);for(const[r,a]of this.appProxies.entries())s.includes(r)||await a.destroy(!0,!1,!0)},this.closeAll=async()=>{for(const[i,s]of this.appProxies.entries())await s.destroy(!0,!1,!0)},this.displayerStateListener=i=>{const s=i.sceneState;if(s){const r=s.scenePath;this.appProxies.forEach(a=>{a.scenePath&&r.startsWith(a.scenePath)&&(a.emitAppSceneStateChange(s),a.setFullPath(r))})}this.appProxies.forEach(r=>{r.appEmitter.emit("roomStateChange",i)}),i.roomMembers&&this.members$.setValue(Rr(i.roomMembers)),z.emit("observerIdChange",this.displayer.observerId),i.memberState&&z.emit("memberStateChange",S.toJS(i.memberState))},this.displayerWritableListener=i=>{var a,n;const s=!i,r=this.windowManger.readonly===void 0||!this.windowManger.readonly;this.windowManger.readonly===void 0?(a=this.boxManager)==null||a.setReadonly(i):(n=this.boxManager)==null||n.setReadonly(!(s&&r)),this.appProxies.forEach(o=>{o.emitAppIsWritableChange()}),s&&this.room&&this.room.disableSerialization===!0&&(this.room.disableSerialization=!1),z.emit("writableChange",s)},this.updateSceneIndex=()=>{const i=this.store.getMainViewScenePath(),s=Ji(i),r=ut(this.displayer)[s];if(r.length){const a=i.replace(s,"").replace("/",""),n=r.findIndex(o=>o.name===a);v.isInteger(n)&&n>=0&&this.safeSetAttributes({_mainSceneIndex:n})}},this.updateRootDirRemoving=i=>{this.rootDirRemoving=i},this.displayer=e.displayer,this.store.setContext({getAttributes:()=>this.attributes,safeSetAttributes:i=>this.safeSetAttributes(i),safeUpdateAttributes:(i,s)=>this.safeUpdateAttributes(i,s)}),this.mainViewProxy=new sl(this),this.viewManager=new tl(this.displayer),this.appListeners=new Ho(this),this.displayer.callbacks.on(this.eventName,this.displayerStateListener),this.appListeners.addListeners(),this.refresher=oo,this.refresher.setRoom(this.room),this.refresher.setContext({emitter:z}),this.sideEffectManager.add(()=>()=>{var i,s,r;this.appCreateQueue.destroy(),this.mainViewProxy.destroy(),(i=this.refresher)==null||i.destroy(),this.viewManager.destroy(),(s=this.boxManager)==null||s.destroy(),(r=this.callbacksNode)==null||r.dispose()}),z.once("onCreated").then(()=>this.onCreated()),z.on("onReconnected",()=>this.onReconnected()),S.isPlayer(this.displayer)&&(z.on("seekStart",this.onPlayerSeekStart),z.on("seek",this.onPlayerSeekDone)),z.on("removeScenes",this.onRemoveScenes),z.on("setReadonly",this.onReadonlyChanged),this.createRootDirScenesCallback(),me.setSyncRegisterApp(i=>{this.safeUpdateAttributes([te.Registered,i.kind],i)}),this.members$.setValue(Rr(this.displayer.state.roomMembers))}async onRootDirRemoved(e=!0){await this.setMainViewScenePath(Mr),this.createRootDirScenesCallback();for(const[i,s]of this.appProxies.entries())s.view&&await this.closeApp(i,e);this.mainViewProxy.rebind(),await z.emit("rootDirRemoved"),this.updateRootDirRemoving(!1)}get eventName(){return S.isRoom(this.displayer)?"onRoomStateChanged":"onPlayerStateChanged"}get attributes(){return this.windowManger.attributes}get canOperate(){return this.windowManger.canOperate}get room(){return S.isRoom(this.displayer)?this.displayer:void 0}get mainView(){return this.mainViewProxy.view}get focusApp(){if(this.store.focus)return this.appProxies.get(this.store.focus)}get uid(){var e;return((e=this.room)==null?void 0:e.uid)||""}getMainViewSceneDir(){const e=this.store.getMainViewScenePath();if(e)return Ji(e);throw new Error("[WindowManager]: mainViewSceneDir not found")}async onCreated(){var e;if(await this.attributesUpdateCallback(this.attributes.apps),z.emit("updateManagerRect"),He.on("move",this.onBoxMove),He.on("resize",this.onBoxResize),He.on("focus",this.onBoxFocus),He.on("close",this.onBoxClose),He.on("boxStateChange",this.onBoxStateChange),this.addAppsChangeListener(),this.addAppCloseListener(),this.refresher.add("maximized",()=>S.autorun(()=>{var s;const i=this.attributes.maximized;(s=this.boxManager)==null||s.setMaximized(Boolean(i))})),this.refresher.add("minimized",()=>S.autorun(()=>{const i=this.attributes.minimized;this.onMinimized(i)})),this.refresher.add("mainViewIndex",()=>S.autorun(()=>{const i=v.get(this.attributes,"_mainSceneIndex");this.onMainViewIndexChange(i)})),this.refresher.add("focusedChange",()=>S.autorun(()=>{const i=v.get(this.attributes,"focus");this.onFocusChange(i)})),this.refresher.add("registeredChange",()=>S.autorun(()=>{const i=v.get(this.attributes,te.Registered);this.onRegisteredChange(i)})),!this.attributes.apps||Object.keys(this.attributes.apps).length===0){const i=this.store.getMainViewScenePath();if(!i)return;this.resetScenePath(i)}this.displayerWritableListener(!((e=this.room)!=null&&e.isWritable)),this.displayer.callbacks.on("onEnableWriteNowChanged",this.displayerWritableListener),this.focused$.setValue(this.attributes.focus),this.sideEffectManager.add(()=>{const i=new rl({mainView:()=>this.mainViewProxy.view,focus:()=>this.attributes.focus,getAppProxy:s=>this.appProxies.get(s)});return()=>i.destroy()})}async _attributesUpdateCallback(e){if(e&&ue.container){const i=Object.keys(e);i.length===0&&this.appCreateQueue.emitReady();let s=i.map(r=>e[r].setup?{id:r,createdAt:e[r].createdAt}:{});this.isReplay&&(s=i.map(r=>({id:r,createdAt:e[r].createdAt})));for(const{id:r}of v.orderBy(s,"createdAt","asc"))if(r&&!this.appProxies.has(r)&&!this.appStatus.has(r)){const a=e[r];try{if(!this.attributes[r])throw new Error("appAttributes is undefined");this.appCreateQueue.push(()=>(this.appStatus.set(r,Gi.StartCreate),this.baseInsertApp({kind:a.kind,options:a.options,isDynamicPPT:a.isDynamicPPT},r,!1))),this.focusByAttributes(e)}catch(n){console.warn("[WindowManager]: Insert App Error",n)}}}}refresh(){this.attributesUpdateCallback(this.attributes.apps)}setBoxManager(e){this.boxManager=e,this.mainViewProxy.createViewSync()}resetMaximized(){var e;(e=this.boxManager)==null||e.setMaximized(Boolean(this.store.getMaximized()))}resetMinimized(){var e;(e=this.boxManager)==null||e.setMinimized(Boolean(this.store.getMinimized()))}bindMainView(e,i){const s=this.mainViewProxy.view;s.disableCameraTransform=i,li(30).then(()=>{s.divElement=e,z.emit("mainViewMounted")}),s.focusScenePath||this.setMainViewFocusPath()}setMainViewFocusPath(e){var s;const i=e||this.store.getMainViewScenePath();if(i)return dt(this.mainView,i),((s=this.mainView)==null?void 0:s.focusScenePath)===i}resetScenePath(e){this.displayer.state.sceneState.scenePath!==e&&zt(this.room,e)}async addApp(e,i){Xe("addApp",e);const{appId:s,needFocus:r}=await this.beforeAddApp(e,i),a=await this.baseInsertApp(e,s,!0,r);return this.afterAddApp(a),a==null?void 0:a.id}async beforeAddApp(e,i){var n,o;const s=await Lo(e.kind);this.appStatus.set(s,Gi.StartCreate);const r=(n=e.attributes)!=null?n:{};this.safeUpdateAttributes([s],r),this.store.setupAppAttributes(e,s,i);const a=!((o=this.boxManager)!=null&&o.minimized);return a&&this.store.setAppFocus(s,!0),{appId:s,needFocus:a}}afterAddApp(e){var i,s;if(e&&e.box){const r=e.box;He.emit("move",{appId:e.id,x:r==null?void 0:r.intrinsicX,y:r==null?void 0:r.intrinsicY}),this.store.updateAppState(e.id,Ne.ZIndex,r.zIndex)}(i=this.boxManager)!=null&&i.minimized&&((s=this.boxManager)==null||s.setMinimized(!1,!1))}async closeApp(e,i=!0){const s=this.appProxies.get(e);s&&s.destroy(!0,i,!1)}async baseInsertApp(e,i,s,r){if(this.appProxies.has(i)){console.warn("[WindowManager]: app duplicate exists and cannot be created again");return}const a=new ts(e,this,i,s);if(a)return await a.baseInsertApp(r),this.appStatus.delete(i),a;throw this.appStatus.delete(i),new Error("[WindowManger]: initialize AppProxy failed")}safeSetAttributes(e){this.windowManger.safeSetAttributes(e)}safeUpdateAttributes(e,i){this.windowManger.safeUpdateAttributes(e,i)}async setMainViewScenePath(e){if(this.room){const i=this.displayer.scenePathType(e);if(Ji(e)!==xe)throw new Error('[WindowManager]: main view scenePath must in root dir "/"');if(i===S.ScenePathType.None)throw new Error(`[WindowManager]: ${e} not valid scene`);if(i===S.ScenePathType.Page)await this._setMainViewScenePath(e);else if(i===S.ScenePathType.Dir){const r=jo(this.displayer,e);r&&await this._setMainViewScenePath(r)}}}async _setMainViewScenePath(e){this.setMainViewFocusPath(e)&&(this.safeSetAttributes({_mainScenePath:e}),this.store.setMainViewFocusPath(this.mainView),this.updateSceneIndex(),this.dispatchSetMainViewScenePath(e))}async setMainViewSceneIndex(e){var i;if(this.room){if(this.store.getMainViewSceneIndex()===e)return;const s=(i=this.callbacksNode)==null?void 0:i.scenes[e],r=`${xe}${s}`;if(s)this.setMainViewFocusPath(r)&&(this.store.setMainViewScenePath(r),this.safeSetAttributes({_mainSceneIndex:e}),this.dispatchSetMainViewScenePath(r));else throw new Error(`[WindowManager]: ${e} not valid index`)}}dispatchSetMainViewScenePath(e){this.dispatchInternalEvent(Q.SetMainViewScenePath,{nextScenePath:e}),zt(this.room,e)}getAppInitPath(e){var s;const i=this.store.getAppAttributes(e);if(i)return(s=i==null?void 0:i.options)==null?void 0:s.scenePath}safeDispatchMagixEvent(e,i){this.canOperate&&this.displayer.dispatchMagixEvent(e,i)}focusByAttributes(e){var i;if(e&&Object.keys(e).length===((i=this.boxManager)==null?void 0:i.boxSize)){const s=this.store.focus;s&&this.boxManager.focusBox({appId:s})}}async onReconnected(){this.attributesUpdateCallback(this.attributes.apps);const i=Array.from(this.appProxies.values()).map(s=>s.onReconnected());this.mainViewProxy.onReconnect(),await Promise.all(i)}notifyContainerRectUpdate(e){this.appProxies.forEach(i=>{i.appEmitter.emit("containerRectUpdate",e)})}dispatchInternalEvent(e,i){this.safeDispatchMagixEvent(Yi,{eventName:e,payload:i})}destroy(){this.displayer.callbacks.off(this.eventName,this.displayerStateListener),this.displayer.callbacks.off("onEnableWriteNowChanged",this.displayerWritableListener),this.appListeners.removeListeners(),He.clearListeners(),z.clearListeners(),this.appProxies.size&&this.appProxies.forEach(e=>{e.destroy(!0,!1,!0)}),G.clearListeners(),this.sideEffectManager.flushAll(),this.sceneIndex$.destroy(),this.focused$.destroy(),this.members$.destroy()}}/*! *****************************************************************************
|
3
3
|
Copyright (c) Microsoft Corporation.
|
4
4
|
|
5
5
|
Permission to use, copy, modify, and/or distribute this software for any
|
@@ -12,7 +12,7 @@ var wp=Object.defineProperty,vp=Object.defineProperties;var xp=Object.getOwnProp
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
15
|
-
***************************************************************************** */var he=function(){return he=Object.assign||function(e){for(var i,s=1,r=arguments.length;s<r;s++){i=arguments[s];for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(e[a]=i[a])}return e},he.apply(this,arguments)};function is(t,e){var i={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(t);r<s.length;r++)e.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(t,s[r])&&(i[s[r]]=t[s[r]]);return i}var ss=0,Hr=typeof window!="undefined"&&window.requestAnimationFrame!==void 0?function(t){return window.requestAnimationFrame(t)}:function(t){var e=Date.now(),i=Math.max(0,16.7-(e-ss));ss=e+i,setTimeout(function(){return t(ss)},i)},nl=function(t){var e=[],i=[],s=0,r=!1,a=0,n=new WeakSet,o=new WeakSet,c={cancel:function(l){var d=i.indexOf(l);n.add(l),d!==-1&&i.splice(d,1)},process:function(l){var d;if(r=!0,d=[i,e],e=d[0],i=d[1],i.length=0,s=e.length,s){var u;for(a=0;a<s;a++)u=e[a],u(l),o.has(u)===!0&&!n.has(u)&&(c.schedule(u),t(!0))}r=!1},schedule:function(l,d,u){d===void 0&&(d=!1),u===void 0&&(u=!1);var p=u&&r,m=p?e:i;n.delete(l),d&&o.add(l),m.indexOf(l)===-1&&(m.push(l),p&&(s=e.length))}};return c},ol=40,Fr=1/60*1e3,hi=!0,Dt=!1,rs=!1,Lt={delta:0,timestamp:0},as=["read","update","preRender","render","postRender"],ll=function(t){return Dt=t},Wr=as.reduce(function(t,e){return t[e]=nl(ll),t},{}),cl=as.reduce(function(t,e){var i=Wr[e];return t[e]=function(s,r,a){return r===void 0&&(r=!1),a===void 0&&(a=!1),Dt||dl(),i.schedule(s,r,a),s},t},{}),hl=function(t){return Wr[t].process(Lt)},Zr=function(t){Dt=!1,Lt.delta=hi?Fr:Math.max(Math.min(t-Lt.timestamp,ol),1),hi||(Fr=Lt.delta),Lt.timestamp=t,rs=!0,as.forEach(hl),rs=!1,Dt&&(hi=!1,Hr(Zr))},dl=function(){Dt=!0,hi=!0,rs||Hr(Zr)},Yr=function(t,e){return function(i){return Math.max(Math.min(i,e),t)}},di=function(t){return t%1?Number(t.toFixed(5)):t},Qr=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,ui={test:function(t){return typeof t=="number"},parse:parseFloat,transform:function(t){return t}},Vt=he(he({},ui),{transform:Yr(0,1)}),pi=he(he({},ui),{default:1}),ns=function(t){return{test:function(e){return typeof e=="string"&&e.endsWith(t)&&e.split(" ").length===1},parse:parseFloat,transform:function(e){return""+e+t}}},ut=ns("deg"),$t=ns("%"),L=ns("px"),Gr=he(he({},$t),{parse:function(t){return $t.parse(t)/100},transform:function(t){return $t.transform(t*100)}}),ul=function(t){return t.substring(t.indexOf("(")+1,t.lastIndexOf(")"))},pl=Yr(0,255),os=function(t){return t.red!==void 0},ls=function(t){return t.hue!==void 0};function gl(t){return ul(t).replace(/(,|\/)/g," ").split(/ \s*/)}var qr=function(t){return function(e){if(typeof e!="string")return e;for(var i={},s=gl(e),r=0;r<4;r++)i[t[r]]=s[r]!==void 0?parseFloat(s[r]):1;return i}},ml=function(t){var e=t.red,i=t.green,s=t.blue,r=t.alpha,a=r===void 0?1:r;return"rgba("+e+", "+i+", "+s+", "+a+")"},fl=function(t){var e=t.hue,i=t.saturation,s=t.lightness,r=t.alpha,a=r===void 0?1:r;return"hsla("+e+", "+i+", "+s+", "+a+")"},cs=he(he({},ui),{transform:function(t){return Math.round(pl(t))}});function hs(t,e){return t.startsWith(e)&&Qr.test(t)}var gi={test:function(t){return typeof t=="string"?hs(t,"rgb"):os(t)},parse:qr(["red","green","blue","alpha"]),transform:function(t){var e=t.red,i=t.green,s=t.blue,r=t.alpha,a=r===void 0?1:r;return ml({red:cs.transform(e),green:cs.transform(i),blue:cs.transform(s),alpha:di(Vt.transform(a))})}},ds={test:function(t){return typeof t=="string"?hs(t,"hsl"):ls(t)},parse:qr(["hue","saturation","lightness","alpha"]),transform:function(t){var e=t.hue,i=t.saturation,s=t.lightness,r=t.alpha,a=r===void 0?1:r;return fl({hue:Math.round(e),saturation:$t.transform(di(i)),lightness:$t.transform(di(s)),alpha:di(Vt.transform(a))})}},Jr=he(he({},gi),{test:function(t){return typeof t=="string"&&hs(t,"#")},parse:function(t){var e="",i="",s="";return t.length>4?(e=t.substr(1,2),i=t.substr(3,2),s=t.substr(5,2)):(e=t.substr(1,1),i=t.substr(2,1),s=t.substr(3,1),e+=e,i+=i,s+=s),{red:parseInt(e,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:1}}}),Ve={test:function(t){return typeof t=="string"&&Qr.test(t)||os(t)||ls(t)},parse:function(t){return gi.test(t)?gi.parse(t):ds.test(t)?ds.parse(t):Jr.test(t)?Jr.parse(t):t},transform:function(t){return os(t)?gi.transform(t):ls(t)?ds.transform(t):t}},us=function(t){var e=t.onRead,i=t.onRender,s=t.uncachedValues,r=s===void 0?new Set:s,a=t.useCache,n=a===void 0?!0:a;return function(o){o===void 0&&(o={});var c=is(o,[]),l={},d=[],u=!1;function p(g,f){g.startsWith("--")&&(c.hasCSSVariable=!0);var b=l[g];l[g]=f,l[g]!==b&&(d.indexOf(g)===-1&&d.push(g),u||(u=!0,cl.render(m.render)))}var m={get:function(g,f){f===void 0&&(f=!1);var b=!f&&n&&!r.has(g)&&l[g]!==void 0;return b?l[g]:e(g,c)},set:function(g,f){if(typeof g=="string")p(g,f);else for(var b in g)p(b,g[b]);return this},render:function(g){return g===void 0&&(g=!1),(u||g===!0)&&(i(l,c,d),u=!1,d.length=0),this}};return m}},bl=/([a-z])([A-Z])/g,yl="$1-$2",mi=function(t){return t.replace(bl,yl).toLowerCase()},Xr=new Map,ps=new Map,Kr=["Webkit","Moz","O","ms",""],wl=Kr.length,vl=typeof document!="undefined",gs,ea=function(t,e){return ps.set(t,mi(e))},xl=function(t){gs=gs||document.createElement("div");for(var e=0;e<wl;e++){var i=Kr[e],s=i==="",r=s?t:i+t.charAt(0).toUpperCase()+t.slice(1);if(r in gs.style||s){if(s&&t==="clipPath"&&ps.has(t))return;Xr.set(t,r),ea(t,(s?"":"-")+mi(r))}}},Ml=function(t){return ea(t,t)},ta=function(t,e){e===void 0&&(e=!1);var i=e?ps:Xr;return i.has(t)||(vl?xl(t):Ml(t)),i.get(t)||t},Sl=["","X","Y","Z"],Cl=["translate","scale","rotate","skew","transformPerspective"],ms=Cl.reduce(function(t,e){return Sl.reduce(function(i,s){return i.push(e+s),i},t)},["x","y","z"]),Il=ms.reduce(function(t,e){return t[e]=!0,t},{});function fs(t){return Il[t]===!0}function _l(t,e){return ms.indexOf(t)-ms.indexOf(e)}var Al=new Set(["originX","originY","originZ"]);function kl(t){return Al.has(t)}var ia=he(he({},ui),{transform:Math.round}),Tl={color:Ve,backgroundColor:Ve,outlineColor:Ve,fill:Ve,stroke:Ve,borderColor:Ve,borderTopColor:Ve,borderRightColor:Ve,borderBottomColor:Ve,borderLeftColor:Ve,borderWidth:L,borderTopWidth:L,borderRightWidth:L,borderBottomWidth:L,borderLeftWidth:L,borderRadius:L,radius:L,borderTopLeftRadius:L,borderTopRightRadius:L,borderBottomRightRadius:L,borderBottomLeftRadius:L,width:L,maxWidth:L,height:L,maxHeight:L,size:L,top:L,right:L,bottom:L,left:L,padding:L,paddingTop:L,paddingRight:L,paddingBottom:L,paddingLeft:L,margin:L,marginTop:L,marginRight:L,marginBottom:L,marginLeft:L,rotate:ut,rotateX:ut,rotateY:ut,rotateZ:ut,scale:pi,scaleX:pi,scaleY:pi,scaleZ:pi,skew:ut,skewX:ut,skewY:ut,distance:L,translateX:L,translateY:L,translateZ:L,x:L,y:L,z:L,perspective:L,opacity:Vt,originX:Gr,originY:Gr,originZ:L,zIndex:ia,fillOpacity:Vt,strokeOpacity:Vt,numOctaves:ia},bs=function(t){return Tl[t]},Nl=function(t,e){return e&&typeof t=="number"?e.transform(t):t},jt="scrollLeft",Bt="scrollTop",sa=new Set([jt,Bt]),Pl=new Set([jt,Bt,"transform"]),El={x:"translateX",y:"translateY",z:"translateZ"};function ra(t){return typeof t=="function"}function zl(t,e,i,s,r,a){a===void 0&&(a=!0);var n="",o=!1;i.sort(_l);for(var c=i.length,l=0;l<c;l++){var d=i[l];n+=(El[d]||d)+"("+e[d]+") ",o=d==="z"?!0:o}return!o&&r?n+="translateZ(0)":n=n.trim(),ra(t.transform)?n=t.transform(e,s?"":n):a&&s&&(n="none"),n}function Dl(t,e,i,s,r,a,n,o){e===void 0&&(e=!0),i===void 0&&(i={}),s===void 0&&(s={}),r===void 0&&(r={}),a===void 0&&(a=[]),n===void 0&&(n=!1),o===void 0&&(o=!0);var c=!0,l=!1,d=!1;for(var u in t){var p=t[u],m=bs(u),g=Nl(p,m);fs(u)?(l=!0,s[u]=g,a.push(u),c&&(m.default&&p!==m.default||!m.default&&p!==0)&&(c=!1)):kl(u)?(r[u]=g,d=!0):(!Pl.has(u)||!ra(g))&&(i[ta(u,n)]=g)}return(l||typeof t.transform=="function")&&(i.transform=zl(t,s,a,c,e,o)),d&&(i.transformOrigin=(r.originX||"50%")+" "+(r.originY||"50%")+" "+(r.originZ||0)),i}function ys(t){var e=t===void 0?{}:t,i=e.enableHardwareAcceleration,s=i===void 0?!0:i,r=e.isDashCase,a=r===void 0?!0:r,n=e.allowTransformNone,o=n===void 0?!0:n,c={},l={},d={},u=[];return function(p){return u.length=0,Dl(p,s,c,l,d,u,a,o),c}}function Ll(t,e){var i=e.element,s=e.preparseOutput,r=bs(t);if(fs(t))return r&&r.default||0;if(sa.has(t))return i[t];var a=window.getComputedStyle(i,null).getPropertyValue(ta(t,!0))||0;return s&&r&&r.test(a)&&r.parse?r.parse(a):a}function Vl(t,e,i){var s=e.element,r=e.buildStyles,a=e.hasCSSVariable;if(Object.assign(s.style,r(t)),a)for(var n=i.length,o=0;o<n;o++){var c=i[o];c.startsWith("--")&&s.style.setProperty(c,t[c])}i.indexOf(jt)!==-1&&(s[jt]=t[jt]),i.indexOf(Bt)!==-1&&(s[Bt]=t[Bt])}var $l=us({onRead:Ll,onRender:Vl,uncachedValues:sa});function jl(t,e){e===void 0&&(e={});var i=e.enableHardwareAcceleration,s=e.allowTransformNone,r=is(e,["enableHardwareAcceleration","allowTransformNone"]);return $l(he({element:t,buildStyles:ys({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},r))}var aa=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),na=.5,oa=function(){return{style:{}}},ws=function(t,e){return L.transform(t*e)},Bl={x:0,y:0,width:0,height:0};function la(t,e,i){return typeof t=="string"?t:L.transform(e+i*t)}function Rl(t,e,i){return la(e,t.x,t.width)+" "+la(i,t.y,t.height)}var ca={enableHardwareAcceleration:!1,isDashCase:!1};function Ol(t,e,i,s,r,a){e===void 0&&(e=Bl),s===void 0&&(s=ys(ca)),r===void 0&&(r=oa()),a===void 0&&(a=!0);var n=t.attrX,o=t.attrY,c=t.originX,l=t.originY,d=t.pathLength,u=t.pathSpacing,p=u===void 0?1:u,m=t.pathOffset,g=m===void 0?0:m,f=is(t,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]),b=s(f);for(var x in b)if(x==="transform")r.style.transform=b[x];else{var M=a&&!aa.has(x)?mi(x):x;r[M]=b[x]}return(c!==void 0||l!==void 0||b.transform)&&(r.style.transformOrigin=Rl(e,c!==void 0?c:na,l!==void 0?l:na)),n!==void 0&&(r.x=n),o!==void 0&&(r.y=o),i!==void 0&&d!==void 0&&(r[a?"stroke-dashoffset":"strokeDashoffset"]=ws(-g,i),r[a?"stroke-dasharray":"strokeDasharray"]=ws(d,i)+" "+ws(p,i)),r}function Ul(t,e,i){i===void 0&&(i=!0);var s=oa(),r=ys(ca);return function(a){return Ol(a,t,e,r,s,i)}}var Hl=function(t){return typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()},Fl=function(t){try{return Hl(t)}catch{return{x:0,y:0,width:0,height:0}}},Wl=function(t){return t.tagName==="path"},Zl=us({onRead:function(t,e){var i=e.element;if(t=aa.has(t)?t:mi(t),fs(t)){var s=bs(t);return s&&s.default||0}else return i.getAttribute(t)},onRender:function(t,e){var i=e.element,s=e.buildAttrs,r=s(t);for(var a in r)a==="style"?Object.assign(i.style,r.style):i.setAttribute(a,r[a])}}),Yl=function(t){var e=Fl(t),i=Wl(t)&&t.getTotalLength?t.getTotalLength():void 0;return Zl({element:t,buildAttrs:Ul(e,i)})},Ql=us({useCache:!1,onRead:function(t){return t==="scrollTop"?window.pageYOffset:window.pageXOffset},onRender:function(t){var e=t.scrollTop,i=e===void 0?0:e,s=t.scrollLeft,r=s===void 0?0:s;return window.scrollTo(r,i)}}),vs=new WeakMap,Gl=function(t){return t instanceof HTMLElement||typeof t.click=="function"},ql=function(t){return t instanceof SVGElement||"ownerSVGElement"in t},Jl=function(t,e){var i;return t===window?i=Ql(t):Gl(t)?i=jl(t,e):ql(t)&&(i=Yl(t)),vs.set(t,i),i},Xl=function(t,e){return vs.has(t)?vs.get(t):Jl(t,e)};function Kl(t,e){var i=typeof t=="string"?document.querySelector(t):t;return Xl(i,e)}var Ne=function(e,i,s,r){var a=s?s.call(r,e,i):void 0;if(a!==void 0)return!!a;if(e===i)return!0;if(typeof e!="object"||!e||typeof i!="object"||!i)return!1;var n=Object.keys(e),o=Object.keys(i);if(n.length!==o.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(i),l=0;l<n.length;l++){var d=n[l];if(!c(d))return!1;var u=e[d],p=i[d];if(a=s?s.call(r,u,p,d):void 0,a===!1||a===void 0&&u!==p)return!1}return!0},ec=(()=>`.tele-fancy-scrollbar {
|
15
|
+
***************************************************************************** */var he=function(){return he=Object.assign||function(e){for(var i,s=1,r=arguments.length;s<r;s++){i=arguments[s];for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(e[a]=i[a])}return e},he.apply(this,arguments)};function is(t,e){var i={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(t);r<s.length;r++)e.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(t,s[r])&&(i[s[r]]=t[s[r]]);return i}var ss=0,Fr=typeof window!="undefined"&&window.requestAnimationFrame!==void 0?function(t){return window.requestAnimationFrame(t)}:function(t){var e=Date.now(),i=Math.max(0,16.7-(e-ss));ss=e+i,setTimeout(function(){return t(ss)},i)},nl=function(t){var e=[],i=[],s=0,r=!1,a=0,n=new WeakSet,o=new WeakSet,c={cancel:function(l){var d=i.indexOf(l);n.add(l),d!==-1&&i.splice(d,1)},process:function(l){var d;if(r=!0,d=[i,e],e=d[0],i=d[1],i.length=0,s=e.length,s){var u;for(a=0;a<s;a++)u=e[a],u(l),o.has(u)===!0&&!n.has(u)&&(c.schedule(u),t(!0))}r=!1},schedule:function(l,d,u){d===void 0&&(d=!1),u===void 0&&(u=!1);var p=u&&r,m=p?e:i;n.delete(l),d&&o.add(l),m.indexOf(l)===-1&&(m.push(l),p&&(s=e.length))}};return c},ol=40,Wr=1/60*1e3,hi=!0,Dt=!1,rs=!1,Lt={delta:0,timestamp:0},as=["read","update","preRender","render","postRender"],ll=function(t){return Dt=t},Zr=as.reduce(function(t,e){return t[e]=nl(ll),t},{}),cl=as.reduce(function(t,e){var i=Zr[e];return t[e]=function(s,r,a){return r===void 0&&(r=!1),a===void 0&&(a=!1),Dt||dl(),i.schedule(s,r,a),s},t},{}),hl=function(t){return Zr[t].process(Lt)},Yr=function(t){Dt=!1,Lt.delta=hi?Wr:Math.max(Math.min(t-Lt.timestamp,ol),1),hi||(Wr=Lt.delta),Lt.timestamp=t,rs=!0,as.forEach(hl),rs=!1,Dt&&(hi=!1,Fr(Yr))},dl=function(){Dt=!0,hi=!0,rs||Fr(Yr)},Qr=function(t,e){return function(i){return Math.max(Math.min(i,e),t)}},di=function(t){return t%1?Number(t.toFixed(5)):t},Gr=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,ui={test:function(t){return typeof t=="number"},parse:parseFloat,transform:function(t){return t}},Vt=he(he({},ui),{transform:Qr(0,1)}),pi=he(he({},ui),{default:1}),ns=function(t){return{test:function(e){return typeof e=="string"&&e.endsWith(t)&&e.split(" ").length===1},parse:parseFloat,transform:function(e){return""+e+t}}},pt=ns("deg"),$t=ns("%"),V=ns("px"),qr=he(he({},$t),{parse:function(t){return $t.parse(t)/100},transform:function(t){return $t.transform(t*100)}}),ul=function(t){return t.substring(t.indexOf("(")+1,t.lastIndexOf(")"))},pl=Qr(0,255),os=function(t){return t.red!==void 0},ls=function(t){return t.hue!==void 0};function gl(t){return ul(t).replace(/(,|\/)/g," ").split(/ \s*/)}var Jr=function(t){return function(e){if(typeof e!="string")return e;for(var i={},s=gl(e),r=0;r<4;r++)i[t[r]]=s[r]!==void 0?parseFloat(s[r]):1;return i}},ml=function(t){var e=t.red,i=t.green,s=t.blue,r=t.alpha,a=r===void 0?1:r;return"rgba("+e+", "+i+", "+s+", "+a+")"},fl=function(t){var e=t.hue,i=t.saturation,s=t.lightness,r=t.alpha,a=r===void 0?1:r;return"hsla("+e+", "+i+", "+s+", "+a+")"},cs=he(he({},ui),{transform:function(t){return Math.round(pl(t))}});function hs(t,e){return t.startsWith(e)&&Gr.test(t)}var gi={test:function(t){return typeof t=="string"?hs(t,"rgb"):os(t)},parse:Jr(["red","green","blue","alpha"]),transform:function(t){var e=t.red,i=t.green,s=t.blue,r=t.alpha,a=r===void 0?1:r;return ml({red:cs.transform(e),green:cs.transform(i),blue:cs.transform(s),alpha:di(Vt.transform(a))})}},ds={test:function(t){return typeof t=="string"?hs(t,"hsl"):ls(t)},parse:Jr(["hue","saturation","lightness","alpha"]),transform:function(t){var e=t.hue,i=t.saturation,s=t.lightness,r=t.alpha,a=r===void 0?1:r;return fl({hue:Math.round(e),saturation:$t.transform(di(i)),lightness:$t.transform(di(s)),alpha:di(Vt.transform(a))})}},Xr=he(he({},gi),{test:function(t){return typeof t=="string"&&hs(t,"#")},parse:function(t){var e="",i="",s="";return t.length>4?(e=t.substr(1,2),i=t.substr(3,2),s=t.substr(5,2)):(e=t.substr(1,1),i=t.substr(2,1),s=t.substr(3,1),e+=e,i+=i,s+=s),{red:parseInt(e,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:1}}}),Ve={test:function(t){return typeof t=="string"&&Gr.test(t)||os(t)||ls(t)},parse:function(t){return gi.test(t)?gi.parse(t):ds.test(t)?ds.parse(t):Xr.test(t)?Xr.parse(t):t},transform:function(t){return os(t)?gi.transform(t):ls(t)?ds.transform(t):t}},us=function(t){var e=t.onRead,i=t.onRender,s=t.uncachedValues,r=s===void 0?new Set:s,a=t.useCache,n=a===void 0?!0:a;return function(o){o===void 0&&(o={});var c=is(o,[]),l={},d=[],u=!1;function p(g,f){g.startsWith("--")&&(c.hasCSSVariable=!0);var b=l[g];l[g]=f,l[g]!==b&&(d.indexOf(g)===-1&&d.push(g),u||(u=!0,cl.render(m.render)))}var m={get:function(g,f){f===void 0&&(f=!1);var b=!f&&n&&!r.has(g)&&l[g]!==void 0;return b?l[g]:e(g,c)},set:function(g,f){if(typeof g=="string")p(g,f);else for(var b in g)p(b,g[b]);return this},render:function(g){return g===void 0&&(g=!1),(u||g===!0)&&(i(l,c,d),u=!1,d.length=0),this}};return m}},bl=/([a-z])([A-Z])/g,yl="$1-$2",mi=function(t){return t.replace(bl,yl).toLowerCase()},Kr=new Map,ps=new Map,ea=["Webkit","Moz","O","ms",""],wl=ea.length,vl=typeof document!="undefined",gs,ta=function(t,e){return ps.set(t,mi(e))},xl=function(t){gs=gs||document.createElement("div");for(var e=0;e<wl;e++){var i=ea[e],s=i==="",r=s?t:i+t.charAt(0).toUpperCase()+t.slice(1);if(r in gs.style||s){if(s&&t==="clipPath"&&ps.has(t))return;Kr.set(t,r),ta(t,(s?"":"-")+mi(r))}}},Ml=function(t){return ta(t,t)},ia=function(t,e){e===void 0&&(e=!1);var i=e?ps:Kr;return i.has(t)||(vl?xl(t):Ml(t)),i.get(t)||t},Sl=["","X","Y","Z"],Cl=["translate","scale","rotate","skew","transformPerspective"],ms=Cl.reduce(function(t,e){return Sl.reduce(function(i,s){return i.push(e+s),i},t)},["x","y","z"]),Il=ms.reduce(function(t,e){return t[e]=!0,t},{});function fs(t){return Il[t]===!0}function _l(t,e){return ms.indexOf(t)-ms.indexOf(e)}var Al=new Set(["originX","originY","originZ"]);function kl(t){return Al.has(t)}var sa=he(he({},ui),{transform:Math.round}),Tl={color:Ve,backgroundColor:Ve,outlineColor:Ve,fill:Ve,stroke:Ve,borderColor:Ve,borderTopColor:Ve,borderRightColor:Ve,borderBottomColor:Ve,borderLeftColor:Ve,borderWidth:V,borderTopWidth:V,borderRightWidth:V,borderBottomWidth:V,borderLeftWidth:V,borderRadius:V,radius:V,borderTopLeftRadius:V,borderTopRightRadius:V,borderBottomRightRadius:V,borderBottomLeftRadius:V,width:V,maxWidth:V,height:V,maxHeight:V,size:V,top:V,right:V,bottom:V,left:V,padding:V,paddingTop:V,paddingRight:V,paddingBottom:V,paddingLeft:V,margin:V,marginTop:V,marginRight:V,marginBottom:V,marginLeft:V,rotate:pt,rotateX:pt,rotateY:pt,rotateZ:pt,scale:pi,scaleX:pi,scaleY:pi,scaleZ:pi,skew:pt,skewX:pt,skewY:pt,distance:V,translateX:V,translateY:V,translateZ:V,x:V,y:V,z:V,perspective:V,opacity:Vt,originX:qr,originY:qr,originZ:V,zIndex:sa,fillOpacity:Vt,strokeOpacity:Vt,numOctaves:sa},bs=function(t){return Tl[t]},Nl=function(t,e){return e&&typeof t=="number"?e.transform(t):t},jt="scrollLeft",Bt="scrollTop",ra=new Set([jt,Bt]),Pl=new Set([jt,Bt,"transform"]),El={x:"translateX",y:"translateY",z:"translateZ"};function aa(t){return typeof t=="function"}function zl(t,e,i,s,r,a){a===void 0&&(a=!0);var n="",o=!1;i.sort(_l);for(var c=i.length,l=0;l<c;l++){var d=i[l];n+=(El[d]||d)+"("+e[d]+") ",o=d==="z"?!0:o}return!o&&r?n+="translateZ(0)":n=n.trim(),aa(t.transform)?n=t.transform(e,s?"":n):a&&s&&(n="none"),n}function Dl(t,e,i,s,r,a,n,o){e===void 0&&(e=!0),i===void 0&&(i={}),s===void 0&&(s={}),r===void 0&&(r={}),a===void 0&&(a=[]),n===void 0&&(n=!1),o===void 0&&(o=!0);var c=!0,l=!1,d=!1;for(var u in t){var p=t[u],m=bs(u),g=Nl(p,m);fs(u)?(l=!0,s[u]=g,a.push(u),c&&(m.default&&p!==m.default||!m.default&&p!==0)&&(c=!1)):kl(u)?(r[u]=g,d=!0):(!Pl.has(u)||!aa(g))&&(i[ia(u,n)]=g)}return(l||typeof t.transform=="function")&&(i.transform=zl(t,s,a,c,e,o)),d&&(i.transformOrigin=(r.originX||"50%")+" "+(r.originY||"50%")+" "+(r.originZ||0)),i}function ys(t){var e=t===void 0?{}:t,i=e.enableHardwareAcceleration,s=i===void 0?!0:i,r=e.isDashCase,a=r===void 0?!0:r,n=e.allowTransformNone,o=n===void 0?!0:n,c={},l={},d={},u=[];return function(p){return u.length=0,Dl(p,s,c,l,d,u,a,o),c}}function Ll(t,e){var i=e.element,s=e.preparseOutput,r=bs(t);if(fs(t))return r&&r.default||0;if(ra.has(t))return i[t];var a=window.getComputedStyle(i,null).getPropertyValue(ia(t,!0))||0;return s&&r&&r.test(a)&&r.parse?r.parse(a):a}function Vl(t,e,i){var s=e.element,r=e.buildStyles,a=e.hasCSSVariable;if(Object.assign(s.style,r(t)),a)for(var n=i.length,o=0;o<n;o++){var c=i[o];c.startsWith("--")&&s.style.setProperty(c,t[c])}i.indexOf(jt)!==-1&&(s[jt]=t[jt]),i.indexOf(Bt)!==-1&&(s[Bt]=t[Bt])}var $l=us({onRead:Ll,onRender:Vl,uncachedValues:ra});function jl(t,e){e===void 0&&(e={});var i=e.enableHardwareAcceleration,s=e.allowTransformNone,r=is(e,["enableHardwareAcceleration","allowTransformNone"]);return $l(he({element:t,buildStyles:ys({enableHardwareAcceleration:i,allowTransformNone:s}),preparseOutput:!0},r))}var na=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),oa=.5,la=function(){return{style:{}}},ws=function(t,e){return V.transform(t*e)},Bl={x:0,y:0,width:0,height:0};function ca(t,e,i){return typeof t=="string"?t:V.transform(e+i*t)}function Rl(t,e,i){return ca(e,t.x,t.width)+" "+ca(i,t.y,t.height)}var ha={enableHardwareAcceleration:!1,isDashCase:!1};function Ol(t,e,i,s,r,a){e===void 0&&(e=Bl),s===void 0&&(s=ys(ha)),r===void 0&&(r=la()),a===void 0&&(a=!0);var n=t.attrX,o=t.attrY,c=t.originX,l=t.originY,d=t.pathLength,u=t.pathSpacing,p=u===void 0?1:u,m=t.pathOffset,g=m===void 0?0:m,f=is(t,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]),b=s(f);for(var x in b)if(x==="transform")r.style.transform=b[x];else{var M=a&&!na.has(x)?mi(x):x;r[M]=b[x]}return(c!==void 0||l!==void 0||b.transform)&&(r.style.transformOrigin=Rl(e,c!==void 0?c:oa,l!==void 0?l:oa)),n!==void 0&&(r.x=n),o!==void 0&&(r.y=o),i!==void 0&&d!==void 0&&(r[a?"stroke-dashoffset":"strokeDashoffset"]=ws(-g,i),r[a?"stroke-dasharray":"strokeDasharray"]=ws(d,i)+" "+ws(p,i)),r}function Ul(t,e,i){i===void 0&&(i=!0);var s=la(),r=ys(ha);return function(a){return Ol(a,t,e,r,s,i)}}var Hl=function(t){return typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()},Fl=function(t){try{return Hl(t)}catch{return{x:0,y:0,width:0,height:0}}},Wl=function(t){return t.tagName==="path"},Zl=us({onRead:function(t,e){var i=e.element;if(t=na.has(t)?t:mi(t),fs(t)){var s=bs(t);return s&&s.default||0}else return i.getAttribute(t)},onRender:function(t,e){var i=e.element,s=e.buildAttrs,r=s(t);for(var a in r)a==="style"?Object.assign(i.style,r.style):i.setAttribute(a,r[a])}}),Yl=function(t){var e=Fl(t),i=Wl(t)&&t.getTotalLength?t.getTotalLength():void 0;return Zl({element:t,buildAttrs:Ul(e,i)})},Ql=us({useCache:!1,onRead:function(t){return t==="scrollTop"?window.pageYOffset:window.pageXOffset},onRender:function(t){var e=t.scrollTop,i=e===void 0?0:e,s=t.scrollLeft,r=s===void 0?0:s;return window.scrollTo(r,i)}}),vs=new WeakMap,Gl=function(t){return t instanceof HTMLElement||typeof t.click=="function"},ql=function(t){return t instanceof SVGElement||"ownerSVGElement"in t},Jl=function(t,e){var i;return t===window?i=Ql(t):Gl(t)?i=jl(t,e):ql(t)&&(i=Yl(t)),vs.set(t,i),i},Xl=function(t,e){return vs.has(t)?vs.get(t):Jl(t,e)};function Kl(t,e){var i=typeof t=="string"?document.querySelector(t):t;return Xl(i,e)}var _e=function(e,i,s,r){var a=s?s.call(r,e,i):void 0;if(a!==void 0)return!!a;if(e===i)return!0;if(typeof e!="object"||!e||typeof i!="object"||!i)return!1;var n=Object.keys(e),o=Object.keys(i);if(n.length!==o.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(i),l=0;l<n.length;l++){var d=n[l];if(!c(d))return!1;var u=e[d],p=i[d];if(a=s?s.call(r,u,p,d):void 0,a===!1||a===void 0&&u!==p)return!1}return!0},ec=(()=>`.tele-fancy-scrollbar {
|
16
16
|
overscroll-behavior: contain;
|
17
17
|
overflow: auto;
|
18
18
|
overflow-y: scroll;
|
@@ -120,8 +120,8 @@ var wp=Object.defineProperty,vp=Object.defineProperties;var xp=Object.getOwnProp
|
|
120
120
|
color: var(--tele-boxFooterColor, #e9e9e9);
|
121
121
|
background-color: #383b42;
|
122
122
|
background-color: var(--tele-boxFooterBackground, #383b42);
|
123
|
-
}`)(),ha=(t=>(t.Light="light",t.Dark="dark",t.Auto="auto",t))(ha||{}),se=(t=>(t.Normal="normal",t.Minimized="minimized",t.Maximized="maximized",t))(se||{}),fe=(t=>(t.DarkMode="dark_mode",t.PrefersColorScheme="prefers_color_scheme",t.Close="close",t.Focus="focus",t.Blur="blur",t.IntrinsicMove="intrinsic_move",t.IntrinsicResize="intrinsic_resize",t.ZIndex="z_index",t.State="state",t.Minimized="minimized",t.Maximized="maximized",t.Readonly="readonly",t.Destroyed="destroyed",t))(fe||{}),$e=(t=>(t.Close="close",t.Maximize="maximize",t.Minimize="minimize",t))($e||{}),je=(t=>(t.North="n",t.South="s",t.West="w",t.East="e",t.NorthWest="nw",t.NorthEast="ne",t.SouthEast="se",t.SouthWest="sw",t))(je||{});const xs="dh";function xt(t,e,i){return Math.min(Math.max(t,e),i)}function Rt(t){t.stopPropagation(),t.cancelable&&t.preventDefault()}let tc=1;function ic(){return`New Box ${tc++}`}class da{constructor({readonly$:e,state$:i,title$:s,buttons:r,onEvent:a,onDragStart:n,namespace:o="telebox"}){this.sideEffect=new ye.SideEffectManager,this.lastTitleBarClick={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarClick=c=>{var l;if(!c.isPrimary||this.readonly$.value||c.button!==0||(l=c.target.dataset)!=null&&l.teleTitleBarNoDblClick)return;Rt(c);const d=Date.now();d-this.lastTitleBarClick.timestamp<=500?Math.abs(c.clientX-this.lastTitleBarClick.clientX)<=5&&Math.abs(c.clientY-this.lastTitleBarClick.clientY)<=5&&this.onEvent&&this.onEvent({type:$e.Maximize}):this.onDragStart&&this.onDragStart(c),this.lastTitleBarClick.timestamp=d,this.lastTitleBarClick.clientX=c.clientX,this.lastTitleBarClick.clientY=c.clientY},this.readonly$=e,this.state$=i,this.title$=s,this.onEvent=a,this.onDragStart=n,this.namespace=o,this.buttons=r||[{type:$e.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:$e.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:c=>c===se.Maximized},{type:$e.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}],this.$dragArea=this.renderDragArea()}render(){if(!this.$titleBar){this.$titleBar=document.createElement("div"),this.$titleBar.className=this.wrapClassName("titlebar");const e=document.createElement("div");e.className=this.wrapClassName("title-area"),e.dataset.teleBoxHandle=xs;const i=document.createElement("h1");i.className=this.wrapClassName("title"),i.dataset.teleBoxHandle=xs,e.appendChild(i),e.appendChild(this.$dragArea);const s=document.createElement("div");s.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach(({iconClassName:r},a)=>{const n=String(a),o=document.createElement("button");o.className=`${this.wrapClassName("titlebar-btn")} ${r}`,o.dataset.teleTitleBarBtnIndex=n,o.dataset.teleTitleBarNoDblClick="true",s.appendChild(o)}),this.sideEffect.addDisposer(this.title$.subscribe(r=>{i.textContent=r,i.title=r}),"render-title"),this.sideEffect.addDisposer(this.state$.subscribe(r=>{this.buttons.forEach((a,n)=>{var o;a.isActive&&((o=s.children[n])==null||o.classList.toggle("is-active",a.isActive(r)))})}),"render-state-btns"),this.sideEffect.addEventListener(s,"click",r=>{var a;if(this.readonly$.value)return;const n=r.target,o=Number((a=n.dataset)==null?void 0:a.teleTitleBarBtnIndex);if(!Number.isNaN(o)&&o<this.buttons.length){Rt(r);const c=this.buttons[o];this.onEvent&&this.onEvent({type:c.type,value:c.value})}},{},"render-btns-container-click"),this.$titleBar.appendChild(e),this.$titleBar.appendChild(s)}return this.$titleBar}renderDragArea(){const e=document.createElement("div");return e.className=this.wrapClassName("drag-area"),e.dataset.teleBoxHandle=xs,this.sideEffect.addEventListener(e,"pointerdown",this.handleTitleBarClick),e}dragHandle(){return this.$titleBar}wrapClassName(e){return`${this.namespace}-${e}`}destroy(){this.sideEffect.flushAll(),this.$titleBar&&(this.$titleBar=void 0,this.onDragStart=void 0,this.onEvent=void 0)}}function ua([t,e]){if(e<=0||t.width<=0||t.height<=0)return t;const i=t.width*e;if(i===t.height)return t;if(i<t.height)return{x:0,y:(t.height-i)/2,width:t.width,height:i};const s=t.height/e;return{x:(t.width-s)/2,y:0,width:s,height:t.height}}const sc=window.ResizeObserver||fr.ResizeObserver;class rc{constructor({id:e=ye.genUID(),title:i=ic(),namespace:s="telebox",visible:r=!0,width:a=.5,height:n=.5,minWidth:o=0,minHeight:c=0,x:l=.1,y:d=.1,resizable:u=!0,draggable:p=!0,boxRatio:m=-1,focus:g=!1,zIndex:f=100,stageRatio:b=null,enableShadowDOM:x=!0,titleBar:M,content:y,stage:k,footer:D,styles:T,userStyles:U,bodyStyle:ne=null,stageStyle:J=null,darkMode$:Ce,fence$:Ge,root:ve,rootRect$:Ee,managerMinimized$:xe,managerMaximized$:ze,managerReadonly$:Me,managerStageRect$:Se,managerStageRatio$:Ie,defaultBoxBodyStyle$:De,defaultBoxStageStyle$:_e,collectorRect$:wt}){this.events=new Je.default,this._delegateEvents=new Je.default,this.handleTrackStart=$=>{var F;return(F=this._handleTrackStart)==null?void 0:F.call(this,$)},this._sideEffect=new ye.SideEffectManager,this.id=e,this.namespace=s,this.enableShadowDOM=x;const qe=new w.ValManager;this._sideEffect.addDisposer(()=>qe.destroy());const lt=new w.Val(i),Nt=new w.Val(r),A=new w.Val(u),O=new w.Val(p),Le=new w.Val(m),Ae=new w.Val(f),ni=new w.Val(g),Pt=new w.Val(null),oo=new w.Val(null),lo=new w.Val(null),hr=w.combine([Pt,ze],([$,F])=>$!=null?$:F),Fi=w.combine([oo,xe],([$,F])=>$!=null?$:F),dr=w.combine([lo,Me],([$,F])=>$!=null?$:F),ur=w.combine([Fi,hr],([$,F])=>$?se.Minimized:F?se.Maximized:se.Normal),pr=new w.Val({width:xt(o,0,1),height:xt(c,0,1)},{compare:Ne}),lp=w.combine([pr,Se],([$,F])=>({width:$.width*F.width,height:$.height*F.height}),{compare:Ne}),Wi=new w.Val({width:a,height:n},{compare:Ne});this._sideEffect.addDisposer(pr.reaction(($,F)=>{Wi.setValue({width:Math.max(a,$.width),height:Math.max(n,$.height)},F)}));const gr=new w.Val({x:l,y:d},{compare:Ne}),mr=w.combine([Wi,Se],([$,F])=>({width:F.width*$.width,height:F.height*$.height}),{compare:Ne}),oi=w.combine([gr,Se],([$,F])=>({x:$.x*F.width,y:$.y*F.height}),{compare:Ne}),cp=new w.Val(ne),hp=new w.Val(J),dp=new w.Val(null),co=new w.Val(Se.value,{compare:Ne}),ho=new w.Val(b),up=w.combine([ho,Ie],([$,F])=>$!=null?$:F),pp=w.combine([co,up],ua,{compare:Ne}),gp={darkMode:Ce,fence:Ge,rootRect:Ee,managerMinimized:xe,managerMaximized:ze,managerReadonly:Me,managerStageRect:Se,managerStageRatio:Ie,defaultBoxBodyStyle:De,defaultBoxStageStyle:_e,collectorRect:wt};w.withReadonlyValueEnhancer(this,gp);const mp={zIndex:Ae,focus:ni,state:ur,minSize:pr,pxMinSize:lp,intrinsicSize:Wi,intrinsicCoord:gr,pxIntrinsicSize:mr,pxIntrinsicCoord:oi,bodyRect:co,stageRect:pp,minimized:Fi,maximized:hr,readonly:dr};w.withReadonlyValueEnhancer(this,mp,qe);const fp={title:lt,visible:Nt,resizable:A,draggable:O,boxRatio:Le,boxMinimized:oo,boxMaximized:Pt,boxReadonly:lo,stageRatio:ho,bodyStyle:cp,stageStyle:hp};w.withValueEnhancer(this,fp,qe),this.titleBar=M||new da({readonly$:dr,state$:ur,title$:lt,namespace:this.namespace,onDragStart:$=>{var F;return(F=this._handleTrackStart)==null?void 0:F.call(this,$)},onEvent:$=>this._delegateEvents.emit($.type)}),this._sideEffect.addDisposer(w.combine([Le,Fi]).subscribe(([$,F])=>{!F&&$>0&&this.transform(oi.value.x,oi.value.y,mr.value.width,mr.value.height)})),this._sideEffect.addDisposer(Ge.subscribe($=>{$&&this.move(oi.value.x,oi.value.y)})),this.$box=this._render(),dp.setValue(this.$content.parentElement),y&&this.mountContent(y),k&&this.mountStage(k),D&&this.mountFooter(D),T&&this.mountStyles(T),U&&this.mountUserStyles(U),ve.appendChild(this.$box);const ct=($,F)=>{this._sideEffect.addDisposer($.reaction((bp,yp)=>{yp||this.events.emit(F,bp)}))};ct(Ce,fe.DarkMode),ct(dr,fe.Readonly),ct(Ae,fe.ZIndex),ct(Fi,fe.Minimized),ct(hr,fe.Maximized),ct(ur,fe.State),ct(Wi,fe.IntrinsicResize),ct(gr,fe.IntrinsicMove),this._sideEffect.addDisposer([Nt.reaction(($,F)=>{!F&&!$&&this.events.emit(fe.Close)}),ni.reaction(($,F)=>{F||this.events.emit($?fe.Focus:fe.Blur)})])}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(e,i=!1){this._minSize$.setValue({width:e,height:this.minHeight},i)}setMinHeight(e,i=!1){this._minSize$.setValue({width:this.minWidth,height:e},i)}resize(e,i,s=!1){this._intrinsicSize$.setValue({width:Math.max(e,this.minWidth),height:Math.max(i,this.minHeight)},s)}get intrinsicX(){return this._intrinsicCoord$.value.x}get intrinsicY(){return this._intrinsicCoord$.value.y}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}move(e,i,s=!1){let r,a;const n=this.managerStageRect,o=this.pxIntrinsicSize;this.fence?(r=xt(e,0,n.width-o.width),a=xt(i,0,n.height-o.height)):(r=xt(e,-(o.width-120),0+n.width-20),a=xt(i,0,0+n.height-20)),this._intrinsicCoord$.setValue({x:r/n.width,y:a/n.height},s)}transform(e,i,s,r,a=!1){const n=this.managerStageRect;if(s=Math.max(s,this.pxMinSize.width),r=Math.max(r,this.pxMinSize.height),this.boxRatio>0){const o=this.boxRatio*s;i!==this.pxIntrinsicCoord.y&&(i-=o-r),r=o}i<0&&(i=0,r=this.pxIntrinsicSize.height),this.move(e,i,a),this._intrinsicSize$.setValue({width:s/n.width,height:r/n.height},a)}mountContent(e){var i;(i=this.$authorContent)==null||i.remove(),this.$authorContent=e,this.$content.appendChild(e)}unmountContent(){this.$authorContent&&(this.$authorContent.remove(),this.$authorContent=void 0)}mountStage(e){var i;(i=this.$authorStage)==null||i.remove(),this.$authorStage=e,this.$stage||(this.$stage=this._renderStage()),this.$stage.appendChild(e),this.$stage.parentElement||this.$body.appendChild(this.$stage)}unmountStage(){var e;this.$authorStage&&(this.$authorStage.remove(),this.$authorStage=void 0),(e=this.$stage)==null||e.remove()}mountFooter(e){var i;(i=this.$authorFooter)==null||i.remove(),this.$authorFooter=e,this.$footer.appendChild(e)}unmountFooter(){this.$authorFooter&&(this.$authorFooter.remove(),this.$authorFooter=void 0)}mountStyles(e){this.$styles.textContent=e}unmountStyles(){this.$styles.textContent=""}mountUserStyles(e){this.$userStyles.textContent=e}unmountUserStyles(){this.$userStyles.textContent=""}_render(){if(this.$box)return this.$box;const e=(b,x)=>this._sideEffect.addDisposer([this._readonly$.subscribe(M=>b.classList.toggle(this.wrapClassName("readonly"),M)),this._draggable$.subscribe(M=>b.classList.toggle(this.wrapClassName("no-drag"),!M)),this._resizable$.subscribe(M=>b.classList.toggle(this.wrapClassName("no-resize"),!M)),this._focus$.subscribe(M=>b.classList.toggle(this.wrapClassName("blur"),!M)),this._darkMode$.subscribe(M=>{b.classList.toggle(this.wrapClassName("color-scheme-dark"),M),b.classList.toggle(this.wrapClassName("color-scheme-light"),!M)})],x);this.$box=document.createElement("div"),this.$box.classList.add(this.wrapClassName("box")),e(this.$box,"bind-box-state"),this._sideEffect.add(()=>{const b=this.wrapClassName("minimized"),x=this.wrapClassName("maximized"),M="box-maximized-timer";return this._state$.subscribe(y=>{this.$box.classList.toggle(b,y===se.Minimized),y===se.Maximized?(this._sideEffect.flush(M),this.$box.classList.toggle(x,!0)):this._sideEffect.setTimeout(()=>{this.$box.classList.toggle(x,!1)},0,M)})}),this._sideEffect.addDisposer(this._visible$.subscribe(b=>{this.$box.style.display=b?"block":"none"})),this._sideEffect.addDisposer(this._zIndex$.subscribe(b=>{this.$box.style.zIndex=String(b)})),this.$box.dataset.teleBoxID=this.id;const i=Kl(this.$box),s=w.combine([this._maximized$,this._minimized$,this._pxIntrinsicSize$,this._pxIntrinsicCoord$,this._collectorRect$,this._rootRect$,this._managerStageRect$],([b,x,M,y,k,D,T])=>{const U=b?{x:-T.x,y:-T.y,width:D.width,height:D.height,scaleX:1,scaleY:1}:{x:y.x,y:y.y,width:M.width,height:M.height,scaleX:1,scaleY:1};if(x&&k){const{width:ne,height:J}=b?this.rootRect:M;U.x=k.x-ne/2+k.width/2-T.x,U.y=k.y-J/2+k.height/2-T.y,U.scaleX=k.width/ne,U.scaleY=k.height/J}return U},{compare:Ne}),r=s.value;this.$box.style.width=r.width+"px",this.$box.style.height=r.height+"px",this.$box.style.transform=`translate(${r.x-10}px,${r.y-10}px)`,this._sideEffect.addDisposer(s.subscribe(b=>{i.set(b)}));const a=document.createElement("div");a.className=this.wrapClassName("box-main"),this.$box.appendChild(a);const n=document.createElement("div");n.className=this.wrapClassName("titlebar-wrap"),n.appendChild(this.titleBar.render()),this.$titleBar=n;const o=document.createElement("div");o.className=this.wrapClassName("body-wrap"),this.$body=o;const c=document.createElement("style");this.$styles=c,o.appendChild(c);const l=document.createElement("style");this.$userStyles=l,o.appendChild(l);const d=document.createElement("div");d.className=this.wrapClassName("content")+" tele-fancy-scrollbar",this.$content=d,this._sideEffect.addDisposer(w.combine([this._bodyStyle$,this._defaultBoxBodyStyle$],([b,x])=>b!=null?b:x).subscribe(b=>d.style.cssText=b||"")),o.appendChild(d);const u=document.createElement("div");u.className=this.wrapClassName("footer-wrap"),this.$footer=u,a.appendChild(n);const p=document.createElement("div");p.className=this.wrapClassName("main"),this.$main=p,a.appendChild(p);const m=document.createElement("div");m.className=this.wrapClassName("quarantine-outer"),p.appendChild(m);const g=document.createElement("div");if(g.className=this.wrapClassName("quarantine"),g.appendChild(o),g.appendChild(u),this.enableShadowDOM){e(g,"bind-quarantine-state");const b=document.createElement("style");b.textContent=ec,g.insertBefore(b,g.firstChild),m.attachShadow({mode:"open"}).appendChild(g)}else m.appendChild(g);this._renderResizeHandlers();const f=()=>{const b=o.getBoundingClientRect();this._bodyRect$.setValue({x:0,y:0,width:b.width,height:b.height})};return this._sideEffect.add(()=>{const b=new sc(()=>{this.minimized||f()});return b.observe(o),()=>b.disconnect()}),this._sideEffect.addDisposer(this._minimized$.reaction(b=>{b||this._sideEffect.setTimeout(f,400,"minimized-content-rect-fix")})),this.$box}_renderStage(){const e=document.createElement("div");e.className=this.wrapClassName("box-stage");const i=s=>{e.style.top=s.y+"px",e.style.left=s.x+"px",e.style.width=s.width+"px",e.style.height=s.height+"px"};return this._sideEffect.addDisposer([w.combine([this._stageStyle$,this._defaultBoxStageStyle$],([s,r])=>s!=null?s:r).subscribe(s=>{e.style.cssText=s||"",i(this._stageRect$.value)}),this._stageRect$.subscribe(i)],"box-stage-styles"),e}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(je).forEach(f=>{const b=document.createElement("div");b.className=this.wrapClassName(f)+" "+this.wrapClassName("resize-handle"),b.dataset.teleBoxHandle=f,e.appendChild(b)}),this.$box.appendChild(e);const i="handle-tracking-listener",s=this.wrapClassName("transforming");let r,a=0,n=0,o=0,c=0,l=0,d=0,u;const p=f=>{if(!f.isPrimary||this.state!==se.Normal)return;Rt(f);let{pageX:b,pageY:x}=f;x<0&&(x=0);const M=b-l,y=x-d;let{x:k,y:D}=this.pxIntrinsicCoord,{width:T,height:U}=this.pxIntrinsicSize;switch(u){case je.North:{D=n+y,U=c-y;break}case je.South:{U=c+y;break}case je.West:{k=a+M,T=o-M;break}case je.East:{T=o+M;break}case je.NorthWest:{k=a+M,D=n+y,T=o-M,U=c-y;break}case je.NorthEast:{D=n+y,T=o+M,U=c-y;break}case je.SouthEast:{T=o+M,U=c+y;break}case je.SouthWest:{k=a+M,T=o-M,U=c+y;break}default:{this.move(a+M,n+y);return}}this.transform(k,D,T,U)},m=f=>{!f.isPrimary||(u=void 0,r&&(Rt(f),this.$box.classList.toggle(s,!1),this._sideEffect.flush(i),r.remove()))},g=f=>{var b;if(!f.isPrimary||this.readonly||f.button!=null&&f.button!==0||!this.draggable||u||this.state!==se.Normal)return;const x=f.target;if((b=x.dataset)!=null&&b.teleBoxHandle){Rt(f),{x:a,y:n}=this.pxIntrinsicCoord,{width:o,height:c}=this.pxIntrinsicSize,{pageX:l,pageY:d}=f,u=x.dataset.teleBoxHandle,r||(r=document.createElement("div"));const M=u?this.wrapClassName(`cursor-${u}`):"";r.className=this.wrapClassName(`track-mask${M?` ${M}`:""}`),this.$box.appendChild(r),this.$box.classList.add(s),this._sideEffect.add(()=>(window.addEventListener("pointermove",p,{passive:!1}),window.addEventListener("pointerup",m,{passive:!1}),window.addEventListener("pointercancel",m,{passive:!1}),()=>{window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",m)}),i)}};this._handleTrackStart=g,this._sideEffect.addEventListener(e,"pointerdown",g,{},"box-resizeHandles-pointerdown")}async destroy(){this.$box.remove(),this._sideEffect.flushAll(),this._sideEffect.flushAll(),await this.events.emit(fe.Destroyed),this.events.clearListeners(),this._delegateEvents.clearListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}var ac="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K";class nc{constructor({minimized$:e,readonly$:i,darkMode$:s,namespace:r="telebox",styles:a={},root:n,onClick:o}){this._sideEffect=new ye.SideEffectManager,this.namespace=r;const c=new w.ValManager;this._sideEffect.addDisposer(()=>c.destroy());const l=new w.Val(void 0),d=w.derive(e),u=new w.Val(a),p=new w.Val(document.createElement("button")),m={styles:u,$collector:p};w.withValueEnhancer(this,m,c);const g={rect:l,visible:d};w.withReadonlyValueEnhancer(this,g,c),p.value.className=this.wrapClassName("collector"),p.value.style.backgroundImage=`url('${ac}')`,this._sideEffect.addDisposer(p.subscribe(f=>{this._sideEffect.add(()=>(n.appendChild(f),()=>f.remove()),"telebox-collector-mount"),this._sideEffect.addEventListener(f,"click",()=>{i.value||o==null||o()},{},"telebox-collector-click"),this._sideEffect.addDisposer([d.subscribe(b=>{f.classList.toggle(this.wrapClassName("collector-visible"),b)}),i.subscribe(b=>{f.classList.toggle(this.wrapClassName("collector-readonly"),b)}),s.subscribe(b=>{f.classList.toggle(this.wrapClassName("color-scheme-dark"),b),f.classList.toggle(this.wrapClassName("color-scheme-light"),!b)}),u.subscribe(b=>{Object.keys(b).forEach(x=>{const M=b[x];M!=null&&(f.style[x]=M)})}),e.subscribe(b=>{if(b){const{x,y:M,width:y,height:k}=f.getBoundingClientRect(),D=n.getBoundingClientRect();l.setValue({x:x-D.x,y:M-D.y,width:y,height:k})}})],"telebox-collector-el")}))}destroy(){this._sideEffect.flushAll()}wrapClassName(e){return`${this.namespace}-${e}`}}var de=(t=>(t.Focused="focused",t.Blurred="blurred",t.Created="created",t.Removed="removed",t.State="state",t.Maximized="maximized",t.Minimized="minimized",t.IntrinsicMove="intrinsic_move",t.IntrinsicResize="intrinsic_resize",t.ZIndex="z_index",t.PrefersColorScheme="prefers_color_scheme",t.DarkMode="dark_mode",t))(de||{});class oc extends da{constructor(e){super(e);this.boxes$=e.boxes$,this.rootRect$=e.rootRect$,this.darkMode$=e.darkMode$,e.root.appendChild(this.render())}focusBox(e){var i;if(!(this.focusedBox&&this.focusedBox===e)){if(this.$titles&&this.state$.value===se.Maximized){const{children:s}=this.$titles.firstElementChild;for(let r=s.length-1;r>=0;r-=1){const a=s[r],n=(i=a.dataset)==null?void 0:i.teleBoxID;n&&(e&&n===e.id?a.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&n===this.focusedBox.id&&a.classList.toggle(this.wrapClassName("titles-tab-focus"),!1))}}this.focusedBox=e}}render(){if(this.$titleBar)return this.$titleBar;const e=super.render();e.classList.add(this.wrapClassName("max-titlebar")),this.sideEffect.addDisposer([w.combine([this.boxes$,this.state$]).subscribe(([s,r])=>{e.classList.toggle(this.wrapClassName("max-titlebar-active"),r===se.Maximized&&s.length>0)}),this.readonly$.subscribe(s=>{e.classList.toggle(this.wrapClassName("readonly"),s)}),w.combine([this.state$,this.boxes$]).subscribe(([s,r])=>{s===se.Maximized&&(e.classList.toggle(this.wrapClassName("max-titlebar-single-title"),r.length===1),r.length!==1&&e.replaceChild(this.renderTitles(),e.firstElementChild))})],"max-render");const i=document.createElement("div");return i.classList.add(this.wrapClassName("titles-area")),e.insertBefore(i,e.firstElementChild),e}destroy(){super.destroy(),this.$titles=void 0,this.focusedBox=void 0}renderTitles(){this.$titles=document.createElement("div"),this.$titles.className=this.wrapClassName("titles"),this.sideEffect.addEventListener(this.$titles,"wheel",s=>{s.currentTarget.scrollBy({left:s.deltaY>0?250:-250,behavior:"smooth"})},{passive:!1},"max-render-wheel-titles");const e=document.createElement("div");e.className=this.wrapClassName("titles-content"),this.$titles.appendChild(e);const i=this.boxes$.value.map(s=>{const r=document.createElement("button");return r.className=this.wrapClassName("titles-tab"),r.textContent=s.title,r.dataset.teleBoxID=s.id,r.dataset.teleTitleBarNoDblClick="true",this.focusedBox&&s.id===this.focusedBox.id&&r.classList.add(this.wrapClassName("titles-tab-focus")),e.appendChild(r),s._title$.reaction(a=>r.textContent=a)});return this.sideEffect.addDisposer(()=>i.forEach(s=>s()),"max-render-tab-titles"),this.$titles}}const lc=window.ResizeObserver||fr.ResizeObserver;class cc{constructor({root:e=null,fullscreen:i=!1,prefersColorScheme:s=ha.Light,minimized:r=!1,maximized:a=!1,fence:n=!0,collector:o,namespace:c="telebox",readonly:l=!1,stageRatio:d=-1,containerStyle:u="",stageStyle:p="",defaultBoxBodyStyle:m=null,defaultBoxStageStyle:g=null,theme:f={}}={}){this.events=new Je.default,this._sideEffect=new ye.SideEffectManager,this.namespace=c;const b=new w.ValManager;this._sideEffect.addDisposer(()=>b.destroy());const x=new w.Val(e),M=new w.Val(l),y=new w.Val(n),k=new w.Val(u),D=new w.Val(p),T=new w.Val(d),U=new w.Val(m),ne=new w.Val(g),J=new w.Val(i),Ce=new w.Val(r),Ge=new w.Val(a),ve=w.combine([Ge,J],([A,O])=>O?!0:A),Ee=w.combine([Ce,J],([A,O])=>O?!1:A);this.setMaximized=(A,O)=>Ge.setValue(A,O),this.setMinimized=(A,O)=>Ce.setValue(A,O);const xe=new w.Val({x:0,y:0,width:window.innerWidth,height:window.innerHeight},{compare:Ne});this._sideEffect.addDisposer(x.subscribe(A=>{this._sideEffect.add(()=>{if(!A)return()=>{};const O=new lc(()=>{const Le=A.getBoundingClientRect();xe.setValue({x:0,y:0,width:Le.width,height:Le.height})});return O.observe(A),()=>O.disconnect()},"calc-root-rect")}));const ze=w.combine([xe,T],ua,{compare:Ne});this.boxes$=new w.Val([]),this.topBox$=new w.Val(void 0),this._sideEffect.addDisposer(this.boxes$.subscribe(A=>{if(A.length>0){const O=A.reduce((Le,Ae)=>Le.zIndex>Ae.zIndex?Le:Ae);this.topBox$.setValue(O)}else this.topBox$.setValue(void 0)}));const Me=window.matchMedia("(prefers-color-scheme: dark)"),Se=new w.Val(!1);Me&&(Se.setValue(Me.matches),this._sideEffect.add(()=>{const A=O=>{Se.setValue(O.matches)};return Me.addEventListener("change",A),()=>Me.removeEventListener("change",A)}));const Ie=new w.Val(s);this._sideEffect.addDisposer(Ie.reaction((A,O)=>{O||this.events.emit(de.PrefersColorScheme,A)}));const De=w.combine([Se,Ie],([A,O])=>O==="auto"?A:O==="dark"),_e=w.combine([Ee,ve],([A,O])=>A?se.Minimized:O?se.Maximized:se.Normal),wt={darkMode:De,state:_e,root:x,rootRect:xe,stageRect:ze,minimized:Ee,maximized:ve};w.withReadonlyValueEnhancer(this,wt,b);const qe={fullscreen:J,prefersColorScheme:Ie,readonly:M,fence:y,stageRatio:T,containerStyle:k,stageStyle:D,defaultBoxBodyStyle:U,defaultBoxStageStyle:ne};w.withValueEnhancer(this,qe,b);const lt=this.wrapClassName("titlebar-icon-close"),Nt=A=>{var O;if(!A.isPrimary||M.value)return;const Le=A.target;if(!!Le.tagName)for(let Ae=Le;Ae;Ae=Ae.parentElement){if(Ae.classList&&Ae.classList.contains(lt))return;const ni=(O=Ae.dataset)==null?void 0:O.teleBoxID;if(ni){const Pt=this.getBox(ni);if(Pt){this.focusBox(Pt),this.makeBoxTop(Pt);return}}}};this._sideEffect.addEventListener(window,"pointerdown",Nt,!0),this.$container=document.createElement("div"),this.$container.className=this.wrapClassName("manager-container"),this.setTheme(f),this.$stage=document.createElement("div"),this.$stage.className=this.wrapClassName("manager-stage"),this.$container.appendChild(this.$stage),this._sideEffect.addDisposer([De.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("color-scheme-dark"),A),this.$container.classList.toggle(this.wrapClassName("color-scheme-light"),!A)}),J.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("is-fullscreen"),Boolean(A))}),w.combine([this.boxes$,J],([A,O])=>O==="no-titlebar"||O===!0&&A.length<=1).subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("hide-fullscreen-titlebar"),A)}),ve.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("is-maximized"),A)}),Ee.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("is-minimized"),A)}),k.subscribe(A=>{this.$container.style.cssText=A}),D.subscribe(A=>{this.$stage.style.cssText=A,this.$stage.style.width=ze.value.width+"px",this.$stage.style.height=ze.value.height+"px"}),ze.subscribe(A=>{this.$stage.style.width=A.width+"px",this.$stage.style.height=A.height+"px"}),x.subscribe(A=>{A?A.appendChild(this.$container):this.$container.parentElement&&this.$container.remove()})]),this.collector=o!=null?o:new nc({minimized$:Ee,readonly$:M,darkMode$:De,namespace:c,root:this.$container,onClick:()=>Ce.setValue(!1)}),this.titleBar=new oc({namespace:this.namespace,title$:w.derive(this.topBox$,A=>(A==null?void 0:A.title)||""),boxes$:this.boxes$,darkMode$:De,readonly$:M,state$:_e,rootRect$:xe,root:this.$container,onEvent:A=>{switch(A.type){case $e.Maximize:{this.setMaximized(!ve.value);break}case $e.Minimize:{this.setMinimized(!0);break}case fe.Close:{this.removeTopBox(),this.focusTopBox();break}}}}),this._sideEffect.addDisposer([_e.reaction((A,O)=>{O||this.events.emit(de.State,A)}),ve.reaction((A,O)=>{O||this.events.emit(de.Maximized,A)}),Ee.reaction((A,O)=>{O||this.events.emit(de.Minimized,A)}),De.reaction((A,O)=>{O||this.events.emit(de.DarkMode,A)})])}get boxes(){return this.boxes$.value}get topBox(){return this.topBox$.value}setState(e,i=!1){switch(e){case se.Maximized:{this.setMinimized(!1,i),this.setMaximized(!0,i);break}case se.Minimized:{this.setMinimized(!0,i),this.setMaximized(!1,i);break}default:{this.setMinimized(!1,i),this.setMaximized(!1,i);break}}return this}create(e={},i=!0){const s=new rc(pe(R(R({zIndex:this.topBox?this.topBox.zIndex+1:100},e),i?this.smartPosition(e):{}),{namespace:this.namespace,root:this.$stage,darkMode$:this._darkMode$,fence$:this._fence$,rootRect$:this._rootRect$,managerStageRect$:this._stageRect$,managerStageRatio$:this._stageRatio$,managerMaximized$:this._maximized$,managerMinimized$:this._minimized$,managerReadonly$:this._readonly$,collectorRect$:this.collector._rect$,defaultBoxBodyStyle$:this._defaultBoxBodyStyle$,defaultBoxStageStyle$:this._defaultBoxStageStyle$}));return s.focus&&(this.focusBox(s),i&&this.makeBoxTop(s)),this.boxes$.setValue([...this.boxes,s]),this._sideEffect.addDisposer([s._delegateEvents.on($e.Maximize,()=>{this.setMaximized(!this.maximized)}),s._delegateEvents.on($e.Minimize,()=>{this.setMinimized(!0)}),s._delegateEvents.on($e.Close,()=>{this.remove(s),this.focusTopBox()}),s._intrinsicCoord$.reaction((r,a)=>{a||this.events.emit(de.IntrinsicMove,s)}),s._intrinsicSize$.reaction((r,a)=>{a||this.events.emit(de.IntrinsicResize,s)}),s._zIndex$.reaction((r,a)=>{if(this.boxes.length>0){const n=this.boxes.reduce((o,c)=>o.zIndex>c.zIndex?o:c);this.topBox$.setValue(n)}a||this.events.emit(de.ZIndex,s)})]),this.events.emit(de.Created,s),s}query(e){return e?this.boxes.filter(this.teleBoxMatcher(e)):[...this.boxes]}queryOne(e){return e?this.boxes.find(this.teleBoxMatcher(e)):this.boxes[0]}update(e,i,s=!1){const r=this.boxes.find(a=>a.id===e);if(r)return this.updateBox(r,i,s)}updateAll(e,i=!1){this.boxes.forEach(s=>{this.updateBox(s,e,i)})}remove(e,i=!1){const s=this.getBoxIndex(e);if(s>=0){const r=this.boxes.slice(),a=r.splice(s,1);return this.boxes$.setValue(r),a.forEach(n=>n.destroy()),i||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(de.Removed,a)),a[0]}}removeTopBox(){if(this.topBox)return this.remove(this.topBox)}removeAll(e=!1){const i=this.boxes$.value;return this.boxes$.setValue([]),i.forEach(s=>s.destroy()),e||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(de.Removed,i)),i}setTheme(e){Object.keys(e).forEach(i=>{var s;this.$container.style.setProperty(`--tele-${i}`,(s=e[i])!=null?s:null)})}mount(e){this._root$.setValue(e)}unmount(){this._root$.setValue(null)}destroy(e=!1){this.events.clearListeners(),this._sideEffect.flushAll(),this.removeAll(e),this.collector.destroy(),this.titleBar.destroy()}wrapClassName(e){return`${this.namespace}-${e}`}focusBox(e,i=!1){const s=this.getBox(e);s&&(this.boxes.forEach(r=>{if(s===r){let a=!1;s.focus||(a=!0,s._focus$.setValue(!0,i)),a&&!i&&this.events.emit(de.Focused,s)}else r.focus&&this.blurBox(r,i)}),this.titleBar.focusBox(s))}focusTopBox(){if(this.topBox&&!this.topBox.focus)return this.focusBox(this.topBox)}blurBox(e,i=!1){const s=this.getBox(e);s&&(s.focus&&(s._focus$.setValue(!1,i),i||this.events.emit(de.Blurred,s)),this.titleBar.focusedBox===s&&this.titleBar.focusBox())}blurAll(e=!1){this.boxes.forEach(i=>{i.focus&&(i._focus$.setValue(!1,e),e||this.events.emit(de.Blurred,i))}),this.titleBar.focusedBox&&this.titleBar.focusBox()}teleBoxMatcher(e){const i=Object.keys(e);return s=>i.every(r=>e[r]===s[r])}updateBox(e,i,s=!1){var r,a,n,o,c,l;(i.x!=null||i.y!=null)&&e._intrinsicCoord$.setValue({x:(r=i.x)!=null?r:e.intrinsicX,y:(a=i.y)!=null?a:e.intrinsicY},s),(i.width!=null||i.height!=null)&&e._intrinsicSize$.setValue({width:(n=i.width)!=null?n:e.intrinsicWidth,height:(o=i.height)!=null?o:e.intrinsicHeight},s),i.title!=null&&e._title$.setValue(i.title),i.visible!=null&&e._visible$.setValue(i.visible,s),i.resizable!=null&&e._resizable$.setValue(i.resizable,s),i.draggable!=null&&e._draggable$.setValue(i.draggable,s),i.boxRatio!=null&&e._boxRatio$.setValue(i.boxRatio,s),i.zIndex!=null&&e._zIndex$.setValue(i.zIndex,s),i.stageRatio!==void 0&&e.setStageRatio(i.stageRatio,s),i.content!=null&&e.mountContent(i.content),i.footer!=null&&e.mountFooter(i.footer),(i.minHeight!=null||i.minWidth!=null)&&e._minSize$.setValue({width:(c=i.minWidth)!=null?c:e.minWidth,height:(l=i.minHeight)!=null?l:e.minHeight},s)}smartPosition(e){let{x:i,y:s}=e;const{width:r=.5,height:a=.5}=e,n=this.stageRect,o=this.topBox;if(i==null){let c=20;if(o){const l=o.pxIntrinsicCoord.x+20,d=r*n.width;l+d<=n.width&&(c=l)}i=c/n.width}if(s==null){let c=20;if(o){const l=o.pxIntrinsicCoord.y+20,d=a*n.height;l+d<=n.height&&(c=l)}s=c/n.height}return{x:i,y:s,width:r,height:a}}makeBoxTop(e,i=!1){this.topBox&&e!==this.topBox&&e._zIndex$.setValue(this.topBox.zIndex+1,i)}getBoxIndex(e){return typeof e=="string"?this.boxes.findIndex(i=>i.id===e):this.boxes.findIndex(i=>i===e)}getBox(e){return typeof e=="string"?this.boxes.find(i=>i.id===e):e}}const hc=(t,e,i,s,r)=>new dc({safeSetAttributes:a=>t.safeSetAttributes(a),updateAppState:(...a)=>{var n;return(n=t.appManager)==null?void 0:n.store.updateAppState(...a)},canOperate:()=>t.canOperate,notifyContainerRectUpdate:a=>{var n;return(n=t.appManager)==null?void 0:n.notifyContainerRectUpdate(a)},cleanFocus:()=>{var a;return(a=t.appManager)==null?void 0:a.store.cleanFocus()},setAppFocus:a=>{var n;return(n=t.appManager)==null?void 0:n.store.setAppFocus(a,!0)},callbacks:e,emitter:i,boxEmitter:s},r);class dc{constructor(e,i){this.context=e,this.sideEffectManager=new ye.SideEffectManager;const{emitter:s,callbacks:r,boxEmitter:a}=e;this.teleBoxManager=this.setupBoxManager(i),this.sideEffectManager.add(()=>[this.teleBoxManager.onValChanged("state",n=>{r.emit("boxStateChange",n),s.emit("boxStateChange",n)}),this.teleBoxManager.onValChanged("darkMode",n=>{r.emit("darkModeChange",n)}),this.teleBoxManager.onValChanged("prefersColorScheme",n=>{r.emit("prefersColorSchemeChange",n)}),this.teleBoxManager.onValChanged("minimized",(n,o)=>{if(!o)if(this.context.safeSetAttributes({minimized:n}),n)this.context.cleanFocus(),this.blurAllBox();else{const c=this.getTopBox();c&&(this.context.setAppFocus(c.id),this.focusBox({appId:c.id},!1))}}),this.teleBoxManager.onValChanged("maximized",(n,o)=>{o||this.context.safeSetAttributes({maximized:n})}),this.teleBoxManager.events.on("removed",n=>{n.forEach(o=>{a.emit("close",{appId:o.id})})}),this.teleBoxManager.events.on("intrinsic_move",v.debounce(n=>{a.emit("move",{appId:n.id,x:n.intrinsicX,y:n.intrinsicY})},50)),this.teleBoxManager.events.on("intrinsic_resize",v.debounce(n=>{a.emit("resize",{appId:n.id,width:n.intrinsicWidth,height:n.intrinsicHeight})},200)),this.teleBoxManager.events.on("focused",n=>{n&&(this.canOperate?a.emit("focus",{appId:n.id}):this.teleBoxManager.blurBox(n.id))}),this.teleBoxManager.events.on("z_index",n=>{this.context.updateAppState(n.id,ke.ZIndex,n.zIndex)}),s.on("containerSizeRatioUpdate",n=>{this.teleBoxManager._stageRatio$.setValue(n)}),this.teleBoxManager._fullscreen$.reaction(n=>{r.emit("fullscreenChange",n)})])}get canOperate(){return this.context.canOperate()}get boxState(){return this.teleBoxManager.state}get maximized(){return this.teleBoxManager.maximized}get minimized(){return this.teleBoxManager.minimized}get darkMode(){return this.teleBoxManager.darkMode}get prefersColorScheme(){return this.teleBoxManager.prefersColorScheme}get boxSize(){return this.teleBoxManager.boxes.length}get stageRect(){return this.teleBoxManager.stageRect}get stageRect$(){return this.teleBoxManager._stageRect$}createBox(e){var u,p,m;if(!this.teleBoxManager)return;let{minwidth:i=yo,minheight:s=wo,enableShadowDOM:r=!0}=(u=e.app.config)!=null?u:{};const{width:a,height:n}=(p=e.app.config)!=null?p:{},o=((m=e.options)==null?void 0:m.title)||e.appId,c=this.teleBoxManager.rootRect;i>1&&(i=i/c.width),s>1&&(s=s/c.height);const l={title:o,minWidth:i,minHeight:s,width:a,height:n,id:e.appId,enableShadowDOM:r},d=this.teleBoxManager.create(l,e.smartPosition);return this.context.emitter.emit(`${e.appId}${Q.WindowCreated}`),d}setupBoxManager(e){const i=ue.playground,s={stageRatio:e==null?void 0:e.stageRatio,root:i,fence:!1,prefersColorScheme:e==null?void 0:e.prefersColorScheme};e!=null&&e.containerStyle&&(s.containerStyle=e.containerStyle),e!=null&&e.stageStyle&&(s.stageStyle=e.stageStyle),e!=null&&e.fullscreen&&(s.fullscreen=e.fullscreen),(e==null?void 0:e.defaultBoxBodyStyle)!==void 0&&(s.defaultBoxBodyStyle=e.defaultBoxBodyStyle),(e==null?void 0:e.defaultBoxStageStyle)!==void 0&&(s.defaultBoxStageStyle=e.defaultBoxStageStyle),e!=null&&e.theme&&(s.theme=e.theme);const r=new cc(s);this.teleBoxManager&&this.teleBoxManager.destroy(),this.teleBoxManager=r;const a=e==null?void 0:e.collectorContainer;return a&&this.teleBoxManager.collector.set$collector(a),e!=null&&e.collectorStyles&&this.teleBoxManager.collector.setStyles(e.collectorStyles),r}getBox(e){return this.teleBoxManager.queryOne({id:e})}closeBox(e,i=!1){return this.teleBoxManager.remove(e,i)}boxIsFocus(e){const i=this.getBox(e);return i==null?void 0:i.focus}getFocusBox(){return this.teleBoxManager.query({focus:!0})[0]}getTopBox(){return this.teleBoxManager.topBox}updateBoxState(e){if(!e)return;const i=this.getBox(e.id);i&&(e.size&&i._intrinsicSize$.setValue(e.size,!0),e.position&&i._intrinsicCoord$.setValue(e.position,!0),e.zIndex&&i._zIndex$.setValue(e.zIndex,!0),setTimeout(()=>{e.focus&&this.teleBoxManager.focusBox(i.id,!0),e.maximized!=null&&this.teleBoxManager.setMaximized(Boolean(e.maximized),!0),e.minimized!=null&&this.teleBoxManager.setMinimized(Boolean(e.minimized),!0)},50),this.context.callbacks.emit("boxStateChange",this.teleBoxManager.state))}moveBox({appId:e,x:i,y:s}){const r=this.getBox(e);r&&r._intrinsicCoord$.setValue({x:i,y:s},!0)}focusBox({appId:e},i=!0){this.teleBoxManager.focusBox(e,i)}resizeBox({appId:e,width:i,height:s,skipUpdate:r}){const a=this.getBox(e);a&&a._intrinsicSize$.setValue({width:i,height:s},r)}setBoxMinSize(e){this.teleBoxManager.update(e.appId,{minWidth:e.minWidth,minHeight:e.minHeight},!0)}setBoxTitle(e){this.teleBoxManager.update(e.appId,{title:e.title},!0)}blurAllBox(){this.teleBoxManager.blurAll()}updateAll(e){this.teleBoxManager.updateAll(e)}setMaximized(e,i=!0){e!==this.maximized&&this.teleBoxManager.setMaximized(e,i)}setMinimized(e,i=!0){this.teleBoxManager.setMinimized(e,i)}focusTopBox(){if(this.teleBoxManager.query().length>=1){const i=this.getTopBox();i&&this.focusBox({appId:i.id},!1)}}updateBox(e,i,s=!0){this.teleBoxManager.update(e,i,s)}setReadonly(e){this.teleBoxManager.setReadonly(e)}setPrefersColorScheme(e){this.teleBoxManager.setPrefersColorScheme(e)}setZIndex(e,i,s=!0){this.teleBoxManager.update(e,{zIndex:i},s)}setRoot(e){this.teleBoxManager._root$.setValue(e)}setCollector(e){this.teleBoxManager.collector.set$collector(e)}destroy(){this.sideEffectManager.flushAll(),this.teleBoxManager.destroy()}}function fi(){}function pa(t){return t()}function ga(){return Object.create(null)}function bi(t){t.forEach(pa)}function uc(t){return typeof t=="function"}function pc(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let yi;function wi(t,e){return yi||(yi=document.createElement("a")),yi.href=e,t===yi.href}function gc(t){return Object.keys(t).length===0}function Fe(t,e){t.appendChild(e)}function vi(t,e,i){t.insertBefore(e,i||null)}function Ot(t){t.parentNode.removeChild(t)}function Ke(t){return document.createElement(t)}function Ms(t){return document.createTextNode(t)}function Ss(){return Ms(" ")}function re(t,e,i){i==null?t.removeAttribute(e):t.getAttribute(e)!==i&&t.setAttribute(e,i)}function mc(t){return Array.from(t.childNodes)}function ma(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function le(t,e,i,s){i===null?t.style.removeProperty(e):t.style.setProperty(e,i,s?"important":"")}let Cs;function Ut(t){Cs=t}const Ht=[],fa=[],xi=[],ba=[],fc=Promise.resolve();let Is=!1;function bc(){Is||(Is=!0,fc.then(ya))}function _s(t){xi.push(t)}const As=new Set;let Mi=0;function ya(){const t=Cs;do{for(;Mi<Ht.length;){const e=Ht[Mi];Mi++,Ut(e),yc(e.$$)}for(Ut(null),Ht.length=0,Mi=0;fa.length;)fa.pop()();for(let e=0;e<xi.length;e+=1){const i=xi[e];As.has(i)||(As.add(i),i())}xi.length=0}while(Ht.length);for(;ba.length;)ba.pop()();Is=!1,As.clear(),Ut(t)}function yc(t){if(t.fragment!==null){t.update(),bi(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(_s)}}const wc=new Set;function vc(t,e){t&&t.i&&(wc.delete(t),t.i(e))}function xc(t,e,i,s){const{fragment:r,on_mount:a,on_destroy:n,after_update:o}=t.$$;r&&r.m(e,i),s||_s(()=>{const c=a.map(pa).filter(uc);n?n.push(...c):bi(c),t.$$.on_mount=[]}),o.forEach(_s)}function Mc(t,e){const i=t.$$;i.fragment!==null&&(bi(i.on_destroy),i.fragment&&i.fragment.d(e),i.on_destroy=i.fragment=null,i.ctx=[])}function Sc(t,e){t.$$.dirty[0]===-1&&(Ht.push(t),bc(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Cc(t,e,i,s,r,a,n,o=[-1]){const c=Cs;Ut(t);const l=t.$$={fragment:null,ctx:null,props:a,update:fi,not_equal:r,bound:ga(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(c?c.$$.context:[])),callbacks:ga(),dirty:o,skip_bound:!1,root:e.target||c.$$.root};n&&n(l.root);let d=!1;if(l.ctx=i?i(t,e.props||{},(u,p,...m)=>{const g=m.length?m[0]:p;return l.ctx&&r(l.ctx[u],l.ctx[u]=g)&&(!l.skip_bound&&l.bound[u]&&l.bound[u](g),d&&Sc(t,u)),p}):[],l.update(),d=!0,bi(l.before_update),l.fragment=s?s(l.ctx):!1,e.target){if(e.hydrate){const u=mc(e.target);l.fragment&&l.fragment.l(u),u.forEach(Ot)}else l.fragment&&l.fragment.c();e.intro&&vc(t.$$.fragment),xc(t,e.target,e.anchor,e.customElement),ya()}Ut(c)}class Ic{$destroy(){Mc(this,1),this.$destroy=fi}$on(e,i){const s=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return s.push(i),()=>{const r=s.indexOf(i);r!==-1&&s.splice(r,1)}}$set(e){this.$$set&&!gc(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function wa(t){let e,i,s,r,a,n,o=t[14]&&va(t),c=t[15]&&xa(t);return{c(){e=Ke("div"),i=Ke("div"),o&&o.c(),s=Ss(),r=Ke("span"),a=Ms(t[0]),n=Ss(),c&&c.c(),le(r,"overflow","hidden"),le(r,"white-space","nowrap"),le(r,"text-overflow","ellipsis"),le(r,"max-width","80px"),re(i,"class",t[8]),le(i,"background-color",t[2]),le(i,"color",t[9]),le(i,"opacity",t[11]),re(e,"class","netless-window-manager-cursor-name")},m(l,d){vi(l,e,d),Fe(e,i),o&&o.m(i,null),Fe(i,s),Fe(i,r),Fe(r,a),Fe(i,n),c&&c.m(i,null)},p(l,d){l[14]?o?o.p(l,d):(o=va(l),o.c(),o.m(i,s)):o&&(o.d(1),o=null),d&1&&ma(a,l[0]),l[15]?c?c.p(l,d):(c=xa(l),c.c(),c.m(i,null)):c&&(c.d(1),c=null),d&256&&re(i,"class",l[8]),d&4&&le(i,"background-color",l[2]),d&512&&le(i,"color",l[9]),d&2048&&le(i,"opacity",l[11])},d(l){l&&Ot(e),o&&o.d(),c&&c.d()}}}function va(t){let e,i;return{c(){e=Ke("img"),re(e,"class","netless-window-manager-cursor-selector-avatar"),re(e,"style",t[16]()),wi(e.src,i=t[7])||re(e,"src",i),re(e,"alt","avatar")},m(s,r){vi(s,e,r)},p(s,r){r&128&&!wi(e.src,i=s[7])&&re(e,"src",i)},d(s){s&&Ot(e)}}}function xa(t){let e,i;return{c(){e=Ke("span"),i=Ms(t[1]),re(e,"class","netless-window-manager-cursor-tag-name"),le(e,"background-color",t[10])},m(s,r){vi(s,e,r),Fe(e,i)},p(s,r){r&2&&ma(i,s[1]),r&1024&&le(e,"background-color",s[10])},d(s){s&&Ot(e)}}}function _c(t){let e,i,s,r,a,n,o=!t[12]&&wa(t);return{c(){e=Ke("div"),o&&o.c(),i=Ss(),s=Ke("div"),r=Ke("img"),re(r,"class",a="netless-window-manager-cursor-"+t[3]+"-image"),wi(r.src,n=t[6])||re(r,"src",n),re(r,"alt",t[3]),re(s,"class","cursor-image-wrapper"),re(e,"class","netless-window-manager-cursor-mid"),le(e,"transform","translateX("+t[4]+"px) translateY("+t[5]+"px)"),le(e,"display",t[13])},m(c,l){vi(c,e,l),o&&o.m(e,null),Fe(e,i),Fe(e,s),Fe(s,r)},p(c,[l]){c[12]?o&&(o.d(1),o=null):o?o.p(c,l):(o=wa(c),o.c(),o.m(e,i)),l&8&&a!==(a="netless-window-manager-cursor-"+c[3]+"-image")&&re(r,"class",a),l&64&&!wi(r.src,n=c[6])&&re(r,"src",n),l&8&&re(r,"alt",c[3]),l&48&&le(e,"transform","translateX("+c[4]+"px) translateY("+c[5]+"px)"),l&8192&&le(e,"display",c[13])},i:fi,o:fi,d(c){c&&Ot(e),o&&o.d()}}}function Ac(t,e,i){let s,r,a,n,o,{cursorName:c}=e,{tagName:l}=e,{backgroundColor:d}=e,{appliance:u}=e,{x:p}=e,{y:m}=e,{src:g}=e,{visible:f}=e,{avatar:b}=e,{theme:x}=e,{color:M}=e,{cursorTagBackgroundColor:y}=e,{opacity:k}=e;const D=()=>Object.entries({width:(s?19:28)+"px",height:(s?19:28)+"px",position:s?"initial":"absolute","border-color":s?"white":d,"margin-right":(s?4:0)+"px"}).map(([T,U])=>`${T}: ${U}`).join(";");return t.$$set=T=>{"cursorName"in T&&i(0,c=T.cursorName),"tagName"in T&&i(1,l=T.tagName),"backgroundColor"in T&&i(2,d=T.backgroundColor),"appliance"in T&&i(3,u=T.appliance),"x"in T&&i(4,p=T.x),"y"in T&&i(5,m=T.y),"src"in T&&i(6,g=T.src),"visible"in T&&i(17,f=T.visible),"avatar"in T&&i(7,b=T.avatar),"theme"in T&&i(8,x=T.theme),"color"in T&&i(9,M=T.color),"cursorTagBackgroundColor"in T&&i(10,y=T.cursorTagBackgroundColor),"opacity"in T&&i(11,k=T.opacity)},t.$$.update=()=>{t.$$.dirty&1&&(s=!v.isEmpty(c)),t.$$.dirty&2&&i(15,r=!v.isEmpty(l)),t.$$.dirty&128&&i(14,a=!v.isEmpty(b)),t.$$.dirty&131072&&i(13,n=f?"initial":"none"),t.$$.dirty&8&&i(12,o=u===S.ApplianceNames.laserPointer)},[c,l,d,u,p,m,g,b,x,M,y,k,o,n,a,r,D,f]}class kc extends Ic{constructor(e){super();Cc(this,e,Ac,_c,pc,{cursorName:0,tagName:1,backgroundColor:2,appliance:3,x:4,y:5,src:6,visible:17,avatar:7,theme:8,color:9,cursorTagBackgroundColor:10,opacity:11})}}class Tc{constructor(e,i,s,r){this.manager=e,this.memberId=i,this.cursorManager=s,this.wrapper=r,this.move=a=>{var n,o;if(a.type==="main"){const c=(n=this.manager.boxManager)==null?void 0:n.stageRect;this.component&&c&&(this.autoHidden(),this.moveCursor(a,c,this.manager.mainView))}else{const c=this.cursorManager.focusView,l=(o=c==null?void 0:c.divElement)==null?void 0:o.getBoundingClientRect(),d=c==null?void 0:c.camera;c&&l&&d&&this.component&&(this.autoHidden(),this.moveCursor(a,l,c))}},this.leave=()=>{this.hide()},this.updateMember(),this.createCursor(),this.autoHidden()}moveCursor(e,i,s){var c,l;const{x:r,y:a,type:n}=e,o=s==null?void 0:s.screen.convertPointToScreen(r,a);if(o){let d=o.x-2,u=o.y-18;if(n==="app"){const p=this.cursorManager.playgroundRect;p&&(d=d+i.x-p.x,u=u+i.y-p.y)}else d=d+i.x,u=u+i.y;o.x<0||o.x>i.width||o.y<0||o.y>i.height?(c=this.component)==null||c.$set({visible:!1,x:d,y:u}):(l=this.component)==null||l.$set({visible:!0,x:d,y:u})}}get memberApplianceName(){var e,i;return(i=(e=this.member)==null?void 0:e.memberState)==null?void 0:i.currentApplianceName}get memberColor(){var i,s;return`rgb(${(s=(i=this.member)==null?void 0:i.memberState)==null?void 0:s.strokeColor.join(",")})`}get payload(){var e;return(e=this.member)==null?void 0:e.payload}get memberCursorName(){var e,i;return((e=this.payload)==null?void 0:e.nickName)||((i=this.payload)==null?void 0:i.cursorName)||this.memberId}get memberTheme(){var e;return(e=this.payload)!=null&&e.theme?"netless-window-manager-cursor-inner-mellow":"netless-window-manager-cursor-inner"}get memberCursorTextColor(){var e;return((e=this.payload)==null?void 0:e.cursorTextColor)||"#FFFFFF"}get memberCursorTagBackgroundColor(){var e;return((e=this.payload)==null?void 0:e.cursorTagBackgroundColor)||this.memberColor}get memberAvatar(){var e;return(e=this.payload)==null?void 0:e.avatar}get memberOpacity(){return!this.memberCursorName&&!this.memberAvatar?0:1}get memberTagName(){var e;return(e=this.payload)==null?void 0:e.cursorTagName}autoHidden(){this.timer&&clearTimeout(this.timer),this.timer=window.setTimeout(()=>{this.hide()},1e3*10)}async createCursor(){this.member&&this.wrapper&&(this.component=new kc({target:this.wrapper,props:this.initProps()}))}initProps(){return{x:0,y:0,appliance:this.memberApplianceName,avatar:this.memberAvatar,src:this.getIcon(),visible:!1,backgroundColor:this.memberColor,cursorName:this.memberCursorName,theme:this.memberTheme,color:this.memberCursorTextColor,cursorTagBackgroundColor:this.memberCursorTagBackgroundColor,opacity:this.memberOpacity,tagName:this.memberTagName}}getIcon(){if(this.member){const e=this.cursorManager.applianceIcons;return e[this.memberApplianceName||S.ApplianceNames.shape]||e[S.ApplianceNames.shape]}}updateMember(){return this.member=jr(this.manager.room,this.memberId),this.updateComponent(),this.member}updateComponent(){var e;(e=this.component)==null||e.$set(v.omit(this.initProps(),["x","y"]))}destroy(){this.component&&this.component.$destroy(),this.cursorManager.cursorInstances.delete(this.memberId),this.timer&&clearTimeout(this.timer)}hide(){this.component&&(this.component.$set({visible:!1}),this.destroy())}}var Nc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAYISURBVHgB7ZpNSCtXFIBPEuvz+dMGpYUKD/sWFX+Qti6kK7Hqpm6e9q0rIoIUFUShPLV10VZx4+JZqa9v20LBhdq9fyBUCtKNPH8qYl2IOw3G38Rkek4y15y5uTOZJDOWggcOSSYzN/ebc+45554JwIM8iBCPyTEP+86T4vyMfsRN4b+nQTKIJp0vzuGvlpID7os8EQNEIBD4oKio6Bm9DwaDv/v9/n/076JgbtWUYPchwrW8qD7UnOvr6wFNkpubm+/wu7f0c7y6mrnlvQufxB0Iau7V1dX3BDA/P6/V1dVpzc3N2uLiIofK1c8VYHys/wRKBUN3/hGHqaysNOjc3FwMis6hc0FtLTHuvYLxCCZgci8uLn4wg5Gh6Fy8Jk+/NkcCAlAAuUkoW4g0B+d5tLS05O/r67O8eGxsDNra2uDy8nKsoKCAwCIQDxQa0yTxgrvCYXyTk5Ml+Orf2dlJeeHIyAigFSE/P38ELfUNqNdSkjgF5FF89jL1TU1NlQwODl5gZPujp6cHWltbUw7Koc7Pz8mkZpHPFeFrJuZeqLnoMoPoZqe0JjDP/IZgnyLUG/o8NDRkuo5Ua2pjY6MC4oFCFf1cA0oKzRSOp6enRfTaGh0d/QxBt+1CUVgnOTs7+xrHfQzGyOcKkK3QTJMnQffZ6e/v/xwttmsHqqmpKXbdycnJCxy7ABLh3FEgVZ6hZJhnFZoFFMF0d3c/w7v+dyookXBnZ2c/xvHfhriVcvXfdBRItsxjnOhYqjwjoAimq6vrCysoGofk+Ph4Esd/F/UdiFtJAGUd2DygTpp5dmBUUJ2dnc9VUALm8PDwJY7/BPU9VD8k3M4RC6kskxZMKigKIMLN9vf3p3H8DyWgfEhEOwOQD9IXOTz7EObbwsLC4YWFBRgeHrY9ECXYo6MjaGlpKWlsbPxkYGDgRW1tbSEWquVlZWXBzc3Nl1VVVa8hXiXc6ioqBqGaPDk7AACJTRZ3NS9lcUp86cJwoSQ7Pj4Op6enfxUXF3/V0NCQv7q6GsCvwrqGUG/01xAD4+VQTOxaSF43d5bBOisrGBJRCtXX17+/trb268rKSgASFgmz97KFkmo6OztWuVyPweiWGc4WRkhFRQVEIpHg8vJyQAIQVlLBROVxvBYQHsXnO8tk62ZcyN0wecLBwcEvYHSzEPscBqOLCRhLC4n9uqaA8UAWAcAKhtbQ3t7eTHl5+Y9gtAp3twhT056CDMQ7MRzIFTeTYKb1yYYVQFH9VdzsqNmYKpfTJBDX3Ixgdnd3XyHMT2AMALJlBBSPaMpNngrIsTyTCgaj288YDGakictrxizvKFNOjgSSBLS+vv6UYHDb7DgMVgsChjTEgCIKGG4ZU+EWkgNBzN1qamq+pAMTExPgFMzW1tZrhHkFyWE5KxgSszx0527RaDRmOSpRshEOU11dPQPG8CwHARHJlMnTSrwSRFIlfXt7m3V5ngJGuJtqzaQtZkFBVNJezN5ZAdmwjKo2k9tVtrcI3OXk4tPgcg7ChCDZ1URgMOu72Xa5VFHOkymQhWVU60YVmjN6wiC7k6p+S1syCACOwJBYFaexV+yhBekNPsMBO6KAEeE4BMaCU67RsoYhSbXgaT//ht709vZCaWmp6YkEbLFmVJWzas04+iBL7EKpm0J7duqu0B7+CTUpNJuyvb1NCfMj1CqI9wLKUOlOUMeG+gGFkHii4HizUF4z/KFUrPsJ8WbEIyx7nnZ0dDynME6BAuce09iFHo+GrnmGltltb2//E4wVAN82y7vOjKOZXSBhJdHNiT3TYWD8OY2PTUJkdd7MkJMnT5wZVQF2RFX6yBMUdzPMvvfqxz3sXHF+GNT9ANXit/10O1sgHkZvdQAOKvs9B5L7ARELGAAXLSTvM8QExTE+YbHe+HURhZp1aRyF4CJXClbbWwGketgkW9VsY+YaiBCVhfgE+XvxRwgZSM4jUVCDZFQ9pytmXR8hUTB2gnidx4XffVWydN0yQjwmx/jkAZJBrIBI5J7ZvQGZWUgVSuU/EqmOAzicKNMVu816DdRWUV1/7xAP8n+SfwF3Du3NF2sYhwAAAABJRU5ErkJggg==",Pc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAxCAYAAABznEEcAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAZoSURBVHgB7VlLSCRXFL3ljNEhEXTGhMQJmOjCz8ZNVLKICz9xIYhCNi7UgINkGEk2En8hW5cBUQNxo05GAoKikuCAmvGzGMdPcCUGjDPxD/4Vv/3JvWW97luvq7ur+hMZ8MKlqrteNfe8e965970GuLVbC5kpJr53+hjHx9yY3TUxJgLMAQG4ITARfp5T4Mri4uL9q6urnxwOxz/oY5eXl1/Pzs7e195X2FX4jZsIhAK7gx5ps9m6nGj9/f3OtbU1pzAE0318fPwVjYHrrN7R3AjU/wpOBwA9Cmf/9ejoqDMtLU31iooKGdA+ATo4OMiXAEWAHhBAGEApXj4rPAik0vPt7e0vCgoKPH4gMzMTSktLIS8vD2JiYgABvcHMTZyennbHxsaOg3udOJmLzwqEYB0ZgRCZENm4u7e39yQuLq65srISZmZmvP5Ybm4u5OfnQ0lJyXWUCAgzNLS+vt6SnJz8WgvYwV5xSlcRgyVg3ha2Dkxzc3MvfZmVlQW+bGxsDBobGyE7O1u94uJPjIqKqklKSvrbbrfPnp+ff7e8vJwMnlSTKWfJjDKhywJo6wLp0YcZ+dyIUr7s4cOHLsrRlQwBTSBFuzc2NiZYhjjVAIyzZBqEwgCQv0OOM/gNzuiP/ijlDxBRjgClpqa6AF1cXDydmpoaLCws3JcAGYHyC4JMzoKaibKysvienp6FtrY2IA/WCFB5ebkqCHSvARo8Ozt7igIxwIJ2gJ+seFMnDoIyEUV+dHT0G3qWVUr5M043DdAB0m2IKZwAYpgZX+qkywR6NFbuR0iDxmAoZRUQKRxSLTMnJ8eIaqqSeVMnIYUOdu+sq6vrp4f+VCoYo8khZaNs01VRlERUu2/BrWAA7sl2Anink1Ao18JGjyY/PDx8hq1GZqgp5c2mp6chMjLy2b179x7hRzvoqeUUwXIzqq4O5nZsNUaEbIbLqPLTou/s7FTvT05OpsA9sXJG1AVsZDwjutqBIN6gUlWjxod8XRBNKXgsrqpqYZfwEqX9h8TExD7wbFm8LmzxHQ0QHSlXKZVSqFC/hkqlaKapTaGgCQTK7PHW1lb/wsLC86KiokkccoV+qV1tcE0pO7AWxmhTxBszDzqRr66ujqanp2cRpQLNBgUsCh8BwQ54bn5+/s+mpqa+4eHhfS1gb52vwuP0trPjhSZCBtLQ0NA3MDDQQIFYAUHBYhuvzjpVbJr1lZWVP3p7e19UVVXNgHumXYrI4uBx6Yqevz02b0FcRQ8CoBQF3dXVpQLZ3d39C7n+ora29vfJyclDYFnWgFyxK3cxhss/+KoT/N6DVkQpKypFGUCp3Ozo6HgSHx//GLW/BwHsg57zl5pzADajwLn52mPL1ZHPloMoRYPMFL6EhAR18e7s7MxVV1fPsAAp4Avteq7dC/c1+wKI4g+EfGzDM+EYHBw8RDrNiA2QL6upqVGvKJ2/gHu2L1nA5wwEB2YDfSYMO1x/px0cgEc2zBY+eo67u6H29vZ/wU2VC8l58JxKNjDOgojNEp08aFVfX++3l6JMEdDx8fEB0FNIBsDXBc8ArwuW1EkeI1RKdLWmCx+1DhkZGRvR0dFfSsHKxYtnW0iqvJAN9xNm6MR/QO5sfapUSkqKmqW5ubmfwVgyZdpw/vPZl2kUEAinBMSUStG+gwra0NDQSynQKyloIxnlewafjDFLJzLRBJqiFMnqyMgIbG5uDuD996Dnv8iAPOMAPmbcm5lVJwA/vZRMKZGZlpaWVtAvUL4GZMqE1fjRJrUd76LHoX+InlhcXPwZnWW2tra6jjrpiBM3UK/weQr6J+gfodMh9HtwncG7YLA3CMSsLmxx5WuDCt8B7vZeicInTjCWlpb6wc15mfey7oc9E8LElpVmMgb9AXoC+qcTExOPKRu4NlTHs6Q10GfhgfYOvRsJQZ76BWMKuDtaolQs+gfoH6Mn436gDg+e+5BKXUQx/C5Je/a+NpbeiQJPKgUdlNXx/BCBKxVdxW5Q0I3XBqFKRhU4KLtjYawi3csuTKdc4FnIXNvKUJkVEGRG20QZAAUpA5DbaYAQLmQzfzxyk/ffdnCD4NWVnGdE7kQBQvQHC5lVEDxgMaM29lkxGCNLKrDnIbFAMkFmBIaDkHstU41coGZ1TZD5UjReCGUAYbNgdNqoXZB/T67yYbFAMiGML3BhYeH8rb0t9h/zgcTBcTNGiQAAAABJRU5ErkJggg==",Ec="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAgrSURBVHgB7ZprTBRXFIDP7gIt8lQppTwE5V0KaAn6o1pqNGkDDTEmTUhsgKRp+gNJw68CFkLbVC2QkDS+gD8KJdWmARvbFBNNWpuIRGPFWBXQRMPDqIki+KLATs+ZnTvcvXtnX8w2beJJToaduTP3fHPOPffcOwC8kP+2WCDwIvahGFxTuN8KmNSZmULPNjLeqF9F8rdPkIEGEn+r+vjx46LQ0NA8/Dsader58+e/h4WFDWntFO7ot6fMFAt3JLWi2lCDpqamCux2+2+KROj82NhYGrXT2lu5Z/DP/deFByElA4Pv3LlTiHY/nJ6eVnbv3q1s2bJFyc7OVrZu3arU1dUp4+PjxPUQoT+g9tp9PkMFgpo9kxljHRoaWp2Xl3duYmIiurKyEvDoclNCQgIcPnxYPc7MzHwcGRnZhaft4Ag7O9fUbRhaITCie4lgcnNzT7qDIaHz27dvh+vXr0NEREQneqoCHKFnAR+8ZCaQGGq2CxcurCGYycnJZHcwTNAzUFFRoUJFRUV1IFQ5OKBsXB9uxSwgl0TQ3d29Yt26dccwoyVXV1d7hGEiQmGi2AzOUHx/hob4K2yuYS9G987s7OwPISEh7xPM6dOnwVfBsIMjR45AZmbmo5s3b76Xnp7+J55egMVxBSAZT0v1ED+76yn66dOnLQSzd+9ev2BIyFP0MjBco1JTU/sxfFeDazp3cYgZHmKqdoaGNISHh9fv378fSJcqlPV6e3sBJ+I/goOD34VFL0k95Y+HxPHCYGxmw5DQ2NuzZw8EBQVtunXr1jvgwUP+hhz/QDXMMCNVE8zx48dNg2FCz6QQjI2N/RA8VBFmANnu3btXihnpG8pM9fX1EAi5du0aeWkVOAMBCF7yN+R0z4yOjq6NiYlpp9CgdBtIwXpPH6vgDKWLt0CygtM6MDCwBuUYZSKaOCksAiVY9wFOBePgDOOytPAGSKzNVCCC2bBhw69YdK7ypgpYimzbtk2dl7CM+hFcveOUHDylbTFO1YdhFbByx44dA1QFUP0VSJj4+Hjo6+sDq9U6iEmHKvFZTedQ50GYbN15SITVlwNlZWUnLRZL8s6dOwMOQ9UCTtKTra2ttdppt9V2kMF5cbmsjxuM43bMNrmUzc6fP6+GQiDGDoOJi4ubwb4qm5ubafyIE6nLxGqTPEsGo1cBOGNX0TyDYafC0CyOaxcVziyh53Z2dkJycvLMvn37PmpoaBgFR4jxYSbWdVIgI89Iq4CjR48CZjlYv369+tssqI6ODsjPz4f+/v668vLycxrEHHfkYdwC8SB6mGEV8Cl64cuuri5oa2tTG+EyGjZu3AiXLl1qefDgwV8lJSUFZkDV1tZCcXExXLx4sbWoqKgPFj0zx8GI9ZwO5W4M6ekZYeqpaqbqmaSqqkpNpcPDw4dwzfM9nrLduHEjEs+X0XV/Sx96LnqE1kLtBQUF3eDwCO8dGQyzV5rl+JyuegfXI29jRotiRlKnpFghHMzKyjqotVXS0tLacKPjF3bdHxjSq1evduAkepAD+ZsDYlC8V5w8ZBVg+PPq2MGMlkInqE4joTf45MmT4YyMjAPcA+ltLSQlJX2BafxnX6HI29QeK44TOTk57mCYZ0QoJ8OBM4yB6dkNkwGlSygsLFQvYtYB3BTMxFL+M+0eFgZqp4mJiU2+QKGX1fGIk/QIrn0aYXGsyDxjmAyMhO2jhaCGoUbX1NSkLSwsPMJqV8Fspu6lIZS6OYhjiOLwdU7fQM1HfRPD7wS1obZ0j0xpb4726Z49ezaJf2/S7s9ATUGNR41BjdJseRnke3WGwhrRTS9pD1mOGoeG15BxOOfoxuCkp0Ih6NeaEaSZGlieJyiCoc1FgsGldokGk8nBvAKOrWIGQ5uPsm0tt0BWDiicAaGuGhkZ+YqMw9StGzU4OKhCnT179hNsswY1FTXdE5QEJhc1S3tGogazXLOBwQSBl3tzIhQPtAL1VQJCTcNx8y1vHIUghSKFZE9PT7H2dlM1b+Wgrr1y5Uq77J75+fnplpaWMg2ch4nlYEI5z7hdensDpI4hrYNErcMMXJ32koG4ztf3pultz83NjWG99Ra2WQ0OL2VjZjwgeufUqVOqV8+cOdPIwdBLSNJeHg8TAh5WqJ6EfSmgt7IMNRJ1JThiOlnrOAMHshprmMKdoGSCpb9s3B3SYLIFGIqICJB7xisYi+RvfiypXw40DWGdlJaWRmMd141hk8V2OWm7ieYTXhBc3+BgaZyqAISjOYxSMVvXsBTNlzdiNQDgRao2AtK3pjggpmrqbGpqSsLPIN/dv38/gaBwUjTshMHcvn27JyUlpRmc5xpPMD599LIYnLNyUKKndKjGxsakXbt2deMCLIE8IVvs0YRM1fjdu3d/wrXN5+BcnzEgvor2uN3rjzAYMp5lPEoQlE5fA0fWo8GfhlCbKVFQ1pKNIfzcOHH58mWqaimVUwJI0+6n59D4pIlzmdZPMPiZzXjDjX47Le5g0Uu8x2zgPqWyKpjVe7x3+AUbq9NYjQbgp2dsBud5o8TP7d5kHAWcQchQfoEmLgn8HjOiBIF7o5hI1x6CEbLNP3bdqYAF44JzyWLzcN1i8DcT/o3awbm8Fz3DAy2A62INwPV/E3wWdx5inmBHuwChCBD6R2JwHge80TIQRQLjt7e8DTkGZgfX8cUMZTDAteFDkveaIlzjX9ySQs8X18r2t2VHUURPKoICmDR+eCO9aSdmOIub3/w9RgpgUpiJhvraXpa6jZKHGEqyusw0GLFzX+5RhN/8kYnMSNMMfyH/V/kHST6OYVElTPAAAAAASUVORK5CYII=",zc="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+",Dc="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=",Lc="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4IiB2aWV3Qm94PSIwIDAgMjggMjgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU1LjEgKDc4MTM2KSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT7nvJbnu4QgMjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIgeD0iLTEyMC4wJSIgeT0iLTEyMC4wJSIgd2lkdGg9IjM0MC4wJSIgaGVpZ2h0PSIzNDAuMCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNCIgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Iue8lue7hC0yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5LjAwMDAwMCwgOS4wMDAwMDApIiBmaWxsPSIjRkYwMTAwIj4KICAgICAgICAgICAgPGNpcmNsZSBpZD0i5qSt5ZyG5b2iIiBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiBjeD0iNSIgY3k9IjUiIHI9IjUiPjwvY2lyY2xlPgogICAgICAgICAgICA8cGF0aCBkPSJNNSw4IEM2LjY1Njg1NDI1LDggOCw2LjY1Njg1NDI1IDgsNSBDOCwzLjM0MzE0NTc1IDYuNjU2ODU0MjUsMiA1LDIgQzMuMzQzMTQ1NzUsMiAyLDMuMzQzMTQ1NzUgMiw1IEMyLDYuNjU2ODU0MjUgMy4zNDMxNDU3NSw4IDUsOCBaIE01LDYuMjg1NzE0MjkgQzQuMjg5OTE5NjEsNi4yODU3MTQyOSAzLjcxNDI4NTcxLDUuNzEwMDgwMzkgMy43MTQyODU3MSw1IEMzLjcxNDI4NTcxLDQuMjg5OTE5NjEgNC4yODk5MTk2MSwzLjcxNDI4NTcxIDUsMy43MTQyODU3MSBDNS43MTAwODAzOSwzLjcxNDI4NTcxIDYuMjg1NzE0MjksNC4yODk5MTk2MSA2LjI4NTcxNDI5LDUgQzYuMjg1NzE0MjksNS43MTAwODAzOSA1LjcxMDA4MDM5LDYuMjg1NzE0MjkgNSw2LjI4NTcxNDI5IFoiIGlkPSLmpK3lnIblvaIiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+";const Ma={[S.ApplianceNames.pencil]:Nc,[S.ApplianceNames.selector]:Pc,[S.ApplianceNames.eraser]:Ec,[S.ApplianceNames.shape]:zc,[S.ApplianceNames.text]:Dc,[S.ApplianceNames.laserPointer]:Lc};class Vc{constructor(e,i,s){var a;this.manager=e,this.enableCursor=i,this.cursorInstances=new Map,this.sideEffectManager=new ye.SideEffectManager,this.store=this.manager.store,this.applianceIcons=Ma,this.onCursorMove=n=>{const o=this.initCursorInstance(n.uid);if(n.state===wr.Leave)o.leave();else{const c=o.updateMember();this.canMoveCursor(c)&&o.move(n.position)}},this.initCursorInstance=n=>{let o=this.cursorInstances.get(n);return o||(o=new Tc(this.manager,n,this,ue.playground),this.cursorInstances.set(n,o)),o},this.mouseMoveListener=v.throttle(n=>{n.pointerType==="touch"&&!n.isPrimary||this.updateCursor(this.getType(n),n.clientX,n.clientY)},48),this.getPoint=(n,o,c)=>{var d;const l=(d=n==null?void 0:n.divElement)==null?void 0:d.getBoundingClientRect();if(l)return n==null?void 0:n.convertToPointInWorld({x:o-l.x,y:c-l.y})},this.getType=n=>{var l;const o=n.target,c=this.manager.focusApp;switch(o.parentElement){case this.mainViewElement:return{type:"main"};case((l=c==null?void 0:c.view)==null?void 0:l.divElement):return{type:"app"};default:return{type:"main"}}},this.mouseLeaveListener=()=>{this.hideCursor(this.manager.uid)},this.roomMembers=(a=this.manager.room)==null?void 0:a.state.roomMembers;const r=ue.playground;r&&this.setupWrapper(r),this.sideEffectManager.add(()=>z.on("cursorMove",this.onCursorMove)),this.sideEffectManager.add(()=>z.on("playgroundSizeChange",()=>this.updateContainerRect())),s&&(this.applianceIcons=R(R({},Ma),s))}canMoveCursor(e){const i=(e==null?void 0:e.memberState.currentApplianceName)===S.ApplianceNames.laserPointer;return this.enableCursor||i}setupWrapper(e){this.sideEffectManager.add(()=>(e.addEventListener("pointerenter",this.mouseMoveListener),e.addEventListener("pointermove",this.mouseMoveListener),e.addEventListener("pointerleave",this.mouseLeaveListener),()=>{e.removeEventListener("pointerenter",this.mouseMoveListener),e.removeEventListener("pointermove",this.mouseMoveListener),e.removeEventListener("pointerleave",this.mouseLeaveListener)})),this.updateContainerRect()}setMainViewDivElement(e){this.mainViewElement=e}get boxState(){return this.store.getBoxState()}get focusView(){var e;return(e=this.manager.focusApp)==null?void 0:e.view}updateCursor(e,i,s){if(this.wrapperRect&&this.manager.canOperate){const r=e.type==="main"?this.manager.mainView:this.focusView,a=this.getPoint(r,i,s);a&&this.manager.dispatchInternalEvent(Q.CursorMove,{uid:this.manager.uid,position:{x:a.x,y:a.y,type:e.type}})}}updateContainerRect(){var e,i;this.wrapperRect=(e=this.manager.boxManager)==null?void 0:e.stageRect,this.playgroundRect=(i=ue.playground)==null?void 0:i.getBoundingClientRect()}deleteCursor(e){this.store.cleanCursor(e);const i=this.cursorInstances.get(e);i&&i.destroy()}hideCursor(e){const i=this.cursorInstances.get(e);i&&i.hide()}destroy(){this.sideEffectManager.flushAll(),this.cursorInstances.size&&(this.cursorInstances.forEach(e=>{e.destroy()}),this.cursorInstances.clear())}}class $c{constructor(e){this.manager=e,z.on("changePageState",()=>{G.emit("pageStateChange",this.toObject())})}get index(){var e;return((e=this.manager)==null?void 0:e.store.getMainViewSceneIndex())||0}get length(){var e;return((e=this.manager)==null?void 0:e.mainViewScenesLength)||0}toObject(){return{index:this.index>=this.length?this.length-1:this.index,length:this.length}}}class jc{constructor(e){this.ctx=e,this.reactors=new Map,this.disposers=new Map,this.onPhaseChanged=i=>{var s,r;i===S.RoomPhase.Reconnecting&&this.ctx.emitter.emit("startReconnect"),i===S.RoomPhase.Connected&&this.phase===S.RoomPhase.Reconnecting&&((s=this.room)!=null&&s.isWritable?(r=this.room)==null||r.dispatchMagixEvent(Qi,{}):this.onReconnected()),this.phase=i},this.onReconnected=v.debounce(()=>{this._onReconnected()},1e3),this._onReconnected=()=>{Xe("onReconnected refresh reactors"),this.releaseDisposers(),this.reactors.forEach((i,s)=>{v.isFunction(i)&&this.disposers.set(s,i())}),this.ctx.emitter.emit("onReconnected")}}setRoom(e){this.room=e,this.phase=e==null?void 0:e.phase,e&&(e.callbacks.off("onPhaseChanged",this.onPhaseChanged),e.callbacks.on("onPhaseChanged",this.onPhaseChanged),e.addMagixEventListener(Qi,i=>{i.authorId===e.observerId&&this.onReconnected()},{fireSelfEventAfterCommit:!0}))}setContext(e){this.ctx=e}releaseDisposers(){this.disposers.forEach(e=>{v.isFunction(e)&&e()}),this.disposers.clear()}refresh(){this._onReconnected()}add(e,i){const s=this.disposers.get(e);return s&&v.isFunction(s)&&s(),v.isFunction(i)&&(this.reactors.set(e,i),this.disposers.set(e,i())),()=>this.remove(e)}remove(e){this.reactors.has(e)&&this.reactors.delete(e);const i=this.disposers.get(e);i&&(v.isFunction(i)&&i(),this.disposers.delete(e))}hasReactor(e){return this.reactors.has(e)}destroy(){var e,i;(e=this.room)==null||e.callbacks.off("onPhaseChanged",this.onPhaseChanged),(i=this.room)==null||i.removeMagixEventListener(Qi,this.onReconnected),this.releaseDisposers()}}const Bc=(t,e)=>{if(S.isPlayer(t))Oc(t);else{if(t=t,Object.getOwnPropertyDescriptor(t,"disableCameraTransform"))return;Object.defineProperty(t,"disableCameraTransform",{get(){return e.mainView.disableCameraTransform},set(s){e.mainView.disableCameraTransform=s}}),Object.defineProperty(t,"canUndoSteps",{get(){return e.canUndoSteps}}),Object.defineProperty(t,"canRedoSteps",{get(){return e.canRedoSteps}}),t.moveCamera=s=>e.moveCamera(s),t.moveCameraToContain=(...s)=>e.moveCameraToContain(...s),t.convertToPointInWorld=(...s)=>e.mainView.convertToPointInWorld(...s),t.setCameraBound=(...s)=>e.mainView.setCameraBound(...s),t.scenePreview=(...s)=>e.mainView.scenePreview(...s),t.fillSceneSnapshot=(...s)=>e.mainView.fillSceneSnapshot(...s),t.generateScreenshot=(...s)=>e.mainView.generateScreenshot(...s),t.setMemberState=(...s)=>e.mainView.setMemberState(...s),t.redo=()=>e.redo(),t.undo=()=>e.undo(),t.cleanCurrentScene=()=>e.cleanCurrentScene(),t.delete=()=>e.delete(),t.copy=()=>e.copy(),t.paste=()=>e.paste(),t.duplicate=()=>e.duplicate(),t.insertImage=(...s)=>e.insertImage(...s),t.completeImageUpload=(...s)=>e.completeImageUpload(...s),t.insertText=(...s)=>e.insertText(...s),t.lockImage=(...s)=>e.lockImage(...s),t.lockImages=(...s)=>e.lockImages(...s),Rc(t,e),t.dynamicPpt.slideStateAdapter.pptHandler||(t.dynamicPpt.slideStateAdapter.pptHandler=e.createPPTHandler())}},Rc=(t,e)=>{const i=t.removeScenes;t.removeScenes=(s,r)=>{var n;s===we&&((n=e.appManager)==null||n.updateRootDirRemoving(!0));const a=i.call(t,s);return z.emit("removeScenes",{scenePath:s,index:r}),a}},Oc=t=>{const e=t.seekToProgressTime;async function i(s){await z.emit("seekStart");const r=await e.call(t,s);return z.emit("seek",s),r}t.seekToProgressTime=i};var Uc=(()=>`.netless-app-docs-viewer-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;font-family:PingFang SC,Source Han Sans SC,Microsoft YaHei,Helvetica Neue,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif}.netless-app-docs-viewer-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-docs-viewer-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-docs-viewer-footer-btn:hover{background:transparent!important}}.netless-app-docs-viewer-footer-btn>svg{width:100%;height:100%}.netless-app-docs-viewer-footer-btn>svg:nth-of-type(2){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-docs-viewer-footer-btn~.netless-app-docs-viewer-footer-btn{margin-left:15px}.netless-app-docs-viewer-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-docs-viewer-page-number{display:flex;align-items:center;height:26px;margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-docs-viewer-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 .5em 0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;font-family:PingFang SC,Source Han Sans SC,Microsoft YaHei,Helvetica Neue,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif;background:transparent;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn:hover{background:transparent}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:active{background:transparent;box-shadow:none}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:disabled{color:inherit}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:active,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:focus,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:hover{color:currentColor;background:#25282e}.telebox-color-scheme-dark .netless-app-docs-viewer-footer{border-top:none}.telebox-color-scheme-dark .netless-app-docs-viewer-footer-btn:hover{background:#212126}.netless-app-docs-viewer-preview.netless-app-docs-viewer-preview-active{transform:translate(0)}.netless-app-docs-viewer-content{position:relative;height:100%;overflow:hidden}.netless-app-docs-viewer-preview-mask{position:absolute;z-index:10200;top:0;left:0;width:100%;height:100%}.netless-app-docs-viewer-preview{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;position:absolute;z-index:10300;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-docs-viewer-preview-active .netless-app-docs-viewer-preview-mask{display:block}.netless-app-docs-viewer-preview-active .netless-app-docs-viewer-preview{transform:translate(0)}.netless-app-docs-viewer-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-docs-viewer-preview-page:hover,.netless-app-docs-viewer-preview-page.netless-app-docs-viewer-preview-page-active{border-color:#444e601a}.netless-app-docs-viewer-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-docs-viewer-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;user-select:none}.telebox-color-scheme-dark .netless-app-docs-viewer-preview{background:rgba(50,50,50,.9)}.netless-app-docs-viewer-static-scrollbar{box-sizing:border-box;position:absolute;top:0;right:0;z-index:2147483647;width:16px;min-height:30px;margin:0;padding:0 0 0 8px;border:none;outline:none;opacity:0;background:transparent;transition:opacity .4s 3s,transform .1s;user-select:none;touch-action:none}.netless-app-docs-viewer-static-scrollbar:after{content:"";display:block;width:8px;height:100%;border-radius:4px;background:rgba(68,78,96,.4);box-shadow:1px 1px 8px #ffffffb3;transition:background .4s}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrolling{opacity:1;transition:opacity .4s,transform .1s}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging{opacity:1;transition:opacity .4s 3s!important}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging:after{background:rgba(68,78,96,.6)}.netless-app-docs-viewer-static-scrollbar:hover:after,.netless-app-docs-viewer-static-scrollbar:focus:after{background:rgba(68,78,96,.5)}.netless-app-docs-viewer-static-scrollbar:active:after{background:rgba(68,78,96,.6)}.telebox-body-wrap:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:opacity .4s,transform .1s}.telebox-readonly .netless-app-docs-viewer-static-scrollbar{display:none}.page-renderer-pages-container{position:relative;width:100%;height:100%}.page-renderer-page{position:absolute;top:0;left:0;background-position:center;background-size:cover;background-repeat:no-repeat}.page-renderer-pages-container.is-hwa .page-renderer-page{will-change:transform}.page-renderer-page-img{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-pages{overflow:hidden;position:relative;height:100%;user-select:none}.netless-app-docs-viewer-static-page{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-dynamic-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden}.netless-app-docs-viewer-dynamic-wb-view .cursor-clicker .ppt-event-source{cursor:pointer}
|
124
|
-
`)();const Sa="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Hc=Sa.length,Ca=Array(20),Fc=()=>{for(let t=0;t<20;t++)Ca[t]=Sa.charAt(Math.random()*Hc);return Ca.join("")};function Ia(t){try{return t()}catch(e){console.error(e)}}class pt{constructor(){this.disposers=new Map}addDisposer(e,i=this.genUID()){return this.flush(i),this.disposers.set(i,Array.isArray(e)?()=>e.forEach(Ia):e),i}add(e,i=this.genUID()){const s=e();return s?this.addDisposer(s,i):i}addEventListener(e,i,s,r,a=this.genUID()){return e.addEventListener(i,s,r),this.addDisposer(()=>e.removeEventListener(i,s,r),a),a}setTimeout(e,i,s=this.genUID()){const r=window.setTimeout(()=>{this.remove(s),e()},i);return this.addDisposer(()=>window.clearTimeout(r),s)}setInterval(e,i,s=this.genUID()){const r=window.setInterval(e,i);return this.addDisposer(()=>window.clearInterval(r),s)}remove(e){const i=this.disposers.get(e);return this.disposers.delete(e),i}flush(e){const i=this.remove(e);if(i)try{i()}catch(s){console.error(s)}}flushAll(){this.disposers.forEach(Ia),this.disposers.clear()}genUID(){let e;do e=Fc();while(this.disposers.has(e));return e}}var Wc=Object.defineProperty,Zc=Object.defineProperties,Yc=Object.getOwnPropertyDescriptors,_a=Object.getOwnPropertySymbols,Qc=Object.prototype.hasOwnProperty,Gc=Object.prototype.propertyIsEnumerable,ks=(t,e,i)=>e in t?Wc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,Aa=(t,e)=>{for(var i in e||(e={}))Qc.call(e,i)&&ks(t,i,e[i]);if(_a)for(var i of _a(e))Gc.call(e,i)&&ks(t,i,e[i]);return t},ka=(t,e)=>Zc(t,Yc(e)),et=(t,e,i)=>(ks(t,typeof e!="symbol"?e+"":e,i),i);class qc{constructor(e){et(this,"_subscribers"),et(this,"_bSub"),et(this,"_bSubDisposer"),this._bSub=e}get size(){return this._subscribers?this._subscribers.size:0}invoke(e,i){this._subscribers&&this._subscribers.forEach(s=>s(e,i))}add(e){this._bSub&&(!this._subscribers||this._subscribers.size<=0)&&(this._bSubDisposer=this._bSub()),this._subscribers||(this._subscribers=new Set),this._subscribers.add(e)}remove(e){if(this._subscribers&&this._subscribers.delete(e),this._subscribers&&this._subscribers.size<=0&&this._bSubDisposer){const i=this._bSubDisposer;this._bSubDisposer=null,i()}}clear(){if(this._subscribers&&this._subscribers.clear(),this._bSubDisposer){const e=this._bSubDisposer;this._bSubDisposer=null,e()}}destroy(){this.clear()}}class Ts{constructor(e,i){et(this,"_subscribers"),et(this,"_value"),this._value=e;let s;if(i&&(i.compare&&(this.compare=i.compare),i.beforeSubscribe)){const r=i.beforeSubscribe,a=this._setValue.bind(this);s=()=>r(a)}this._subscribers=new qc(s)}_setValue(e,i){this.compare(e,this._value)||(this._value=e,this._subscribers.invoke(e,i))}get value(){return this._value}reaction(e){return this._subscribers.add(e),()=>{this._subscribers.remove(e)}}subscribe(e,i){const s=this.reaction(e);return e(this._value,i),s}destroy(){this._subscribers.destroy()}unsubscribe(e){this._subscribers.remove(e)}get size(){return this._subscribers.size}compare(e,i){return e===i}}class We extends Ts{constructor(){super(...arguments);et(this,"setValue",this._setValue)}}class Jc extends Ts{constructor(e,i,s={}){super(i(e.value),ka(Aa({},s),{beforeSubscribe:r=>{const a=e.subscribe((n,o)=>r(i(n),o));if(s.beforeSubscribe){const n=s.beforeSubscribe(r);if(n)return()=>{a(),n()}}return a}}));et(this,"_srcValue"),this._srcValue=()=>i(e.value)}get value(){if(this.size<=0){const e=this._srcValue();return this.compare(e,this._value)?this._value:e}return this._value}}function Ft(t,e=s=>s,i={}){return new Jc(t,e,i)}class Xc extends Ts{constructor(e,i,s={}){super(i(Ns(e)),ka(Aa({},s),{beforeSubscribe:r=>{let a=Ns(e);r(i(a));const n=e.map((c,l)=>c.reaction((d,u)=>{a=a.slice(),a[l]=d,r(i(a),u)})),o=()=>n.forEach(c=>c());if(s.beforeSubscribe){const c=s.beforeSubscribe(r);if(c)return()=>{o(),c()}}return o}}));et(this,"_srcValue"),this._srcValue=()=>i(Ns(e))}get value(){if(this.size<=0){const e=this._srcValue();return this.compare(e,this._value)?this._value:e}return this._value}}function Ns(t){return t.map(Kc)}function Kc(t){return t.value}function Pe(t,e=s=>s,i={}){return new Xc(t,e,i)}function Ta(t){t.onValChanged||(t.onValChanged=eh)}function eh(t,e){const i=this[`_${t}$`]||this[t];if(!(i!=null&&i.reaction))throw new TypeError(`"${t}" is not related to a Val in this instance`);return i.reaction(e)}function th(t,e,i){Object.keys(e).forEach(s=>{ih(t,s,e[s]),i&&i.attach(e[s])}),Ta(t)}function ih(t,e,i){return Object.defineProperties(t,{[e]:{get(){return i.value}},[`_${e}$`]:{value:i}}),t}function sh(t,e,i){Object.keys(e).forEach(s=>{rh(t,s,e[s]),i&&i.attach(e[s])}),Ta(t)}function rh(t,e,i){return Object.defineProperties(t,{[e]:{get(){return i.value},set(s){i.setValue(s)}},[`_${e}$`]:{value:i},[`set${ah(e)}`]:{value:(s,r)=>i.setValue(s,r)}}),t}function ah(t){return t[0].toUpperCase()+t.slice(1)}const tt=typeof window!="undefined",Na=tt&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Pa=tt&&"IntersectionObserver"in window,Ea=tt&&"classList"in document.createElement("p"),za=tt&&window.devicePixelRatio>1,nh={elements_selector:".lazy",container:Na||tt?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},Da=t=>Object.assign({},nh,t),La=function(t,e){let i;const s="LazyLoad::Initialized",r=new t(e);try{i=new CustomEvent(s,{detail:{instance:r}})}catch{i=document.createEvent("CustomEvent"),i.initCustomEvent(s,!1,!1,{instance:r})}window.dispatchEvent(i)},oh=(t,e)=>{if(!!e)if(!e.length)La(t,e);else for(let i=0,s;s=e[i];i+=1)La(t,s)},Ze="src",Ps="srcset",Es="sizes",Va="poster",Wt="llOriginalAttrs",$a="data",zs="loading",ja="loaded",Ba="applied",lh="entered",Ds="error",Ra="native",Oa="data-",Ua="ll-status",be=(t,e)=>t.getAttribute(Oa+e),ch=(t,e,i)=>{var s=Oa+e;if(i===null){t.removeAttribute(s);return}t.setAttribute(s,i)},Zt=t=>be(t,Ua),gt=(t,e)=>ch(t,Ua,e),Si=t=>gt(t,null),Ls=t=>Zt(t)===null,hh=t=>Zt(t)===zs,dh=t=>Zt(t)===Ds,Vs=t=>Zt(t)===Ra,uh=[zs,ja,Ba,Ds],ph=t=>uh.indexOf(Zt(t))>=0,it=(t,e,i,s)=>{if(!!t){if(s!==void 0){t(e,i,s);return}if(i!==void 0){t(e,i);return}t(e)}},Mt=(t,e)=>{if(Ea){t.classList.add(e);return}t.className+=(t.className?" ":"")+e},Be=(t,e)=>{if(Ea){t.classList.remove(e);return}t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},gh=t=>{t.llTempImage=document.createElement("IMG")},mh=t=>{delete t.llTempImage},Ha=t=>t.llTempImage,Ci=(t,e)=>{if(!e)return;const i=e._observer;!i||i.unobserve(t)},fh=t=>{t.disconnect()},bh=(t,e,i)=>{e.unobserve_entered&&Ci(t,i)},$s=(t,e)=>{!t||(t.loadingCount+=e)},yh=t=>{!t||(t.toLoadCount-=1)},Fa=(t,e)=>{!t||(t.toLoadCount=e)},wh=t=>t.loadingCount>0,vh=t=>t.toLoadCount>0,Wa=t=>{let e=[];for(let i=0,s;s=t.children[i];i+=1)s.tagName==="SOURCE"&&e.push(s);return e},js=(t,e)=>{const i=t.parentNode;if(!i||i.tagName!=="PICTURE")return;Wa(i).forEach(e)},Za=(t,e)=>{Wa(t).forEach(e)},Ii=[Ze],Ya=[Ze,Va],Yt=[Ze,Ps,Es],Qa=[$a],_i=t=>!!t[Wt],Ga=t=>t[Wt],qa=t=>delete t[Wt],St=(t,e)=>{if(_i(t))return;const i={};e.forEach(s=>{i[s]=t.getAttribute(s)}),t[Wt]=i},xh=t=>{_i(t)||(t[Wt]={backgroundImage:t.style.backgroundImage})},Mh=(t,e,i)=>{if(!i){t.removeAttribute(e);return}t.setAttribute(e,i)},mt=(t,e)=>{if(!_i(t))return;const i=Ga(t);e.forEach(s=>{Mh(t,s,i[s])})},Sh=t=>{if(!_i(t))return;const e=Ga(t);t.style.backgroundImage=e.backgroundImage},Ja=(t,e,i)=>{Mt(t,e.class_applied),gt(t,Ba),i&&(e.unobserve_completed&&Ci(t,e),it(e.callback_applied,t,i))},Xa=(t,e,i)=>{Mt(t,e.class_loading),gt(t,zs),i&&($s(i,1),it(e.callback_loading,t,i))},st=(t,e,i)=>{!i||t.setAttribute(e,i)},Ka=(t,e)=>{st(t,Es,be(t,e.data_sizes)),st(t,Ps,be(t,e.data_srcset)),st(t,Ze,be(t,e.data_src))},Ch=(t,e)=>{js(t,i=>{St(i,Yt),Ka(i,e)}),St(t,Yt),Ka(t,e)},Ih=(t,e)=>{St(t,Ii),st(t,Ze,be(t,e.data_src))},_h=(t,e)=>{Za(t,i=>{St(i,Ii),st(i,Ze,be(i,e.data_src))}),St(t,Ya),st(t,Va,be(t,e.data_poster)),st(t,Ze,be(t,e.data_src)),t.load()},Ah=(t,e)=>{St(t,Qa),st(t,$a,be(t,e.data_src))},kh=(t,e,i)=>{const s=be(t,e.data_bg),r=be(t,e.data_bg_hidpi),a=za&&r?r:s;!a||(t.style.backgroundImage=`url("${a}")`,Ha(t).setAttribute(Ze,a),Xa(t,e,i))},Th=(t,e,i)=>{const s=be(t,e.data_bg_multi),r=be(t,e.data_bg_multi_hidpi),a=za&&r?r:s;!a||(t.style.backgroundImage=a,Ja(t,e,i))},Nh=(t,e,i)=>{const s=be(t,e.data_bg_set);if(!s)return;const r=s.split("|");let a=r.map(n=>`image-set(${n})`);t.style.backgroundImage=a.join(),t.style.backgroundImage===""&&(a=r.map(n=>`-webkit-image-set(${n})`),t.style.backgroundImage=a.join()),Ja(t,e,i)},en={IMG:Ch,IFRAME:Ih,VIDEO:_h,OBJECT:Ah},Ph=(t,e)=>{const i=en[t.tagName];!i||i(t,e)},Eh=(t,e,i)=>{const s=en[t.tagName];!s||(s(t,e),Xa(t,e,i))},zh=["IMG","IFRAME","VIDEO","OBJECT"],Dh=t=>zh.indexOf(t.tagName)>-1,tn=(t,e)=>{e&&!wh(e)&&!vh(e)&&it(t.callback_finish,e)},sn=(t,e,i)=>{t.addEventListener(e,i),t.llEvLisnrs[e]=i},Lh=(t,e,i)=>{t.removeEventListener(e,i)},Bs=t=>!!t.llEvLisnrs,Vh=(t,e,i)=>{Bs(t)||(t.llEvLisnrs={});const s=t.tagName==="VIDEO"?"loadeddata":"load";sn(t,s,e),sn(t,"error",i)},Rs=t=>{if(!Bs(t))return;const e=t.llEvLisnrs;for(let i in e){const s=e[i];Lh(t,i,s)}delete t.llEvLisnrs},rn=(t,e,i)=>{mh(t),$s(i,-1),yh(i),Be(t,e.class_loading),e.unobserve_completed&&Ci(t,i)},$h=(t,e,i,s)=>{const r=Vs(e);rn(e,i,s),Mt(e,i.class_loaded),gt(e,ja),it(i.callback_loaded,e,s),r||tn(i,s)},jh=(t,e,i,s)=>{const r=Vs(e);rn(e,i,s),Mt(e,i.class_error),gt(e,Ds),it(i.callback_error,e,s),i.restore_on_error&&mt(e,Yt),r||tn(i,s)},Os=(t,e,i)=>{const s=Ha(t)||t;if(Bs(s))return;Vh(s,n=>{$h(n,t,e,i),Rs(s)},n=>{jh(n,t,e,i),Rs(s)})},Bh=(t,e,i)=>{gh(t),Os(t,e,i),xh(t),kh(t,e,i),Th(t,e,i),Nh(t,e,i)},Rh=(t,e,i)=>{Os(t,e,i),Eh(t,e,i)},Us=(t,e,i)=>{Dh(t)?Rh(t,e,i):Bh(t,e,i)},Oh=(t,e,i)=>{t.setAttribute("loading","lazy"),Os(t,e,i),Ph(t,e),gt(t,Ra)},an=t=>{t.removeAttribute(Ze),t.removeAttribute(Ps),t.removeAttribute(Es)},Uh=t=>{js(t,e=>{an(e)}),an(t)},nn=t=>{js(t,e=>{mt(e,Yt)}),mt(t,Yt)},Hh={IMG:nn,IFRAME:t=>{mt(t,Ii)},VIDEO:t=>{Za(t,e=>{mt(e,Ii)}),mt(t,Ya),t.load()},OBJECT:t=>{mt(t,Qa)}},Fh=t=>{const e=Hh[t.tagName];if(!e){Sh(t);return}e(t)},Wh=(t,e)=>{Ls(t)||Vs(t)||(Be(t,e.class_entered),Be(t,e.class_exited),Be(t,e.class_applied),Be(t,e.class_loading),Be(t,e.class_loaded),Be(t,e.class_error))},Zh=(t,e)=>{Fh(t),Wh(t,e),Si(t),qa(t)},Yh=(t,e,i,s)=>{!i.cancel_on_exit||!hh(t)||t.tagName==="IMG"&&(Rs(t),Uh(t),nn(t),Be(t,i.class_loading),$s(s,-1),Si(t),it(i.callback_cancel,t,e,s))},Qh=(t,e,i,s)=>{const r=ph(t);gt(t,lh),Mt(t,i.class_entered),Be(t,i.class_exited),bh(t,i,s),it(i.callback_enter,t,e,s),!r&&Us(t,i,s)},Gh=(t,e,i,s)=>{Ls(t)||(Mt(t,i.class_exited),Yh(t,e,i,s),it(i.callback_exit,t,e,s))},qh=["IMG","IFRAME","VIDEO"],on=t=>t.use_native&&"loading"in HTMLImageElement.prototype,Jh=(t,e,i)=>{t.forEach(s=>{qh.indexOf(s.tagName)!==-1&&Oh(s,e,i)}),Fa(i,0)},Xh=t=>t.isIntersecting||t.intersectionRatio>0,Kh=t=>({root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}),ed=(t,e,i)=>{t.forEach(s=>Xh(s)?Qh(s.target,s,e,i):Gh(s.target,s,e,i))},td=(t,e)=>{e.forEach(i=>{t.observe(i)})},id=(t,e)=>{fh(t),td(t,e)},sd=(t,e)=>{!Pa||on(t)||(e._observer=new IntersectionObserver(i=>{ed(i,t,e)},Kh(t)))},ln=t=>Array.prototype.slice.call(t),Ai=t=>t.container.querySelectorAll(t.elements_selector),rd=t=>ln(t).filter(Ls),ad=t=>dh(t),nd=t=>ln(t).filter(ad),cn=(t,e)=>rd(t||Ai(e)),od=(t,e)=>{nd(Ai(t)).forEach(s=>{Be(s,t.class_error),Si(s)}),e.update()},ld=(t,e)=>{!tt||(e._onlineHandler=()=>{od(t,e)},window.addEventListener("online",e._onlineHandler))},cd=t=>{!tt||window.removeEventListener("online",t._onlineHandler)},Qt=function(t,e){const i=Da(t);this._settings=i,this.loadingCount=0,sd(i,this),ld(i,this),this.update(e)};Qt.prototype={update:function(t){const e=this._settings,i=cn(t,e);if(Fa(this,i.length),Na||!Pa){this.loadAll(i);return}if(on(e)){Jh(i,e,this);return}id(this._observer,i)},destroy:function(){this._observer&&this._observer.disconnect(),cd(this),Ai(this._settings).forEach(t=>{qa(t)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){const e=this._settings;cn(t,e).forEach(s=>{Ci(s,this),Us(s,e,this)})},restoreAll:function(){const t=this._settings;Ai(t).forEach(e=>{Zh(e,t)})}},Qt.load=(t,e)=>{const i=Da(e);Us(t,i)},Qt.resetStatus=t=>{Si(t)},tt&&oh(Qt,window.lazyLoadOptions);class hd{constructor({namespace:e,pages$:i,sideEffect:s,readonly$:r,events:a,wrapClassName:n,root:o,pagesIndex$:c}){this.showPreview$=new We(!1),this.namespace=e,this.pages$=i,this.sideEffect=s,this.readonly$=r,this.events=a,this.wrapClassName=n,this.sideEffect.addDisposer(this.events.on("togglePreview",()=>{this.showPreview$.setValue(!this.showPreview$.value)})),this.sideEffect.addDisposer(this.showPreview$.subscribe(l=>{this.sideEffect.add(()=>{const d=this.renderPreview(),u=this.renderPreviewMask();if(l){o.appendChild(d),o.appendChild(u),d.scrollTop;const p=d.querySelector("."+this.wrapClassName(`preview-page-${c.value}`));return p&&d.scrollTo({top:p.offsetTop-16}),d.classList.toggle(this.wrapClassName("preview-active"),!0),this.previewLazyLoad=new Qt({container:this.$preview,elements_selector:"."+this.wrapClassName("preview-page>img")}),()=>{var m;return(m=this.previewLazyLoad)==null?void 0:m.destroy()}}else return d.classList.toggle(this.wrapClassName("preview-active"),!1),this.sideEffect.setTimeout(()=>{d.remove(),u.remove()},500,"preview-remove"),null},"preview-lazyload")}))}destroy(){var e,i;(e=this.$preview)==null||e.remove(),(i=this.$previewMask)==null||i.remove()}renderPreview(){if(this.$preview)return this.$preview;const e=document.createElement("div");return e.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=e,this.sideEffect.addEventListener(e,"wheel",i=>i.stopPropagation(),{passive:!1}),this.sideEffect.addDisposer(this.pages$.subscribe(i=>{var s;this.sideEffect.add(()=>{const r=i.map((a,n)=>{var o;const c=(o=a.thumbnail)!=null?o:a.src.startsWith("ppt")?void 0:a.src;if(!c)return;const l=String(n),d=document.createElement("a");d.className=this.wrapClassName("preview-page")+" "+this.wrapClassName(`preview-page-${n}`),d.setAttribute("href","#"),d.dataset.pageIndex=l;const u=document.createElement("span");u.className=this.wrapClassName("preview-page-name"),u.textContent=String(n+1),u.dataset.pageIndex=l;const p=document.createElement("img");return p.width=a.width,p.height=a.height,p.dataset.src=c,p.dataset.pageIndex=l,d.appendChild(p),d.appendChild(u),e.appendChild(d),d});return()=>r.forEach(a=>a==null?void 0:a.remove())},"render-preview-pages"),(s=this.previewLazyLoad)==null||s.update()})),this.sideEffect.addEventListener(e,"click",i=>{var s;if(this.readonly$.value)return;const r=(s=i.target.dataset)==null?void 0:s.pageIndex;r&&(i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation(),this.events.emit("jumpPage",Number(r)),this.showPreview$.setValue(!1))}),e}renderPreviewMask(){if(this.$previewMask)return this.$previewMask;const e=document.createElement("div");return e.className=this.wrapClassName("preview-mask"),this.$previewMask=e,this.sideEffect.addEventListener(e,"click",i=>{this.readonly$.value||i.target===e&&this.showPreview$.setValue(!1)}),e}}function dd(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-sidebar`),i.setAttribute("viewBox","0 0 64 64");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function ud(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-arrow-left`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function pd(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-arrow-right`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function gd(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-play`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function md(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-pause`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}class fd{constructor({namespace:e,pages$:i,sideEffect:s,readonly$:r,events:a,playable:n,wrapClassName:o,pagesIndex$:c,root:l}){this.namespace=e,this.pages$=i,this.sideEffect=s,this.readonly$=r,this.events=a,this.wrapClassName=o,this.pagesIndex$=c,this.playable=n,this.$footer=this.render(),l.appendChild(this.$footer)}destroy(){this.$footer.remove()}render(){const e=document.createElement("div");e.className=this.wrapClassName("footer"),this.sideEffect.addDisposer(this.readonly$.subscribe(l=>e.classList.toggle(this.wrapClassName("readonly"),l)));const i=this.renderFooterBtn("btn-sidebar",dd(this.namespace));this.sideEffect.addEventListener(i,"click",()=>{this.readonly$.value||this.events.emit("togglePreview")}),e.appendChild(i),this.sideEffect.addDisposer(this.pages$.subscribe(l=>{const d=l.some(u=>u.thumbnail||!u.src.startsWith("ppt"));i.style.display=d?"":"none"}));const s=document.createElement("div");s.className=this.wrapClassName("page-jumps");const r=this.renderFooterBtn("btn-page-back",ud(this.namespace));if(this.sideEffect.addEventListener(r,"click",()=>{this.readonly$.value||this.events.emit("back")}),s.appendChild(r),this.playable){const l=this.renderFooterBtn("btn-page-play",gd(this.namespace),md(this.namespace));this.sideEffect.addEventListener(l,"click",()=>{this.readonly$.value||(l.classList.toggle(this.wrapClassName("footer-btn-playing"),!0),this.events.emit("play"),this.sideEffect.setTimeout(()=>l.classList.toggle(this.wrapClassName("footer-btn-playing"),!1),500,"returnPlay"))}),s.appendChild(l)}const a=this.renderFooterBtn("btn-page-next",pd(this.namespace));this.sideEffect.addEventListener(a,"click",()=>{this.readonly$.value||this.events.emit("next")}),s.appendChild(a);const n=document.createElement("div");n.className=this.wrapClassName("page-number");const o=document.createElement("input");o.className=this.wrapClassName("page-number-input"),this.sideEffect.addDisposer(this.readonly$.subscribe(l=>o.disabled=l)),this.sideEffect.addDisposer(this.pagesIndex$.subscribe(l=>o.value=String(l+1))),this.sideEffect.addEventListener(o,"focus",()=>{o.select()}),this.sideEffect.addEventListener(o,"change",()=>{if(this.readonly$.value)return;const l=Number(o.value)-1;l>=0&&this.events.emit("jumpPage",l)});const c=document.createElement("span");return this.sideEffect.addDisposer(this.pages$.subscribe(l=>{c.textContent=" / "+l.length})),n.appendChild(o),n.appendChild(c),e.appendChild(s),e.appendChild(n),e}renderFooterBtn(e,i,s){const r=document.createElement("button");return r.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(e),r.appendChild(i),s&&r.appendChild(s),r}}class bd{constructor(){this.listeners=new Map,this.relayListeners=new Set}emit(e,i){var s;(s=this.listeners.get(e))==null||s.forEach(r=>r(i))}on(e,i){let s=this.listeners.get(e);return s||(s=new Set,this.listeners.set(e,s)),s.add(i),s.size===1&&this.relayListeners.forEach(r=>r.start(e)),()=>{this.off(e,i)}}off(e,i){const s=this.listeners.get(e);if(s){const r=s.delete(i);return s.size<=0&&(this.listeners.delete(e),this.relayListeners.forEach(a=>a.dispose(e))),r}return!1}clear(e){var i;e?(i=this.listeners.get(e))==null||i.clear():this.listeners.clear()}count(e){var i;if(e)return((i=this.listeners.get(e))==null?void 0:i.size)||0;{let s=0;return this.listeners.forEach(r=>{s+=r.size}),s}}remit(e,i){let s;const r={start:a=>{a===e&&(s=i(this))},dispose:a=>{s&&(!a||a===e)&&s()}};return this.relayListeners.add(r),()=>{this.relayListeners.delete(r),s&&s()}}destroy(){this.clear(),this.relayListeners.forEach(e=>e.dispose()),this.relayListeners.clear()}}class hn{constructor({readonly$:e,pagesIndex$:i,box:s,pages:r=[],playable:a}){this.wrapClassName=o=>`${this.namespace}-${o}`,this.namespace="netless-app-docs-viewer",this.sideEffect=new pt,this.events=new bd;const n=new We(r);sh(this,{pages:n}),this.preview=new hd({pages$:n,readonly$:e,pagesIndex$:i,root:s.$body,sideEffect:this.sideEffect,events:this.events,namespace:this.namespace,wrapClassName:this.wrapClassName}),this.footer=new fd({pages$:n,readonly$:e,playable:a,pagesIndex$:i,root:s.$footer,namespace:this.namespace,sideEffect:this.sideEffect,events:this.events,wrapClassName:this.wrapClassName})}destroy(){this.preview.destroy(),this.footer.destroy(),this.sideEffect.flushAll(),this.events.destroy()}}function rt(t,e,i){return Math.min(Math.max(t,e),i)}function dn(t){return t.touches?t.touches[0]:t}function un(t){t.stopPropagation(),t.cancelable&&t.preventDefault()}function pn(t,e){return t.width===e.width&&t.height===e.height}class yd{constructor(e){var i,s,r;this.velocity=0,this._paused=!0,this._animationFrameID=null,this._loopTimestamp=0,this.looper=a=>{var n;if(this._paused)return;let o=Math.floor((a-this._loopTimestamp)/1e3*60)+1;for(this._loopTimestamp=a;o-- >0;)this.stepper();(n=this.onStep)==null||n.call(this,this.current),this._paused?this._animationFrameID=null:this._animationFrameID=window.requestAnimationFrame(this.looper)},this.current=(i=e.start)!=null?i:0,this.target=this.current,this.stiffness=(s=e.stiffness)!=null?s:170,this.damping=(r=e.damping)!=null?r:26,this.onStep=e.onStep}get paused(){return this._paused}stepTo(e,i){var s;this._paused&&i!=null&&(this.current=i),this._paused=!1,this.target=e,(s=this.onStep)==null||s.call(this,this.current),this._loopTimestamp=Date.now(),this._animationFrameID=window.requestAnimationFrame(this.looper)}pause(){this._paused=!0,this._animationFrameID!=null&&window.cancelAnimationFrame(this._animationFrameID)}destroy(){this.pause(),this.onStep=void 0}stepper(){const e=-this.stiffness*(this.current-this.target),i=-this.damping*this.velocity,s=this.velocity+(e+i)/60,r=this.current+s/60;Math.abs(s-0)<.01&&Math.abs(r-this.target)<.01?(this.current=this.target,this.velocity=0,this._paused=!0):(this.current=r,this.velocity=s)}}class wd{constructor(e,i,s,r,a,n){this.index=e,this.lastVisit=Date.now(),this.sideEffect=new pt;const o=Ft(i,p=>p[e]||{width:0,height:0}),c=Pe([o,s],([p,m])=>(m.width-p.width)/2),l=Pe([a,n],([p,m])=>(p[e]||0)-m),d=document.createElement("div");d.className="page-renderer-page",d.dataset.index=`${e}`;const u=document.createElement("img");u.className="page-renderer-page-img",d.appendChild(u),this.sideEffect.addDisposer([Pe([o,r]).subscribe(([p,m])=>{d.style.width=`${p.width*m}px`,d.style.height=`${p.height*m}px`}),o.subscribe(p=>{p.thumbnail&&(d.style.backgroundImage=`url("${p.thumbnail}")`),u.width=p.width,u.height=p.height,u.src=p.src}),Pe([c,l,r]).subscribe(([p,m,g])=>{d.style.transform=`translate(${p*g}px, ${m*g}px)`})]),this.$page=d}destroy(){this.sideEffect.flushAll(),this.$page.remove()}}const vd=window.requestIdleCallback||(t=>window.setTimeout(t,5e3)),xd=window.cancelIdleCallback||window.clearTimeout;class Md{constructor(e,i,s,r,a){this.pages$=e,this.pagesSize$=i,this.scale$=s,this.pagesYs$=r,this.pagesScrollTop$=a,this.els=new Map,this.maxElCount=200,this.gcTimer=null,this.gc=()=>{var n;if(this.gcTimer=null,this.els.size>this.maxElCount){const o=[...this.els.values()].sort((c,l)=>l.lastVisit-c.lastVisit);for(let c=Math.floor(this.maxElCount/4);c<o.length;c++)(n=this.els.get(o[c].index))==null||n.destroy(),this.els.delete(o[c].index)}}}getEl(e){let i=this.els.get(e);return i||(i=new wd(e,this.pages$,this.pagesSize$,this.scale$,this.pagesYs$,this.pagesScrollTop$),this.els.set(e,i)),i.lastVisit=Date.now(),this.els.size>this.maxElCount&&this.gcTimer===null&&(this.gcTimer=vd(this.gc)),i}destroy(){this.els.forEach(e=>e.destroy()),this.els.clear(),this.gcTimer!==null&&(xd(this.gcTimer),this.gcTimer=null)}}class Sd{constructor({pagesScrollTop$:e,containerRect$:i,pages$:s,pagesSize$:r}){this.sideEffect=new pt,s=Ft(s,m=>m.map(g=>{if(g.thumbnail)return g;try{const f=new URL(g.src);return f.searchParams.set("x-oss-process","image/resize,l_50"),pe(R({},g),{thumbnail:f.toString()})}catch(f){return console.error(f),g}}));const a=Ft(s,m=>{const g=Array(m.length);for(let f=0;f<m.length;f++)g[f]=f>0?g[f-1]+m[f-1].height:0;return g}),n=Ft(s,m=>{let g=1/0;for(let f=m.length-1;f>=0;f--)m[f].height<=g&&(g=m[f].height);return g}),o=Pe([e,a,s],([m,g,f])=>{for(let b=0;b<g.length;b++)if(g[b]+f[b].height-m>=.001)return b;return g.length-1}),c=Pe([i,r],([m,g])=>m.width/g.width||1),l=Pe([s,i,n,c],([m,g,f,b])=>rt(Math.ceil(g.height/b/f/2),1,m.length));th(this,{pagesScrollTop:e,containerRect:i,pages:s,pagesSize:r,pagesIndex:o,pagesYs:a,pagesMinHeight:n,scale:c}),this.pageElManager=new Md(s,r,c,a,e),this.$pages=this.renderPages();const d=new We(!1);this.sideEffect.addDisposer(d.subscribe(m=>this.$pages.classList.toggle("is-hwa",m)));const u=()=>d.setValue(!1),p=()=>{this.sideEffect.setTimeout(u,1e3,"turn-off-hwa"),d.setValue(!0)};this.sideEffect.addDisposer(Pe([o,l,s]).subscribe(([m,g,f])=>{p();const b=Math.max(m-g,0),x=Math.min(m+g,f.length-1);for(let M=0;M<this.$pages.children.length;M++){const y=this.$pages.children[M],k=Number(y.dataset.index);k>=b&&k<=x||(y.remove(),M--)}for(let M=b;M<=x;M++){const y=this.pageElManager.getEl(M);y.$page.parentElement!==this.$pages&&this.$pages.appendChild(y.$page)}}))}renderPages(){const e=document.createElement("div");return e.className="page-renderer-pages-container",this.sideEffect.addDisposer(this._containerRect$.subscribe(i=>{e.style.width=`${i.width}px`,e.style.height=`${i.height}px`}),"render-pages-size"),e}destroy(){this.sideEffect.flushAll(),this.$pages.remove(),this.pageElManager.destroy()}}const Cd=30;class Id{constructor({pagesScrollTop$:e,containerRect$:i,stageRect$:s,pagesSize$:r,readonly$:a,scrollbarMinHeight:n=Cd,wrapClassName:o,onDragScroll:c}){this.sideEffect=new pt,this.scrolling$=new We(!1),this.pagesScrollTop$=e,this.containerRect$=i,this.stageRect$=s,this.pagesSize$=r,this.scrollbarMinHeight=n,this.readonly$=a,this.wrapClassName=o,this.onDragScroll=c,this.scrollbarHeight$=Pe([i,s,r],([l,d,u])=>rt(d.height/(d.width/u.width*u.height)*l.height,n,l.height)),this.scrollTop$=Pe([i,s,r,this.scrollbarHeight$,this.pagesScrollTop$],([l,d,u,p,m])=>rt(m/(u.height-u.width/d.width*d.height)*(l.height-p),0,l.height-p)),this.$scrollbar=this.renderScrollbar()}mount(e){e.appendChild(this.$scrollbar)}destroy(){this.$scrollbar.remove(),this.onDragScroll=void 0,this.sideEffect.flushAll()}renderScrollbar(){const e=document.createElement("button");e.className=this.wrapClassName("scrollbar"),e.style.minHeight=`${this.scrollbarMinHeight}px`,this.sideEffect.addDisposer([this.scrollbarHeight$.subscribe(s=>{e.style.height=`${s}px`}),this.scrollTop$.subscribe(s=>{this.scrolling$.setValue(!0),this.sideEffect.setTimeout(()=>this.scrolling$.setValue(!1),100,"reset-scrolling");const r=()=>e.style.transform=`translateY(${s}px)`;window.requestAnimationFrame?window.requestAnimationFrame(r):r()}),this.scrolling$.subscribe(s=>{e.classList.toggle(this.wrapClassName("scrolling"),s)})]);const i=s=>{if(!s.isPrimary||this.readonly$.value||s.button!=null&&s.button!==0)return;un(s);const r=this.wrapClassName("scrollbar-dragging");e.classList.toggle(r,!0);const a=this.pagesScrollTop$.value,{clientY:n}=dn(s),o=l=>{if(!l.isPrimary||this.readonly$.value)return;const{clientY:d}=dn(l),u=d-n;Math.abs(u)>0&&this.onDragScroll&&this.onDragScroll(a+u/this.containerRect$.value.height*this.pagesSize$.value.height)},c=l=>{!l.isPrimary||(e.classList.toggle(r,!1),window.removeEventListener("pointermove",o,!0),window.removeEventListener("pointerup",c,!0),window.removeEventListener("pointercancel",c,!0))};window.addEventListener("pointermove",o,!0),window.addEventListener("pointerup",c,!0),window.addEventListener("pointercancel",c,!0)};return this.sideEffect.addEventListener(e,"pointerdown",i),e}}class _d{constructor({whiteboard:e,readonly$:i,box:s,pages:r,pagesScrollTop:a=0,onUserScroll:n}){this.sideEffect=new pt,this.userScrolling=!1,this.whiteboard=e,this.readonly$=i,this.box=s,this.pages=r,this.onUserScroll=n;const o=()=>{var l;this.userScrolling=!1,(l=this.onUserScroll)==null||l.call(this,this.pagesScrollTop$.value)};this.debounceOnUserScroll=()=>{this.userScrolling=!0,this.sideEffect.setTimeout(o,80,"debounceOnUserScroll")};const c=new We(r);this.pagesScrollTop$=new We(a),this.pagesSize$=Ft(c,l=>{let d=0,u=0;for(let p=l.length-1;p>=0;p--){const m=l[p];m.width>d&&(d=m.width),u+=m.height}return{width:Math.max(1,d),height:Math.max(1,u)}},{compare:pn}),this.pageRenderer=new Sd({pagesScrollTop$:this.pagesScrollTop$,containerRect$:s._stageRect$,pages$:c,pagesSize$:this.pagesSize$}),this.viewer=new hn({readonly$:i,pagesIndex$:this.pageRenderer._pagesIndex$,box:s,pages:r,playable:!1}),this.sideEffect.addDisposer([this.viewer.events.on("next",()=>{this.userScrollByPercent(.8)}),this.viewer.events.on("back",()=>{this.userScrollByPercent(-.8)})]),this.scrollbar=new Id({pagesScrollTop$:this.pagesScrollTop$,containerRect$:s._bodyRect$,stageRect$:s._stageRect$,pagesSize$:this.pagesSize$,readonly$:i,wrapClassName:this.wrapClassName.bind(this),onDragScroll:l=>{this.pageScrollTo(l),this.debounceOnUserScroll()}}),this.pageScrollStepper=new yd({start:this.pagesScrollTop$.value,onStep:l=>{this.pageScrollTo(l)}}),this.sideEffect.addDisposer(this.viewer.events.on("jumpPage",l=>this.userScrollToPageIndex(l))),this.render(),this.setupScrollListener(),this.sideEffect.setTimeout(()=>{this.userScrolling||this.pageScrollTo(this.pageRenderer.pagesScrollTop)},100)}get pagesScrollTop(){return this.pagesScrollTop$.value}destroy(){this.sideEffect.flushAll(),this.pageScrollStepper.destroy(),this.onUserScroll=void 0,this.viewer.destroy(),this.pageRenderer.destroy(),this.scrollbar.destroy()}syncPageScrollTop(e){!this.userScrolling&&e>=0&&Math.abs(this.pagesScrollTop$.value-e)>.01&&this.pageScrollStepper.stepTo(e,this.pagesScrollTop$.value)}render(){this.box.$content.style.overflow="hidden",this.box.mountStage(this.pageRenderer.$pages),this.scrollbar.mount(this.box.$body)}pageScrollTo(e){const i=this.whiteboard.view.size.height/2/this.pageRenderer.scale;this.whiteboard.view.moveCamera({centerY:rt(e+i,i,this.pagesSize$.value.height-i),animationMode:"immediately"})}userScrollToPageIndex(e){var i;if(e=rt(e,0,this.pages.length-1),!this.readonly$.value&&!Number.isNaN(e)){const s=this.pageRenderer.pagesYs[e];s>=0&&((i=this.onUserScroll)==null||i.call(this,s+5/this.pageRenderer.scale))}}userScrollByPercent(e){var i;this.readonly$.value||(i=this.onUserScroll)==null||i.call(this,rt(this.pageRenderer.pagesScrollTop+this.pageRenderer.containerRect.height/this.pageRenderer.scale*rt(e,-1,1),0,this.pageRenderer.pagesSize.height-this.pageRenderer.containerRect.height/this.pageRenderer.scale))}setupScrollListener(){this.sideEffect.addEventListener(this.box.$main,"wheel",e=>{un(e),!this.readonly$.value&&this.pageScrollStepper.paused&&(this.pageScrollTo(this.pagesScrollTop+e.deltaY),this.debounceOnUserScroll())},{passive:!1}),this.sideEffect.addEventListener(this.box.$main,"touchmove",e=>{!this.readonly$.value&&e.touches.length>1&&this.debounceOnUserScroll()},{passive:!0,capture:!0}),this.sideEffect.add(()=>{const e=i=>{const{width:s,height:r}=this.whiteboard.view.size;if(s<=0||r<=0)return;const a=i.centerY-this.pageRenderer.containerRect.height/this.pageRenderer.scale/2;this.pagesScrollTop$.setValue(a)};return this.whiteboard.view.callbacks.on("onCameraUpdated",e),()=>this.whiteboard.view.callbacks.off("onCameraUpdated",e)}),this.sideEffect.addDisposer(this.box._stageRect$.subscribe(e=>{const{width:i,height:s}=this.pagesSize$.value;this.whiteboard.view.moveCameraToContain({originX:0,originY:this.pageRenderer.pagesScrollTop,width:i,height:e.height/this.pageRenderer.scale,animationMode:"immediately"}),this.whiteboard.view.setCameraBound({damping:1,maxContentMode:()=>this.pageRenderer.scale,minContentMode:()=>this.pageRenderer.scale,centerX:i/2,centerY:s/2,width:i,height:s})}),"whiteboard-size-update"),this.sideEffect.addEventListener(window,"keyup",e=>{if(!(this.readonly$.value||!this.box.focus||this.box.minimized))switch(e.key){case"PageDown":{this.userScrollByPercent(.8);break}case"PageUp":{this.userScrollByPercent(-.8);break}case"ArrowLeft":{this.userScrollByPercent(-.25);break}case"ArrowRight":{this.userScrollByPercent(.25);break}case"ArrowDown":{this.userScrollByPercent(.5);break}case"ArrowUp":{this.userScrollByPercent(-.5);break}}},{capture:!0})}wrapClassName(e){return"netless-app-docs-viewer-static-"+e}}class Ad{constructor({readonly$:e,context:i,whiteboard:s,box:r,pages:a}){this.sideEffect=new pt,this.context=i,this.whiteboard=s,this.box=r,this.pages=a;const n=new We(i.displayer.state.sceneState.index||0);this.pagesIndex$=n,this.sideEffect.add(()=>{const o=c=>{this.jumpToPage(c.index)};return this.context.emitter.on("sceneStateChange",o),()=>this.context.emitter.off("sceneStateChange",o)}),this.viewer=new hn({readonly$:e,pagesIndex$:n,box:r,pages:a,playable:!0}),this.sideEffect.addDisposer([this.viewer.events.on("jumpPage",o=>this.jumpToPage(o,!0)),this.viewer.events.on("play",()=>{var o;return(o=this.context.room)==null?void 0:o.pptNextStep()}),this.viewer.events.on("back",()=>this.prevPage()),this.viewer.events.on("next",()=>this.nextPage())]),this.render(),this.sideEffect.addDisposer(n.subscribe((o,c)=>{var l,d;if(e.value)return;const u=this.context.getInitScenePath(),p=(d=(l=this.context.getScenes())==null?void 0:l[o])==null?void 0:d.name;if(u&&p&&this.context.setScenePath(`${u}/${p}`),c){const m=this.context.room;if(m){const g=m.state.globalState.__pptState;m.setGlobalState({__pptState:g&&{uuid:g.uuid,pageIndex:o,disableAutoPlay:g.disableAutoPlay}})}}}))}destroy(){this.sideEffect.flushAll(),this.viewer.destroy()}nextPage(){this.jumpToPage(this.pagesIndex$.value+1,!0)}prevPage(){this.jumpToPage(this.pagesIndex$.value-1,!0)}jumpToPage(e,i=!1){this.pagesIndex$.setValue(rt(e,0,this.pages.length-1),i)}render(){var e;this.box.mountStage(document.createElement("div")),this.sideEffect.addEventListener(window,"keydown",s=>{var r;if(this.box.focus)switch(s.key){case"ArrowUp":case"ArrowLeft":{this.prevPage();break}case"ArrowRight":case"ArrowDown":{(r=this.context.room)==null||r.pptNextStep();break}}});const i=(e=this.whiteboard.view.divElement)==null?void 0:e.parentElement;i&&this.sideEffect.addEventListener(i,"click",s=>{var r;const a=this.context.room;if(a&&a.state.memberState.currentApplianceName==="clicker"){for(let n=s.target;n;n=n.parentElement)if((r=n.classList)!=null&&r.contains("ppt-event-source"))return;a.pptNextStep()}})}wrapClassName(e){return"netless-app-docs-viewer-dynamic-"+e}}const ki={kind:"DocsViewer",setup(t){const e=t.box,i=t.getScenes();if(!i)throw new Error("[Docs Viewer]: scenes not found.");const s=new pt,r=i.map(({ppt:n})=>n?{width:n.width,height:n.height,src:n.src,thumbnail:n.previewURL}:null).filter(n=>Boolean(n));if(r.length<=0)throw new Error("[Docs Viewer]: empty scenes.");e.mountStyles(Uc);const a=new We(!t.isWritable);s.addDisposer(t.emitter.on("writableChange",n=>{a.setValue(!n)})),r[0].src.startsWith("ppt")?Td(s,t,e,r,a):kd(s,t,e,r,a),s.addDisposer(t.emitter.on("destroy",()=>{s.flushAll()}))}};function kd(t,e,i,s,r){const a=e.createWhiteBoardView({syncCamera:!1});t.addDisposer(r.subscribe(l=>{a.view.disableCameraTransform=l}));const n=e.createStorage("static-docs-viewer",{pagesScrollTop:0}),o=new _d({whiteboard:a,readonly$:r,box:i,pages:s,pagesScrollTop:n.state.pagesScrollTop,onUserScroll:l=>{e.isWritable&&n.setState({pagesScrollTop:l})}});t.addDisposer(()=>o.destroy()),t.addDisposer(n.addStateChangedListener(l=>{l.pagesScrollTop&&o.syncPageScrollTop(l.pagesScrollTop.newValue||0)}));let c=1;if(s.length>0){const{width:l,height:d}=s[0];d<=l?c=d/l:c=1/2*d/l}t.addDisposer(Pe([i._maximized$,i._managerStageRect$,i._intrinsicSize$],([l,d,u])=>l?c:u.height*(d.height/d.width)/u.width).subscribe(l=>{i.setStageRatio(l)}))}function Td(t,e,i,s,r){const a=e.createWhiteBoardView();a.view.disableCameraTransform=!0;const n=new Ad({context:e,whiteboard:a,box:i,pages:s,readonly$:r});t.addDisposer(()=>n.destroy());const o=new We({width:s[0].width,height:s[0].height},{compare:pn});if(t.addDisposer(n.pagesIndex$.subscribe(c=>{const l=s[c];l&&o.setValue({width:l.width,height:l.height})})),t.addDisposer(o.subscribe(c=>{r.value||a.setBaseRect(c)})),e.isAddApp){const c=t.add(()=>{const l=({width:d,height:u})=>{if(s.length>0&&i.state!=="maximized"){const{width:p,height:m}=s[0],f=m/p*d-u;f!==0&&e.isWritable&&e.emitter.emit("setBoxSize",{width:i.intrinsicWidth,height:i.intrinsicHeight+f/i.rootRect.height})}t.remove(c)};return a.view.callbacks.once("onSizeUpdated",l),()=>a.view.callbacks.off("onSizeUpdated",l)})}}function at(){}function gn(t){return t()}function mn(){return Object.create(null)}function Ti(t){t.forEach(gn)}function Nd(t){return typeof t=="function"}function fn(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let Ni;function bn(t,e){return Ni||(Ni=document.createElement("a")),Ni.href=e,t===Ni.href}function Pd(t){return Object.keys(t).length===0}function V(t,e){t.appendChild(e)}function Ct(t,e,i){t.insertBefore(e,i||null)}function ft(t){t.parentNode.removeChild(t)}function It(t){return document.createElement(t)}function B(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function Hs(t){return document.createTextNode(t)}function Ed(){return Hs(" ")}function I(t,e,i){i==null?t.removeAttribute(e):t.getAttribute(e)!==i&&t.setAttribute(e,i)}function zd(t){return Array.from(t.childNodes)}function Dd(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}let Gt;function qt(t){Gt=t}function yn(){if(!Gt)throw new Error("Function called outside component initialization");return Gt}function Ld(t){yn().$$.on_mount.push(t)}function Vd(t){yn().$$.on_destroy.push(t)}const Jt=[],Xt=[],Pi=[],wn=[],$d=Promise.resolve();let Fs=!1;function jd(){Fs||(Fs=!0,$d.then(vn))}function Ws(t){Pi.push(t)}const Zs=new Set;let Ei=0;function vn(){const t=Gt;do{for(;Ei<Jt.length;){const e=Jt[Ei];Ei++,qt(e),Bd(e.$$)}for(qt(null),Jt.length=0,Ei=0;Xt.length;)Xt.pop()();for(let e=0;e<Pi.length;e+=1){const i=Pi[e];Zs.has(i)||(Zs.add(i),i())}Pi.length=0}while(Jt.length);for(;wn.length;)wn.pop()();Fs=!1,Zs.clear(),qt(t)}function Bd(t){if(t.fragment!==null){t.update(),Ti(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(Ws)}}const zi=new Set;let Rd;function xn(t,e){t&&t.i&&(zi.delete(t),t.i(e))}function Od(t,e,i,s){if(t&&t.o){if(zi.has(t))return;zi.add(t),Rd.c.push(()=>{zi.delete(t),s&&(i&&t.d(1),s())}),t.o(e)}}function Ud(t){t&&t.c()}function Mn(t,e,i,s){const{fragment:r,on_mount:a,on_destroy:n,after_update:o}=t.$$;r&&r.m(e,i),s||Ws(()=>{const c=a.map(gn).filter(Nd);n?n.push(...c):Ti(c),t.$$.on_mount=[]}),o.forEach(Ws)}function Sn(t,e){const i=t.$$;i.fragment!==null&&(Ti(i.on_destroy),i.fragment&&i.fragment.d(e),i.on_destroy=i.fragment=null,i.ctx=[])}function Hd(t,e){t.$$.dirty[0]===-1&&(Jt.push(t),jd(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Cn(t,e,i,s,r,a,n,o=[-1]){const c=Gt;qt(t);const l=t.$$={fragment:null,ctx:null,props:a,update:at,not_equal:r,bound:mn(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(c?c.$$.context:[])),callbacks:mn(),dirty:o,skip_bound:!1,root:e.target||c.$$.root};n&&n(l.root);let d=!1;if(l.ctx=i?i(t,e.props||{},(u,p,...m)=>{const g=m.length?m[0]:p;return l.ctx&&r(l.ctx[u],l.ctx[u]=g)&&(!l.skip_bound&&l.bound[u]&&l.bound[u](g),d&&Hd(t,u)),p}):[],l.update(),d=!0,Ti(l.before_update),l.fragment=s?s(l.ctx):!1,e.target){if(e.hydrate){const u=zd(e.target);l.fragment&&l.fragment.l(u),u.forEach(ft)}else l.fragment&&l.fragment.c();e.intro&&xn(t.$$.fragment),Mn(t,e.target,e.anchor,e.customElement),vn()}qt(c)}class In{$destroy(){Sn(this,1),this.$destroy=at}$on(e,i){const s=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return s.push(i),()=>{const r=s.indexOf(i);r!==-1&&s.splice(r,1)}}$set(e){this.$$set&&!Pd(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Fd={"3g2":"video/3gpp2","3gp":"video/3gpp","3gpp":"audio/3gpp",aac:"audio/x-aac",adp:"audio/adpcm",aif:"audio/x-aiff",aifc:"audio/x-aiff",aiff:"audio/x-aiff",amr:"audio/amr",asf:"video/x-ms-asf",asx:"video/x-ms-asf",au:"audio/basic",avi:"video/x-msvideo",caf:"audio/x-caf",dra:"audio/vnd.dra",dts:"audio/vnd.dts",dtshd:"audio/vnd.dts.hd",dvb:"video/vnd.dvb.file",eol:"audio/vnd.digital-winds",f4v:"video/x-f4v",flac:"audio/x-flac",fli:"video/x-fli",flv:"video/x-flv",fvt:"video/vnd.fvt",h261:"video/h261",h263:"video/h263",h264:"video/h264",jpgm:"video/jpm",jpgv:"video/jpeg",kar:"audio/midi",lvp:"audio/vnd.lucent.voice",m1v:"video/mpeg",m2a:"audio/mpeg",m2v:"video/mpeg",m3a:"audio/mpeg",m3u:"audio/x-mpegurl",m4a:"audio/mp4",m4s:"video/iso.segment",m4u:"video/vnd.mpegurl",m4v:"video/x-m4v",mid:"audio/midi",midi:"audio/midi",mj2:"video/mj2",mjp2:"video/mj2",mk3d:"video/x-matroska",mka:"audio/x-matroska",mks:"video/x-matroska",mkv:"video/x-matroska",mng:"video/x-mng",mov:"video/quicktime",movie:"video/x-sgi-movie",mp2:"audio/mpeg",mp2a:"audio/mpeg",mp3:"audio/mp3",mp4:"video/mp4",mp4a:"audio/mp4",mp4v:"video/mp4",mpe:"video/mpeg",mpeg:"video/mpeg",mpg:"video/mpeg",mpg4:"video/mp4",mpga:"audio/mpeg",mxmf:"audio/mobile-xmf",mxu:"video/vnd.mpegurl",oga:"audio/ogg",ogg:"audio/ogg",ogv:"video/ogg",opus:"audio/ogg",pya:"audio/vnd.ms-playready.media.pya",pyv:"video/vnd.ms-playready.media.pyv",qt:"video/quicktime",ra:"audio/x-pn-realaudio",ram:"audio/x-pn-realaudio",rip:"audio/vnd.rip",rmi:"audio/midi",rmp:"audio/x-pn-realaudio-plugin",s3m:"audio/s3m",sil:"audio/silk",smv:"video/x-smv",snd:"audio/basic",spx:"audio/ogg",ts:"video/mp2t",uva:"audio/vnd.dece.audio",uvh:"video/vnd.dece.hd",uvm:"video/vnd.dece.mobile",uvp:"video/vnd.dece.pd",uvs:"video/vnd.dece.sd",uvu:"video/vnd.uvvu.mp4",uvv:"video/vnd.dece.video",uvva:"audio/vnd.dece.audio",uvvh:"video/vnd.dece.hd",uvvm:"video/vnd.dece.mobile",uvvp:"video/vnd.dece.pd",uvvs:"video/vnd.dece.sd",uvvu:"video/vnd.uvvu.mp4",uvvv:"video/vnd.dece.video",viv:"video/vnd.vivo",vob:"video/x-ms-vob",wav:"audio/wav",wax:"audio/x-ms-wax",weba:"audio/webm",webm:"video/webm",wm:"video/x-ms-wm",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",wmx:"video/x-ms-wmx",wvx:"video/x-ms-wvx",xm:"audio/xm",m3u8:"application/vnd.apple.mpegurl"},Wd=["application/x-mpegurl","application/vnd.apple.mpegurl"];function Zd(t){if(!t)return;const e=t.lastIndexOf(".");if(!~e)return;const i=t.slice(e+1);return Fd[i]}async function Yd(t){try{return await t.play(),!0}catch(e){return t.muted=!0,await t.play(),console.debug(e),!1}}function Qd(t){const e=document.createElement("script");return new Promise((i,s)=>{e.onload=()=>i(),e.onerror=s,e.src=t,document.head.appendChild(e)})}async function Gd(){const t={loadSource(i){},attachMedia(i){}};let e=window.Hls;if(e===null||e===!1)return t;if(e===void 0&&(await Qd("https://cdn.jsdelivr.net/npm/hls.js"),e=window.Hls),typeof e=="function")try{return new e}catch(i){return console.debug(i),t}else return t}function qd(t){return"canPlayType"in t&&!t.canPlayType("application/vnd.apple.mpegurl")}function Jd(t,e,i){return t<e?e:t>i?i:t}function Xd(t){return Array.isArray(t)?t[0]:t}function Kd(t){let e,i,s,r,a,n,o,c,l,d,u,p,m,g,f,b,x,M,y,k,D,T,U,ne,J,Ce,Ge,ve,Ee,xe,ze,Me,Se,Ie,De,_e,wt,qe;return{c(){e=B("svg"),i=B("symbol"),s=B("path"),r=B("path"),a=B("symbol"),n=B("path"),o=B("symbol"),c=B("path"),l=B("symbol"),d=B("path"),u=B("symbol"),p=B("path"),m=B("symbol"),g=B("path"),f=B("symbol"),b=B("path"),x=B("symbol"),M=B("path"),y=B("symbol"),k=B("path"),D=B("symbol"),T=B("path"),U=B("symbol"),ne=B("path"),J=B("symbol"),Ce=B("path"),Ge=B("path"),ve=B("symbol"),Ee=B("path"),xe=B("symbol"),ze=B("path"),Me=B("symbol"),Se=B("path"),Ie=B("symbol"),De=B("path"),_e=B("symbol"),wt=B("path"),qe=B("path"),I(s,"d","M16 1H2a1 1 0 00-1 1v10a1 1 0 001 1h3v-2H3V3h12v8h-2v2h3a1 1 0 001-1V2a1 1 0 00-1-1z"),I(r,"d","M4 17h10l-5-6z"),I(i,"id","plyr-airplay"),I(i,"viewBox","0 0 18 18"),I(n,"d","M1 1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h4.6l2.7 2.7c.2.2.4.3.7.3.3 0 .5-.1.7-.3l2.7-2.7H17c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1H1zm4.52 10.15c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41C8.47 4.96 7.46 3.76 5.5 3.76c-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69zm7.57 0c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41c-.28-1.15-1.29-2.35-3.25-2.35-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69z"),I(n,"fill-rule","evenodd"),I(n,"fill-opacity",".5"),I(a,"id","plyr-captions-off"),I(a,"viewBox","0 0 18 18"),I(c,"d","M1 1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h4.6l2.7 2.7c.2.2.4.3.7.3.3 0 .5-.1.7-.3l2.7-2.7H17c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1H1zm4.52 10.15c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41C8.47 4.96 7.46 3.76 5.5 3.76c-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69zm7.57 0c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41c-.28-1.15-1.29-2.35-3.25-2.35-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69z"),I(c,"fill-rule","evenodd"),I(o,"id","plyr-captions-on"),I(o,"viewBox","0 0 18 18"),I(d,"d","M9 13c.3 0 .5-.1.7-.3L15.4 7 14 5.6l-4 4V1H8v8.6l-4-4L2.6 7l5.7 5.7c.2.2.4.3.7.3zm-7 2h14v2H2z"),I(l,"id","plyr-download"),I(l,"viewBox","0 0 18 18"),I(p,"d","M10 3h3.6l-4 4L11 8.4l4-4V8h2V1h-7zM7 9.6l-4 4V10H1v7h7v-2H4.4l4-4z"),I(u,"id","plyr-enter-fullscreen"),I(u,"viewBox","0 0 18 18"),I(g,"d","M1 12h3.6l-4 4L2 17.4l4-4V17h2v-7H1zM16 .6l-4 4V1h-2v7h7V6h-3.6l4-4z"),I(m,"id","plyr-exit-fullscreen"),I(m,"viewBox","0 0 18 18"),I(b,"d","M7.875 7.171L0 1v16l7.875-6.171V17L18 9 7.875 1z"),I(f,"id","plyr-fast-forward"),I(f,"viewBox","0 0 18 18"),I(M,"d","M17 5.3c-.1 1.6-1.2 3.7-3.3 6.4-2.2 2.8-4 4.2-5.5 4.2-.9 0-1.7-.9-2.4-2.6C5 10.9 4.4 6 3 6c-.1 0-.5.3-1.2.8l-.8-1c.8-.7 3.5-3.4 4.7-3.5 1.2-.1 2 .7 2.3 2.5.3 2 .8 6.1 1.8 6.1.9 0 2.5-3.4 2.6-4 .1-.9-.3-1.9-2.3-1.1.8-2.6 2.3-3.8 4.5-3.8 1.7.1 2.5 1.2 2.4 3.3z"),I(x,"id","plyr-logo-vimeo"),I(x,"viewBox","0 0 18 18"),I(k,"d","M16.8 5.8c-.2-1.3-.8-2.2-2.2-2.4C12.4 3 9 3 9 3s-3.4 0-5.6.4C2 3.6 1.3 4.5 1.2 5.8 1 7.1 1 9 1 9s0 1.9.2 3.2c.2 1.3.8 2.2 2.2 2.4C5.6 15 9 15 9 15s3.4 0 5.6-.4c1.4-.3 2-1.1 2.2-2.4.2-1.3.2-3.2.2-3.2s0-1.9-.2-3.2zM7 12V6l5 3-5 3z"),I(y,"id","plyr-logo-youtube"),I(y,"viewBox","0 0 18 18"),I(T,"d","M12.4 12.5l2.1-2.1 2.1 2.1 1.4-1.4L15.9 9 18 6.9l-1.4-1.4-2.1 2.1-2.1-2.1L11 6.9 13.1 9 11 11.1zM3.786 6.008H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601L3.786 6.008z"),I(D,"id","plyr-muted"),I(D,"viewBox","0 0 18 18"),I(ne,"d","M6 1H3c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm6 0c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1h-3z"),I(U,"id","plyr-pause"),I(U,"viewBox","0 0 18 18"),I(Ce,"d","M13.293 3.293L7.022 9.564l1.414 1.414 6.271-6.271L17 7V1h-6z"),I(Ge,"d","M13 15H3V5h5V3H2a1 1 0 00-1 1v12a1 1 0 001 1h12a1 1 0 001-1v-6h-2v5z"),I(J,"id","plyr-pip"),I(J,"viewBox","0 0 18 18"),I(Ee,"d","M15.562 8.1L3.87.225c-.818-.562-1.87 0-1.87.9v15.75c0 .9 1.052 1.462 1.87.9L15.563 9.9c.584-.45.584-1.35 0-1.8z"),I(ve,"id","plyr-play"),I(ve,"viewBox","0 0 18 18"),I(ze,"d","M9.7 1.2l.7 6.4 2.1-2.1c1.9 1.9 1.9 5.1 0 7-.9 1-2.2 1.5-3.5 1.5-1.3 0-2.6-.5-3.5-1.5-1.9-1.9-1.9-5.1 0-7 .6-.6 1.4-1.1 2.3-1.3l-.6-1.9C6 2.6 4.9 3.2 4 4.1 1.3 6.8 1.3 11.2 4 14c1.3 1.3 3.1 2 4.9 2 1.9 0 3.6-.7 4.9-2 2.7-2.7 2.7-7.1 0-9.9L16 1.9l-6.3-.7z"),I(xe,"id","plyr-restart"),I(xe,"viewBox","0 0 18 18"),I(Se,"d","M10.125 1L0 9l10.125 8v-6.171L18 17V1l-7.875 6.171z"),I(Me,"id","plyr-rewind"),I(Me,"viewBox","0 0 18 18"),I(De,"d","M16.135 7.784a2 2 0 01-1.23-2.969c.322-.536.225-.998-.094-1.316l-.31-.31c-.318-.318-.78-.415-1.316-.094a2 2 0 01-2.969-1.23C10.065 1.258 9.669 1 9.219 1h-.438c-.45 0-.845.258-.997.865a2 2 0 01-2.969 1.23c-.536-.322-.999-.225-1.317.093l-.31.31c-.318.318-.415.781-.093 1.317a2 2 0 01-1.23 2.969C1.26 7.935 1 8.33 1 8.781v.438c0 .45.258.845.865.997a2 2 0 011.23 2.969c-.322.536-.225.998.094 1.316l.31.31c.319.319.782.415 1.316.094a2 2 0 012.969 1.23c.151.607.547.865.997.865h.438c.45 0 .845-.258.997-.865a2 2 0 012.969-1.23c.535.321.997.225 1.316-.094l.31-.31c.318-.318.415-.781.094-1.316a2 2 0 011.23-2.969c.607-.151.865-.547.865-.997v-.438c0-.451-.26-.846-.865-.997zM9 12a3 3 0 110-6 3 3 0 010 6z"),I(Ie,"id","plyr-settings"),I(Ie,"viewBox","0 0 18 18"),I(wt,"d","M15.6 3.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4C15.4 5.9 16 7.4 16 9c0 1.6-.6 3.1-1.8 4.3-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7z"),I(qe,"d","M11.282 5.282a.909.909 0 000 1.316c.735.735.995 1.458.995 2.402 0 .936-.425 1.917-.995 2.487a.909.909 0 000 1.316c.145.145.636.262 1.018.156a.725.725 0 00.298-.156C13.773 11.733 14.13 10.16 14.13 9c0-.17-.002-.34-.011-.51-.053-.992-.319-2.005-1.522-3.208a.909.909 0 00-1.316 0zm-7.496.726H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601L3.786 6.008z"),I(_e,"id","plyr-volume"),I(_e,"viewBox","0 0 18 18"),I(e,"xmlns","http://www.w3.org/2000/svg"),I(e,"xmlns:xlink","http://www.w3.org/1999/xlink")},m(lt,Nt){Ct(lt,e,Nt),V(e,i),V(i,s),V(i,r),V(e,a),V(a,n),V(e,o),V(o,c),V(e,l),V(l,d),V(e,u),V(u,p),V(e,m),V(m,g),V(e,f),V(f,b),V(e,x),V(x,M),V(e,y),V(y,k),V(e,D),V(D,T),V(e,U),V(U,ne),V(e,J),V(J,Ce),V(J,Ge),V(e,ve),V(ve,Ee),V(e,xe),V(xe,ze),V(e,Me),V(Me,Se),V(e,Ie),V(Ie,De),V(e,_e),V(_e,wt),V(_e,qe)},p:at,i:at,o:at,d(lt){lt&&ft(e)}}}class eu extends In{constructor(e){super();Cn(this,e,null,Kd,fn,{})}}function _(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function tu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _n(t,e){for(var i=0;i<e.length;i++){var s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}function iu(t,e,i){return e&&_n(t.prototype,e),i&&_n(t,i),t}function su(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function An(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),i.push.apply(i,s)}return i}function kn(t){for(var e=1;e<arguments.length;e++){var i=arguments[e]!=null?arguments[e]:{};e%2?An(Object(i),!0).forEach(function(s){su(t,s,i[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):An(Object(i)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(i,s))})}return t}var Tn={addCSS:!0,thumbWidth:15,watch:!0};function ru(t,e){return function(){return Array.from(document.querySelectorAll(e)).includes(this)}.call(t,e)}function au(t,e){if(t&&e){var i=new Event(e,{bubbles:!0});t.dispatchEvent(i)}}var Kt=function(t){return t!=null?t.constructor:null},Ys=function(t,e){return!!(t&&e&&t instanceof e)},Nn=function(t){return t==null},Pn=function(t){return Kt(t)===Object},nu=function(t){return Kt(t)===Number&&!Number.isNaN(t)},En=function(t){return Kt(t)===String},ou=function(t){return Kt(t)===Boolean},lu=function(t){return Kt(t)===Function},zn=function(t){return Array.isArray(t)},Dn=function(t){return Ys(t,NodeList)},cu=function(t){return Ys(t,Element)},hu=function(t){return Ys(t,Event)},du=function(t){return Nn(t)||(En(t)||zn(t)||Dn(t))&&!t.length||Pn(t)&&!Object.keys(t).length},ce={nullOrUndefined:Nn,object:Pn,number:nu,string:En,boolean:ou,function:lu,array:zn,nodeList:Dn,element:cu,event:hu,empty:du};function uu(t){var e="".concat(t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return e?Math.max(0,(e[1]?e[1].length:0)-(e[2]?+e[2]:0)):0}function pu(t,e){if(1>e){var i=uu(e);return parseFloat(t.toFixed(i))}return Math.round(t/e)*e}var gu=function(){function t(e,i){tu(this,t),ce.element(e)?this.element=e:ce.string(e)&&(this.element=document.querySelector(e)),ce.element(this.element)&&ce.empty(this.element.rangeTouch)&&(this.config=kn({},Tn,{},i),this.init())}return iu(t,[{key:"init",value:function(){t.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){t.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var i=this,s=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach(function(r){i.element[s](r,function(a){return i.set(a)},!1)})}},{key:"get",value:function(e){if(!t.enabled||!ce.event(e))return null;var i,s=e.target,r=e.changedTouches[0],a=parseFloat(s.getAttribute("min"))||0,n=parseFloat(s.getAttribute("max"))||100,o=parseFloat(s.getAttribute("step"))||1,c=s.getBoundingClientRect(),l=100/c.width*(this.config.thumbWidth/2)/100;return 0>(i=100/c.width*(r.clientX-c.left))?i=0:100<i&&(i=100),50>i?i-=(100-2*i)*l:50<i&&(i+=2*(i-50)*l),a+pu(i/100*(n-a),o)}},{key:"set",value:function(e){t.enabled&&ce.event(e)&&!e.target.disabled&&(e.preventDefault(),e.target.value=this.get(e),au(e.target,e.type==="touchend"?"change":"input"))}}],[{key:"setup",value:function(e){var i=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},s=null;if(ce.empty(e)||ce.string(e)?s=Array.from(document.querySelectorAll(ce.string(e)?e:'input[type="range"]')):ce.element(e)?s=[e]:ce.nodeList(e)?s=Array.from(e):ce.array(e)&&(s=e.filter(ce.element)),ce.empty(s))return null;var r=kn({},Tn,{},i);if(ce.string(e)&&r.watch){var a=new MutationObserver(function(n){Array.from(n).forEach(function(o){Array.from(o.addedNodes).forEach(function(c){ce.element(c)&&ru(c,e)&&new t(c,r)})})});a.observe(document.body,{childList:!0,subtree:!0})}return s.map(function(n){return new t(n,i)})}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),t}();const _t=t=>t!=null?t.constructor:null,Ye=(t,e)=>Boolean(t&&e&&t instanceof e),Qs=t=>t==null,Ln=t=>_t(t)===Object,mu=t=>_t(t)===Number&&!Number.isNaN(t),Di=t=>_t(t)===String,fu=t=>_t(t)===Boolean,Vn=t=>_t(t)===Function,$n=t=>Array.isArray(t),bu=t=>Ye(t,WeakMap),jn=t=>Ye(t,NodeList),yu=t=>_t(t)===Text,wu=t=>Ye(t,Event),vu=t=>Ye(t,KeyboardEvent),xu=t=>Ye(t,window.TextTrackCue)||Ye(t,window.VTTCue),Mu=t=>Ye(t,TextTrack)||!Qs(t)&&Di(t.kind),Su=t=>Ye(t,Promise)&&Vn(t.then),Cu=t=>t!==null&&typeof t=="object"&&t.nodeType===1&&typeof t.style=="object"&&typeof t.ownerDocument=="object",Bn=t=>Qs(t)||(Di(t)||$n(t)||jn(t))&&!t.length||Ln(t)&&!Object.keys(t).length;var h={nullOrUndefined:Qs,object:Ln,number:mu,string:Di,boolean:fu,function:Vn,array:$n,weakMap:bu,nodeList:jn,element:Cu,textNode:yu,event:wu,keyboardEvent:vu,cue:xu,track:Mu,promise:Su,url:t=>{if(Ye(t,window.URL))return!0;if(!Di(t))return!1;let e=t;t.startsWith("http://")&&t.startsWith("https://")||(e=`http://${t}`);try{return!Bn(new URL(e).hostname)}catch{return!1}},empty:Bn};const Gs=(()=>{const t=document.createElement("span"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i=Object.keys(e).find(s=>t.style[s]!==void 0);return!!h.string(i)&&e[i]})();function Rn(t,e){setTimeout(()=>{try{t.hidden=!0,t.offsetHeight,t.hidden=!1}catch{}},e)}const ae={isIE:Boolean(window.document.documentMode),isEdge:window.navigator.userAgent.includes("Edge"),isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1||/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function Iu(t){return JSON.parse(JSON.stringify(t))}function On(t,e){return e.split(".").reduce((i,s)=>i&&i[s],t)}function K(t={},...e){if(!e.length)return t;const i=e.shift();return h.object(i)?(Object.keys(i).forEach(s=>{h.object(i[s])?(Object.keys(t).includes(s)||Object.assign(t,{[s]:{}}),K(t[s],i[s])):Object.assign(t,{[s]:i[s]})}),K(t,...e)):t}function Un(t,e){const i=t.length?t:[t];Array.from(i).reverse().forEach((s,r)=>{const a=r>0?e.cloneNode(!0):e,n=s.parentNode,o=s.nextSibling;a.appendChild(s),o?n.insertBefore(a,o):n.appendChild(a)})}function qs(t,e){h.element(t)&&!h.empty(e)&&Object.entries(e).filter(([,i])=>!h.nullOrUndefined(i)).forEach(([i,s])=>t.setAttribute(i,s))}function N(t,e,i){const s=document.createElement(t);return h.object(e)&&qs(s,e),h.string(i)&&(s.innerText=i),s}function _u(t,e){h.element(t)&&h.element(e)&&e.parentNode.insertBefore(t,e.nextSibling)}function Hn(t,e,i,s){h.element(e)&&e.appendChild(N(t,i,s))}function Qe(t){h.nodeList(t)||h.array(t)?Array.from(t).forEach(Qe):h.element(t)&&h.element(t.parentNode)&&t.parentNode.removeChild(t)}function Li(t){if(!h.element(t))return;let{length:e}=t.childNodes;for(;e>0;)t.removeChild(t.lastChild),e-=1}function Vi(t,e){return h.element(e)&&h.element(e.parentNode)&&h.element(t)?(e.parentNode.replaceChild(t,e),t):null}function Re(t,e){if(!h.string(t)||h.empty(t))return{};const i={},s=K({},e);return t.split(",").forEach(r=>{const a=r.trim(),n=a.replace(".",""),o=a.replace(/[[\]]/g,"").split("="),[c]=o,l=o.length>1?o[1].replace(/["']/g,""):"";switch(a.charAt(0)){case".":h.string(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case"#":i.id=a.replace("#","");break;case"[":i[c]=l}}),K(s,i)}function bt(t,e){if(!h.element(t))return;let i=e;h.boolean(i)||(i=!t.hidden),t.hidden=i}function H(t,e,i){if(h.nodeList(t))return Array.from(t).map(s=>H(s,e,i));if(h.element(t)){let s="toggle";return i!==void 0&&(s=i?"add":"remove"),t.classList[s](e),t.classList.contains(e)}return!1}function $i(t,e){return h.element(t)&&t.classList.contains(e)}function yt(t,e){const{prototype:i}=Element;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(e)).includes(this)}).call(t,e)}function Au(t,e){const{prototype:i}=Element;return(i.closest||function(){let s=this;do{if(yt.matches(s,e))return s;s=s.parentElement||s.parentNode}while(s!==null&&s.nodeType===1);return null}).call(t,e)}function At(t){return this.elements.container.querySelectorAll(t)}function ee(t){return this.elements.container.querySelector(t)}function Js(t=null,e=!1){h.element(t)&&(t.focus({preventScroll:!0}),e&&H(t,this.config.classNames.tabFocus))}const Fn={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},q={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check(t,e,i){const s=ae.isIPhone&&i&&q.playsinline,r=q[t]||e!=="html5";return{api:r,ui:r&&q.rangeInput&&(t!=="video"||!ae.isIPhone||s)}},pip:!(ae.isIPhone||!h.function(N("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||N("video").disablePictureInPicture)),airplay:h.function(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime(t){if(h.empty(t))return!1;const[e]=t.split("/");let i=t;if(!this.isHTML5||e!==this.type)return!1;Object.keys(Fn).includes(i)&&(i+=`; codecs="${Fn[t]}"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch{return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(()=>{const t=document.createElement("input");return t.type="range",t.type==="range"})(),touch:"ontouchstart"in document.documentElement,transitions:Gs!==!1,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},ku=(()=>{let t=!1;try{const e=Object.defineProperty({},"passive",{get:()=>(t=!0,null)});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch{}return t})();function kt(t,e,i,s=!1,r=!0,a=!1){if(!t||!("addEventListener"in t)||h.empty(e)||!h.function(i))return;const n=e.split(" ");let o=a;ku&&(o={passive:r,capture:a}),n.forEach(c=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:t,type:c,callback:i,options:o}),t[s?"addEventListener":"removeEventListener"](c,i,o)})}function W(t,e="",i,s=!0,r=!1){kt.call(this,t,e,i,!0,s,r)}function ji(t,e="",i,s=!0,r=!1){kt.call(this,t,e,i,!1,s,r)}function Xs(t,e="",i,s=!0,r=!1){const a=(...n)=>{ji(t,e,a,s,r),i.apply(this,n)};kt.call(this,t,e,a,!0,s,r)}function P(t,e="",i=!1,s={}){if(!h.element(t)||h.empty(e))return;const r=new CustomEvent(e,{bubbles:i,detail:pe(R({},s),{plyr:this})});t.dispatchEvent(r)}function Tu(){this&&this.eventListeners&&(this.eventListeners.forEach(t=>{const{element:e,type:i,callback:s,options:r}=t;e.removeEventListener(i,s,r)}),this.eventListeners=[])}function Nu(){return new Promise(t=>this.ready?setTimeout(t,0):W.call(this,this.elements.container,"ready",t)).then(()=>{})}function Oe(t){h.promise(t)&&t.then(null,()=>{})}function Ks(t){return h.array(t)?t.filter((e,i)=>t.indexOf(e)===i):t}function Wn(t,e){return h.array(t)&&t.length?t.reduce((i,s)=>Math.abs(s-e)<Math.abs(i-e)?s:i):null}function Zn(t){return!(!window||!window.CSS)&&window.CSS.supports(t)}const Yn=[[1,1],[4,3],[3,4],[5,4],[4,5],[3,2],[2,3],[16,10],[10,16],[16,9],[9,16],[21,9],[9,21],[32,9],[9,32]].reduce((t,[e,i])=>pe(R({},t),{[e/i]:[e,i]}),{});function Qn(t){return h.array(t)||h.string(t)&&t.includes(":")?(h.array(t)?t:t.split(":")).map(Number).every(h.number):!1}function Bi(t){if(!h.array(t)||!t.every(h.number))return null;const[e,i]=t,s=(a,n)=>n===0?a:s(n,a%n),r=s(e,i);return[e/r,i/r]}function er(t){const e=s=>Qn(s)?s.split(":").map(Number):null;let i=e(t);if(i===null&&(i=e(this.config.ratio)),i===null&&!h.empty(this.embed)&&h.array(this.embed.ratio)&&({ratio:i}=this.embed),i===null&&this.isHTML5){const{videoWidth:s,videoHeight:r}=this.media;i=[s,r]}return Bi(i)}function Tt(t){if(!this.isVideo)return{};const{wrapper:e}=this.elements,i=er.call(this,t);if(!h.array(i))return{};const[s,r]=Bi(i),a=100/s*r;if(Zn(`aspect-ratio: ${s}/${r}`)?e.style.aspectRatio=`${s}/${r}`:e.style.paddingBottom=`${a}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const n=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),o=(n-a)/(n/50);this.fullscreen.active?e.style.paddingBottom=null:this.media.style.transform=`translateY(-${o}%)`}else this.isHTML5&&e.classList.add(this.config.classNames.videoFixedRatio);return{padding:a,ratio:i}}function Gn(t,e,i=.05){const s=t/e,r=Wn(Object.keys(Yn),s);return Math.abs(r-s)<=i?Yn[r]:[t,e]}function Pu(){return[Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)]}const nt={getSources(){return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter(t=>{const e=t.getAttribute("type");return!!h.empty(e)||q.mime.call(this,e)}):[]},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:nt.getSources.call(this).map(t=>Number(t.getAttribute("size"))).filter(Boolean)},setup(){if(!this.isHTML5)return;const t=this;t.options.speed=t.config.speed.options,h.empty(this.config.ratio)||Tt.call(t),Object.defineProperty(t.media,"quality",{get(){const e=nt.getSources.call(t).find(i=>i.getAttribute("src")===t.source);return e&&Number(e.getAttribute("size"))},set(e){if(t.quality!==e){if(t.config.quality.forced&&h.function(t.config.quality.onChange))t.config.quality.onChange(e);else{const i=nt.getSources.call(t).find(c=>Number(c.getAttribute("size"))===e);if(!i)return;const{currentTime:s,paused:r,preload:a,readyState:n,playbackRate:o}=t.media;t.media.src=i.getAttribute("src"),(a!=="none"||n)&&(t.once("loadedmetadata",()=>{t.speed=o,t.currentTime=s,r||Oe(t.play())}),t.media.load())}P.call(t,t.media,"qualitychange",!1,{quality:e})}}})},cancelRequests(){this.isHTML5&&(Qe(nt.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function Eu(t){return`${t}-${Math.floor(1e4*Math.random())}`}function tr(t,...e){return h.empty(t)?t:t.toString().replace(/{(\d+)}/g,(i,s)=>e[s].toString())}function zu(t,e){return t===0||e===0||Number.isNaN(t)||Number.isNaN(e)?0:(t/e*100).toFixed(2)}const ei=(t="",e="",i="")=>t.replace(new RegExp(e.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString()),qn=(t="")=>t.toString().replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase());function Du(t=""){let e=t.toString();return e=ei(e,"-"," "),e=ei(e,"_"," "),e=qn(e),ei(e," ","")}function Lu(t=""){let e=t.toString();return e=Du(e),e.charAt(0).toLowerCase()+e.slice(1)}function Vu(t){const e=document.createDocumentFragment(),i=document.createElement("div");return e.appendChild(i),i.innerHTML=t,e.firstChild.innerText}function $u(t){const e=document.createElement("div");return e.appendChild(t),e.innerHTML}const Jn={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},ie={get(t="",e={}){if(h.empty(t)||h.empty(e))return"";let i=On(e.i18n,t);if(h.empty(i))return Object.keys(Jn).includes(t)?Jn[t]:"";const s={"{seektime}":e.seekTime,"{title}":e.title};return Object.entries(s).forEach(([r,a])=>{i=ei(i,r,a)}),i}};class ti{constructor(e){_(this,"get",i=>{if(!ti.supported||!this.enabled)return null;const s=window.localStorage.getItem(this.key);if(h.empty(s))return null;const r=JSON.parse(s);return h.string(i)&&i.length?r[i]:r}),_(this,"set",i=>{if(!ti.supported||!this.enabled||!h.object(i))return;let s=this.get();h.empty(s)&&(s={}),K(s,i);try{window.localStorage.setItem(this.key,JSON.stringify(s))}catch{}}),this.enabled=e.config.storage.enabled,this.key=e.config.storage.key}static get supported(){try{if(!("localStorage"in window))return!1;const e="___test";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}}function ii(t,e="text"){return new Promise((i,s)=>{try{const r=new XMLHttpRequest;if(!("withCredentials"in r))return;r.addEventListener("load",()=>{if(e==="text")try{i(JSON.parse(r.responseText))}catch{i(r.responseText)}else i(r.response)}),r.addEventListener("error",()=>{throw new Error(r.status)}),r.open("GET",t,!0),r.responseType=e,r.send()}catch(r){s(r)}})}function Xn(t,e){if(!h.string(t))return;const i=h.string(e);let s=!1;const r=()=>document.getElementById(e)!==null,a=(n,o)=>{n.innerHTML=o,i&&r()||document.body.insertAdjacentElement("afterbegin",n)};if(!i||!r()){const n=ti.supported,o=document.createElement("div");if(o.setAttribute("hidden",""),i&&o.setAttribute("id",e),n){const c=window.localStorage.getItem(`cache-${e}`);if(s=c!==null,s){const l=JSON.parse(c);a(o,l.content)}}ii(t).then(c=>{if(!h.empty(c)){if(n)try{window.localStorage.setItem(`cache-${e}`,JSON.stringify({content:c}))}catch{}a(o,c)}}).catch(()=>{})}}const Kn=t=>Math.trunc(t/60/60%60,10),ju=t=>Math.trunc(t%60,10);function Ri(t=0,e=!1,i=!1){if(!h.number(t))return Ri(void 0,e,i);const s=c=>`0${c}`.slice(-2);let r=Kn(t);const a=(n=t,Math.trunc(n/60%60,10));var n;const o=ju(t);return r=e||r>0?`${r}:`:"",`${i&&t>0?"-":""}${r}${s(a)}:${s(o)}`}const C={getIconUrl(){const t=new URL(this.config.iconUrl,window.location),e=window.location.host?window.location.host:window.top.location.host,i=t.host!==e||ae.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=ee.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:At.call(this,this.config.selectors.buttons.play),pause:ee.call(this,this.config.selectors.buttons.pause),restart:ee.call(this,this.config.selectors.buttons.restart),rewind:ee.call(this,this.config.selectors.buttons.rewind),fastForward:ee.call(this,this.config.selectors.buttons.fastForward),mute:ee.call(this,this.config.selectors.buttons.mute),pip:ee.call(this,this.config.selectors.buttons.pip),airplay:ee.call(this,this.config.selectors.buttons.airplay),settings:ee.call(this,this.config.selectors.buttons.settings),captions:ee.call(this,this.config.selectors.buttons.captions),fullscreen:ee.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=ee.call(this,this.config.selectors.progress),this.elements.inputs={seek:ee.call(this,this.config.selectors.inputs.seek),volume:ee.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:ee.call(this,this.config.selectors.display.buffer),currentTime:ee.call(this,this.config.selectors.display.currentTime),duration:ee.call(this,this.config.selectors.display.duration)},h.element(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(t){return this.debug.warn("It looks like there is a problem with your custom controls HTML",t),this.toggleNativeControls(!0),!1}},createIcon(t,e){const i="http://www.w3.org/2000/svg",s=C.getIconUrl.call(this),r=`${s.cors?"":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,"svg");qs(a,K(e,{"aria-hidden":"true",focusable:"false"}));const n=document.createElementNS(i,"use"),o=`${r}-${t}`;return"href"in n&&n.setAttributeNS("http://www.w3.org/1999/xlink","href",o),n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o),a.appendChild(n),a},createLabel(t,e={}){const i=ie.get(t,this.config);return N("span",pe(R({},e),{class:[e.class,this.config.classNames.hidden].filter(Boolean).join(" ")}),i)},createBadge(t){if(h.empty(t))return null;const e=N("span",{class:this.config.classNames.menu.value});return e.appendChild(N("span",{class:this.config.classNames.menu.badge},t)),e},createButton(t,e){const i=K({},e);let s=Lu(t);const r={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach(n=>{Object.keys(i).includes(n)&&(r[n]=i[n],delete i[n])}),r.element!=="button"||Object.keys(i).includes("type")||(i.type="button"),Object.keys(i).includes("class")?i.class.split(" ").some(n=>n===this.config.classNames.control)||K(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,t){case"play":r.toggle=!0,r.label="play",r.labelPressed="pause",r.icon="play",r.iconPressed="pause";break;case"mute":r.toggle=!0,r.label="mute",r.labelPressed="unmute",r.icon="volume",r.iconPressed="muted";break;case"captions":r.toggle=!0,r.label="enableCaptions",r.labelPressed="disableCaptions",r.icon="captions-off",r.iconPressed="captions-on";break;case"fullscreen":r.toggle=!0,r.label="enterFullscreen",r.labelPressed="exitFullscreen",r.icon="enter-fullscreen",r.iconPressed="exit-fullscreen";break;case"play-large":i.class+=` ${this.config.classNames.control}--overlaid`,s="play",r.label="play",r.icon="play";break;default:h.empty(r.label)&&(r.label=s),h.empty(r.icon)&&(r.icon=t)}const a=N(r.element);return r.toggle?(a.appendChild(C.createIcon.call(this,r.iconPressed,{class:"icon--pressed"})),a.appendChild(C.createIcon.call(this,r.icon,{class:"icon--not-pressed"})),a.appendChild(C.createLabel.call(this,r.labelPressed,{class:"label--pressed"})),a.appendChild(C.createLabel.call(this,r.label,{class:"label--not-pressed"}))):(a.appendChild(C.createIcon.call(this,r.icon)),a.appendChild(C.createLabel.call(this,r.label))),K(i,Re(this.config.selectors.buttons[s],i)),qs(a,i),s==="play"?(h.array(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(t,e){const i=N("input",K(Re(this.config.selectors.inputs[t]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":ie.get(t,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},e));return this.elements.inputs[t]=i,C.updateRangeFill.call(this,i),gu.setup(i),i},createProgress(t,e){const i=N("progress",K(Re(this.config.selectors.display[t]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},e));if(t!=="volume"){i.appendChild(N("span",null,"0"));const s={played:"played",buffer:"buffered"}[t],r=s?ie.get(s,this.config):"";i.innerText=`% ${r.toLowerCase()}`}return this.elements.display[t]=i,i},createTime(t,e){const i=Re(this.config.selectors.display[t],e),s=N("div",K(i,{class:`${i.class?i.class:""} ${this.config.classNames.display.time} `.trim(),"aria-label":ie.get(t,this.config)}),"00:00");return this.elements.display[t]=s,s},bindMenuItemShortcuts(t,e){W.call(this,t,"keydown keyup",i=>{if(!["Space","ArrowUp","ArrowDown","ArrowRight"].includes(i.key)||(i.preventDefault(),i.stopPropagation(),i.type==="keydown"))return;const s=yt(t,'[role="menuitemradio"]');if(!s&&["Space","ArrowRight"].includes(i.key))C.showMenuPanel.call(this,e,!0);else{let r;i.key!=="Space"&&(i.key==="ArrowDown"||s&&i.key==="ArrowRight"?(r=t.nextElementSibling,h.element(r)||(r=t.parentNode.firstElementChild)):(r=t.previousElementSibling,h.element(r)||(r=t.parentNode.lastElementChild)),Js.call(this,r,!0))}},!1),W.call(this,t,"keyup",i=>{i.key==="Return"&&C.focusFirstMenuItem.call(this,null,!0)})},createMenuItem({value:t,list:e,type:i,title:s,badge:r=null,checked:a=!1}){const n=Re(this.config.selectors.inputs[i]),o=N("button",K(n,{type:"button",role:"menuitemradio",class:`${this.config.classNames.control} ${n.class?n.class:""}`.trim(),"aria-checked":a,value:t})),c=N("span");c.innerHTML=s,h.element(r)&&c.appendChild(r),o.appendChild(c),Object.defineProperty(o,"checked",{enumerable:!0,get:()=>o.getAttribute("aria-checked")==="true",set(l){l&&Array.from(o.parentNode.children).filter(d=>yt(d,'[role="menuitemradio"]')).forEach(d=>d.setAttribute("aria-checked","false")),o.setAttribute("aria-checked",l?"true":"false")}}),this.listeners.bind(o,"click keyup",l=>{if(!h.keyboardEvent(l)||l.key==="Space"){switch(l.preventDefault(),l.stopPropagation(),o.checked=!0,i){case"language":this.currentTrack=Number(t);break;case"quality":this.quality=t;break;case"speed":this.speed=parseFloat(t)}C.showMenuPanel.call(this,"home",h.keyboardEvent(l))}},i,!1),C.bindMenuItemShortcuts.call(this,o,i),e.appendChild(o)},formatTime(t=0,e=!1){return h.number(t)?Ri(t,Kn(this.duration)>0,e):t},updateTimeDisplay(t=null,e=0,i=!1){h.element(t)&&h.number(e)&&(t.innerText=C.formatTime(e,i))},updateVolume(){this.supported.ui&&(h.element(this.elements.inputs.volume)&&C.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),h.element(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||this.volume===0))},setRange(t,e=0){h.element(t)&&(t.value=e,C.updateRangeFill.call(this,t))},updateProgress(t){if(!this.supported.ui||!h.event(t))return;let e=0;const i=(s,r)=>{const a=h.number(r)?r:0,n=h.element(s)?s:this.elements.display.buffer;if(h.element(n)){n.value=a;const o=n.getElementsByTagName("span")[0];h.element(o)&&(o.childNodes[0].nodeValue=a)}};if(t)switch(t.type){case"timeupdate":case"seeking":case"seeked":e=zu(this.currentTime,this.duration),t.type==="timeupdate"&&C.setRange.call(this,this.elements.inputs.seek,e);break;case"playing":case"progress":i(this.elements.display.buffer,100*this.buffered)}},updateRangeFill(t){const e=h.event(t)?t.target:t;if(h.element(e)&&e.getAttribute("type")==="range"){if(yt(e,this.config.selectors.inputs.seek)){e.setAttribute("aria-valuenow",this.currentTime);const i=C.formatTime(this.currentTime),s=C.formatTime(this.duration),r=ie.get("seekLabel",this.config);e.setAttribute("aria-valuetext",r.replace("{currentTime}",i).replace("{duration}",s))}else if(yt(e,this.config.selectors.inputs.volume)){const i=100*e.value;e.setAttribute("aria-valuenow",i),e.setAttribute("aria-valuetext",`${i.toFixed(1)}%`)}else e.setAttribute("aria-valuenow",e.value);ae.isWebkit&&e.style.setProperty("--value",e.value/e.max*100+"%")}},updateSeekTooltip(t){var e,i;if(!this.config.tooltips.seek||!h.element(this.elements.inputs.seek)||!h.element(this.elements.display.seekTooltip)||this.duration===0)return;const s=this.elements.display.seekTooltip,r=`${this.config.classNames.tooltip}--visible`,a=d=>H(s,r,d);if(this.touch)return void a(!1);let n=0;const o=this.elements.progress.getBoundingClientRect();if(h.event(t))n=100/o.width*(t.pageX-o.left);else{if(!$i(s,r))return;n=parseFloat(s.style.left,10)}n<0?n=0:n>100&&(n=100);const c=this.duration/100*n;s.innerText=C.formatTime(c);const l=(e=this.config.markers)===null||e===void 0||(i=e.points)===null||i===void 0?void 0:i.find(({time:d})=>d===Math.round(c));l&&s.insertAdjacentHTML("afterbegin",`${l.label}<br>`),s.style.left=`${n}%`,h.event(t)&&["mouseenter","mouseleave"].includes(t.type)&&a(t.type==="mouseenter")},timeUpdate(t){const e=!h.element(this.elements.display.duration)&&this.config.invertTime;C.updateTimeDisplay.call(this,this.elements.display.currentTime,e?this.duration-this.currentTime:this.currentTime,e),t&&t.type==="timeupdate"&&this.media.seeking||C.updateProgress.call(this,t)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return bt(this.elements.display.currentTime,!0),void bt(this.elements.progress,!0);h.element(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);const t=h.element(this.elements.display.duration);!t&&this.config.displayDuration&&this.paused&&C.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),t&&C.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),this.config.markers.enabled&&C.setMarkers.call(this),C.updateSeekTooltip.call(this)},toggleMenuButton(t,e){bt(this.elements.settings.buttons[t],!e)},updateSetting(t,e,i){const s=this.elements.settings.panels[t];let r=null,a=e;if(t==="captions")r=this.currentTrack;else{if(r=h.empty(i)?this[t]:i,h.empty(r)&&(r=this.config[t].default),!h.empty(this.options[t])&&!this.options[t].includes(r))return void this.debug.warn(`Unsupported value of '${r}' for ${t}`);if(!this.config[t].options.includes(r))return void this.debug.warn(`Disabled value of '${r}' for ${t}`)}if(h.element(a)||(a=s&&s.querySelector('[role="menu"]')),!h.element(a))return;this.elements.settings.buttons[t].querySelector(`.${this.config.classNames.menu.value}`).innerHTML=C.getLabel.call(this,t,r);const n=a&&a.querySelector(`[value="${r}"]`);h.element(n)&&(n.checked=!0)},getLabel(t,e){switch(t){case"speed":return e===1?ie.get("normal",this.config):`${e}×`;case"quality":if(h.number(e)){const i=ie.get(`qualityLabel.${e}`,this.config);return i.length?i:`${e}p`}return qn(e);case"captions":return Z.getLabel.call(this);default:return null}},setQualityMenu(t){if(!h.element(this.elements.settings.panels.quality))return;const e="quality",i=this.elements.settings.panels.quality.querySelector('[role="menu"]');h.array(t)&&(this.options.quality=Ks(t).filter(a=>this.config.quality.options.includes(a)));const s=!h.empty(this.options.quality)&&this.options.quality.length>1;if(C.toggleMenuButton.call(this,e,s),Li(i),C.checkMenu.call(this),!s)return;const r=a=>{const n=ie.get(`qualityBadge.${a}`,this.config);return n.length?C.createBadge.call(this,n):null};this.options.quality.sort((a,n)=>{const o=this.config.quality.options;return o.indexOf(a)>o.indexOf(n)?1:-1}).forEach(a=>{C.createMenuItem.call(this,{value:a,list:i,type:e,title:C.getLabel.call(this,"quality",a),badge:r(a)})}),C.updateSetting.call(this,e,i)},setCaptionsMenu(){if(!h.element(this.elements.settings.panels.captions))return;const t="captions",e=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=Z.getTracks.call(this),s=Boolean(i.length);if(C.toggleMenuButton.call(this,t,s),Li(e),C.checkMenu.call(this),!s)return;const r=i.map((a,n)=>({value:n,checked:this.captions.toggled&&this.currentTrack===n,title:Z.getLabel.call(this,a),badge:a.language&&C.createBadge.call(this,a.language.toUpperCase()),list:e,type:"language"}));r.unshift({value:-1,checked:!this.captions.toggled,title:ie.get("disabled",this.config),list:e,type:"language"}),r.forEach(C.createMenuItem.bind(this)),C.updateSetting.call(this,t,e)},setSpeedMenu(){if(!h.element(this.elements.settings.panels.speed))return;const t="speed",e=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter(s=>s>=this.minimumSpeed&&s<=this.maximumSpeed);const i=!h.empty(this.options.speed)&&this.options.speed.length>1;C.toggleMenuButton.call(this,t,i),Li(e),C.checkMenu.call(this),i&&(this.options.speed.forEach(s=>{C.createMenuItem.call(this,{value:s,list:e,type:t,title:C.getLabel.call(this,"speed",s)})}),C.updateSetting.call(this,t,e))},checkMenu(){const{buttons:t}=this.elements.settings,e=!h.empty(t)&&Object.values(t).some(i=>!i.hidden);bt(this.elements.settings.menu,!e)},focusFirstMenuItem(t,e=!1){if(this.elements.settings.popup.hidden)return;let i=t;h.element(i)||(i=Object.values(this.elements.settings.panels).find(r=>!r.hidden));const s=i.querySelector('[role^="menuitem"]');Js.call(this,s,e)},toggleMenu(t){const{popup:e}=this.elements.settings,i=this.elements.buttons.settings;if(!h.element(e)||!h.element(i))return;const{hidden:s}=e;let r=s;if(h.boolean(t))r=t;else if(h.keyboardEvent(t)&&t.key==="Escape")r=!1;else if(h.event(t)){const a=h.function(t.composedPath)?t.composedPath()[0]:t.target,n=e.contains(a);if(n||!n&&t.target!==i&&r)return}i.setAttribute("aria-expanded",r),bt(e,!r),H(this.elements.container,this.config.classNames.menu.open,r),r&&h.keyboardEvent(t)?C.focusFirstMenuItem.call(this,null,!0):r||s||Js.call(this,i,h.keyboardEvent(t))},getMenuSize(t){const e=t.cloneNode(!0);e.style.position="absolute",e.style.opacity=0,e.removeAttribute("hidden"),t.parentNode.appendChild(e);const i=e.scrollWidth,s=e.scrollHeight;return Qe(e),{width:i,height:s}},showMenuPanel(t="",e=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${t}`);if(!h.element(i))return;const s=i.parentNode,r=Array.from(s.children).find(a=>!a.hidden);if(q.transitions&&!q.reducedMotion){s.style.width=`${r.scrollWidth}px`,s.style.height=`${r.scrollHeight}px`;const a=C.getMenuSize.call(this,i),n=o=>{o.target===s&&["width","height"].includes(o.propertyName)&&(s.style.width="",s.style.height="",ji.call(this,s,Gs,n))};W.call(this,s,Gs,n),s.style.width=`${a.width}px`,s.style.height=`${a.height}px`}bt(r,!0),bt(i,!1),C.focusFirstMenuItem.call(this,i,e)},setDownloadUrl(){const t=this.elements.buttons.download;h.element(t)&&t.setAttribute("href",this.download)},create(t){const{bindMenuItemShortcuts:e,createButton:i,createProgress:s,createRange:r,createTime:a,setQualityMenu:n,setSpeedMenu:o,showMenuPanel:c}=C;this.elements.controls=null,h.array(this.config.controls)&&this.config.controls.includes("play-large")&&this.elements.container.appendChild(i.call(this,"play-large"));const l=N("div",Re(this.config.selectors.controls.wrapper));this.elements.controls=l;const d={class:"plyr__controls__item"};return Ks(h.array(this.config.controls)?this.config.controls:[]).forEach(u=>{if(u==="restart"&&l.appendChild(i.call(this,"restart",d)),u==="rewind"&&l.appendChild(i.call(this,"rewind",d)),u==="play"&&l.appendChild(i.call(this,"play",d)),u==="fast-forward"&&l.appendChild(i.call(this,"fast-forward",d)),u==="progress"){const p=N("div",{class:`${d.class} plyr__progress__container`}),m=N("div",Re(this.config.selectors.progress));if(m.appendChild(r.call(this,"seek",{id:`plyr-seek-${t.id}`})),m.appendChild(s.call(this,"buffer")),this.config.tooltips.seek){const g=N("span",{class:this.config.classNames.tooltip},"00:00");m.appendChild(g),this.elements.display.seekTooltip=g}this.elements.progress=m,p.appendChild(this.elements.progress),l.appendChild(p)}if(u==="current-time"&&l.appendChild(a.call(this,"currentTime",d)),u==="duration"&&l.appendChild(a.call(this,"duration",d)),u==="mute"||u==="volume"){let{volume:p}=this.elements;if(h.element(p)&&l.contains(p)||(p=N("div",K({},d,{class:`${d.class} plyr__volume`.trim()})),this.elements.volume=p,l.appendChild(p)),u==="mute"&&p.appendChild(i.call(this,"mute")),u==="volume"&&!ae.isIos){const m={max:1,step:.05,value:this.config.volume};p.appendChild(r.call(this,"volume",K(m,{id:`plyr-volume-${t.id}`})))}}if(u==="captions"&&l.appendChild(i.call(this,"captions",d)),u==="settings"&&!h.empty(this.config.settings)){const p=N("div",K({},d,{class:`${d.class} plyr__menu`.trim(),hidden:""}));p.appendChild(i.call(this,"settings",{"aria-haspopup":!0,"aria-controls":`plyr-settings-${t.id}`,"aria-expanded":!1}));const m=N("div",{class:"plyr__menu__container",id:`plyr-settings-${t.id}`,hidden:""}),g=N("div"),f=N("div",{id:`plyr-settings-${t.id}-home`}),b=N("div",{role:"menu"});f.appendChild(b),g.appendChild(f),this.elements.settings.panels.home=f,this.config.settings.forEach(x=>{const M=N("button",K(Re(this.config.selectors.buttons.settings),{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:"menuitem","aria-haspopup":!0,hidden:""}));e.call(this,M,x),W.call(this,M,"click",()=>{c.call(this,x,!1)});const y=N("span",null,ie.get(x,this.config)),k=N("span",{class:this.config.classNames.menu.value});k.innerHTML=t[x],y.appendChild(k),M.appendChild(y),b.appendChild(M);const D=N("div",{id:`plyr-settings-${t.id}-${x}`,hidden:""}),T=N("button",{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});T.appendChild(N("span",{"aria-hidden":!0},ie.get(x,this.config))),T.appendChild(N("span",{class:this.config.classNames.hidden},ie.get("menuBack",this.config))),W.call(this,D,"keydown",U=>{U.key==="ArrowLeft"&&(U.preventDefault(),U.stopPropagation(),c.call(this,"home",!0))},!1),W.call(this,T,"click",()=>{c.call(this,"home",!1)}),D.appendChild(T),D.appendChild(N("div",{role:"menu"})),g.appendChild(D),this.elements.settings.buttons[x]=M,this.elements.settings.panels[x]=D}),m.appendChild(g),p.appendChild(m),l.appendChild(p),this.elements.settings.popup=m,this.elements.settings.menu=p}if(u==="pip"&&q.pip&&l.appendChild(i.call(this,"pip",d)),u==="airplay"&&q.airplay&&l.appendChild(i.call(this,"airplay",d)),u==="download"){const p=K({},d,{element:"a",href:this.download,target:"_blank"});this.isHTML5&&(p.download="");const{download:m}=this.config.urls;!h.url(m)&&this.isEmbed&&K(p,{icon:`logo-${this.provider}`,label:this.provider}),l.appendChild(i.call(this,"download",p))}u==="fullscreen"&&l.appendChild(i.call(this,"fullscreen",d))}),this.isHTML5&&n.call(this,nt.getQualityOptions.call(this)),o.call(this),l},inject(){if(this.config.loadSprite){const r=C.getIconUrl.call(this);r.cors&&Xn(r.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());let t=null;this.elements.controls=null;const e={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;h.function(this.config.controls)&&(this.config.controls=this.config.controls.call(this,e)),this.config.controls||(this.config.controls=[]),h.element(this.config.controls)||h.string(this.config.controls)?t=this.config.controls:(t=C.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:Z.getLabel.call(this)}),i=!1);let s;if(i&&h.string(this.config.controls)&&(t=(r=>{let a=r;return Object.entries(e).forEach(([n,o])=>{a=ei(a,`{${n}}`,o)}),a})(t)),h.string(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),h.element(s)||(s=this.elements.container),s[h.element(t)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",t),h.element(this.elements.controls)||C.findElements.call(this),!h.empty(this.elements.buttons)){const r=a=>{const n=this.config.classNames.controlPressed;Object.defineProperty(a,"pressed",{enumerable:!0,get:()=>$i(a,n),set(o=!1){H(a,n,o)}})};Object.values(this.elements.buttons).filter(Boolean).forEach(a=>{h.array(a)||h.nodeList(a)?Array.from(a).filter(Boolean).forEach(r):r(a)})}if(ae.isEdge&&Rn(s),this.config.tooltips.controls){const{classNames:r,selectors:a}=this.config,n=`${a.controls.wrapper} ${a.labels} .${r.hidden}`,o=At.call(this,n);Array.from(o).forEach(c=>{H(c,this.config.classNames.hidden,!1),H(c,this.config.classNames.tooltip,!0)})}},setMediaMetadata(){try{"mediaSession"in navigator&&(navigator.mediaSession.metadata=new window.MediaMetadata({title:this.config.mediaMetadata.title,artist:this.config.mediaMetadata.artist,album:this.config.mediaMetadata.album,artwork:this.config.mediaMetadata.artwork}))}catch{}},setMarkers(){var t,e;if(!this.duration||this.elements.markers)return;const i=(t=this.config.markers)===null||t===void 0||(e=t.points)===null||e===void 0?void 0:e.filter(({time:c})=>c>0&&c<this.duration);if(i==null||!i.length)return;const s=document.createDocumentFragment(),r=document.createDocumentFragment();let a=null;const n=`${this.config.classNames.tooltip}--visible`,o=c=>H(a,n,c);i.forEach(c=>{const l=N("span",{class:this.config.classNames.marker},""),d=c.time/this.duration*100+"%";a&&(l.addEventListener("mouseenter",()=>{c.label||(a.style.left=d,a.innerHTML=c.label,o(!0))}),l.addEventListener("mouseleave",()=>{o(!1)})),l.addEventListener("click",()=>{this.currentTime=c.time}),l.style.left=d,r.appendChild(l)}),s.appendChild(r),this.config.tooltips.seek||(a=N("span",{class:this.config.classNames.tooltip},""),s.appendChild(a)),this.elements.markers={points:r,tip:a},this.elements.progress.appendChild(s)}};function eo(t,e=!0){let i=t;if(e){const s=document.createElement("a");s.href=i,i=s.href}try{return new URL(i)}catch{return null}}function to(t){const e=new URLSearchParams;return h.object(t)&&Object.entries(t).forEach(([i,s])=>{e.set(i,s)}),e}const Z={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!q.textTracks)return void(h.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&C.setCaptionsMenu.call(this));if(h.element(this.elements.captions)||(this.elements.captions=N("div",Re(this.config.selectors.captions)),_u(this.elements.captions,this.elements.wrapper)),ae.isIE&&window.URL){const s=this.media.querySelectorAll("track");Array.from(s).forEach(r=>{const a=r.getAttribute("src"),n=eo(a);n!==null&&n.hostname!==window.location.href.hostname&&["http:","https:"].includes(n.protocol)&&ii(a,"blob").then(o=>{r.setAttribute("src",window.URL.createObjectURL(o))}).catch(()=>{Qe(r)})})}const t=Ks((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map(s=>s.split("-")[0]));let e=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();e==="auto"&&([e]=t);let i=this.storage.get("captions");if(h.boolean(i)||({active:i}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:i,language:e,languages:t}),this.isHTML5){const s=this.config.captions.update?"addtrack removetrack":"removetrack";W.call(this,this.media.textTracks,s,Z.update.bind(this))}setTimeout(Z.update.bind(this),0)},update(){const t=Z.getTracks.call(this,!0),{active:e,language:i,meta:s,currentTrackNode:r}=this.captions,a=Boolean(t.find(n=>n.language===i));this.isHTML5&&this.isVideo&&t.filter(n=>!s.get(n)).forEach(n=>{this.debug.log("Track added",n),s.set(n,{default:n.mode==="showing"}),n.mode==="showing"&&(n.mode="hidden"),W.call(this,n,"cuechange",()=>Z.updateCues.call(this))}),(a&&this.language!==i||!t.includes(r))&&(Z.setLanguage.call(this,i),Z.toggle.call(this,e&&a)),this.elements&&H(this.elements.container,this.config.classNames.captions.enabled,!h.empty(t)),h.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&C.setCaptionsMenu.call(this)},toggle(t,e=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,r=h.nullOrUndefined(t)?!i:t;if(r!==i){if(e||(this.captions.active=r,this.storage.set({captions:r})),!this.language&&r&&!e){const a=Z.getTracks.call(this),n=Z.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=n.language,void Z.set.call(this,a.indexOf(n))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=r),H(this.elements.container,s,r),this.captions.toggled=r,C.updateSetting.call(this,"captions"),P.call(this,this.media,r?"captionsenabled":"captionsdisabled")}setTimeout(()=>{r&&this.captions.toggled&&(this.captions.currentTrackNode.mode="hidden")})},set(t,e=!0){const i=Z.getTracks.call(this);if(t!==-1)if(h.number(t))if(t in i){if(this.captions.currentTrack!==t){this.captions.currentTrack=t;const s=i[t],{language:r}=s||{};this.captions.currentTrackNode=s,C.updateSetting.call(this,"captions"),e||(this.captions.language=r,this.storage.set({language:r})),this.isVimeo&&this.embed.enableTextTrack(r),P.call(this,this.media,"languagechange")}Z.toggle.call(this,!0,e),this.isHTML5&&this.isVideo&&Z.updateCues.call(this)}else this.debug.warn("Track not found",t);else this.debug.warn("Invalid caption argument",t);else Z.toggle.call(this,!1,e)},setLanguage(t,e=!0){if(!h.string(t))return void this.debug.warn("Invalid language argument",t);const i=t.toLowerCase();this.captions.language=i;const s=Z.getTracks.call(this),r=Z.findTrack.call(this,[i]);Z.set.call(this,s.indexOf(r),e)},getTracks(t=!1){return Array.from((this.media||{}).textTracks||[]).filter(e=>!this.isHTML5||t||this.captions.meta.has(e)).filter(e=>["captions","subtitles"].includes(e.kind))},findTrack(t,e=!1){const i=Z.getTracks.call(this),s=n=>Number((this.captions.meta.get(n)||{}).default),r=Array.from(i).sort((n,o)=>s(o)-s(n));let a;return t.every(n=>(a=r.find(o=>o.language===n),!a)),a||(e?r[0]:void 0)},getCurrentTrack(){return Z.getTracks.call(this)[this.currentTrack]},getLabel(t){let e=t;return!h.track(e)&&q.textTracks&&this.captions.toggled&&(e=Z.getCurrentTrack.call(this)),h.track(e)?h.empty(e.label)?h.empty(e.language)?ie.get("enabled",this.config):t.language.toUpperCase():e.label:ie.get("disabled",this.config)},updateCues(t){if(!this.supported.ui)return;if(!h.element(this.elements.captions))return void this.debug.warn("No captions element to render to");if(!h.nullOrUndefined(t)&&!Array.isArray(t))return void this.debug.warn("updateCues: Invalid input",t);let e=t;if(!e){const s=Z.getCurrentTrack.call(this);e=Array.from((s||{}).activeCues||[]).map(r=>r.getCueAsHTML()).map($u)}const i=e.map(s=>s.trim()).join(`
|
125
|
-
`);if(i!==this.elements.captions.innerHTML){Li(this.elements.captions);const s=N("span",Re(this.config.selectors.caption));s.innerHTML=i,this.elements.captions.appendChild(s),P.call(this,this.media,"cuechange")}}},io={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.7.2/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/oembed.json?url={0}"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",marker:"plyr__progress__marker",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id",hash:"data-plyr-embed-hash"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1},mediaMetadata:{title:"",artist:"",album:"",artwork:[]},markers:{enabled:!1,points:[]}},ir={active:"picture-in-picture",inactive:"inline"},ot={html5:"html5",youtube:"youtube",vimeo:"vimeo"},sr={audio:"audio",video:"video"};function Bu(t){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(t)?ot.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(t)?ot.vimeo:null}const rr=()=>{};class Ru{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log("Debugging enabled")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):rr}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):rr}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):rr}}class Ue{constructor(e){_(this,"onChange",()=>{if(!this.enabled)return;const i=this.player.elements.buttons.fullscreen;h.element(i)&&(i.pressed=this.active);const s=this.target===this.player.media?this.target:this.player.elements.container;P.call(this.player,s,this.active?"enterfullscreen":"exitfullscreen",!0)}),_(this,"toggleFallback",(i=!1)=>{if(i?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=i?"hidden":"",H(this.target,this.player.config.classNames.fullscreen.fallback,i),ae.isIos){let s=document.head.querySelector('meta[name="viewport"]');const r="viewport-fit=cover";s||(s=document.createElement("meta"),s.setAttribute("name","viewport"));const a=h.string(s.content)&&s.content.includes(r);i?(this.cleanupViewport=!a,a||(s.content+=`,${r}`)):this.cleanupViewport&&(s.content=s.content.split(",").filter(n=>n.trim()!==r).join(","))}this.onChange()}),_(this,"trapFocus",i=>{if(ae.isIos||!this.active||i.key!=="Tab")return;const s=document.activeElement,r=At.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),[a]=r,n=r[r.length-1];s!==n||i.shiftKey?s===a&&i.shiftKey&&(n.focus(),i.preventDefault()):(a.focus(),i.preventDefault())}),_(this,"update",()=>{if(this.enabled){let i;i=this.forceFallback?"Fallback (forced)":Ue.native?"Native":"Fallback",this.player.debug.log(`${i} fullscreen enabled`)}else this.player.debug.log("Fullscreen not supported and fallback disabled");H(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}),_(this,"enter",()=>{this.enabled&&(ae.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!Ue.native||this.forceFallback?this.toggleFallback(!0):this.prefix?h.empty(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:"hide"}))}),_(this,"exit",()=>{if(this.enabled)if(ae.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),Oe(this.player.play());else if(!Ue.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!h.empty(this.prefix)){const i=this.prefix==="moz"?"Cancel":"Exit";document[`${this.prefix}${i}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)}),_(this,"toggle",()=>{this.active?this.exit():this.enter()}),this.player=e,this.prefix=Ue.prefix,this.property=Ue.property,this.scrollPosition={x:0,y:0},this.forceFallback=e.config.fullscreen.fallback==="force",this.player.elements.fullscreen=e.config.fullscreen.container&&Au(this.player.elements.container,e.config.fullscreen.container),W.call(this.player,document,this.prefix==="ms"?"MSFullscreenChange":`${this.prefix}fullscreenchange`,()=>{this.onChange()}),W.call(this.player,this.player.elements.container,"dblclick",i=>{h.element(this.player.elements.controls)&&this.player.elements.controls.contains(i.target)||this.player.listeners.proxy(i,this.toggle,"fullscreen")}),W.call(this,this.player.elements.container,"keydown",i=>this.trapFocus(i)),this.update()}static get native(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get usingNative(){return Ue.native&&!this.forceFallback}static get prefix(){if(h.function(document.exitFullscreen))return"";let e="";return["webkit","moz","ms"].some(i=>!(!h.function(document[`${i}ExitFullscreen`])&&!h.function(document[`${i}CancelFullScreen`]))&&(e=i,!0)),e}static get property(){return this.prefix==="moz"?"FullScreen":"Fullscreen"}get enabled(){return(Ue.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}get active(){if(!this.enabled)return!1;if(!Ue.native||this.forceFallback)return $i(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return ae.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}function Oi(t,e=1){return new Promise((i,s)=>{const r=new Image,a=()=>{delete r.onload,delete r.onerror,(r.naturalWidth>=e?i:s)(r)};Object.assign(r,{onload:a,onerror:a,src:t})})}const Y={addStyleHook(){H(this.elements.container,this.config.selectors.container.replace(".",""),!0),H(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(t=!1){t&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void Y.toggleNativeControls.call(this,!0);h.element(this.elements.controls)||(C.inject.call(this),this.listeners.controls()),Y.toggleNativeControls.call(this),this.isHTML5&&Z.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,C.updateVolume.call(this),C.timeUpdate.call(this),C.durationUpdate.call(this),Y.checkPlaying.call(this),H(this.elements.container,this.config.classNames.pip.supported,q.pip&&this.isHTML5&&this.isVideo),H(this.elements.container,this.config.classNames.airplay.supported,q.airplay&&this.isHTML5),H(this.elements.container,this.config.classNames.isIos,ae.isIos),H(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout(()=>{P.call(this,this.media,"ready")},0),Y.setTitle.call(this),this.poster&&Y.setPoster.call(this,this.poster,!1).catch(()=>{}),this.config.duration&&C.durationUpdate.call(this),this.config.mediaMetadata&&C.setMediaMetadata.call(this)},setTitle(){let t=ie.get("play",this.config);if(h.string(this.config.title)&&!h.empty(this.config.title)&&(t+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach(e=>{e.setAttribute("aria-label",t)}),this.isEmbed){const e=ee.call(this,"iframe");if(!h.element(e))return;const i=h.empty(this.config.title)?"video":this.config.title,s=ie.get("frameTitle",this.config);e.setAttribute("title",s.replace("{title}",i))}},togglePoster(t){H(this.elements.container,this.config.classNames.posterEnabled,t)},setPoster(t,e=!0){return e&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",t),this.elements.poster.removeAttribute("hidden"),Nu.call(this).then(()=>Oi(t)).catch(i=>{throw t===this.poster&&Y.togglePoster.call(this,!1),i}).then(()=>{if(t!==this.poster)throw new Error("setPoster cancelled by later call to setPoster")}).then(()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${t}')`,backgroundSize:""}),Y.togglePoster.call(this,!0),t)))},checkPlaying(t){H(this.elements.container,this.config.classNames.playing,this.playing),H(this.elements.container,this.config.classNames.paused,this.paused),H(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach(e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute("aria-label",ie.get(this.playing?"pause":"play",this.config))}),h.event(t)&&t.type==="timeupdate"||Y.toggleControls.call(this)},checkLoading(t){this.loading=["stalled","waiting"].includes(t.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout(()=>{H(this.elements.container,this.config.classNames.loading,this.loading),Y.toggleControls.call(this)},this.loading?250:0)},toggleControls(t){const{controls:e}=this.elements;if(e&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(t||this.loading||this.paused||e.pressed||e.hover||i))}},migrateStyles(){Object.values(R({},this.media.style)).filter(t=>!h.empty(t)&&h.string(t)&&t.startsWith("--plyr")).forEach(t=>{this.elements.container.style.setProperty(t,this.media.style.getPropertyValue(t)),this.media.style.removeProperty(t)}),h.empty(this.media.style)&&this.media.removeAttribute("style")}};class Ou{constructor(e){_(this,"firstTouch",()=>{const{player:i}=this,{elements:s}=i;i.touch=!0,H(s.container,i.config.classNames.isTouch,!0)}),_(this,"setTabFocus",i=>{const{player:s}=this,{elements:r}=s,{key:a,type:n,timeStamp:o}=i;if(clearTimeout(this.focusTimer),n==="keydown"&&a!=="Tab")return;n==="keydown"&&(this.lastKeyDown=o);const c=o-this.lastKeyDown<=20;(n!=="focus"||c)&&((()=>{const l=s.config.classNames.tabFocus;H(At.call(s,`.${l}`),l,!1)})(),n!=="focusout"&&(this.focusTimer=setTimeout(()=>{const l=document.activeElement;r.container.contains(l)&&H(document.activeElement,s.config.classNames.tabFocus,!0)},10)))}),_(this,"global",(i=!0)=>{const{player:s}=this;s.config.keyboard.global&&kt.call(s,window,"keydown keyup",this.handleKey,i,!1),kt.call(s,document.body,"click",this.toggleMenu,i),Xs.call(s,document.body,"touchstart",this.firstTouch),kt.call(s,document.body,"keydown focus blur focusout",this.setTabFocus,i,!1,!0)}),_(this,"container",()=>{const{player:i}=this,{config:s,elements:r,timers:a}=i;!s.keyboard.global&&s.keyboard.focused&&W.call(i,r.container,"keydown keyup",this.handleKey,!1),W.call(i,r.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",c=>{const{controls:l}=r;l&&c.type==="enterfullscreen"&&(l.pressed=!1,l.hover=!1);let d=0;["touchstart","touchmove","mousemove"].includes(c.type)&&(Y.toggleControls.call(i,!0),d=i.touch?3e3:2e3),clearTimeout(a.controls),a.controls=setTimeout(()=>Y.toggleControls.call(i,!1),d)});const n=()=>{if(!i.isVimeo||i.config.vimeo.premium)return;const c=r.wrapper,{active:l}=i.fullscreen,[d,u]=er.call(i),p=Zn(`aspect-ratio: ${d} / ${u}`);if(!l)return void(p?(c.style.width=null,c.style.height=null):(c.style.maxWidth=null,c.style.margin=null));const[m,g]=Pu(),f=m/g>d/u;p?(c.style.width=f?"auto":"100%",c.style.height=f?"100%":"auto"):(c.style.maxWidth=f?g/u*d+"px":null,c.style.margin=f?"0 auto":null)},o=()=>{clearTimeout(a.resized),a.resized=setTimeout(n,50)};W.call(i,r.container,"enterfullscreen exitfullscreen",c=>{const{target:l}=i.fullscreen;l===r.container&&(!i.isEmbed&&h.empty(i.config.ratio)||(n(),(c.type==="enterfullscreen"?W:ji).call(i,window,"resize",o)))})}),_(this,"media",()=>{const{player:i}=this,{elements:s}=i;if(W.call(i,i.media,"timeupdate seeking seeked",a=>C.timeUpdate.call(i,a)),W.call(i,i.media,"durationchange loadeddata loadedmetadata",a=>C.durationUpdate.call(i,a)),W.call(i,i.media,"ended",()=>{i.isHTML5&&i.isVideo&&i.config.resetOnEnd&&(i.restart(),i.pause())}),W.call(i,i.media,"progress playing seeking seeked",a=>C.updateProgress.call(i,a)),W.call(i,i.media,"volumechange",a=>C.updateVolume.call(i,a)),W.call(i,i.media,"playing play pause ended emptied timeupdate",a=>Y.checkPlaying.call(i,a)),W.call(i,i.media,"waiting canplay seeked playing",a=>Y.checkLoading.call(i,a)),i.supported.ui&&i.config.clickToPlay&&!i.isAudio){const a=ee.call(i,`.${i.config.classNames.video}`);if(!h.element(a))return;W.call(i,s.container,"click",n=>{([s.container,a].includes(n.target)||a.contains(n.target))&&(i.touch&&i.config.hideControls||(i.ended?(this.proxy(n,i.restart,"restart"),this.proxy(n,()=>{Oe(i.play())},"play")):this.proxy(n,()=>{Oe(i.togglePlay())},"play")))})}i.supported.ui&&i.config.disableContextMenu&&W.call(i,s.wrapper,"contextmenu",a=>{a.preventDefault()},!1),W.call(i,i.media,"volumechange",()=>{i.storage.set({volume:i.volume,muted:i.muted})}),W.call(i,i.media,"ratechange",()=>{C.updateSetting.call(i,"speed"),i.storage.set({speed:i.speed})}),W.call(i,i.media,"qualitychange",a=>{C.updateSetting.call(i,"quality",null,a.detail.quality)}),W.call(i,i.media,"ready qualitychange",()=>{C.setDownloadUrl.call(i)});const r=i.config.events.concat(["keyup","keydown"]).join(" ");W.call(i,i.media,r,a=>{let{detail:n={}}=a;a.type==="error"&&(n=i.media.error),P.call(i,s.container,a.type,!0,n)})}),_(this,"proxy",(i,s,r)=>{const{player:a}=this,n=a.config.listeners[r];let o=!0;h.function(n)&&(o=n.call(a,i)),o!==!1&&h.function(s)&&s.call(a,i)}),_(this,"bind",(i,s,r,a,n=!0)=>{const{player:o}=this,c=o.config.listeners[a],l=h.function(c);W.call(o,i,s,d=>this.proxy(d,r,a),n&&!l)}),_(this,"controls",()=>{const{player:i}=this,{elements:s}=i,r=ae.isIE?"change":"input";if(s.buttons.play&&Array.from(s.buttons.play).forEach(a=>{this.bind(a,"click",()=>{Oe(i.togglePlay())},"play")}),this.bind(s.buttons.restart,"click",i.restart,"restart"),this.bind(s.buttons.rewind,"click",()=>{i.lastSeekTime=Date.now(),i.rewind()},"rewind"),this.bind(s.buttons.fastForward,"click",()=>{i.lastSeekTime=Date.now(),i.forward()},"fastForward"),this.bind(s.buttons.mute,"click",()=>{i.muted=!i.muted},"mute"),this.bind(s.buttons.captions,"click",()=>i.toggleCaptions()),this.bind(s.buttons.download,"click",()=>{P.call(i,i.media,"download")},"download"),this.bind(s.buttons.fullscreen,"click",()=>{i.fullscreen.toggle()},"fullscreen"),this.bind(s.buttons.pip,"click",()=>{i.pip="toggle"},"pip"),this.bind(s.buttons.airplay,"click",i.airplay,"airplay"),this.bind(s.buttons.settings,"click",a=>{a.stopPropagation(),a.preventDefault(),C.toggleMenu.call(i,a)},null,!1),this.bind(s.buttons.settings,"keyup",a=>{["Space","Enter"].includes(a.key)&&(a.key!=="Enter"?(a.preventDefault(),a.stopPropagation(),C.toggleMenu.call(i,a)):C.focusFirstMenuItem.call(i,null,!0))},null,!1),this.bind(s.settings.menu,"keydown",a=>{a.key==="Escape"&&C.toggleMenu.call(i,a)}),this.bind(s.inputs.seek,"mousedown mousemove",a=>{const n=s.progress.getBoundingClientRect(),o=100/n.width*(a.pageX-n.left);a.currentTarget.setAttribute("seek-value",o)}),this.bind(s.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",a=>{const n=a.currentTarget,o="play-on-seeked";if(h.keyboardEvent(a)&&!["ArrowLeft","ArrowRight"].includes(a.key))return;i.lastSeekTime=Date.now();const c=n.hasAttribute(o),l=["mouseup","touchend","keyup"].includes(a.type);c&&l?(n.removeAttribute(o),Oe(i.play())):!l&&i.playing&&(n.setAttribute(o,""),i.pause())}),ae.isIos){const a=At.call(i,'input[type="range"]');Array.from(a).forEach(n=>this.bind(n,r,o=>Rn(o.target)))}this.bind(s.inputs.seek,r,a=>{const n=a.currentTarget;let o=n.getAttribute("seek-value");h.empty(o)&&(o=n.value),n.removeAttribute("seek-value"),i.currentTime=o/n.max*i.duration},"seek"),this.bind(s.progress,"mouseenter mouseleave mousemove",a=>C.updateSeekTooltip.call(i,a)),this.bind(s.progress,"mousemove touchmove",a=>{const{previewThumbnails:n}=i;n&&n.loaded&&n.startMove(a)}),this.bind(s.progress,"mouseleave touchend click",()=>{const{previewThumbnails:a}=i;a&&a.loaded&&a.endMove(!1,!0)}),this.bind(s.progress,"mousedown touchstart",a=>{const{previewThumbnails:n}=i;n&&n.loaded&&n.startScrubbing(a)}),this.bind(s.progress,"mouseup touchend",a=>{const{previewThumbnails:n}=i;n&&n.loaded&&n.endScrubbing(a)}),ae.isWebkit&&Array.from(At.call(i,'input[type="range"]')).forEach(a=>{this.bind(a,"input",n=>C.updateRangeFill.call(i,n.target))}),i.config.toggleInvert&&!h.element(s.display.duration)&&this.bind(s.display.currentTime,"click",()=>{i.currentTime!==0&&(i.config.invertTime=!i.config.invertTime,C.timeUpdate.call(i))}),this.bind(s.inputs.volume,r,a=>{i.volume=a.target.value},"volume"),this.bind(s.controls,"mouseenter mouseleave",a=>{s.controls.hover=!i.touch&&a.type==="mouseenter"}),s.fullscreen&&Array.from(s.fullscreen.children).filter(a=>!a.contains(s.container)).forEach(a=>{this.bind(a,"mouseenter mouseleave",n=>{s.controls&&(s.controls.hover=!i.touch&&n.type==="mouseenter")})}),this.bind(s.controls,"mousedown mouseup touchstart touchend touchcancel",a=>{s.controls.pressed=["mousedown","touchstart"].includes(a.type)}),this.bind(s.controls,"focusin",()=>{const{config:a,timers:n}=i;H(s.controls,a.classNames.noTransition,!0),Y.toggleControls.call(i,!0),setTimeout(()=>{H(s.controls,a.classNames.noTransition,!1)},0);const o=this.touch?3e3:4e3;clearTimeout(n.controls),n.controls=setTimeout(()=>Y.toggleControls.call(i,!1),o)}),this.bind(s.inputs.volume,"wheel",a=>{const n=a.webkitDirectionInvertedFromDevice,[o,c]=[a.deltaX,-a.deltaY].map(u=>n?-u:u),l=Math.sign(Math.abs(o)>Math.abs(c)?o:c);i.increaseVolume(l/50);const{volume:d}=i.media;(l===1&&d<1||l===-1&&d>0)&&a.preventDefault()},"volume",!1)}),this.player=e,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:i}=this,{elements:s}=i,{key:r,type:a,altKey:n,ctrlKey:o,metaKey:c,shiftKey:l}=e,d=a==="keydown",u=d&&r===this.lastKey;if(!(n||o||c||l)&&!!r){if(d){const m=document.activeElement;if(h.element(m)){const{editable:g}=i.config.selectors,{seek:f}=s.inputs;if(m!==f&&yt(m,g)||e.key==="Space"&&yt(m,'button, [role^="menuitem"]'))return}switch(["Space","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","0","1","2","3","4","5","6","7","8","9","c","f","k","l","m"].includes(r)&&(e.preventDefault(),e.stopPropagation()),r){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":u||(p=parseInt(r,10),i.currentTime=i.duration/10*p);break;case"Space":case"k":u||Oe(i.togglePlay());break;case"ArrowUp":i.increaseVolume(.1);break;case"ArrowDown":i.decreaseVolume(.1);break;case"m":u||(i.muted=!i.muted);break;case"ArrowRight":i.forward();break;case"ArrowLeft":i.rewind();break;case"f":i.fullscreen.toggle();break;case"c":u||i.toggleCaptions();break;case"l":i.loop=!i.loop}r==="Escape"&&!i.fullscreen.usingNative&&i.fullscreen.active&&i.fullscreen.toggle(),this.lastKey=r}else this.lastKey=null;var p}}toggleMenu(e){C.toggleMenu.call(this.player,e)}}function Uu(t,e){return t(e={exports:{}},e.exports),e.exports}var Hu=Uu(function(t,e){t.exports=function(){var i=function(){},s={},r={},a={};function n(p,m){p=p.push?p:[p];var g,f,b,x=[],M=p.length,y=M;for(g=function(k,D){D.length&&x.push(k),--y||m(x)};M--;)f=p[M],(b=r[f])?g(f,b):(a[f]=a[f]||[]).push(g)}function o(p,m){if(p){var g=a[p];if(r[p]=m,g)for(;g.length;)g[0](p,m),g.splice(0,1)}}function c(p,m){p.call&&(p={success:p}),m.length?(p.error||i)(m):(p.success||i)(p)}function l(p,m,g,f){var b,x,M=document,y=g.async,k=(g.numRetries||0)+1,D=g.before||i,T=p.replace(/[\?|#].*$/,""),U=p.replace(/^(css|img)!/,"");f=f||0,/(^css!|\.css$)/.test(T)?((x=M.createElement("link")).rel="stylesheet",x.href=U,(b="hideFocus"in x)&&x.relList&&(b=0,x.rel="preload",x.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(T)?(x=M.createElement("img")).src=U:((x=M.createElement("script")).src=p,x.async=y===void 0||y),x.onload=x.onerror=x.onbeforeload=function(ne){var J=ne.type[0];if(b)try{x.sheet.cssText.length||(J="e")}catch(Ce){Ce.code!=18&&(J="e")}if(J=="e"){if((f+=1)<k)return l(p,m,g,f)}else if(x.rel=="preload"&&x.as=="style")return x.rel="stylesheet";m(p,J,ne.defaultPrevented)},D(p,x)!==!1&&M.head.appendChild(x)}function d(p,m,g){var f,b,x=(p=p.push?p:[p]).length,M=x,y=[];for(f=function(k,D,T){if(D=="e"&&y.push(k),D=="b"){if(!T)return;y.push(k)}--x||m(y)},b=0;b<M;b++)l(p[b],f,g)}function u(p,m,g){var f,b;if(m&&m.trim&&(f=m),b=(f?g:m)||{},f){if(f in s)throw"LoadJS";s[f]=!0}function x(M,y){d(p,function(k){c(b,k),M&&c({success:M,error:y},k),o(f,k)},b)}if(b.returnPromise)return new Promise(x);x()}return u.ready=function(p,m){return n(p,function(g){c(m,g)}),u},u.done=function(p){o(p,[])},u.reset=function(){s={},r={},a={}},u.isDefined=function(p){return p in s},u}()});function ar(t){return new Promise((e,i)=>{Hu(t,{success:e,error:i})})}function Fu(t){return h.empty(t)?null:h.number(Number(t))?t:t.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:t}function Wu(t){const e=t.match(/^.*(vimeo.com\/|video\/)(\d+)(\?.*&*h=|\/)+([\d,a-f]+)/);return e&&e.length===5?e[4]:null}function si(t){t&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===t&&(this.media.paused=!t,P.call(this,this.media,t?"play":"pause"))}const nr={setup(){const t=this;H(t.elements.wrapper,t.config.classNames.embed,!0),t.options.speed=t.config.speed.options,Tt.call(t),h.object(window.Vimeo)?nr.ready.call(t):ar(t.config.urls.vimeo.sdk).then(()=>{nr.ready.call(t)}).catch(e=>{t.debug.warn("Vimeo SDK (player.js) failed to load",e)})},ready(){const t=this,e=t.config.vimeo,M=e,{premium:i,referrerPolicy:s}=M,r=mo(M,["premium","referrerPolicy"]);let a=t.media.getAttribute("src"),n="";h.empty(a)?(a=t.media.getAttribute(t.config.attributes.embed.id),n=t.media.getAttribute(t.config.attributes.embed.hash)):n=Wu(a);const o=n?{h:n}:{};i&&Object.assign(r,{controls:!1,sidedock:!1});const c=to(R(R({loop:t.config.loop.active,autoplay:t.autoplay,muted:t.muted,gesture:"media",playsinline:!this.config.fullscreen.iosNative},o),r)),l=Fu(a),d=N("iframe"),u=tr(t.config.urls.vimeo.iframe,l,c);if(d.setAttribute("src",u),d.setAttribute("allowfullscreen",""),d.setAttribute("allow",["autoplay","fullscreen","picture-in-picture","encrypted-media","accelerometer","gyroscope"].join("; ")),h.empty(s)||d.setAttribute("referrerPolicy",s),i||!e.customControls)d.setAttribute("data-poster",t.poster),t.media=Vi(d,t.media);else{const y=N("div",{class:t.config.classNames.embedContainer,"data-poster":t.poster});y.appendChild(d),t.media=Vi(y,t.media)}e.customControls||ii(tr(t.config.urls.vimeo.api,u)).then(y=>{!h.empty(y)&&y.thumbnail_url&&Y.setPoster.call(t,y.thumbnail_url).catch(()=>{})}),t.embed=new window.Vimeo.Player(d,{autopause:t.config.autopause,muted:t.muted}),t.media.paused=!0,t.media.currentTime=0,t.supported.ui&&t.embed.disableTextTrack(),t.media.play=()=>(si.call(t,!0),t.embed.play()),t.media.pause=()=>(si.call(t,!1),t.embed.pause()),t.media.stop=()=>{t.pause(),t.currentTime=0};let{currentTime:p}=t.media;Object.defineProperty(t.media,"currentTime",{get:()=>p,set(y){const{embed:k,media:D,paused:T,volume:U}=t,ne=T&&!k.hasPlayed;D.seeking=!0,P.call(t,D,"seeking"),Promise.resolve(ne&&k.setVolume(0)).then(()=>k.setCurrentTime(y)).then(()=>ne&&k.pause()).then(()=>ne&&k.setVolume(U)).catch(()=>{})}});let m=t.config.speed.selected;Object.defineProperty(t.media,"playbackRate",{get:()=>m,set(y){t.embed.setPlaybackRate(y).then(()=>{m=y,P.call(t,t.media,"ratechange")}).catch(()=>{t.options.speed=[1]})}});let{volume:g}=t.config;Object.defineProperty(t.media,"volume",{get:()=>g,set(y){t.embed.setVolume(y).then(()=>{g=y,P.call(t,t.media,"volumechange")})}});let{muted:f}=t.config;Object.defineProperty(t.media,"muted",{get:()=>f,set(y){const k=!!h.boolean(y)&&y;t.embed.setVolume(k?0:t.config.volume).then(()=>{f=k,P.call(t,t.media,"volumechange")})}});let b,{loop:x}=t.config;Object.defineProperty(t.media,"loop",{get:()=>x,set(y){const k=h.boolean(y)?y:t.config.loop.active;t.embed.setLoop(k).then(()=>{x=k})}}),t.embed.getVideoUrl().then(y=>{b=y,C.setDownloadUrl.call(t)}).catch(y=>{this.debug.warn(y)}),Object.defineProperty(t.media,"currentSrc",{get:()=>b}),Object.defineProperty(t.media,"ended",{get:()=>t.currentTime===t.duration}),Promise.all([t.embed.getVideoWidth(),t.embed.getVideoHeight()]).then(y=>{const[k,D]=y;t.embed.ratio=Gn(k,D),Tt.call(this)}),t.embed.setAutopause(t.config.autopause).then(y=>{t.config.autopause=y}),t.embed.getVideoTitle().then(y=>{t.config.title=y,Y.setTitle.call(this)}),t.embed.getCurrentTime().then(y=>{p=y,P.call(t,t.media,"timeupdate")}),t.embed.getDuration().then(y=>{t.media.duration=y,P.call(t,t.media,"durationchange")}),t.embed.getTextTracks().then(y=>{t.media.textTracks=y,Z.setup.call(t)}),t.embed.on("cuechange",({cues:y=[]})=>{const k=y.map(D=>Vu(D.text));Z.updateCues.call(t,k)}),t.embed.on("loaded",()=>{t.embed.getPaused().then(y=>{si.call(t,!y),y||P.call(t,t.media,"playing")}),h.element(t.embed.element)&&t.supported.ui&&t.embed.element.setAttribute("tabindex",-1)}),t.embed.on("bufferstart",()=>{P.call(t,t.media,"waiting")}),t.embed.on("bufferend",()=>{P.call(t,t.media,"playing")}),t.embed.on("play",()=>{si.call(t,!0),P.call(t,t.media,"playing")}),t.embed.on("pause",()=>{si.call(t,!1)}),t.embed.on("timeupdate",y=>{t.media.seeking=!1,p=y.seconds,P.call(t,t.media,"timeupdate")}),t.embed.on("progress",y=>{t.media.buffered=y.percent,P.call(t,t.media,"progress"),parseInt(y.percent,10)===1&&P.call(t,t.media,"canplaythrough"),t.embed.getDuration().then(k=>{k!==t.media.duration&&(t.media.duration=k,P.call(t,t.media,"durationchange"))})}),t.embed.on("seeked",()=>{t.media.seeking=!1,P.call(t,t.media,"seeked")}),t.embed.on("ended",()=>{t.media.paused=!0,P.call(t,t.media,"ended")}),t.embed.on("error",y=>{t.media.error=y,P.call(t,t.media,"error")}),e.customControls&&setTimeout(()=>Y.build.call(t),0)}};function Zu(t){return h.empty(t)?null:t.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:t}function ri(t){t&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===t&&(this.media.paused=!t,P.call(this,this.media,t?"play":"pause"))}function Yu(t){return t.noCookie?"https://www.youtube-nocookie.com":window.location.protocol==="http:"?"http://www.youtube.com":void 0}const Ui={setup(){if(H(this.elements.wrapper,this.config.classNames.embed,!0),h.object(window.YT)&&h.function(window.YT.Player))Ui.ready.call(this);else{const t=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{h.function(t)&&t(),Ui.ready.call(this)},ar(this.config.urls.youtube.sdk).catch(e=>{this.debug.warn("YouTube API failed to load",e)})}},getTitle(t){ii(tr(this.config.urls.youtube.api,t)).then(e=>{if(h.object(e)){const{title:i,height:s,width:r}=e;this.config.title=i,Y.setTitle.call(this),this.embed.ratio=Gn(r,s)}Tt.call(this)}).catch(()=>{Tt.call(this)})},ready(){const t=this,e=t.config.youtube,i=t.media&&t.media.getAttribute("id");if(!h.empty(i)&&i.startsWith("youtube-"))return;let s=t.media.getAttribute("src");h.empty(s)&&(s=t.media.getAttribute(this.config.attributes.embed.id));const r=Zu(s),a=N("div",{id:Eu(t.provider),"data-poster":e.customControls?t.poster:void 0});if(t.media=Vi(a,t.media),e.customControls){const n=o=>`https://i.ytimg.com/vi/${r}/${o}default.jpg`;Oi(n("maxres"),121).catch(()=>Oi(n("sd"),121)).catch(()=>Oi(n("hq"))).then(o=>Y.setPoster.call(t,o.src)).then(o=>{o.includes("maxres")||(t.elements.poster.style.backgroundSize="cover")}).catch(()=>{})}t.embed=new window.YT.Player(t.media,{videoId:r,host:Yu(e),playerVars:K({},{autoplay:t.config.autoplay?1:0,hl:t.config.hl,controls:t.supported.ui&&e.customControls?0:1,disablekb:1,playsinline:t.config.fullscreen.iosNative?0:1,cc_load_policy:t.captions.active?1:0,cc_lang_pref:t.config.captions.language,widget_referrer:window?window.location.href:null},e),events:{onError(n){if(!t.media.error){const o=n.data,c={2:"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[o]||"An unknown error occured";t.media.error={code:o,message:c},P.call(t,t.media,"error")}},onPlaybackRateChange(n){const o=n.target;t.media.playbackRate=o.getPlaybackRate(),P.call(t,t.media,"ratechange")},onReady(n){if(h.function(t.media.play))return;const o=n.target;Ui.getTitle.call(t,r),t.media.play=()=>{ri.call(t,!0),o.playVideo()},t.media.pause=()=>{ri.call(t,!1),o.pauseVideo()},t.media.stop=()=>{o.stopVideo()},t.media.duration=o.getDuration(),t.media.paused=!0,t.media.currentTime=0,Object.defineProperty(t.media,"currentTime",{get:()=>Number(o.getCurrentTime()),set(u){t.paused&&!t.embed.hasPlayed&&t.embed.mute(),t.media.seeking=!0,P.call(t,t.media,"seeking"),o.seekTo(u)}}),Object.defineProperty(t.media,"playbackRate",{get:()=>o.getPlaybackRate(),set(u){o.setPlaybackRate(u)}});let{volume:c}=t.config;Object.defineProperty(t.media,"volume",{get:()=>c,set(u){c=u,o.setVolume(100*c),P.call(t,t.media,"volumechange")}});let{muted:l}=t.config;Object.defineProperty(t.media,"muted",{get:()=>l,set(u){const p=h.boolean(u)?u:l;l=p,o[p?"mute":"unMute"](),o.setVolume(100*c),P.call(t,t.media,"volumechange")}}),Object.defineProperty(t.media,"currentSrc",{get:()=>o.getVideoUrl()}),Object.defineProperty(t.media,"ended",{get:()=>t.currentTime===t.duration});const d=o.getAvailablePlaybackRates();t.options.speed=d.filter(u=>t.config.speed.options.includes(u)),t.supported.ui&&e.customControls&&t.media.setAttribute("tabindex",-1),P.call(t,t.media,"timeupdate"),P.call(t,t.media,"durationchange"),clearInterval(t.timers.buffering),t.timers.buffering=setInterval(()=>{t.media.buffered=o.getVideoLoadedFraction(),(t.media.lastBuffered===null||t.media.lastBuffered<t.media.buffered)&&P.call(t,t.media,"progress"),t.media.lastBuffered=t.media.buffered,t.media.buffered===1&&(clearInterval(t.timers.buffering),P.call(t,t.media,"canplaythrough"))},200),e.customControls&&setTimeout(()=>Y.build.call(t),50)},onStateChange(n){const o=n.target;switch(clearInterval(t.timers.playing),t.media.seeking&&[1,2].includes(n.data)&&(t.media.seeking=!1,P.call(t,t.media,"seeked")),n.data){case-1:P.call(t,t.media,"timeupdate"),t.media.buffered=o.getVideoLoadedFraction(),P.call(t,t.media,"progress");break;case 0:ri.call(t,!1),t.media.loop?(o.stopVideo(),o.playVideo()):P.call(t,t.media,"ended");break;case 1:e.customControls&&!t.config.autoplay&&t.media.paused&&!t.embed.hasPlayed?t.media.pause():(ri.call(t,!0),P.call(t,t.media,"playing"),t.timers.playing=setInterval(()=>{P.call(t,t.media,"timeupdate")},50),t.media.duration!==o.getDuration()&&(t.media.duration=o.getDuration(),P.call(t,t.media,"durationchange")));break;case 2:t.muted||t.embed.unMute(),ri.call(t,!1);break;case 3:P.call(t,t.media,"waiting")}P.call(t,t.elements.container,"statechange",!1,{code:n.data})}}})}},so={setup(){this.media?(H(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),H(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&H(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=N("div",{class:this.config.classNames.video}),Un(this.media,this.elements.wrapper),this.elements.poster=N("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?nt.setup.call(this):this.isYouTube?Ui.setup.call(this):this.isVimeo&&nr.setup.call(this)):this.debug.warn("No media element found!")}};class Qu{constructor(e){_(this,"load",()=>{this.enabled&&(h.object(window.google)&&h.object(window.google.ima)?this.ready():ar(this.player.config.urls.googleIMA.sdk).then(()=>{this.ready()}).catch(()=>{this.trigger("error",new Error("Google IMA SDK failed to load"))}))}),_(this,"ready",()=>{var i;this.enabled||((i=this).manager&&i.manager.destroy(),i.elements.displayContainer&&i.elements.displayContainer.destroy(),i.elements.container.remove()),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then(()=>{this.clearSafetyTimer("onAdsManagerLoaded()")}),this.listeners(),this.setupIMA()}),_(this,"setupIMA",()=>{this.elements.container=N("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>this.onAdsManagerLoaded(i),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,i=>this.onAdError(i),!1),this.requestAds()}),_(this,"requestAds",()=>{const{container:i}=this.player.elements;try{const s=new google.ima.AdsRequest;s.adTagUrl=this.tagUrl,s.linearAdSlotWidth=i.offsetWidth,s.linearAdSlotHeight=i.offsetHeight,s.nonLinearAdSlotWidth=i.offsetWidth,s.nonLinearAdSlotHeight=i.offsetHeight,s.forceNonLinearFullSlot=!1,s.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(s)}catch(s){this.onAdError(s)}}),_(this,"pollCountdown",(i=!1)=>{if(!i)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");this.countdownTimer=setInterval(()=>{const s=Ri(Math.max(this.manager.getRemainingTime(),0)),r=`${ie.get("advertisement",this.player.config)} - ${s}`;this.elements.container.setAttribute("data-badge-text",r)},100)}),_(this,"onAdsManagerLoaded",i=>{if(!this.enabled)return;const s=new google.ima.AdsRenderingSettings;s.restoreCustomPlaybackStateOnAdBreakComplete=!0,s.enablePreloading=!0,this.manager=i.getAdsManager(this.player,s),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,r=>this.onAdError(r)),Object.keys(google.ima.AdEvent.Type).forEach(r=>{this.manager.addEventListener(google.ima.AdEvent.Type[r],a=>this.onAdEvent(a))}),this.trigger("loaded")}),_(this,"addCuePoints",()=>{h.empty(this.cuePoints)||this.cuePoints.forEach(i=>{if(i!==0&&i!==-1&&i<this.player.duration){const s=this.player.elements.progress;if(h.element(s)){const r=100/this.player.duration*i,a=N("span",{class:this.player.config.classNames.cues});a.style.left=`${r.toString()}%`,s.appendChild(a)}}})}),_(this,"onAdEvent",i=>{const{container:s}=this.player.elements,r=i.getAd(),a=i.getAdData();switch((n=>{P.call(this.player,this.player.media,`ads${n.replace(/_/g,"").toLowerCase()}`)})(i.type),i.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),r.isLinear()||(r.width=s.offsetWidth,r.height=s.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:a.adError&&this.player.debug.warn(`Non-fatal ad error: ${a.adError.getMessage()}`)}}),_(this,"onAdError",i=>{this.cancel(),this.player.debug.warn("Ads error",i)}),_(this,"listeners",()=>{const{container:i}=this.player.elements;let s;this.player.on("canplay",()=>{this.addCuePoints()}),this.player.on("ended",()=>{this.loader.contentComplete()}),this.player.on("timeupdate",()=>{s=this.player.currentTime}),this.player.on("seeked",()=>{const r=this.player.currentTime;h.empty(this.cuePoints)||this.cuePoints.forEach((a,n)=>{s<a&&a<r&&(this.manager.discardAdBreak(),this.cuePoints.splice(n,1))})}),window.addEventListener("resize",()=>{this.manager&&this.manager.resize(i.offsetWidth,i.offsetHeight,google.ima.ViewMode.NORMAL)})}),_(this,"play",()=>{const{container:i}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then(()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(i.offsetWidth,i.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(s){this.onAdError(s)}}).catch(()=>{})}),_(this,"resumeContent",()=>{this.elements.container.style.zIndex="",this.playing=!1,Oe(this.player.media.play())}),_(this,"pauseContent",()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()}),_(this,"cancel",()=>{this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()}),_(this,"loadAds",()=>{this.managerPromise.then(()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise(i=>{this.on("loaded",i),this.player.debug.log(this.manager)}),this.initialized=!1,this.requestAds()}).catch(()=>{})}),_(this,"trigger",(i,...s)=>{const r=this.events[i];h.array(r)&&r.forEach(a=>{h.function(a)&&a.apply(this,s)})}),_(this,"on",(i,s)=>(h.array(this.events[i])||(this.events[i]=[]),this.events[i].push(s),this)),_(this,"startSafetyTimer",(i,s)=>{this.player.debug.log(`Safety timer invoked from: ${s}`),this.safetyTimer=setTimeout(()=>{this.cancel(),this.clearSafetyTimer("startSafetyTimer()")},i)}),_(this,"clearSafetyTimer",i=>{h.nullOrUndefined(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${i}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)}),this.player=e,this.config=e.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise((i,s)=>{this.on("loaded",i),this.on("error",s)}),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!h.empty(e.publisherId)||h.url(e.tagUrl))}get tagUrl(){const{config:e}=this;return h.url(e.tagUrl)?e.tagUrl:`https://go.aniview.com/api/adserver6/vast/?${to({AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId})}`}}function ro(t=0,e=0,i=255){return Math.min(Math.max(t,e),i)}const Gu=t=>{const e=[];return t.split(/\r\n\r\n|\n\n|\r\r/).forEach(i=>{const s={};i.split(/\r\n|\n|\r/).forEach(r=>{if(h.number(s.startTime)){if(!h.empty(r.trim())&&h.empty(s.text)){const a=r.trim().split("#xywh=");[s.text]=a,a[1]&&([s.x,s.y,s.w,s.h]=a[1].split(","))}}else{const a=r.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);a&&(s.startTime=60*Number(a[1]||0)*60+60*Number(a[2])+Number(a[3])+Number(`0.${a[4]}`),s.endTime=60*Number(a[6]||0)*60+60*Number(a[7])+Number(a[8])+Number(`0.${a[9]}`))}}),s.text&&e.push(s)}),e},ao=(t,e)=>{const i={};return t>e.width/e.height?(i.width=e.width,i.height=1/t*e.width):(i.height=e.height,i.width=t*e.height),i};class or{constructor(e){_(this,"load",()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then(()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.loaded=!0)})}),_(this,"getThumbnails",()=>new Promise(i=>{const{src:s}=this.player.config.previewThumbnails;if(h.empty(s))throw new Error("Missing previewThumbnails.src config attribute");const r=()=>{this.thumbnails.sort((a,n)=>a.height-n.height),this.player.debug.log("Preview thumbnails",this.thumbnails),i()};if(h.function(s))s(a=>{this.thumbnails=a,r()});else{const a=(h.string(s)?[s]:s).map(n=>this.getThumbnail(n));Promise.all(a).then(r)}})),_(this,"getThumbnail",i=>new Promise(s=>{ii(i).then(r=>{const a={frames:Gu(r),height:null,urlPrefix:""};a.frames[0].text.startsWith("/")||a.frames[0].text.startsWith("http://")||a.frames[0].text.startsWith("https://")||(a.urlPrefix=i.substring(0,i.lastIndexOf("/")+1));const n=new Image;n.onload=()=>{a.height=n.naturalHeight,a.width=n.naturalWidth,this.thumbnails.push(a),s()},n.src=a.urlPrefix+a.frames[0].text})})),_(this,"startMove",i=>{if(this.loaded&&h.event(i)&&["touchmove","mousemove"].includes(i.type)&&this.player.media.duration){if(i.type==="touchmove")this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var s,r;const a=this.player.elements.progress.getBoundingClientRect(),n=100/a.width*(i.pageX-a.left);this.seekTime=this.player.media.duration*(n/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=i.pageX,this.elements.thumb.time.innerText=Ri(this.seekTime);const o=(s=this.player.config.markers)===null||s===void 0||(r=s.points)===null||r===void 0?void 0:r.find(({time:c})=>c===Math.round(this.seekTime));o&&this.elements.thumb.time.insertAdjacentHTML("afterbegin",`${o.label}<br>`)}this.showImageAtCurrentTime()}}),_(this,"endMove",()=>{this.toggleThumbContainer(!1,!0)}),_(this,"startScrubbing",i=>{(h.nullOrUndefined(i.button)||i.button===!1||i.button===0)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))}),_(this,"endScrubbing",()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):Xs.call(this.player,this.player.media,"timeupdate",()=>{this.mouseDown||this.toggleScrubbingContainer(!1)})}),_(this,"listeners",()=>{this.player.on("play",()=>{this.toggleThumbContainer(!1,!0)}),this.player.on("seeked",()=>{this.toggleThumbContainer(!1)}),this.player.on("timeupdate",()=>{this.lastTime=this.player.media.currentTime})}),_(this,"render",()=>{this.elements.thumb.container=N("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=N("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const i=N("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=N("span",{},"00:00"),i.appendChild(this.elements.thumb.time),this.elements.thumb.imageContainer.appendChild(i),h.element(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=N("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}),_(this,"destroy",()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()}),_(this,"showImageAtCurrentTime",()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const i=this.thumbnails[0].frames.findIndex(a=>this.seekTime>=a.startTime&&this.seekTime<=a.endTime),s=i>=0;let r=0;this.mouseDown||this.toggleThumbContainer(s),s&&(this.thumbnails.forEach((a,n)=>{this.loadedImages.includes(a.frames[i].text)&&(r=n)}),i!==this.showingThumb&&(this.showingThumb=i,this.loadImage(r)))}),_(this,"loadImage",(i=0)=>{const s=this.showingThumb,r=this.thumbnails[i],{urlPrefix:a}=r,n=r.frames[s],o=r.frames[s].text,c=a+o;if(this.currentImageElement&&this.currentImageElement.dataset.filename===o)this.showImage(this.currentImageElement,n,i,s,o,!1),this.currentImageElement.dataset.index=s,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const l=new Image;l.src=c,l.dataset.index=s,l.dataset.filename=o,this.showingThumbFilename=o,this.player.debug.log(`Loading image: ${c}`),l.onload=()=>this.showImage(l,n,i,s,o,!0),this.loadingImage=l,this.removeOldImages(l)}}),_(this,"showImage",(i,s,r,a,n,o=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${a}. qual: ${r}. newimg: ${o}`),this.setImageSizeAndOffset(i,s),o&&(this.currentImageContainer.appendChild(i),this.currentImageElement=i,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(a,!0).then(this.preloadNearby(a,!1)).then(this.getHigherQuality(r,i,s,n))}),_(this,"removeOldImages",i=>{Array.from(this.currentImageContainer.children).forEach(s=>{if(s.tagName.toLowerCase()!=="img")return;const r=this.usingSprites?500:1e3;if(s.dataset.index!==i.dataset.index&&!s.dataset.deleting){s.dataset.deleting=!0;const{currentImageContainer:a}=this;setTimeout(()=>{a.removeChild(s),this.player.debug.log(`Removing thumb: ${s.dataset.filename}`)},r)}})}),_(this,"preloadNearby",(i,s=!0)=>new Promise(r=>{setTimeout(()=>{const a=this.thumbnails[0].frames[i].text;if(this.showingThumbFilename===a){let n;n=s?this.thumbnails[0].frames.slice(i):this.thumbnails[0].frames.slice(0,i).reverse();let o=!1;n.forEach(c=>{const l=c.text;if(l!==a&&!this.loadedImages.includes(l)){o=!0,this.player.debug.log(`Preloading thumb filename: ${l}`);const{urlPrefix:d}=this.thumbnails[0],u=d+l,p=new Image;p.src=u,p.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${l}`),this.loadedImages.includes(l)||this.loadedImages.push(l),r()}}}),o||r()}},300)})),_(this,"getHigherQuality",(i,s,r,a)=>{if(i<this.thumbnails.length-1){let n=s.naturalHeight;this.usingSprites&&(n=r.h),n<this.thumbContainerHeight&&setTimeout(()=>{this.showingThumbFilename===a&&(this.player.debug.log(`Showing higher quality thumb for: ${a}`),this.loadImage(i+1))},300)}}),_(this,"toggleThumbContainer",(i=!1,s=!1)=>{const r=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(r,i),!i&&s&&(this.showingThumb=null,this.showingThumbFilename=null)}),_(this,"toggleScrubbingContainer",(i=!1)=>{const s=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(s,i),i||(this.showingThumb=null,this.showingThumbFilename=null)}),_(this,"determineContainerAutoSizing",()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)}),_(this,"setThumbContainerSizeAndPos",()=>{const{imageContainer:i}=this.elements.thumb;if(this.sizeSpecifiedInCSS){if(i.clientHeight>20&&i.clientWidth<20){const s=Math.floor(i.clientHeight*this.thumbAspectRatio);i.style.width=`${s}px`}else if(i.clientHeight<20&&i.clientWidth>20){const s=Math.floor(i.clientWidth/this.thumbAspectRatio);i.style.height=`${s}px`}}else{const s=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);i.style.height=`${this.thumbContainerHeight}px`,i.style.width=`${s}px`}this.setThumbContainerPos()}),_(this,"setThumbContainerPos",()=>{const i=this.player.elements.progress.getBoundingClientRect(),s=this.player.elements.container.getBoundingClientRect(),{container:r}=this.elements.thumb,a=s.left-i.left+10,n=s.right-i.left-r.clientWidth-10,o=this.mousePosX-i.left-r.clientWidth/2,c=ro(o,a,n);r.style.left=`${c}px`,r.style.setProperty("--preview-arrow-offset",o-c+"px")}),_(this,"setScrubbingContainerSize",()=>{const{width:i,height:s}=ao(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${i}px`,this.elements.scrubbing.container.style.height=`${s}px`}),_(this,"setImageSizeAndOffset",(i,s)=>{if(!this.usingSprites)return;const r=this.thumbContainerHeight/s.h;i.style.height=i.naturalHeight*r+"px",i.style.width=i.naturalWidth*r+"px",i.style.left=`-${s.x*r}px`,i.style.top=`-${s.y*r}px`}),this.player=e,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=ao(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}const lr={insertElements(t,e){h.string(e)?Hn(t,this.media,{src:e}):h.array(e)&&e.forEach(i=>{Hn(t,this.media,i)})},change(t){On(t,"sources.length")?(nt.cancelRequests.call(this),this.destroy.call(this,()=>{this.options.quality=[],Qe(this.media),this.media=null,h.element(this.elements.container)&&this.elements.container.removeAttribute("class");const{sources:e,type:i}=t,[{provider:s=ot.html5,src:r}]=e,a=s==="html5"?i:"div",n=s==="html5"?{}:{src:r};Object.assign(this,{provider:s,type:i,supported:q.check(i,s,this.config.playsinline),media:N(a,n)}),this.elements.container.appendChild(this.media),h.boolean(t.autoplay)&&(this.config.autoplay=t.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute("crossorigin",""),this.config.autoplay&&this.media.setAttribute("autoplay",""),h.empty(t.poster)||(this.poster=t.poster),this.config.loop.active&&this.media.setAttribute("loop",""),this.config.muted&&this.media.setAttribute("muted",""),this.config.playsinline&&this.media.setAttribute("playsinline","")),Y.addStyleHook.call(this),this.isHTML5&&lr.insertElements.call(this,"source",e),this.config.title=t.title,so.setup.call(this),this.isHTML5&&Object.keys(t).includes("tracks")&&lr.insertElements.call(this,"track",t.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&Y.build.call(this),this.isHTML5&&this.media.load(),h.empty(t.previewThumbnails)||(Object.assign(this.config.previewThumbnails,t.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new or(this))),this.fullscreen.update()},!0)):this.debug.warn("Invalid source format")}};class ai{constructor(e,i){if(_(this,"play",()=>h.function(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then(()=>this.ads.play()).catch(()=>Oe(this.media.play())),this.media.play()):null),_(this,"pause",()=>this.playing&&h.function(this.media.pause)?this.media.pause():null),_(this,"togglePlay",o=>(h.boolean(o)?o:!this.playing)?this.play():this.pause()),_(this,"stop",()=>{this.isHTML5?(this.pause(),this.restart()):h.function(this.media.stop)&&this.media.stop()}),_(this,"restart",()=>{this.currentTime=0}),_(this,"rewind",o=>{this.currentTime-=h.number(o)?o:this.config.seekTime}),_(this,"forward",o=>{this.currentTime+=h.number(o)?o:this.config.seekTime}),_(this,"increaseVolume",o=>{const c=this.media.muted?0:this.volume;this.volume=c+(h.number(o)?o:0)}),_(this,"decreaseVolume",o=>{this.increaseVolume(-o)}),_(this,"airplay",()=>{q.airplay&&this.media.webkitShowPlaybackTargetPicker()}),_(this,"toggleControls",o=>{if(this.supported.ui&&!this.isAudio){const c=$i(this.elements.container,this.config.classNames.hideControls),l=o===void 0?void 0:!o,d=H(this.elements.container,this.config.classNames.hideControls,l);if(d&&h.array(this.config.controls)&&this.config.controls.includes("settings")&&!h.empty(this.config.settings)&&C.toggleMenu.call(this,!1),d!==c){const u=d?"controlshidden":"controlsshown";P.call(this,this.media,u)}return!d}return!1}),_(this,"on",(o,c)=>{W.call(this,this.elements.container,o,c)}),_(this,"once",(o,c)=>{Xs.call(this,this.elements.container,o,c)}),_(this,"off",(o,c)=>{ji(this.elements.container,o,c)}),_(this,"destroy",(o,c=!1)=>{if(!this.ready)return;const l=()=>{document.body.style.overflow="",this.embed=null,c?(Object.keys(this.elements).length&&(Qe(this.elements.buttons.play),Qe(this.elements.captions),Qe(this.elements.controls),Qe(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),h.function(o)&&o()):(Tu.call(this),nt.cancelRequests.call(this),Vi(this.elements.original,this.elements.container),P.call(this,this.elements.original,"destroyed",!0),h.function(o)&&o.call(this.elements.original),this.ready=!1,setTimeout(()=>{this.elements=null,this.media=null},200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(Y.toggleNativeControls.call(this,!0),l()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),this.embed!==null&&h.function(this.embed.destroy)&&this.embed.destroy(),l()):this.isVimeo&&(this.embed!==null&&this.embed.unload().then(l),setTimeout(l,200))}),_(this,"supports",o=>q.mime.call(this,o)),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=q.touch,this.media=e,h.string(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||h.nodeList(this.media)||h.array(this.media))&&(this.media=this.media[0]),this.config=K({},io,ai.defaults,i||{},(()=>{try{return JSON.parse(this.media.getAttribute("data-plyr-config"))}catch{return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new Ru(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",q),h.nullOrUndefined(this.media)||!h.element(this.media))return void this.debug.error("Setup failed: no suitable element passed");if(this.media.plyr)return void this.debug.warn("Target already setup");if(!this.config.enabled)return void this.debug.error("Setup failed: disabled by config");if(!q.check().api)return void this.debug.error("Setup failed: no support");const s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;const r=this.media.tagName.toLowerCase();let a=null,n=null;switch(r){case"div":if(a=this.media.querySelector("iframe"),h.element(a)){if(n=eo(a.getAttribute("src")),this.provider=Bu(n.toString()),this.elements.container=this.media,this.media=a,this.elements.container.className="",n.search.length){const o=["1","true"];o.includes(n.searchParams.get("autoplay"))&&(this.config.autoplay=!0),o.includes(n.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=o.includes(n.searchParams.get("playsinline")),this.config.youtube.hl=n.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(h.empty(this.provider)||!Object.values(ot).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=sr.video;break;case"video":case"audio":this.type=r,this.provider=ot.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=q.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new Ou(this),this.storage=new ti(this),this.media.plyr=this,h.element(this.elements.container)||(this.elements.container=N("div",{tabindex:0}),Un(this.media,this.elements.container)),Y.migrateStyles.call(this),Y.addStyleHook.call(this),so.setup.call(this),this.config.debug&&W.call(this,this.elements.container,this.config.events.join(" "),o=>{this.debug.log(`event: ${o.type}`)}),this.fullscreen=new Ue(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&Y.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new Qu(this)),this.isHTML5&&this.config.autoplay&&this.once("canplay",()=>Oe(this.play())),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new or(this))):this.debug.error("Setup failed: no support")}get isHTML5(){return this.provider===ot.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===ot.youtube}get isVimeo(){return this.provider===ot.vimeo}get isVideo(){return this.type===sr.video}get isAudio(){return this.type===sr.audio}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&this.currentTime===0)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const i=h.number(e)&&e>0;this.media.currentTime=i?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return h.number(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=parseFloat(this.config.duration),i=(this.media||{}).duration,s=h.number(i)&&i!==1/0?i:0;return e||s}set volume(e){let i=e;h.string(i)&&(i=Number(i)),h.number(i)||(i=this.storage.get("volume")),h.number(i)||({volume:i}=this.config),i>1&&(i=1),i<0&&(i=0),this.config.volume=i,this.media.volume=i,!h.empty(e)&&this.muted&&i>0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let i=e;h.boolean(i)||(i=this.storage.get("muted")),h.boolean(i)||(i=this.config.muted),this.config.muted=i,this.media.muted=i}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||!!this.isAudio||Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)}set speed(e){let i=null;h.number(e)&&(i=e),h.number(i)||(i=this.storage.get("speed")),h.number(i)||(i=this.config.speed.selected);const{minimumSpeed:s,maximumSpeed:r}=this;i=ro(i,s,r),this.config.speed.selected=i,setTimeout(()=>{this.media&&(this.media.playbackRate=i)},0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const i=this.config.quality,s=this.options.quality;if(!s.length)return;let r=[!h.empty(e)&&Number(e),this.storage.get("quality"),i.selected,i.default].find(h.number),a=!0;if(!s.includes(r)){const n=Wn(s,r);this.debug.warn(`Unsupported quality option: ${r}, using ${n} instead`),r=n,a=!1}i.selected=r,this.media.quality=r,a&&this.storage.set({quality:r})}get quality(){return this.media.quality}set loop(e){const i=h.boolean(e)?e:this.config.loop.active;this.config.loop.active=i,this.media.loop=i}get loop(){return Boolean(this.media.loop)}set source(e){lr.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return h.url(e)?e:this.source}set download(e){h.url(e)&&(this.config.urls.download=e,C.setDownloadUrl.call(this))}set poster(e){this.isVideo?Y.setPoster.call(this,e,!1).catch(()=>{}):this.debug.warn("Poster can only be set for video")}get poster(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}get ratio(){if(!this.isVideo)return null;const e=Bi(er.call(this));return h.array(e)?e.join(":"):e}set ratio(e){this.isVideo?h.string(e)&&Qn(e)?(this.config.ratio=Bi(e),Tt.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn("Aspect ratio can only be set for video")}set autoplay(e){this.config.autoplay=h.boolean(e)?e:this.config.autoplay}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){Z.toggle.call(this,e,!1)}set currentTrack(e){Z.set.call(this,e,!1),Z.setup.call(this)}get currentTrack(){const{toggled:e,currentTrack:i}=this.captions;return e?i:-1}set language(e){Z.setLanguage.call(this,e,!1)}get language(){return(Z.getCurrentTrack.call(this)||{}).language}set pip(e){if(!q.pip)return;const i=h.boolean(e)?e:!this.pip;h.function(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(i?ir.active:ir.inactive),h.function(this.media.requestPictureInPicture)&&(!this.pip&&i?this.media.requestPictureInPicture():this.pip&&!i&&document.exitPictureInPicture())}get pip(){return q.pip?h.empty(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===ir.active:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new or(this))}static supported(e,i,s){return q.check(e,i,s)}static loadSprite(e,i){return Xn(e,i)}static setup(e,i={}){let s=null;return h.string(e)?s=Array.from(document.querySelectorAll(e)):h.nodeList(e)?s=Array.from(e):h.array(e)&&(s=e.filter(h.element)),h.empty(s)?null:s.map(r=>new ai(r,i))}}ai.defaults=Iu(io);function qu(t){let e,i,s;return{c(){e=It("video"),i=It("source"),bn(i.src,s=t[3])||I(i,"src",s),I(i,"type",t[2]),I(e,"data-app-kind","Plyr"),I(e,"crossorigin","anonymous"),e.playsInline=!0,I(e,"data-poster",t[4])},m(r,a){Ct(r,e,a),V(e,i),t[8](e)},p:at,d(r){r&&ft(e),t[8](null)}}}function Ju(t){let e,i,s;return{c(){e=It("audio"),i=It("source"),bn(i.src,s=t[3])||I(i,"src",s),I(i,"type",t[2]),I(e,"data-app-kind","Plyr"),I(e,"crossorigin","anonymous"),I(e,"data-poster",t[4])},m(r,a){Ct(r,e,a),V(e,i),t[7](e)},p:at,d(r){r&&ft(e),t[7](null)}}}function Xu(t){let e,i,s=JSON.stringify({src:t[3],type:t[0].state.type})+"",r;return{c(){e=It("div"),i=Hs(`Invalid "src" or "type".
|
126
|
-
`),r=Hs(s),I(e,"data-app-kind","Plyr"),I(e,"class","plyr--audio")},m(a,n){Ct(a,e,n),V(e,i),V(e,r)},p(a,n){n&1&&s!==(s=JSON.stringify({src:a[3],type:a[0].state.type})+"")&&Dd(r,s)},d(a){a&&ft(e)}}}function Ku(t){let e;return{c(){e=It("div"),I(e,"data-app-kind","Plyr"),I(e,"class","plyr__video-embed"),I(e,"data-plyr-provider","youtube"),I(e,"data-plyr-embed-id",t[3]),I(e,"data-poster",t[4])},m(i,s){Ct(i,e,s),t[6](e)},p:at,d(i){i&&ft(e),t[6](null)}}}function ep(t){let e,i,s,r;function a(c,l){return c[0].state.provider==="youtube"?Ku:c[2]?(e==null&&(e=!!c[2].startsWith("audio/")),e?Ju:qu):Xu}let n=a(t),o=n(t);return s=new eu({}),{c(){o.c(),i=Ed(),Ud(s.$$.fragment)},m(c,l){o.m(c,l),Ct(c,i,l),Mn(s,c,l),r=!0},p(c,[l]){n===(n=a(c))&&o?o.p(c,l):(o.d(1),o=n(c),o&&(o.c(),o.m(i.parentNode,i)))},i(c){r||(xn(s.$$.fragment,c),r=!0)},o(c){Od(s.$$.fragment,c),r=!1},d(c){o.d(c),c&&ft(i),Sn(s,c)}}}function tp(t,e,i){let{storage:s}=e,{sync:r}=e;const a=s.state.provider?void 0:s.state.type||Zd(s.state.src),{src:n,poster:o}=s.state,c=Wd.includes(String(a).toLowerCase());let l,d;Ld(async()=>{if(l){if(c&&qd(l)){const g=await Gd();g.loadSource(n),g.attachMedia(l)}d=new ai(l,{fullscreen:{enabled:!1},controls:["play","progress","current-time","mute","volume"],clickToPlay:!1,youtube:{autoplay:!0},loadSprite:!1}),i(5,r.player=d,r)}}),Vd(()=>{try{r.dispose(),d==null||d.destroy()}catch(g){console.warn("[Plyr] destroy plyr error",g)}});function u(g){Xt[g?"unshift":"push"](()=>{l=g,i(1,l)})}function p(g){Xt[g?"unshift":"push"](()=>{l=g,i(1,l)})}function m(g){Xt[g?"unshift":"push"](()=>{l=g,i(1,l)})}return t.$$set=g=>{"storage"in g&&i(0,s=g.storage),"sync"in g&&i(5,r=g.sync)},[s,l,a,n,o,r,u,p,m]}class ip extends In{constructor(e){super();Cn(this,e,tp,ep,fn,{storage:0,sync:5})}}class sp{constructor(e){this.context=e,this.behavior="owner",this._skip_next_play_pause=0,this._sync_timer=0,this._interval=1e3,this._blink=0,this._player=null,this._buffering=!1,this._throttle=0,this._dispatch_time_again=!1,this._buffering_timer=0,this._disposer=null;const i=e.room,s=e.displayer;this.uid=i?i.uid:"",this.getTimestamp=i?()=>i.calibrationTimestamp:()=>s.beginTimestamp+s.progressTime,this._disposer=this.context.storage.addStateChangedListener(this.syncAll.bind(this))}dispose(){this._disposer&&this._disposer(),this._disposer=null,clearInterval(this._sync_timer),clearTimeout(this._buffering_timer)}get player(){return this._player}set player(e){this._player=e,e&&e.once("ready",this.setupPlayer.bind(this,e))}setupPlayer(e){this.registerListeners(e),this.watchUserInputs(e),this._sync_timer=setInterval(this.syncAll.bind(this),this._interval)}syncAll(){const{behavior:e,player:i,context:s}=this;if(!i)return;const{storage:r}=s,{currentTime:a,hostTime:n,muted:o,paused:c,volume:l,owner:d}=r.state;e==="owner"&&d===this.uid||(c!==i.paused&&!this._skip_next_play_pause&&(console.log("< sync paused",c),c?i.pause():Yd(i)),o!==i.muted&&(console.log("< sync muted",o),i.muted=o),l!==i.volume&&(console.log("< sync volume",l),i.volume=l),!this._buffering&&(c?Math.abs(i.currentTime-a)>.5&&(console.log("< sync current time (paused)",a),i.currentTime=a):this.syncCurrentTime(n,a,i)))}watchUserInputs(e){const i=e.elements.controls,s=Xd(e.elements.buttons.play),r=i==null?void 0:i.querySelector('input[data-plyr="seek"]'),a=i==null?void 0:i.querySelector('button[data-plyr="mute"]'),n=i==null?void 0:i.querySelector('input[data-plyr="volume"]');this.fixSeekBarOnInit(r,e),s==null||s.addEventListener("click",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchPlayPause(e)}),r==null||r.addEventListener("change",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchSeek(e,r)}),a==null||a.addEventListener("click",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchVolume(e)}),n==null||n.addEventListener("change",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchVolume(e)})}fixSeekBarOnInit(e,i){const{currentTime:s}=this.context.storage.state;if(i.duration&&s&&e){const r=100*s/i.duration;e.value=r.toFixed(2)}}registerListeners(e){e.on("ended",()=>{e.stop(),this.context.storage.setState({paused:!0,currentTime:0})}),e.on("waiting",()=>{this._buffering=!0,this._buffering_timer=setTimeout(this.clearBuffering.bind(this),this._interval/2)}),e.on("playing",()=>{this._buffering=!1}),e.on("timeupdate",()=>{this.isOwner()&&this.dispatchCurrentTime(e)}),e.on("volumechange",()=>{this.isOwner()&&this.dispatchVolume(e)}),e.on("play",()=>{this.isOwner()&&this.dispatchPlayPause(e)}),e.on("pause",()=>{this.isOwner()&&this.dispatchPlayPause(e)})}clearBuffering(){this._buffering=!1,this._buffering_timer=0}dispatchOwner(){this.context.storage.state.owner!==this.uid&&(console.log("> set owner",this.uid),this.context.storage.setState({owner:this.uid}))}dispatchPlayPause(e){console.log("> set paused",e.paused),this.context.storage.setState({hostTime:this.getTimestamp(),currentTime:e.currentTime,paused:e.paused}),clearTimeout(this._skip_next_play_pause),this._skip_next_play_pause=setTimeout(this.skipNextPlayPause.bind(this),500)}skipNextPlayPause(){this._skip_next_play_pause=0}dispatchVolume(e){console.log("> set volume",e.volume),this.context.storage.setState({muted:e.muted,volume:e.volume})}dispatchSeek(e,i){const s=i.valueAsNumber*e.duration/100;console.log("> set current time (seek)",s),this.context.storage.setState({hostTime:this.getTimestamp(),currentTime:s})}dispatchCurrentTime(e){if(this._throttle){this._dispatch_time_again=!0;return}console.log("> set current time",e.currentTime),this.context.storage.setState({hostTime:this.getTimestamp(),currentTime:e.currentTime}),this._throttle=setTimeout(this.clearThrottle.bind(this,e),1e3)}clearThrottle(e){this._throttle=0,this._dispatch_time_again&&(this._dispatch_time_again=!1,this.dispatchCurrentTime(e))}isOwner(){return this.behavior==="owner"&&this.context.storage.state.owner===this.uid}syncCurrentTime(e,i,s){const r=this.getTimestamp();if(r&&e){const a=i+(r-e)/1e3;Math.abs(a-s.currentTime)>1?(console.log("< sync current time (playing)",a),s.currentTime=a,this._blink++,this._blink>3&&this.updateSyncInterval(!0)):this.updateSyncInterval(!1)}}updateSyncInterval(e){this._blink=0,this._interval=Jd(this._interval+(e?2e3:-2e3),1e3,15e3),clearTimeout(this._sync_timer),this._sync_timer=setInterval(this.syncAll.bind(this),this._interval)}}var rp=(()=>`@charset "UTF-8";@keyframes plyr-progress{to{background-position:25px 0;background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{0%{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:400;font-weight:var(--plyr-font-weight-regular,400);line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui :after,.plyr--full-ui :before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:2px;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:9px;font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:13px;font-size:var(--plyr-font-size-small,13px);left:0;padding:10px;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:15px;font-size:var(--plyr-font-size-base,15px);padding:20px;padding:calc(var(--plyr-control-spacing, 10px)*2)}}@media (min-width:768px){.plyr__captions{font-size:18px;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px);transform:translateY(calc(var(--plyr-control-spacing, 10px)*-4))}.plyr__caption{background:rgba(0,0,0,.8);background:var(--plyr-captions-background,rgba(0,0,0,.8));border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:transparent;border:0;border-radius:3px;border-radius:var(--plyr-control-radius,3px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7);position:relative;transition:all .3s ease}.plyr__control svg{fill:currentColor;display:block;height:18px;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:18px;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}a.plyr__control{text-decoration:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed,a.plyr__control:after,a.plyr__control:before{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px;margin-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px;padding-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px;padding:0 calc(var(--plyr-control-spacing, 10px)/2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip],.plyr__controls:empty{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:hsla(0,0%,100%,.9);background:var(--plyr-menu-background,hsla(0,0%,100%,.9));border-radius:4px;bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-menu-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:15px;font-size:var(--plyr-font-size-base,15px);margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container:after{border:4px solid transparent;border-top-color:#ffffffe6;border:var(--plyr-menu-arrow-size,4px) solid transparent;border-top-color:var(--plyr-menu-background,hsla(0,0%,100%,.9));content:"";height:0;position:absolute;right:14px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7 - var(--plyr-menu-arrow-size, 4px)/2);top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:13px;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding:4.66667px 10.5px;padding:calc(var(--plyr-control-spacing, 10px)*.7/1.5) calc(var(--plyr-control-spacing, 10px)*.7*1.5);-webkit-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control:after{border:4px solid transparent;border:var(--plyr-menu-item-arrow-size,4px) solid transparent;content:"";position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px)*.7*4)}.plyr__menu__container .plyr__control--forward:after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:6.5px;right:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--forward.plyr__tab-focus:after,.plyr__menu__container .plyr__control--forward:hover:after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:400;font-weight:var(--plyr-font-weight-regular,400);margin:7px;margin:calc(var(--plyr-control-spacing, 10px)*.7);margin-bottom:3.5px;margin-bottom:calc(var(--plyr-control-spacing, 10px)*.7/2);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*4);position:relative;width:calc(100% - 14px);width:calc(100% - var(--plyr-control-spacing, 10px)*.7*2)}.plyr__menu__container .plyr__control--back:after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:6.5px;left:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--back:before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px #fff;box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:"";height:1px;left:0;margin-top:3.5px;margin-top:calc(var(--plyr-control-spacing, 10px)*.7/2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus:after,.plyr__menu__container .plyr__control--back:hover:after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container .plyr__control[role=menuitemradio]:after,.plyr__menu__container .plyr__control[role=menuitemradio]:before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]:before{background:rgba(0,0,0,.1);content:"";display:block;flex-shrink:0;height:16px;margin-right:10px;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]:after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:before{background:#00b2ff;background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus:before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover:before{background:rgba(35,40,47,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:calc(-7px + 2);margin-right:calc(var(--plyr-control-spacing, 10px)*.7*-1 - -2);overflow:hidden;padding-left:24.5px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:26px;border-radius:calc(var(--plyr-range-thumb-height, 13px)*2);color:#00b2ff;color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));display:block;height:19px;height:calc(var(--plyr-range-thumb-active-shadow-width, 3px)*2 + var(--plyr-range-thumb-height, 13px));margin:0;min-width:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:transparent;background-image:linear-gradient(90deg,currentColor 0,transparent 0);background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0));border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:-4px;margin-top:calc((var(--plyr-range-thumb-height, 13px) - var(--plyr-range-track-height, 5px))/2*-1);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-track{background:transparent;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper,.plyr--full-ui input[type=range]::-ms-track{background:transparent;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:transparent;background:currentColor;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:0;position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}.plyr__poster{background-color:#000;background-color:var(--plyr-video-background,var(--plyr-video-background,#000));background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster{display:none}.plyr__time{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time:before{content:"\\2044";margin-right:10px;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:hsla(0,0%,100%,.9);background:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:5px;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:13px;font-size:var(--plyr-font-size-small,13px);font-weight:400;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:5px 7.5px;padding:calc(var(--plyr-control-spacing, 10px)/2) calc(var(--plyr-control-spacing, 10px)/2*1.5);pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;white-space:nowrap;z-index:2}.plyr__tooltip:before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translateY(10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip:before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip:before{left:16px;left:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7)}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translateY(10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip:before{left:auto;right:16px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7);transform:translate(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0) scale(1)}.plyr__progress{left:6.5px;left:calc(var(--plyr-range-thumb-height, 13px)*.5);margin-right:13px;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-left:calc(var(--plyr-range-thumb-height, 13px)*-.5);margin-right:-6.5px;margin-right:calc(var(--plyr-range-thumb-height, 13px)*-.5);width:calc(100% + 13px);width:calc(100% + var(--plyr-range-thumb-height, 13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{left:0;max-width:120px;overflow-wrap:break-word;white-space:normal}.plyr__progress__buffer{-webkit-appearance:none;background:transparent;border:0;border-radius:100px;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin-top:-2.5px;margin-top:calc((var(--plyr-range-track-height, 5px)/2)*-1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:transparent}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,40,47,.6) 25%,transparent 0,transparent 50%,rgba(35,40,47,.6) 0,rgba(35,40,47,.6) 75%,transparent 0,transparent);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 25%,transparent 25%,transparent 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:#ffffff40;background-color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:#c1c8d199;background-color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr__progress__marker{background-color:#fff;background-color:var(--plyr-progress-marker-background,#fff);border-radius:1px;height:5px;height:var(--plyr-range-track-height,5px);position:absolute;top:50%;transform:translate(-50%,-50%);width:3px;width:var(--plyr-progress-marker-width,3px);z-index:3}.plyr__volume{align-items:center;display:flex;max-width:110px;min-width:80px;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:5px;margin-left:calc(var(--plyr-control-spacing, 10px)/2);margin-right:5px;margin-right:calc(var(--plyr-control-spacing, 10px)/2);position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:10px;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--audio .plyr__progress__buffer{color:#c1c8d199;color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr--video{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{aspect-ratio:16/9}@supports not (aspect-ratio:16/9){.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%;position:relative}}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(transparent,rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:5px;padding:calc(var(--plyr-control-spacing, 10px)/2);padding-top:20px;padding-top:calc(var(--plyr-control-spacing, 10px)*2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:10px;padding:var(--plyr-control-spacing,10px);padding-top:35px;padding-top:calc(var(--plyr-control-spacing, 10px)*3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:15px;padding:calc(var(--plyr-control-spacing, 10px)*1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--video .plyr__progress__buffer{color:#ffffff40;color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen video{height:100%}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;bottom:0;display:block;height:100%;left:0;margin:0;position:fixed;right:0;top:0;width:100%;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads:after{background:#23282f;border-radius:2px;bottom:10px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads:empty:after{display:none}.plyr__cues{background:currentColor;display:block;height:5px;height:var(--plyr-range-track-height,5px);left:0;opacity:.8;position:absolute;top:50%;transform:translateY(-50%);width:3px;z-index:3}.plyr__preview-thumb{background-color:#ffffffe6;background-color:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:5px;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translateY(10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0) scale(1)}.plyr__preview-thumb:before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:calc(50% + var(--preview-arrow-offset));position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:4px;border-radius:calc(var(--plyr-tooltip-radius, 5px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img,.plyr__preview-thumb__image-container:after{height:100%;left:0;position:absolute;top:0;width:100%}.plyr__preview-thumb__image-container:after{border-radius:inherit;box-shadow:inset 0 0 0 1px #00000026;content:"";pointer-events:none}.plyr__preview-thumb__image-container img{max-height:none;max-width:none}.plyr__preview-thumb__time-container{background:linear-gradient(transparent,rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--plyr-tooltip-radius, 5px) - 1px);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--plyr-tooltip-radius, 5px) - 1px);bottom:0;left:0;line-height:1.1;padding:20px 6px 6px;position:absolute;right:0;z-index:3}.plyr__preview-thumb__time-container span{color:#fff;font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;-o-object-fit:contain;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);border:0!important;height:1px!important;overflow:hidden;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}.plyr--video{width:100%;height:100%}.plyr--audio{width:100%;height:100%;display:flex;align-items:stretch;justify-content:center;background-color:#fff}.telebox-color-scheme-dark .plyr--audio{color-scheme:dark;background-color:#121212;--plyr-audio-controls-background: #121212;--plyr-audio-control-color: #eee}
|
127
|
-
`)();const ap={volume:1,paused:!0,muted:!1,currentTime:0},Hi={kind:"Plyr",config:{minwidth:300,minheight:80},setup(t){const e=t.storage;if(e.ensureState(ap),!e.state.src){t.emitter.emit("destroy",{error:new Error('[Plyr]: missing "src"')});return}!e.state.type&&!e.state.provider&&console.warn('[Plyr]: missing "type", will guess from file extension');const i=t.box;i.mountStyles(rp);const s=new sp(t),r=new ip({target:i.$content,props:{storage:t.storage,sync:s}});t.emitter.on("destroy",()=>{try{s.dispose(),r.$destroy()}catch{}})}},np=()=>{ue.register({kind:ki.kind,src:ki}),ue.register({kind:Hi.kind,src:Hi})},cr={DocsViewer:ki.kind,MediaPlayer:Hi.kind},op={[cr.DocsViewer]:ki,[cr.MediaPlayer]:Hi};var Ap="",kp="";const no=new jc({emitter:z}),j=class extends S.InvisiblePlugin{constructor(t){super(t);this.version="1.0.0-canary.40",this.dependencies={dependencies:{"@juggle/resize-observer":"^3.3.1","@netless/telebox-insider":"1.0.0-alpha.34",emittery:"^0.11.0",lodash:"^4.17.21","p-retry":"^4.6.2","side-effect-manager":"^1.1.1",uuid:"^7.0.3","value-enhancer":"^1.3.2"},peerDependencies:{"white-web-sdk":"^2.16.0"},devDependencies:{"@netless/app-docs-viewer":"^0.3.0","@netless/app-plyr":"0.2.0","@playwright/test":"^1.23.2","@rollup/plugin-commonjs":"^20.0.0","@rollup/plugin-node-resolve":"^13.0.4","@rollup/plugin-url":"^6.1.0","@sveltejs/vite-plugin-svelte":"^1.0.0-next.49","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash":"^4.14.182","@types/lodash-es":"^4.17.6","@types/node":"^18.0.3","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","@vitest/ui":"^0.14.2",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",jsdom:"^19.0.0",less:"^4.1.3",prettier:"^2.3.2","prettier-plugin-svelte":"^2.4.0","rollup-plugin-analyzer":"^4.0.0","rollup-plugin-styles":"^3.14.1",svelte:"^3.42.4",typescript:"^4.5.5",vite:"^2.5.3","vite-plugin-dts":"^1.2.1",vitest:"^0.18.0","white-web-sdk":"2.16.26"}},this.emitter=G,this.viewMode=S.ViewMode.Broadcaster,this.viewMode$=new w.Val(S.ViewMode.Broadcaster),this.isReplay=S.isPlayer(this.displayer),this.containerSizeRatio=j.containerSizeRatio,this.moveCamera=v.debounce(e=>{var r;const i=R({},this.mainView.camera),s=R(R({},i),e);if(!v.isEqual(s,i)&&!!this.appManager)if(e.animationMode===S.AnimationMode.Immediately)this.appManager.mainViewProxy.storeCamera(R({id:this.appManager.uid},s));else{const a=this.appManager.mainViewProxy.size$.value,n=(r=this.boxManager)==null?void 0:r.stageRect;let o;e.scale&&a&&n&&(o=e.scale*ci(a,n)),o?this.mainView.moveCamera(pe(R({},e),{scale:o})):this.mainView.moveCamera(e),this.appManager.dispatchInternalEvent(Q.MoveCamera,e),setTimeout(()=>{!this.appManager||this.appManager.mainViewProxy.storeCamera(R({id:this.appManager.uid},s))},200)}},200),j.displayer=t.displayer,window.NETLESS_DEPS={dependencies:{"@juggle/resize-observer":"^3.3.1","@netless/telebox-insider":"1.0.0-alpha.34",emittery:"^0.11.0",lodash:"^4.17.21","p-retry":"^4.6.2","side-effect-manager":"^1.1.1",uuid:"^7.0.3","value-enhancer":"^1.3.2"},peerDependencies:{"white-web-sdk":"^2.16.0"},devDependencies:{"@netless/app-docs-viewer":"^0.3.0","@netless/app-plyr":"0.2.0","@playwright/test":"^1.23.2","@rollup/plugin-commonjs":"^20.0.0","@rollup/plugin-node-resolve":"^13.0.4","@rollup/plugin-url":"^6.1.0","@sveltejs/vite-plugin-svelte":"^1.0.0-next.49","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash":"^4.14.182","@types/lodash-es":"^4.17.6","@types/node":"^18.0.3","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","@vitest/ui":"^0.14.2",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",jsdom:"^19.0.0",less:"^4.1.3",prettier:"^2.3.2","prettier-plugin-svelte":"^2.4.0","rollup-plugin-analyzer":"^4.0.0","rollup-plugin-styles":"^3.14.1",svelte:"^3.42.4",typescript:"^4.5.5",vite:"^2.5.3","vite-plugin-dts":"^1.2.1",vitest:"^0.18.0","white-web-sdk":"2.16.26"}}}static async mount(t){var a;const e=t.room;j.container=t.container;const i=t.debug,s=t.cursor;j.params=t,j.displayer=t.room,qo();let r;if(S.isRoom(e)){if(e.phase!==S.RoomPhase.Connected)throw new Error("[WindowManager]: Room only Connected can be mount");e.phase===S.RoomPhase.Connected&&e.isWritable&&(e.disableSerialization=!1),r=await this.initManager(e)}if(j.isCreated)throw new Error("[WindowManager]: Already created cannot be created again");if(this.debug=Boolean(i),Xe("Already insert room",r),S.isRoom(this.displayer)){if(!r)throw new Error("[WindowManager]: init InvisiblePlugin failed")}else await bo.default(async n=>{if(r=await e.getInvisiblePlugin(j.kind),!r)throw Xe(`manager is empty. retrying ${n}`),new Error},{retries:10});if(!r)throw new Error("[WindowManager]: create manager failed");t.containerSizeRatio&&(j.containerSizeRatio=t.containerSizeRatio),r.containerSizeRatio=j.containerSizeRatio,await r.ensureAttributes(),r.appManager=new al(r),r._pageState=new $c(r.appManager),r.cursorManager=new Vc(r.appManager,Boolean(s),t.applianceIcons),r.boxManager=hc(r,G,z,He,{collectorContainer:t.collectorContainer,collectorStyles:t.collectorStyles,prefersColorScheme:t.prefersColorScheme,stageRatio:j.containerSizeRatio,containerStyle:t.containerStyle,stageStyle:t.stageStyle,fullscreen:t.fullscreen}),(a=r.appManager)==null||a.setBoxManager(r.boxManager),t.container&&r.bindContainer(t.container),Bc(e,r),z.emit("onCreated"),j.isCreated=!0;try{await So()}catch(n){console.warn("[WindowManager]: indexedDB open failed"),console.log(n)}return r}static async initManager(t){let e=t.getInvisiblePlugin(j.kind);if(!e&&S.isRoom(t))if(t.isWritable===!1){try{await t.setWritable(!0)}catch{throw new Error("[WindowManger]: room must be switched to be writable")}e=await Rr(t),e==null||e.ensureAttributes(),await li(500),await t.setWritable(!1)}else e=await Rr(t);return e}static initContainer(t,e,i){j.container||(j.container=t);const{playground:s,mainViewElement:r}=Go(t,e);if(j.playground=s,i){const a=document.createElement("style");a.textContent=i,s.appendChild(a)}return r}static get registered(){return ge.registered}bindContainer(t){var e,i,s,r,a,n;if(S.isRoom(this.displayer)&&this.room.phase!==S.RoomPhase.Connected)throw new zr;if(j.isCreated&&j.container)j.container.firstChild&&t.appendChild(j.container.firstChild);else{const o=(e=this.boxManager)==null?void 0:e.teleBoxManager.$stage;if(j.params&&o){const c=j.params,l=j.initContainer(t,o,c.overwriteStyles);this.boxManager&&j.playground&&this.boxManager.setRoot(j.playground),this.bindMainView(l,c.disableCameraTransform),j.playground&&((i=this.cursorManager)==null||i.setupWrapper(j.playground))}}z.emit("updateManagerRect"),(s=this.appManager)==null||s.refresh(),(r=this.appManager)==null||r.resetMaximized(),(a=this.appManager)==null||a.resetMinimized(),(n=this.appManager)==null||n.displayerWritableListener(!this.room.isWritable),j.container=t}bindCollectorContainer(t){j.isCreated&&this.boxManager?this.boxManager.setCollector(t):j.params&&(j.params.collectorContainer=t)}static register(t){return ge.register(t)}static unregister(t){return ge.unregister(t)}async addApp(t){if(this.appManager)return this.appManager.rootDirRemoving?new Promise((e,i)=>{z.once("rootDirRemoved").then(async()=>{try{const s=await this._addApp(t);e(s)}catch(s){i(s.message)}})}):this._addApp(t);throw new me}async _addApp(t){var e,i,s;if(this.appManager){if(!t.kind||typeof t.kind!="string")throw new Nr;const r=await((e=ge.appClasses.get(t.kind))==null?void 0:e());if(r&&((i=r.config)==null?void 0:i.singleton)&&this.appManager.appProxies.has(t.kind))throw new kr;const a=this.setupScenePath(t,this.appManager);return a===void 0?void 0:((s=t==null?void 0:t.options)!=null&&s.scenePath&&(t.options.scenePath=Ro(t.options.scenePath)),await this.appManager.addApp(t,Boolean(a)))}else throw new me}setupScenePath(t,e){let i=!1;if(t.options){const{scenePath:s,scenes:r}=t.options;if(s){if(!Bo(s))throw new Er;const a=Object.keys(this.apps||{});for(const n of a){const o=e.store.getAppScenePath(n);if(o&&o===s){if(console.warn(`[WindowManager]: ScenePath ${s} Already opened`),this.boxManager){const c=this.boxManager.getTopBox();c&&this.boxManager.setZIndex(n,c.zIndex+1,!1)}return}}}s&&r&&r.length>0&&(this.isDynamicPPT(r)?(i=!0,dt(this.displayer)[s]||vt(this.room,s,r)):dt(this.displayer)[s]||vt(this.room,s,[{name:r[0].name}])),s&&r===void 0&&vt(this.room,s,[{}])}return i}async setMainViewScenePath(t){this.appManager&&await this.appManager.setMainViewScenePath(t)}async setMainViewSceneIndex(t){this.appManager&&await this.appManager.setMainViewSceneIndex(t)}async nextPage(){if(this.appManager){const t=this.mainViewSceneIndex+1;return t>=this.mainViewScenesLength?(console.warn("[WindowManager]: current page is the last page"),!1):(await this.appManager.setMainViewSceneIndex(t),!0)}else return!1}async prevPage(){if(this.appManager){const t=this.mainViewSceneIndex-1;return t<0?(console.warn("[WindowManager]: current page is the first page"),!1):(await this.appManager.setMainViewSceneIndex(t),!0)}else return!1}async jumpPage(t){return this.appManager?t<0||t>=this.pageState.length?(console.warn(`[WindowManager]: index ${t} out of range`),!1):(await this.appManager.setMainViewSceneIndex(t),!0):!1}async addPage(t){if(this.appManager){const e=t==null?void 0:t.after,i=t==null?void 0:t.scene;if(e){const s=this.mainViewSceneIndex+1;this.room.putScenes(we,[i||{}],s)}else this.room.putScenes(we,[i||{}])}}async removePage(t){if(this.appManager){const e=t===void 0?this.pageState.index:t;return this.pageState.length===1?(console.warn("[WindowManager]: can not remove the last page"),!1):e<0||e>=this.pageState.length?(console.warn(`[WindowManager]: index ${t} out of range`),!1):this.appManager.removeSceneByIndex(e)}else return!1}getMainViewScenePath(){var t;return(t=this.appManager)==null?void 0:t.store.getMainViewScenePath()}getMainViewSceneIndex(){var t;return(t=this.appManager)==null?void 0:t.store.getMainViewSceneIndex()}setReadonly(t){var e;this.readonly=t,(e=this.boxManager)==null||e.setReadonly(t),z.emit("setReadonly",t)}switchMainViewToWriter(){var t;return(t=this.appManager)==null?void 0:t.mainViewProxy.mainViewClickHandler()}onAppDestroy(t,e){$o(`destroy-${t}`,e)}setViewMode(t){var i;Xe("setViewMode",t);const e=(i=this.appManager)==null?void 0:i.mainViewProxy;t===S.ViewMode.Broadcaster&&(this.canOperate&&(e==null||e.storeCurrentCamera()),e==null||e.start()),t===S.ViewMode.Freedom&&(e==null||e.stop()),this.viewMode=t,this.viewMode$.setValue(t)}setBoxState(t){if(!!this.canOperate)switch(t){case"normal":this.setMaximized(!1),this.setMinimized(!1);break;case"maximized":this.setMaximized(!0),this.setMinimized(!1);break;case"minimized":this.setMinimized(!0);break}}setMaximized(t){var e;!this.canOperate||(e=this.boxManager)==null||e.setMaximized(t,!1)}setMinimized(t){var e;!this.canOperate||(e=this.boxManager)==null||e.setMinimized(t,!1)}get mainView(){if(this.appManager)return this.appManager.mainViewProxy.view;throw new me}get camera(){if(this.appManager)return this.appManager.mainViewProxy.view.camera;throw new me}get baseCamera(){if(this.appManager)return this.appManager.mainViewProxy.camera$.value;throw new me}get baseSize(){if(this.appManager)return this.appManager.mainViewProxy.size$.value;throw new me}get cameraState(){if(this.appManager)return this.appManager.mainViewProxy.cameraState;throw new me}get apps(){var t;return(t=this.appManager)==null?void 0:t.store.apps()}get boxState(){var t;if(this.appManager)return(t=this.appManager.boxManager)==null?void 0:t.boxState;throw new me}get darkMode(){var t,e;return Boolean((e=(t=this.appManager)==null?void 0:t.boxManager)==null?void 0:e.darkMode)}get prefersColorScheme(){var t;if(this.appManager)return(t=this.appManager.boxManager)==null?void 0:t.prefersColorScheme;throw new me}get fullscreen(){var t;if(this.appManager)return(t=this.appManager.boxManager)==null?void 0:t.teleBoxManager.fullscreen;throw new me}get focused(){return this.attributes.focus}get focusedView(){var t,e;return((e=(t=this.appManager)==null?void 0:t.focusApp)==null?void 0:e.view)||this.mainView}get mainViewSceneIndex(){var t;return((t=this._pageState)==null?void 0:t.index)||0}get mainViewSceneDir(){var t;if(this.appManager)return(t=this.appManager)==null?void 0:t.getMainViewSceneDir();throw new me}get topApp(){var t,e;return(e=(t=this.boxManager)==null?void 0:t.getTopBox())==null?void 0:e.id}get mainViewScenesLength(){var t;return((t=this._pageState)==null?void 0:t.length)||0}get canRedoSteps(){var t;return((t=this.focusedView)==null?void 0:t.canRedoSteps)||0}get canUndoSteps(){var t;return((t=this.focusedView)==null?void 0:t.canUndoSteps)||0}get sceneState(){if(this.appManager)return this.appManager.sceneState;throw new me}get pageState(){if(this._pageState)return this._pageState.toObject();throw new me}get teleboxManager(){if(!this.boxManager)throw new Xi;return this.boxManager.teleBoxManager}queryAll(){var t;return Array.from(((t=this.appManager)==null?void 0:t.appProxies.values())||[])}queryOne(t){var e;return(e=this.appManager)==null?void 0:e.appProxies.get(t)}async closeApp(t){var e;return(e=this.appManager)==null?void 0:e.closeApp(t)}convertToPointInWorld(t){return this.mainView.convertToPointInWorld(t)}setCameraBound(t){this.mainView.setCameraBound(t)}onDestroy(){this._destroy()}destroy(){this._destroy()}_destroy(){var t,e,i;(t=this.appManager)==null||t.destroy(),(e=this.cursorManager)==null||e.destroy(),j.container=void 0,j.isCreated=!1,j.playground&&((i=j.playground.parentNode)==null||i.removeChild(j.playground)),j.params=void 0,Xe("Destroyed")}bindMainView(t,e){var i;this.appManager&&(this.appManager.bindMainView(t,Boolean(e)),(i=this.cursorManager)==null||i.setMainViewDivElement(t))}get canOperate(){return S.isRoom(this.displayer)?this.displayer.isWritable&&this.displayer.phase===S.RoomPhase.Connected:!1}get room(){return this.displayer}safeSetAttributes(t){this.canOperate&&this.setAttributes(t)}safeUpdateAttributes(t,e){this.canOperate&&this.updateAttributes(t,e)}setPrefersColorScheme(t){var e,i;(i=(e=this.appManager)==null?void 0:e.boxManager)==null||i.setPrefersColorScheme(t)}setFullscreen(t){var e,i;(i=(e=this.appManager)==null?void 0:e.boxManager)==null||i.teleBoxManager.setFullscreen(t)}cleanCurrentScene(){var t;(t=this.focusedView)==null||t.cleanCurrentScene()}redo(){var t;return((t=this.focusedView)==null?void 0:t.redo())||0}undo(){var t;return((t=this.focusedView)==null?void 0:t.undo())||0}delete(){var t;(t=this.focusedView)==null||t.delete()}copy(){var t;(t=this.focusedView)==null||t.copy()}paste(){var t;(t=this.focusedView)==null||t.paste()}duplicate(){var t;(t=this.focusedView)==null||t.duplicate()}insertText(t,e,i){var s;return((s=this.focusedView)==null?void 0:s.insertText(t,e,i))||""}insertImage(t){var e;return(e=this.focusedView)==null?void 0:e.insertImage(t)}completeImageUpload(t,e){var i;return(i=this.focusedView)==null?void 0:i.completeImageUpload(t,e)}lockImage(t,e){var i;return(i=this.focusedView)==null?void 0:i.lockImage(t,e)}lockImages(t){var e;return(e=this.focusedView)==null?void 0:e.lockImages(t)}refresh(){var t;this._refresh(),(t=this.appManager)==null||t.dispatchInternalEvent(Q.Refresh)}_refresh(){var t,e;(t=this.appManager)==null||t.mainViewProxy.rebind(),j.container&&this.bindContainer(j.container),(e=this.appManager)==null||e.refresher.refresh()}setContainerSizeRatio(t){if(!v.isNumber(t))throw new Error(`[WindowManager]: updateContainerSizeRatio error, ratio must be a number. but got ${t}`);j.containerSizeRatio=t,this.containerSizeRatio=t,z.emit("containerSizeRatioUpdate",t)}setContainerStyle(t){var e;(e=this.boxManager)==null||e.teleBoxManager.setContainerStyle(t)}setStageStyle(t){var e;(e=this.boxManager)==null||e.teleBoxManager.setStageStyle(t)}setBaseSize(t){var e;(e=this.appManager)==null||e.mainViewProxy.setMainViewSize(t),setTimeout(()=>{!this.appManager||!this.appManager.mainViewProxy.camera$.value||this.appManager.mainViewProxy.storeCamera(pe(R({},this.appManager.mainViewProxy.camera$.value),{id:this.appManager.uid,scale:1}))},500)}createPPTHandler(){return{onPageJumpTo:(t,e)=>{var i,s,r,a;(a=(r=(s=(i=this.appManager)==null?void 0:i.focusApp)==null?void 0:s.appContext)==null?void 0:r.whiteBoardView)==null||a.jumpPage(e)},onPageToNext:()=>{var t,e,i,s;this.focused&&((s=(i=(e=(t=this.appManager)==null?void 0:t.focusApp)==null?void 0:e.appContext)==null?void 0:i.whiteBoardView)==null||s.nextPage())},onPageToPrev:()=>{var t,e,i,s;this.focused&&((s=(i=(e=(t=this.appManager)==null?void 0:t.focusApp)==null?void 0:e.appContext)==null?void 0:i.whiteBoardView)==null||s.prevPage())}}}isDynamicPPT(t){var i,s;const e=(s=(i=t[0])==null?void 0:i.ppt)==null?void 0:s.src;return e==null?void 0:e.startsWith("pptx://")}async ensureAttributes(){v.isNull(this.attributes)&&await li(50),v.isObject(this.attributes)&&(this.attributes[te.Apps]||this.safeSetAttributes({[te.Apps]:{}}),this.attributes[te.Cursors]||this.safeSetAttributes({[te.Cursors]:{}}),this.attributes._mainScenePath||this.safeSetAttributes({_mainScenePath:xr}),this.attributes._mainSceneIndex||this.safeSetAttributes({_mainSceneIndex:0}),this.attributes[te.Registered]||this.safeSetAttributes({[te.Registered]:{}}))}};let ue=j;ue.kind="WindowManager",ue.debug=!1,ue.containerSizeRatio=vo,ue.isCreated=!1,np(),E.AppCreateError=kr,E.AppManagerNotInitError=me,E.AppNotRegisterError=Fo,E.BindContainerRoomPhaseInvalidError=zr,E.BoxManagerNotInitializeError=Xi,E.BoxNotCreatedError=Pr,E.BuiltinApps=cr,E.BuiltinAppsMap=op,E.InvalidScenePath=Er,E.ParamsInvalidError=Nr,E.WhiteWebSDKInvalidError=Tr,E.WindowManager=ue,E.calculateNextIndex=es,E.reconnectRefresher=no,Object.defineProperties(E,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
123
|
+
}`)(),da=(t=>(t.Light="light",t.Dark="dark",t.Auto="auto",t))(da||{}),se=(t=>(t.Normal="normal",t.Minimized="minimized",t.Maximized="maximized",t))(se||{}),be=(t=>(t.DarkMode="dark_mode",t.PrefersColorScheme="prefers_color_scheme",t.Close="close",t.Focus="focus",t.Blur="blur",t.IntrinsicMove="intrinsic_move",t.IntrinsicResize="intrinsic_resize",t.ZIndex="z_index",t.State="state",t.Minimized="minimized",t.Maximized="maximized",t.Readonly="readonly",t.Destroyed="destroyed",t))(be||{}),$e=(t=>(t.Close="close",t.Maximize="maximize",t.Minimize="minimize",t))($e||{}),je=(t=>(t.North="n",t.South="s",t.West="w",t.East="e",t.NorthWest="nw",t.NorthEast="ne",t.SouthEast="se",t.SouthWest="sw",t))(je||{});const xs="dh";function xt(t,e,i){return Math.min(Math.max(t,e),i)}function Rt(t){t.stopPropagation(),t.cancelable&&t.preventDefault()}let tc=1;function ic(){return`New Box ${tc++}`}class ua{constructor({readonly$:e,state$:i,title$:s,buttons:r,onEvent:a,onDragStart:n,namespace:o="telebox"}){this.sideEffect=new ve.SideEffectManager,this.lastTitleBarClick={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarClick=c=>{var l;if(!c.isPrimary||this.readonly$.value||c.button!==0||(l=c.target.dataset)!=null&&l.teleTitleBarNoDblClick)return;Rt(c);const d=Date.now();d-this.lastTitleBarClick.timestamp<=500?Math.abs(c.clientX-this.lastTitleBarClick.clientX)<=5&&Math.abs(c.clientY-this.lastTitleBarClick.clientY)<=5&&this.onEvent&&this.onEvent({type:$e.Maximize}):this.onDragStart&&this.onDragStart(c),this.lastTitleBarClick.timestamp=d,this.lastTitleBarClick.clientX=c.clientX,this.lastTitleBarClick.clientY=c.clientY},this.readonly$=e,this.state$=i,this.title$=s,this.onEvent=a,this.onDragStart=n,this.namespace=o,this.buttons=r||[{type:$e.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:$e.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:c=>c===se.Maximized},{type:$e.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}],this.$dragArea=this.renderDragArea()}render(){if(!this.$titleBar){this.$titleBar=document.createElement("div"),this.$titleBar.className=this.wrapClassName("titlebar");const e=document.createElement("div");e.className=this.wrapClassName("title-area"),e.dataset.teleBoxHandle=xs;const i=document.createElement("h1");i.className=this.wrapClassName("title"),i.dataset.teleBoxHandle=xs,e.appendChild(i),e.appendChild(this.$dragArea);const s=document.createElement("div");s.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach(({iconClassName:r},a)=>{const n=String(a),o=document.createElement("button");o.className=`${this.wrapClassName("titlebar-btn")} ${r}`,o.dataset.teleTitleBarBtnIndex=n,o.dataset.teleTitleBarNoDblClick="true",s.appendChild(o)}),this.sideEffect.addDisposer(this.title$.subscribe(r=>{i.textContent=r,i.title=r}),"render-title"),this.sideEffect.addDisposer(this.state$.subscribe(r=>{this.buttons.forEach((a,n)=>{var o;a.isActive&&((o=s.children[n])==null||o.classList.toggle("is-active",a.isActive(r)))})}),"render-state-btns"),this.sideEffect.addEventListener(s,"click",r=>{var a;if(this.readonly$.value)return;const n=r.target,o=Number((a=n.dataset)==null?void 0:a.teleTitleBarBtnIndex);if(!Number.isNaN(o)&&o<this.buttons.length){Rt(r);const c=this.buttons[o];this.onEvent&&this.onEvent({type:c.type,value:c.value})}},{},"render-btns-container-click"),this.$titleBar.appendChild(e),this.$titleBar.appendChild(s)}return this.$titleBar}renderDragArea(){const e=document.createElement("div");return e.className=this.wrapClassName("drag-area"),e.dataset.teleBoxHandle=xs,this.sideEffect.addEventListener(e,"pointerdown",this.handleTitleBarClick),e}dragHandle(){return this.$titleBar}wrapClassName(e){return`${this.namespace}-${e}`}destroy(){this.sideEffect.flushAll(),this.$titleBar&&(this.$titleBar=void 0,this.onDragStart=void 0,this.onEvent=void 0)}}function pa([t,e]){if(e<=0||t.width<=0||t.height<=0)return t;const i=t.width*e;if(i===t.height)return t;if(i<t.height)return{x:0,y:(t.height-i)/2,width:t.width,height:i};const s=t.height/e;return{x:(t.width-s)/2,y:0,width:s,height:t.height}}const sc=window.ResizeObserver||br.ResizeObserver;class rc{constructor({id:e=ve.genUID(),title:i=ic(),namespace:s="telebox",visible:r=!0,width:a=.5,height:n=.5,minWidth:o=0,minHeight:c=0,x:l=.1,y:d=.1,resizable:u=!0,draggable:p=!0,boxRatio:m=-1,focus:g=!1,zIndex:f=100,stageRatio:b=null,enableShadowDOM:x=!0,titleBar:M,content:y,stage:k,footer:D,styles:T,userStyles:U,bodyStyle:ne=null,stageStyle:J=null,darkMode$:Ae,fence$:Ge,root:Me,rootRect$:ze,managerMinimized$:Se,managerMaximized$:De,managerReadonly$:Ce,managerStageRect$:Ie,managerStageRatio$:ke,defaultBoxBodyStyle$:Le,defaultBoxStageStyle$:Te,collectorRect$:lt}){this.events=new Je.default,this._delegateEvents=new Je.default,this.handleTrackStart=j=>{var F;return(F=this._handleTrackStart)==null?void 0:F.call(this,j)},this._sideEffect=new ve.SideEffectManager,this.id=e,this.namespace=s,this.enableShadowDOM=x;const qe=new w.ValManager;this._sideEffect.addDisposer(()=>qe.destroy());const ct=new w.Val(i),Nt=new w.Val(r),hr=new w.Val(u),A=new w.Val(p),L=new w.Val(m),we=new w.Val(f),pe=new w.Val(g),ni=new w.Val(null),Pt=new w.Val(null),lo=new w.Val(null),dr=w.combine([ni,De],([j,F])=>j!=null?j:F),Fi=w.combine([Pt,Se],([j,F])=>j!=null?j:F),ur=w.combine([lo,Ce],([j,F])=>j!=null?j:F),pr=w.combine([Fi,dr],([j,F])=>j?se.Minimized:F?se.Maximized:se.Normal),gr=new w.Val({width:xt(o,0,1),height:xt(c,0,1)},{compare:_e}),lp=w.combine([gr,Ie],([j,F])=>({width:j.width*F.width,height:j.height*F.height}),{compare:_e}),Wi=new w.Val({width:a,height:n},{compare:_e});this._sideEffect.addDisposer(gr.reaction((j,F)=>{Wi.setValue({width:Math.max(a,j.width),height:Math.max(n,j.height)},F)}));const mr=new w.Val({x:l,y:d},{compare:_e}),fr=w.combine([Wi,Ie],([j,F])=>({width:F.width*j.width,height:F.height*j.height}),{compare:_e}),oi=w.combine([mr,Ie],([j,F])=>({x:j.x*F.width,y:j.y*F.height}),{compare:_e}),cp=new w.Val(ne),hp=new w.Val(J),dp=new w.Val(null),co=new w.Val(Ie.value,{compare:_e}),ho=new w.Val(b),up=w.combine([ho,ke],([j,F])=>j!=null?j:F),pp=w.combine([co,up],pa,{compare:_e}),gp={darkMode:Ae,fence:Ge,rootRect:ze,managerMinimized:Se,managerMaximized:De,managerReadonly:Ce,managerStageRect:Ie,managerStageRatio:ke,defaultBoxBodyStyle:Le,defaultBoxStageStyle:Te,collectorRect:lt};w.withReadonlyValueEnhancer(this,gp);const mp={zIndex:we,focus:pe,state:pr,minSize:gr,pxMinSize:lp,intrinsicSize:Wi,intrinsicCoord:mr,pxIntrinsicSize:fr,pxIntrinsicCoord:oi,bodyRect:co,stageRect:pp,minimized:Fi,maximized:dr,readonly:ur};w.withReadonlyValueEnhancer(this,mp,qe);const fp={title:ct,visible:Nt,resizable:hr,draggable:A,boxRatio:L,boxMinimized:Pt,boxMaximized:ni,boxReadonly:lo,stageRatio:ho,bodyStyle:cp,stageStyle:hp};w.withValueEnhancer(this,fp,qe),this.titleBar=M||new ua({readonly$:ur,state$:pr,title$:ct,namespace:this.namespace,onDragStart:j=>{var F;return(F=this._handleTrackStart)==null?void 0:F.call(this,j)},onEvent:j=>this._delegateEvents.emit(j.type)}),this._sideEffect.addDisposer(w.combine([L,Fi]).subscribe(([j,F])=>{!F&&j>0&&this.transform(oi.value.x,oi.value.y,fr.value.width,fr.value.height)})),this._sideEffect.addDisposer(Ge.subscribe(j=>{j&&this.move(oi.value.x,oi.value.y)})),this.$box=this._render(),dp.setValue(this.$content.parentElement),y&&this.mountContent(y),k&&this.mountStage(k),D&&this.mountFooter(D),T&&this.mountStyles(T),U&&this.mountUserStyles(U),Me.appendChild(this.$box);const ht=(j,F)=>{this._sideEffect.addDisposer(j.reaction((bp,yp)=>{yp||this.events.emit(F,bp)}))};ht(Ae,be.DarkMode),ht(ur,be.Readonly),ht(we,be.ZIndex),ht(Fi,be.Minimized),ht(dr,be.Maximized),ht(pr,be.State),ht(Wi,be.IntrinsicResize),ht(mr,be.IntrinsicMove),this._sideEffect.addDisposer([Nt.reaction((j,F)=>{!F&&!j&&this.events.emit(be.Close)}),pe.reaction((j,F)=>{F||this.events.emit(j?be.Focus:be.Blur)})])}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(e,i=!1){this._minSize$.setValue({width:e,height:this.minHeight},i)}setMinHeight(e,i=!1){this._minSize$.setValue({width:this.minWidth,height:e},i)}resize(e,i,s=!1){this._intrinsicSize$.setValue({width:Math.max(e,this.minWidth),height:Math.max(i,this.minHeight)},s)}get intrinsicX(){return this._intrinsicCoord$.value.x}get intrinsicY(){return this._intrinsicCoord$.value.y}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}move(e,i,s=!1){let r,a;const n=this.managerStageRect,o=this.pxIntrinsicSize;this.fence?(r=xt(e,0,n.width-o.width),a=xt(i,0,n.height-o.height)):(r=xt(e,-(o.width-120),0+n.width-20),a=xt(i,0,0+n.height-20)),this._intrinsicCoord$.setValue({x:r/n.width,y:a/n.height},s)}transform(e,i,s,r,a=!1){const n=this.managerStageRect;if(s=Math.max(s,this.pxMinSize.width),r=Math.max(r,this.pxMinSize.height),this.boxRatio>0){const o=this.boxRatio*s;i!==this.pxIntrinsicCoord.y&&(i-=o-r),r=o}i<0&&(i=0,r=this.pxIntrinsicSize.height),this.move(e,i,a),this._intrinsicSize$.setValue({width:s/n.width,height:r/n.height},a)}mountContent(e){var i;(i=this.$authorContent)==null||i.remove(),this.$authorContent=e,this.$content.appendChild(e)}unmountContent(){this.$authorContent&&(this.$authorContent.remove(),this.$authorContent=void 0)}mountStage(e){var i;(i=this.$authorStage)==null||i.remove(),this.$authorStage=e,this.$stage||(this.$stage=this._renderStage()),this.$stage.appendChild(e),this.$stage.parentElement||this.$body.appendChild(this.$stage)}unmountStage(){var e;this.$authorStage&&(this.$authorStage.remove(),this.$authorStage=void 0),(e=this.$stage)==null||e.remove()}mountFooter(e){var i;(i=this.$authorFooter)==null||i.remove(),this.$authorFooter=e,this.$footer.appendChild(e)}unmountFooter(){this.$authorFooter&&(this.$authorFooter.remove(),this.$authorFooter=void 0)}mountStyles(e){this.$styles.textContent=e}unmountStyles(){this.$styles.textContent=""}mountUserStyles(e){this.$userStyles.textContent=e}unmountUserStyles(){this.$userStyles.textContent=""}_render(){if(this.$box)return this.$box;const e=(b,x)=>this._sideEffect.addDisposer([this._readonly$.subscribe(M=>b.classList.toggle(this.wrapClassName("readonly"),M)),this._draggable$.subscribe(M=>b.classList.toggle(this.wrapClassName("no-drag"),!M)),this._resizable$.subscribe(M=>b.classList.toggle(this.wrapClassName("no-resize"),!M)),this._focus$.subscribe(M=>b.classList.toggle(this.wrapClassName("blur"),!M)),this._darkMode$.subscribe(M=>{b.classList.toggle(this.wrapClassName("color-scheme-dark"),M),b.classList.toggle(this.wrapClassName("color-scheme-light"),!M)})],x);this.$box=document.createElement("div"),this.$box.classList.add(this.wrapClassName("box")),e(this.$box,"bind-box-state"),this._sideEffect.add(()=>{const b=this.wrapClassName("minimized"),x=this.wrapClassName("maximized"),M="box-maximized-timer";return this._state$.subscribe(y=>{this.$box.classList.toggle(b,y===se.Minimized),y===se.Maximized?(this._sideEffect.flush(M),this.$box.classList.toggle(x,!0)):this._sideEffect.setTimeout(()=>{this.$box.classList.toggle(x,!1)},0,M)})}),this._sideEffect.addDisposer(this._visible$.subscribe(b=>{this.$box.style.display=b?"block":"none"})),this._sideEffect.addDisposer(this._zIndex$.subscribe(b=>{this.$box.style.zIndex=String(b)})),this.$box.dataset.teleBoxID=this.id;const i=Kl(this.$box),s=w.combine([this._maximized$,this._minimized$,this._pxIntrinsicSize$,this._pxIntrinsicCoord$,this._collectorRect$,this._rootRect$,this._managerStageRect$],([b,x,M,y,k,D,T])=>{const U=b?{x:-T.x,y:-T.y,width:D.width,height:D.height,scaleX:1,scaleY:1}:{x:y.x,y:y.y,width:M.width,height:M.height,scaleX:1,scaleY:1};if(x&&k){const{width:ne,height:J}=b?this.rootRect:M;U.x=k.x-ne/2+k.width/2-T.x,U.y=k.y-J/2+k.height/2-T.y,U.scaleX=k.width/ne,U.scaleY=k.height/J}return U},{compare:_e}),r=s.value;this.$box.style.width=r.width+"px",this.$box.style.height=r.height+"px",this.$box.style.transform=`translate(${r.x-10}px,${r.y-10}px)`,this._sideEffect.addDisposer(s.subscribe(b=>{i.set(b)}));const a=document.createElement("div");a.className=this.wrapClassName("box-main"),this.$box.appendChild(a);const n=document.createElement("div");n.className=this.wrapClassName("titlebar-wrap"),n.appendChild(this.titleBar.render()),this.$titleBar=n;const o=document.createElement("div");o.className=this.wrapClassName("body-wrap"),this.$body=o;const c=document.createElement("style");this.$styles=c,o.appendChild(c);const l=document.createElement("style");this.$userStyles=l,o.appendChild(l);const d=document.createElement("div");d.className=this.wrapClassName("content")+" tele-fancy-scrollbar",this.$content=d,this._sideEffect.addDisposer(w.combine([this._bodyStyle$,this._defaultBoxBodyStyle$],([b,x])=>b!=null?b:x).subscribe(b=>d.style.cssText=b||"")),o.appendChild(d);const u=document.createElement("div");u.className=this.wrapClassName("footer-wrap"),this.$footer=u,a.appendChild(n);const p=document.createElement("div");p.className=this.wrapClassName("main"),this.$main=p,a.appendChild(p);const m=document.createElement("div");m.className=this.wrapClassName("quarantine-outer"),p.appendChild(m);const g=document.createElement("div");if(g.className=this.wrapClassName("quarantine"),g.appendChild(o),g.appendChild(u),this.enableShadowDOM){e(g,"bind-quarantine-state");const b=document.createElement("style");b.textContent=ec,g.insertBefore(b,g.firstChild),m.attachShadow({mode:"open"}).appendChild(g)}else m.appendChild(g);this._renderResizeHandlers();const f=()=>{const b=o.getBoundingClientRect();this._bodyRect$.setValue({x:0,y:0,width:b.width,height:b.height})};return this._sideEffect.add(()=>{const b=new sc(()=>{this.minimized||f()});return b.observe(o),()=>b.disconnect()}),this._sideEffect.addDisposer(this._minimized$.reaction(b=>{b||this._sideEffect.setTimeout(f,400,"minimized-content-rect-fix")})),this.$box}_renderStage(){const e=document.createElement("div");e.className=this.wrapClassName("box-stage");const i=s=>{e.style.top=s.y+"px",e.style.left=s.x+"px",e.style.width=s.width+"px",e.style.height=s.height+"px"};return this._sideEffect.addDisposer([w.combine([this._stageStyle$,this._defaultBoxStageStyle$],([s,r])=>s!=null?s:r).subscribe(s=>{e.style.cssText=s||"",i(this._stageRect$.value)}),this._stageRect$.subscribe(i)],"box-stage-styles"),e}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(je).forEach(f=>{const b=document.createElement("div");b.className=this.wrapClassName(f)+" "+this.wrapClassName("resize-handle"),b.dataset.teleBoxHandle=f,e.appendChild(b)}),this.$box.appendChild(e);const i="handle-tracking-listener",s=this.wrapClassName("transforming");let r,a=0,n=0,o=0,c=0,l=0,d=0,u;const p=f=>{if(!f.isPrimary||this.state!==se.Normal)return;Rt(f);let{pageX:b,pageY:x}=f;x<0&&(x=0);const M=b-l,y=x-d;let{x:k,y:D}=this.pxIntrinsicCoord,{width:T,height:U}=this.pxIntrinsicSize;switch(u){case je.North:{D=n+y,U=c-y;break}case je.South:{U=c+y;break}case je.West:{k=a+M,T=o-M;break}case je.East:{T=o+M;break}case je.NorthWest:{k=a+M,D=n+y,T=o-M,U=c-y;break}case je.NorthEast:{D=n+y,T=o+M,U=c-y;break}case je.SouthEast:{T=o+M,U=c+y;break}case je.SouthWest:{k=a+M,T=o-M,U=c+y;break}default:{this.move(a+M,n+y);return}}this.transform(k,D,T,U)},m=f=>{!f.isPrimary||(u=void 0,r&&(Rt(f),this.$box.classList.toggle(s,!1),this._sideEffect.flush(i),r.remove()))},g=f=>{var b;if(!f.isPrimary||this.readonly||f.button!=null&&f.button!==0||!this.draggable||u||this.state!==se.Normal)return;const x=f.target;if((b=x.dataset)!=null&&b.teleBoxHandle){Rt(f),{x:a,y:n}=this.pxIntrinsicCoord,{width:o,height:c}=this.pxIntrinsicSize,{pageX:l,pageY:d}=f,u=x.dataset.teleBoxHandle,r||(r=document.createElement("div"));const M=u?this.wrapClassName(`cursor-${u}`):"";r.className=this.wrapClassName(`track-mask${M?` ${M}`:""}`),this.$box.appendChild(r),this.$box.classList.add(s),this._sideEffect.add(()=>(window.addEventListener("pointermove",p,{passive:!1}),window.addEventListener("pointerup",m,{passive:!1}),window.addEventListener("pointercancel",m,{passive:!1}),()=>{window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",m)}),i)}};this._handleTrackStart=g,this._sideEffect.addEventListener(e,"pointerdown",g,{},"box-resizeHandles-pointerdown")}async destroy(){this.$box.remove(),this._sideEffect.flushAll(),this._sideEffect.flushAll(),await this.events.emit(be.Destroyed),this.events.clearListeners(),this._delegateEvents.clearListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}var ac="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K";class nc{constructor({minimized$:e,readonly$:i,darkMode$:s,namespace:r="telebox",styles:a={},root:n,onClick:o}){this._sideEffect=new ve.SideEffectManager,this.namespace=r;const c=new w.ValManager;this._sideEffect.addDisposer(()=>c.destroy());const l=new w.Val(void 0),d=w.derive(e),u=new w.Val(a),p=new w.Val(document.createElement("button")),m={styles:u,$collector:p};w.withValueEnhancer(this,m,c);const g={rect:l,visible:d};w.withReadonlyValueEnhancer(this,g,c),p.value.className=this.wrapClassName("collector"),p.value.style.backgroundImage=`url('${ac}')`,this._sideEffect.addDisposer(p.subscribe(f=>{this._sideEffect.add(()=>(n.appendChild(f),()=>f.remove()),"telebox-collector-mount"),this._sideEffect.addEventListener(f,"click",()=>{i.value||o==null||o()},{},"telebox-collector-click"),this._sideEffect.addDisposer([d.subscribe(b=>{f.classList.toggle(this.wrapClassName("collector-visible"),b)}),i.subscribe(b=>{f.classList.toggle(this.wrapClassName("collector-readonly"),b)}),s.subscribe(b=>{f.classList.toggle(this.wrapClassName("color-scheme-dark"),b),f.classList.toggle(this.wrapClassName("color-scheme-light"),!b)}),u.subscribe(b=>{Object.keys(b).forEach(x=>{const M=b[x];M!=null&&(f.style[x]=M)})}),e.subscribe(b=>{if(b){const{x,y:M,width:y,height:k}=f.getBoundingClientRect(),D=n.getBoundingClientRect();l.setValue({x:x-D.x,y:M-D.y,width:y,height:k})}})],"telebox-collector-el")}))}destroy(){this._sideEffect.flushAll()}wrapClassName(e){return`${this.namespace}-${e}`}}var de=(t=>(t.Focused="focused",t.Blurred="blurred",t.Created="created",t.Removed="removed",t.State="state",t.Maximized="maximized",t.Minimized="minimized",t.IntrinsicMove="intrinsic_move",t.IntrinsicResize="intrinsic_resize",t.ZIndex="z_index",t.PrefersColorScheme="prefers_color_scheme",t.DarkMode="dark_mode",t))(de||{});class oc extends ua{constructor(e){super(e);this.boxes$=e.boxes$,this.rootRect$=e.rootRect$,this.darkMode$=e.darkMode$,e.root.appendChild(this.render())}focusBox(e){var i;if(!(this.focusedBox&&this.focusedBox===e)){if(this.$titles&&this.state$.value===se.Maximized){const{children:s}=this.$titles.firstElementChild;for(let r=s.length-1;r>=0;r-=1){const a=s[r],n=(i=a.dataset)==null?void 0:i.teleBoxID;n&&(e&&n===e.id?a.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&n===this.focusedBox.id&&a.classList.toggle(this.wrapClassName("titles-tab-focus"),!1))}}this.focusedBox=e}}render(){if(this.$titleBar)return this.$titleBar;const e=super.render();e.classList.add(this.wrapClassName("max-titlebar")),this.sideEffect.addDisposer([w.combine([this.boxes$,this.state$]).subscribe(([s,r])=>{e.classList.toggle(this.wrapClassName("max-titlebar-active"),r===se.Maximized&&s.length>0)}),this.readonly$.subscribe(s=>{e.classList.toggle(this.wrapClassName("readonly"),s)}),w.combine([this.state$,this.boxes$]).subscribe(([s,r])=>{s===se.Maximized&&(e.classList.toggle(this.wrapClassName("max-titlebar-single-title"),r.length===1),r.length!==1&&e.replaceChild(this.renderTitles(),e.firstElementChild))})],"max-render");const i=document.createElement("div");return i.classList.add(this.wrapClassName("titles-area")),e.insertBefore(i,e.firstElementChild),e}destroy(){super.destroy(),this.$titles=void 0,this.focusedBox=void 0}renderTitles(){this.$titles=document.createElement("div"),this.$titles.className=this.wrapClassName("titles"),this.sideEffect.addEventListener(this.$titles,"wheel",s=>{s.currentTarget.scrollBy({left:s.deltaY>0?250:-250,behavior:"smooth"})},{passive:!1},"max-render-wheel-titles");const e=document.createElement("div");e.className=this.wrapClassName("titles-content"),this.$titles.appendChild(e);const i=this.boxes$.value.map(s=>{const r=document.createElement("button");return r.className=this.wrapClassName("titles-tab"),r.textContent=s.title,r.dataset.teleBoxID=s.id,r.dataset.teleTitleBarNoDblClick="true",this.focusedBox&&s.id===this.focusedBox.id&&r.classList.add(this.wrapClassName("titles-tab-focus")),e.appendChild(r),s._title$.reaction(a=>r.textContent=a)});return this.sideEffect.addDisposer(()=>i.forEach(s=>s()),"max-render-tab-titles"),this.$titles}}const lc=window.ResizeObserver||br.ResizeObserver;class cc{constructor({root:e=null,fullscreen:i=!1,prefersColorScheme:s=da.Light,minimized:r=!1,maximized:a=!1,fence:n=!0,collector:o,namespace:c="telebox",readonly:l=!1,stageRatio:d=-1,containerStyle:u="",stageStyle:p="",defaultBoxBodyStyle:m=null,defaultBoxStageStyle:g=null,theme:f=null}={}){this.events=new Je.default,this._sideEffect=new ve.SideEffectManager,this.namespace=c;const b=new w.ValManager;this._sideEffect.addDisposer(()=>b.destroy());const x=new w.Val(e),M=new w.Val(l),y=new w.Val(n),k=new w.Val(u),D=new w.Val(p),T=new w.Val(d),U=new w.Val(m),ne=new w.Val(g),J=new w.Val(i),Ae=new w.Val(r),Ge=new w.Val(a),Me=w.combine([Ge,J],([A,L])=>L?!0:A),ze=w.combine([Ae,J],([A,L])=>L?!1:A);this.setMaximized=(A,L)=>Ge.setValue(A,L),this.setMinimized=(A,L)=>Ae.setValue(A,L);const Se=new w.Val({x:0,y:0,width:window.innerWidth,height:window.innerHeight},{compare:_e});this._sideEffect.addDisposer(x.subscribe(A=>{this._sideEffect.add(()=>{if(!A)return()=>{};const L=new lc(()=>{const we=A.getBoundingClientRect();Se.setValue({x:0,y:0,width:we.width,height:we.height})});return L.observe(A),()=>L.disconnect()},"calc-root-rect")}));const De=w.combine([Se,T],pa,{compare:_e});this.boxes$=new w.Val([]),this.topBox$=new w.Val(void 0),this._sideEffect.addDisposer(this.boxes$.subscribe(A=>{if(A.length>0){const L=A.reduce((we,pe)=>we.zIndex>pe.zIndex?we:pe);this.topBox$.setValue(L)}else this.topBox$.setValue(void 0)}));const Ce=window.matchMedia("(prefers-color-scheme: dark)"),Ie=new w.Val(!1);Ce&&(Ie.setValue(Ce.matches),this._sideEffect.add(()=>{const A=L=>{Ie.setValue(L.matches)};return Ce.addEventListener("change",A),()=>Ce.removeEventListener("change",A)}));const ke=new w.Val(s);this._sideEffect.addDisposer(ke.reaction((A,L)=>{L||this.events.emit(de.PrefersColorScheme,A)}));const Le=w.combine([Ie,ke],([A,L])=>L==="auto"?A:L==="dark"),Te=w.combine([ze,Me],([A,L])=>A?se.Minimized:L?se.Maximized:se.Normal),lt=new w.Val(f,{compare:_e}),qe={darkMode:Le,state:Te,root:x,rootRect:Se,stageRect:De,minimized:ze,maximized:Me};w.withReadonlyValueEnhancer(this,qe,b);const ct={fullscreen:J,prefersColorScheme:ke,readonly:M,fence:y,stageRatio:T,containerStyle:k,stageStyle:D,defaultBoxBodyStyle:U,defaultBoxStageStyle:ne,theme:lt};w.withValueEnhancer(this,ct,b);const Nt=this.wrapClassName("titlebar-icon-close"),hr=A=>{var L;if(!A.isPrimary||M.value)return;const we=A.target;if(!!we.tagName)for(let pe=we;pe;pe=pe.parentElement){if(pe.classList&&pe.classList.contains(Nt))return;const ni=(L=pe.dataset)==null?void 0:L.teleBoxID;if(ni){const Pt=this.getBox(ni);if(Pt){this.focusBox(Pt),this.makeBoxTop(Pt);return}}}};this._sideEffect.addEventListener(window,"pointerdown",hr,!0),this.$container=document.createElement("div"),this.$container.className=this.wrapClassName("manager-container"),this.setTheme(f),this.$stage=document.createElement("div"),this.$stage.className=this.wrapClassName("manager-stage"),this.$container.appendChild(this.$stage),this._sideEffect.addDisposer([Le.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("color-scheme-dark"),A),this.$container.classList.toggle(this.wrapClassName("color-scheme-light"),!A)}),J.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("is-fullscreen"),Boolean(A))}),w.combine([this.boxes$,J],([A,L])=>L==="no-titlebar"||L===!0&&A.length<=1).subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("hide-fullscreen-titlebar"),A)}),Me.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("is-maximized"),A)}),ze.subscribe(A=>{this.$container.classList.toggle(this.wrapClassName("is-minimized"),A)}),w.combine([k,lt]).subscribe(([A,L])=>{this.$container.style.cssText=A,L&&Object.keys(L).forEach(we=>{var pe;this.$container.style.setProperty(`--tele-${we}`,(pe=L[we])!=null?pe:null)})}),D.subscribe(A=>{this.$stage.style.cssText=A,this.$stage.style.width=De.value.width+"px",this.$stage.style.height=De.value.height+"px"}),De.subscribe(A=>{this.$stage.style.width=A.width+"px",this.$stage.style.height=A.height+"px"}),x.subscribe(A=>{A?A.appendChild(this.$container):this.$container.parentElement&&this.$container.remove()})]),this.collector=o!=null?o:new nc({minimized$:ze,readonly$:M,darkMode$:Le,namespace:c,root:this.$container,onClick:()=>Ae.setValue(!1)}),this.titleBar=new oc({namespace:this.namespace,title$:w.derive(this.topBox$,A=>(A==null?void 0:A.title)||""),boxes$:this.boxes$,darkMode$:Le,readonly$:M,state$:Te,rootRect$:Se,root:this.$container,onEvent:A=>{switch(A.type){case $e.Maximize:{this.setMaximized(!Me.value);break}case $e.Minimize:{this.setMinimized(!0);break}case be.Close:{this.removeTopBox(),this.focusTopBox();break}}}}),this._sideEffect.addDisposer([Te.reaction((A,L)=>{L||this.events.emit(de.State,A)}),Me.reaction((A,L)=>{L||this.events.emit(de.Maximized,A)}),ze.reaction((A,L)=>{L||this.events.emit(de.Minimized,A)}),Le.reaction((A,L)=>{L||this.events.emit(de.DarkMode,A)})])}get boxes(){return this.boxes$.value}get topBox(){return this.topBox$.value}setState(e,i=!1){switch(e){case se.Maximized:{this.setMinimized(!1,i),this.setMaximized(!0,i);break}case se.Minimized:{this.setMinimized(!0,i),this.setMaximized(!1,i);break}default:{this.setMinimized(!1,i),this.setMaximized(!1,i);break}}return this}create(e={},i=!0){const s=new rc(ge(O(O({zIndex:this.topBox?this.topBox.zIndex+1:100},e),i?this.smartPosition(e):{}),{namespace:this.namespace,root:this.$stage,darkMode$:this._darkMode$,fence$:this._fence$,rootRect$:this._rootRect$,managerStageRect$:this._stageRect$,managerStageRatio$:this._stageRatio$,managerMaximized$:this._maximized$,managerMinimized$:this._minimized$,managerReadonly$:this._readonly$,collectorRect$:this.collector._rect$,defaultBoxBodyStyle$:this._defaultBoxBodyStyle$,defaultBoxStageStyle$:this._defaultBoxStageStyle$}));return s.focus&&(this.focusBox(s),i&&this.makeBoxTop(s)),this.boxes$.setValue([...this.boxes,s]),this._sideEffect.addDisposer([s._delegateEvents.on($e.Maximize,()=>{this.setMaximized(!this.maximized)}),s._delegateEvents.on($e.Minimize,()=>{this.setMinimized(!0)}),s._delegateEvents.on($e.Close,()=>{this.remove(s),this.focusTopBox()}),s._intrinsicCoord$.reaction((r,a)=>{a||this.events.emit(de.IntrinsicMove,s)}),s._intrinsicSize$.reaction((r,a)=>{a||this.events.emit(de.IntrinsicResize,s)}),s._zIndex$.reaction((r,a)=>{if(this.boxes.length>0){const n=this.boxes.reduce((o,c)=>o.zIndex>c.zIndex?o:c);this.topBox$.setValue(n)}a||this.events.emit(de.ZIndex,s)})]),this.events.emit(de.Created,s),s}query(e){return e?this.boxes.filter(this.teleBoxMatcher(e)):[...this.boxes]}queryOne(e){return e?this.boxes.find(this.teleBoxMatcher(e)):this.boxes[0]}update(e,i,s=!1){const r=this.boxes.find(a=>a.id===e);if(r)return this.updateBox(r,i,s)}updateAll(e,i=!1){this.boxes.forEach(s=>{this.updateBox(s,e,i)})}remove(e,i=!1){const s=this.getBoxIndex(e);if(s>=0){const r=this.boxes.slice(),a=r.splice(s,1);return this.boxes$.setValue(r),a.forEach(n=>n.destroy()),i||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(de.Removed,a)),a[0]}}removeTopBox(){if(this.topBox)return this.remove(this.topBox)}removeAll(e=!1){const i=this.boxes$.value;return this.boxes$.setValue([]),i.forEach(s=>s.destroy()),e||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(de.Removed,i)),i}mount(e){this._root$.setValue(e)}unmount(){this._root$.setValue(null)}destroy(e=!1){this.events.clearListeners(),this._sideEffect.flushAll(),this.removeAll(e),this.collector.destroy(),this.titleBar.destroy()}wrapClassName(e){return`${this.namespace}-${e}`}focusBox(e,i=!1){const s=this.getBox(e);s&&(this.boxes.forEach(r=>{if(s===r){let a=!1;s.focus||(a=!0,s._focus$.setValue(!0,i)),a&&!i&&this.events.emit(de.Focused,s)}else r.focus&&this.blurBox(r,i)}),this.titleBar.focusBox(s))}focusTopBox(){if(this.topBox&&!this.topBox.focus)return this.focusBox(this.topBox)}blurBox(e,i=!1){const s=this.getBox(e);s&&(s.focus&&(s._focus$.setValue(!1,i),i||this.events.emit(de.Blurred,s)),this.titleBar.focusedBox===s&&this.titleBar.focusBox())}blurAll(e=!1){this.boxes.forEach(i=>{i.focus&&(i._focus$.setValue(!1,e),e||this.events.emit(de.Blurred,i))}),this.titleBar.focusedBox&&this.titleBar.focusBox()}teleBoxMatcher(e){const i=Object.keys(e);return s=>i.every(r=>e[r]===s[r])}updateBox(e,i,s=!1){var r,a,n,o,c,l;(i.x!=null||i.y!=null)&&e._intrinsicCoord$.setValue({x:(r=i.x)!=null?r:e.intrinsicX,y:(a=i.y)!=null?a:e.intrinsicY},s),(i.width!=null||i.height!=null)&&e._intrinsicSize$.setValue({width:(n=i.width)!=null?n:e.intrinsicWidth,height:(o=i.height)!=null?o:e.intrinsicHeight},s),i.title!=null&&e._title$.setValue(i.title),i.visible!=null&&e._visible$.setValue(i.visible,s),i.resizable!=null&&e._resizable$.setValue(i.resizable,s),i.draggable!=null&&e._draggable$.setValue(i.draggable,s),i.boxRatio!=null&&e._boxRatio$.setValue(i.boxRatio,s),i.zIndex!=null&&e._zIndex$.setValue(i.zIndex,s),i.stageRatio!==void 0&&e.setStageRatio(i.stageRatio,s),i.content!=null&&e.mountContent(i.content),i.footer!=null&&e.mountFooter(i.footer),(i.minHeight!=null||i.minWidth!=null)&&e._minSize$.setValue({width:(c=i.minWidth)!=null?c:e.minWidth,height:(l=i.minHeight)!=null?l:e.minHeight},s)}smartPosition(e){let{x:i,y:s}=e;const{width:r=.5,height:a=.5}=e,n=this.stageRect,o=this.topBox;if(i==null){let c=20;if(o){const l=o.pxIntrinsicCoord.x+20,d=r*n.width;l+d<=n.width&&(c=l)}i=c/n.width}if(s==null){let c=20;if(o){const l=o.pxIntrinsicCoord.y+20,d=a*n.height;l+d<=n.height&&(c=l)}s=c/n.height}return{x:i,y:s,width:r,height:a}}makeBoxTop(e,i=!1){this.topBox&&e!==this.topBox&&e._zIndex$.setValue(this.topBox.zIndex+1,i)}getBoxIndex(e){return typeof e=="string"?this.boxes.findIndex(i=>i.id===e):this.boxes.findIndex(i=>i===e)}getBox(e){return typeof e=="string"?this.boxes.find(i=>i.id===e):e}}const hc=(t,e,i,s,r)=>new dc({safeSetAttributes:a=>t.safeSetAttributes(a),updateAppState:(...a)=>{var n;return(n=t.appManager)==null?void 0:n.store.updateAppState(...a)},canOperate:()=>t.canOperate,notifyContainerRectUpdate:a=>{var n;return(n=t.appManager)==null?void 0:n.notifyContainerRectUpdate(a)},cleanFocus:()=>{var a;return(a=t.appManager)==null?void 0:a.store.cleanFocus()},setAppFocus:a=>{var n;return(n=t.appManager)==null?void 0:n.store.setAppFocus(a,!0)},callbacks:e,emitter:i,boxEmitter:s},r);class dc{constructor(e,i){this.context=e,this.sideEffectManager=new ve.SideEffectManager;const{emitter:s,callbacks:r,boxEmitter:a}=e;this.teleBoxManager=this.setupBoxManager(i),this.sideEffectManager.add(()=>[this.teleBoxManager.onValChanged("state",n=>{r.emit("boxStateChange",n),s.emit("boxStateChange",n)}),this.teleBoxManager.onValChanged("darkMode",n=>{r.emit("darkModeChange",n)}),this.teleBoxManager.onValChanged("prefersColorScheme",n=>{r.emit("prefersColorSchemeChange",n)}),this.teleBoxManager.onValChanged("minimized",(n,o)=>{if(!o)if(this.context.safeSetAttributes({minimized:n}),n)this.context.cleanFocus(),this.blurAllBox();else{const c=this.getTopBox();c&&(this.context.setAppFocus(c.id),this.focusBox({appId:c.id},!1))}}),this.teleBoxManager.onValChanged("maximized",(n,o)=>{o||this.context.safeSetAttributes({maximized:n})}),this.teleBoxManager.events.on("removed",n=>{n.forEach(o=>{a.emit("close",{appId:o.id})})}),this.teleBoxManager.events.on("intrinsic_move",v.debounce(n=>{a.emit("move",{appId:n.id,x:n.intrinsicX,y:n.intrinsicY})},50)),this.teleBoxManager.events.on("intrinsic_resize",v.debounce(n=>{a.emit("resize",{appId:n.id,width:n.intrinsicWidth,height:n.intrinsicHeight})},200)),this.teleBoxManager.events.on("focused",n=>{n&&(this.canOperate?a.emit("focus",{appId:n.id}):this.teleBoxManager.blurBox(n.id))}),this.teleBoxManager.events.on("z_index",n=>{this.context.updateAppState(n.id,Ne.ZIndex,n.zIndex)}),s.on("containerSizeRatioUpdate",n=>{this.teleBoxManager._stageRatio$.setValue(n)}),this.teleBoxManager._fullscreen$.reaction(n=>{r.emit("fullscreenChange",n)})])}get canOperate(){return this.context.canOperate()}get boxState(){return this.teleBoxManager.state}get maximized(){return this.teleBoxManager.maximized}get minimized(){return this.teleBoxManager.minimized}get darkMode(){return this.teleBoxManager.darkMode}get prefersColorScheme(){return this.teleBoxManager.prefersColorScheme}get boxSize(){return this.teleBoxManager.boxes.length}get stageRect(){return this.teleBoxManager.stageRect}get stageRect$(){return this.teleBoxManager._stageRect$}createBox(e){var u,p,m;if(!this.teleBoxManager)return;let{minwidth:i=yo,minheight:s=wo,enableShadowDOM:r=!0}=(u=e.app.config)!=null?u:{};const{width:a,height:n}=(p=e.app.config)!=null?p:{},o=((m=e.options)==null?void 0:m.title)||e.appId,c=this.teleBoxManager.rootRect;i>1&&(i=i/c.width),s>1&&(s=s/c.height);const l={title:o,minWidth:i,minHeight:s,width:a,height:n,id:e.appId,enableShadowDOM:r},d=this.teleBoxManager.create(l,e.smartPosition);return this.context.emitter.emit(`${e.appId}${Q.WindowCreated}`),d}setupBoxManager(e){const i=ue.playground,s={stageRatio:e==null?void 0:e.stageRatio,root:i,fence:!1,prefersColorScheme:e==null?void 0:e.prefersColorScheme};e!=null&&e.containerStyle&&(s.containerStyle=e.containerStyle),e!=null&&e.stageStyle&&(s.stageStyle=e.stageStyle),e!=null&&e.fullscreen&&(s.fullscreen=e.fullscreen),(e==null?void 0:e.defaultBoxBodyStyle)!==void 0&&(s.defaultBoxBodyStyle=e.defaultBoxBodyStyle),(e==null?void 0:e.defaultBoxStageStyle)!==void 0&&(s.defaultBoxStageStyle=e.defaultBoxStageStyle),e!=null&&e.theme&&(s.theme=e.theme);const r=new cc(s);this.teleBoxManager&&this.teleBoxManager.destroy(),this.teleBoxManager=r;const a=e==null?void 0:e.collectorContainer;return a&&this.teleBoxManager.collector.set$collector(a),e!=null&&e.collectorStyles&&this.teleBoxManager.collector.setStyles(e.collectorStyles),r}getBox(e){return this.teleBoxManager.queryOne({id:e})}closeBox(e,i=!1){return this.teleBoxManager.remove(e,i)}boxIsFocus(e){const i=this.getBox(e);return i==null?void 0:i.focus}getFocusBox(){return this.teleBoxManager.query({focus:!0})[0]}getTopBox(){return this.teleBoxManager.topBox}updateBoxState(e){if(!e)return;const i=this.getBox(e.id);i&&(e.size&&i._intrinsicSize$.setValue(e.size,!0),e.position&&i._intrinsicCoord$.setValue(e.position,!0),e.zIndex&&i._zIndex$.setValue(e.zIndex,!0),setTimeout(()=>{e.focus&&this.teleBoxManager.focusBox(i.id,!0),e.maximized!=null&&this.teleBoxManager.setMaximized(Boolean(e.maximized),!0),e.minimized!=null&&this.teleBoxManager.setMinimized(Boolean(e.minimized),!0)},50),this.context.callbacks.emit("boxStateChange",this.teleBoxManager.state))}moveBox({appId:e,x:i,y:s}){const r=this.getBox(e);r&&r._intrinsicCoord$.setValue({x:i,y:s},!0)}focusBox({appId:e},i=!0){this.teleBoxManager.focusBox(e,i)}resizeBox({appId:e,width:i,height:s,skipUpdate:r}){const a=this.getBox(e);a&&a._intrinsicSize$.setValue({width:i,height:s},r)}setBoxMinSize(e){this.teleBoxManager.update(e.appId,{minWidth:e.minWidth,minHeight:e.minHeight},!0)}setBoxTitle(e){this.teleBoxManager.update(e.appId,{title:e.title},!0)}blurAllBox(){this.teleBoxManager.blurAll()}updateAll(e){this.teleBoxManager.updateAll(e)}setMaximized(e,i=!0){e!==this.maximized&&this.teleBoxManager.setMaximized(e,i)}setMinimized(e,i=!0){this.teleBoxManager.setMinimized(e,i)}focusTopBox(){if(this.teleBoxManager.query().length>=1){const i=this.getTopBox();i&&this.focusBox({appId:i.id},!1)}}updateBox(e,i,s=!0){this.teleBoxManager.update(e,i,s)}setReadonly(e){this.teleBoxManager.setReadonly(e)}setPrefersColorScheme(e){this.teleBoxManager.setPrefersColorScheme(e)}setZIndex(e,i,s=!0){this.teleBoxManager.update(e,{zIndex:i},s)}setRoot(e){this.teleBoxManager._root$.setValue(e)}setCollector(e){this.teleBoxManager.collector.set$collector(e)}destroy(){this.sideEffectManager.flushAll(),this.teleBoxManager.destroy()}}function fi(){}function ga(t){return t()}function ma(){return Object.create(null)}function bi(t){t.forEach(ga)}function uc(t){return typeof t=="function"}function pc(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let yi;function wi(t,e){return yi||(yi=document.createElement("a")),yi.href=e,t===yi.href}function gc(t){return Object.keys(t).length===0}function Fe(t,e){t.appendChild(e)}function vi(t,e,i){t.insertBefore(e,i||null)}function Ot(t){t.parentNode.removeChild(t)}function Ke(t){return document.createElement(t)}function Ms(t){return document.createTextNode(t)}function Ss(){return Ms(" ")}function re(t,e,i){i==null?t.removeAttribute(e):t.getAttribute(e)!==i&&t.setAttribute(e,i)}function mc(t){return Array.from(t.childNodes)}function fa(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function le(t,e,i,s){i===null?t.style.removeProperty(e):t.style.setProperty(e,i,s?"important":"")}let Cs;function Ut(t){Cs=t}const Ht=[],ba=[],xi=[],ya=[],fc=Promise.resolve();let Is=!1;function bc(){Is||(Is=!0,fc.then(wa))}function _s(t){xi.push(t)}const As=new Set;let Mi=0;function wa(){const t=Cs;do{for(;Mi<Ht.length;){const e=Ht[Mi];Mi++,Ut(e),yc(e.$$)}for(Ut(null),Ht.length=0,Mi=0;ba.length;)ba.pop()();for(let e=0;e<xi.length;e+=1){const i=xi[e];As.has(i)||(As.add(i),i())}xi.length=0}while(Ht.length);for(;ya.length;)ya.pop()();Is=!1,As.clear(),Ut(t)}function yc(t){if(t.fragment!==null){t.update(),bi(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(_s)}}const wc=new Set;function vc(t,e){t&&t.i&&(wc.delete(t),t.i(e))}function xc(t,e,i,s){const{fragment:r,on_mount:a,on_destroy:n,after_update:o}=t.$$;r&&r.m(e,i),s||_s(()=>{const c=a.map(ga).filter(uc);n?n.push(...c):bi(c),t.$$.on_mount=[]}),o.forEach(_s)}function Mc(t,e){const i=t.$$;i.fragment!==null&&(bi(i.on_destroy),i.fragment&&i.fragment.d(e),i.on_destroy=i.fragment=null,i.ctx=[])}function Sc(t,e){t.$$.dirty[0]===-1&&(Ht.push(t),bc(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Cc(t,e,i,s,r,a,n,o=[-1]){const c=Cs;Ut(t);const l=t.$$={fragment:null,ctx:null,props:a,update:fi,not_equal:r,bound:ma(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(c?c.$$.context:[])),callbacks:ma(),dirty:o,skip_bound:!1,root:e.target||c.$$.root};n&&n(l.root);let d=!1;if(l.ctx=i?i(t,e.props||{},(u,p,...m)=>{const g=m.length?m[0]:p;return l.ctx&&r(l.ctx[u],l.ctx[u]=g)&&(!l.skip_bound&&l.bound[u]&&l.bound[u](g),d&&Sc(t,u)),p}):[],l.update(),d=!0,bi(l.before_update),l.fragment=s?s(l.ctx):!1,e.target){if(e.hydrate){const u=mc(e.target);l.fragment&&l.fragment.l(u),u.forEach(Ot)}else l.fragment&&l.fragment.c();e.intro&&vc(t.$$.fragment),xc(t,e.target,e.anchor,e.customElement),wa()}Ut(c)}class Ic{$destroy(){Mc(this,1),this.$destroy=fi}$on(e,i){const s=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return s.push(i),()=>{const r=s.indexOf(i);r!==-1&&s.splice(r,1)}}$set(e){this.$$set&&!gc(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function va(t){let e,i,s,r,a,n,o=t[14]&&xa(t),c=t[15]&&Ma(t);return{c(){e=Ke("div"),i=Ke("div"),o&&o.c(),s=Ss(),r=Ke("span"),a=Ms(t[0]),n=Ss(),c&&c.c(),le(r,"overflow","hidden"),le(r,"white-space","nowrap"),le(r,"text-overflow","ellipsis"),le(r,"max-width","80px"),re(i,"class",t[8]),le(i,"background-color",t[2]),le(i,"color",t[9]),le(i,"opacity",t[11]),re(e,"class","netless-window-manager-cursor-name")},m(l,d){vi(l,e,d),Fe(e,i),o&&o.m(i,null),Fe(i,s),Fe(i,r),Fe(r,a),Fe(i,n),c&&c.m(i,null)},p(l,d){l[14]?o?o.p(l,d):(o=xa(l),o.c(),o.m(i,s)):o&&(o.d(1),o=null),d&1&&fa(a,l[0]),l[15]?c?c.p(l,d):(c=Ma(l),c.c(),c.m(i,null)):c&&(c.d(1),c=null),d&256&&re(i,"class",l[8]),d&4&&le(i,"background-color",l[2]),d&512&&le(i,"color",l[9]),d&2048&&le(i,"opacity",l[11])},d(l){l&&Ot(e),o&&o.d(),c&&c.d()}}}function xa(t){let e,i;return{c(){e=Ke("img"),re(e,"class","netless-window-manager-cursor-selector-avatar"),re(e,"style",t[16]()),wi(e.src,i=t[7])||re(e,"src",i),re(e,"alt","avatar")},m(s,r){vi(s,e,r)},p(s,r){r&128&&!wi(e.src,i=s[7])&&re(e,"src",i)},d(s){s&&Ot(e)}}}function Ma(t){let e,i;return{c(){e=Ke("span"),i=Ms(t[1]),re(e,"class","netless-window-manager-cursor-tag-name"),le(e,"background-color",t[10])},m(s,r){vi(s,e,r),Fe(e,i)},p(s,r){r&2&&fa(i,s[1]),r&1024&&le(e,"background-color",s[10])},d(s){s&&Ot(e)}}}function _c(t){let e,i,s,r,a,n,o=!t[12]&&va(t);return{c(){e=Ke("div"),o&&o.c(),i=Ss(),s=Ke("div"),r=Ke("img"),re(r,"class",a="netless-window-manager-cursor-"+t[3]+"-image"),wi(r.src,n=t[6])||re(r,"src",n),re(r,"alt",t[3]),re(s,"class","cursor-image-wrapper"),re(e,"class","netless-window-manager-cursor-mid"),le(e,"transform","translateX("+t[4]+"px) translateY("+t[5]+"px)"),le(e,"display",t[13])},m(c,l){vi(c,e,l),o&&o.m(e,null),Fe(e,i),Fe(e,s),Fe(s,r)},p(c,[l]){c[12]?o&&(o.d(1),o=null):o?o.p(c,l):(o=va(c),o.c(),o.m(e,i)),l&8&&a!==(a="netless-window-manager-cursor-"+c[3]+"-image")&&re(r,"class",a),l&64&&!wi(r.src,n=c[6])&&re(r,"src",n),l&8&&re(r,"alt",c[3]),l&48&&le(e,"transform","translateX("+c[4]+"px) translateY("+c[5]+"px)"),l&8192&&le(e,"display",c[13])},i:fi,o:fi,d(c){c&&Ot(e),o&&o.d()}}}function Ac(t,e,i){let s,r,a,n,o,{cursorName:c}=e,{tagName:l}=e,{backgroundColor:d}=e,{appliance:u}=e,{x:p}=e,{y:m}=e,{src:g}=e,{visible:f}=e,{avatar:b}=e,{theme:x}=e,{color:M}=e,{cursorTagBackgroundColor:y}=e,{opacity:k}=e;const D=()=>Object.entries({width:(s?19:28)+"px",height:(s?19:28)+"px",position:s?"initial":"absolute","border-color":s?"white":d,"margin-right":(s?4:0)+"px"}).map(([T,U])=>`${T}: ${U}`).join(";");return t.$$set=T=>{"cursorName"in T&&i(0,c=T.cursorName),"tagName"in T&&i(1,l=T.tagName),"backgroundColor"in T&&i(2,d=T.backgroundColor),"appliance"in T&&i(3,u=T.appliance),"x"in T&&i(4,p=T.x),"y"in T&&i(5,m=T.y),"src"in T&&i(6,g=T.src),"visible"in T&&i(17,f=T.visible),"avatar"in T&&i(7,b=T.avatar),"theme"in T&&i(8,x=T.theme),"color"in T&&i(9,M=T.color),"cursorTagBackgroundColor"in T&&i(10,y=T.cursorTagBackgroundColor),"opacity"in T&&i(11,k=T.opacity)},t.$$.update=()=>{t.$$.dirty&1&&(s=!v.isEmpty(c)),t.$$.dirty&2&&i(15,r=!v.isEmpty(l)),t.$$.dirty&128&&i(14,a=!v.isEmpty(b)),t.$$.dirty&131072&&i(13,n=f?"initial":"none"),t.$$.dirty&8&&i(12,o=u===S.ApplianceNames.laserPointer)},[c,l,d,u,p,m,g,b,x,M,y,k,o,n,a,r,D,f]}class kc extends Ic{constructor(e){super();Cc(this,e,Ac,_c,pc,{cursorName:0,tagName:1,backgroundColor:2,appliance:3,x:4,y:5,src:6,visible:17,avatar:7,theme:8,color:9,cursorTagBackgroundColor:10,opacity:11})}}class Tc{constructor(e,i,s,r){this.manager=e,this.memberId=i,this.cursorManager=s,this.wrapper=r,this.move=a=>{var n,o;if(a.type==="main"){const c=(n=this.manager.boxManager)==null?void 0:n.stageRect;this.component&&c&&(this.autoHidden(),this.moveCursor(a,c,this.manager.mainView))}else{const c=this.cursorManager.focusView,l=(o=c==null?void 0:c.divElement)==null?void 0:o.getBoundingClientRect(),d=c==null?void 0:c.camera;c&&l&&d&&this.component&&(this.autoHidden(),this.moveCursor(a,l,c))}},this.leave=()=>{this.hide()},this.updateMember(),this.createCursor(),this.autoHidden()}moveCursor(e,i,s){var c,l;const{x:r,y:a,type:n}=e,o=s==null?void 0:s.screen.convertPointToScreen(r,a);if(o){let d=o.x-2,u=o.y-18;if(n==="app"){const p=this.cursorManager.playgroundRect;p&&(d=d+i.x-p.x,u=u+i.y-p.y)}else d=d+i.x,u=u+i.y;o.x<0||o.x>i.width||o.y<0||o.y>i.height?(c=this.component)==null||c.$set({visible:!1,x:d,y:u}):(l=this.component)==null||l.$set({visible:!0,x:d,y:u})}}get memberApplianceName(){var e,i;return(i=(e=this.member)==null?void 0:e.memberState)==null?void 0:i.currentApplianceName}get memberColor(){var i,s;return`rgb(${(s=(i=this.member)==null?void 0:i.memberState)==null?void 0:s.strokeColor.join(",")})`}get payload(){var e;return(e=this.member)==null?void 0:e.payload}get memberCursorName(){var e,i;return((e=this.payload)==null?void 0:e.nickName)||((i=this.payload)==null?void 0:i.cursorName)||this.memberId}get memberTheme(){var e;return(e=this.payload)!=null&&e.theme?"netless-window-manager-cursor-inner-mellow":"netless-window-manager-cursor-inner"}get memberCursorTextColor(){var e;return((e=this.payload)==null?void 0:e.cursorTextColor)||"#FFFFFF"}get memberCursorTagBackgroundColor(){var e;return((e=this.payload)==null?void 0:e.cursorTagBackgroundColor)||this.memberColor}get memberAvatar(){var e;return(e=this.payload)==null?void 0:e.avatar}get memberOpacity(){return!this.memberCursorName&&!this.memberAvatar?0:1}get memberTagName(){var e;return(e=this.payload)==null?void 0:e.cursorTagName}autoHidden(){this.timer&&clearTimeout(this.timer),this.timer=window.setTimeout(()=>{this.hide()},1e3*10)}async createCursor(){this.member&&this.wrapper&&(this.component=new kc({target:this.wrapper,props:this.initProps()}))}initProps(){return{x:0,y:0,appliance:this.memberApplianceName,avatar:this.memberAvatar,src:this.getIcon(),visible:!1,backgroundColor:this.memberColor,cursorName:this.memberCursorName,theme:this.memberTheme,color:this.memberCursorTextColor,cursorTagBackgroundColor:this.memberCursorTagBackgroundColor,opacity:this.memberOpacity,tagName:this.memberTagName}}getIcon(){if(this.member){const e=this.cursorManager.applianceIcons;return e[this.memberApplianceName||S.ApplianceNames.shape]||e[S.ApplianceNames.shape]}}updateMember(){return this.member=Br(this.manager.room,this.memberId),this.updateComponent(),this.member}updateComponent(){var e;(e=this.component)==null||e.$set(v.omit(this.initProps(),["x","y"]))}destroy(){this.component&&this.component.$destroy(),this.cursorManager.cursorInstances.delete(this.memberId),this.timer&&clearTimeout(this.timer)}hide(){this.component&&(this.component.$set({visible:!1}),this.destroy())}}var Nc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAYISURBVHgB7ZpNSCtXFIBPEuvz+dMGpYUKD/sWFX+Qti6kK7Hqpm6e9q0rIoIUFUShPLV10VZx4+JZqa9v20LBhdq9fyBUCtKNPH8qYl2IOw3G38Rkek4y15y5uTOZJDOWggcOSSYzN/ebc+45554JwIM8iBCPyTEP+86T4vyMfsRN4b+nQTKIJp0vzuGvlpID7os8EQNEIBD4oKio6Bm9DwaDv/v9/n/076JgbtWUYPchwrW8qD7UnOvr6wFNkpubm+/wu7f0c7y6mrnlvQufxB0Iau7V1dX3BDA/P6/V1dVpzc3N2uLiIofK1c8VYHys/wRKBUN3/hGHqaysNOjc3FwMis6hc0FtLTHuvYLxCCZgci8uLn4wg5Gh6Fy8Jk+/NkcCAlAAuUkoW4g0B+d5tLS05O/r67O8eGxsDNra2uDy8nKsoKCAwCIQDxQa0yTxgrvCYXyTk5Ml+Orf2dlJeeHIyAigFSE/P38ELfUNqNdSkjgF5FF89jL1TU1NlQwODl5gZPujp6cHWltbUw7Koc7Pz8mkZpHPFeFrJuZeqLnoMoPoZqe0JjDP/IZgnyLUG/o8NDRkuo5Ua2pjY6MC4oFCFf1cA0oKzRSOp6enRfTaGh0d/QxBt+1CUVgnOTs7+xrHfQzGyOcKkK3QTJMnQffZ6e/v/xwttmsHqqmpKXbdycnJCxy7ABLh3FEgVZ6hZJhnFZoFFMF0d3c/w7v+dyookXBnZ2c/xvHfhriVcvXfdBRItsxjnOhYqjwjoAimq6vrCysoGofk+Ph4Esd/F/UdiFtJAGUd2DygTpp5dmBUUJ2dnc9VUALm8PDwJY7/BPU9VD8k3M4RC6kskxZMKigKIMLN9vf3p3H8DyWgfEhEOwOQD9IXOTz7EObbwsLC4YWFBRgeHrY9ECXYo6MjaGlpKWlsbPxkYGDgRW1tbSEWquVlZWXBzc3Nl1VVVa8hXiXc6ioqBqGaPDk7AACJTRZ3NS9lcUp86cJwoSQ7Pj4Op6enfxUXF3/V0NCQv7q6GsCvwrqGUG/01xAD4+VQTOxaSF43d5bBOisrGBJRCtXX17+/trb268rKSgASFgmz97KFkmo6OztWuVyPweiWGc4WRkhFRQVEIpHg8vJyQAIQVlLBROVxvBYQHsXnO8tk62ZcyN0wecLBwcEvYHSzEPscBqOLCRhLC4n9uqaA8UAWAcAKhtbQ3t7eTHl5+Y9gtAp3twhT056CDMQ7MRzIFTeTYKb1yYYVQFH9VdzsqNmYKpfTJBDX3Ixgdnd3XyHMT2AMALJlBBSPaMpNngrIsTyTCgaj288YDGakictrxizvKFNOjgSSBLS+vv6UYHDb7DgMVgsChjTEgCIKGG4ZU+EWkgNBzN1qamq+pAMTExPgFMzW1tZrhHkFyWE5KxgSszx0527RaDRmOSpRshEOU11dPQPG8CwHARHJlMnTSrwSRFIlfXt7m3V5ngJGuJtqzaQtZkFBVNJezN5ZAdmwjKo2k9tVtrcI3OXk4tPgcg7ChCDZ1URgMOu72Xa5VFHOkymQhWVU60YVmjN6wiC7k6p+S1syCACOwJBYFaexV+yhBekNPsMBO6KAEeE4BMaCU67RsoYhSbXgaT//ht709vZCaWmp6YkEbLFmVJWzas04+iBL7EKpm0J7duqu0B7+CTUpNJuyvb1NCfMj1CqI9wLKUOlOUMeG+gGFkHii4HizUF4z/KFUrPsJ8WbEIyx7nnZ0dDynME6BAuce09iFHo+GrnmGltltb2//E4wVAN82y7vOjKOZXSBhJdHNiT3TYWD8OY2PTUJkdd7MkJMnT5wZVQF2RFX6yBMUdzPMvvfqxz3sXHF+GNT9ANXit/10O1sgHkZvdQAOKvs9B5L7ARELGAAXLSTvM8QExTE+YbHe+HURhZp1aRyF4CJXClbbWwGketgkW9VsY+YaiBCVhfgE+XvxRwgZSM4jUVCDZFQ9pytmXR8hUTB2gnidx4XffVWydN0yQjwmx/jkAZJBrIBI5J7ZvQGZWUgVSuU/EqmOAzicKNMVu816DdRWUV1/7xAP8n+SfwF3Du3NF2sYhwAAAABJRU5ErkJggg==",Pc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAxCAYAAABznEEcAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAZoSURBVHgB7VlLSCRXFL3ljNEhEXTGhMQJmOjCz8ZNVLKICz9xIYhCNi7UgINkGEk2En8hW5cBUQNxo05GAoKikuCAmvGzGMdPcCUGjDPxD/4Vv/3JvWW97luvq7ur+hMZ8MKlqrteNfe8e965970GuLVbC5kpJr53+hjHx9yY3TUxJgLMAQG4ITARfp5T4Mri4uL9q6urnxwOxz/oY5eXl1/Pzs7e195X2FX4jZsIhAK7gx5ps9m6nGj9/f3OtbU1pzAE0318fPwVjYHrrN7R3AjU/wpOBwA9Cmf/9ejoqDMtLU31iooKGdA+ATo4OMiXAEWAHhBAGEApXj4rPAik0vPt7e0vCgoKPH4gMzMTSktLIS8vD2JiYgABvcHMTZyennbHxsaOg3udOJmLzwqEYB0ZgRCZENm4u7e39yQuLq65srISZmZmvP5Ybm4u5OfnQ0lJyXWUCAgzNLS+vt6SnJz8WgvYwV5xSlcRgyVg3ha2Dkxzc3MvfZmVlQW+bGxsDBobGyE7O1u94uJPjIqKqklKSvrbbrfPnp+ff7e8vJwMnlSTKWfJjDKhywJo6wLp0YcZ+dyIUr7s4cOHLsrRlQwBTSBFuzc2NiZYhjjVAIyzZBqEwgCQv0OOM/gNzuiP/ijlDxBRjgClpqa6AF1cXDydmpoaLCws3JcAGYHyC4JMzoKaibKysvienp6FtrY2IA/WCFB5ebkqCHSvARo8Ozt7igIxwIJ2gJ+seFMnDoIyEUV+dHT0G3qWVUr5M043DdAB0m2IKZwAYpgZX+qkywR6NFbuR0iDxmAoZRUQKRxSLTMnJ8eIaqqSeVMnIYUOdu+sq6vrp4f+VCoYo8khZaNs01VRlERUu2/BrWAA7sl2Anink1Ao18JGjyY/PDx8hq1GZqgp5c2mp6chMjLy2b179x7hRzvoqeUUwXIzqq4O5nZsNUaEbIbLqPLTou/s7FTvT05OpsA9sXJG1AVsZDwjutqBIN6gUlWjxod8XRBNKXgsrqpqYZfwEqX9h8TExD7wbFm8LmzxHQ0QHSlXKZVSqFC/hkqlaKapTaGgCQTK7PHW1lb/wsLC86KiokkccoV+qV1tcE0pO7AWxmhTxBszDzqRr66ujqanp2cRpQLNBgUsCh8BwQ54bn5+/s+mpqa+4eHhfS1gb52vwuP0trPjhSZCBtLQ0NA3MDDQQIFYAUHBYhuvzjpVbJr1lZWVP3p7e19UVVXNgHumXYrI4uBx6Yqevz02b0FcRQ8CoBQF3dXVpQLZ3d39C7n+ora29vfJyclDYFnWgFyxK3cxhss/+KoT/N6DVkQpKypFGUCp3Ozo6HgSHx//GLW/BwHsg57zl5pzADajwLn52mPL1ZHPloMoRYPMFL6EhAR18e7s7MxVV1fPsAAp4Avteq7dC/c1+wKI4g+EfGzDM+EYHBw8RDrNiA2QL6upqVGvKJ2/gHu2L1nA5wwEB2YDfSYMO1x/px0cgEc2zBY+eo67u6H29vZ/wU2VC8l58JxKNjDOgojNEp08aFVfX++3l6JMEdDx8fEB0FNIBsDXBc8ArwuW1EkeI1RKdLWmCx+1DhkZGRvR0dFfSsHKxYtnW0iqvJAN9xNm6MR/QO5sfapUSkqKmqW5ubmfwVgyZdpw/vPZl2kUEAinBMSUStG+gwra0NDQSynQKyloIxnlewafjDFLJzLRBJqiFMnqyMgIbG5uDuD996Dnv8iAPOMAPmbcm5lVJwA/vZRMKZGZlpaWVtAvUL4GZMqE1fjRJrUd76LHoX+InlhcXPwZnWW2tra6jjrpiBM3UK/weQr6J+gfodMh9HtwncG7YLA3CMSsLmxx5WuDCt8B7vZeicInTjCWlpb6wc15mfey7oc9E8LElpVmMgb9AXoC+qcTExOPKRu4NlTHs6Q10GfhgfYOvRsJQZ76BWMKuDtaolQs+gfoH6Mn436gDg+e+5BKXUQx/C5Je/a+NpbeiQJPKgUdlNXx/BCBKxVdxW5Q0I3XBqFKRhU4KLtjYawi3csuTKdc4FnIXNvKUJkVEGRG20QZAAUpA5DbaYAQLmQzfzxyk/ffdnCD4NWVnGdE7kQBQvQHC5lVEDxgMaM29lkxGCNLKrDnIbFAMkFmBIaDkHstU41coGZ1TZD5UjReCGUAYbNgdNqoXZB/T67yYbFAMiGML3BhYeH8rb0t9h/zgcTBcTNGiQAAAABJRU5ErkJggg==",Ec="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAgrSURBVHgB7ZprTBRXFIDP7gIt8lQppTwE5V0KaAn6o1pqNGkDDTEmTUhsgKRp+gNJw68CFkLbVC2QkDS+gD8KJdWmARvbFBNNWpuIRGPFWBXQRMPDqIki+KLATs+ZnTvcvXtnX8w2beJJToaduTP3fHPOPffcOwC8kP+2WCDwIvahGFxTuN8KmNSZmULPNjLeqF9F8rdPkIEGEn+r+vjx46LQ0NA8/Dsader58+e/h4WFDWntFO7ot6fMFAt3JLWi2lCDpqamCux2+2+KROj82NhYGrXT2lu5Z/DP/deFByElA4Pv3LlTiHY/nJ6eVnbv3q1s2bJFyc7OVrZu3arU1dUp4+PjxPUQoT+g9tp9PkMFgpo9kxljHRoaWp2Xl3duYmIiurKyEvDoclNCQgIcPnxYPc7MzHwcGRnZhaft4Ag7O9fUbRhaITCie4lgcnNzT7qDIaHz27dvh+vXr0NEREQneqoCHKFnAR+8ZCaQGGq2CxcurCGYycnJZHcwTNAzUFFRoUJFRUV1IFQ5OKBsXB9uxSwgl0TQ3d29Yt26dccwoyVXV1d7hGEiQmGi2AzOUHx/hob4K2yuYS9G987s7OwPISEh7xPM6dOnwVfBsIMjR45AZmbmo5s3b76Xnp7+J55egMVxBSAZT0v1ED+76yn66dOnLQSzd+9ev2BIyFP0MjBco1JTU/sxfFeDazp3cYgZHmKqdoaGNISHh9fv378fSJcqlPV6e3sBJ+I/goOD34VFL0k95Y+HxPHCYGxmw5DQ2NuzZw8EBQVtunXr1jvgwUP+hhz/QDXMMCNVE8zx48dNg2FCz6QQjI2N/RA8VBFmANnu3btXihnpG8pM9fX1EAi5du0aeWkVOAMBCF7yN+R0z4yOjq6NiYlpp9CgdBtIwXpPH6vgDKWLt0CygtM6MDCwBuUYZSKaOCksAiVY9wFOBePgDOOytPAGSKzNVCCC2bBhw69YdK7ypgpYimzbtk2dl7CM+hFcveOUHDylbTFO1YdhFbByx44dA1QFUP0VSJj4+Hjo6+sDq9U6iEmHKvFZTedQ50GYbN15SITVlwNlZWUnLRZL8s6dOwMOQ9UCTtKTra2ttdppt9V2kMF5cbmsjxuM43bMNrmUzc6fP6+GQiDGDoOJi4ubwb4qm5ubafyIE6nLxGqTPEsGo1cBOGNX0TyDYafC0CyOaxcVziyh53Z2dkJycvLMvn37PmpoaBgFR4jxYSbWdVIgI89Iq4CjR48CZjlYv369+tssqI6ODsjPz4f+/v668vLycxrEHHfkYdwC8SB6mGEV8Cl64cuuri5oa2tTG+EyGjZu3AiXLl1qefDgwV8lJSUFZkDV1tZCcXExXLx4sbWoqKgPFj0zx8GI9ZwO5W4M6ekZYeqpaqbqmaSqqkpNpcPDw4dwzfM9nrLduHEjEs+X0XV/Sx96LnqE1kLtBQUF3eDwCO8dGQyzV5rl+JyuegfXI29jRotiRlKnpFghHMzKyjqotVXS0tLacKPjF3bdHxjSq1evduAkepAD+ZsDYlC8V5w8ZBVg+PPq2MGMlkInqE4joTf45MmT4YyMjAPcA+ltLSQlJX2BafxnX6HI29QeK44TOTk57mCYZ0QoJ8OBM4yB6dkNkwGlSygsLFQvYtYB3BTMxFL+M+0eFgZqp4mJiU2+QKGX1fGIk/QIrn0aYXGsyDxjmAyMhO2jhaCGoUbX1NSkLSwsPMJqV8Fspu6lIZS6OYhjiOLwdU7fQM1HfRPD7wS1obZ0j0xpb4726Z49ezaJf2/S7s9ATUGNR41BjdJseRnke3WGwhrRTS9pD1mOGoeG15BxOOfoxuCkp0Ih6NeaEaSZGlieJyiCoc1FgsGldokGk8nBvAKOrWIGQ5uPsm0tt0BWDiicAaGuGhkZ+YqMw9StGzU4OKhCnT179hNsswY1FTXdE5QEJhc1S3tGogazXLOBwQSBl3tzIhQPtAL1VQJCTcNx8y1vHIUghSKFZE9PT7H2dlM1b+Wgrr1y5Uq77J75+fnplpaWMg2ch4nlYEI5z7hdensDpI4hrYNErcMMXJ32koG4ztf3pultz83NjWG99Ra2WQ0OL2VjZjwgeufUqVOqV8+cOdPIwdBLSNJeHg8TAh5WqJ6EfSmgt7IMNRJ1JThiOlnrOAMHshprmMKdoGSCpb9s3B3SYLIFGIqICJB7xisYi+RvfiypXw40DWGdlJaWRmMd141hk8V2OWm7ieYTXhBc3+BgaZyqAISjOYxSMVvXsBTNlzdiNQDgRao2AtK3pjggpmrqbGpqSsLPIN/dv38/gaBwUjTshMHcvn27JyUlpRmc5xpPMD599LIYnLNyUKKndKjGxsakXbt2deMCLIE8IVvs0YRM1fjdu3d/wrXN5+BcnzEgvor2uN3rjzAYMp5lPEoQlE5fA0fWo8GfhlCbKVFQ1pKNIfzcOHH58mWqaimVUwJI0+6n59D4pIlzmdZPMPiZzXjDjX47Le5g0Uu8x2zgPqWyKpjVe7x3+AUbq9NYjQbgp2dsBud5o8TP7d5kHAWcQchQfoEmLgn8HjOiBIF7o5hI1x6CEbLNP3bdqYAF44JzyWLzcN1i8DcT/o3awbm8Fz3DAy2A62INwPV/E3wWdx5inmBHuwChCBD6R2JwHge80TIQRQLjt7e8DTkGZgfX8cUMZTDAteFDkveaIlzjX9ySQs8X18r2t2VHUURPKoICmDR+eCO9aSdmOIub3/w9RgpgUpiJhvraXpa6jZKHGEqyusw0GLFzX+5RhN/8kYnMSNMMfyH/V/kHST6OYVElTPAAAAAASUVORK5CYII=",zc="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+",Dc="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=",Lc="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4IiB2aWV3Qm94PSIwIDAgMjggMjgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU1LjEgKDc4MTM2KSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT7nvJbnu4QgMjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIgeD0iLTEyMC4wJSIgeT0iLTEyMC4wJSIgd2lkdGg9IjM0MC4wJSIgaGVpZ2h0PSIzNDAuMCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNCIgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Iue8lue7hC0yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5LjAwMDAwMCwgOS4wMDAwMDApIiBmaWxsPSIjRkYwMTAwIj4KICAgICAgICAgICAgPGNpcmNsZSBpZD0i5qSt5ZyG5b2iIiBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiBjeD0iNSIgY3k9IjUiIHI9IjUiPjwvY2lyY2xlPgogICAgICAgICAgICA8cGF0aCBkPSJNNSw4IEM2LjY1Njg1NDI1LDggOCw2LjY1Njg1NDI1IDgsNSBDOCwzLjM0MzE0NTc1IDYuNjU2ODU0MjUsMiA1LDIgQzMuMzQzMTQ1NzUsMiAyLDMuMzQzMTQ1NzUgMiw1IEMyLDYuNjU2ODU0MjUgMy4zNDMxNDU3NSw4IDUsOCBaIE01LDYuMjg1NzE0MjkgQzQuMjg5OTE5NjEsNi4yODU3MTQyOSAzLjcxNDI4NTcxLDUuNzEwMDgwMzkgMy43MTQyODU3MSw1IEMzLjcxNDI4NTcxLDQuMjg5OTE5NjEgNC4yODk5MTk2MSwzLjcxNDI4NTcxIDUsMy43MTQyODU3MSBDNS43MTAwODAzOSwzLjcxNDI4NTcxIDYuMjg1NzE0MjksNC4yODk5MTk2MSA2LjI4NTcxNDI5LDUgQzYuMjg1NzE0MjksNS43MTAwODAzOSA1LjcxMDA4MDM5LDYuMjg1NzE0MjkgNSw2LjI4NTcxNDI5IFoiIGlkPSLmpK3lnIblvaIiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+";const Sa={[S.ApplianceNames.pencil]:Nc,[S.ApplianceNames.selector]:Pc,[S.ApplianceNames.eraser]:Ec,[S.ApplianceNames.shape]:zc,[S.ApplianceNames.text]:Dc,[S.ApplianceNames.laserPointer]:Lc};class Vc{constructor(e,i,s){var a;this.manager=e,this.enableCursor=i,this.cursorInstances=new Map,this.sideEffectManager=new ve.SideEffectManager,this.store=this.manager.store,this.applianceIcons=Sa,this.onCursorMove=n=>{const o=this.initCursorInstance(n.uid);if(n.state===vr.Leave)o.leave();else{const c=o.updateMember();this.canMoveCursor(c)&&o.move(n.position)}},this.initCursorInstance=n=>{let o=this.cursorInstances.get(n);return o||(o=new Tc(this.manager,n,this,ue.playground),this.cursorInstances.set(n,o)),o},this.mouseMoveListener=v.throttle(n=>{n.pointerType==="touch"&&!n.isPrimary||this.updateCursor(this.getType(n),n.clientX,n.clientY)},48),this.getPoint=(n,o,c)=>{var d;const l=(d=n==null?void 0:n.divElement)==null?void 0:d.getBoundingClientRect();if(l)return n==null?void 0:n.convertToPointInWorld({x:o-l.x,y:c-l.y})},this.getType=n=>{var l;const o=n.target,c=this.manager.focusApp;switch(o.parentElement){case this.mainViewElement:return{type:"main"};case((l=c==null?void 0:c.view)==null?void 0:l.divElement):return{type:"app"};default:return{type:"main"}}},this.mouseLeaveListener=()=>{this.hideCursor(this.manager.uid)},this.roomMembers=(a=this.manager.room)==null?void 0:a.state.roomMembers;const r=ue.playground;r&&this.setupWrapper(r),this.sideEffectManager.add(()=>z.on("cursorMove",this.onCursorMove)),this.sideEffectManager.add(()=>z.on("playgroundSizeChange",()=>this.updateContainerRect())),s&&(this.applianceIcons=O(O({},Sa),s))}canMoveCursor(e){const i=(e==null?void 0:e.memberState.currentApplianceName)===S.ApplianceNames.laserPointer;return this.enableCursor||i}setupWrapper(e){this.sideEffectManager.add(()=>(e.addEventListener("pointerenter",this.mouseMoveListener),e.addEventListener("pointermove",this.mouseMoveListener),e.addEventListener("pointerleave",this.mouseLeaveListener),()=>{e.removeEventListener("pointerenter",this.mouseMoveListener),e.removeEventListener("pointermove",this.mouseMoveListener),e.removeEventListener("pointerleave",this.mouseLeaveListener)})),this.updateContainerRect()}setMainViewDivElement(e){this.mainViewElement=e}get boxState(){return this.store.getBoxState()}get focusView(){var e;return(e=this.manager.focusApp)==null?void 0:e.view}updateCursor(e,i,s){if(this.wrapperRect&&this.manager.canOperate){const r=e.type==="main"?this.manager.mainView:this.focusView,a=this.getPoint(r,i,s);a&&this.manager.dispatchInternalEvent(Q.CursorMove,{uid:this.manager.uid,position:{x:a.x,y:a.y,type:e.type}})}}updateContainerRect(){var e,i;this.wrapperRect=(e=this.manager.boxManager)==null?void 0:e.stageRect,this.playgroundRect=(i=ue.playground)==null?void 0:i.getBoundingClientRect()}deleteCursor(e){this.store.cleanCursor(e);const i=this.cursorInstances.get(e);i&&i.destroy()}hideCursor(e){const i=this.cursorInstances.get(e);i&&i.hide()}destroy(){this.sideEffectManager.flushAll(),this.cursorInstances.size&&(this.cursorInstances.forEach(e=>{e.destroy()}),this.cursorInstances.clear())}}class $c{constructor(e){this.manager=e,z.on("changePageState",()=>{G.emit("pageStateChange",this.toObject())})}get index(){var e;return((e=this.manager)==null?void 0:e.store.getMainViewSceneIndex())||0}get length(){var e;return((e=this.manager)==null?void 0:e.mainViewScenesLength)||0}toObject(){return{index:this.index>=this.length?this.length-1:this.index,length:this.length}}}class jc{constructor(e){this.ctx=e,this.reactors=new Map,this.disposers=new Map,this.onPhaseChanged=i=>{var s,r;i===S.RoomPhase.Reconnecting&&this.ctx.emitter.emit("startReconnect"),i===S.RoomPhase.Connected&&this.phase===S.RoomPhase.Reconnecting&&((s=this.room)!=null&&s.isWritable?(r=this.room)==null||r.dispatchMagixEvent(Qi,{}):this.onReconnected()),this.phase=i},this.onReconnected=v.debounce(()=>{this._onReconnected()},1e3),this._onReconnected=()=>{Xe("onReconnected refresh reactors"),this.releaseDisposers(),this.reactors.forEach((i,s)=>{v.isFunction(i)&&this.disposers.set(s,i())}),this.ctx.emitter.emit("onReconnected")}}setRoom(e){this.room=e,this.phase=e==null?void 0:e.phase,e&&(e.callbacks.off("onPhaseChanged",this.onPhaseChanged),e.callbacks.on("onPhaseChanged",this.onPhaseChanged),e.addMagixEventListener(Qi,i=>{i.authorId===e.observerId&&this.onReconnected()},{fireSelfEventAfterCommit:!0}))}setContext(e){this.ctx=e}releaseDisposers(){this.disposers.forEach(e=>{v.isFunction(e)&&e()}),this.disposers.clear()}refresh(){this._onReconnected()}add(e,i){const s=this.disposers.get(e);return s&&v.isFunction(s)&&s(),v.isFunction(i)&&(this.reactors.set(e,i),this.disposers.set(e,i())),()=>this.remove(e)}remove(e){this.reactors.has(e)&&this.reactors.delete(e);const i=this.disposers.get(e);i&&(v.isFunction(i)&&i(),this.disposers.delete(e))}hasReactor(e){return this.reactors.has(e)}destroy(){var e,i;(e=this.room)==null||e.callbacks.off("onPhaseChanged",this.onPhaseChanged),(i=this.room)==null||i.removeMagixEventListener(Qi,this.onReconnected),this.releaseDisposers()}}const Bc=(t,e)=>{if(S.isPlayer(t))Oc(t);else{if(t=t,Object.getOwnPropertyDescriptor(t,"disableCameraTransform"))return;Object.defineProperty(t,"disableCameraTransform",{get(){return e.mainView.disableCameraTransform},set(s){e.mainView.disableCameraTransform=s}}),Object.defineProperty(t,"canUndoSteps",{get(){return e.canUndoSteps}}),Object.defineProperty(t,"canRedoSteps",{get(){return e.canRedoSteps}}),t.moveCamera=s=>e.moveCamera(s),t.moveCameraToContain=(...s)=>e.moveCameraToContain(...s),t.convertToPointInWorld=(...s)=>e.mainView.convertToPointInWorld(...s),t.setCameraBound=(...s)=>e.mainView.setCameraBound(...s),t.scenePreview=(...s)=>e.mainView.scenePreview(...s),t.fillSceneSnapshot=(...s)=>e.mainView.fillSceneSnapshot(...s),t.generateScreenshot=(...s)=>e.mainView.generateScreenshot(...s),t.setMemberState=(...s)=>e.mainView.setMemberState(...s),t.redo=()=>e.redo(),t.undo=()=>e.undo(),t.cleanCurrentScene=()=>e.cleanCurrentScene(),t.delete=()=>e.delete(),t.copy=()=>e.copy(),t.paste=()=>e.paste(),t.duplicate=()=>e.duplicate(),t.insertImage=(...s)=>e.insertImage(...s),t.completeImageUpload=(...s)=>e.completeImageUpload(...s),t.insertText=(...s)=>e.insertText(...s),t.lockImage=(...s)=>e.lockImage(...s),t.lockImages=(...s)=>e.lockImages(...s),Rc(t,e),t.dynamicPpt.slideStateAdapter.pptHandler||(t.dynamicPpt.slideStateAdapter.pptHandler=e.createPPTHandler())}},Rc=(t,e)=>{const i=t.removeScenes;t.removeScenes=(s,r)=>{var n;s===xe&&((n=e.appManager)==null||n.updateRootDirRemoving(!0));const a=i.call(t,s);return z.emit("removeScenes",{scenePath:s,index:r}),a}},Oc=t=>{const e=t.seekToProgressTime;async function i(s){await z.emit("seekStart");const r=await e.call(t,s);return z.emit("seek",s),r}t.seekToProgressTime=i};var Uc=(()=>`.netless-app-docs-viewer-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;font-family:PingFang SC,Source Han Sans SC,Microsoft YaHei,Helvetica Neue,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif}.netless-app-docs-viewer-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-docs-viewer-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-docs-viewer-footer-btn:hover{background:transparent!important}}.netless-app-docs-viewer-footer-btn>svg{width:100%;height:100%}.netless-app-docs-viewer-footer-btn>svg:nth-of-type(2){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-docs-viewer-footer-btn.netless-app-docs-viewer-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-docs-viewer-footer-btn~.netless-app-docs-viewer-footer-btn{margin-left:15px}.netless-app-docs-viewer-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-docs-viewer-page-number{display:flex;align-items:center;height:26px;margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-docs-viewer-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 .5em 0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;font-family:PingFang SC,Source Han Sans SC,Microsoft YaHei,Helvetica Neue,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif;background:transparent;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-footer-btn:hover{background:transparent}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input{cursor:not-allowed}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:hover,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:focus,.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:active{background:transparent;box-shadow:none}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-page-number-input:disabled{color:inherit}.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:active,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:focus,.telebox-color-scheme-dark .netless-app-docs-viewer-page-number-input:hover{color:currentColor;background:#25282e}.telebox-color-scheme-dark .netless-app-docs-viewer-footer{border-top:none}.telebox-color-scheme-dark .netless-app-docs-viewer-footer-btn:hover{background:#212126}.netless-app-docs-viewer-preview.netless-app-docs-viewer-preview-active{transform:translate(0)}.netless-app-docs-viewer-content{position:relative;height:100%;overflow:hidden}.netless-app-docs-viewer-preview-mask{position:absolute;z-index:10200;top:0;left:0;width:100%;height:100%}.netless-app-docs-viewer-preview{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;position:absolute;z-index:10300;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-docs-viewer-preview-active .netless-app-docs-viewer-preview-mask{display:block}.netless-app-docs-viewer-preview-active .netless-app-docs-viewer-preview{transform:translate(0)}.netless-app-docs-viewer-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-docs-viewer-preview-page:hover,.netless-app-docs-viewer-preview-page.netless-app-docs-viewer-preview-page-active{border-color:#444e601a}.netless-app-docs-viewer-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-docs-viewer-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;user-select:none}.telebox-color-scheme-dark .netless-app-docs-viewer-preview{background:rgba(50,50,50,.9)}.netless-app-docs-viewer-static-scrollbar{box-sizing:border-box;position:absolute;top:0;right:0;z-index:2147483647;width:16px;min-height:30px;margin:0;padding:0 0 0 8px;border:none;outline:none;opacity:0;background:transparent;transition:opacity .4s 3s,transform .1s;user-select:none;touch-action:none}.netless-app-docs-viewer-static-scrollbar:after{content:"";display:block;width:8px;height:100%;border-radius:4px;background:rgba(68,78,96,.4);box-shadow:1px 1px 8px #ffffffb3;transition:background .4s}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrolling{opacity:1;transition:opacity .4s,transform .1s}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging{opacity:1;transition:opacity .4s 3s!important}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging:after{background:rgba(68,78,96,.6)}.netless-app-docs-viewer-static-scrollbar:hover:after,.netless-app-docs-viewer-static-scrollbar:focus:after{background:rgba(68,78,96,.5)}.netless-app-docs-viewer-static-scrollbar:active:after{background:rgba(68,78,96,.6)}.telebox-body-wrap:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:opacity .4s,transform .1s}.telebox-readonly .netless-app-docs-viewer-static-scrollbar{display:none}.page-renderer-pages-container{position:relative;width:100%;height:100%}.page-renderer-page{position:absolute;top:0;left:0;background-position:center;background-size:cover;background-repeat:no-repeat}.page-renderer-pages-container.is-hwa .page-renderer-page{will-change:transform}.page-renderer-page-img{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-pages{overflow:hidden;position:relative;height:100%;user-select:none}.netless-app-docs-viewer-static-page{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-dynamic-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden}.netless-app-docs-viewer-dynamic-wb-view .cursor-clicker .ppt-event-source{cursor:pointer}
|
124
|
+
`)();const Ca="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Hc=Ca.length,Ia=Array(20),Fc=()=>{for(let t=0;t<20;t++)Ia[t]=Ca.charAt(Math.random()*Hc);return Ia.join("")};function _a(t){try{return t()}catch(e){console.error(e)}}class gt{constructor(){this.disposers=new Map}addDisposer(e,i=this.genUID()){return this.flush(i),this.disposers.set(i,Array.isArray(e)?()=>e.forEach(_a):e),i}add(e,i=this.genUID()){const s=e();return s?this.addDisposer(s,i):i}addEventListener(e,i,s,r,a=this.genUID()){return e.addEventListener(i,s,r),this.addDisposer(()=>e.removeEventListener(i,s,r),a),a}setTimeout(e,i,s=this.genUID()){const r=window.setTimeout(()=>{this.remove(s),e()},i);return this.addDisposer(()=>window.clearTimeout(r),s)}setInterval(e,i,s=this.genUID()){const r=window.setInterval(e,i);return this.addDisposer(()=>window.clearInterval(r),s)}remove(e){const i=this.disposers.get(e);return this.disposers.delete(e),i}flush(e){const i=this.remove(e);if(i)try{i()}catch(s){console.error(s)}}flushAll(){this.disposers.forEach(_a),this.disposers.clear()}genUID(){let e;do e=Fc();while(this.disposers.has(e));return e}}var Wc=Object.defineProperty,Zc=Object.defineProperties,Yc=Object.getOwnPropertyDescriptors,Aa=Object.getOwnPropertySymbols,Qc=Object.prototype.hasOwnProperty,Gc=Object.prototype.propertyIsEnumerable,ks=(t,e,i)=>e in t?Wc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ka=(t,e)=>{for(var i in e||(e={}))Qc.call(e,i)&&ks(t,i,e[i]);if(Aa)for(var i of Aa(e))Gc.call(e,i)&&ks(t,i,e[i]);return t},Ta=(t,e)=>Zc(t,Yc(e)),et=(t,e,i)=>(ks(t,typeof e!="symbol"?e+"":e,i),i);class qc{constructor(e){et(this,"_subscribers"),et(this,"_bSub"),et(this,"_bSubDisposer"),this._bSub=e}get size(){return this._subscribers?this._subscribers.size:0}invoke(e,i){this._subscribers&&this._subscribers.forEach(s=>s(e,i))}add(e){this._bSub&&(!this._subscribers||this._subscribers.size<=0)&&(this._bSubDisposer=this._bSub()),this._subscribers||(this._subscribers=new Set),this._subscribers.add(e)}remove(e){if(this._subscribers&&this._subscribers.delete(e),this._subscribers&&this._subscribers.size<=0&&this._bSubDisposer){const i=this._bSubDisposer;this._bSubDisposer=null,i()}}clear(){if(this._subscribers&&this._subscribers.clear(),this._bSubDisposer){const e=this._bSubDisposer;this._bSubDisposer=null,e()}}destroy(){this.clear()}}class Ts{constructor(e,i){et(this,"_subscribers"),et(this,"_value"),this._value=e;let s;if(i&&(i.compare&&(this.compare=i.compare),i.beforeSubscribe)){const r=i.beforeSubscribe,a=this._setValue.bind(this);s=()=>r(a)}this._subscribers=new qc(s)}_setValue(e,i){this.compare(e,this._value)||(this._value=e,this._subscribers.invoke(e,i))}get value(){return this._value}reaction(e){return this._subscribers.add(e),()=>{this._subscribers.remove(e)}}subscribe(e,i){const s=this.reaction(e);return e(this._value,i),s}destroy(){this._subscribers.destroy()}unsubscribe(e){this._subscribers.remove(e)}get size(){return this._subscribers.size}compare(e,i){return e===i}}class We extends Ts{constructor(){super(...arguments);et(this,"setValue",this._setValue)}}class Jc extends Ts{constructor(e,i,s={}){super(i(e.value),Ta(ka({},s),{beforeSubscribe:r=>{const a=e.subscribe((n,o)=>r(i(n),o));if(s.beforeSubscribe){const n=s.beforeSubscribe(r);if(n)return()=>{a(),n()}}return a}}));et(this,"_srcValue"),this._srcValue=()=>i(e.value)}get value(){if(this.size<=0){const e=this._srcValue();return this.compare(e,this._value)?this._value:e}return this._value}}function Ft(t,e=s=>s,i={}){return new Jc(t,e,i)}class Xc extends Ts{constructor(e,i,s={}){super(i(Ns(e)),Ta(ka({},s),{beforeSubscribe:r=>{let a=Ns(e);r(i(a));const n=e.map((c,l)=>c.reaction((d,u)=>{a=a.slice(),a[l]=d,r(i(a),u)})),o=()=>n.forEach(c=>c());if(s.beforeSubscribe){const c=s.beforeSubscribe(r);if(c)return()=>{o(),c()}}return o}}));et(this,"_srcValue"),this._srcValue=()=>i(Ns(e))}get value(){if(this.size<=0){const e=this._srcValue();return this.compare(e,this._value)?this._value:e}return this._value}}function Ns(t){return t.map(Kc)}function Kc(t){return t.value}function Ee(t,e=s=>s,i={}){return new Xc(t,e,i)}function Na(t){t.onValChanged||(t.onValChanged=eh)}function eh(t,e){const i=this[`_${t}$`]||this[t];if(!(i!=null&&i.reaction))throw new TypeError(`"${t}" is not related to a Val in this instance`);return i.reaction(e)}function th(t,e,i){Object.keys(e).forEach(s=>{ih(t,s,e[s]),i&&i.attach(e[s])}),Na(t)}function ih(t,e,i){return Object.defineProperties(t,{[e]:{get(){return i.value}},[`_${e}$`]:{value:i}}),t}function sh(t,e,i){Object.keys(e).forEach(s=>{rh(t,s,e[s]),i&&i.attach(e[s])}),Na(t)}function rh(t,e,i){return Object.defineProperties(t,{[e]:{get(){return i.value},set(s){i.setValue(s)}},[`_${e}$`]:{value:i},[`set${ah(e)}`]:{value:(s,r)=>i.setValue(s,r)}}),t}function ah(t){return t[0].toUpperCase()+t.slice(1)}const tt=typeof window!="undefined",Pa=tt&&!("onscroll"in window)||typeof navigator!="undefined"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Ea=tt&&"IntersectionObserver"in window,za=tt&&"classList"in document.createElement("p"),Da=tt&&window.devicePixelRatio>1,nh={elements_selector:".lazy",container:Pa||tt?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},La=t=>Object.assign({},nh,t),Va=function(t,e){let i;const s="LazyLoad::Initialized",r=new t(e);try{i=new CustomEvent(s,{detail:{instance:r}})}catch{i=document.createEvent("CustomEvent"),i.initCustomEvent(s,!1,!1,{instance:r})}window.dispatchEvent(i)},oh=(t,e)=>{if(!!e)if(!e.length)Va(t,e);else for(let i=0,s;s=e[i];i+=1)Va(t,s)},Ze="src",Ps="srcset",Es="sizes",$a="poster",Wt="llOriginalAttrs",ja="data",zs="loading",Ba="loaded",Ra="applied",lh="entered",Ds="error",Oa="native",Ua="data-",Ha="ll-status",ye=(t,e)=>t.getAttribute(Ua+e),ch=(t,e,i)=>{var s=Ua+e;if(i===null){t.removeAttribute(s);return}t.setAttribute(s,i)},Zt=t=>ye(t,Ha),mt=(t,e)=>ch(t,Ha,e),Si=t=>mt(t,null),Ls=t=>Zt(t)===null,hh=t=>Zt(t)===zs,dh=t=>Zt(t)===Ds,Vs=t=>Zt(t)===Oa,uh=[zs,Ba,Ra,Ds],ph=t=>uh.indexOf(Zt(t))>=0,it=(t,e,i,s)=>{if(!!t){if(s!==void 0){t(e,i,s);return}if(i!==void 0){t(e,i);return}t(e)}},Mt=(t,e)=>{if(za){t.classList.add(e);return}t.className+=(t.className?" ":"")+e},Be=(t,e)=>{if(za){t.classList.remove(e);return}t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},gh=t=>{t.llTempImage=document.createElement("IMG")},mh=t=>{delete t.llTempImage},Fa=t=>t.llTempImage,Ci=(t,e)=>{if(!e)return;const i=e._observer;!i||i.unobserve(t)},fh=t=>{t.disconnect()},bh=(t,e,i)=>{e.unobserve_entered&&Ci(t,i)},$s=(t,e)=>{!t||(t.loadingCount+=e)},yh=t=>{!t||(t.toLoadCount-=1)},Wa=(t,e)=>{!t||(t.toLoadCount=e)},wh=t=>t.loadingCount>0,vh=t=>t.toLoadCount>0,Za=t=>{let e=[];for(let i=0,s;s=t.children[i];i+=1)s.tagName==="SOURCE"&&e.push(s);return e},js=(t,e)=>{const i=t.parentNode;if(!i||i.tagName!=="PICTURE")return;Za(i).forEach(e)},Ya=(t,e)=>{Za(t).forEach(e)},Ii=[Ze],Qa=[Ze,$a],Yt=[Ze,Ps,Es],Ga=[ja],_i=t=>!!t[Wt],qa=t=>t[Wt],Ja=t=>delete t[Wt],St=(t,e)=>{if(_i(t))return;const i={};e.forEach(s=>{i[s]=t.getAttribute(s)}),t[Wt]=i},xh=t=>{_i(t)||(t[Wt]={backgroundImage:t.style.backgroundImage})},Mh=(t,e,i)=>{if(!i){t.removeAttribute(e);return}t.setAttribute(e,i)},ft=(t,e)=>{if(!_i(t))return;const i=qa(t);e.forEach(s=>{Mh(t,s,i[s])})},Sh=t=>{if(!_i(t))return;const e=qa(t);t.style.backgroundImage=e.backgroundImage},Xa=(t,e,i)=>{Mt(t,e.class_applied),mt(t,Ra),i&&(e.unobserve_completed&&Ci(t,e),it(e.callback_applied,t,i))},Ka=(t,e,i)=>{Mt(t,e.class_loading),mt(t,zs),i&&($s(i,1),it(e.callback_loading,t,i))},st=(t,e,i)=>{!i||t.setAttribute(e,i)},en=(t,e)=>{st(t,Es,ye(t,e.data_sizes)),st(t,Ps,ye(t,e.data_srcset)),st(t,Ze,ye(t,e.data_src))},Ch=(t,e)=>{js(t,i=>{St(i,Yt),en(i,e)}),St(t,Yt),en(t,e)},Ih=(t,e)=>{St(t,Ii),st(t,Ze,ye(t,e.data_src))},_h=(t,e)=>{Ya(t,i=>{St(i,Ii),st(i,Ze,ye(i,e.data_src))}),St(t,Qa),st(t,$a,ye(t,e.data_poster)),st(t,Ze,ye(t,e.data_src)),t.load()},Ah=(t,e)=>{St(t,Ga),st(t,ja,ye(t,e.data_src))},kh=(t,e,i)=>{const s=ye(t,e.data_bg),r=ye(t,e.data_bg_hidpi),a=Da&&r?r:s;!a||(t.style.backgroundImage=`url("${a}")`,Fa(t).setAttribute(Ze,a),Ka(t,e,i))},Th=(t,e,i)=>{const s=ye(t,e.data_bg_multi),r=ye(t,e.data_bg_multi_hidpi),a=Da&&r?r:s;!a||(t.style.backgroundImage=a,Xa(t,e,i))},Nh=(t,e,i)=>{const s=ye(t,e.data_bg_set);if(!s)return;const r=s.split("|");let a=r.map(n=>`image-set(${n})`);t.style.backgroundImage=a.join(),t.style.backgroundImage===""&&(a=r.map(n=>`-webkit-image-set(${n})`),t.style.backgroundImage=a.join()),Xa(t,e,i)},tn={IMG:Ch,IFRAME:Ih,VIDEO:_h,OBJECT:Ah},Ph=(t,e)=>{const i=tn[t.tagName];!i||i(t,e)},Eh=(t,e,i)=>{const s=tn[t.tagName];!s||(s(t,e),Ka(t,e,i))},zh=["IMG","IFRAME","VIDEO","OBJECT"],Dh=t=>zh.indexOf(t.tagName)>-1,sn=(t,e)=>{e&&!wh(e)&&!vh(e)&&it(t.callback_finish,e)},rn=(t,e,i)=>{t.addEventListener(e,i),t.llEvLisnrs[e]=i},Lh=(t,e,i)=>{t.removeEventListener(e,i)},Bs=t=>!!t.llEvLisnrs,Vh=(t,e,i)=>{Bs(t)||(t.llEvLisnrs={});const s=t.tagName==="VIDEO"?"loadeddata":"load";rn(t,s,e),rn(t,"error",i)},Rs=t=>{if(!Bs(t))return;const e=t.llEvLisnrs;for(let i in e){const s=e[i];Lh(t,i,s)}delete t.llEvLisnrs},an=(t,e,i)=>{mh(t),$s(i,-1),yh(i),Be(t,e.class_loading),e.unobserve_completed&&Ci(t,i)},$h=(t,e,i,s)=>{const r=Vs(e);an(e,i,s),Mt(e,i.class_loaded),mt(e,Ba),it(i.callback_loaded,e,s),r||sn(i,s)},jh=(t,e,i,s)=>{const r=Vs(e);an(e,i,s),Mt(e,i.class_error),mt(e,Ds),it(i.callback_error,e,s),i.restore_on_error&&ft(e,Yt),r||sn(i,s)},Os=(t,e,i)=>{const s=Fa(t)||t;if(Bs(s))return;Vh(s,n=>{$h(n,t,e,i),Rs(s)},n=>{jh(n,t,e,i),Rs(s)})},Bh=(t,e,i)=>{gh(t),Os(t,e,i),xh(t),kh(t,e,i),Th(t,e,i),Nh(t,e,i)},Rh=(t,e,i)=>{Os(t,e,i),Eh(t,e,i)},Us=(t,e,i)=>{Dh(t)?Rh(t,e,i):Bh(t,e,i)},Oh=(t,e,i)=>{t.setAttribute("loading","lazy"),Os(t,e,i),Ph(t,e),mt(t,Oa)},nn=t=>{t.removeAttribute(Ze),t.removeAttribute(Ps),t.removeAttribute(Es)},Uh=t=>{js(t,e=>{nn(e)}),nn(t)},on=t=>{js(t,e=>{ft(e,Yt)}),ft(t,Yt)},Hh={IMG:on,IFRAME:t=>{ft(t,Ii)},VIDEO:t=>{Ya(t,e=>{ft(e,Ii)}),ft(t,Qa),t.load()},OBJECT:t=>{ft(t,Ga)}},Fh=t=>{const e=Hh[t.tagName];if(!e){Sh(t);return}e(t)},Wh=(t,e)=>{Ls(t)||Vs(t)||(Be(t,e.class_entered),Be(t,e.class_exited),Be(t,e.class_applied),Be(t,e.class_loading),Be(t,e.class_loaded),Be(t,e.class_error))},Zh=(t,e)=>{Fh(t),Wh(t,e),Si(t),Ja(t)},Yh=(t,e,i,s)=>{!i.cancel_on_exit||!hh(t)||t.tagName==="IMG"&&(Rs(t),Uh(t),on(t),Be(t,i.class_loading),$s(s,-1),Si(t),it(i.callback_cancel,t,e,s))},Qh=(t,e,i,s)=>{const r=ph(t);mt(t,lh),Mt(t,i.class_entered),Be(t,i.class_exited),bh(t,i,s),it(i.callback_enter,t,e,s),!r&&Us(t,i,s)},Gh=(t,e,i,s)=>{Ls(t)||(Mt(t,i.class_exited),Yh(t,e,i,s),it(i.callback_exit,t,e,s))},qh=["IMG","IFRAME","VIDEO"],ln=t=>t.use_native&&"loading"in HTMLImageElement.prototype,Jh=(t,e,i)=>{t.forEach(s=>{qh.indexOf(s.tagName)!==-1&&Oh(s,e,i)}),Wa(i,0)},Xh=t=>t.isIntersecting||t.intersectionRatio>0,Kh=t=>({root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}),ed=(t,e,i)=>{t.forEach(s=>Xh(s)?Qh(s.target,s,e,i):Gh(s.target,s,e,i))},td=(t,e)=>{e.forEach(i=>{t.observe(i)})},id=(t,e)=>{fh(t),td(t,e)},sd=(t,e)=>{!Ea||ln(t)||(e._observer=new IntersectionObserver(i=>{ed(i,t,e)},Kh(t)))},cn=t=>Array.prototype.slice.call(t),Ai=t=>t.container.querySelectorAll(t.elements_selector),rd=t=>cn(t).filter(Ls),ad=t=>dh(t),nd=t=>cn(t).filter(ad),hn=(t,e)=>rd(t||Ai(e)),od=(t,e)=>{nd(Ai(t)).forEach(s=>{Be(s,t.class_error),Si(s)}),e.update()},ld=(t,e)=>{!tt||(e._onlineHandler=()=>{od(t,e)},window.addEventListener("online",e._onlineHandler))},cd=t=>{!tt||window.removeEventListener("online",t._onlineHandler)},Qt=function(t,e){const i=La(t);this._settings=i,this.loadingCount=0,sd(i,this),ld(i,this),this.update(e)};Qt.prototype={update:function(t){const e=this._settings,i=hn(t,e);if(Wa(this,i.length),Pa||!Ea){this.loadAll(i);return}if(ln(e)){Jh(i,e,this);return}id(this._observer,i)},destroy:function(){this._observer&&this._observer.disconnect(),cd(this),Ai(this._settings).forEach(t=>{Ja(t)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){const e=this._settings;hn(t,e).forEach(s=>{Ci(s,this),Us(s,e,this)})},restoreAll:function(){const t=this._settings;Ai(t).forEach(e=>{Zh(e,t)})}},Qt.load=(t,e)=>{const i=La(e);Us(t,i)},Qt.resetStatus=t=>{Si(t)},tt&&oh(Qt,window.lazyLoadOptions);class hd{constructor({namespace:e,pages$:i,sideEffect:s,readonly$:r,events:a,wrapClassName:n,root:o,pagesIndex$:c}){this.showPreview$=new We(!1),this.namespace=e,this.pages$=i,this.sideEffect=s,this.readonly$=r,this.events=a,this.wrapClassName=n,this.sideEffect.addDisposer(this.events.on("togglePreview",()=>{this.showPreview$.setValue(!this.showPreview$.value)})),this.sideEffect.addDisposer(this.showPreview$.subscribe(l=>{this.sideEffect.add(()=>{const d=this.renderPreview(),u=this.renderPreviewMask();if(l){o.appendChild(d),o.appendChild(u),d.scrollTop;const p=d.querySelector("."+this.wrapClassName(`preview-page-${c.value}`));return p&&d.scrollTo({top:p.offsetTop-16}),d.classList.toggle(this.wrapClassName("preview-active"),!0),this.previewLazyLoad=new Qt({container:this.$preview,elements_selector:"."+this.wrapClassName("preview-page>img")}),()=>{var m;return(m=this.previewLazyLoad)==null?void 0:m.destroy()}}else return d.classList.toggle(this.wrapClassName("preview-active"),!1),this.sideEffect.setTimeout(()=>{d.remove(),u.remove()},500,"preview-remove"),null},"preview-lazyload")}))}destroy(){var e,i;(e=this.$preview)==null||e.remove(),(i=this.$previewMask)==null||i.remove()}renderPreview(){if(this.$preview)return this.$preview;const e=document.createElement("div");return e.className=this.wrapClassName("preview")+" tele-fancy-scrollbar",this.$preview=e,this.sideEffect.addEventListener(e,"wheel",i=>i.stopPropagation(),{passive:!1}),this.sideEffect.addDisposer(this.pages$.subscribe(i=>{var s;this.sideEffect.add(()=>{const r=i.map((a,n)=>{var o;const c=(o=a.thumbnail)!=null?o:a.src.startsWith("ppt")?void 0:a.src;if(!c)return;const l=String(n),d=document.createElement("a");d.className=this.wrapClassName("preview-page")+" "+this.wrapClassName(`preview-page-${n}`),d.setAttribute("href","#"),d.dataset.pageIndex=l;const u=document.createElement("span");u.className=this.wrapClassName("preview-page-name"),u.textContent=String(n+1),u.dataset.pageIndex=l;const p=document.createElement("img");return p.width=a.width,p.height=a.height,p.dataset.src=c,p.dataset.pageIndex=l,d.appendChild(p),d.appendChild(u),e.appendChild(d),d});return()=>r.forEach(a=>a==null?void 0:a.remove())},"render-preview-pages"),(s=this.previewLazyLoad)==null||s.update()})),this.sideEffect.addEventListener(e,"click",i=>{var s;if(this.readonly$.value)return;const r=(s=i.target.dataset)==null?void 0:s.pageIndex;r&&(i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation(),this.events.emit("jumpPage",Number(r)),this.showPreview$.setValue(!1))}),e}renderPreviewMask(){if(this.$previewMask)return this.$previewMask;const e=document.createElement("div");return e.className=this.wrapClassName("preview-mask"),this.$previewMask=e,this.sideEffect.addEventListener(e,"click",i=>{this.readonly$.value||i.target===e&&this.showPreview$.setValue(!1)}),e}}function dd(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-sidebar`),i.setAttribute("viewBox","0 0 64 64");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function ud(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-arrow-left`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function pd(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-arrow-right`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function gd(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-play`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}function md(t){const e="http://www.w3.org/2000/svg",i=document.createElementNS(e,"svg");i.setAttribute("class",`${t}-footer-icon-pause`),i.setAttribute("viewBox","0 0 500 500");const s=document.createElementNS(e,"path");return s.setAttribute("fill","currentColor"),s.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"),i.appendChild(s),i}class fd{constructor({namespace:e,pages$:i,sideEffect:s,readonly$:r,events:a,playable:n,wrapClassName:o,pagesIndex$:c,root:l}){this.namespace=e,this.pages$=i,this.sideEffect=s,this.readonly$=r,this.events=a,this.wrapClassName=o,this.pagesIndex$=c,this.playable=n,this.$footer=this.render(),l.appendChild(this.$footer)}destroy(){this.$footer.remove()}render(){const e=document.createElement("div");e.className=this.wrapClassName("footer"),this.sideEffect.addDisposer(this.readonly$.subscribe(l=>e.classList.toggle(this.wrapClassName("readonly"),l)));const i=this.renderFooterBtn("btn-sidebar",dd(this.namespace));this.sideEffect.addEventListener(i,"click",()=>{this.readonly$.value||this.events.emit("togglePreview")}),e.appendChild(i),this.sideEffect.addDisposer(this.pages$.subscribe(l=>{const d=l.some(u=>u.thumbnail||!u.src.startsWith("ppt"));i.style.display=d?"":"none"}));const s=document.createElement("div");s.className=this.wrapClassName("page-jumps");const r=this.renderFooterBtn("btn-page-back",ud(this.namespace));if(this.sideEffect.addEventListener(r,"click",()=>{this.readonly$.value||this.events.emit("back")}),s.appendChild(r),this.playable){const l=this.renderFooterBtn("btn-page-play",gd(this.namespace),md(this.namespace));this.sideEffect.addEventListener(l,"click",()=>{this.readonly$.value||(l.classList.toggle(this.wrapClassName("footer-btn-playing"),!0),this.events.emit("play"),this.sideEffect.setTimeout(()=>l.classList.toggle(this.wrapClassName("footer-btn-playing"),!1),500,"returnPlay"))}),s.appendChild(l)}const a=this.renderFooterBtn("btn-page-next",pd(this.namespace));this.sideEffect.addEventListener(a,"click",()=>{this.readonly$.value||this.events.emit("next")}),s.appendChild(a);const n=document.createElement("div");n.className=this.wrapClassName("page-number");const o=document.createElement("input");o.className=this.wrapClassName("page-number-input"),this.sideEffect.addDisposer(this.readonly$.subscribe(l=>o.disabled=l)),this.sideEffect.addDisposer(this.pagesIndex$.subscribe(l=>o.value=String(l+1))),this.sideEffect.addEventListener(o,"focus",()=>{o.select()}),this.sideEffect.addEventListener(o,"change",()=>{if(this.readonly$.value)return;const l=Number(o.value)-1;l>=0&&this.events.emit("jumpPage",l)});const c=document.createElement("span");return this.sideEffect.addDisposer(this.pages$.subscribe(l=>{c.textContent=" / "+l.length})),n.appendChild(o),n.appendChild(c),e.appendChild(s),e.appendChild(n),e}renderFooterBtn(e,i,s){const r=document.createElement("button");return r.className=this.wrapClassName("footer-btn")+" "+this.wrapClassName(e),r.appendChild(i),s&&r.appendChild(s),r}}class bd{constructor(){this.listeners=new Map,this.relayListeners=new Set}emit(e,i){var s;(s=this.listeners.get(e))==null||s.forEach(r=>r(i))}on(e,i){let s=this.listeners.get(e);return s||(s=new Set,this.listeners.set(e,s)),s.add(i),s.size===1&&this.relayListeners.forEach(r=>r.start(e)),()=>{this.off(e,i)}}off(e,i){const s=this.listeners.get(e);if(s){const r=s.delete(i);return s.size<=0&&(this.listeners.delete(e),this.relayListeners.forEach(a=>a.dispose(e))),r}return!1}clear(e){var i;e?(i=this.listeners.get(e))==null||i.clear():this.listeners.clear()}count(e){var i;if(e)return((i=this.listeners.get(e))==null?void 0:i.size)||0;{let s=0;return this.listeners.forEach(r=>{s+=r.size}),s}}remit(e,i){let s;const r={start:a=>{a===e&&(s=i(this))},dispose:a=>{s&&(!a||a===e)&&s()}};return this.relayListeners.add(r),()=>{this.relayListeners.delete(r),s&&s()}}destroy(){this.clear(),this.relayListeners.forEach(e=>e.dispose()),this.relayListeners.clear()}}class dn{constructor({readonly$:e,pagesIndex$:i,box:s,pages:r=[],playable:a}){this.wrapClassName=o=>`${this.namespace}-${o}`,this.namespace="netless-app-docs-viewer",this.sideEffect=new gt,this.events=new bd;const n=new We(r);sh(this,{pages:n}),this.preview=new hd({pages$:n,readonly$:e,pagesIndex$:i,root:s.$body,sideEffect:this.sideEffect,events:this.events,namespace:this.namespace,wrapClassName:this.wrapClassName}),this.footer=new fd({pages$:n,readonly$:e,playable:a,pagesIndex$:i,root:s.$footer,namespace:this.namespace,sideEffect:this.sideEffect,events:this.events,wrapClassName:this.wrapClassName})}destroy(){this.preview.destroy(),this.footer.destroy(),this.sideEffect.flushAll(),this.events.destroy()}}function rt(t,e,i){return Math.min(Math.max(t,e),i)}function un(t){return t.touches?t.touches[0]:t}function pn(t){t.stopPropagation(),t.cancelable&&t.preventDefault()}function gn(t,e){return t.width===e.width&&t.height===e.height}class yd{constructor(e){var i,s,r;this.velocity=0,this._paused=!0,this._animationFrameID=null,this._loopTimestamp=0,this.looper=a=>{var n;if(this._paused)return;let o=Math.floor((a-this._loopTimestamp)/1e3*60)+1;for(this._loopTimestamp=a;o-- >0;)this.stepper();(n=this.onStep)==null||n.call(this,this.current),this._paused?this._animationFrameID=null:this._animationFrameID=window.requestAnimationFrame(this.looper)},this.current=(i=e.start)!=null?i:0,this.target=this.current,this.stiffness=(s=e.stiffness)!=null?s:170,this.damping=(r=e.damping)!=null?r:26,this.onStep=e.onStep}get paused(){return this._paused}stepTo(e,i){var s;this._paused&&i!=null&&(this.current=i),this._paused=!1,this.target=e,(s=this.onStep)==null||s.call(this,this.current),this._loopTimestamp=Date.now(),this._animationFrameID=window.requestAnimationFrame(this.looper)}pause(){this._paused=!0,this._animationFrameID!=null&&window.cancelAnimationFrame(this._animationFrameID)}destroy(){this.pause(),this.onStep=void 0}stepper(){const e=-this.stiffness*(this.current-this.target),i=-this.damping*this.velocity,s=this.velocity+(e+i)/60,r=this.current+s/60;Math.abs(s-0)<.01&&Math.abs(r-this.target)<.01?(this.current=this.target,this.velocity=0,this._paused=!0):(this.current=r,this.velocity=s)}}class wd{constructor(e,i,s,r,a,n){this.index=e,this.lastVisit=Date.now(),this.sideEffect=new gt;const o=Ft(i,p=>p[e]||{width:0,height:0}),c=Ee([o,s],([p,m])=>(m.width-p.width)/2),l=Ee([a,n],([p,m])=>(p[e]||0)-m),d=document.createElement("div");d.className="page-renderer-page",d.dataset.index=`${e}`;const u=document.createElement("img");u.className="page-renderer-page-img",d.appendChild(u),this.sideEffect.addDisposer([Ee([o,r]).subscribe(([p,m])=>{d.style.width=`${p.width*m}px`,d.style.height=`${p.height*m}px`}),o.subscribe(p=>{p.thumbnail&&(d.style.backgroundImage=`url("${p.thumbnail}")`),u.width=p.width,u.height=p.height,u.src=p.src}),Ee([c,l,r]).subscribe(([p,m,g])=>{d.style.transform=`translate(${p*g}px, ${m*g}px)`})]),this.$page=d}destroy(){this.sideEffect.flushAll(),this.$page.remove()}}const vd=window.requestIdleCallback||(t=>window.setTimeout(t,5e3)),xd=window.cancelIdleCallback||window.clearTimeout;class Md{constructor(e,i,s,r,a){this.pages$=e,this.pagesSize$=i,this.scale$=s,this.pagesYs$=r,this.pagesScrollTop$=a,this.els=new Map,this.maxElCount=200,this.gcTimer=null,this.gc=()=>{var n;if(this.gcTimer=null,this.els.size>this.maxElCount){const o=[...this.els.values()].sort((c,l)=>l.lastVisit-c.lastVisit);for(let c=Math.floor(this.maxElCount/4);c<o.length;c++)(n=this.els.get(o[c].index))==null||n.destroy(),this.els.delete(o[c].index)}}}getEl(e){let i=this.els.get(e);return i||(i=new wd(e,this.pages$,this.pagesSize$,this.scale$,this.pagesYs$,this.pagesScrollTop$),this.els.set(e,i)),i.lastVisit=Date.now(),this.els.size>this.maxElCount&&this.gcTimer===null&&(this.gcTimer=vd(this.gc)),i}destroy(){this.els.forEach(e=>e.destroy()),this.els.clear(),this.gcTimer!==null&&(xd(this.gcTimer),this.gcTimer=null)}}class Sd{constructor({pagesScrollTop$:e,containerRect$:i,pages$:s,pagesSize$:r}){this.sideEffect=new gt,s=Ft(s,m=>m.map(g=>{if(g.thumbnail)return g;try{const f=new URL(g.src);return f.searchParams.set("x-oss-process","image/resize,l_50"),ge(O({},g),{thumbnail:f.toString()})}catch(f){return console.error(f),g}}));const a=Ft(s,m=>{const g=Array(m.length);for(let f=0;f<m.length;f++)g[f]=f>0?g[f-1]+m[f-1].height:0;return g}),n=Ft(s,m=>{let g=1/0;for(let f=m.length-1;f>=0;f--)m[f].height<=g&&(g=m[f].height);return g}),o=Ee([e,a,s],([m,g,f])=>{for(let b=0;b<g.length;b++)if(g[b]+f[b].height-m>=.001)return b;return g.length-1}),c=Ee([i,r],([m,g])=>m.width/g.width||1),l=Ee([s,i,n,c],([m,g,f,b])=>rt(Math.ceil(g.height/b/f/2),1,m.length));th(this,{pagesScrollTop:e,containerRect:i,pages:s,pagesSize:r,pagesIndex:o,pagesYs:a,pagesMinHeight:n,scale:c}),this.pageElManager=new Md(s,r,c,a,e),this.$pages=this.renderPages();const d=new We(!1);this.sideEffect.addDisposer(d.subscribe(m=>this.$pages.classList.toggle("is-hwa",m)));const u=()=>d.setValue(!1),p=()=>{this.sideEffect.setTimeout(u,1e3,"turn-off-hwa"),d.setValue(!0)};this.sideEffect.addDisposer(Ee([o,l,s]).subscribe(([m,g,f])=>{p();const b=Math.max(m-g,0),x=Math.min(m+g,f.length-1);for(let M=0;M<this.$pages.children.length;M++){const y=this.$pages.children[M],k=Number(y.dataset.index);k>=b&&k<=x||(y.remove(),M--)}for(let M=b;M<=x;M++){const y=this.pageElManager.getEl(M);y.$page.parentElement!==this.$pages&&this.$pages.appendChild(y.$page)}}))}renderPages(){const e=document.createElement("div");return e.className="page-renderer-pages-container",this.sideEffect.addDisposer(this._containerRect$.subscribe(i=>{e.style.width=`${i.width}px`,e.style.height=`${i.height}px`}),"render-pages-size"),e}destroy(){this.sideEffect.flushAll(),this.$pages.remove(),this.pageElManager.destroy()}}const Cd=30;class Id{constructor({pagesScrollTop$:e,containerRect$:i,stageRect$:s,pagesSize$:r,readonly$:a,scrollbarMinHeight:n=Cd,wrapClassName:o,onDragScroll:c}){this.sideEffect=new gt,this.scrolling$=new We(!1),this.pagesScrollTop$=e,this.containerRect$=i,this.stageRect$=s,this.pagesSize$=r,this.scrollbarMinHeight=n,this.readonly$=a,this.wrapClassName=o,this.onDragScroll=c,this.scrollbarHeight$=Ee([i,s,r],([l,d,u])=>rt(d.height/(d.width/u.width*u.height)*l.height,n,l.height)),this.scrollTop$=Ee([i,s,r,this.scrollbarHeight$,this.pagesScrollTop$],([l,d,u,p,m])=>rt(m/(u.height-u.width/d.width*d.height)*(l.height-p),0,l.height-p)),this.$scrollbar=this.renderScrollbar()}mount(e){e.appendChild(this.$scrollbar)}destroy(){this.$scrollbar.remove(),this.onDragScroll=void 0,this.sideEffect.flushAll()}renderScrollbar(){const e=document.createElement("button");e.className=this.wrapClassName("scrollbar"),e.style.minHeight=`${this.scrollbarMinHeight}px`,this.sideEffect.addDisposer([this.scrollbarHeight$.subscribe(s=>{e.style.height=`${s}px`}),this.scrollTop$.subscribe(s=>{this.scrolling$.setValue(!0),this.sideEffect.setTimeout(()=>this.scrolling$.setValue(!1),100,"reset-scrolling");const r=()=>e.style.transform=`translateY(${s}px)`;window.requestAnimationFrame?window.requestAnimationFrame(r):r()}),this.scrolling$.subscribe(s=>{e.classList.toggle(this.wrapClassName("scrolling"),s)})]);const i=s=>{if(!s.isPrimary||this.readonly$.value||s.button!=null&&s.button!==0)return;pn(s);const r=this.wrapClassName("scrollbar-dragging");e.classList.toggle(r,!0);const a=this.pagesScrollTop$.value,{clientY:n}=un(s),o=l=>{if(!l.isPrimary||this.readonly$.value)return;const{clientY:d}=un(l),u=d-n;Math.abs(u)>0&&this.onDragScroll&&this.onDragScroll(a+u/this.containerRect$.value.height*this.pagesSize$.value.height)},c=l=>{!l.isPrimary||(e.classList.toggle(r,!1),window.removeEventListener("pointermove",o,!0),window.removeEventListener("pointerup",c,!0),window.removeEventListener("pointercancel",c,!0))};window.addEventListener("pointermove",o,!0),window.addEventListener("pointerup",c,!0),window.addEventListener("pointercancel",c,!0)};return this.sideEffect.addEventListener(e,"pointerdown",i),e}}class _d{constructor({whiteboard:e,readonly$:i,box:s,pages:r,pagesScrollTop:a=0,onUserScroll:n}){this.sideEffect=new gt,this.userScrolling=!1,this.whiteboard=e,this.readonly$=i,this.box=s,this.pages=r,this.onUserScroll=n;const o=()=>{var l;this.userScrolling=!1,(l=this.onUserScroll)==null||l.call(this,this.pagesScrollTop$.value)};this.debounceOnUserScroll=()=>{this.userScrolling=!0,this.sideEffect.setTimeout(o,80,"debounceOnUserScroll")};const c=new We(r);this.pagesScrollTop$=new We(a),this.pagesSize$=Ft(c,l=>{let d=0,u=0;for(let p=l.length-1;p>=0;p--){const m=l[p];m.width>d&&(d=m.width),u+=m.height}return{width:Math.max(1,d),height:Math.max(1,u)}},{compare:gn}),this.pageRenderer=new Sd({pagesScrollTop$:this.pagesScrollTop$,containerRect$:s._stageRect$,pages$:c,pagesSize$:this.pagesSize$}),this.viewer=new dn({readonly$:i,pagesIndex$:this.pageRenderer._pagesIndex$,box:s,pages:r,playable:!1}),this.sideEffect.addDisposer([this.viewer.events.on("next",()=>{this.userScrollByPercent(.8)}),this.viewer.events.on("back",()=>{this.userScrollByPercent(-.8)})]),this.scrollbar=new Id({pagesScrollTop$:this.pagesScrollTop$,containerRect$:s._bodyRect$,stageRect$:s._stageRect$,pagesSize$:this.pagesSize$,readonly$:i,wrapClassName:this.wrapClassName.bind(this),onDragScroll:l=>{this.pageScrollTo(l),this.debounceOnUserScroll()}}),this.pageScrollStepper=new yd({start:this.pagesScrollTop$.value,onStep:l=>{this.pageScrollTo(l)}}),this.sideEffect.addDisposer(this.viewer.events.on("jumpPage",l=>this.userScrollToPageIndex(l))),this.render(),this.setupScrollListener(),this.sideEffect.setTimeout(()=>{this.userScrolling||this.pageScrollTo(this.pageRenderer.pagesScrollTop)},100)}get pagesScrollTop(){return this.pagesScrollTop$.value}destroy(){this.sideEffect.flushAll(),this.pageScrollStepper.destroy(),this.onUserScroll=void 0,this.viewer.destroy(),this.pageRenderer.destroy(),this.scrollbar.destroy()}syncPageScrollTop(e){!this.userScrolling&&e>=0&&Math.abs(this.pagesScrollTop$.value-e)>.01&&this.pageScrollStepper.stepTo(e,this.pagesScrollTop$.value)}render(){this.box.$content.style.overflow="hidden",this.box.mountStage(this.pageRenderer.$pages),this.scrollbar.mount(this.box.$body)}pageScrollTo(e){const i=this.whiteboard.view.size.height/2/this.pageRenderer.scale;this.whiteboard.view.moveCamera({centerY:rt(e+i,i,this.pagesSize$.value.height-i),animationMode:"immediately"})}userScrollToPageIndex(e){var i;if(e=rt(e,0,this.pages.length-1),!this.readonly$.value&&!Number.isNaN(e)){const s=this.pageRenderer.pagesYs[e];s>=0&&((i=this.onUserScroll)==null||i.call(this,s+5/this.pageRenderer.scale))}}userScrollByPercent(e){var i;this.readonly$.value||(i=this.onUserScroll)==null||i.call(this,rt(this.pageRenderer.pagesScrollTop+this.pageRenderer.containerRect.height/this.pageRenderer.scale*rt(e,-1,1),0,this.pageRenderer.pagesSize.height-this.pageRenderer.containerRect.height/this.pageRenderer.scale))}setupScrollListener(){this.sideEffect.addEventListener(this.box.$main,"wheel",e=>{pn(e),!this.readonly$.value&&this.pageScrollStepper.paused&&(this.pageScrollTo(this.pagesScrollTop+e.deltaY),this.debounceOnUserScroll())},{passive:!1}),this.sideEffect.addEventListener(this.box.$main,"touchmove",e=>{!this.readonly$.value&&e.touches.length>1&&this.debounceOnUserScroll()},{passive:!0,capture:!0}),this.sideEffect.add(()=>{const e=i=>{const{width:s,height:r}=this.whiteboard.view.size;if(s<=0||r<=0)return;const a=i.centerY-this.pageRenderer.containerRect.height/this.pageRenderer.scale/2;this.pagesScrollTop$.setValue(a)};return this.whiteboard.view.callbacks.on("onCameraUpdated",e),()=>this.whiteboard.view.callbacks.off("onCameraUpdated",e)}),this.sideEffect.addDisposer(this.box._stageRect$.subscribe(e=>{const{width:i,height:s}=this.pagesSize$.value;this.whiteboard.view.moveCameraToContain({originX:0,originY:this.pageRenderer.pagesScrollTop,width:i,height:e.height/this.pageRenderer.scale,animationMode:"immediately"}),this.whiteboard.view.setCameraBound({damping:1,maxContentMode:()=>this.pageRenderer.scale,minContentMode:()=>this.pageRenderer.scale,centerX:i/2,centerY:s/2,width:i,height:s})}),"whiteboard-size-update"),this.sideEffect.addEventListener(window,"keyup",e=>{if(!(this.readonly$.value||!this.box.focus||this.box.minimized))switch(e.key){case"PageDown":{this.userScrollByPercent(.8);break}case"PageUp":{this.userScrollByPercent(-.8);break}case"ArrowLeft":{this.userScrollByPercent(-.25);break}case"ArrowRight":{this.userScrollByPercent(.25);break}case"ArrowDown":{this.userScrollByPercent(.5);break}case"ArrowUp":{this.userScrollByPercent(-.5);break}}},{capture:!0})}wrapClassName(e){return"netless-app-docs-viewer-static-"+e}}class Ad{constructor({readonly$:e,context:i,whiteboard:s,box:r,pages:a}){this.sideEffect=new gt,this.context=i,this.whiteboard=s,this.box=r,this.pages=a;const n=new We(i.displayer.state.sceneState.index||0);this.pagesIndex$=n,this.sideEffect.add(()=>{const o=c=>{this.jumpToPage(c.index)};return this.context.emitter.on("sceneStateChange",o),()=>this.context.emitter.off("sceneStateChange",o)}),this.viewer=new dn({readonly$:e,pagesIndex$:n,box:r,pages:a,playable:!0}),this.sideEffect.addDisposer([this.viewer.events.on("jumpPage",o=>this.jumpToPage(o,!0)),this.viewer.events.on("play",()=>{var o;return(o=this.context.room)==null?void 0:o.pptNextStep()}),this.viewer.events.on("back",()=>this.prevPage()),this.viewer.events.on("next",()=>this.nextPage())]),this.render(),this.sideEffect.addDisposer(n.subscribe((o,c)=>{var l,d;if(e.value)return;const u=this.context.getInitScenePath(),p=(d=(l=this.context.getScenes())==null?void 0:l[o])==null?void 0:d.name;if(u&&p&&this.context.setScenePath(`${u}/${p}`),c){const m=this.context.room;if(m){const g=m.state.globalState.__pptState;m.setGlobalState({__pptState:g&&{uuid:g.uuid,pageIndex:o,disableAutoPlay:g.disableAutoPlay}})}}}))}destroy(){this.sideEffect.flushAll(),this.viewer.destroy()}nextPage(){this.jumpToPage(this.pagesIndex$.value+1,!0)}prevPage(){this.jumpToPage(this.pagesIndex$.value-1,!0)}jumpToPage(e,i=!1){this.pagesIndex$.setValue(rt(e,0,this.pages.length-1),i)}render(){var e;this.box.mountStage(document.createElement("div")),this.sideEffect.addEventListener(window,"keydown",s=>{var r;if(this.box.focus)switch(s.key){case"ArrowUp":case"ArrowLeft":{this.prevPage();break}case"ArrowRight":case"ArrowDown":{(r=this.context.room)==null||r.pptNextStep();break}}});const i=(e=this.whiteboard.view.divElement)==null?void 0:e.parentElement;i&&this.sideEffect.addEventListener(i,"click",s=>{var r;const a=this.context.room;if(a&&a.state.memberState.currentApplianceName==="clicker"){for(let n=s.target;n;n=n.parentElement)if((r=n.classList)!=null&&r.contains("ppt-event-source"))return;a.pptNextStep()}})}wrapClassName(e){return"netless-app-docs-viewer-dynamic-"+e}}const ki={kind:"DocsViewer",setup(t){const e=t.box,i=t.getScenes();if(!i)throw new Error("[Docs Viewer]: scenes not found.");const s=new gt,r=i.map(({ppt:n})=>n?{width:n.width,height:n.height,src:n.src,thumbnail:n.previewURL}:null).filter(n=>Boolean(n));if(r.length<=0)throw new Error("[Docs Viewer]: empty scenes.");e.mountStyles(Uc);const a=new We(!t.isWritable);s.addDisposer(t.emitter.on("writableChange",n=>{a.setValue(!n)})),r[0].src.startsWith("ppt")?Td(s,t,e,r,a):kd(s,t,e,r,a),s.addDisposer(t.emitter.on("destroy",()=>{s.flushAll()}))}};function kd(t,e,i,s,r){const a=e.createWhiteBoardView({syncCamera:!1});t.addDisposer(r.subscribe(l=>{a.view.disableCameraTransform=l}));const n=e.createStorage("static-docs-viewer",{pagesScrollTop:0}),o=new _d({whiteboard:a,readonly$:r,box:i,pages:s,pagesScrollTop:n.state.pagesScrollTop,onUserScroll:l=>{e.isWritable&&n.setState({pagesScrollTop:l})}});t.addDisposer(()=>o.destroy()),t.addDisposer(n.addStateChangedListener(l=>{l.pagesScrollTop&&o.syncPageScrollTop(l.pagesScrollTop.newValue||0)}));let c=1;if(s.length>0){const{width:l,height:d}=s[0];d<=l?c=d/l:c=1/2*d/l}t.addDisposer(Ee([i._maximized$,i._managerStageRect$,i._intrinsicSize$],([l,d,u])=>l?c:u.height*(d.height/d.width)/u.width).subscribe(l=>{i.setStageRatio(l)}))}function Td(t,e,i,s,r){const a=e.createWhiteBoardView();a.view.disableCameraTransform=!0;const n=new Ad({context:e,whiteboard:a,box:i,pages:s,readonly$:r});t.addDisposer(()=>n.destroy());const o=new We({width:s[0].width,height:s[0].height},{compare:gn});if(t.addDisposer(n.pagesIndex$.subscribe(c=>{const l=s[c];l&&o.setValue({width:l.width,height:l.height})})),t.addDisposer(o.subscribe(c=>{r.value||a.setBaseRect(c)})),e.isAddApp){const c=t.add(()=>{const l=({width:d,height:u})=>{if(s.length>0&&i.state!=="maximized"){const{width:p,height:m}=s[0],f=m/p*d-u;f!==0&&e.isWritable&&e.emitter.emit("setBoxSize",{width:i.intrinsicWidth,height:i.intrinsicHeight+f/i.rootRect.height})}t.remove(c)};return a.view.callbacks.once("onSizeUpdated",l),()=>a.view.callbacks.off("onSizeUpdated",l)})}}function at(){}function mn(t){return t()}function fn(){return Object.create(null)}function Ti(t){t.forEach(mn)}function Nd(t){return typeof t=="function"}function bn(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let Ni;function yn(t,e){return Ni||(Ni=document.createElement("a")),Ni.href=e,t===Ni.href}function Pd(t){return Object.keys(t).length===0}function $(t,e){t.appendChild(e)}function Ct(t,e,i){t.insertBefore(e,i||null)}function bt(t){t.parentNode.removeChild(t)}function It(t){return document.createElement(t)}function R(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function Hs(t){return document.createTextNode(t)}function Ed(){return Hs(" ")}function I(t,e,i){i==null?t.removeAttribute(e):t.getAttribute(e)!==i&&t.setAttribute(e,i)}function zd(t){return Array.from(t.childNodes)}function Dd(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}let Gt;function qt(t){Gt=t}function wn(){if(!Gt)throw new Error("Function called outside component initialization");return Gt}function Ld(t){wn().$$.on_mount.push(t)}function Vd(t){wn().$$.on_destroy.push(t)}const Jt=[],Xt=[],Pi=[],vn=[],$d=Promise.resolve();let Fs=!1;function jd(){Fs||(Fs=!0,$d.then(xn))}function Ws(t){Pi.push(t)}const Zs=new Set;let Ei=0;function xn(){const t=Gt;do{for(;Ei<Jt.length;){const e=Jt[Ei];Ei++,qt(e),Bd(e.$$)}for(qt(null),Jt.length=0,Ei=0;Xt.length;)Xt.pop()();for(let e=0;e<Pi.length;e+=1){const i=Pi[e];Zs.has(i)||(Zs.add(i),i())}Pi.length=0}while(Jt.length);for(;vn.length;)vn.pop()();Fs=!1,Zs.clear(),qt(t)}function Bd(t){if(t.fragment!==null){t.update(),Ti(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(Ws)}}const zi=new Set;let Rd;function Mn(t,e){t&&t.i&&(zi.delete(t),t.i(e))}function Od(t,e,i,s){if(t&&t.o){if(zi.has(t))return;zi.add(t),Rd.c.push(()=>{zi.delete(t),s&&(i&&t.d(1),s())}),t.o(e)}}function Ud(t){t&&t.c()}function Sn(t,e,i,s){const{fragment:r,on_mount:a,on_destroy:n,after_update:o}=t.$$;r&&r.m(e,i),s||Ws(()=>{const c=a.map(mn).filter(Nd);n?n.push(...c):Ti(c),t.$$.on_mount=[]}),o.forEach(Ws)}function Cn(t,e){const i=t.$$;i.fragment!==null&&(Ti(i.on_destroy),i.fragment&&i.fragment.d(e),i.on_destroy=i.fragment=null,i.ctx=[])}function Hd(t,e){t.$$.dirty[0]===-1&&(Jt.push(t),jd(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function In(t,e,i,s,r,a,n,o=[-1]){const c=Gt;qt(t);const l=t.$$={fragment:null,ctx:null,props:a,update:at,not_equal:r,bound:fn(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(c?c.$$.context:[])),callbacks:fn(),dirty:o,skip_bound:!1,root:e.target||c.$$.root};n&&n(l.root);let d=!1;if(l.ctx=i?i(t,e.props||{},(u,p,...m)=>{const g=m.length?m[0]:p;return l.ctx&&r(l.ctx[u],l.ctx[u]=g)&&(!l.skip_bound&&l.bound[u]&&l.bound[u](g),d&&Hd(t,u)),p}):[],l.update(),d=!0,Ti(l.before_update),l.fragment=s?s(l.ctx):!1,e.target){if(e.hydrate){const u=zd(e.target);l.fragment&&l.fragment.l(u),u.forEach(bt)}else l.fragment&&l.fragment.c();e.intro&&Mn(t.$$.fragment),Sn(t,e.target,e.anchor,e.customElement),xn()}qt(c)}class _n{$destroy(){Cn(this,1),this.$destroy=at}$on(e,i){const s=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return s.push(i),()=>{const r=s.indexOf(i);r!==-1&&s.splice(r,1)}}$set(e){this.$$set&&!Pd(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Fd={"3g2":"video/3gpp2","3gp":"video/3gpp","3gpp":"audio/3gpp",aac:"audio/x-aac",adp:"audio/adpcm",aif:"audio/x-aiff",aifc:"audio/x-aiff",aiff:"audio/x-aiff",amr:"audio/amr",asf:"video/x-ms-asf",asx:"video/x-ms-asf",au:"audio/basic",avi:"video/x-msvideo",caf:"audio/x-caf",dra:"audio/vnd.dra",dts:"audio/vnd.dts",dtshd:"audio/vnd.dts.hd",dvb:"video/vnd.dvb.file",eol:"audio/vnd.digital-winds",f4v:"video/x-f4v",flac:"audio/x-flac",fli:"video/x-fli",flv:"video/x-flv",fvt:"video/vnd.fvt",h261:"video/h261",h263:"video/h263",h264:"video/h264",jpgm:"video/jpm",jpgv:"video/jpeg",kar:"audio/midi",lvp:"audio/vnd.lucent.voice",m1v:"video/mpeg",m2a:"audio/mpeg",m2v:"video/mpeg",m3a:"audio/mpeg",m3u:"audio/x-mpegurl",m4a:"audio/mp4",m4s:"video/iso.segment",m4u:"video/vnd.mpegurl",m4v:"video/x-m4v",mid:"audio/midi",midi:"audio/midi",mj2:"video/mj2",mjp2:"video/mj2",mk3d:"video/x-matroska",mka:"audio/x-matroska",mks:"video/x-matroska",mkv:"video/x-matroska",mng:"video/x-mng",mov:"video/quicktime",movie:"video/x-sgi-movie",mp2:"audio/mpeg",mp2a:"audio/mpeg",mp3:"audio/mp3",mp4:"video/mp4",mp4a:"audio/mp4",mp4v:"video/mp4",mpe:"video/mpeg",mpeg:"video/mpeg",mpg:"video/mpeg",mpg4:"video/mp4",mpga:"audio/mpeg",mxmf:"audio/mobile-xmf",mxu:"video/vnd.mpegurl",oga:"audio/ogg",ogg:"audio/ogg",ogv:"video/ogg",opus:"audio/ogg",pya:"audio/vnd.ms-playready.media.pya",pyv:"video/vnd.ms-playready.media.pyv",qt:"video/quicktime",ra:"audio/x-pn-realaudio",ram:"audio/x-pn-realaudio",rip:"audio/vnd.rip",rmi:"audio/midi",rmp:"audio/x-pn-realaudio-plugin",s3m:"audio/s3m",sil:"audio/silk",smv:"video/x-smv",snd:"audio/basic",spx:"audio/ogg",ts:"video/mp2t",uva:"audio/vnd.dece.audio",uvh:"video/vnd.dece.hd",uvm:"video/vnd.dece.mobile",uvp:"video/vnd.dece.pd",uvs:"video/vnd.dece.sd",uvu:"video/vnd.uvvu.mp4",uvv:"video/vnd.dece.video",uvva:"audio/vnd.dece.audio",uvvh:"video/vnd.dece.hd",uvvm:"video/vnd.dece.mobile",uvvp:"video/vnd.dece.pd",uvvs:"video/vnd.dece.sd",uvvu:"video/vnd.uvvu.mp4",uvvv:"video/vnd.dece.video",viv:"video/vnd.vivo",vob:"video/x-ms-vob",wav:"audio/wav",wax:"audio/x-ms-wax",weba:"audio/webm",webm:"video/webm",wm:"video/x-ms-wm",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",wmx:"video/x-ms-wmx",wvx:"video/x-ms-wvx",xm:"audio/xm",m3u8:"application/vnd.apple.mpegurl"},Wd=["application/x-mpegurl","application/vnd.apple.mpegurl"];function Zd(t){if(!t)return;const e=t.lastIndexOf(".");if(!~e)return;const i=t.slice(e+1);return Fd[i]}async function Yd(t){try{return await t.play(),!0}catch(e){return t.muted=!0,await t.play(),console.debug(e),!1}}function Qd(t){const e=document.createElement("script");return new Promise((i,s)=>{e.onload=()=>i(),e.onerror=s,e.src=t,document.head.appendChild(e)})}async function Gd(){const t={loadSource(i){},attachMedia(i){}};let e=window.Hls;if(e===null||e===!1)return t;if(e===void 0&&(await Qd("https://cdn.jsdelivr.net/npm/hls.js"),e=window.Hls),typeof e=="function")try{return new e}catch(i){return console.debug(i),t}else return t}function qd(t){return"canPlayType"in t&&!t.canPlayType("application/vnd.apple.mpegurl")}function Jd(t,e,i){return t<e?e:t>i?i:t}function Xd(t){return Array.isArray(t)?t[0]:t}function Kd(t){let e,i,s,r,a,n,o,c,l,d,u,p,m,g,f,b,x,M,y,k,D,T,U,ne,J,Ae,Ge,Me,ze,Se,De,Ce,Ie,ke,Le,Te,lt,qe;return{c(){e=R("svg"),i=R("symbol"),s=R("path"),r=R("path"),a=R("symbol"),n=R("path"),o=R("symbol"),c=R("path"),l=R("symbol"),d=R("path"),u=R("symbol"),p=R("path"),m=R("symbol"),g=R("path"),f=R("symbol"),b=R("path"),x=R("symbol"),M=R("path"),y=R("symbol"),k=R("path"),D=R("symbol"),T=R("path"),U=R("symbol"),ne=R("path"),J=R("symbol"),Ae=R("path"),Ge=R("path"),Me=R("symbol"),ze=R("path"),Se=R("symbol"),De=R("path"),Ce=R("symbol"),Ie=R("path"),ke=R("symbol"),Le=R("path"),Te=R("symbol"),lt=R("path"),qe=R("path"),I(s,"d","M16 1H2a1 1 0 00-1 1v10a1 1 0 001 1h3v-2H3V3h12v8h-2v2h3a1 1 0 001-1V2a1 1 0 00-1-1z"),I(r,"d","M4 17h10l-5-6z"),I(i,"id","plyr-airplay"),I(i,"viewBox","0 0 18 18"),I(n,"d","M1 1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h4.6l2.7 2.7c.2.2.4.3.7.3.3 0 .5-.1.7-.3l2.7-2.7H17c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1H1zm4.52 10.15c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41C8.47 4.96 7.46 3.76 5.5 3.76c-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69zm7.57 0c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41c-.28-1.15-1.29-2.35-3.25-2.35-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69z"),I(n,"fill-rule","evenodd"),I(n,"fill-opacity",".5"),I(a,"id","plyr-captions-off"),I(a,"viewBox","0 0 18 18"),I(c,"d","M1 1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h4.6l2.7 2.7c.2.2.4.3.7.3.3 0 .5-.1.7-.3l2.7-2.7H17c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1H1zm4.52 10.15c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41C8.47 4.96 7.46 3.76 5.5 3.76c-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69zm7.57 0c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41c-.28-1.15-1.29-2.35-3.25-2.35-1.9 0-3.61 1.44-3.61 3.7 0 2.26 1.65 3.69 3.63 3.69z"),I(c,"fill-rule","evenodd"),I(o,"id","plyr-captions-on"),I(o,"viewBox","0 0 18 18"),I(d,"d","M9 13c.3 0 .5-.1.7-.3L15.4 7 14 5.6l-4 4V1H8v8.6l-4-4L2.6 7l5.7 5.7c.2.2.4.3.7.3zm-7 2h14v2H2z"),I(l,"id","plyr-download"),I(l,"viewBox","0 0 18 18"),I(p,"d","M10 3h3.6l-4 4L11 8.4l4-4V8h2V1h-7zM7 9.6l-4 4V10H1v7h7v-2H4.4l4-4z"),I(u,"id","plyr-enter-fullscreen"),I(u,"viewBox","0 0 18 18"),I(g,"d","M1 12h3.6l-4 4L2 17.4l4-4V17h2v-7H1zM16 .6l-4 4V1h-2v7h7V6h-3.6l4-4z"),I(m,"id","plyr-exit-fullscreen"),I(m,"viewBox","0 0 18 18"),I(b,"d","M7.875 7.171L0 1v16l7.875-6.171V17L18 9 7.875 1z"),I(f,"id","plyr-fast-forward"),I(f,"viewBox","0 0 18 18"),I(M,"d","M17 5.3c-.1 1.6-1.2 3.7-3.3 6.4-2.2 2.8-4 4.2-5.5 4.2-.9 0-1.7-.9-2.4-2.6C5 10.9 4.4 6 3 6c-.1 0-.5.3-1.2.8l-.8-1c.8-.7 3.5-3.4 4.7-3.5 1.2-.1 2 .7 2.3 2.5.3 2 .8 6.1 1.8 6.1.9 0 2.5-3.4 2.6-4 .1-.9-.3-1.9-2.3-1.1.8-2.6 2.3-3.8 4.5-3.8 1.7.1 2.5 1.2 2.4 3.3z"),I(x,"id","plyr-logo-vimeo"),I(x,"viewBox","0 0 18 18"),I(k,"d","M16.8 5.8c-.2-1.3-.8-2.2-2.2-2.4C12.4 3 9 3 9 3s-3.4 0-5.6.4C2 3.6 1.3 4.5 1.2 5.8 1 7.1 1 9 1 9s0 1.9.2 3.2c.2 1.3.8 2.2 2.2 2.4C5.6 15 9 15 9 15s3.4 0 5.6-.4c1.4-.3 2-1.1 2.2-2.4.2-1.3.2-3.2.2-3.2s0-1.9-.2-3.2zM7 12V6l5 3-5 3z"),I(y,"id","plyr-logo-youtube"),I(y,"viewBox","0 0 18 18"),I(T,"d","M12.4 12.5l2.1-2.1 2.1 2.1 1.4-1.4L15.9 9 18 6.9l-1.4-1.4-2.1 2.1-2.1-2.1L11 6.9 13.1 9 11 11.1zM3.786 6.008H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601L3.786 6.008z"),I(D,"id","plyr-muted"),I(D,"viewBox","0 0 18 18"),I(ne,"d","M6 1H3c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm6 0c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1h-3z"),I(U,"id","plyr-pause"),I(U,"viewBox","0 0 18 18"),I(Ae,"d","M13.293 3.293L7.022 9.564l1.414 1.414 6.271-6.271L17 7V1h-6z"),I(Ge,"d","M13 15H3V5h5V3H2a1 1 0 00-1 1v12a1 1 0 001 1h12a1 1 0 001-1v-6h-2v5z"),I(J,"id","plyr-pip"),I(J,"viewBox","0 0 18 18"),I(ze,"d","M15.562 8.1L3.87.225c-.818-.562-1.87 0-1.87.9v15.75c0 .9 1.052 1.462 1.87.9L15.563 9.9c.584-.45.584-1.35 0-1.8z"),I(Me,"id","plyr-play"),I(Me,"viewBox","0 0 18 18"),I(De,"d","M9.7 1.2l.7 6.4 2.1-2.1c1.9 1.9 1.9 5.1 0 7-.9 1-2.2 1.5-3.5 1.5-1.3 0-2.6-.5-3.5-1.5-1.9-1.9-1.9-5.1 0-7 .6-.6 1.4-1.1 2.3-1.3l-.6-1.9C6 2.6 4.9 3.2 4 4.1 1.3 6.8 1.3 11.2 4 14c1.3 1.3 3.1 2 4.9 2 1.9 0 3.6-.7 4.9-2 2.7-2.7 2.7-7.1 0-9.9L16 1.9l-6.3-.7z"),I(Se,"id","plyr-restart"),I(Se,"viewBox","0 0 18 18"),I(Ie,"d","M10.125 1L0 9l10.125 8v-6.171L18 17V1l-7.875 6.171z"),I(Ce,"id","plyr-rewind"),I(Ce,"viewBox","0 0 18 18"),I(Le,"d","M16.135 7.784a2 2 0 01-1.23-2.969c.322-.536.225-.998-.094-1.316l-.31-.31c-.318-.318-.78-.415-1.316-.094a2 2 0 01-2.969-1.23C10.065 1.258 9.669 1 9.219 1h-.438c-.45 0-.845.258-.997.865a2 2 0 01-2.969 1.23c-.536-.322-.999-.225-1.317.093l-.31.31c-.318.318-.415.781-.093 1.317a2 2 0 01-1.23 2.969C1.26 7.935 1 8.33 1 8.781v.438c0 .45.258.845.865.997a2 2 0 011.23 2.969c-.322.536-.225.998.094 1.316l.31.31c.319.319.782.415 1.316.094a2 2 0 012.969 1.23c.151.607.547.865.997.865h.438c.45 0 .845-.258.997-.865a2 2 0 012.969-1.23c.535.321.997.225 1.316-.094l.31-.31c.318-.318.415-.781.094-1.316a2 2 0 011.23-2.969c.607-.151.865-.547.865-.997v-.438c0-.451-.26-.846-.865-.997zM9 12a3 3 0 110-6 3 3 0 010 6z"),I(ke,"id","plyr-settings"),I(ke,"viewBox","0 0 18 18"),I(lt,"d","M15.6 3.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4C15.4 5.9 16 7.4 16 9c0 1.6-.6 3.1-1.8 4.3-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7z"),I(qe,"d","M11.282 5.282a.909.909 0 000 1.316c.735.735.995 1.458.995 2.402 0 .936-.425 1.917-.995 2.487a.909.909 0 000 1.316c.145.145.636.262 1.018.156a.725.725 0 00.298-.156C13.773 11.733 14.13 10.16 14.13 9c0-.17-.002-.34-.011-.51-.053-.992-.319-2.005-1.522-3.208a.909.909 0 00-1.316 0zm-7.496.726H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601L3.786 6.008z"),I(Te,"id","plyr-volume"),I(Te,"viewBox","0 0 18 18"),I(e,"xmlns","http://www.w3.org/2000/svg"),I(e,"xmlns:xlink","http://www.w3.org/1999/xlink")},m(ct,Nt){Ct(ct,e,Nt),$(e,i),$(i,s),$(i,r),$(e,a),$(a,n),$(e,o),$(o,c),$(e,l),$(l,d),$(e,u),$(u,p),$(e,m),$(m,g),$(e,f),$(f,b),$(e,x),$(x,M),$(e,y),$(y,k),$(e,D),$(D,T),$(e,U),$(U,ne),$(e,J),$(J,Ae),$(J,Ge),$(e,Me),$(Me,ze),$(e,Se),$(Se,De),$(e,Ce),$(Ce,Ie),$(e,ke),$(ke,Le),$(e,Te),$(Te,lt),$(Te,qe)},p:at,i:at,o:at,d(ct){ct&&bt(e)}}}class eu extends _n{constructor(e){super();In(this,e,null,Kd,bn,{})}}function _(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function tu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function An(t,e){for(var i=0;i<e.length;i++){var s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}function iu(t,e,i){return e&&An(t.prototype,e),i&&An(t,i),t}function su(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function kn(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),i.push.apply(i,s)}return i}function Tn(t){for(var e=1;e<arguments.length;e++){var i=arguments[e]!=null?arguments[e]:{};e%2?kn(Object(i),!0).forEach(function(s){su(t,s,i[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):kn(Object(i)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(i,s))})}return t}var Nn={addCSS:!0,thumbWidth:15,watch:!0};function ru(t,e){return function(){return Array.from(document.querySelectorAll(e)).includes(this)}.call(t,e)}function au(t,e){if(t&&e){var i=new Event(e,{bubbles:!0});t.dispatchEvent(i)}}var Kt=function(t){return t!=null?t.constructor:null},Ys=function(t,e){return!!(t&&e&&t instanceof e)},Pn=function(t){return t==null},En=function(t){return Kt(t)===Object},nu=function(t){return Kt(t)===Number&&!Number.isNaN(t)},zn=function(t){return Kt(t)===String},ou=function(t){return Kt(t)===Boolean},lu=function(t){return Kt(t)===Function},Dn=function(t){return Array.isArray(t)},Ln=function(t){return Ys(t,NodeList)},cu=function(t){return Ys(t,Element)},hu=function(t){return Ys(t,Event)},du=function(t){return Pn(t)||(zn(t)||Dn(t)||Ln(t))&&!t.length||En(t)&&!Object.keys(t).length},ce={nullOrUndefined:Pn,object:En,number:nu,string:zn,boolean:ou,function:lu,array:Dn,nodeList:Ln,element:cu,event:hu,empty:du};function uu(t){var e="".concat(t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return e?Math.max(0,(e[1]?e[1].length:0)-(e[2]?+e[2]:0)):0}function pu(t,e){if(1>e){var i=uu(e);return parseFloat(t.toFixed(i))}return Math.round(t/e)*e}var gu=function(){function t(e,i){tu(this,t),ce.element(e)?this.element=e:ce.string(e)&&(this.element=document.querySelector(e)),ce.element(this.element)&&ce.empty(this.element.rangeTouch)&&(this.config=Tn({},Nn,{},i),this.init())}return iu(t,[{key:"init",value:function(){t.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){t.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var i=this,s=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach(function(r){i.element[s](r,function(a){return i.set(a)},!1)})}},{key:"get",value:function(e){if(!t.enabled||!ce.event(e))return null;var i,s=e.target,r=e.changedTouches[0],a=parseFloat(s.getAttribute("min"))||0,n=parseFloat(s.getAttribute("max"))||100,o=parseFloat(s.getAttribute("step"))||1,c=s.getBoundingClientRect(),l=100/c.width*(this.config.thumbWidth/2)/100;return 0>(i=100/c.width*(r.clientX-c.left))?i=0:100<i&&(i=100),50>i?i-=(100-2*i)*l:50<i&&(i+=2*(i-50)*l),a+pu(i/100*(n-a),o)}},{key:"set",value:function(e){t.enabled&&ce.event(e)&&!e.target.disabled&&(e.preventDefault(),e.target.value=this.get(e),au(e.target,e.type==="touchend"?"change":"input"))}}],[{key:"setup",value:function(e){var i=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},s=null;if(ce.empty(e)||ce.string(e)?s=Array.from(document.querySelectorAll(ce.string(e)?e:'input[type="range"]')):ce.element(e)?s=[e]:ce.nodeList(e)?s=Array.from(e):ce.array(e)&&(s=e.filter(ce.element)),ce.empty(s))return null;var r=Tn({},Nn,{},i);if(ce.string(e)&&r.watch){var a=new MutationObserver(function(n){Array.from(n).forEach(function(o){Array.from(o.addedNodes).forEach(function(c){ce.element(c)&&ru(c,e)&&new t(c,r)})})});a.observe(document.body,{childList:!0,subtree:!0})}return s.map(function(n){return new t(n,i)})}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),t}();const _t=t=>t!=null?t.constructor:null,Ye=(t,e)=>Boolean(t&&e&&t instanceof e),Qs=t=>t==null,Vn=t=>_t(t)===Object,mu=t=>_t(t)===Number&&!Number.isNaN(t),Di=t=>_t(t)===String,fu=t=>_t(t)===Boolean,$n=t=>_t(t)===Function,jn=t=>Array.isArray(t),bu=t=>Ye(t,WeakMap),Bn=t=>Ye(t,NodeList),yu=t=>_t(t)===Text,wu=t=>Ye(t,Event),vu=t=>Ye(t,KeyboardEvent),xu=t=>Ye(t,window.TextTrackCue)||Ye(t,window.VTTCue),Mu=t=>Ye(t,TextTrack)||!Qs(t)&&Di(t.kind),Su=t=>Ye(t,Promise)&&$n(t.then),Cu=t=>t!==null&&typeof t=="object"&&t.nodeType===1&&typeof t.style=="object"&&typeof t.ownerDocument=="object",Rn=t=>Qs(t)||(Di(t)||jn(t)||Bn(t))&&!t.length||Vn(t)&&!Object.keys(t).length;var h={nullOrUndefined:Qs,object:Vn,number:mu,string:Di,boolean:fu,function:$n,array:jn,weakMap:bu,nodeList:Bn,element:Cu,textNode:yu,event:wu,keyboardEvent:vu,cue:xu,track:Mu,promise:Su,url:t=>{if(Ye(t,window.URL))return!0;if(!Di(t))return!1;let e=t;t.startsWith("http://")&&t.startsWith("https://")||(e=`http://${t}`);try{return!Rn(new URL(e).hostname)}catch{return!1}},empty:Rn};const Gs=(()=>{const t=document.createElement("span"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i=Object.keys(e).find(s=>t.style[s]!==void 0);return!!h.string(i)&&e[i]})();function On(t,e){setTimeout(()=>{try{t.hidden=!0,t.offsetHeight,t.hidden=!1}catch{}},e)}const ae={isIE:Boolean(window.document.documentMode),isEdge:window.navigator.userAgent.includes("Edge"),isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1||/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function Iu(t){return JSON.parse(JSON.stringify(t))}function Un(t,e){return e.split(".").reduce((i,s)=>i&&i[s],t)}function K(t={},...e){if(!e.length)return t;const i=e.shift();return h.object(i)?(Object.keys(i).forEach(s=>{h.object(i[s])?(Object.keys(t).includes(s)||Object.assign(t,{[s]:{}}),K(t[s],i[s])):Object.assign(t,{[s]:i[s]})}),K(t,...e)):t}function Hn(t,e){const i=t.length?t:[t];Array.from(i).reverse().forEach((s,r)=>{const a=r>0?e.cloneNode(!0):e,n=s.parentNode,o=s.nextSibling;a.appendChild(s),o?n.insertBefore(a,o):n.appendChild(a)})}function qs(t,e){h.element(t)&&!h.empty(e)&&Object.entries(e).filter(([,i])=>!h.nullOrUndefined(i)).forEach(([i,s])=>t.setAttribute(i,s))}function N(t,e,i){const s=document.createElement(t);return h.object(e)&&qs(s,e),h.string(i)&&(s.innerText=i),s}function _u(t,e){h.element(t)&&h.element(e)&&e.parentNode.insertBefore(t,e.nextSibling)}function Fn(t,e,i,s){h.element(e)&&e.appendChild(N(t,i,s))}function Qe(t){h.nodeList(t)||h.array(t)?Array.from(t).forEach(Qe):h.element(t)&&h.element(t.parentNode)&&t.parentNode.removeChild(t)}function Li(t){if(!h.element(t))return;let{length:e}=t.childNodes;for(;e>0;)t.removeChild(t.lastChild),e-=1}function Vi(t,e){return h.element(e)&&h.element(e.parentNode)&&h.element(t)?(e.parentNode.replaceChild(t,e),t):null}function Re(t,e){if(!h.string(t)||h.empty(t))return{};const i={},s=K({},e);return t.split(",").forEach(r=>{const a=r.trim(),n=a.replace(".",""),o=a.replace(/[[\]]/g,"").split("="),[c]=o,l=o.length>1?o[1].replace(/["']/g,""):"";switch(a.charAt(0)){case".":h.string(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case"#":i.id=a.replace("#","");break;case"[":i[c]=l}}),K(s,i)}function yt(t,e){if(!h.element(t))return;let i=e;h.boolean(i)||(i=!t.hidden),t.hidden=i}function H(t,e,i){if(h.nodeList(t))return Array.from(t).map(s=>H(s,e,i));if(h.element(t)){let s="toggle";return i!==void 0&&(s=i?"add":"remove"),t.classList[s](e),t.classList.contains(e)}return!1}function $i(t,e){return h.element(t)&&t.classList.contains(e)}function wt(t,e){const{prototype:i}=Element;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(e)).includes(this)}).call(t,e)}function Au(t,e){const{prototype:i}=Element;return(i.closest||function(){let s=this;do{if(wt.matches(s,e))return s;s=s.parentElement||s.parentNode}while(s!==null&&s.nodeType===1);return null}).call(t,e)}function At(t){return this.elements.container.querySelectorAll(t)}function ee(t){return this.elements.container.querySelector(t)}function Js(t=null,e=!1){h.element(t)&&(t.focus({preventScroll:!0}),e&&H(t,this.config.classNames.tabFocus))}const Wn={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},q={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check(t,e,i){const s=ae.isIPhone&&i&&q.playsinline,r=q[t]||e!=="html5";return{api:r,ui:r&&q.rangeInput&&(t!=="video"||!ae.isIPhone||s)}},pip:!(ae.isIPhone||!h.function(N("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||N("video").disablePictureInPicture)),airplay:h.function(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime(t){if(h.empty(t))return!1;const[e]=t.split("/");let i=t;if(!this.isHTML5||e!==this.type)return!1;Object.keys(Wn).includes(i)&&(i+=`; codecs="${Wn[t]}"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch{return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(()=>{const t=document.createElement("input");return t.type="range",t.type==="range"})(),touch:"ontouchstart"in document.documentElement,transitions:Gs!==!1,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},ku=(()=>{let t=!1;try{const e=Object.defineProperty({},"passive",{get:()=>(t=!0,null)});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch{}return t})();function kt(t,e,i,s=!1,r=!0,a=!1){if(!t||!("addEventListener"in t)||h.empty(e)||!h.function(i))return;const n=e.split(" ");let o=a;ku&&(o={passive:r,capture:a}),n.forEach(c=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:t,type:c,callback:i,options:o}),t[s?"addEventListener":"removeEventListener"](c,i,o)})}function W(t,e="",i,s=!0,r=!1){kt.call(this,t,e,i,!0,s,r)}function ji(t,e="",i,s=!0,r=!1){kt.call(this,t,e,i,!1,s,r)}function Xs(t,e="",i,s=!0,r=!1){const a=(...n)=>{ji(t,e,a,s,r),i.apply(this,n)};kt.call(this,t,e,a,!0,s,r)}function P(t,e="",i=!1,s={}){if(!h.element(t)||h.empty(e))return;const r=new CustomEvent(e,{bubbles:i,detail:ge(O({},s),{plyr:this})});t.dispatchEvent(r)}function Tu(){this&&this.eventListeners&&(this.eventListeners.forEach(t=>{const{element:e,type:i,callback:s,options:r}=t;e.removeEventListener(i,s,r)}),this.eventListeners=[])}function Nu(){return new Promise(t=>this.ready?setTimeout(t,0):W.call(this,this.elements.container,"ready",t)).then(()=>{})}function Oe(t){h.promise(t)&&t.then(null,()=>{})}function Ks(t){return h.array(t)?t.filter((e,i)=>t.indexOf(e)===i):t}function Zn(t,e){return h.array(t)&&t.length?t.reduce((i,s)=>Math.abs(s-e)<Math.abs(i-e)?s:i):null}function Yn(t){return!(!window||!window.CSS)&&window.CSS.supports(t)}const Qn=[[1,1],[4,3],[3,4],[5,4],[4,5],[3,2],[2,3],[16,10],[10,16],[16,9],[9,16],[21,9],[9,21],[32,9],[9,32]].reduce((t,[e,i])=>ge(O({},t),{[e/i]:[e,i]}),{});function Gn(t){return h.array(t)||h.string(t)&&t.includes(":")?(h.array(t)?t:t.split(":")).map(Number).every(h.number):!1}function Bi(t){if(!h.array(t)||!t.every(h.number))return null;const[e,i]=t,s=(a,n)=>n===0?a:s(n,a%n),r=s(e,i);return[e/r,i/r]}function er(t){const e=s=>Gn(s)?s.split(":").map(Number):null;let i=e(t);if(i===null&&(i=e(this.config.ratio)),i===null&&!h.empty(this.embed)&&h.array(this.embed.ratio)&&({ratio:i}=this.embed),i===null&&this.isHTML5){const{videoWidth:s,videoHeight:r}=this.media;i=[s,r]}return Bi(i)}function Tt(t){if(!this.isVideo)return{};const{wrapper:e}=this.elements,i=er.call(this,t);if(!h.array(i))return{};const[s,r]=Bi(i),a=100/s*r;if(Yn(`aspect-ratio: ${s}/${r}`)?e.style.aspectRatio=`${s}/${r}`:e.style.paddingBottom=`${a}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const n=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),o=(n-a)/(n/50);this.fullscreen.active?e.style.paddingBottom=null:this.media.style.transform=`translateY(-${o}%)`}else this.isHTML5&&e.classList.add(this.config.classNames.videoFixedRatio);return{padding:a,ratio:i}}function qn(t,e,i=.05){const s=t/e,r=Zn(Object.keys(Qn),s);return Math.abs(r-s)<=i?Qn[r]:[t,e]}function Pu(){return[Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)]}const nt={getSources(){return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter(t=>{const e=t.getAttribute("type");return!!h.empty(e)||q.mime.call(this,e)}):[]},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:nt.getSources.call(this).map(t=>Number(t.getAttribute("size"))).filter(Boolean)},setup(){if(!this.isHTML5)return;const t=this;t.options.speed=t.config.speed.options,h.empty(this.config.ratio)||Tt.call(t),Object.defineProperty(t.media,"quality",{get(){const e=nt.getSources.call(t).find(i=>i.getAttribute("src")===t.source);return e&&Number(e.getAttribute("size"))},set(e){if(t.quality!==e){if(t.config.quality.forced&&h.function(t.config.quality.onChange))t.config.quality.onChange(e);else{const i=nt.getSources.call(t).find(c=>Number(c.getAttribute("size"))===e);if(!i)return;const{currentTime:s,paused:r,preload:a,readyState:n,playbackRate:o}=t.media;t.media.src=i.getAttribute("src"),(a!=="none"||n)&&(t.once("loadedmetadata",()=>{t.speed=o,t.currentTime=s,r||Oe(t.play())}),t.media.load())}P.call(t,t.media,"qualitychange",!1,{quality:e})}}})},cancelRequests(){this.isHTML5&&(Qe(nt.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function Eu(t){return`${t}-${Math.floor(1e4*Math.random())}`}function tr(t,...e){return h.empty(t)?t:t.toString().replace(/{(\d+)}/g,(i,s)=>e[s].toString())}function zu(t,e){return t===0||e===0||Number.isNaN(t)||Number.isNaN(e)?0:(t/e*100).toFixed(2)}const ei=(t="",e="",i="")=>t.replace(new RegExp(e.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString()),Jn=(t="")=>t.toString().replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase());function Du(t=""){let e=t.toString();return e=ei(e,"-"," "),e=ei(e,"_"," "),e=Jn(e),ei(e," ","")}function Lu(t=""){let e=t.toString();return e=Du(e),e.charAt(0).toLowerCase()+e.slice(1)}function Vu(t){const e=document.createDocumentFragment(),i=document.createElement("div");return e.appendChild(i),i.innerHTML=t,e.firstChild.innerText}function $u(t){const e=document.createElement("div");return e.appendChild(t),e.innerHTML}const Xn={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},ie={get(t="",e={}){if(h.empty(t)||h.empty(e))return"";let i=Un(e.i18n,t);if(h.empty(i))return Object.keys(Xn).includes(t)?Xn[t]:"";const s={"{seektime}":e.seekTime,"{title}":e.title};return Object.entries(s).forEach(([r,a])=>{i=ei(i,r,a)}),i}};class ti{constructor(e){_(this,"get",i=>{if(!ti.supported||!this.enabled)return null;const s=window.localStorage.getItem(this.key);if(h.empty(s))return null;const r=JSON.parse(s);return h.string(i)&&i.length?r[i]:r}),_(this,"set",i=>{if(!ti.supported||!this.enabled||!h.object(i))return;let s=this.get();h.empty(s)&&(s={}),K(s,i);try{window.localStorage.setItem(this.key,JSON.stringify(s))}catch{}}),this.enabled=e.config.storage.enabled,this.key=e.config.storage.key}static get supported(){try{if(!("localStorage"in window))return!1;const e="___test";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}}function ii(t,e="text"){return new Promise((i,s)=>{try{const r=new XMLHttpRequest;if(!("withCredentials"in r))return;r.addEventListener("load",()=>{if(e==="text")try{i(JSON.parse(r.responseText))}catch{i(r.responseText)}else i(r.response)}),r.addEventListener("error",()=>{throw new Error(r.status)}),r.open("GET",t,!0),r.responseType=e,r.send()}catch(r){s(r)}})}function Kn(t,e){if(!h.string(t))return;const i=h.string(e);let s=!1;const r=()=>document.getElementById(e)!==null,a=(n,o)=>{n.innerHTML=o,i&&r()||document.body.insertAdjacentElement("afterbegin",n)};if(!i||!r()){const n=ti.supported,o=document.createElement("div");if(o.setAttribute("hidden",""),i&&o.setAttribute("id",e),n){const c=window.localStorage.getItem(`cache-${e}`);if(s=c!==null,s){const l=JSON.parse(c);a(o,l.content)}}ii(t).then(c=>{if(!h.empty(c)){if(n)try{window.localStorage.setItem(`cache-${e}`,JSON.stringify({content:c}))}catch{}a(o,c)}}).catch(()=>{})}}const eo=t=>Math.trunc(t/60/60%60,10),ju=t=>Math.trunc(t%60,10);function Ri(t=0,e=!1,i=!1){if(!h.number(t))return Ri(void 0,e,i);const s=c=>`0${c}`.slice(-2);let r=eo(t);const a=(n=t,Math.trunc(n/60%60,10));var n;const o=ju(t);return r=e||r>0?`${r}:`:"",`${i&&t>0?"-":""}${r}${s(a)}:${s(o)}`}const C={getIconUrl(){const t=new URL(this.config.iconUrl,window.location),e=window.location.host?window.location.host:window.top.location.host,i=t.host!==e||ae.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=ee.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:At.call(this,this.config.selectors.buttons.play),pause:ee.call(this,this.config.selectors.buttons.pause),restart:ee.call(this,this.config.selectors.buttons.restart),rewind:ee.call(this,this.config.selectors.buttons.rewind),fastForward:ee.call(this,this.config.selectors.buttons.fastForward),mute:ee.call(this,this.config.selectors.buttons.mute),pip:ee.call(this,this.config.selectors.buttons.pip),airplay:ee.call(this,this.config.selectors.buttons.airplay),settings:ee.call(this,this.config.selectors.buttons.settings),captions:ee.call(this,this.config.selectors.buttons.captions),fullscreen:ee.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=ee.call(this,this.config.selectors.progress),this.elements.inputs={seek:ee.call(this,this.config.selectors.inputs.seek),volume:ee.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:ee.call(this,this.config.selectors.display.buffer),currentTime:ee.call(this,this.config.selectors.display.currentTime),duration:ee.call(this,this.config.selectors.display.duration)},h.element(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(t){return this.debug.warn("It looks like there is a problem with your custom controls HTML",t),this.toggleNativeControls(!0),!1}},createIcon(t,e){const i="http://www.w3.org/2000/svg",s=C.getIconUrl.call(this),r=`${s.cors?"":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,"svg");qs(a,K(e,{"aria-hidden":"true",focusable:"false"}));const n=document.createElementNS(i,"use"),o=`${r}-${t}`;return"href"in n&&n.setAttributeNS("http://www.w3.org/1999/xlink","href",o),n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o),a.appendChild(n),a},createLabel(t,e={}){const i=ie.get(t,this.config);return N("span",ge(O({},e),{class:[e.class,this.config.classNames.hidden].filter(Boolean).join(" ")}),i)},createBadge(t){if(h.empty(t))return null;const e=N("span",{class:this.config.classNames.menu.value});return e.appendChild(N("span",{class:this.config.classNames.menu.badge},t)),e},createButton(t,e){const i=K({},e);let s=Lu(t);const r={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach(n=>{Object.keys(i).includes(n)&&(r[n]=i[n],delete i[n])}),r.element!=="button"||Object.keys(i).includes("type")||(i.type="button"),Object.keys(i).includes("class")?i.class.split(" ").some(n=>n===this.config.classNames.control)||K(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,t){case"play":r.toggle=!0,r.label="play",r.labelPressed="pause",r.icon="play",r.iconPressed="pause";break;case"mute":r.toggle=!0,r.label="mute",r.labelPressed="unmute",r.icon="volume",r.iconPressed="muted";break;case"captions":r.toggle=!0,r.label="enableCaptions",r.labelPressed="disableCaptions",r.icon="captions-off",r.iconPressed="captions-on";break;case"fullscreen":r.toggle=!0,r.label="enterFullscreen",r.labelPressed="exitFullscreen",r.icon="enter-fullscreen",r.iconPressed="exit-fullscreen";break;case"play-large":i.class+=` ${this.config.classNames.control}--overlaid`,s="play",r.label="play",r.icon="play";break;default:h.empty(r.label)&&(r.label=s),h.empty(r.icon)&&(r.icon=t)}const a=N(r.element);return r.toggle?(a.appendChild(C.createIcon.call(this,r.iconPressed,{class:"icon--pressed"})),a.appendChild(C.createIcon.call(this,r.icon,{class:"icon--not-pressed"})),a.appendChild(C.createLabel.call(this,r.labelPressed,{class:"label--pressed"})),a.appendChild(C.createLabel.call(this,r.label,{class:"label--not-pressed"}))):(a.appendChild(C.createIcon.call(this,r.icon)),a.appendChild(C.createLabel.call(this,r.label))),K(i,Re(this.config.selectors.buttons[s],i)),qs(a,i),s==="play"?(h.array(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(t,e){const i=N("input",K(Re(this.config.selectors.inputs[t]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":ie.get(t,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},e));return this.elements.inputs[t]=i,C.updateRangeFill.call(this,i),gu.setup(i),i},createProgress(t,e){const i=N("progress",K(Re(this.config.selectors.display[t]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},e));if(t!=="volume"){i.appendChild(N("span",null,"0"));const s={played:"played",buffer:"buffered"}[t],r=s?ie.get(s,this.config):"";i.innerText=`% ${r.toLowerCase()}`}return this.elements.display[t]=i,i},createTime(t,e){const i=Re(this.config.selectors.display[t],e),s=N("div",K(i,{class:`${i.class?i.class:""} ${this.config.classNames.display.time} `.trim(),"aria-label":ie.get(t,this.config)}),"00:00");return this.elements.display[t]=s,s},bindMenuItemShortcuts(t,e){W.call(this,t,"keydown keyup",i=>{if(!["Space","ArrowUp","ArrowDown","ArrowRight"].includes(i.key)||(i.preventDefault(),i.stopPropagation(),i.type==="keydown"))return;const s=wt(t,'[role="menuitemradio"]');if(!s&&["Space","ArrowRight"].includes(i.key))C.showMenuPanel.call(this,e,!0);else{let r;i.key!=="Space"&&(i.key==="ArrowDown"||s&&i.key==="ArrowRight"?(r=t.nextElementSibling,h.element(r)||(r=t.parentNode.firstElementChild)):(r=t.previousElementSibling,h.element(r)||(r=t.parentNode.lastElementChild)),Js.call(this,r,!0))}},!1),W.call(this,t,"keyup",i=>{i.key==="Return"&&C.focusFirstMenuItem.call(this,null,!0)})},createMenuItem({value:t,list:e,type:i,title:s,badge:r=null,checked:a=!1}){const n=Re(this.config.selectors.inputs[i]),o=N("button",K(n,{type:"button",role:"menuitemradio",class:`${this.config.classNames.control} ${n.class?n.class:""}`.trim(),"aria-checked":a,value:t})),c=N("span");c.innerHTML=s,h.element(r)&&c.appendChild(r),o.appendChild(c),Object.defineProperty(o,"checked",{enumerable:!0,get:()=>o.getAttribute("aria-checked")==="true",set(l){l&&Array.from(o.parentNode.children).filter(d=>wt(d,'[role="menuitemradio"]')).forEach(d=>d.setAttribute("aria-checked","false")),o.setAttribute("aria-checked",l?"true":"false")}}),this.listeners.bind(o,"click keyup",l=>{if(!h.keyboardEvent(l)||l.key==="Space"){switch(l.preventDefault(),l.stopPropagation(),o.checked=!0,i){case"language":this.currentTrack=Number(t);break;case"quality":this.quality=t;break;case"speed":this.speed=parseFloat(t)}C.showMenuPanel.call(this,"home",h.keyboardEvent(l))}},i,!1),C.bindMenuItemShortcuts.call(this,o,i),e.appendChild(o)},formatTime(t=0,e=!1){return h.number(t)?Ri(t,eo(this.duration)>0,e):t},updateTimeDisplay(t=null,e=0,i=!1){h.element(t)&&h.number(e)&&(t.innerText=C.formatTime(e,i))},updateVolume(){this.supported.ui&&(h.element(this.elements.inputs.volume)&&C.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),h.element(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||this.volume===0))},setRange(t,e=0){h.element(t)&&(t.value=e,C.updateRangeFill.call(this,t))},updateProgress(t){if(!this.supported.ui||!h.event(t))return;let e=0;const i=(s,r)=>{const a=h.number(r)?r:0,n=h.element(s)?s:this.elements.display.buffer;if(h.element(n)){n.value=a;const o=n.getElementsByTagName("span")[0];h.element(o)&&(o.childNodes[0].nodeValue=a)}};if(t)switch(t.type){case"timeupdate":case"seeking":case"seeked":e=zu(this.currentTime,this.duration),t.type==="timeupdate"&&C.setRange.call(this,this.elements.inputs.seek,e);break;case"playing":case"progress":i(this.elements.display.buffer,100*this.buffered)}},updateRangeFill(t){const e=h.event(t)?t.target:t;if(h.element(e)&&e.getAttribute("type")==="range"){if(wt(e,this.config.selectors.inputs.seek)){e.setAttribute("aria-valuenow",this.currentTime);const i=C.formatTime(this.currentTime),s=C.formatTime(this.duration),r=ie.get("seekLabel",this.config);e.setAttribute("aria-valuetext",r.replace("{currentTime}",i).replace("{duration}",s))}else if(wt(e,this.config.selectors.inputs.volume)){const i=100*e.value;e.setAttribute("aria-valuenow",i),e.setAttribute("aria-valuetext",`${i.toFixed(1)}%`)}else e.setAttribute("aria-valuenow",e.value);ae.isWebkit&&e.style.setProperty("--value",e.value/e.max*100+"%")}},updateSeekTooltip(t){var e,i;if(!this.config.tooltips.seek||!h.element(this.elements.inputs.seek)||!h.element(this.elements.display.seekTooltip)||this.duration===0)return;const s=this.elements.display.seekTooltip,r=`${this.config.classNames.tooltip}--visible`,a=d=>H(s,r,d);if(this.touch)return void a(!1);let n=0;const o=this.elements.progress.getBoundingClientRect();if(h.event(t))n=100/o.width*(t.pageX-o.left);else{if(!$i(s,r))return;n=parseFloat(s.style.left,10)}n<0?n=0:n>100&&(n=100);const c=this.duration/100*n;s.innerText=C.formatTime(c);const l=(e=this.config.markers)===null||e===void 0||(i=e.points)===null||i===void 0?void 0:i.find(({time:d})=>d===Math.round(c));l&&s.insertAdjacentHTML("afterbegin",`${l.label}<br>`),s.style.left=`${n}%`,h.event(t)&&["mouseenter","mouseleave"].includes(t.type)&&a(t.type==="mouseenter")},timeUpdate(t){const e=!h.element(this.elements.display.duration)&&this.config.invertTime;C.updateTimeDisplay.call(this,this.elements.display.currentTime,e?this.duration-this.currentTime:this.currentTime,e),t&&t.type==="timeupdate"&&this.media.seeking||C.updateProgress.call(this,t)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return yt(this.elements.display.currentTime,!0),void yt(this.elements.progress,!0);h.element(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);const t=h.element(this.elements.display.duration);!t&&this.config.displayDuration&&this.paused&&C.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),t&&C.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),this.config.markers.enabled&&C.setMarkers.call(this),C.updateSeekTooltip.call(this)},toggleMenuButton(t,e){yt(this.elements.settings.buttons[t],!e)},updateSetting(t,e,i){const s=this.elements.settings.panels[t];let r=null,a=e;if(t==="captions")r=this.currentTrack;else{if(r=h.empty(i)?this[t]:i,h.empty(r)&&(r=this.config[t].default),!h.empty(this.options[t])&&!this.options[t].includes(r))return void this.debug.warn(`Unsupported value of '${r}' for ${t}`);if(!this.config[t].options.includes(r))return void this.debug.warn(`Disabled value of '${r}' for ${t}`)}if(h.element(a)||(a=s&&s.querySelector('[role="menu"]')),!h.element(a))return;this.elements.settings.buttons[t].querySelector(`.${this.config.classNames.menu.value}`).innerHTML=C.getLabel.call(this,t,r);const n=a&&a.querySelector(`[value="${r}"]`);h.element(n)&&(n.checked=!0)},getLabel(t,e){switch(t){case"speed":return e===1?ie.get("normal",this.config):`${e}×`;case"quality":if(h.number(e)){const i=ie.get(`qualityLabel.${e}`,this.config);return i.length?i:`${e}p`}return Jn(e);case"captions":return Z.getLabel.call(this);default:return null}},setQualityMenu(t){if(!h.element(this.elements.settings.panels.quality))return;const e="quality",i=this.elements.settings.panels.quality.querySelector('[role="menu"]');h.array(t)&&(this.options.quality=Ks(t).filter(a=>this.config.quality.options.includes(a)));const s=!h.empty(this.options.quality)&&this.options.quality.length>1;if(C.toggleMenuButton.call(this,e,s),Li(i),C.checkMenu.call(this),!s)return;const r=a=>{const n=ie.get(`qualityBadge.${a}`,this.config);return n.length?C.createBadge.call(this,n):null};this.options.quality.sort((a,n)=>{const o=this.config.quality.options;return o.indexOf(a)>o.indexOf(n)?1:-1}).forEach(a=>{C.createMenuItem.call(this,{value:a,list:i,type:e,title:C.getLabel.call(this,"quality",a),badge:r(a)})}),C.updateSetting.call(this,e,i)},setCaptionsMenu(){if(!h.element(this.elements.settings.panels.captions))return;const t="captions",e=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=Z.getTracks.call(this),s=Boolean(i.length);if(C.toggleMenuButton.call(this,t,s),Li(e),C.checkMenu.call(this),!s)return;const r=i.map((a,n)=>({value:n,checked:this.captions.toggled&&this.currentTrack===n,title:Z.getLabel.call(this,a),badge:a.language&&C.createBadge.call(this,a.language.toUpperCase()),list:e,type:"language"}));r.unshift({value:-1,checked:!this.captions.toggled,title:ie.get("disabled",this.config),list:e,type:"language"}),r.forEach(C.createMenuItem.bind(this)),C.updateSetting.call(this,t,e)},setSpeedMenu(){if(!h.element(this.elements.settings.panels.speed))return;const t="speed",e=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter(s=>s>=this.minimumSpeed&&s<=this.maximumSpeed);const i=!h.empty(this.options.speed)&&this.options.speed.length>1;C.toggleMenuButton.call(this,t,i),Li(e),C.checkMenu.call(this),i&&(this.options.speed.forEach(s=>{C.createMenuItem.call(this,{value:s,list:e,type:t,title:C.getLabel.call(this,"speed",s)})}),C.updateSetting.call(this,t,e))},checkMenu(){const{buttons:t}=this.elements.settings,e=!h.empty(t)&&Object.values(t).some(i=>!i.hidden);yt(this.elements.settings.menu,!e)},focusFirstMenuItem(t,e=!1){if(this.elements.settings.popup.hidden)return;let i=t;h.element(i)||(i=Object.values(this.elements.settings.panels).find(r=>!r.hidden));const s=i.querySelector('[role^="menuitem"]');Js.call(this,s,e)},toggleMenu(t){const{popup:e}=this.elements.settings,i=this.elements.buttons.settings;if(!h.element(e)||!h.element(i))return;const{hidden:s}=e;let r=s;if(h.boolean(t))r=t;else if(h.keyboardEvent(t)&&t.key==="Escape")r=!1;else if(h.event(t)){const a=h.function(t.composedPath)?t.composedPath()[0]:t.target,n=e.contains(a);if(n||!n&&t.target!==i&&r)return}i.setAttribute("aria-expanded",r),yt(e,!r),H(this.elements.container,this.config.classNames.menu.open,r),r&&h.keyboardEvent(t)?C.focusFirstMenuItem.call(this,null,!0):r||s||Js.call(this,i,h.keyboardEvent(t))},getMenuSize(t){const e=t.cloneNode(!0);e.style.position="absolute",e.style.opacity=0,e.removeAttribute("hidden"),t.parentNode.appendChild(e);const i=e.scrollWidth,s=e.scrollHeight;return Qe(e),{width:i,height:s}},showMenuPanel(t="",e=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${t}`);if(!h.element(i))return;const s=i.parentNode,r=Array.from(s.children).find(a=>!a.hidden);if(q.transitions&&!q.reducedMotion){s.style.width=`${r.scrollWidth}px`,s.style.height=`${r.scrollHeight}px`;const a=C.getMenuSize.call(this,i),n=o=>{o.target===s&&["width","height"].includes(o.propertyName)&&(s.style.width="",s.style.height="",ji.call(this,s,Gs,n))};W.call(this,s,Gs,n),s.style.width=`${a.width}px`,s.style.height=`${a.height}px`}yt(r,!0),yt(i,!1),C.focusFirstMenuItem.call(this,i,e)},setDownloadUrl(){const t=this.elements.buttons.download;h.element(t)&&t.setAttribute("href",this.download)},create(t){const{bindMenuItemShortcuts:e,createButton:i,createProgress:s,createRange:r,createTime:a,setQualityMenu:n,setSpeedMenu:o,showMenuPanel:c}=C;this.elements.controls=null,h.array(this.config.controls)&&this.config.controls.includes("play-large")&&this.elements.container.appendChild(i.call(this,"play-large"));const l=N("div",Re(this.config.selectors.controls.wrapper));this.elements.controls=l;const d={class:"plyr__controls__item"};return Ks(h.array(this.config.controls)?this.config.controls:[]).forEach(u=>{if(u==="restart"&&l.appendChild(i.call(this,"restart",d)),u==="rewind"&&l.appendChild(i.call(this,"rewind",d)),u==="play"&&l.appendChild(i.call(this,"play",d)),u==="fast-forward"&&l.appendChild(i.call(this,"fast-forward",d)),u==="progress"){const p=N("div",{class:`${d.class} plyr__progress__container`}),m=N("div",Re(this.config.selectors.progress));if(m.appendChild(r.call(this,"seek",{id:`plyr-seek-${t.id}`})),m.appendChild(s.call(this,"buffer")),this.config.tooltips.seek){const g=N("span",{class:this.config.classNames.tooltip},"00:00");m.appendChild(g),this.elements.display.seekTooltip=g}this.elements.progress=m,p.appendChild(this.elements.progress),l.appendChild(p)}if(u==="current-time"&&l.appendChild(a.call(this,"currentTime",d)),u==="duration"&&l.appendChild(a.call(this,"duration",d)),u==="mute"||u==="volume"){let{volume:p}=this.elements;if(h.element(p)&&l.contains(p)||(p=N("div",K({},d,{class:`${d.class} plyr__volume`.trim()})),this.elements.volume=p,l.appendChild(p)),u==="mute"&&p.appendChild(i.call(this,"mute")),u==="volume"&&!ae.isIos){const m={max:1,step:.05,value:this.config.volume};p.appendChild(r.call(this,"volume",K(m,{id:`plyr-volume-${t.id}`})))}}if(u==="captions"&&l.appendChild(i.call(this,"captions",d)),u==="settings"&&!h.empty(this.config.settings)){const p=N("div",K({},d,{class:`${d.class} plyr__menu`.trim(),hidden:""}));p.appendChild(i.call(this,"settings",{"aria-haspopup":!0,"aria-controls":`plyr-settings-${t.id}`,"aria-expanded":!1}));const m=N("div",{class:"plyr__menu__container",id:`plyr-settings-${t.id}`,hidden:""}),g=N("div"),f=N("div",{id:`plyr-settings-${t.id}-home`}),b=N("div",{role:"menu"});f.appendChild(b),g.appendChild(f),this.elements.settings.panels.home=f,this.config.settings.forEach(x=>{const M=N("button",K(Re(this.config.selectors.buttons.settings),{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:"menuitem","aria-haspopup":!0,hidden:""}));e.call(this,M,x),W.call(this,M,"click",()=>{c.call(this,x,!1)});const y=N("span",null,ie.get(x,this.config)),k=N("span",{class:this.config.classNames.menu.value});k.innerHTML=t[x],y.appendChild(k),M.appendChild(y),b.appendChild(M);const D=N("div",{id:`plyr-settings-${t.id}-${x}`,hidden:""}),T=N("button",{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});T.appendChild(N("span",{"aria-hidden":!0},ie.get(x,this.config))),T.appendChild(N("span",{class:this.config.classNames.hidden},ie.get("menuBack",this.config))),W.call(this,D,"keydown",U=>{U.key==="ArrowLeft"&&(U.preventDefault(),U.stopPropagation(),c.call(this,"home",!0))},!1),W.call(this,T,"click",()=>{c.call(this,"home",!1)}),D.appendChild(T),D.appendChild(N("div",{role:"menu"})),g.appendChild(D),this.elements.settings.buttons[x]=M,this.elements.settings.panels[x]=D}),m.appendChild(g),p.appendChild(m),l.appendChild(p),this.elements.settings.popup=m,this.elements.settings.menu=p}if(u==="pip"&&q.pip&&l.appendChild(i.call(this,"pip",d)),u==="airplay"&&q.airplay&&l.appendChild(i.call(this,"airplay",d)),u==="download"){const p=K({},d,{element:"a",href:this.download,target:"_blank"});this.isHTML5&&(p.download="");const{download:m}=this.config.urls;!h.url(m)&&this.isEmbed&&K(p,{icon:`logo-${this.provider}`,label:this.provider}),l.appendChild(i.call(this,"download",p))}u==="fullscreen"&&l.appendChild(i.call(this,"fullscreen",d))}),this.isHTML5&&n.call(this,nt.getQualityOptions.call(this)),o.call(this),l},inject(){if(this.config.loadSprite){const r=C.getIconUrl.call(this);r.cors&&Kn(r.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());let t=null;this.elements.controls=null;const e={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;h.function(this.config.controls)&&(this.config.controls=this.config.controls.call(this,e)),this.config.controls||(this.config.controls=[]),h.element(this.config.controls)||h.string(this.config.controls)?t=this.config.controls:(t=C.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:Z.getLabel.call(this)}),i=!1);let s;if(i&&h.string(this.config.controls)&&(t=(r=>{let a=r;return Object.entries(e).forEach(([n,o])=>{a=ei(a,`{${n}}`,o)}),a})(t)),h.string(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),h.element(s)||(s=this.elements.container),s[h.element(t)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",t),h.element(this.elements.controls)||C.findElements.call(this),!h.empty(this.elements.buttons)){const r=a=>{const n=this.config.classNames.controlPressed;Object.defineProperty(a,"pressed",{enumerable:!0,get:()=>$i(a,n),set(o=!1){H(a,n,o)}})};Object.values(this.elements.buttons).filter(Boolean).forEach(a=>{h.array(a)||h.nodeList(a)?Array.from(a).filter(Boolean).forEach(r):r(a)})}if(ae.isEdge&&On(s),this.config.tooltips.controls){const{classNames:r,selectors:a}=this.config,n=`${a.controls.wrapper} ${a.labels} .${r.hidden}`,o=At.call(this,n);Array.from(o).forEach(c=>{H(c,this.config.classNames.hidden,!1),H(c,this.config.classNames.tooltip,!0)})}},setMediaMetadata(){try{"mediaSession"in navigator&&(navigator.mediaSession.metadata=new window.MediaMetadata({title:this.config.mediaMetadata.title,artist:this.config.mediaMetadata.artist,album:this.config.mediaMetadata.album,artwork:this.config.mediaMetadata.artwork}))}catch{}},setMarkers(){var t,e;if(!this.duration||this.elements.markers)return;const i=(t=this.config.markers)===null||t===void 0||(e=t.points)===null||e===void 0?void 0:e.filter(({time:c})=>c>0&&c<this.duration);if(i==null||!i.length)return;const s=document.createDocumentFragment(),r=document.createDocumentFragment();let a=null;const n=`${this.config.classNames.tooltip}--visible`,o=c=>H(a,n,c);i.forEach(c=>{const l=N("span",{class:this.config.classNames.marker},""),d=c.time/this.duration*100+"%";a&&(l.addEventListener("mouseenter",()=>{c.label||(a.style.left=d,a.innerHTML=c.label,o(!0))}),l.addEventListener("mouseleave",()=>{o(!1)})),l.addEventListener("click",()=>{this.currentTime=c.time}),l.style.left=d,r.appendChild(l)}),s.appendChild(r),this.config.tooltips.seek||(a=N("span",{class:this.config.classNames.tooltip},""),s.appendChild(a)),this.elements.markers={points:r,tip:a},this.elements.progress.appendChild(s)}};function to(t,e=!0){let i=t;if(e){const s=document.createElement("a");s.href=i,i=s.href}try{return new URL(i)}catch{return null}}function io(t){const e=new URLSearchParams;return h.object(t)&&Object.entries(t).forEach(([i,s])=>{e.set(i,s)}),e}const Z={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!q.textTracks)return void(h.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&C.setCaptionsMenu.call(this));if(h.element(this.elements.captions)||(this.elements.captions=N("div",Re(this.config.selectors.captions)),_u(this.elements.captions,this.elements.wrapper)),ae.isIE&&window.URL){const s=this.media.querySelectorAll("track");Array.from(s).forEach(r=>{const a=r.getAttribute("src"),n=to(a);n!==null&&n.hostname!==window.location.href.hostname&&["http:","https:"].includes(n.protocol)&&ii(a,"blob").then(o=>{r.setAttribute("src",window.URL.createObjectURL(o))}).catch(()=>{Qe(r)})})}const t=Ks((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map(s=>s.split("-")[0]));let e=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();e==="auto"&&([e]=t);let i=this.storage.get("captions");if(h.boolean(i)||({active:i}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:i,language:e,languages:t}),this.isHTML5){const s=this.config.captions.update?"addtrack removetrack":"removetrack";W.call(this,this.media.textTracks,s,Z.update.bind(this))}setTimeout(Z.update.bind(this),0)},update(){const t=Z.getTracks.call(this,!0),{active:e,language:i,meta:s,currentTrackNode:r}=this.captions,a=Boolean(t.find(n=>n.language===i));this.isHTML5&&this.isVideo&&t.filter(n=>!s.get(n)).forEach(n=>{this.debug.log("Track added",n),s.set(n,{default:n.mode==="showing"}),n.mode==="showing"&&(n.mode="hidden"),W.call(this,n,"cuechange",()=>Z.updateCues.call(this))}),(a&&this.language!==i||!t.includes(r))&&(Z.setLanguage.call(this,i),Z.toggle.call(this,e&&a)),this.elements&&H(this.elements.container,this.config.classNames.captions.enabled,!h.empty(t)),h.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&C.setCaptionsMenu.call(this)},toggle(t,e=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,r=h.nullOrUndefined(t)?!i:t;if(r!==i){if(e||(this.captions.active=r,this.storage.set({captions:r})),!this.language&&r&&!e){const a=Z.getTracks.call(this),n=Z.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=n.language,void Z.set.call(this,a.indexOf(n))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=r),H(this.elements.container,s,r),this.captions.toggled=r,C.updateSetting.call(this,"captions"),P.call(this,this.media,r?"captionsenabled":"captionsdisabled")}setTimeout(()=>{r&&this.captions.toggled&&(this.captions.currentTrackNode.mode="hidden")})},set(t,e=!0){const i=Z.getTracks.call(this);if(t!==-1)if(h.number(t))if(t in i){if(this.captions.currentTrack!==t){this.captions.currentTrack=t;const s=i[t],{language:r}=s||{};this.captions.currentTrackNode=s,C.updateSetting.call(this,"captions"),e||(this.captions.language=r,this.storage.set({language:r})),this.isVimeo&&this.embed.enableTextTrack(r),P.call(this,this.media,"languagechange")}Z.toggle.call(this,!0,e),this.isHTML5&&this.isVideo&&Z.updateCues.call(this)}else this.debug.warn("Track not found",t);else this.debug.warn("Invalid caption argument",t);else Z.toggle.call(this,!1,e)},setLanguage(t,e=!0){if(!h.string(t))return void this.debug.warn("Invalid language argument",t);const i=t.toLowerCase();this.captions.language=i;const s=Z.getTracks.call(this),r=Z.findTrack.call(this,[i]);Z.set.call(this,s.indexOf(r),e)},getTracks(t=!1){return Array.from((this.media||{}).textTracks||[]).filter(e=>!this.isHTML5||t||this.captions.meta.has(e)).filter(e=>["captions","subtitles"].includes(e.kind))},findTrack(t,e=!1){const i=Z.getTracks.call(this),s=n=>Number((this.captions.meta.get(n)||{}).default),r=Array.from(i).sort((n,o)=>s(o)-s(n));let a;return t.every(n=>(a=r.find(o=>o.language===n),!a)),a||(e?r[0]:void 0)},getCurrentTrack(){return Z.getTracks.call(this)[this.currentTrack]},getLabel(t){let e=t;return!h.track(e)&&q.textTracks&&this.captions.toggled&&(e=Z.getCurrentTrack.call(this)),h.track(e)?h.empty(e.label)?h.empty(e.language)?ie.get("enabled",this.config):t.language.toUpperCase():e.label:ie.get("disabled",this.config)},updateCues(t){if(!this.supported.ui)return;if(!h.element(this.elements.captions))return void this.debug.warn("No captions element to render to");if(!h.nullOrUndefined(t)&&!Array.isArray(t))return void this.debug.warn("updateCues: Invalid input",t);let e=t;if(!e){const s=Z.getCurrentTrack.call(this);e=Array.from((s||{}).activeCues||[]).map(r=>r.getCueAsHTML()).map($u)}const i=e.map(s=>s.trim()).join(`
|
125
|
+
`);if(i!==this.elements.captions.innerHTML){Li(this.elements.captions);const s=N("span",Re(this.config.selectors.caption));s.innerHTML=i,this.elements.captions.appendChild(s),P.call(this,this.media,"cuechange")}}},so={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.7.2/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/oembed.json?url={0}"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",marker:"plyr__progress__marker",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id",hash:"data-plyr-embed-hash"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1},mediaMetadata:{title:"",artist:"",album:"",artwork:[]},markers:{enabled:!1,points:[]}},ir={active:"picture-in-picture",inactive:"inline"},ot={html5:"html5",youtube:"youtube",vimeo:"vimeo"},sr={audio:"audio",video:"video"};function Bu(t){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(t)?ot.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(t)?ot.vimeo:null}const rr=()=>{};class Ru{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log("Debugging enabled")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):rr}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):rr}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):rr}}class Ue{constructor(e){_(this,"onChange",()=>{if(!this.enabled)return;const i=this.player.elements.buttons.fullscreen;h.element(i)&&(i.pressed=this.active);const s=this.target===this.player.media?this.target:this.player.elements.container;P.call(this.player,s,this.active?"enterfullscreen":"exitfullscreen",!0)}),_(this,"toggleFallback",(i=!1)=>{if(i?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=i?"hidden":"",H(this.target,this.player.config.classNames.fullscreen.fallback,i),ae.isIos){let s=document.head.querySelector('meta[name="viewport"]');const r="viewport-fit=cover";s||(s=document.createElement("meta"),s.setAttribute("name","viewport"));const a=h.string(s.content)&&s.content.includes(r);i?(this.cleanupViewport=!a,a||(s.content+=`,${r}`)):this.cleanupViewport&&(s.content=s.content.split(",").filter(n=>n.trim()!==r).join(","))}this.onChange()}),_(this,"trapFocus",i=>{if(ae.isIos||!this.active||i.key!=="Tab")return;const s=document.activeElement,r=At.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),[a]=r,n=r[r.length-1];s!==n||i.shiftKey?s===a&&i.shiftKey&&(n.focus(),i.preventDefault()):(a.focus(),i.preventDefault())}),_(this,"update",()=>{if(this.enabled){let i;i=this.forceFallback?"Fallback (forced)":Ue.native?"Native":"Fallback",this.player.debug.log(`${i} fullscreen enabled`)}else this.player.debug.log("Fullscreen not supported and fallback disabled");H(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}),_(this,"enter",()=>{this.enabled&&(ae.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!Ue.native||this.forceFallback?this.toggleFallback(!0):this.prefix?h.empty(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:"hide"}))}),_(this,"exit",()=>{if(this.enabled)if(ae.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),Oe(this.player.play());else if(!Ue.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!h.empty(this.prefix)){const i=this.prefix==="moz"?"Cancel":"Exit";document[`${this.prefix}${i}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)}),_(this,"toggle",()=>{this.active?this.exit():this.enter()}),this.player=e,this.prefix=Ue.prefix,this.property=Ue.property,this.scrollPosition={x:0,y:0},this.forceFallback=e.config.fullscreen.fallback==="force",this.player.elements.fullscreen=e.config.fullscreen.container&&Au(this.player.elements.container,e.config.fullscreen.container),W.call(this.player,document,this.prefix==="ms"?"MSFullscreenChange":`${this.prefix}fullscreenchange`,()=>{this.onChange()}),W.call(this.player,this.player.elements.container,"dblclick",i=>{h.element(this.player.elements.controls)&&this.player.elements.controls.contains(i.target)||this.player.listeners.proxy(i,this.toggle,"fullscreen")}),W.call(this,this.player.elements.container,"keydown",i=>this.trapFocus(i)),this.update()}static get native(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get usingNative(){return Ue.native&&!this.forceFallback}static get prefix(){if(h.function(document.exitFullscreen))return"";let e="";return["webkit","moz","ms"].some(i=>!(!h.function(document[`${i}ExitFullscreen`])&&!h.function(document[`${i}CancelFullScreen`]))&&(e=i,!0)),e}static get property(){return this.prefix==="moz"?"FullScreen":"Fullscreen"}get enabled(){return(Ue.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}get active(){if(!this.enabled)return!1;if(!Ue.native||this.forceFallback)return $i(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return ae.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}function Oi(t,e=1){return new Promise((i,s)=>{const r=new Image,a=()=>{delete r.onload,delete r.onerror,(r.naturalWidth>=e?i:s)(r)};Object.assign(r,{onload:a,onerror:a,src:t})})}const Y={addStyleHook(){H(this.elements.container,this.config.selectors.container.replace(".",""),!0),H(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(t=!1){t&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void Y.toggleNativeControls.call(this,!0);h.element(this.elements.controls)||(C.inject.call(this),this.listeners.controls()),Y.toggleNativeControls.call(this),this.isHTML5&&Z.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,C.updateVolume.call(this),C.timeUpdate.call(this),C.durationUpdate.call(this),Y.checkPlaying.call(this),H(this.elements.container,this.config.classNames.pip.supported,q.pip&&this.isHTML5&&this.isVideo),H(this.elements.container,this.config.classNames.airplay.supported,q.airplay&&this.isHTML5),H(this.elements.container,this.config.classNames.isIos,ae.isIos),H(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout(()=>{P.call(this,this.media,"ready")},0),Y.setTitle.call(this),this.poster&&Y.setPoster.call(this,this.poster,!1).catch(()=>{}),this.config.duration&&C.durationUpdate.call(this),this.config.mediaMetadata&&C.setMediaMetadata.call(this)},setTitle(){let t=ie.get("play",this.config);if(h.string(this.config.title)&&!h.empty(this.config.title)&&(t+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach(e=>{e.setAttribute("aria-label",t)}),this.isEmbed){const e=ee.call(this,"iframe");if(!h.element(e))return;const i=h.empty(this.config.title)?"video":this.config.title,s=ie.get("frameTitle",this.config);e.setAttribute("title",s.replace("{title}",i))}},togglePoster(t){H(this.elements.container,this.config.classNames.posterEnabled,t)},setPoster(t,e=!0){return e&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",t),this.elements.poster.removeAttribute("hidden"),Nu.call(this).then(()=>Oi(t)).catch(i=>{throw t===this.poster&&Y.togglePoster.call(this,!1),i}).then(()=>{if(t!==this.poster)throw new Error("setPoster cancelled by later call to setPoster")}).then(()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${t}')`,backgroundSize:""}),Y.togglePoster.call(this,!0),t)))},checkPlaying(t){H(this.elements.container,this.config.classNames.playing,this.playing),H(this.elements.container,this.config.classNames.paused,this.paused),H(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach(e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute("aria-label",ie.get(this.playing?"pause":"play",this.config))}),h.event(t)&&t.type==="timeupdate"||Y.toggleControls.call(this)},checkLoading(t){this.loading=["stalled","waiting"].includes(t.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout(()=>{H(this.elements.container,this.config.classNames.loading,this.loading),Y.toggleControls.call(this)},this.loading?250:0)},toggleControls(t){const{controls:e}=this.elements;if(e&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(t||this.loading||this.paused||e.pressed||e.hover||i))}},migrateStyles(){Object.values(O({},this.media.style)).filter(t=>!h.empty(t)&&h.string(t)&&t.startsWith("--plyr")).forEach(t=>{this.elements.container.style.setProperty(t,this.media.style.getPropertyValue(t)),this.media.style.removeProperty(t)}),h.empty(this.media.style)&&this.media.removeAttribute("style")}};class Ou{constructor(e){_(this,"firstTouch",()=>{const{player:i}=this,{elements:s}=i;i.touch=!0,H(s.container,i.config.classNames.isTouch,!0)}),_(this,"setTabFocus",i=>{const{player:s}=this,{elements:r}=s,{key:a,type:n,timeStamp:o}=i;if(clearTimeout(this.focusTimer),n==="keydown"&&a!=="Tab")return;n==="keydown"&&(this.lastKeyDown=o);const c=o-this.lastKeyDown<=20;(n!=="focus"||c)&&((()=>{const l=s.config.classNames.tabFocus;H(At.call(s,`.${l}`),l,!1)})(),n!=="focusout"&&(this.focusTimer=setTimeout(()=>{const l=document.activeElement;r.container.contains(l)&&H(document.activeElement,s.config.classNames.tabFocus,!0)},10)))}),_(this,"global",(i=!0)=>{const{player:s}=this;s.config.keyboard.global&&kt.call(s,window,"keydown keyup",this.handleKey,i,!1),kt.call(s,document.body,"click",this.toggleMenu,i),Xs.call(s,document.body,"touchstart",this.firstTouch),kt.call(s,document.body,"keydown focus blur focusout",this.setTabFocus,i,!1,!0)}),_(this,"container",()=>{const{player:i}=this,{config:s,elements:r,timers:a}=i;!s.keyboard.global&&s.keyboard.focused&&W.call(i,r.container,"keydown keyup",this.handleKey,!1),W.call(i,r.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",c=>{const{controls:l}=r;l&&c.type==="enterfullscreen"&&(l.pressed=!1,l.hover=!1);let d=0;["touchstart","touchmove","mousemove"].includes(c.type)&&(Y.toggleControls.call(i,!0),d=i.touch?3e3:2e3),clearTimeout(a.controls),a.controls=setTimeout(()=>Y.toggleControls.call(i,!1),d)});const n=()=>{if(!i.isVimeo||i.config.vimeo.premium)return;const c=r.wrapper,{active:l}=i.fullscreen,[d,u]=er.call(i),p=Yn(`aspect-ratio: ${d} / ${u}`);if(!l)return void(p?(c.style.width=null,c.style.height=null):(c.style.maxWidth=null,c.style.margin=null));const[m,g]=Pu(),f=m/g>d/u;p?(c.style.width=f?"auto":"100%",c.style.height=f?"100%":"auto"):(c.style.maxWidth=f?g/u*d+"px":null,c.style.margin=f?"0 auto":null)},o=()=>{clearTimeout(a.resized),a.resized=setTimeout(n,50)};W.call(i,r.container,"enterfullscreen exitfullscreen",c=>{const{target:l}=i.fullscreen;l===r.container&&(!i.isEmbed&&h.empty(i.config.ratio)||(n(),(c.type==="enterfullscreen"?W:ji).call(i,window,"resize",o)))})}),_(this,"media",()=>{const{player:i}=this,{elements:s}=i;if(W.call(i,i.media,"timeupdate seeking seeked",a=>C.timeUpdate.call(i,a)),W.call(i,i.media,"durationchange loadeddata loadedmetadata",a=>C.durationUpdate.call(i,a)),W.call(i,i.media,"ended",()=>{i.isHTML5&&i.isVideo&&i.config.resetOnEnd&&(i.restart(),i.pause())}),W.call(i,i.media,"progress playing seeking seeked",a=>C.updateProgress.call(i,a)),W.call(i,i.media,"volumechange",a=>C.updateVolume.call(i,a)),W.call(i,i.media,"playing play pause ended emptied timeupdate",a=>Y.checkPlaying.call(i,a)),W.call(i,i.media,"waiting canplay seeked playing",a=>Y.checkLoading.call(i,a)),i.supported.ui&&i.config.clickToPlay&&!i.isAudio){const a=ee.call(i,`.${i.config.classNames.video}`);if(!h.element(a))return;W.call(i,s.container,"click",n=>{([s.container,a].includes(n.target)||a.contains(n.target))&&(i.touch&&i.config.hideControls||(i.ended?(this.proxy(n,i.restart,"restart"),this.proxy(n,()=>{Oe(i.play())},"play")):this.proxy(n,()=>{Oe(i.togglePlay())},"play")))})}i.supported.ui&&i.config.disableContextMenu&&W.call(i,s.wrapper,"contextmenu",a=>{a.preventDefault()},!1),W.call(i,i.media,"volumechange",()=>{i.storage.set({volume:i.volume,muted:i.muted})}),W.call(i,i.media,"ratechange",()=>{C.updateSetting.call(i,"speed"),i.storage.set({speed:i.speed})}),W.call(i,i.media,"qualitychange",a=>{C.updateSetting.call(i,"quality",null,a.detail.quality)}),W.call(i,i.media,"ready qualitychange",()=>{C.setDownloadUrl.call(i)});const r=i.config.events.concat(["keyup","keydown"]).join(" ");W.call(i,i.media,r,a=>{let{detail:n={}}=a;a.type==="error"&&(n=i.media.error),P.call(i,s.container,a.type,!0,n)})}),_(this,"proxy",(i,s,r)=>{const{player:a}=this,n=a.config.listeners[r];let o=!0;h.function(n)&&(o=n.call(a,i)),o!==!1&&h.function(s)&&s.call(a,i)}),_(this,"bind",(i,s,r,a,n=!0)=>{const{player:o}=this,c=o.config.listeners[a],l=h.function(c);W.call(o,i,s,d=>this.proxy(d,r,a),n&&!l)}),_(this,"controls",()=>{const{player:i}=this,{elements:s}=i,r=ae.isIE?"change":"input";if(s.buttons.play&&Array.from(s.buttons.play).forEach(a=>{this.bind(a,"click",()=>{Oe(i.togglePlay())},"play")}),this.bind(s.buttons.restart,"click",i.restart,"restart"),this.bind(s.buttons.rewind,"click",()=>{i.lastSeekTime=Date.now(),i.rewind()},"rewind"),this.bind(s.buttons.fastForward,"click",()=>{i.lastSeekTime=Date.now(),i.forward()},"fastForward"),this.bind(s.buttons.mute,"click",()=>{i.muted=!i.muted},"mute"),this.bind(s.buttons.captions,"click",()=>i.toggleCaptions()),this.bind(s.buttons.download,"click",()=>{P.call(i,i.media,"download")},"download"),this.bind(s.buttons.fullscreen,"click",()=>{i.fullscreen.toggle()},"fullscreen"),this.bind(s.buttons.pip,"click",()=>{i.pip="toggle"},"pip"),this.bind(s.buttons.airplay,"click",i.airplay,"airplay"),this.bind(s.buttons.settings,"click",a=>{a.stopPropagation(),a.preventDefault(),C.toggleMenu.call(i,a)},null,!1),this.bind(s.buttons.settings,"keyup",a=>{["Space","Enter"].includes(a.key)&&(a.key!=="Enter"?(a.preventDefault(),a.stopPropagation(),C.toggleMenu.call(i,a)):C.focusFirstMenuItem.call(i,null,!0))},null,!1),this.bind(s.settings.menu,"keydown",a=>{a.key==="Escape"&&C.toggleMenu.call(i,a)}),this.bind(s.inputs.seek,"mousedown mousemove",a=>{const n=s.progress.getBoundingClientRect(),o=100/n.width*(a.pageX-n.left);a.currentTarget.setAttribute("seek-value",o)}),this.bind(s.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",a=>{const n=a.currentTarget,o="play-on-seeked";if(h.keyboardEvent(a)&&!["ArrowLeft","ArrowRight"].includes(a.key))return;i.lastSeekTime=Date.now();const c=n.hasAttribute(o),l=["mouseup","touchend","keyup"].includes(a.type);c&&l?(n.removeAttribute(o),Oe(i.play())):!l&&i.playing&&(n.setAttribute(o,""),i.pause())}),ae.isIos){const a=At.call(i,'input[type="range"]');Array.from(a).forEach(n=>this.bind(n,r,o=>On(o.target)))}this.bind(s.inputs.seek,r,a=>{const n=a.currentTarget;let o=n.getAttribute("seek-value");h.empty(o)&&(o=n.value),n.removeAttribute("seek-value"),i.currentTime=o/n.max*i.duration},"seek"),this.bind(s.progress,"mouseenter mouseleave mousemove",a=>C.updateSeekTooltip.call(i,a)),this.bind(s.progress,"mousemove touchmove",a=>{const{previewThumbnails:n}=i;n&&n.loaded&&n.startMove(a)}),this.bind(s.progress,"mouseleave touchend click",()=>{const{previewThumbnails:a}=i;a&&a.loaded&&a.endMove(!1,!0)}),this.bind(s.progress,"mousedown touchstart",a=>{const{previewThumbnails:n}=i;n&&n.loaded&&n.startScrubbing(a)}),this.bind(s.progress,"mouseup touchend",a=>{const{previewThumbnails:n}=i;n&&n.loaded&&n.endScrubbing(a)}),ae.isWebkit&&Array.from(At.call(i,'input[type="range"]')).forEach(a=>{this.bind(a,"input",n=>C.updateRangeFill.call(i,n.target))}),i.config.toggleInvert&&!h.element(s.display.duration)&&this.bind(s.display.currentTime,"click",()=>{i.currentTime!==0&&(i.config.invertTime=!i.config.invertTime,C.timeUpdate.call(i))}),this.bind(s.inputs.volume,r,a=>{i.volume=a.target.value},"volume"),this.bind(s.controls,"mouseenter mouseleave",a=>{s.controls.hover=!i.touch&&a.type==="mouseenter"}),s.fullscreen&&Array.from(s.fullscreen.children).filter(a=>!a.contains(s.container)).forEach(a=>{this.bind(a,"mouseenter mouseleave",n=>{s.controls&&(s.controls.hover=!i.touch&&n.type==="mouseenter")})}),this.bind(s.controls,"mousedown mouseup touchstart touchend touchcancel",a=>{s.controls.pressed=["mousedown","touchstart"].includes(a.type)}),this.bind(s.controls,"focusin",()=>{const{config:a,timers:n}=i;H(s.controls,a.classNames.noTransition,!0),Y.toggleControls.call(i,!0),setTimeout(()=>{H(s.controls,a.classNames.noTransition,!1)},0);const o=this.touch?3e3:4e3;clearTimeout(n.controls),n.controls=setTimeout(()=>Y.toggleControls.call(i,!1),o)}),this.bind(s.inputs.volume,"wheel",a=>{const n=a.webkitDirectionInvertedFromDevice,[o,c]=[a.deltaX,-a.deltaY].map(u=>n?-u:u),l=Math.sign(Math.abs(o)>Math.abs(c)?o:c);i.increaseVolume(l/50);const{volume:d}=i.media;(l===1&&d<1||l===-1&&d>0)&&a.preventDefault()},"volume",!1)}),this.player=e,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:i}=this,{elements:s}=i,{key:r,type:a,altKey:n,ctrlKey:o,metaKey:c,shiftKey:l}=e,d=a==="keydown",u=d&&r===this.lastKey;if(!(n||o||c||l)&&!!r){if(d){const m=document.activeElement;if(h.element(m)){const{editable:g}=i.config.selectors,{seek:f}=s.inputs;if(m!==f&&wt(m,g)||e.key==="Space"&&wt(m,'button, [role^="menuitem"]'))return}switch(["Space","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","0","1","2","3","4","5","6","7","8","9","c","f","k","l","m"].includes(r)&&(e.preventDefault(),e.stopPropagation()),r){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":u||(p=parseInt(r,10),i.currentTime=i.duration/10*p);break;case"Space":case"k":u||Oe(i.togglePlay());break;case"ArrowUp":i.increaseVolume(.1);break;case"ArrowDown":i.decreaseVolume(.1);break;case"m":u||(i.muted=!i.muted);break;case"ArrowRight":i.forward();break;case"ArrowLeft":i.rewind();break;case"f":i.fullscreen.toggle();break;case"c":u||i.toggleCaptions();break;case"l":i.loop=!i.loop}r==="Escape"&&!i.fullscreen.usingNative&&i.fullscreen.active&&i.fullscreen.toggle(),this.lastKey=r}else this.lastKey=null;var p}}toggleMenu(e){C.toggleMenu.call(this.player,e)}}function Uu(t,e){return t(e={exports:{}},e.exports),e.exports}var Hu=Uu(function(t,e){t.exports=function(){var i=function(){},s={},r={},a={};function n(p,m){p=p.push?p:[p];var g,f,b,x=[],M=p.length,y=M;for(g=function(k,D){D.length&&x.push(k),--y||m(x)};M--;)f=p[M],(b=r[f])?g(f,b):(a[f]=a[f]||[]).push(g)}function o(p,m){if(p){var g=a[p];if(r[p]=m,g)for(;g.length;)g[0](p,m),g.splice(0,1)}}function c(p,m){p.call&&(p={success:p}),m.length?(p.error||i)(m):(p.success||i)(p)}function l(p,m,g,f){var b,x,M=document,y=g.async,k=(g.numRetries||0)+1,D=g.before||i,T=p.replace(/[\?|#].*$/,""),U=p.replace(/^(css|img)!/,"");f=f||0,/(^css!|\.css$)/.test(T)?((x=M.createElement("link")).rel="stylesheet",x.href=U,(b="hideFocus"in x)&&x.relList&&(b=0,x.rel="preload",x.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(T)?(x=M.createElement("img")).src=U:((x=M.createElement("script")).src=p,x.async=y===void 0||y),x.onload=x.onerror=x.onbeforeload=function(ne){var J=ne.type[0];if(b)try{x.sheet.cssText.length||(J="e")}catch(Ae){Ae.code!=18&&(J="e")}if(J=="e"){if((f+=1)<k)return l(p,m,g,f)}else if(x.rel=="preload"&&x.as=="style")return x.rel="stylesheet";m(p,J,ne.defaultPrevented)},D(p,x)!==!1&&M.head.appendChild(x)}function d(p,m,g){var f,b,x=(p=p.push?p:[p]).length,M=x,y=[];for(f=function(k,D,T){if(D=="e"&&y.push(k),D=="b"){if(!T)return;y.push(k)}--x||m(y)},b=0;b<M;b++)l(p[b],f,g)}function u(p,m,g){var f,b;if(m&&m.trim&&(f=m),b=(f?g:m)||{},f){if(f in s)throw"LoadJS";s[f]=!0}function x(M,y){d(p,function(k){c(b,k),M&&c({success:M,error:y},k),o(f,k)},b)}if(b.returnPromise)return new Promise(x);x()}return u.ready=function(p,m){return n(p,function(g){c(m,g)}),u},u.done=function(p){o(p,[])},u.reset=function(){s={},r={},a={}},u.isDefined=function(p){return p in s},u}()});function ar(t){return new Promise((e,i)=>{Hu(t,{success:e,error:i})})}function Fu(t){return h.empty(t)?null:h.number(Number(t))?t:t.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:t}function Wu(t){const e=t.match(/^.*(vimeo.com\/|video\/)(\d+)(\?.*&*h=|\/)+([\d,a-f]+)/);return e&&e.length===5?e[4]:null}function si(t){t&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===t&&(this.media.paused=!t,P.call(this,this.media,t?"play":"pause"))}const nr={setup(){const t=this;H(t.elements.wrapper,t.config.classNames.embed,!0),t.options.speed=t.config.speed.options,Tt.call(t),h.object(window.Vimeo)?nr.ready.call(t):ar(t.config.urls.vimeo.sdk).then(()=>{nr.ready.call(t)}).catch(e=>{t.debug.warn("Vimeo SDK (player.js) failed to load",e)})},ready(){const t=this,e=t.config.vimeo,M=e,{premium:i,referrerPolicy:s}=M,r=mo(M,["premium","referrerPolicy"]);let a=t.media.getAttribute("src"),n="";h.empty(a)?(a=t.media.getAttribute(t.config.attributes.embed.id),n=t.media.getAttribute(t.config.attributes.embed.hash)):n=Wu(a);const o=n?{h:n}:{};i&&Object.assign(r,{controls:!1,sidedock:!1});const c=io(O(O({loop:t.config.loop.active,autoplay:t.autoplay,muted:t.muted,gesture:"media",playsinline:!this.config.fullscreen.iosNative},o),r)),l=Fu(a),d=N("iframe"),u=tr(t.config.urls.vimeo.iframe,l,c);if(d.setAttribute("src",u),d.setAttribute("allowfullscreen",""),d.setAttribute("allow",["autoplay","fullscreen","picture-in-picture","encrypted-media","accelerometer","gyroscope"].join("; ")),h.empty(s)||d.setAttribute("referrerPolicy",s),i||!e.customControls)d.setAttribute("data-poster",t.poster),t.media=Vi(d,t.media);else{const y=N("div",{class:t.config.classNames.embedContainer,"data-poster":t.poster});y.appendChild(d),t.media=Vi(y,t.media)}e.customControls||ii(tr(t.config.urls.vimeo.api,u)).then(y=>{!h.empty(y)&&y.thumbnail_url&&Y.setPoster.call(t,y.thumbnail_url).catch(()=>{})}),t.embed=new window.Vimeo.Player(d,{autopause:t.config.autopause,muted:t.muted}),t.media.paused=!0,t.media.currentTime=0,t.supported.ui&&t.embed.disableTextTrack(),t.media.play=()=>(si.call(t,!0),t.embed.play()),t.media.pause=()=>(si.call(t,!1),t.embed.pause()),t.media.stop=()=>{t.pause(),t.currentTime=0};let{currentTime:p}=t.media;Object.defineProperty(t.media,"currentTime",{get:()=>p,set(y){const{embed:k,media:D,paused:T,volume:U}=t,ne=T&&!k.hasPlayed;D.seeking=!0,P.call(t,D,"seeking"),Promise.resolve(ne&&k.setVolume(0)).then(()=>k.setCurrentTime(y)).then(()=>ne&&k.pause()).then(()=>ne&&k.setVolume(U)).catch(()=>{})}});let m=t.config.speed.selected;Object.defineProperty(t.media,"playbackRate",{get:()=>m,set(y){t.embed.setPlaybackRate(y).then(()=>{m=y,P.call(t,t.media,"ratechange")}).catch(()=>{t.options.speed=[1]})}});let{volume:g}=t.config;Object.defineProperty(t.media,"volume",{get:()=>g,set(y){t.embed.setVolume(y).then(()=>{g=y,P.call(t,t.media,"volumechange")})}});let{muted:f}=t.config;Object.defineProperty(t.media,"muted",{get:()=>f,set(y){const k=!!h.boolean(y)&&y;t.embed.setVolume(k?0:t.config.volume).then(()=>{f=k,P.call(t,t.media,"volumechange")})}});let b,{loop:x}=t.config;Object.defineProperty(t.media,"loop",{get:()=>x,set(y){const k=h.boolean(y)?y:t.config.loop.active;t.embed.setLoop(k).then(()=>{x=k})}}),t.embed.getVideoUrl().then(y=>{b=y,C.setDownloadUrl.call(t)}).catch(y=>{this.debug.warn(y)}),Object.defineProperty(t.media,"currentSrc",{get:()=>b}),Object.defineProperty(t.media,"ended",{get:()=>t.currentTime===t.duration}),Promise.all([t.embed.getVideoWidth(),t.embed.getVideoHeight()]).then(y=>{const[k,D]=y;t.embed.ratio=qn(k,D),Tt.call(this)}),t.embed.setAutopause(t.config.autopause).then(y=>{t.config.autopause=y}),t.embed.getVideoTitle().then(y=>{t.config.title=y,Y.setTitle.call(this)}),t.embed.getCurrentTime().then(y=>{p=y,P.call(t,t.media,"timeupdate")}),t.embed.getDuration().then(y=>{t.media.duration=y,P.call(t,t.media,"durationchange")}),t.embed.getTextTracks().then(y=>{t.media.textTracks=y,Z.setup.call(t)}),t.embed.on("cuechange",({cues:y=[]})=>{const k=y.map(D=>Vu(D.text));Z.updateCues.call(t,k)}),t.embed.on("loaded",()=>{t.embed.getPaused().then(y=>{si.call(t,!y),y||P.call(t,t.media,"playing")}),h.element(t.embed.element)&&t.supported.ui&&t.embed.element.setAttribute("tabindex",-1)}),t.embed.on("bufferstart",()=>{P.call(t,t.media,"waiting")}),t.embed.on("bufferend",()=>{P.call(t,t.media,"playing")}),t.embed.on("play",()=>{si.call(t,!0),P.call(t,t.media,"playing")}),t.embed.on("pause",()=>{si.call(t,!1)}),t.embed.on("timeupdate",y=>{t.media.seeking=!1,p=y.seconds,P.call(t,t.media,"timeupdate")}),t.embed.on("progress",y=>{t.media.buffered=y.percent,P.call(t,t.media,"progress"),parseInt(y.percent,10)===1&&P.call(t,t.media,"canplaythrough"),t.embed.getDuration().then(k=>{k!==t.media.duration&&(t.media.duration=k,P.call(t,t.media,"durationchange"))})}),t.embed.on("seeked",()=>{t.media.seeking=!1,P.call(t,t.media,"seeked")}),t.embed.on("ended",()=>{t.media.paused=!0,P.call(t,t.media,"ended")}),t.embed.on("error",y=>{t.media.error=y,P.call(t,t.media,"error")}),e.customControls&&setTimeout(()=>Y.build.call(t),0)}};function Zu(t){return h.empty(t)?null:t.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:t}function ri(t){t&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===t&&(this.media.paused=!t,P.call(this,this.media,t?"play":"pause"))}function Yu(t){return t.noCookie?"https://www.youtube-nocookie.com":window.location.protocol==="http:"?"http://www.youtube.com":void 0}const Ui={setup(){if(H(this.elements.wrapper,this.config.classNames.embed,!0),h.object(window.YT)&&h.function(window.YT.Player))Ui.ready.call(this);else{const t=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{h.function(t)&&t(),Ui.ready.call(this)},ar(this.config.urls.youtube.sdk).catch(e=>{this.debug.warn("YouTube API failed to load",e)})}},getTitle(t){ii(tr(this.config.urls.youtube.api,t)).then(e=>{if(h.object(e)){const{title:i,height:s,width:r}=e;this.config.title=i,Y.setTitle.call(this),this.embed.ratio=qn(r,s)}Tt.call(this)}).catch(()=>{Tt.call(this)})},ready(){const t=this,e=t.config.youtube,i=t.media&&t.media.getAttribute("id");if(!h.empty(i)&&i.startsWith("youtube-"))return;let s=t.media.getAttribute("src");h.empty(s)&&(s=t.media.getAttribute(this.config.attributes.embed.id));const r=Zu(s),a=N("div",{id:Eu(t.provider),"data-poster":e.customControls?t.poster:void 0});if(t.media=Vi(a,t.media),e.customControls){const n=o=>`https://i.ytimg.com/vi/${r}/${o}default.jpg`;Oi(n("maxres"),121).catch(()=>Oi(n("sd"),121)).catch(()=>Oi(n("hq"))).then(o=>Y.setPoster.call(t,o.src)).then(o=>{o.includes("maxres")||(t.elements.poster.style.backgroundSize="cover")}).catch(()=>{})}t.embed=new window.YT.Player(t.media,{videoId:r,host:Yu(e),playerVars:K({},{autoplay:t.config.autoplay?1:0,hl:t.config.hl,controls:t.supported.ui&&e.customControls?0:1,disablekb:1,playsinline:t.config.fullscreen.iosNative?0:1,cc_load_policy:t.captions.active?1:0,cc_lang_pref:t.config.captions.language,widget_referrer:window?window.location.href:null},e),events:{onError(n){if(!t.media.error){const o=n.data,c={2:"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[o]||"An unknown error occured";t.media.error={code:o,message:c},P.call(t,t.media,"error")}},onPlaybackRateChange(n){const o=n.target;t.media.playbackRate=o.getPlaybackRate(),P.call(t,t.media,"ratechange")},onReady(n){if(h.function(t.media.play))return;const o=n.target;Ui.getTitle.call(t,r),t.media.play=()=>{ri.call(t,!0),o.playVideo()},t.media.pause=()=>{ri.call(t,!1),o.pauseVideo()},t.media.stop=()=>{o.stopVideo()},t.media.duration=o.getDuration(),t.media.paused=!0,t.media.currentTime=0,Object.defineProperty(t.media,"currentTime",{get:()=>Number(o.getCurrentTime()),set(u){t.paused&&!t.embed.hasPlayed&&t.embed.mute(),t.media.seeking=!0,P.call(t,t.media,"seeking"),o.seekTo(u)}}),Object.defineProperty(t.media,"playbackRate",{get:()=>o.getPlaybackRate(),set(u){o.setPlaybackRate(u)}});let{volume:c}=t.config;Object.defineProperty(t.media,"volume",{get:()=>c,set(u){c=u,o.setVolume(100*c),P.call(t,t.media,"volumechange")}});let{muted:l}=t.config;Object.defineProperty(t.media,"muted",{get:()=>l,set(u){const p=h.boolean(u)?u:l;l=p,o[p?"mute":"unMute"](),o.setVolume(100*c),P.call(t,t.media,"volumechange")}}),Object.defineProperty(t.media,"currentSrc",{get:()=>o.getVideoUrl()}),Object.defineProperty(t.media,"ended",{get:()=>t.currentTime===t.duration});const d=o.getAvailablePlaybackRates();t.options.speed=d.filter(u=>t.config.speed.options.includes(u)),t.supported.ui&&e.customControls&&t.media.setAttribute("tabindex",-1),P.call(t,t.media,"timeupdate"),P.call(t,t.media,"durationchange"),clearInterval(t.timers.buffering),t.timers.buffering=setInterval(()=>{t.media.buffered=o.getVideoLoadedFraction(),(t.media.lastBuffered===null||t.media.lastBuffered<t.media.buffered)&&P.call(t,t.media,"progress"),t.media.lastBuffered=t.media.buffered,t.media.buffered===1&&(clearInterval(t.timers.buffering),P.call(t,t.media,"canplaythrough"))},200),e.customControls&&setTimeout(()=>Y.build.call(t),50)},onStateChange(n){const o=n.target;switch(clearInterval(t.timers.playing),t.media.seeking&&[1,2].includes(n.data)&&(t.media.seeking=!1,P.call(t,t.media,"seeked")),n.data){case-1:P.call(t,t.media,"timeupdate"),t.media.buffered=o.getVideoLoadedFraction(),P.call(t,t.media,"progress");break;case 0:ri.call(t,!1),t.media.loop?(o.stopVideo(),o.playVideo()):P.call(t,t.media,"ended");break;case 1:e.customControls&&!t.config.autoplay&&t.media.paused&&!t.embed.hasPlayed?t.media.pause():(ri.call(t,!0),P.call(t,t.media,"playing"),t.timers.playing=setInterval(()=>{P.call(t,t.media,"timeupdate")},50),t.media.duration!==o.getDuration()&&(t.media.duration=o.getDuration(),P.call(t,t.media,"durationchange")));break;case 2:t.muted||t.embed.unMute(),ri.call(t,!1);break;case 3:P.call(t,t.media,"waiting")}P.call(t,t.elements.container,"statechange",!1,{code:n.data})}}})}},ro={setup(){this.media?(H(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),H(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&H(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=N("div",{class:this.config.classNames.video}),Hn(this.media,this.elements.wrapper),this.elements.poster=N("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?nt.setup.call(this):this.isYouTube?Ui.setup.call(this):this.isVimeo&&nr.setup.call(this)):this.debug.warn("No media element found!")}};class Qu{constructor(e){_(this,"load",()=>{this.enabled&&(h.object(window.google)&&h.object(window.google.ima)?this.ready():ar(this.player.config.urls.googleIMA.sdk).then(()=>{this.ready()}).catch(()=>{this.trigger("error",new Error("Google IMA SDK failed to load"))}))}),_(this,"ready",()=>{var i;this.enabled||((i=this).manager&&i.manager.destroy(),i.elements.displayContainer&&i.elements.displayContainer.destroy(),i.elements.container.remove()),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then(()=>{this.clearSafetyTimer("onAdsManagerLoaded()")}),this.listeners(),this.setupIMA()}),_(this,"setupIMA",()=>{this.elements.container=N("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>this.onAdsManagerLoaded(i),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,i=>this.onAdError(i),!1),this.requestAds()}),_(this,"requestAds",()=>{const{container:i}=this.player.elements;try{const s=new google.ima.AdsRequest;s.adTagUrl=this.tagUrl,s.linearAdSlotWidth=i.offsetWidth,s.linearAdSlotHeight=i.offsetHeight,s.nonLinearAdSlotWidth=i.offsetWidth,s.nonLinearAdSlotHeight=i.offsetHeight,s.forceNonLinearFullSlot=!1,s.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(s)}catch(s){this.onAdError(s)}}),_(this,"pollCountdown",(i=!1)=>{if(!i)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");this.countdownTimer=setInterval(()=>{const s=Ri(Math.max(this.manager.getRemainingTime(),0)),r=`${ie.get("advertisement",this.player.config)} - ${s}`;this.elements.container.setAttribute("data-badge-text",r)},100)}),_(this,"onAdsManagerLoaded",i=>{if(!this.enabled)return;const s=new google.ima.AdsRenderingSettings;s.restoreCustomPlaybackStateOnAdBreakComplete=!0,s.enablePreloading=!0,this.manager=i.getAdsManager(this.player,s),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,r=>this.onAdError(r)),Object.keys(google.ima.AdEvent.Type).forEach(r=>{this.manager.addEventListener(google.ima.AdEvent.Type[r],a=>this.onAdEvent(a))}),this.trigger("loaded")}),_(this,"addCuePoints",()=>{h.empty(this.cuePoints)||this.cuePoints.forEach(i=>{if(i!==0&&i!==-1&&i<this.player.duration){const s=this.player.elements.progress;if(h.element(s)){const r=100/this.player.duration*i,a=N("span",{class:this.player.config.classNames.cues});a.style.left=`${r.toString()}%`,s.appendChild(a)}}})}),_(this,"onAdEvent",i=>{const{container:s}=this.player.elements,r=i.getAd(),a=i.getAdData();switch((n=>{P.call(this.player,this.player.media,`ads${n.replace(/_/g,"").toLowerCase()}`)})(i.type),i.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),r.isLinear()||(r.width=s.offsetWidth,r.height=s.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:a.adError&&this.player.debug.warn(`Non-fatal ad error: ${a.adError.getMessage()}`)}}),_(this,"onAdError",i=>{this.cancel(),this.player.debug.warn("Ads error",i)}),_(this,"listeners",()=>{const{container:i}=this.player.elements;let s;this.player.on("canplay",()=>{this.addCuePoints()}),this.player.on("ended",()=>{this.loader.contentComplete()}),this.player.on("timeupdate",()=>{s=this.player.currentTime}),this.player.on("seeked",()=>{const r=this.player.currentTime;h.empty(this.cuePoints)||this.cuePoints.forEach((a,n)=>{s<a&&a<r&&(this.manager.discardAdBreak(),this.cuePoints.splice(n,1))})}),window.addEventListener("resize",()=>{this.manager&&this.manager.resize(i.offsetWidth,i.offsetHeight,google.ima.ViewMode.NORMAL)})}),_(this,"play",()=>{const{container:i}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then(()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(i.offsetWidth,i.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(s){this.onAdError(s)}}).catch(()=>{})}),_(this,"resumeContent",()=>{this.elements.container.style.zIndex="",this.playing=!1,Oe(this.player.media.play())}),_(this,"pauseContent",()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()}),_(this,"cancel",()=>{this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()}),_(this,"loadAds",()=>{this.managerPromise.then(()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise(i=>{this.on("loaded",i),this.player.debug.log(this.manager)}),this.initialized=!1,this.requestAds()}).catch(()=>{})}),_(this,"trigger",(i,...s)=>{const r=this.events[i];h.array(r)&&r.forEach(a=>{h.function(a)&&a.apply(this,s)})}),_(this,"on",(i,s)=>(h.array(this.events[i])||(this.events[i]=[]),this.events[i].push(s),this)),_(this,"startSafetyTimer",(i,s)=>{this.player.debug.log(`Safety timer invoked from: ${s}`),this.safetyTimer=setTimeout(()=>{this.cancel(),this.clearSafetyTimer("startSafetyTimer()")},i)}),_(this,"clearSafetyTimer",i=>{h.nullOrUndefined(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${i}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)}),this.player=e,this.config=e.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise((i,s)=>{this.on("loaded",i),this.on("error",s)}),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!h.empty(e.publisherId)||h.url(e.tagUrl))}get tagUrl(){const{config:e}=this;return h.url(e.tagUrl)?e.tagUrl:`https://go.aniview.com/api/adserver6/vast/?${io({AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId})}`}}function ao(t=0,e=0,i=255){return Math.min(Math.max(t,e),i)}const Gu=t=>{const e=[];return t.split(/\r\n\r\n|\n\n|\r\r/).forEach(i=>{const s={};i.split(/\r\n|\n|\r/).forEach(r=>{if(h.number(s.startTime)){if(!h.empty(r.trim())&&h.empty(s.text)){const a=r.trim().split("#xywh=");[s.text]=a,a[1]&&([s.x,s.y,s.w,s.h]=a[1].split(","))}}else{const a=r.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);a&&(s.startTime=60*Number(a[1]||0)*60+60*Number(a[2])+Number(a[3])+Number(`0.${a[4]}`),s.endTime=60*Number(a[6]||0)*60+60*Number(a[7])+Number(a[8])+Number(`0.${a[9]}`))}}),s.text&&e.push(s)}),e},no=(t,e)=>{const i={};return t>e.width/e.height?(i.width=e.width,i.height=1/t*e.width):(i.height=e.height,i.width=t*e.height),i};class or{constructor(e){_(this,"load",()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then(()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.loaded=!0)})}),_(this,"getThumbnails",()=>new Promise(i=>{const{src:s}=this.player.config.previewThumbnails;if(h.empty(s))throw new Error("Missing previewThumbnails.src config attribute");const r=()=>{this.thumbnails.sort((a,n)=>a.height-n.height),this.player.debug.log("Preview thumbnails",this.thumbnails),i()};if(h.function(s))s(a=>{this.thumbnails=a,r()});else{const a=(h.string(s)?[s]:s).map(n=>this.getThumbnail(n));Promise.all(a).then(r)}})),_(this,"getThumbnail",i=>new Promise(s=>{ii(i).then(r=>{const a={frames:Gu(r),height:null,urlPrefix:""};a.frames[0].text.startsWith("/")||a.frames[0].text.startsWith("http://")||a.frames[0].text.startsWith("https://")||(a.urlPrefix=i.substring(0,i.lastIndexOf("/")+1));const n=new Image;n.onload=()=>{a.height=n.naturalHeight,a.width=n.naturalWidth,this.thumbnails.push(a),s()},n.src=a.urlPrefix+a.frames[0].text})})),_(this,"startMove",i=>{if(this.loaded&&h.event(i)&&["touchmove","mousemove"].includes(i.type)&&this.player.media.duration){if(i.type==="touchmove")this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var s,r;const a=this.player.elements.progress.getBoundingClientRect(),n=100/a.width*(i.pageX-a.left);this.seekTime=this.player.media.duration*(n/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=i.pageX,this.elements.thumb.time.innerText=Ri(this.seekTime);const o=(s=this.player.config.markers)===null||s===void 0||(r=s.points)===null||r===void 0?void 0:r.find(({time:c})=>c===Math.round(this.seekTime));o&&this.elements.thumb.time.insertAdjacentHTML("afterbegin",`${o.label}<br>`)}this.showImageAtCurrentTime()}}),_(this,"endMove",()=>{this.toggleThumbContainer(!1,!0)}),_(this,"startScrubbing",i=>{(h.nullOrUndefined(i.button)||i.button===!1||i.button===0)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))}),_(this,"endScrubbing",()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):Xs.call(this.player,this.player.media,"timeupdate",()=>{this.mouseDown||this.toggleScrubbingContainer(!1)})}),_(this,"listeners",()=>{this.player.on("play",()=>{this.toggleThumbContainer(!1,!0)}),this.player.on("seeked",()=>{this.toggleThumbContainer(!1)}),this.player.on("timeupdate",()=>{this.lastTime=this.player.media.currentTime})}),_(this,"render",()=>{this.elements.thumb.container=N("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=N("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const i=N("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=N("span",{},"00:00"),i.appendChild(this.elements.thumb.time),this.elements.thumb.imageContainer.appendChild(i),h.element(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=N("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}),_(this,"destroy",()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()}),_(this,"showImageAtCurrentTime",()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const i=this.thumbnails[0].frames.findIndex(a=>this.seekTime>=a.startTime&&this.seekTime<=a.endTime),s=i>=0;let r=0;this.mouseDown||this.toggleThumbContainer(s),s&&(this.thumbnails.forEach((a,n)=>{this.loadedImages.includes(a.frames[i].text)&&(r=n)}),i!==this.showingThumb&&(this.showingThumb=i,this.loadImage(r)))}),_(this,"loadImage",(i=0)=>{const s=this.showingThumb,r=this.thumbnails[i],{urlPrefix:a}=r,n=r.frames[s],o=r.frames[s].text,c=a+o;if(this.currentImageElement&&this.currentImageElement.dataset.filename===o)this.showImage(this.currentImageElement,n,i,s,o,!1),this.currentImageElement.dataset.index=s,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const l=new Image;l.src=c,l.dataset.index=s,l.dataset.filename=o,this.showingThumbFilename=o,this.player.debug.log(`Loading image: ${c}`),l.onload=()=>this.showImage(l,n,i,s,o,!0),this.loadingImage=l,this.removeOldImages(l)}}),_(this,"showImage",(i,s,r,a,n,o=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${a}. qual: ${r}. newimg: ${o}`),this.setImageSizeAndOffset(i,s),o&&(this.currentImageContainer.appendChild(i),this.currentImageElement=i,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(a,!0).then(this.preloadNearby(a,!1)).then(this.getHigherQuality(r,i,s,n))}),_(this,"removeOldImages",i=>{Array.from(this.currentImageContainer.children).forEach(s=>{if(s.tagName.toLowerCase()!=="img")return;const r=this.usingSprites?500:1e3;if(s.dataset.index!==i.dataset.index&&!s.dataset.deleting){s.dataset.deleting=!0;const{currentImageContainer:a}=this;setTimeout(()=>{a.removeChild(s),this.player.debug.log(`Removing thumb: ${s.dataset.filename}`)},r)}})}),_(this,"preloadNearby",(i,s=!0)=>new Promise(r=>{setTimeout(()=>{const a=this.thumbnails[0].frames[i].text;if(this.showingThumbFilename===a){let n;n=s?this.thumbnails[0].frames.slice(i):this.thumbnails[0].frames.slice(0,i).reverse();let o=!1;n.forEach(c=>{const l=c.text;if(l!==a&&!this.loadedImages.includes(l)){o=!0,this.player.debug.log(`Preloading thumb filename: ${l}`);const{urlPrefix:d}=this.thumbnails[0],u=d+l,p=new Image;p.src=u,p.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${l}`),this.loadedImages.includes(l)||this.loadedImages.push(l),r()}}}),o||r()}},300)})),_(this,"getHigherQuality",(i,s,r,a)=>{if(i<this.thumbnails.length-1){let n=s.naturalHeight;this.usingSprites&&(n=r.h),n<this.thumbContainerHeight&&setTimeout(()=>{this.showingThumbFilename===a&&(this.player.debug.log(`Showing higher quality thumb for: ${a}`),this.loadImage(i+1))},300)}}),_(this,"toggleThumbContainer",(i=!1,s=!1)=>{const r=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(r,i),!i&&s&&(this.showingThumb=null,this.showingThumbFilename=null)}),_(this,"toggleScrubbingContainer",(i=!1)=>{const s=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(s,i),i||(this.showingThumb=null,this.showingThumbFilename=null)}),_(this,"determineContainerAutoSizing",()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)}),_(this,"setThumbContainerSizeAndPos",()=>{const{imageContainer:i}=this.elements.thumb;if(this.sizeSpecifiedInCSS){if(i.clientHeight>20&&i.clientWidth<20){const s=Math.floor(i.clientHeight*this.thumbAspectRatio);i.style.width=`${s}px`}else if(i.clientHeight<20&&i.clientWidth>20){const s=Math.floor(i.clientWidth/this.thumbAspectRatio);i.style.height=`${s}px`}}else{const s=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);i.style.height=`${this.thumbContainerHeight}px`,i.style.width=`${s}px`}this.setThumbContainerPos()}),_(this,"setThumbContainerPos",()=>{const i=this.player.elements.progress.getBoundingClientRect(),s=this.player.elements.container.getBoundingClientRect(),{container:r}=this.elements.thumb,a=s.left-i.left+10,n=s.right-i.left-r.clientWidth-10,o=this.mousePosX-i.left-r.clientWidth/2,c=ao(o,a,n);r.style.left=`${c}px`,r.style.setProperty("--preview-arrow-offset",o-c+"px")}),_(this,"setScrubbingContainerSize",()=>{const{width:i,height:s}=no(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${i}px`,this.elements.scrubbing.container.style.height=`${s}px`}),_(this,"setImageSizeAndOffset",(i,s)=>{if(!this.usingSprites)return;const r=this.thumbContainerHeight/s.h;i.style.height=i.naturalHeight*r+"px",i.style.width=i.naturalWidth*r+"px",i.style.left=`-${s.x*r}px`,i.style.top=`-${s.y*r}px`}),this.player=e,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=no(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}const lr={insertElements(t,e){h.string(e)?Fn(t,this.media,{src:e}):h.array(e)&&e.forEach(i=>{Fn(t,this.media,i)})},change(t){Un(t,"sources.length")?(nt.cancelRequests.call(this),this.destroy.call(this,()=>{this.options.quality=[],Qe(this.media),this.media=null,h.element(this.elements.container)&&this.elements.container.removeAttribute("class");const{sources:e,type:i}=t,[{provider:s=ot.html5,src:r}]=e,a=s==="html5"?i:"div",n=s==="html5"?{}:{src:r};Object.assign(this,{provider:s,type:i,supported:q.check(i,s,this.config.playsinline),media:N(a,n)}),this.elements.container.appendChild(this.media),h.boolean(t.autoplay)&&(this.config.autoplay=t.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute("crossorigin",""),this.config.autoplay&&this.media.setAttribute("autoplay",""),h.empty(t.poster)||(this.poster=t.poster),this.config.loop.active&&this.media.setAttribute("loop",""),this.config.muted&&this.media.setAttribute("muted",""),this.config.playsinline&&this.media.setAttribute("playsinline","")),Y.addStyleHook.call(this),this.isHTML5&&lr.insertElements.call(this,"source",e),this.config.title=t.title,ro.setup.call(this),this.isHTML5&&Object.keys(t).includes("tracks")&&lr.insertElements.call(this,"track",t.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&Y.build.call(this),this.isHTML5&&this.media.load(),h.empty(t.previewThumbnails)||(Object.assign(this.config.previewThumbnails,t.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new or(this))),this.fullscreen.update()},!0)):this.debug.warn("Invalid source format")}};class ai{constructor(e,i){if(_(this,"play",()=>h.function(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then(()=>this.ads.play()).catch(()=>Oe(this.media.play())),this.media.play()):null),_(this,"pause",()=>this.playing&&h.function(this.media.pause)?this.media.pause():null),_(this,"togglePlay",o=>(h.boolean(o)?o:!this.playing)?this.play():this.pause()),_(this,"stop",()=>{this.isHTML5?(this.pause(),this.restart()):h.function(this.media.stop)&&this.media.stop()}),_(this,"restart",()=>{this.currentTime=0}),_(this,"rewind",o=>{this.currentTime-=h.number(o)?o:this.config.seekTime}),_(this,"forward",o=>{this.currentTime+=h.number(o)?o:this.config.seekTime}),_(this,"increaseVolume",o=>{const c=this.media.muted?0:this.volume;this.volume=c+(h.number(o)?o:0)}),_(this,"decreaseVolume",o=>{this.increaseVolume(-o)}),_(this,"airplay",()=>{q.airplay&&this.media.webkitShowPlaybackTargetPicker()}),_(this,"toggleControls",o=>{if(this.supported.ui&&!this.isAudio){const c=$i(this.elements.container,this.config.classNames.hideControls),l=o===void 0?void 0:!o,d=H(this.elements.container,this.config.classNames.hideControls,l);if(d&&h.array(this.config.controls)&&this.config.controls.includes("settings")&&!h.empty(this.config.settings)&&C.toggleMenu.call(this,!1),d!==c){const u=d?"controlshidden":"controlsshown";P.call(this,this.media,u)}return!d}return!1}),_(this,"on",(o,c)=>{W.call(this,this.elements.container,o,c)}),_(this,"once",(o,c)=>{Xs.call(this,this.elements.container,o,c)}),_(this,"off",(o,c)=>{ji(this.elements.container,o,c)}),_(this,"destroy",(o,c=!1)=>{if(!this.ready)return;const l=()=>{document.body.style.overflow="",this.embed=null,c?(Object.keys(this.elements).length&&(Qe(this.elements.buttons.play),Qe(this.elements.captions),Qe(this.elements.controls),Qe(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),h.function(o)&&o()):(Tu.call(this),nt.cancelRequests.call(this),Vi(this.elements.original,this.elements.container),P.call(this,this.elements.original,"destroyed",!0),h.function(o)&&o.call(this.elements.original),this.ready=!1,setTimeout(()=>{this.elements=null,this.media=null},200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(Y.toggleNativeControls.call(this,!0),l()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),this.embed!==null&&h.function(this.embed.destroy)&&this.embed.destroy(),l()):this.isVimeo&&(this.embed!==null&&this.embed.unload().then(l),setTimeout(l,200))}),_(this,"supports",o=>q.mime.call(this,o)),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=q.touch,this.media=e,h.string(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||h.nodeList(this.media)||h.array(this.media))&&(this.media=this.media[0]),this.config=K({},so,ai.defaults,i||{},(()=>{try{return JSON.parse(this.media.getAttribute("data-plyr-config"))}catch{return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new Ru(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",q),h.nullOrUndefined(this.media)||!h.element(this.media))return void this.debug.error("Setup failed: no suitable element passed");if(this.media.plyr)return void this.debug.warn("Target already setup");if(!this.config.enabled)return void this.debug.error("Setup failed: disabled by config");if(!q.check().api)return void this.debug.error("Setup failed: no support");const s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;const r=this.media.tagName.toLowerCase();let a=null,n=null;switch(r){case"div":if(a=this.media.querySelector("iframe"),h.element(a)){if(n=to(a.getAttribute("src")),this.provider=Bu(n.toString()),this.elements.container=this.media,this.media=a,this.elements.container.className="",n.search.length){const o=["1","true"];o.includes(n.searchParams.get("autoplay"))&&(this.config.autoplay=!0),o.includes(n.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=o.includes(n.searchParams.get("playsinline")),this.config.youtube.hl=n.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(h.empty(this.provider)||!Object.values(ot).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=sr.video;break;case"video":case"audio":this.type=r,this.provider=ot.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=q.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new Ou(this),this.storage=new ti(this),this.media.plyr=this,h.element(this.elements.container)||(this.elements.container=N("div",{tabindex:0}),Hn(this.media,this.elements.container)),Y.migrateStyles.call(this),Y.addStyleHook.call(this),ro.setup.call(this),this.config.debug&&W.call(this,this.elements.container,this.config.events.join(" "),o=>{this.debug.log(`event: ${o.type}`)}),this.fullscreen=new Ue(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&Y.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new Qu(this)),this.isHTML5&&this.config.autoplay&&this.once("canplay",()=>Oe(this.play())),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new or(this))):this.debug.error("Setup failed: no support")}get isHTML5(){return this.provider===ot.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===ot.youtube}get isVimeo(){return this.provider===ot.vimeo}get isVideo(){return this.type===sr.video}get isAudio(){return this.type===sr.audio}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&this.currentTime===0)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const i=h.number(e)&&e>0;this.media.currentTime=i?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return h.number(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=parseFloat(this.config.duration),i=(this.media||{}).duration,s=h.number(i)&&i!==1/0?i:0;return e||s}set volume(e){let i=e;h.string(i)&&(i=Number(i)),h.number(i)||(i=this.storage.get("volume")),h.number(i)||({volume:i}=this.config),i>1&&(i=1),i<0&&(i=0),this.config.volume=i,this.media.volume=i,!h.empty(e)&&this.muted&&i>0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let i=e;h.boolean(i)||(i=this.storage.get("muted")),h.boolean(i)||(i=this.config.muted),this.config.muted=i,this.media.muted=i}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||!!this.isAudio||Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)}set speed(e){let i=null;h.number(e)&&(i=e),h.number(i)||(i=this.storage.get("speed")),h.number(i)||(i=this.config.speed.selected);const{minimumSpeed:s,maximumSpeed:r}=this;i=ao(i,s,r),this.config.speed.selected=i,setTimeout(()=>{this.media&&(this.media.playbackRate=i)},0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const i=this.config.quality,s=this.options.quality;if(!s.length)return;let r=[!h.empty(e)&&Number(e),this.storage.get("quality"),i.selected,i.default].find(h.number),a=!0;if(!s.includes(r)){const n=Zn(s,r);this.debug.warn(`Unsupported quality option: ${r}, using ${n} instead`),r=n,a=!1}i.selected=r,this.media.quality=r,a&&this.storage.set({quality:r})}get quality(){return this.media.quality}set loop(e){const i=h.boolean(e)?e:this.config.loop.active;this.config.loop.active=i,this.media.loop=i}get loop(){return Boolean(this.media.loop)}set source(e){lr.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return h.url(e)?e:this.source}set download(e){h.url(e)&&(this.config.urls.download=e,C.setDownloadUrl.call(this))}set poster(e){this.isVideo?Y.setPoster.call(this,e,!1).catch(()=>{}):this.debug.warn("Poster can only be set for video")}get poster(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}get ratio(){if(!this.isVideo)return null;const e=Bi(er.call(this));return h.array(e)?e.join(":"):e}set ratio(e){this.isVideo?h.string(e)&&Gn(e)?(this.config.ratio=Bi(e),Tt.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn("Aspect ratio can only be set for video")}set autoplay(e){this.config.autoplay=h.boolean(e)?e:this.config.autoplay}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){Z.toggle.call(this,e,!1)}set currentTrack(e){Z.set.call(this,e,!1),Z.setup.call(this)}get currentTrack(){const{toggled:e,currentTrack:i}=this.captions;return e?i:-1}set language(e){Z.setLanguage.call(this,e,!1)}get language(){return(Z.getCurrentTrack.call(this)||{}).language}set pip(e){if(!q.pip)return;const i=h.boolean(e)?e:!this.pip;h.function(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(i?ir.active:ir.inactive),h.function(this.media.requestPictureInPicture)&&(!this.pip&&i?this.media.requestPictureInPicture():this.pip&&!i&&document.exitPictureInPicture())}get pip(){return q.pip?h.empty(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===ir.active:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new or(this))}static supported(e,i,s){return q.check(e,i,s)}static loadSprite(e,i){return Kn(e,i)}static setup(e,i={}){let s=null;return h.string(e)?s=Array.from(document.querySelectorAll(e)):h.nodeList(e)?s=Array.from(e):h.array(e)&&(s=e.filter(h.element)),h.empty(s)?null:s.map(r=>new ai(r,i))}}ai.defaults=Iu(so);function qu(t){let e,i,s;return{c(){e=It("video"),i=It("source"),yn(i.src,s=t[3])||I(i,"src",s),I(i,"type",t[2]),I(e,"data-app-kind","Plyr"),I(e,"crossorigin","anonymous"),e.playsInline=!0,I(e,"data-poster",t[4])},m(r,a){Ct(r,e,a),$(e,i),t[8](e)},p:at,d(r){r&&bt(e),t[8](null)}}}function Ju(t){let e,i,s;return{c(){e=It("audio"),i=It("source"),yn(i.src,s=t[3])||I(i,"src",s),I(i,"type",t[2]),I(e,"data-app-kind","Plyr"),I(e,"crossorigin","anonymous"),I(e,"data-poster",t[4])},m(r,a){Ct(r,e,a),$(e,i),t[7](e)},p:at,d(r){r&&bt(e),t[7](null)}}}function Xu(t){let e,i,s=JSON.stringify({src:t[3],type:t[0].state.type})+"",r;return{c(){e=It("div"),i=Hs(`Invalid "src" or "type".
|
126
|
+
`),r=Hs(s),I(e,"data-app-kind","Plyr"),I(e,"class","plyr--audio")},m(a,n){Ct(a,e,n),$(e,i),$(e,r)},p(a,n){n&1&&s!==(s=JSON.stringify({src:a[3],type:a[0].state.type})+"")&&Dd(r,s)},d(a){a&&bt(e)}}}function Ku(t){let e;return{c(){e=It("div"),I(e,"data-app-kind","Plyr"),I(e,"class","plyr__video-embed"),I(e,"data-plyr-provider","youtube"),I(e,"data-plyr-embed-id",t[3]),I(e,"data-poster",t[4])},m(i,s){Ct(i,e,s),t[6](e)},p:at,d(i){i&&bt(e),t[6](null)}}}function ep(t){let e,i,s,r;function a(c,l){return c[0].state.provider==="youtube"?Ku:c[2]?(e==null&&(e=!!c[2].startsWith("audio/")),e?Ju:qu):Xu}let n=a(t),o=n(t);return s=new eu({}),{c(){o.c(),i=Ed(),Ud(s.$$.fragment)},m(c,l){o.m(c,l),Ct(c,i,l),Sn(s,c,l),r=!0},p(c,[l]){n===(n=a(c))&&o?o.p(c,l):(o.d(1),o=n(c),o&&(o.c(),o.m(i.parentNode,i)))},i(c){r||(Mn(s.$$.fragment,c),r=!0)},o(c){Od(s.$$.fragment,c),r=!1},d(c){o.d(c),c&&bt(i),Cn(s,c)}}}function tp(t,e,i){let{storage:s}=e,{sync:r}=e;const a=s.state.provider?void 0:s.state.type||Zd(s.state.src),{src:n,poster:o}=s.state,c=Wd.includes(String(a).toLowerCase());let l,d;Ld(async()=>{if(l){if(c&&qd(l)){const g=await Gd();g.loadSource(n),g.attachMedia(l)}d=new ai(l,{fullscreen:{enabled:!1},controls:["play","progress","current-time","mute","volume"],clickToPlay:!1,youtube:{autoplay:!0},loadSprite:!1}),i(5,r.player=d,r)}}),Vd(()=>{try{r.dispose(),d==null||d.destroy()}catch(g){console.warn("[Plyr] destroy plyr error",g)}});function u(g){Xt[g?"unshift":"push"](()=>{l=g,i(1,l)})}function p(g){Xt[g?"unshift":"push"](()=>{l=g,i(1,l)})}function m(g){Xt[g?"unshift":"push"](()=>{l=g,i(1,l)})}return t.$$set=g=>{"storage"in g&&i(0,s=g.storage),"sync"in g&&i(5,r=g.sync)},[s,l,a,n,o,r,u,p,m]}class ip extends _n{constructor(e){super();In(this,e,tp,ep,bn,{storage:0,sync:5})}}class sp{constructor(e){this.context=e,this.behavior="owner",this._skip_next_play_pause=0,this._sync_timer=0,this._interval=1e3,this._blink=0,this._player=null,this._buffering=!1,this._throttle=0,this._dispatch_time_again=!1,this._buffering_timer=0,this._disposer=null;const i=e.room,s=e.displayer;this.uid=i?i.uid:"",this.getTimestamp=i?()=>i.calibrationTimestamp:()=>s.beginTimestamp+s.progressTime,this._disposer=this.context.storage.addStateChangedListener(this.syncAll.bind(this))}dispose(){this._disposer&&this._disposer(),this._disposer=null,clearInterval(this._sync_timer),clearTimeout(this._buffering_timer)}get player(){return this._player}set player(e){this._player=e,e&&e.once("ready",this.setupPlayer.bind(this,e))}setupPlayer(e){this.registerListeners(e),this.watchUserInputs(e),this._sync_timer=setInterval(this.syncAll.bind(this),this._interval)}syncAll(){const{behavior:e,player:i,context:s}=this;if(!i)return;const{storage:r}=s,{currentTime:a,hostTime:n,muted:o,paused:c,volume:l,owner:d}=r.state;e==="owner"&&d===this.uid||(c!==i.paused&&!this._skip_next_play_pause&&(console.log("< sync paused",c),c?i.pause():Yd(i)),o!==i.muted&&(console.log("< sync muted",o),i.muted=o),l!==i.volume&&(console.log("< sync volume",l),i.volume=l),!this._buffering&&(c?Math.abs(i.currentTime-a)>.5&&(console.log("< sync current time (paused)",a),i.currentTime=a):this.syncCurrentTime(n,a,i)))}watchUserInputs(e){const i=e.elements.controls,s=Xd(e.elements.buttons.play),r=i==null?void 0:i.querySelector('input[data-plyr="seek"]'),a=i==null?void 0:i.querySelector('button[data-plyr="mute"]'),n=i==null?void 0:i.querySelector('input[data-plyr="volume"]');this.fixSeekBarOnInit(r,e),s==null||s.addEventListener("click",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchPlayPause(e)}),r==null||r.addEventListener("change",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchSeek(e,r)}),a==null||a.addEventListener("click",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchVolume(e)}),n==null||n.addEventListener("change",()=>{this.behavior==="owner"&&this.dispatchOwner(),this.dispatchVolume(e)})}fixSeekBarOnInit(e,i){const{currentTime:s}=this.context.storage.state;if(i.duration&&s&&e){const r=100*s/i.duration;e.value=r.toFixed(2)}}registerListeners(e){e.on("ended",()=>{e.stop(),this.context.storage.setState({paused:!0,currentTime:0})}),e.on("waiting",()=>{this._buffering=!0,this._buffering_timer=setTimeout(this.clearBuffering.bind(this),this._interval/2)}),e.on("playing",()=>{this._buffering=!1}),e.on("timeupdate",()=>{this.isOwner()&&this.dispatchCurrentTime(e)}),e.on("volumechange",()=>{this.isOwner()&&this.dispatchVolume(e)}),e.on("play",()=>{this.isOwner()&&this.dispatchPlayPause(e)}),e.on("pause",()=>{this.isOwner()&&this.dispatchPlayPause(e)})}clearBuffering(){this._buffering=!1,this._buffering_timer=0}dispatchOwner(){this.context.storage.state.owner!==this.uid&&(console.log("> set owner",this.uid),this.context.storage.setState({owner:this.uid}))}dispatchPlayPause(e){console.log("> set paused",e.paused),this.context.storage.setState({hostTime:this.getTimestamp(),currentTime:e.currentTime,paused:e.paused}),clearTimeout(this._skip_next_play_pause),this._skip_next_play_pause=setTimeout(this.skipNextPlayPause.bind(this),500)}skipNextPlayPause(){this._skip_next_play_pause=0}dispatchVolume(e){console.log("> set volume",e.volume),this.context.storage.setState({muted:e.muted,volume:e.volume})}dispatchSeek(e,i){const s=i.valueAsNumber*e.duration/100;console.log("> set current time (seek)",s),this.context.storage.setState({hostTime:this.getTimestamp(),currentTime:s})}dispatchCurrentTime(e){if(this._throttle){this._dispatch_time_again=!0;return}console.log("> set current time",e.currentTime),this.context.storage.setState({hostTime:this.getTimestamp(),currentTime:e.currentTime}),this._throttle=setTimeout(this.clearThrottle.bind(this,e),1e3)}clearThrottle(e){this._throttle=0,this._dispatch_time_again&&(this._dispatch_time_again=!1,this.dispatchCurrentTime(e))}isOwner(){return this.behavior==="owner"&&this.context.storage.state.owner===this.uid}syncCurrentTime(e,i,s){const r=this.getTimestamp();if(r&&e){const a=i+(r-e)/1e3;Math.abs(a-s.currentTime)>1?(console.log("< sync current time (playing)",a),s.currentTime=a,this._blink++,this._blink>3&&this.updateSyncInterval(!0)):this.updateSyncInterval(!1)}}updateSyncInterval(e){this._blink=0,this._interval=Jd(this._interval+(e?2e3:-2e3),1e3,15e3),clearTimeout(this._sync_timer),this._sync_timer=setInterval(this.syncAll.bind(this),this._interval)}}var rp=(()=>`@charset "UTF-8";@keyframes plyr-progress{to{background-position:25px 0;background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{0%{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:400;font-weight:var(--plyr-font-weight-regular,400);line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui :after,.plyr--full-ui :before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:2px;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:9px;font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:13px;font-size:var(--plyr-font-size-small,13px);left:0;padding:10px;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:15px;font-size:var(--plyr-font-size-base,15px);padding:20px;padding:calc(var(--plyr-control-spacing, 10px)*2)}}@media (min-width:768px){.plyr__captions{font-size:18px;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px);transform:translateY(calc(var(--plyr-control-spacing, 10px)*-4))}.plyr__caption{background:rgba(0,0,0,.8);background:var(--plyr-captions-background,rgba(0,0,0,.8));border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:transparent;border:0;border-radius:3px;border-radius:var(--plyr-control-radius,3px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7);position:relative;transition:all .3s ease}.plyr__control svg{fill:currentColor;display:block;height:18px;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:18px;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}a.plyr__control{text-decoration:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed,a.plyr__control:after,a.plyr__control:before{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px;margin-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px;padding-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px;padding:0 calc(var(--plyr-control-spacing, 10px)/2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip],.plyr__controls:empty{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:hsla(0,0%,100%,.9);background:var(--plyr-menu-background,hsla(0,0%,100%,.9));border-radius:4px;bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-menu-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:15px;font-size:var(--plyr-font-size-base,15px);margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container:after{border:4px solid transparent;border-top-color:#ffffffe6;border:var(--plyr-menu-arrow-size,4px) solid transparent;border-top-color:var(--plyr-menu-background,hsla(0,0%,100%,.9));content:"";height:0;position:absolute;right:14px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7 - var(--plyr-menu-arrow-size, 4px)/2);top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:13px;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding:4.66667px 10.5px;padding:calc(var(--plyr-control-spacing, 10px)*.7/1.5) calc(var(--plyr-control-spacing, 10px)*.7*1.5);-webkit-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control:after{border:4px solid transparent;border:var(--plyr-menu-item-arrow-size,4px) solid transparent;content:"";position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px)*.7*4)}.plyr__menu__container .plyr__control--forward:after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:6.5px;right:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--forward.plyr__tab-focus:after,.plyr__menu__container .plyr__control--forward:hover:after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:400;font-weight:var(--plyr-font-weight-regular,400);margin:7px;margin:calc(var(--plyr-control-spacing, 10px)*.7);margin-bottom:3.5px;margin-bottom:calc(var(--plyr-control-spacing, 10px)*.7/2);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*4);position:relative;width:calc(100% - 14px);width:calc(100% - var(--plyr-control-spacing, 10px)*.7*2)}.plyr__menu__container .plyr__control--back:after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:6.5px;left:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--back:before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px #fff;box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:"";height:1px;left:0;margin-top:3.5px;margin-top:calc(var(--plyr-control-spacing, 10px)*.7/2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus:after,.plyr__menu__container .plyr__control--back:hover:after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container .plyr__control[role=menuitemradio]:after,.plyr__menu__container .plyr__control[role=menuitemradio]:before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]:before{background:rgba(0,0,0,.1);content:"";display:block;flex-shrink:0;height:16px;margin-right:10px;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]:after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:before{background:#00b2ff;background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus:before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover:before{background:rgba(35,40,47,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:calc(-7px + 2);margin-right:calc(var(--plyr-control-spacing, 10px)*.7*-1 - -2);overflow:hidden;padding-left:24.5px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:26px;border-radius:calc(var(--plyr-range-thumb-height, 13px)*2);color:#00b2ff;color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));display:block;height:19px;height:calc(var(--plyr-range-thumb-active-shadow-width, 3px)*2 + var(--plyr-range-thumb-height, 13px));margin:0;min-width:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:transparent;background-image:linear-gradient(90deg,currentColor 0,transparent 0);background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0));border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:-4px;margin-top:calc((var(--plyr-range-thumb-height, 13px) - var(--plyr-range-track-height, 5px))/2*-1);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-track{background:transparent;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper,.plyr--full-ui input[type=range]::-ms-track{background:transparent;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:transparent;background:currentColor;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:0;position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{outline:3px dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted 3px;outline-offset:2px}.plyr__poster{background-color:#000;background-color:var(--plyr-video-background,var(--plyr-video-background,#000));background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster{display:none}.plyr__time{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time:before{content:"\\2044";margin-right:10px;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:hsla(0,0%,100%,.9);background:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:5px;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:13px;font-size:var(--plyr-font-size-small,13px);font-weight:400;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:5px 7.5px;padding:calc(var(--plyr-control-spacing, 10px)/2) calc(var(--plyr-control-spacing, 10px)/2*1.5);pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;white-space:nowrap;z-index:2}.plyr__tooltip:before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translateY(10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip:before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip:before{left:16px;left:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7)}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translateY(10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip:before{left:auto;right:16px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7);transform:translate(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0) scale(1)}.plyr__progress{left:6.5px;left:calc(var(--plyr-range-thumb-height, 13px)*.5);margin-right:13px;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-left:calc(var(--plyr-range-thumb-height, 13px)*-.5);margin-right:-6.5px;margin-right:calc(var(--plyr-range-thumb-height, 13px)*-.5);width:calc(100% + 13px);width:calc(100% + var(--plyr-range-thumb-height, 13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{left:0;max-width:120px;overflow-wrap:break-word;white-space:normal}.plyr__progress__buffer{-webkit-appearance:none;background:transparent;border:0;border-radius:100px;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin-top:-2.5px;margin-top:calc((var(--plyr-range-track-height, 5px)/2)*-1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:transparent}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,40,47,.6) 25%,transparent 0,transparent 50%,rgba(35,40,47,.6) 0,rgba(35,40,47,.6) 75%,transparent 0,transparent);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 25%,transparent 25%,transparent 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:#ffffff40;background-color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:#c1c8d199;background-color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr__progress__marker{background-color:#fff;background-color:var(--plyr-progress-marker-background,#fff);border-radius:1px;height:5px;height:var(--plyr-range-track-height,5px);position:absolute;top:50%;transform:translate(-50%,-50%);width:3px;width:var(--plyr-progress-marker-width,3px);z-index:3}.plyr__volume{align-items:center;display:flex;max-width:110px;min-width:80px;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:5px;margin-left:calc(var(--plyr-control-spacing, 10px)/2);margin-right:5px;margin-right:calc(var(--plyr-control-spacing, 10px)/2);position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:10px;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--audio .plyr__progress__buffer{color:#c1c8d199;color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr--video{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{aspect-ratio:16/9}@supports not (aspect-ratio:16/9){.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%;position:relative}}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(transparent,rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:5px;padding:calc(var(--plyr-control-spacing, 10px)/2);padding-top:20px;padding-top:calc(var(--plyr-control-spacing, 10px)*2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:10px;padding:var(--plyr-control-spacing,10px);padding-top:35px;padding-top:calc(var(--plyr-control-spacing, 10px)*3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:15px;padding:calc(var(--plyr-control-spacing, 10px)*1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--video .plyr__progress__buffer{color:#ffffff40;color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen video{height:100%}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;bottom:0;display:block;height:100%;left:0;margin:0;position:fixed;right:0;top:0;width:100%;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads:after{background:#23282f;border-radius:2px;bottom:10px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads:empty:after{display:none}.plyr__cues{background:currentColor;display:block;height:5px;height:var(--plyr-range-track-height,5px);left:0;opacity:.8;position:absolute;top:50%;transform:translateY(-50%);width:3px;z-index:3}.plyr__preview-thumb{background-color:#ffffffe6;background-color:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:5px;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translateY(10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0) scale(1)}.plyr__preview-thumb:before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:calc(50% + var(--preview-arrow-offset));position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:4px;border-radius:calc(var(--plyr-tooltip-radius, 5px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img,.plyr__preview-thumb__image-container:after{height:100%;left:0;position:absolute;top:0;width:100%}.plyr__preview-thumb__image-container:after{border-radius:inherit;box-shadow:inset 0 0 0 1px #00000026;content:"";pointer-events:none}.plyr__preview-thumb__image-container img{max-height:none;max-width:none}.plyr__preview-thumb__time-container{background:linear-gradient(transparent,rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--plyr-tooltip-radius, 5px) - 1px);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--plyr-tooltip-radius, 5px) - 1px);bottom:0;left:0;line-height:1.1;padding:20px 6px 6px;position:absolute;right:0;z-index:3}.plyr__preview-thumb__time-container span{color:#fff;font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;-o-object-fit:contain;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);border:0!important;height:1px!important;overflow:hidden;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}.plyr--video{width:100%;height:100%}.plyr--audio{width:100%;height:100%;display:flex;align-items:stretch;justify-content:center;background-color:#fff}.telebox-color-scheme-dark .plyr--audio{color-scheme:dark;background-color:#121212;--plyr-audio-controls-background: #121212;--plyr-audio-control-color: #eee}
|
127
|
+
`)();const ap={volume:1,paused:!0,muted:!1,currentTime:0},Hi={kind:"Plyr",config:{minwidth:300,minheight:80},setup(t){const e=t.storage;if(e.ensureState(ap),!e.state.src){t.emitter.emit("destroy",{error:new Error('[Plyr]: missing "src"')});return}!e.state.type&&!e.state.provider&&console.warn('[Plyr]: missing "type", will guess from file extension');const i=t.box;i.mountStyles(rp);const s=new sp(t),r=new ip({target:i.$content,props:{storage:t.storage,sync:s}});t.emitter.on("destroy",()=>{try{s.dispose(),r.$destroy()}catch{}})}},np=()=>{ue.register({kind:ki.kind,src:ki}),ue.register({kind:Hi.kind,src:Hi})},cr={DocsViewer:ki.kind,MediaPlayer:Hi.kind},op={[cr.DocsViewer]:ki,[cr.MediaPlayer]:Hi};var Ap="",kp="";const oo=new jc({emitter:z}),B=class extends S.InvisiblePlugin{constructor(t){super(t);this.version="1.0.0-canary.43",this.dependencies={dependencies:{"@juggle/resize-observer":"^3.3.1","@netless/telebox-insider":"1.0.0-alpha.35",emittery:"^0.11.0",lodash:"^4.17.21","p-retry":"^4.6.2","side-effect-manager":"^1.1.1",uuid:"^7.0.3","value-enhancer":"^1.3.2"},peerDependencies:{"white-web-sdk":"^2.16.0"},devDependencies:{"@netless/app-docs-viewer":"^0.3.0","@netless/app-plyr":"0.2.0","@playwright/test":"^1.23.2","@rollup/plugin-commonjs":"^20.0.0","@rollup/plugin-node-resolve":"^13.0.4","@rollup/plugin-url":"^6.1.0","@sveltejs/vite-plugin-svelte":"^1.0.0-next.49","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash":"^4.14.182","@types/lodash-es":"^4.17.6","@types/node":"^18.0.3","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","@vitest/ui":"^0.14.2",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",jsdom:"^19.0.0",less:"^4.1.3",prettier:"^2.3.2","prettier-plugin-svelte":"^2.4.0","rollup-plugin-analyzer":"^4.0.0","rollup-plugin-styles":"^3.14.1",svelte:"^3.42.4",typescript:"^4.5.5",vite:"^2.5.3","vite-plugin-dts":"^1.2.1",vitest:"^0.18.0","white-web-sdk":"2.16.26"}},this.emitter=G,this.viewMode=S.ViewMode.Broadcaster,this.viewMode$=new w.Val(S.ViewMode.Broadcaster),this.isReplay=S.isPlayer(this.displayer),this.cameraUpdating=0,this.containerSizeRatio=B.containerSizeRatio,this.moveCamera=e=>{var r;const i=O({},this.mainView.camera),s=O(O({},i),e);if(!v.isEqual(s,i)&&!!this.appManager)if(e.animationMode===S.AnimationMode.Immediately)this.appManager.mainViewProxy.storeCamera(O({id:this.appManager.uid},s));else{const a=this.appManager.mainViewProxy.size$.value,n=(r=this.boxManager)==null?void 0:r.stageRect;let o;e.scale&&a&&n&&(o=e.scale*ci(a,n)),o?this.mainView.moveCamera(ge(O({},e),{scale:o})):this.mainView.moveCamera(e),this.appManager.dispatchInternalEvent(Q.MoveCamera,e);const c=()=>{this.cameraUpdating&&clearTimeout(this.cameraUpdating),this.cameraUpdating=setTimeout(()=>{this.mainView.callbacks.off("onCameraUpdated",c),clearTimeout(this.cameraUpdating),this.cameraUpdating=0,this.appManager&&this.appManager.mainViewProxy.storeCamera(O({id:this.appManager.uid},s))},50)};this.mainView.callbacks.off("onCameraUpdated",c),this.mainView.callbacks.on("onCameraUpdated",c)}},B.displayer=t.displayer,window.NETLESS_DEPS={dependencies:{"@juggle/resize-observer":"^3.3.1","@netless/telebox-insider":"1.0.0-alpha.35",emittery:"^0.11.0",lodash:"^4.17.21","p-retry":"^4.6.2","side-effect-manager":"^1.1.1",uuid:"^7.0.3","value-enhancer":"^1.3.2"},peerDependencies:{"white-web-sdk":"^2.16.0"},devDependencies:{"@netless/app-docs-viewer":"^0.3.0","@netless/app-plyr":"0.2.0","@playwright/test":"^1.23.2","@rollup/plugin-commonjs":"^20.0.0","@rollup/plugin-node-resolve":"^13.0.4","@rollup/plugin-url":"^6.1.0","@sveltejs/vite-plugin-svelte":"^1.0.0-next.49","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash":"^4.14.182","@types/lodash-es":"^4.17.6","@types/node":"^18.0.3","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","@vitest/ui":"^0.14.2",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",jsdom:"^19.0.0",less:"^4.1.3",prettier:"^2.3.2","prettier-plugin-svelte":"^2.4.0","rollup-plugin-analyzer":"^4.0.0","rollup-plugin-styles":"^3.14.1",svelte:"^3.42.4",typescript:"^4.5.5",vite:"^2.5.3","vite-plugin-dts":"^1.2.1",vitest:"^0.18.0","white-web-sdk":"2.16.26"}}}static async mount(t){var a;const e=t.room;B.container=t.container;const i=t.debug,s=t.cursor;B.params=t,B.displayer=t.room,qo();let r;if(S.isRoom(e)){if(e.phase!==S.RoomPhase.Connected)throw new Error("[WindowManager]: Room only Connected can be mount");e.phase===S.RoomPhase.Connected&&e.isWritable&&(e.disableSerialization=!1),r=await this.initManager(e)}if(B.isCreated)throw new Error("[WindowManager]: Already created cannot be created again");if(this.debug=Boolean(i),Xe("Already insert room",r),S.isRoom(this.displayer)){if(!r)throw new Error("[WindowManager]: init InvisiblePlugin failed")}else await bo.default(async n=>{if(r=await e.getInvisiblePlugin(B.kind),!r)throw Xe(`manager is empty. retrying ${n}`),new Error},{retries:10});if(!r)throw new Error("[WindowManager]: create manager failed");t.containerSizeRatio&&(B.containerSizeRatio=t.containerSizeRatio),r.containerSizeRatio=B.containerSizeRatio,await r.ensureAttributes(),r.appManager=new al(r),r._pageState=new $c(r.appManager),r.cursorManager=new Vc(r.appManager,Boolean(s),t.applianceIcons),r.boxManager=hc(r,G,z,He,{collectorContainer:t.collectorContainer,collectorStyles:t.collectorStyles,prefersColorScheme:t.prefersColorScheme,stageRatio:B.containerSizeRatio,containerStyle:t.containerStyle,stageStyle:t.stageStyle,fullscreen:t.fullscreen}),(a=r.appManager)==null||a.setBoxManager(r.boxManager),t.container&&r.bindContainer(t.container),Bc(e,r),z.emit("onCreated"),B.isCreated=!0;try{await So()}catch(n){console.warn("[WindowManager]: indexedDB open failed"),console.log(n)}return r}static async initManager(t){let e=t.getInvisiblePlugin(B.kind);if(!e&&S.isRoom(t))if(t.isWritable===!1){try{await t.setWritable(!0)}catch{throw new Error("[WindowManger]: room must be switched to be writable")}e=await Or(t),e==null||e.ensureAttributes(),await li(500),await t.setWritable(!1)}else e=await Or(t);return e}static initContainer(t,e,i){B.container||(B.container=t);const{playground:s,mainViewElement:r}=Go(t,e);if(B.playground=s,i){const a=document.createElement("style");a.textContent=i,s.appendChild(a)}return r}static get registered(){return me.registered}bindContainer(t){var e,i,s,r,a,n;if(S.isRoom(this.displayer)&&this.room.phase!==S.RoomPhase.Connected)throw new Dr;if(B.isCreated&&B.container)B.container.firstChild&&t.appendChild(B.container.firstChild);else{const o=(e=this.boxManager)==null?void 0:e.teleBoxManager.$stage;if(B.params&&o){const c=B.params,l=B.initContainer(t,o,c.overwriteStyles);this.boxManager&&B.playground&&this.boxManager.setRoot(B.playground),this.bindMainView(l,c.disableCameraTransform),B.playground&&((i=this.cursorManager)==null||i.setupWrapper(B.playground))}}z.emit("updateManagerRect"),(s=this.appManager)==null||s.refresh(),(r=this.appManager)==null||r.resetMaximized(),(a=this.appManager)==null||a.resetMinimized(),(n=this.appManager)==null||n.displayerWritableListener(!this.room.isWritable),B.container=t}bindCollectorContainer(t){B.isCreated&&this.boxManager?this.boxManager.setCollector(t):B.params&&(B.params.collectorContainer=t)}static register(t){return me.register(t)}static unregister(t){return me.unregister(t)}async addApp(t){if(this.appManager)return this.appManager.rootDirRemoving?new Promise((e,i)=>{z.once("rootDirRemoved").then(async()=>{try{const s=await this._addApp(t);e(s)}catch(s){i(s.message)}})}):this._addApp(t);throw new fe}async _addApp(t){var e,i,s;if(this.appManager){if(!t.kind||typeof t.kind!="string")throw new Pr;const r=await((e=me.appClasses.get(t.kind))==null?void 0:e());if(r&&((i=r.config)==null?void 0:i.singleton)&&this.appManager.appProxies.has(t.kind))throw new Tr;const a=this.setupScenePath(t,this.appManager);return a===void 0?void 0:((s=t==null?void 0:t.options)!=null&&s.scenePath&&(t.options.scenePath=Ro(t.options.scenePath)),await this.appManager.addApp(t,Boolean(a)))}else throw new fe}setupScenePath(t,e){let i=!1;if(t.options){const{scenePath:s,scenes:r}=t.options;if(s){if(!Bo(s))throw new zr;const a=Object.keys(this.apps||{});for(const n of a){const o=e.store.getAppScenePath(n);if(o&&o===s){if(console.warn(`[WindowManager]: ScenePath ${s} Already opened`),this.boxManager){const c=this.boxManager.getTopBox();c&&this.boxManager.setZIndex(n,c.zIndex+1,!1)}return}}}s&&r&&r.length>0&&(this.isDynamicPPT(r)?(i=!0,ut(this.displayer)[s]||vt(this.room,s,r)):ut(this.displayer)[s]||vt(this.room,s,[{name:r[0].name}])),s&&r===void 0&&vt(this.room,s,[{}])}return i}async setMainViewScenePath(t){this.appManager&&await this.appManager.setMainViewScenePath(t)}async setMainViewSceneIndex(t){this.appManager&&await this.appManager.setMainViewSceneIndex(t)}async nextPage(){if(this.appManager){const t=this.mainViewSceneIndex+1;return t>=this.mainViewScenesLength?(console.warn("[WindowManager]: current page is the last page"),!1):(await this.appManager.setMainViewSceneIndex(t),!0)}else return!1}async prevPage(){if(this.appManager){const t=this.mainViewSceneIndex-1;return t<0?(console.warn("[WindowManager]: current page is the first page"),!1):(await this.appManager.setMainViewSceneIndex(t),!0)}else return!1}async jumpPage(t){return this.appManager?t<0||t>=this.pageState.length?(console.warn(`[WindowManager]: index ${t} out of range`),!1):(await this.appManager.setMainViewSceneIndex(t),!0):!1}async addPage(t){if(this.appManager){const e=t==null?void 0:t.after,i=t==null?void 0:t.scene;if(e){const s=this.mainViewSceneIndex+1;this.room.putScenes(xe,[i||{}],s)}else this.room.putScenes(xe,[i||{}])}}async removePage(t){if(this.appManager){const e=t===void 0?this.pageState.index:t;return this.pageState.length===1?(console.warn("[WindowManager]: can not remove the last page"),!1):e<0||e>=this.pageState.length?(console.warn(`[WindowManager]: index ${t} out of range`),!1):this.appManager.removeSceneByIndex(e)}else return!1}getMainViewScenePath(){var t;return(t=this.appManager)==null?void 0:t.store.getMainViewScenePath()}getMainViewSceneIndex(){var t;return(t=this.appManager)==null?void 0:t.store.getMainViewSceneIndex()}setReadonly(t){var e;this.readonly=t,(e=this.boxManager)==null||e.setReadonly(t),z.emit("setReadonly",t)}switchMainViewToWriter(){var t;return(t=this.appManager)==null?void 0:t.mainViewProxy.mainViewClickHandler()}onAppDestroy(t,e){$o(`destroy-${t}`,e)}setViewMode(t){var i;Xe("setViewMode",t);const e=(i=this.appManager)==null?void 0:i.mainViewProxy;t===S.ViewMode.Broadcaster&&(this.canOperate&&(e==null||e.storeCurrentCamera()),e==null||e.start()),t===S.ViewMode.Freedom&&(e==null||e.stop()),this.viewMode=t,this.viewMode$.setValue(t)}setBoxState(t){if(!!this.canOperate)switch(t){case"normal":this.setMaximized(!1),this.setMinimized(!1);break;case"maximized":this.setMaximized(!0),this.setMinimized(!1);break;case"minimized":this.setMinimized(!0);break}}setMaximized(t){var e;!this.canOperate||(e=this.boxManager)==null||e.setMaximized(t,!1)}setMinimized(t){var e;!this.canOperate||(e=this.boxManager)==null||e.setMinimized(t,!1)}get mainView(){if(this.appManager)return this.appManager.mainViewProxy.view;throw new fe}get camera(){if(this.appManager)return this.appManager.mainViewProxy.view.camera;throw new fe}get baseCamera(){if(this.appManager)return this.appManager.mainViewProxy.camera$.value;throw new fe}get baseSize(){if(this.appManager)return this.appManager.mainViewProxy.size$.value;throw new fe}get cameraState(){if(this.appManager)return this.appManager.mainViewProxy.cameraState;throw new fe}get apps(){var t;return(t=this.appManager)==null?void 0:t.store.apps()}get boxState(){var t;if(this.appManager)return(t=this.appManager.boxManager)==null?void 0:t.boxState;throw new fe}get darkMode(){var t,e;return Boolean((e=(t=this.appManager)==null?void 0:t.boxManager)==null?void 0:e.darkMode)}get prefersColorScheme(){var t;if(this.appManager)return(t=this.appManager.boxManager)==null?void 0:t.prefersColorScheme;throw new fe}get fullscreen(){var t;if(this.appManager)return(t=this.appManager.boxManager)==null?void 0:t.teleBoxManager.fullscreen;throw new fe}get focused(){return this.attributes.focus}get focusedView(){var t,e;return((e=(t=this.appManager)==null?void 0:t.focusApp)==null?void 0:e.view)||this.mainView}get mainViewSceneIndex(){var t;return((t=this._pageState)==null?void 0:t.index)||0}get mainViewSceneDir(){var t;if(this.appManager)return(t=this.appManager)==null?void 0:t.getMainViewSceneDir();throw new fe}get topApp(){var t,e;return(e=(t=this.boxManager)==null?void 0:t.getTopBox())==null?void 0:e.id}get mainViewScenesLength(){var t;return((t=this._pageState)==null?void 0:t.length)||0}get canRedoSteps(){var t;return((t=this.focusedView)==null?void 0:t.canRedoSteps)||0}get canUndoSteps(){var t;return((t=this.focusedView)==null?void 0:t.canUndoSteps)||0}get sceneState(){if(this.appManager)return this.appManager.sceneState;throw new fe}get pageState(){if(this._pageState)return this._pageState.toObject();throw new fe}get teleboxManager(){if(!this.boxManager)throw new Xi;return this.boxManager.teleBoxManager}queryAll(){var t;return Array.from(((t=this.appManager)==null?void 0:t.appProxies.values())||[])}queryOne(t){var e;return(e=this.appManager)==null?void 0:e.appProxies.get(t)}async closeApp(t){var e;return(e=this.appManager)==null?void 0:e.closeApp(t)}convertToPointInWorld(t){return this.mainView.convertToPointInWorld(t)}setCameraBound(t){this.mainView.setCameraBound(t)}onDestroy(){this._destroy()}destroy(){this._destroy()}_destroy(){var t,e,i;(t=this.appManager)==null||t.destroy(),(e=this.cursorManager)==null||e.destroy(),B.container=void 0,B.isCreated=!1,B.playground&&((i=B.playground.parentNode)==null||i.removeChild(B.playground)),B.params=void 0,Xe("Destroyed")}bindMainView(t,e){var i;this.appManager&&(this.appManager.bindMainView(t,Boolean(e)),(i=this.cursorManager)==null||i.setMainViewDivElement(t))}get canOperate(){return S.isRoom(this.displayer)?this.displayer.isWritable&&this.displayer.phase===S.RoomPhase.Connected:!1}get room(){return this.displayer}safeSetAttributes(t){this.canOperate&&this.setAttributes(t)}safeUpdateAttributes(t,e){this.canOperate&&this.updateAttributes(t,e)}setPrefersColorScheme(t){var e,i;(i=(e=this.appManager)==null?void 0:e.boxManager)==null||i.setPrefersColorScheme(t)}setFullscreen(t){var e,i;(i=(e=this.appManager)==null?void 0:e.boxManager)==null||i.teleBoxManager.setFullscreen(t)}cleanCurrentScene(){var t;(t=this.focusedView)==null||t.cleanCurrentScene()}redo(){var t;return((t=this.focusedView)==null?void 0:t.redo())||0}undo(){var t;return((t=this.focusedView)==null?void 0:t.undo())||0}delete(){var t;(t=this.focusedView)==null||t.delete()}copy(){var t;(t=this.focusedView)==null||t.copy()}paste(){var t;(t=this.focusedView)==null||t.paste()}duplicate(){var t;(t=this.focusedView)==null||t.duplicate()}insertText(t,e,i){var s;return((s=this.focusedView)==null?void 0:s.insertText(t,e,i))||""}insertImage(t){var e;return(e=this.focusedView)==null?void 0:e.insertImage(t)}completeImageUpload(t,e){var i;return(i=this.focusedView)==null?void 0:i.completeImageUpload(t,e)}lockImage(t,e){var i;return(i=this.focusedView)==null?void 0:i.lockImage(t,e)}lockImages(t){var e;return(e=this.focusedView)==null?void 0:e.lockImages(t)}refresh(){var t;this._refresh(),(t=this.appManager)==null||t.dispatchInternalEvent(Q.Refresh)}_refresh(){var t,e;(t=this.appManager)==null||t.mainViewProxy.rebind(),B.container&&this.bindContainer(B.container),(e=this.appManager)==null||e.refresher.refresh()}setContainerSizeRatio(t){if(!v.isNumber(t))throw new Error(`[WindowManager]: updateContainerSizeRatio error, ratio must be a number. but got ${t}`);B.containerSizeRatio=t,this.containerSizeRatio=t,z.emit("containerSizeRatioUpdate",t)}setContainerStyle(t){var e;(e=this.boxManager)==null||e.teleBoxManager.setContainerStyle(t)}setStageStyle(t){var e;(e=this.boxManager)==null||e.teleBoxManager.setStageStyle(t)}setBaseSize(t){var e;(e=this.appManager)==null||e.mainViewProxy.setMainViewSize(t),setTimeout(()=>{!this.appManager||!this.appManager.mainViewProxy.camera$.value||this.appManager.mainViewProxy.storeCamera(ge(O({},this.appManager.mainViewProxy.camera$.value),{id:this.appManager.uid,scale:1}))},500)}createPPTHandler(){return{onPageJumpTo:(t,e)=>{var i,s,r,a;(a=(r=(s=(i=this.appManager)==null?void 0:i.focusApp)==null?void 0:s.appContext)==null?void 0:r.whiteBoardView)==null||a.jumpPage(e)},onPageToNext:()=>{var t,e,i,s;this.focused&&((s=(i=(e=(t=this.appManager)==null?void 0:t.focusApp)==null?void 0:e.appContext)==null?void 0:i.whiteBoardView)==null||s.nextPage())},onPageToPrev:()=>{var t,e,i,s;this.focused&&((s=(i=(e=(t=this.appManager)==null?void 0:t.focusApp)==null?void 0:e.appContext)==null?void 0:i.whiteBoardView)==null||s.prevPage())}}}isDynamicPPT(t){var i,s;const e=(s=(i=t[0])==null?void 0:i.ppt)==null?void 0:s.src;return e==null?void 0:e.startsWith("pptx://")}async ensureAttributes(){v.isNull(this.attributes)&&await li(50),v.isObject(this.attributes)&&(this.attributes[te.Apps]||this.safeSetAttributes({[te.Apps]:{}}),this.attributes[te.Cursors]||this.safeSetAttributes({[te.Cursors]:{}}),this.attributes._mainScenePath||this.safeSetAttributes({_mainScenePath:Mr}),this.attributes._mainSceneIndex||this.safeSetAttributes({_mainSceneIndex:0}),this.attributes[te.Registered]||this.safeSetAttributes({[te.Registered]:{}}))}};let ue=B;ue.kind="WindowManager",ue.debug=!1,ue.containerSizeRatio=vo,ue.isCreated=!1,np(),E.AppCreateError=Tr,E.AppManagerNotInitError=fe,E.AppNotRegisterError=Fo,E.BindContainerRoomPhaseInvalidError=Dr,E.BoxManagerNotInitializeError=Xi,E.BoxNotCreatedError=Er,E.BuiltinApps=cr,E.BuiltinAppsMap=op,E.InvalidScenePath=zr,E.ParamsInvalidError=Pr,E.WhiteWebSDKInvalidError=Nr,E.WindowManager=ue,E.calculateNextIndex=es,E.reconnectRefresher=oo,Object.defineProperties(E,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|