@netless/window-manager 0.3.25 → 0.3.26
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/.idea/inspectionProfiles/Project_Default.xml +7 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/.idea/window-manager.iml +12 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -1
- package/src/AppManager.ts +5 -0
- package/src/index.ts +4 -4
package/dist/index.es.js
CHANGED
@@ -38,5 +38,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
38
38
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
39
39
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
40
40
|
PERFORMANCE OF THIS SOFTWARE.
|
41
|
-
***************************************************************************** */function vf(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(i[n[r]]=e[n[r]])}return i}var wf=0,bf="undefined"!=typeof window&&void 0!==window.requestAnimationFrame?function(e){return window.requestAnimationFrame(e)}:function(e){var t=Date.now(),i=Math.max(0,16.7-(t-wf));wf=t+i,setTimeout((function(){return e(wf)}),i)},yf=1/60*1e3,xf=!0,Mf=!1,Cf=!1,If={delta:0,timestamp:0},Sf=["read","update","preRender","render","postRender"],Ef=function(e){return Mf=e},Tf=Sf.reduce((function(e,t){var i,n,r,s,a,o,l,c,u;return e[t]=(i=Ef,n=[],r=[],s=0,a=!1,o=0,l=new WeakSet,c=new WeakSet,u={cancel:function(e){var t=r.indexOf(e);l.add(e),-1!==t&&r.splice(t,1)},process:function(e){var t,d;if(a=!0,n=(t=[r,n])[0],(r=t[1]).length=0,s=n.length)for(o=0;o<s;o++)(d=n[o])(e),!0!==c.has(d)||l.has(d)||(u.schedule(d),i(!0));a=!1},schedule:function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=!1);var o=i&&a,u=o?n:r;l.delete(e),t&&c.add(e),-1===u.indexOf(e)&&(u.push(e),o&&(s=n.length))}}),e}),{}),Af=Sf.reduce((function(e,t){var i=Tf[t];return e[t]=function(e,t,n){return void 0===t&&(t=!1),void 0===n&&(n=!1),Mf||Pf(),i.schedule(e,t,n),e},e}),{}),kf=function(e){return Tf[e].process(If)},Nf=function(e){Mf=!1,If.delta=xf?yf:Math.max(Math.min(e-If.timestamp,40),1),xf||(yf=If.delta),If.timestamp=e,Cf=!0,Sf.forEach(kf),Cf=!1,Mf&&(xf=!1,bf(Nf))},Pf=function(){Mf=!0,xf=!0,Cf||bf(Nf)},zf=function(){return(zf=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},Df=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},Lf=function(e){return e%1?Number(e.toFixed(5)):e},Bf=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,jf={test:function(e){return"number"==typeof e},parse:parseFloat,transform:function(e){return e}},Of=zf(zf({},jf),{transform:Df(0,1)}),Vf=zf(zf({},jf),{default:1}),Rf=function(e){return{test:function(t){return"string"==typeof t&&t.endsWith(e)&&1===t.split(" ").length},parse:parseFloat,transform:function(t){return""+t+e}}},_f=Rf("deg"),Uf=Rf("%"),Wf=Rf("px"),Hf=zf(zf({},Uf),{parse:function(e){return Uf.parse(e)/100},transform:function(e){return Uf.transform(100*e)}}),Qf=Df(0,255),$f=function(e){return void 0!==e.red},Ff=function(e){return void 0!==e.hue},Zf=function(e){return function(t){if("string"!=typeof t)return t;for(var i={},n=(s=t,s.substring(s.indexOf("(")+1,s.lastIndexOf(")"))).replace(/(,|\/)/g," ").split(/ \s*/),r=0;r<4;r++)i[e[r]]=void 0!==n[r]?parseFloat(n[r]):1;var s;return i}},Yf=zf(zf({},jf),{transform:function(e){return Math.round(Qf(e))}});function Gf(e,t){return e.startsWith(t)&&Bf.test(e)}var Xf,Jf={test:function(e){return"string"==typeof e?Gf(e,"rgb"):$f(e)},parse:Zf(["red","green","blue","alpha"]),transform:function(e){var t,i,n=e.red,r=e.green,s=e.blue,a=e.alpha,o=void 0===a?1:a;return"rgba("+(t={red:Yf.transform(n),green:Yf.transform(r),blue:Yf.transform(s),alpha:Lf(Of.transform(o))}).red+", "+t.green+", "+t.blue+", "+(void 0===(i=t.alpha)?1:i)+")"}},Kf={test:function(e){return"string"==typeof e?Gf(e,"hsl"):Ff(e)},parse:Zf(["hue","saturation","lightness","alpha"]),transform:function(e){var t,i,n=e.hue,r=e.saturation,s=e.lightness,a=e.alpha,o=void 0===a?1:a;return"hsla("+(t={hue:Math.round(n),saturation:Uf.transform(Lf(r)),lightness:Uf.transform(Lf(s)),alpha:Lf(Of.transform(o))}).hue+", "+t.saturation+", "+t.lightness+", "+(void 0===(i=t.alpha)?1:i)+")"}},qf=zf(zf({},Jf),{test:function(e){return"string"==typeof e&&Gf(e,"#")},parse:function(e){var t="",i="",n="";return e.length>4?(t=e.substr(1,2),i=e.substr(3,2),n=e.substr(5,2)):(t=e.substr(1,1),i=e.substr(2,1),n=e.substr(3,1),t+=t,i+=i,n+=n),{red:parseInt(t,16),green:parseInt(i,16),blue:parseInt(n,16),alpha:1}}}),em={test:function(e){return"string"==typeof e&&Bf.test(e)||$f(e)||Ff(e)},parse:function(e){return Jf.test(e)?Jf.parse(e):Kf.test(e)?Kf.parse(e):qf.test(e)?qf.parse(e):e},transform:function(e){return $f(e)?Jf.transform(e):Ff(e)?Kf.transform(e):e}},tm=function(e){var t=e.onRead,i=e.onRender,n=e.uncachedValues,r=void 0===n?new Set:n,s=e.useCache,a=void 0===s||s;return function(e){void 0===e&&(e={});var n=vf(e,[]),s={},o=[],l=!1;function c(e,t){e.startsWith("--")&&(n.hasCSSVariable=!0);var i=s[e];s[e]=t,s[e]!==i&&(-1===o.indexOf(e)&&o.push(e),l||(l=!0,Af.render(u.render)))}var u={get:function(e,i){return void 0===i&&(i=!1),i||!a||r.has(e)||void 0===s[e]?t(e,n):s[e]},set:function(e,t){if("string"==typeof e)c(e,t);else for(var i in e)c(i,e[i]);return this},render:function(e){return void 0===e&&(e=!1),(l||!0===e)&&(i(s,n,o),l=!1,o.length=0),this}};return u}},im=/([a-z])([A-Z])/g,nm=function(e){return e.replace(im,"$1-$2").toLowerCase()},rm=new Map,sm=new Map,am=["Webkit","Moz","O","ms",""],om=am.length,lm="undefined"!=typeof document,cm=function(e,t){return sm.set(e,nm(t))},um=function(e,t){void 0===t&&(t=!1);var i,n=t?sm:rm;return n.has(e)||(lm?function(e){Xf=Xf||document.createElement("div");for(var t=0;t<om;t++){var i=am[t],n=""===i,r=n?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in Xf.style||n){if(n&&"clipPath"===e&&sm.has(e))return;rm.set(e,r),cm(e,(n?"":"-")+nm(r))}}}(e):cm(i=e,i)),n.get(e)||e},dm=["","X","Y","Z"],hm=["translate","scale","rotate","skew","transformPerspective"].reduce((function(e,t){return dm.reduce((function(e,i){return e.push(t+i),e}),e)}),["x","y","z"]),pm=hm.reduce((function(e,t){return e[t]=!0,e}),{});function fm(e){return!0===pm[e]}function mm(e,t){return hm.indexOf(e)-hm.indexOf(t)}var gm=new Set(["originX","originY","originZ"]);function vm(e){return gm.has(e)}var wm=gf(gf({},jf),{transform:Math.round}),bm={color:em,backgroundColor:em,outlineColor:em,fill:em,stroke:em,borderColor:em,borderTopColor:em,borderRightColor:em,borderBottomColor:em,borderLeftColor:em,borderWidth:Wf,borderTopWidth:Wf,borderRightWidth:Wf,borderBottomWidth:Wf,borderLeftWidth:Wf,borderRadius:Wf,radius:Wf,borderTopLeftRadius:Wf,borderTopRightRadius:Wf,borderBottomRightRadius:Wf,borderBottomLeftRadius:Wf,width:Wf,maxWidth:Wf,height:Wf,maxHeight:Wf,size:Wf,top:Wf,right:Wf,bottom:Wf,left:Wf,padding:Wf,paddingTop:Wf,paddingRight:Wf,paddingBottom:Wf,paddingLeft:Wf,margin:Wf,marginTop:Wf,marginRight:Wf,marginBottom:Wf,marginLeft:Wf,rotate:_f,rotateX:_f,rotateY:_f,rotateZ:_f,scale:Vf,scaleX:Vf,scaleY:Vf,scaleZ:Vf,skew:_f,skewX:_f,skewY:_f,distance:Wf,translateX:Wf,translateY:Wf,translateZ:Wf,x:Wf,y:Wf,z:Wf,perspective:Wf,opacity:Of,originX:Hf,originY:Hf,originZ:Wf,zIndex:wm,fillOpacity:Of,strokeOpacity:Of,numOctaves:wm},ym=function(e){return bm[e]},xm=function(e,t){return t&&"number"==typeof e?t.transform(e):e},Mm=new Set(["scrollLeft","scrollTop"]),Cm=new Set(["scrollLeft","scrollTop","transform"]),Im={x:"translateX",y:"translateY",z:"translateZ"};function Sm(e){return"function"==typeof e}function Em(e){var t=void 0===e?{}:e,i=t.enableHardwareAcceleration,n=void 0===i||i,r=t.isDashCase,s=void 0===r||r,a=t.allowTransformNone,o=void 0===a||a,l={},c={},u={},d=[];return function(e){return d.length=0,function(e,t,i,n,r,s,a,o){void 0===t&&(t=!0),void 0===i&&(i={}),void 0===n&&(n={}),void 0===r&&(r={}),void 0===s&&(s=[]),void 0===a&&(a=!1),void 0===o&&(o=!0);var l=!0,c=!1,u=!1;for(var d in e){var h=e[d],p=ym(d),f=xm(h,p);fm(d)?(c=!0,n[d]=f,s.push(d),l&&(p.default&&h!==p.default||!p.default&&0!==h)&&(l=!1)):vm(d)?(r[d]=f,u=!0):Cm.has(d)&&Sm(f)||(i[um(d,a)]=f)}(c||"function"==typeof e.transform)&&(i.transform=function(e,t,i,n,r,s){void 0===s&&(s=!0);var a="",o=!1;i.sort(mm);for(var l=i.length,c=0;c<l;c++){var u=i[c];a+=(Im[u]||u)+"("+t[u]+") ",o="z"===u||o}return!o&&r?a+="translateZ(0)":a=a.trim(),Sm(e.transform)?a=e.transform(t,n?"":a):s&&n&&(a="none"),a}(e,n,s,l,t,o)),u&&(i.transformOrigin=(r.originX||"50%")+" "+(r.originY||"50%")+" "+(r.originZ||0))}(e,n,l,c,u,d,s,o),l}}var Tm=tm({onRead:function(e,t){var i=t.element,n=t.preparseOutput,r=ym(e);if(fm(e))return r&&r.default||0;if(Mm.has(e))return i[e];var s=window.getComputedStyle(i,null).getPropertyValue(um(e,!0))||0;return n&&r&&r.test(s)&&r.parse?r.parse(s):s},onRender:function(e,t,i){var n=t.element,r=t.buildStyles,s=t.hasCSSVariable;if(Object.assign(n.style,r(e)),s)for(var a=i.length,o=0;o<a;o++){var l=i[o];l.startsWith("--")&&n.style.setProperty(l,e[l])}-1!==i.indexOf("scrollLeft")&&(n.scrollLeft=e.scrollLeft),-1!==i.indexOf("scrollTop")&&(n.scrollTop=e.scrollTop)},uncachedValues:Mm}),Am=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),km=function(e,t){return Wf.transform(e*t)},Nm={x:0,y:0,width:0,height:0};function Pm(e,t,i){return"string"==typeof e?e:Wf.transform(t+i*e)}var zm={enableHardwareAcceleration:!1,isDashCase:!1};function Dm(e,t,i){void 0===i&&(i=!0);var n={style:{}},r=Em(zm);return function(s){return function(e,t,i,n,r,s){void 0===t&&(t=Nm),void 0===n&&(n=Em(zm)),void 0===r&&(r={style:{}}),void 0===s&&(s=!0);var a,o,l=e.attrX,c=e.attrY,u=e.originX,d=e.originY,h=e.pathLength,p=e.pathSpacing,f=void 0===p?1:p,m=e.pathOffset,g=void 0===m?0:m,v=n(vf(e,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var w in v)"transform"===w?r.style.transform=v[w]:r[s&&!Am.has(w)?nm(w):w]=v[w];return(void 0!==u||void 0!==d||v.transform)&&(r.style.transformOrigin=(o=void 0!==d?d:.5,Pm(void 0!==u?u:.5,(a=t).x,a.width)+" "+Pm(o,a.y,a.height))),void 0!==l&&(r.x=l),void 0!==c&&(r.y=c),void 0!==i&&void 0!==h&&(r[s?"stroke-dashoffset":"strokeDashoffset"]=km(-g,i),r[s?"stroke-dasharray":"strokeDasharray"]=km(h,i)+" "+km(f,i)),r}(s,e,t,r,n,i)}}var Lm=tm({onRead:function(e,t){var i=t.element;if(fm(e=Am.has(e)?e:nm(e))){var n=ym(e);return n&&n.default||0}return i.getAttribute(e)},onRender:function(e,t){var i=t.element,n=(0,t.buildAttrs)(e);for(var r in n)"style"===r?Object.assign(i.style,n.style):i.setAttribute(r,n[r])}}),Bm=tm({useCache:!1,onRead:function(e){return"scrollTop"===e?window.pageYOffset:window.pageXOffset},onRender:function(e){var t=e.scrollTop,i=void 0===t?0:t,n=e.scrollLeft,r=void 0===n?0:n;return window.scrollTo(r,i)}}),jm=new WeakMap;function Om(e,t){return i="string"==typeof e?document.querySelector(e):e,n=t,jm.has(i)?jm.get(i):function(e,t){var i,r,s,a,o;return e===window?i=Bm(e):(o=e)instanceof HTMLElement||"function"==typeof o.click?i=function(e,t){void 0===t&&(t={});var i=t.enableHardwareAcceleration,n=t.allowTransformNone,r=vf(t,["enableHardwareAcceleration","allowTransformNone"]);return Tm(gf({element:e,buildStyles:Em({enableHardwareAcceleration:i,allowTransformNone:n}),preparseOutput:!0},r))}(e,t):function(e){return e instanceof SVGElement||"ownerSVGElement"in e}(e)&&(s=function(e){try{return"function"==typeof(t=e).getBBox?t.getBBox():t.getBoundingClientRect()}catch(n){return{x:0,y:0,width:0,height:0}}var t}(r=e),a=function(e){return"path"===e.tagName}(r)&&r.getTotalLength?r.getTotalLength():void 0,i=Lm({element:r,buildAttrs:Dm(s,a)})),jm.set(e,i),i}(i,n);var i,n}var Vm=function(e,t,i,n){var r=i?i.call(n,e,t):void 0;if(void 0!==r)return!!r;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var s=Object.keys(e),a=Object.keys(t);if(s.length!==a.length)return!1;for(var o=Object.prototype.hasOwnProperty.bind(t),l=0;l<s.length;l++){var c=s[l];if(!o(c))return!1;var u=e[c],d=t[c];if(!1===(r=i?i.call(n,u,d,c):void 0)||void 0===r&&u!==d)return!1}return!0};const Rm="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",_m=Rm.length,Um=Array(20),Wm=()=>{for(let e=0;e<20;e++)Um[e]=Rm.charAt(Math.random()*_m);return Um.join("")};class Hm{constructor(){this.disposers=new Map}add(e,t=Wm()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=Wm()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,i,n,r=Wm()){return this.add((()=>(e.addEventListener(t,i,n),()=>e.removeEventListener(t,i,n))),r),r}setTimeout(e,t,i=Wm()){return this.add((()=>{const n=window.setTimeout((()=>{this.remove(i),e()}),t);return()=>window.clearTimeout(n)}),i)}setInterval(e,t,i=Wm()){return this.add((()=>{const i=window.setInterval(e,t);return()=>window.clearInterval(i)}),i)}remove(e){const t=this.disposers.get(e);return this.disposers.delete(e),t}flush(e){const t=this.remove(e);if(t)try{t()}catch(i){console.error(i)}}flushAll(){this.disposers.forEach((e=>{try{e()}catch(t){console.error(t)}})),this.disposers.clear()}}var Qm,$m,Fm,Zm,Ym,Gm,Xm,Jm,Km,qm,eg=Object.defineProperty,tg=("undefined"!=typeof require&&require,(e,t,i)=>{return s=i,(r="symbol"!=typeof t?t+"":t)in(n=e)?eg(n,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[r]=s,i;var n,r,s});class ig{constructor(e,t){tg(this,"_value"),tg(this,"_beforeDestroys"),tg(this,"_subscribers"),this._value=e,t&&(this.compare=t)}get value(){return this._value}setValue(e,t){if(!this.compare(e,this._value)){const i=this._value;this._value=e,this._subscribers&&this._subscribers.forEach((n=>n(e,i,t)))}}reaction(e){return this._subscribers||(this._subscribers=new Set),this._subscribers.add(e),()=>{this._subscribers&&this._subscribers.delete(e)}}subscribe(e,t){const i=this.reaction(e);return e(this._value,void 0,t),i}derive(e,t,i){const n=new ig(e(this.value,void 0,i),t),r=this.reaction(((t,i,r)=>{n.setValue(e(t,i,r))}));return n.addBeforeDestroy(r),n}destroy(){this._beforeDestroys&&(this._beforeDestroys.forEach((e=>e())),this._beforeDestroys.clear()),this._subscribers&&this._subscribers.clear()}addBeforeDestroy(e){return this._beforeDestroys||(this._beforeDestroys=new Set),this._beforeDestroys.add(e),()=>{this._beforeDestroys&&this._beforeDestroys.delete(e)}}compare(e,t){return e===t}}function ng(e,t){Object.keys(t).forEach((i=>{var n,r,s,a;n=e,r=i,s=t[i],Object.defineProperties(n,{[r]:{get:()=>s.value},[`_${r}$`]:{value:s},[`set${a=r,a[0].toUpperCase()+a.slice(1)}`]:{value:(e,t)=>s.setValue(e,t)}})}))}function rg(e){const t=t=>{const i=e.addDisposer((()=>{t.destroy()}));return t.addBeforeDestroy((()=>{e.remove(i)})),t};return{bindSideEffect:t,combine:(e,i,n,r)=>t(function(e,t,i,n){let r=e.map((e=>e.value));const s=new ig(t(r,void 0,n),i);return e.forEach(((e,i)=>{const n=e.reaction(((e,n,a)=>{const o=r.slice();o[i]=e;const l=r;r=o,s.setValue(t(o,l,a),a)}));s.addBeforeDestroy(n)})),s}(e,i,n,r)),createVal:(e,i)=>t(new ig(e,i))}}function sg(e,t,i){return Math.min(Math.max(e,t),i)}function ag(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function og(e){return e.touches?e.touches[0]:e}function lg(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}($m=Qm||(Qm={})).Light="light",$m.Dark="dark",$m.Auto="auto",(Zm=Fm||(Fm={})).Normal="normal",Zm.Minimized="minimized",Zm.Maximized="maximized",(Gm=Ym||(Ym={})).DarkMode="dark_mode",Gm.PrefersColorScheme="prefers_color_scheme",Gm.Close="close",Gm.Focus="focus",Gm.Blur="blur",Gm.Move="move",Gm.Resize="resize",Gm.IntrinsicMove="intrinsic_move",Gm.IntrinsicResize="intrinsic_resize",Gm.VisualResize="visual_resize",Gm.ZIndex="z_index",Gm.State="state",Gm.Minimized="minimized",Gm.Maximized="maximized",Gm.Readonly="readonly",Gm.Destroyed="destroyed",(Jm=Xm||(Xm={})).Close="close",Jm.Maximize="maximize",Jm.Minimize="minimize",(qm=Km||(Km={})).North="n",qm.South="s",qm.West="w",qm.East="e",qm.NorthWest="nw",qm.NorthEast="ne",qm.SouthEast="se",qm.SouthWest="sw";let cg=1;function ug(){return"New Box "+cg++}function dg(e){return Boolean(e)}function hg(e){return!e}class pg{constructor({readonly:e=!1,title:t,buttons:i,onEvent:n,onDragStart:r,namespace:s="telebox",state:a=Fm.Normal}={}){this.$btns=[],this.sideEffect=new Hm,this.lastTitleBarClick={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarClick=e=>{var t;if(this.readonly)return;if(0!==e.button)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;ag(e);const i=Date.now();i-this.lastTitleBarClick.timestamp<=500?Math.abs(e.clientX-this.lastTitleBarClick.clientX)<=3&&Math.abs(e.clientY-this.lastTitleBarClick.clientY)<=3&&this.onEvent&&this.onEvent({type:Xm.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarClick.timestamp=i,this.lastTitleBarClick.clientX=e.clientX,this.lastTitleBarClick.clientY=e.clientY},this.lastTitleBarTouch={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarTouch=e=>{var t;if(this.readonly)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;ag(e);const i=Date.now(),{clientX:n=this.lastTitleBarTouch.clientX+100,clientY:r=this.lastTitleBarTouch.clientY+100}=e.touches[0]||{};i-this.lastTitleBarTouch.timestamp<=500?Math.abs(n-this.lastTitleBarTouch.clientX)<=3&&Math.abs(r-this.lastTitleBarTouch.clientY)<=3&&this.onEvent&&this.onEvent({type:Xm.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarTouch.timestamp=i,this.lastTitleBarTouch.clientX=n,this.lastTitleBarTouch.clientY=r},this.readonly=e,this.onEvent=n,this.onDragStart=r,this.namespace=s,this.title=t,this.state=a,this.buttons=i||[{type:Xm.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:Xm.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===Fm.Maximized},{type:Xm.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}],this.$dragArea=this.renderDragArea()}setTitle(e){this.title=e,this.$title&&(this.$title.textContent=e,this.$title.title=e)}setState(e){this.state!==e&&(this.state=e,this.buttons.forEach(((t,i)=>{t.isActive&&this.$btns[i].classList.toggle("is-active",t.isActive(e))})))}setReadonly(e){this.readonly!==e&&(this.readonly=e)}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="dh",this.$title=document.createElement("h1"),this.$title.className=this.wrapClassName("title"),this.$title.dataset.teleBoxHandle="dh",this.title&&(this.$title.textContent=this.title,this.$title.title=this.title),e.appendChild(this.$title),e.appendChild(this.$dragArea);const t=document.createElement("div");t.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:e,isActive:i},n)=>{const r=String(n),s=document.createElement("button");s.className=`${this.wrapClassName("titlebar-btn")} ${e}`,s.dataset.teleTitleBarBtnIndex=r,s.dataset.teleTitleBarNoDblClick="true",i&&s.classList.toggle("is-active",i(this.state)),this.$btns.push(s),t.appendChild(s)})),this.sideEffect.addEventListener(t,"click",(e=>{var t;if(this.readonly)return;const i=e.target,n=Number(null==(t=i.dataset)?void 0:t.teleTitleBarBtnIndex);if(!Number.isNaN(n)&&n<this.buttons.length){ag(e);const t=this.buttons[n];this.onEvent&&this.onEvent({type:t.type,value:t.value})}})),this.$titleBar.appendChild(e),this.$titleBar.appendChild(t)}return this.$titleBar}renderDragArea(){const e=document.createElement("div");return e.className=this.wrapClassName("drag-area"),e.dataset.teleBoxHandle="dh",this.sideEffect.addEventListener(e,"mousedown",this.handleTitleBarClick),this.sideEffect.addEventListener(e,"touchstart",this.handleTitleBarTouch,{passive:!0}),e}dragHandle(){return this.$titleBar}wrapClassName(e){return`${this.namespace}-${e}`}destroy(){this.sideEffect.flushAll(),this.$titleBar&&(this.$titleBar=void 0,this.$title=void 0,this.$btns.length=0,this.onDragStart=void 0,this.onEvent=void 0)}}class fg{constructor({id:e=lg(),title:t=ug(),prefersColorScheme:i=Qm.Light,darkMode:n,visible:r=!0,width:s=.5,height:a=.5,minWidth:o=0,minHeight:l=0,x:c=.1,y:u=.1,minimized:d=!1,maximized:h=!1,readonly:p=!1,resizable:f=!0,draggable:m=!0,fence:g=!0,fixRatio:v=!1,focus:w=!1,zIndex:b=100,namespace:y="telebox",titleBar:x,content:M,footer:C,styles:I,containerRect:S={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collectorRect:E}={}){this._renderSideEffect=new Hm,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new Hm,this._valSideEffectBinder=rg(this._sideEffect);const{combine:T,createVal:A}=this._valSideEffectBinder;this.id=e,this.namespace=y,this.events=new mf,this._delegateEvents=new mf;const k=A(i);k.reaction(((e,t,i)=>{i||this.events.emit(Ym.PrefersColorScheme,e)}));const N=A(Boolean(n));null==n&&k.subscribe(((e,t,i)=>{this._sideEffect.add((()=>{if("auto"===e){const e=window.matchMedia("(prefers-color-scheme: dark)");if(e){N.setValue(e.matches,i);const t=e=>{N.setValue(e.matches,i)};return e.addListener(t),()=>e.removeListener(t)}return mg}return N.setValue("dark"===e,i),mg}),"prefers-color-scheme")})),N.reaction(((e,t,i)=>{i||this.events.emit(Ym.DarkMode,e)}));const P=A(S,Vm),z=A(E,Vm),D=A(t),L=A(r);L.reaction(((e,t,i)=>{i||e||this.events.emit(Ym.Close)}));const B=A(p);B.reaction(((e,t,i)=>{i||this.events.emit(Ym.Readonly,e)}));const j=A(f),O=A(m),V=A(g),R=A(v),_=A(b);_.reaction(((e,t,i)=>{i||this.events.emit(Ym.ZIndex,e)}));const U=A(w);U.reaction(((e,t,i)=>{i||this.events.emit(e?Ym.Focus:Ym.Blur)}));const W=A(d);W.reaction(((e,t,i)=>{i||this.events.emit(Ym.Minimized,e)}));const H=A(h);H.reaction(((e,t,i)=>{i||this.events.emit(Ym.Maximized,e)}));const Q=T([W,H],(([e,t])=>e?Fm.Minimized:t?Fm.Maximized:Fm.Normal));Q.reaction(((e,t,i)=>{i||this.events.emit(Ym.State,e)}));const $=A({width:sg(o,0,1),height:sg(l,0,1)},Vm),F=A({width:sg(s,$.value.width,1),height:sg(a,$.value.height,1)},Vm);$.reaction(((e,t,i)=>{F.setValue({width:sg(s,e.width,1),height:sg(a,e.height,1)},i)})),F.reaction(((e,t,i)=>{i||this.events.emit(Ym.IntrinsicResize,e)}));const Z=T([F,H],(([e,t])=>t?{width:1,height:1}:e),Vm);Z.reaction(((e,t,i)=>{i||this.events.emit(Ym.Resize,e)}));const Y=T([Z,W,P,z],(([e,t,i,n])=>t&&n?{width:n.width/e.width/i.width,height:n.height/e.height/i.height}:e),Vm);Y.reaction(((e,t,i)=>{i||this.events.emit(Ym.VisualResize,e)}));const G=A({x:sg(c,0,1),y:sg(u,0,1)},Vm);G.reaction(((e,t,i)=>{i||this.events.emit(Ym.IntrinsicMove,e)}));const X=T([G,F,P,z,W,H],(([e,t,i,n,r,s])=>r&&n?s?{x:(n.x+n.width/2)/i.width-.5,y:(n.y+n.height/2)/i.height-.5}:{x:(n.x+n.width/2)/i.width-t.width/2,y:(n.y+n.height/2)/i.height-t.height/2}:s?{x:0,y:0}:e),Vm);X.reaction(((e,t,i)=>{i||this.events.emit(Ym.Move,e)})),this.titleBar=x||new pg({readonly:B.value,title:D.value,namespace:this.namespace,onDragStart:e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},onEvent:e=>{if(this._delegateEvents.listeners.length>0)this._delegateEvents.emit(e.type);else switch(e.type){case Xm.Maximize:H.setValue(!H.value);break;case Xm.Minimize:W.setValue(!0);break;case Xm.Close:L.setValue(!1);break;default:console.error("Unsupported titleBar event:",e)}}}),B.reaction((e=>{this.titleBar.setReadonly(e)}));const J=A(M),K=A(C),q=A(I);ng(this,{prefersColorScheme:k,darkMode:N,containerRect:P,collectorRect:z,title:D,visible:L,readonly:B,resizable:j,draggable:O,fence:V,fixRatio:R,focus:U,zIndex:_,minimized:W,maximized:H,$userContent:J,$userFooter:K,$userStyles:q}),this._state$=Q,this._minSize$=$,this._size$=Z,this._intrinsicSize$=F,this._visualSize$=Y,this._coord$=X,this._intrinsicCoord$=G,this.fixRatio&&this.transform(X.value.x,X.value.y,Z.value.width,Z.value.height,!0),this.$box=this.render()}get darkMode(){return this._darkMode$.value}get state(){return this._state$.value}setState(e,t=!1){switch(e){case Fm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case Fm.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(e,t=!1){return this._minSize$.setValue({width:e,height:this.minHeight},t),this}setMinHeight(e,t=!1){return this._minSize$.setValue({width:this.minWidth,height:e},t),this}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}resize(e,t,i=!1){return this._intrinsicSize$.setValue({width:e,height:t},i),this}get width(){return this._size$.value.width}get height(){return this._size$.value.height}get absoluteWidth(){return this.width*this.containerRect.width}get absoluteHeight(){return this.height*this.containerRect.height}get visualWidth(){return this._visualSize$.value.width}get visualHeight(){return this._visualSize$.value.height}get intrinsicX(){return this._intrinsicCoord$.value.x}get intrinsicY(){return this._intrinsicCoord$.value.y}move(e,t,i=!1){return this._intrinsicCoord$.setValue({x:e,y:t},i),this}get x(){return this._coord$.value.x}get y(){return this._coord$.value.y}transform(e,t,i,n,r=!1){if(this.fixRatio){const e=this.intrinsicHeight/this.intrinsicWidth*i;t!==this.intrinsicY&&(t-=e-n),n=e}return t<0&&(t=0,n>this.intrinsicHeight&&(n=this.intrinsicHeight)),this._intrinsicCoord$.setValue({x:i>=this.minWidth?e:this.intrinsicX,y:n>=this.minHeight?t:this.intrinsicY},r),this._intrinsicSize$.setValue({width:sg(i,this.minWidth,1),height:sg(n,this.minHeight,1)},r),this}mount(e){return e.appendChild(this.render()),this}unmount(){return this.$box&&this.$box.remove(),this}mountContent(e){return this.set$userContent(e),this}unmountContent(){return this.set$userContent(void 0),this}mountFooter(e){return this.set$userFooter(e),this}unmountFooter(){return this.set$userFooter(void 0),this}getUserStyles(){return this.$userStyles}mountStyles(e){let t;return"string"==typeof e?(t=document.createElement("style"),t.textContent=e):t=e,this.set$userStyles(t),this}unmountStyles(){return this.set$userStyles(void 0),this}render(e){if(e){if(e===this.$box)return this.$box;this.$box=e}else{if(this.$box)return this.$box;this.$box=document.createElement("div")}this._renderSideEffect.flushAll(),this.$box.classList.add(this.wrapClassName("box"));const t=(e,t,i,n=dg)=>this._renderSideEffect.add((()=>{const r=this.wrapClassName(i);return t.subscribe((t=>{e.classList.toggle(r,n(t))}))}));t(this.$box,this._readonly$,"readonly"),t(this.$box,this._draggable$,"no-drag",hg),t(this.$box,this._resizable$,"no-resize",hg),t(this.$box,this._focus$,"blur",hg),t(this.$box,this._darkMode$,"color-scheme-dark"),t(this.$box,this._darkMode$,"color-scheme-light",hg),this._renderSideEffect.add((()=>{const e=this.wrapClassName("minimized"),t=this.wrapClassName("maximized"),i="box-maximized-timer";return this._state$.subscribe((n=>{this.$box.classList.toggle(e,n===Fm.Minimized),n===Fm.Maximized?(this._renderSideEffect.flush(i),this.$box.classList.toggle(t,!0)):this._renderSideEffect.setTimeout((()=>{this.$box.classList.toggle(t,!1)}),0,i)}))})),this._renderSideEffect.add((()=>this._visible$.subscribe((e=>{this.$box.style.display=e?"block":"none"})))),this._renderSideEffect.add((()=>this._zIndex$.subscribe((e=>{this.$box.style.zIndex=String(e)}))));const i=Om(this.$box);this.$box.dataset.teleBoxID=this.id,this.$box.style.width=this.absoluteWidth+"px",this.$box.style.height=this.absoluteHeight+"px";const n=this.x*this.containerRect.width+this.containerRect.x,r=this.y*this.containerRect.height+this.containerRect.y;this.$box.style.transform=`translate(${n-10}px,${r-10}px)`,this._valSideEffectBinder.combine([this._coord$,this._size$,this._minimized$,this._containerRect$,this._collectorRect$],(([e,t,i,n,r])=>{const s=t.width*n.width,a=t.height*n.height;return{width:s,height:a,x:e.x*n.width,y:e.y*n.height,scaleX:i&&r?r.width/s:1,scaleY:i&&r?r.height/a:1}}),Vm).subscribe((e=>{i.set(e)})),i.set({x:n,y:r});const s=document.createElement("div");s.className=this.wrapClassName("box-main"),this.$box.appendChild(s);const a=document.createElement("div");a.className=this.wrapClassName("titlebar-wrap"),a.appendChild(this.titleBar.render()),this.$titleBar=a;const o=document.createElement("div");o.className=this.wrapClassName("content-wrap");const l=document.createElement("div");l.className=this.wrapClassName("content")+" tele-fancy-scrollbar",this.$content=l,this._renderSideEffect.add((()=>{let e;return this._$userStyles$.subscribe((t=>{e&&e.remove(),e=t,t&&o.appendChild(t)}))})),this._renderSideEffect.add((()=>{let e;return this._$userContent$.subscribe((t=>{e&&e.remove(),e=t,t&&l.appendChild(t)}))})),o.appendChild(l);const c=document.createElement("div");return c.className=this.wrapClassName("footer-wrap"),this.$footer=c,this._renderSideEffect.add((()=>{let e;return this._$userFooter$.subscribe((t=>{e&&e.remove(),e=t,t&&c.appendChild(t)}))})),s.appendChild(a),s.appendChild(o),s.appendChild(c),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(Km).forEach((t=>{const i=document.createElement("div");i.className=this.wrapClassName(t)+" "+this.wrapClassName("resize-handle"),i.dataset.teleBoxHandle=t,e.appendChild(i)})),this.$box.appendChild(e);const t="handle-tracking-listener",i=this.wrapClassName("transforming");let n,r,s=0,a=0,o=0,l=0,c=0,u=0;const d=e=>{if(this.state!==Fm.Normal)return;ag(e);let{pageX:t,pageY:i}=og(e);i<0&&(i=0);const n=(t-c)/this.containerRect.width,d=(i-u)/this.containerRect.height;switch(r){case Km.North:this.transform(this.x,a+d,this.width,l-d);break;case Km.South:this.transform(this.x,this.y,this.width,l+d);break;case Km.West:this.transform(s+n,this.y,o-n,this.height);break;case Km.East:this.transform(this.x,this.y,o+n,this.height);break;case Km.NorthWest:this.transform(s+n,a+d,o-n,l-d);break;case Km.NorthEast:this.transform(this.x,a+d,o+n,l-d);break;case Km.SouthEast:this.transform(this.x,this.y,o+n,l+d);break;case Km.SouthWest:this.transform(s+n,this.y,o-n,l+d);break;default:if(this.fence)this.move(sg(s+n,0,1-this.width),sg(a+d,0,1-this.height));else{const e=20/this.containerRect.width,t=20/this.containerRect.height;this.move(sg(s+n,e-this.width,1-e),sg(a+d,0,1-t))}}},h=e=>{r=void 0,n&&(ag(e),this.$box.classList.toggle(i,!1),this._sideEffect.flush(t),n.remove())},p=e=>{var p;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(!this.draggable||r||this.state!==Fm.Normal)return;const f=e.target;if(null==(p=f.dataset)?void 0:p.teleBoxHandle){ag(e),s=this.x,a=this.y,o=this.width,l=this.height,({pageX:c,pageY:u}=og(e)),r=f.dataset.teleBoxHandle,n||(n=document.createElement("div"));const p=r?this.wrapClassName(`cursor-${r}`):"";n.className=this.wrapClassName("track-mask"+(p?` ${p}`:"")),this.$box.appendChild(n),this.$box.classList.add(i),this._sideEffect.add((()=>(window.addEventListener("mousemove",d),window.addEventListener("touchmove",d,{passive:!1}),window.addEventListener("mouseup",h),window.addEventListener("touchend",h,{passive:!1}),window.addEventListener("touchcancel",h,{passive:!1}),()=>{window.removeEventListener("mousemove",d),window.removeEventListener("touchmove",d),window.removeEventListener("mouseup",h),window.removeEventListener("touchend",h),window.removeEventListener("touchcancel",h)})),t)}};this._handleTrackStart=p,this._sideEffect.addEventListener(e,"mousedown",p,{},"box-resizeHandles-mousedown"),this._sideEffect.addEventListener(e,"touchstart",p,{passive:!1},"box-resizeHandles-touchstart")}destroy(){this.$box.remove(),this.events.emit(Ym.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}function mg(){}var gg,vg;class wg{constructor({visible:e=!0,readonly:t=!1,darkMode:i=!1,namespace:n="telebox",styles:r={},onClick:s}={}){this.handleCollectorClick=()=>{!this._readonly&&this.onClick&&this.onClick()},this._visible=e,this._readonly=t,this._darkMode=i,this.namespace=n,this.styles=r,this.onClick=s}get visible(){return this._visible}get readonly(){return this._readonly}get darkMode(){return this._darkMode}mount(e){return e.appendChild(this.render()),this}unmount(){return this.$collector&&this.$collector.remove(),this}setVisible(e){return this._visible!==e&&(this._visible=e,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-visible"),e)),this}setReadonly(e){return this._readonly!==e&&(this._readonly=e,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-readonly"),e)),this}setDarkMode(e){return this._darkMode!==e&&(this._darkMode=e,this.$collector&&(this.$collector.classList.toggle(this.wrapClassName("color-scheme-dark"),e),this.$collector.classList.toggle(this.wrapClassName("color-scheme-light"),!e))),this}setStyles(e){if(Object.assign(this.styles,e),this.$collector){const t=this.$collector;Object.keys(e).forEach((i=>{const n=e[i];null!=n&&(t.style[i]=n)}))}return this}render(){return this.$collector||(this.$collector=document.createElement("button"),this.$collector.className=this.wrapClassName("collector"),this.$collector.style.backgroundImage="url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K')",this.$collector.addEventListener("click",this.handleCollectorClick),this._visible&&this.$collector.classList.add(this.wrapClassName("collector-visible")),this._readonly&&this.$collector.classList.add(this.wrapClassName("collector-readonly")),this.$collector.classList.add(this.wrapClassName(this._darkMode?"color-scheme-dark":"color-scheme-light")),this.setStyles(this.styles)),this.$collector}destroy(){this.$collector&&(this.$collector.removeEventListener("click",this.handleCollectorClick),this.$collector.remove(),this.$collector=void 0),this.onClick=void 0}wrapClassName(e){return`${this.namespace}-${e}`}}(vg=gg||(gg={})).Focused="focused",vg.Blurred="blurred",vg.Created="created",vg.Removed="removed",vg.State="state",vg.Maximized="maximized",vg.Minimized="minimized",vg.Move="move",vg.Resize="resize",vg.IntrinsicMove="intrinsic_move",vg.IntrinsicResize="intrinsic_resize",vg.VisualResize="visual_resize",vg.ZIndex="z_index",vg.PrefersColorScheme="prefers_color_scheme",vg.DarkMode="dark_mode";class bg extends pg{constructor(e){super(e),this.boxes=e.boxes,this.focusedBox=e.focusedBox,this.containerRect=e.containerRect,this.darkMode=e.darkMode}focusBox(e){var t;if(!this.focusedBox||this.focusedBox!==e){if(this.$titles&&this.state===Fm.Maximized){const{children:i}=this.$titles.firstElementChild;for(let n=i.length-1;n>=0;n-=1){const r=i[n],s=null==(t=r.dataset)?void 0:t.teleBoxID;s&&(e&&s===e.id?r.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&s===this.focusedBox.id&&r.classList.toggle(this.wrapClassName("titles-tab-focus"),!1))}}this.focusedBox=e}}setContainerRect(e){if(this.containerRect=e,this.$titleBar){const{x:t,y:i,width:n}=e;this.$titleBar.style.transform=`translate(${t}px, ${i}px)`,this.$titleBar.style.width=n+"px"}}setBoxes(e){this.boxes=e,this.updateTitles()}setState(e){super.setState(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("max-titlebar-maximized"),e===Fm.Maximized),this.updateTitles()}setReadonly(e){super.setReadonly(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("readonly"),this.readonly)}setDarkMode(e){e!==this.darkMode&&(this.darkMode=e,this.$titleBar&&(this.$titleBar.classList.toggle(this.wrapClassName("color-scheme-dark"),e),this.$titleBar.classList.toggle(this.wrapClassName("color-scheme-light"),!e)))}render(){var e;const t=super.render();(null==(e=t.firstElementChild)?void 0:e.nextElementSibling)&&t.insertBefore(this.$dragArea,t.firstElementChild.nextElementSibling);const{x:i,y:n,width:r}=this.containerRect;return t.style.transform=`translate(${i}px, ${n}px)`,t.style.width=r+"px",t.classList.add(this.wrapClassName("max-titlebar")),t.classList.toggle(this.wrapClassName("max-titlebar-maximized"),this.state===Fm.Maximized),t.classList.toggle(this.wrapClassName("readonly"),this.readonly),t.classList.add(this.wrapClassName(this.darkMode?"color-scheme-dark":"color-scheme-light")),this.updateTitles(),t}destroy(){super.destroy(),this.$titles=void 0,this.boxes.length=0,this.focusedBox=void 0}updateTitles(){this.$titleBar&&this.state===Fm.Maximized&&(1===this.boxes.length?this.$title&&(this.$title.textContent=this.boxes[0].title,this.$titleBar.replaceChild(this.$title,this.$titleBar.firstElementChild)):this.$titleBar.replaceChild(this.renderTitles(),this.$titleBar.firstElementChild))}renderTitles(){this.$titles=document.createElement("div"),this.$titles.className=this.wrapClassName("titles"),this.$titles.addEventListener("wheel",(e=>{e.currentTarget.scrollBy({left:e.deltaY>0?250:-250,behavior:"smooth"})}),{passive:!1});const e=document.createElement("div");return e.className=this.wrapClassName("titles-content"),this.$titles.appendChild(e),this.boxes.forEach((t=>{const i=document.createElement("button");i.className=this.wrapClassName("titles-tab"),i.textContent=t.title,i.dataset.teleBoxID=t.id,i.dataset.teleTitleBarNoDblClick="true",this.focusedBox&&t.id===this.focusedBox.id&&i.classList.add(this.wrapClassName("titles-tab-focus")),e.appendChild(i)})),this.$titles}}class yg{constructor({root:e=document.body,prefersColorScheme:t=Qm.Light,minimized:i=!1,maximized:n=!1,fence:r=!0,containerRect:s={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collector:a,namespace:o="telebox",readonly:l=!1}={}){this.events=new mf,this._sideEffect=new Hm;const{combine:c,createVal:u}=rg(this._sideEffect);this.root=e,this.namespace=o,this.boxes$=u([]),this.topBox$=this.boxes$.derive((e=>{if(e.length>0)return e.reduce(((e,t)=>e.zIndex>t.zIndex?e:t))}));const d=window.matchMedia("(prefers-color-scheme: dark)"),h=u(!1);d&&(h.setValue(d.matches),this._sideEffect.add((()=>{const e=e=>{h.setValue(e.matches)};return d.addListener(e),()=>d.removeListener(e)})));const p=u(t);p.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setPrefersColorScheme(e,i))),i||this.events.emit(gg.PrefersColorScheme,e)})),this._darkMode$=c([h,p],(([e,t])=>"auto"===t?e:"dark"===t)),this._darkMode$.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setDarkMode(e,i))),i||this.events.emit(gg.DarkMode,e)}));const f=u(l);f.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setReadonly(e,i)))}));const m=u(i),g=u(n);g.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setMaximized(e,i))),i||this.events.emit(gg.Maximized,e)}));const v=c([m,g],(([e,t])=>e?Fm.Minimized:t?Fm.Maximized:Fm.Normal));v.reaction(((e,t,i)=>{this.maxTitleBar.setState(e),i||this.events.emit(gg.State,e)}));const w=u(r);w.subscribe(((e,t,i)=>{this.boxes.forEach((t=>t.setFence(e,i)))}));const b=u(s,Vm);b.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setContainerRect(e,i))),this.maxTitleBar.setContainerRect(e)}));const y=u(null===a?null:a||new wg({visible:i,readonly:l,namespace:o}).mount(e));y.subscribe((e=>{e&&(e.setVisible(m.value),e.setReadonly(f.value),e.setDarkMode(this._darkMode$.value),this._sideEffect.add((()=>(e.onClick=()=>{f.value||m.setValue(!1)},()=>e.destroy())),"collect-onClick"))})),f.subscribe((e=>{var t;return null==(t=y.value)?void 0:t.setReadonly(e)})),this._darkMode$.subscribe((e=>{var t;null==(t=y.value)||t.setDarkMode(e)}));const x=()=>{var e;if(null==(e=y.value)?void 0:e.$collector){const{x:e,y:t,width:i,height:n}=y.value.$collector.getBoundingClientRect(),r=this.root.getBoundingClientRect();return{x:e-r.x,y:t-r.y,width:i,height:n}}},M=u(m.value?x():void 0);M.subscribe(((e,t,i)=>{this.boxes.forEach((t=>{t.setCollectorRect(e,i)}))})),m.subscribe(((e,t,i)=>{var n,r;null==(n=y.value)||n.setVisible(e),e&&(null==(r=y.value)?void 0:r.$collector)&&M.setValue(x()),this.boxes.forEach((t=>t.setMinimized(e,i))),i||this.events.emit(gg.Minimized,e)}));const C=this.wrapClassName("titlebar-icon-close"),I=e=>{var t;if(f.value)return;const i=e.target;if(i.tagName)for(let n=i;n;n=n.parentElement){if(n.classList&&n.classList.contains(C))return;const e=null==(t=n.dataset)?void 0:t.teleBoxID;if(e){const t=this.getBox(e);if(t)return this.focusBox(t),void this.makeBoxTop(t)}}};this._sideEffect.addEventListener(window,"mousedown",I,!0),this._sideEffect.addEventListener(window,"touchstart",I,!0),this.maxTitleBar=new bg({darkMode:this.darkMode,readonly:f.value,namespace:this.namespace,state:v.value,boxes:this.boxes$.value,containerRect:b.value,onEvent:e=>{switch(e.type){case Xm.Maximize:g.setValue(!g.value);break;case Xm.Minimize:m.setValue(!0);break;case Ym.Close:this.removeTopBox(),this.focusTopBox()}}}),f.subscribe((e=>this.maxTitleBar.setReadonly(e))),this._darkMode$.subscribe((e=>{this.maxTitleBar.setDarkMode(e)})),this.boxes$.reaction((e=>{this.maxTitleBar.setBoxes(e)})),ng(this,{prefersColorScheme:p,containerRect:b,collector:y,collectorRect:M,readonly:f,fence:w,minimized:m,maximized:g}),this._state$=v,this.root.appendChild(this.maxTitleBar.render())}get boxes(){return this.boxes$.value}get topBox(){return this.topBox$.value}get darkMode(){return this._darkMode$.value}get state(){return this._state$.value}setState(e,t=!1){switch(e){case Fm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case Fm.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}create(e={},t=!0){const i=new fg(pf(hf({zIndex:this.topBox?this.topBox.zIndex+1:100},t?this.smartPosition(e):e),{darkMode:this.darkMode,prefersColorScheme:this.prefersColorScheme,maximized:this.maximized,minimized:this.minimized,fence:this.fence,namespace:this.namespace,containerRect:this.containerRect,readonly:this.readonly,collectorRect:this.collectorRect}));return i.mount(this.root),i.focus&&(this.focusBox(i),t&&this.makeBoxTop(i)),this.boxes$.setValue([...this.boxes,i]),i._delegateEvents.on(Xm.Maximize,(()=>{this.setMaximized(!this.maximized)})),i._delegateEvents.on(Xm.Minimize,(()=>{this.setMinimized(!0)})),i._delegateEvents.on(Xm.Close,(()=>{this.remove(i),this.focusTopBox()})),i._coord$.reaction(((e,t,n)=>{n||this.events.emit(gg.Move,i)})),i._size$.reaction(((e,t,n)=>{n||this.events.emit(gg.Resize,i)})),i._intrinsicCoord$.reaction(((e,t,n)=>{n||this.events.emit(gg.IntrinsicMove,i)})),i._intrinsicSize$.reaction(((e,t,n)=>{n||this.events.emit(gg.IntrinsicResize,i)})),i._visualSize$.reaction(((e,t,n)=>{n||this.events.emit(gg.VisualResize,i)})),i._zIndex$.reaction(((e,t,n)=>{this.topBox&&i.zIndex>this.topBox.zIndex&&this.topBox$.setValue(i),n||this.events.emit(gg.ZIndex,i)})),this.events.emit(gg.Created,i),i}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,t,i=!1){const n=this.boxes.find((t=>t.id===e));if(n)return this.updateBox(n,t,i)}updateAll(e,t=!1){this.boxes.forEach((i=>{this.updateBox(i,e,t)}))}remove(e,t=!1){const i=this.getBoxIndex(e);if(i>=0){const e=this.boxes.slice(),n=e.splice(i,1);return this.boxes$.setValue(e),n.forEach((e=>e.destroy())),t||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(gg.Removed,n)),n[0]}}removeTopBox(){if(this.topBox)return this.remove(this.topBox)}removeAll(e=!1){const t=this.boxes$.value;return this.boxes$.setValue([]),t.forEach((e=>e.destroy())),e||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(gg.Removed,t)),t}destroy(e=!1){this.events.removeAllListeners(),this._sideEffect.flushAll(),this.removeAll(e),Object.keys(this).forEach((e=>{const t=this[e];t instanceof ig&&t.destroy()}))}wrapClassName(e){return`${this.namespace}-${e}`}focusBox(e,t=!1){const i=this.getBox(e);i&&(this.boxes.forEach((e=>{if(i===e){let e=!1;i.focus||(e=!0,i.setFocus(!0,t)),e&&!t&&this.events.emit(gg.Focused,i)}else e.focus&&this.blurBox(e,t)})),this.maxTitleBar.focusBox(i))}focusTopBox(){if(this.topBox&&!this.topBox.focus)return this.focusBox(this.topBox)}blurBox(e,t=!1){const i=this.getBox(e);i&&(i.focus&&(i.setFocus(!1,t),t||this.events.emit(gg.Blurred,i)),this.maxTitleBar.focusedBox===i&&this.maxTitleBar.focusBox())}blurAll(e=!1){this.boxes.forEach((t=>{t.focus&&(t.setFocus(!1,e),e||this.events.emit(gg.Blurred,t))})),this.maxTitleBar.focusedBox&&this.maxTitleBar.focusBox()}teleBoxMatcher(e){const t=Object.keys(e);return i=>t.every((t=>e[t]===i[t]))}updateBox(e,t,i=!1){null==t.x&&null==t.y||e.move(null==t.x?e.intrinsicX:t.x,null==t.y?e.intrinsicY:t.y,i),null==t.width&&null==t.height||e.resize(null==t.width?e.intrinsicWidth:t.width,null==t.height?e.intrinsicHeight:t.height,i),null!=t.title&&(e.setTitle(t.title),this.maxTitleBar.updateTitles()),null!=t.visible&&e.setVisible(t.visible,i),null!=t.minHeight&&e.setMinHeight(t.minHeight,i),null!=t.minWidth&&e.setMinWidth(t.minWidth,i),null!=t.resizable&&e.setResizable(t.resizable,i),null!=t.draggable&&e.setDraggable(t.draggable,i),null!=t.fixRatio&&e.setFixRatio(t.fixRatio,i),null!=t.zIndex&&e.setZIndex(t.zIndex,i),null!=t.content&&e.mountContent(t.content),null!=t.footer&&e.mountFooter(t.footer)}smartPosition(e={}){let{x:t,y:i}=e;const{width:n=.5,height:r=.5}=e;if(null==t){let e=20;this.topBox&&(e=this.topBox.intrinsicX*this.containerRect.width+20,e>this.containerRect.width-n*this.containerRect.width&&(e=20)),t=e/this.containerRect.width}if(null==i){let e=20;this.topBox&&(e=this.topBox.intrinsicY*this.containerRect.height+20,e>this.containerRect.height-r*this.containerRect.height&&(e=20)),i=e/this.containerRect.height}return pf(hf({},e),{x:t,y:i,width:n,height:r})}makeBoxTop(e,t=!1){this.topBox&&e!==this.topBox&&(e.setZIndex(this.topBox.zIndex+1,t),this.topBox$.setValue(e))}getBoxIndex(e){return"string"==typeof e?this.boxes.findIndex((t=>t.id===e)):this.boxes.findIndex((t=>t===e))}getBox(e){return"string"==typeof e?this.boxes.find((t=>t.id===e)):e}}class xg{constructor(e,t){this.manager=e,this.appBoxMap=new Map,this.mainView=this.manager.mainView,this.teleBoxManager=this.setupBoxManager(t),this.teleBoxManager._state$.reaction((e=>{xv.emit("boxStateChange",e),yv.emit("boxStateChange",e)})),this.teleBoxManager._darkMode$.reaction((e=>{xv.emit("darkModeChange",e)})),this.teleBoxManager._prefersColorScheme$.reaction((e=>{xv.emit("prefersColorSchemeChange",e)})),this.teleBoxManager.events.on("minimized",(e=>{this.manager.safeSetAttributes({minimized:e}),e?(this.manager.store.cleanFocus(),this.blurAllBox()):this.teleBoxManager.topBox&&(this.manager.store.setAppFocus(this.teleBoxManager.topBox.id,!0),this.teleBoxManager.focusBox(this.teleBoxManager.topBox.id))})),this.teleBoxManager.events.on("maximized",(e=>{this.manager.safeSetAttributes({maximized:e})})),this.teleBoxManager.events.on("removed",(e=>{e.forEach((e=>{yv.emit("close",{appId:e.id})}))})),this.teleBoxManager.events.on("intrinsic_move",h((e=>{yv.emit("move",{appId:e.id,x:e.intrinsicX,y:e.intrinsicY})}),50)),this.teleBoxManager.events.on("intrinsic_resize",h((e=>{yv.emit("resize",{appId:e.id,width:e.intrinsicWidth,height:e.intrinsicHeight})}),200)),this.teleBoxManager.events.on("focused",(e=>{e&&(this.manager.canOperate?yv.emit("focus",{appId:e.id}):this.teleBoxManager.blurBox(e.id))})),this.teleBoxManager.events.on("z_index",(e=>{this.manager.store.updateAppState(e.id,Mp.ZIndex,e.zIndex)}))}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}createBox(e){var t,i,n;if(!this.teleBoxManager)return;let{minwidth:r=kp,minheight:s=Np}=null!=(t=e.app.config)?t:{};const{width:a,height:o}=null!=(i=e.app.config)?i:{},l=(null==(n=e.options)?void 0:n.title)||e.appId,c=this.teleBoxManager.containerRect;r>1&&(r/=c.width),s>1&&(s/=c.height);const u={title:l,minWidth:r,minHeight:s,width:a,height:o,id:e.appId};this.teleBoxManager.create(u,e.smartPosition),yv.emit(`${e.appId}${yp.WindowCreated}`)}setBoxInitState(e){const t=this.teleBoxManager.queryOne({id:e});t&&t.state===Fm.Maximized&&yv.emit("resize",{appId:e,x:t.x,y:t.y,width:t.intrinsicWidth,height:t.intrinsicHeight})}setupBoxManager(e){const t=Cv.wrapper?Cv.wrapper:document.body,i=t.getBoundingClientRect(),n={root:t,containerRect:{x:0,y:0,width:i.width,height:i.height},fence:!1,prefersColorScheme:null==e?void 0:e.prefersColorScheme},r=(null==e?void 0:e.collectorContainer)||Cv.wrapper,s=new wg({styles:null==e?void 0:e.collectorStyles}).mount(r);n.collector=s;const a=new yg(n);return this.teleBoxManager&&this.teleBoxManager.destroy(),this.teleBoxManager=a,a}getBox(e){return this.teleBoxManager.queryOne({id:e})}closeBox(e,t=!1){return this.teleBoxManager.remove(e,t)}boxIsFocus(e){const t=this.getBox(e);return null==t?void 0:t.focus}getFocusBox(){return this.teleBoxManager.query({focus:!0})[0]}getTopBox(){return this.teleBoxManager.topBox}updateBoxState(e){if(!e)return;const t=this.getBox(e.id);t&&(this.teleBoxManager.update(t.id,{x:e.x,y:e.y,width:e.width||.5,height:e.height||.5,zIndex:e.zIndex},!0),setTimeout((()=>{e.focus&&this.teleBoxManager.focusBox(t.id,!0),null!=e.maximized&&this.teleBoxManager.setMaximized(Boolean(e.maximized),!0),null!=e.minimized&&this.teleBoxManager.setMinimized(Boolean(e.minimized),!0)}),50),xv.emit("boxStateChange",this.teleBoxManager.state))}updateManagerRect(){var e;const t=null==(e=this.mainView.divElement)?void 0:e.getBoundingClientRect();if(t&&t.width>0&&t.height>0){const e={x:0,y:0,width:t.width,height:t.height};this.teleBoxManager.setContainerRect(e),this.manager.notifyContainerRectUpdate(this.teleBoxManager.containerRect)}}moveBox({appId:e,x:t,y:i}){this.teleBoxManager.update(e,{x:t,y:i},!0)}focusBox({appId:e},t=!0){this.teleBoxManager.focusBox(e,t)}resizeBox({appId:e,width:t,height:i,skipUpdate:n}){this.teleBoxManager.update(e,{width:t,height:i},n)}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,t=!0){this.teleBoxManager.setMaximized(e,t)}setMinimized(e,t=!0){this.teleBoxManager.setMinimized(e,t)}focusTopBox(){if(this.teleBoxManager.query().length>=1){const e=this.getTopBox();e&&this.focusBox({appId:e.id},!1)}}setReadonly(e){this.teleBoxManager.setReadonly(e)}setPrefersColorScheme(e){this.teleBoxManager.setPrefersColorScheme(e)}setZIndex(e,t,i=!0){this.teleBoxManager.update(e,{zIndex:t},i)}destroy(){this.teleBoxManager.destroy()}}class Mg{constructor(){this.cameras=new Map,this.listeners=new Map,this.onListener=(e,t)=>{t.callbacks.on("onCameraUpdated",this.getOrCreateListener(e))},this.offListener=(e,t)=>{t.callbacks.off("onCameraUpdated",this.getOrCreateListener(e))}}setCamera(e,t){this.cameras.set(e,t)}getCamera(e){return this.cameras.get(e)}deleteCamera(e){this.cameras.delete(e)}recoverCamera(e,t){const i=this.cameras.get(e);i&&t&&t.moveCamera(l(o({},i),{animationMode:P.Immediately}))}register(e,t){this.onListener(e,t),this.setCamera(e,t.camera)}unregister(e,t){t&&this.offListener(e,t),this.listeners.delete(e),this.deleteCamera(e)}async switchView(e,t,i){t&&(this.offListener(e,t),await i(),this.recoverCamera(e,t),this.onListener(e,t))}getOrCreateListener(e){let t=this.listeners.get(e);return t||(t=t=>{this.setCamera(e,t)},this.listeners.set(e,t),t)}}class Cg{constructor(e){this.manager=e,this.views=new Map,this.mainViewProxy=this.manager.mainViewProxy,this.displayer=this.manager.displayer,this.store=this.manager.store,setTimeout((()=>{var e;null==(e=this.manager.refresher)||e.add("focus",(()=>I((()=>this.store.focus),(e=>{e?this.switchAppToWriter(e):(this.switchMainViewToWriter(),this.manager.boxManager.blurAllBox())}),{fireImmediately:!0})))}),100)}get currentScenePath(){return this.displayer.state.sceneState.scenePath}get mainView(){return this.mainViewProxy.view}createView(e){const t=Ig(this.displayer);return Up(t,N.Freedom),this.views.set(e,t),t}destroyView(e){const t=this.views.get(e);t&&(this.releaseView(t),this.views.delete(e))}releaseView(e){e.didRelease||e.release()}getView(e){return this.views.get(e)}switchMainViewToWriter(){if(this.timer&&clearTimeout(this.timer),this.mainView.mode!==N.Writable)return this.freedomAllViews(),new Promise(((e,t)=>{this.timer=window.setTimeout((()=>{try{const t=this.store.getMainViewScenePath();t&&(this.freedomAllViews(),_p(this.manager.room,t),this.mainViewProxy.switchViewModeToWriter()),e(!0)}catch(i){t(i)}}),100)}))}freedomAllViews(){this.manager.appProxies.forEach((e=>{e.setViewFocusScenePath(),e.view&&Up(e.view,N.Freedom)})),this.mainView.mode===N.Writable&&(Wp(xv,N.Freedom),Up(this.mainView,N.Freedom)),this.mainView.focusScenePath||this.store.setMainViewFocusPath()}switchAppToWriter(e){this.appTimer&&clearTimeout(this.appTimer),this.freedomAllViews(),this.appTimer=setTimeout((()=>{const t=this.manager.appProxies.get(e);if(t){if(this.manager.boxManager.minimized)return;t.setScenePath(),t.switchToWritable(),t.focusBox()}}),100)}destroy(){var e;this.mainViewProxy.removeMainViewListener(),Cv.wrapper&&(null==(e=Cv.wrapper.parentNode)||e.removeChild(Cv.wrapper),Cv.wrapper=void 0),this.releaseView(this.mainView)}}const Ig=e=>{const t=e.views.createView();return Sg(t),t},Sg=e=>{e.setCameraBound({maxContentMode:()=>10,minContentMode:()=>.1})};class Eg{constructor(e){this.manager=e,this.cameraStore=this.manager.cameraStore,this.store=this.manager.store,this.started=!1,this.mainViewIsAddListener=!1,this.viewId="mainView",this.cameraReaction=()=>I((()=>this.mainViewCamera),(e=>{e&&e.id!==this.manager.uid&&(this.moveCameraToContian(this.mainViewSize),this.moveCamera(e))}),{fireImmediately:!0}),this.sizeChangeHandler=h((e=>{e&&(this.moveCameraToContian(e),this.moveCamera(this.mainViewCamera))}),30),this.onCameraUpdatedByDevice=e=>{this.store.setMainViewCamera(l(o({},e),{id:this.manager.uid})),m(this.mainViewSize,l(o({},this.mainView.size),{id:this.manager.uid}))||this.setMainViewSize(this.view.size)},this.mainViewClickListener=()=>{this.mainViewClickHandler()},this.setMainViewSize=h((e=>{this.store.setMainViewSize(l(o({},e),{id:this.manager.uid}))}),50),this.onCameraOrSizeUpdated=()=>{xv.emit("cameraStateChange",this.cameraState)},this.mainView=this.createMainView(),this.moveCameraSizeByAttributes(),this.cameraStore.register(this.viewId,this.mainView),yv.once("mainViewMounted").then((()=>{setTimeout((()=>{this.start(),this.mainViewCamera&&this.mainViewSize||this.setCameraAndSize()}),200)})),yv.on("playgroundSizeChange",(()=>{this.sizeChangeHandler(this.mainViewSize)}))}get mainViewCamera(){return this.store.getMainViewCamera()}get mainViewSize(){return this.store.getMainViewSize()}moveCameraSizeByAttributes(){this.moveCameraToContian(this.mainViewSize),this.moveCamera(this.mainViewCamera)}start(){var e;this.started||(this.sizeChangeHandler(this.mainViewSize),this.addCameraListener(),null==(e=this.manager.refresher)||e.add(qp.MainViewCamera,this.cameraReaction),this.started=!0)}setCameraAndSize(){this.store.setMainViewCamera(l(o({},this.mainView.camera),{id:this.manager.uid})),this.store.setMainViewSize(l(o({},this.mainView.size),{id:this.manager.uid}))}get view(){return this.mainView}get cameraState(){return o(o({},this.view.camera),this.view.size)}createMainView(){const e=Ig(this.manager.displayer),t=this.store.getMainViewScenePath();return t&&Rp(e,t),this.store.focus||this.switchViewModeToWriter(),e}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))}async mainViewClickHandler(){this.manager.canOperate&&this.view.mode!==N.Writable&&(this.store.cleanFocus(),this.manager.boxManager.blurAllBox())}addCameraListener(){this.view.callbacks.on("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice),this.view.callbacks.on("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.on("onSizeUpdated",this.onCameraOrSizeUpdated)}removeCameraListener(){this.view.callbacks.off("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice),this.view.callbacks.off("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.off("onSizeUpdated",this.onCameraOrSizeUpdated)}switchViewModeToWriter(){if(this.manager.canOperate&&this.view){if(this.view.mode===N.Writable)return;this.cameraStore.switchView(this.viewId,this.mainView,(()=>{Wp(xv,N.Writable),Up(this.view,N.Writable)}))}}moveCameraToContian(e){g(e)||(this.view.moveCameraToContain({width:e.width,height:e.height,originX:-e.width/2,originY:-e.height/2,animationMode:P.Immediately}),this.scale=this.view.camera.scale)}moveCamera(e){if(!g(e)){if(m(e,this.view.camera))return;const{centerX:t,centerY:i,scale:n}=e,r=n*(this.scale||1);this.view.moveCamera({centerX:t,centerY:i,scale:r,animationMode:P.Immediately})}}stop(){var e,t;this.removeCameraListener(),null==(e=this.manager.refresher)||e.remove(qp.MainViewCamera),null==(t=this.manager.refresher)||t.remove(qp.MainViewSize),this.started=!1}destroy(){this.stop(),this.cameraStore.unregister(this.viewId,this.mainView)}}const Tg=e=>(t,i)=>{if(void 0!==t){if(E){const n=t=>{t.map((e=>e.kind)).includes(e)&&i()};return E(t,n),i(),()=>T(t,n)}return I((()=>t),(()=>{i()}),{fireImmediately:!0})}},Ag=Tg(z.Removed);Tg(z.Inserted);class kg{constructor(e,t){this.manager=t,this.reactors=new Map,this.disposers=new Map,this.onPhaseChanged=e=>{e===D.Connected&&this.phase===D.Reconnecting&&this.onReconnected(),this.phase=e},this.onReconnected=()=>{nf("onReconnected refresh reactors"),this.releaseDisposers(),this.reactors.forEach(((e,t)=>{v(e)&&this.disposers.set(t,e())})),this.manager.notifyReconnected()},this.room=e,this.phase=null==e?void 0:e.phase,null==e||e.callbacks.on("onPhaseChanged",this.onPhaseChanged)}releaseDisposers(){this.disposers.forEach((e=>{v(e)&&e()})),this.disposers.clear()}add(e,t){v(t)&&(this.reactors.set(e,t),this.disposers.set(e,t()))}remove(e){this.reactors.has(e)&&this.reactors.delete(e);const t=this.disposers.get(e);t&&(v(t)&&t(),this.disposers.delete(e))}destroy(){var e;null==(e=this.room)||e.callbacks.off("onPhaseChanged",this.onPhaseChanged),this.releaseDisposers()}}class Ng{constructor(e,t){this.windowManger=e,this.appProxies=new Map,this.appStatus=new Map,this.store=new tf(this),this.isReplay=this.windowManger.isReplay,this.onAppDelete=e=>{const t=Object.keys(e);this.appProxies.forEach(((e,i)=>{t.includes(i)||e.destroy(!0,!1,!0)}))},this.displayerStateListener=e=>{const t=e.sceneState;if(t){const e=t.scenePath;this.appProxies.forEach((i=>{i.scenePath&&e.startsWith(i.scenePath)&&(i.emitAppSceneStateChange(t),i.setFullPath(e))}))}this.appProxies.forEach((t=>{t.appEmitter.emit("roomStateChange",e)})),yv.emit("observerIdChange",this.displayer.observerId)},this.displayerWritableListener=e=>{const t=!e,i=void 0===this.windowManger.readonly||!1===this.windowManger.readonly;void 0===this.windowManger.readonly?this.boxManager.setReadonly(e):this.boxManager.setReadonly(!(t&&i)),this.appProxies.forEach((e=>{e.emitAppIsWritableChange()})),!0===t?(this.store.focus||this.mainViewProxy.switchViewModeToWriter(),this.mainView.disableCameraTransform=!1):this.mainView.disableCameraTransform=!0},this.findMemberByUid=e=>{var t;const i=null==(t=this.room)?void 0:t.state.roomMembers;return null==i?void 0:i.find((t=>{var i;return(null==(i=t.payload)?void 0:i.uid)===e}))},this.boxEventListener=(e,t)=>{switch(e){case"move":this.dispatchInternalEvent(yp.AppMove,t),this.store.updateAppState(t.appId,Mp.Position,{x:t.x,y:t.y});break;case"focus":this.windowManger.safeSetAttributes({focus:t.appId});break;case"resize":t.width&&t.height&&(this.dispatchInternalEvent(yp.AppResize,t),this.store.updateAppState(t.appId,Mp.Size,{width:t.width,height:t.height}));break;case"close":{const e=this.appProxies.get(t.appId);e&&e.destroy(!1,!0,t.error);break}case"boxStateChange":this.dispatchInternalEvent(yp.AppBoxStateChange,t)}},this.displayer=e.displayer,this.cameraStore=new Mg,this.mainViewProxy=new Eg(this),this.viewManager=new Cg(this),this.boxManager=new xg(this,t),this.appListeners=new $p(this),this.displayer.callbacks.on(this.eventName,this.displayerStateListener),this.appListeners.addListeners(),this.refresher=new kg(this.room,this),yv.once("onCreated").then((()=>this.onCreated())),L(this.displayer)&&yv.on("seek",(e=>{this.appProxies.forEach((t=>{t.onSeek(e)})),this.attributesUpdateCallback(this.attributes.apps),this.onAppDelete(this.attributes.apps)}))}async onCreated(){var e,t,i,n,r;if(await this.attributesUpdateCallback(this.attributes.apps),this.boxManager.updateManagerRect(),yv.onAny(this.boxEventListener),null==(e=this.refresher)||e.add("apps",(()=>((e,t)=>{let i=null;const n=I(e,(()=>{i&&(i(),i=null);const n=e();i=()=>T(n,t),E(n,t)}),{fireImmediately:!0});return()=>{null==i||i(),n()}})((()=>this.attributes.apps),(()=>{this.attributesUpdateCallback(this.attributes.apps)})))),null==(t=this.refresher)||t.add("appsClose",(()=>Ag(this.attributes.apps,(()=>{this.onAppDelete(this.attributes.apps)})))),null==(i=this.refresher)||i.add("maximized",(()=>C((()=>{const e=this.attributes.maximized;this.boxManager.maximized!==e&&this.boxManager.setMaximized(Boolean(e))})))),null==(n=this.refresher)||n.add("minimized",(()=>C((()=>{const e=this.attributes.minimized;this.boxManager.minimized!==e&&(!0===e&&this.boxManager.blurAllBox(),setTimeout((()=>{this.boxManager.setMinimized(Boolean(e))}),0))})))),!this.attributes.apps||0===Object.keys(this.attributes.apps).length){const e=this.store.getMainViewScenePath();if(!e)return;this.displayer.state.sceneState.scenePath!==e&&_p(this.room,e)}this.displayerWritableListener(!(null==(r=this.room)?void 0:r.isWritable)),this.displayer.callbacks.on("onEnableWriteNowChanged",this.displayerWritableListener)}async attributesUpdateCallback(e){if(e)for(const t in e)if(!this.appProxies.has(t)&&!this.appStatus.has(t)){const i=e[t];d((async()=>{this.appStatus.set(t,Ep.StartCreate);if(!this.attributes[t])throw new Error("appAttributes is undefined");await this.baseInsertApp({kind:i.kind,options:i.options,isDynamicPPT:i.isDynamicPPT},t,!1),this.focusByAttributes(e)}),{retries:3}).catch((e=>{console.warn("[WindowManager]: Insert App Error",e),this.appStatus.delete(t)}))}}bindMainView(e,t){const i=this.mainViewProxy.view;i.disableCameraTransform=t,i.divElement=e,i.focusScenePath||this.store.setMainViewFocusPath(),void 0===this.store.focus&&i.mode!==N.Writable&&this.viewManager.switchMainViewToWriter(),this.mainViewProxy.addMainViewListener(),yv.emit("mainViewMounted")}async addApp(e,t){nf("addApp",e);const{appId:i,needFocus:n}=await this.beforeAddApp(e,t),r=await this.baseInsertApp(e,i,!0,n);return this.afterAddApp(r),null==r?void 0:r.id}async beforeAddApp(e,t){var i;const n=await(async e=>{var t,i;const n=await(null==(t=Vp.appClasses.get(e))?void 0:t());return n&&(null==(i=n.config)?void 0:i.singleton)?e:`${e}-${W().replace("-","").slice(0,8)}`})(e.kind);this.appStatus.set(n,Ep.StartCreate);const r=null!=(i=e.attributes)?i:{};this.safeUpdateAttributes([n],r),this.store.setupAppAttributes(e,n,t);const s=!this.boxManager.minimized;return s&&this.store.setAppFocus(n,!0),{appId:n,needFocus:s}}afterAddApp(e){if(e&&e.box){const t=e.box;yv.emit("move",{appId:e.id,x:null==t?void 0:t.intrinsicX,y:null==t?void 0:t.intrinsicY}),this.store.updateAppState(e.id,Mp.ZIndex,t.zIndex)}this.boxManager.minimized&&this.boxManager.setMinimized(!1,!1)}async closeApp(e){const t=this.appProxies.get(e);t&&t.destroy(!0,!0,!1)}async baseInsertApp(e,t,i,n){if(this.appProxies.has(t))return void console.warn("[WindowManager]: app duplicate exists and cannot be created again");const r=new rf(e,this,t,i);if(r)return await r.baseInsertApp(n),this.appStatus.delete(t),r;throw this.appStatus.delete(t),new Error("[WindowManger]: initialize AppProxy failed")}get eventName(){return B(this.displayer)?"onRoomStateChanged":"onPlayerStateChanged"}get attributes(){return this.windowManger.attributes}get canOperate(){return this.windowManger.canOperate}get room(){return B(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(null==(e=this.room)?void 0:e.uid)||""}safeSetAttributes(e){this.windowManger.safeSetAttributes(e)}safeUpdateAttributes(e,t){this.windowManger.safeUpdateAttributes(e,t)}async setMainViewScenePath(e){if(this.room){const t=this.displayer.scenePathType(e);if(t===j.None)throw new Error(`[WindowManager]: ${e} not valid scene`);if(t===j.Page)await this._setMainViewScenePath(e);else if(t===j.Dir){const t=((e,t)=>{const i=e.entireScenes()[t][0].name;return"/"===t?`/${i}`:`${t}/${i}`})(this.displayer,e);await this._setMainViewScenePath(t)}}}async _setMainViewScenePath(e){this.safeSetAttributes({_mainScenePath:e}),await this.viewManager.switchMainViewToWriter(),_p(this.room,e),this.store.setMainViewFocusPath(),this.dispatchInternalEvent(yp.SetMainViewScenePath,{nextScenePath:e})}async setMainViewSceneIndex(e){if(this.room){this.safeSetAttributes({_mainSceneIndex:e}),await this.viewManager.switchMainViewToWriter(),this.room.setSceneIndex(e);const t=this.room.state.sceneState.scenePath;this.store.setMainViewScenePath(t),this.store.setMainViewFocusPath(),this.dispatchInternalEvent(yp.SetMainViewScenePath,{nextScenePath:t})}}getAppInitPath(e){var t;const i=this.store.getAppAttributes(e);if(i)return null==(t=null==i?void 0:i.options)?void 0:t.scenePath}safeDispatchMagixEvent(e,t){this.canOperate&&this.displayer.dispatchMagixEvent(e,t)}focusByAttributes(e){if(e&&Object.keys(e).length===this.boxManager.appBoxMap.size){const e=this.store.focus;e&&this.boxManager.focusBox({appId:e})}}async notifyReconnected(){const e=Array.from(this.appProxies.values()).map((e=>e.onReconnected()));await Promise.all(e),yv.emit("onReconnected")}notifyContainerRectUpdate(e){this.appProxies.forEach((t=>{t.appEmitter.emit("containerRectUpdate",e)}))}dispatchInternalEvent(e,t){this.safeDispatchMagixEvent("__WindowManger",{eventName:e,payload:t})}destroy(){var e;this.displayer.callbacks.off(this.eventName,this.displayerStateListener),this.displayer.callbacks.off("onEnableWriteNowChanged",this.displayerWritableListener),this.appListeners.removeListeners(),yv.offAny(this.boxEventListener),yv.clearListeners(),this.appProxies.size&&this.appProxies.forEach((e=>{e.destroy(!0,!1,!0)})),this.viewManager.destroy(),this.boxManager.destroy(),null==(e=this.refresher)||e.destroy(),this.mainViewProxy.destroy(),xv.clearListeners()}}function Pg(){}function zg(e){return e()}function Dg(){return Object.create(null)}function Lg(e){e.forEach(zg)}function Bg(e){return"function"==typeof e}function jg(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let Og,Vg;function Rg(e,t){return Og||(Og=document.createElement("a")),Og.href=t,e===Og.href}function _g(e,t){e.appendChild(t)}function Ug(e,t,i){e.insertBefore(t,i||null)}function Wg(e){e.parentNode.removeChild(e)}function Hg(e){return document.createElement(e)}function Qg(e){return document.createTextNode(e)}function $g(){return Qg(" ")}function Fg(e,t,i){null==i?e.removeAttribute(t):e.getAttribute(t)!==i&&e.setAttribute(t,i)}function Zg(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function Yg(e,t,i,n){e.style.setProperty(t,i,n?"important":"")}function Gg(e){Vg=e}const Xg=[],Jg=[],Kg=[],qg=[],ev=Promise.resolve();let tv=!1;function iv(e){Kg.push(e)}let nv=!1;const rv=new Set;function sv(){if(!nv){nv=!0;do{for(let e=0;e<Xg.length;e+=1){const t=Xg[e];Gg(t),av(t.$$)}for(Gg(null),Xg.length=0;Jg.length;)Jg.pop()();for(let e=0;e<Kg.length;e+=1){const t=Kg[e];rv.has(t)||(rv.add(t),t())}Kg.length=0}while(Xg.length);for(;qg.length;)qg.pop()();tv=!1,nv=!1,rv.clear()}}function av(e){if(null!==e.fragment){e.update(),Lg(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(iv)}}const ov=new Set;function lv(e,t){-1===e.$$.dirty[0]&&(Xg.push(e),tv||(tv=!0,ev.then(sv)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function cv(e,t,i,n,r,s,a,o=[-1]){const l=Vg;Gg(e);const c=e.$$={fragment:null,ctx:null,props:s,update:Pg,not_equal:r,bound:Dg(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l?l.$$.context:t.context||[]),callbacks:Dg(),dirty:o,skip_bound:!1,root:t.target||l.$$.root};a&&a(c.root);let u=!1;if(c.ctx=i?i(e,t.props||{},((t,i,...n)=>{const s=n.length?n[0]:i;return c.ctx&&r(c.ctx[t],c.ctx[t]=s)&&(!c.skip_bound&&c.bound[t]&&c.bound[t](s),u&&lv(e,t)),i})):[],c.update(),u=!0,Lg(c.before_update),c.fragment=!!n&&n(c.ctx),t.target){if(t.hydrate){const e=(p=t.target,Array.from(p.childNodes));c.fragment&&c.fragment.l(e),e.forEach(Wg)}else c.fragment&&c.fragment.c();t.intro&&((d=e.$$.fragment)&&d.i&&(ov.delete(d),d.i(h))),function(e,t,i,n){const{fragment:r,on_mount:s,on_destroy:a,after_update:o}=e.$$;r&&r.m(t,i),n||iv((()=>{const t=s.map(zg).filter(Bg);a?a.push(...t):Lg(t),e.$$.on_mount=[]})),o.forEach(iv)}(e,t.target,t.anchor,t.customElement),sv()}var d,h,p;Gg(l)}function uv(e){let t,i,n;return{c(){t=Hg("img"),Fg(t,"class","netless-window-manager-cursor-selector-avatar"),Fg(t,"style",i=e[15]()),Rg(t.src,n=e[7])||Fg(t,"src",n),Fg(t,"alt","avatar")},m(e,i){Ug(e,t,i)},p(e,i){128&i&&!Rg(t.src,n=e[7])&&Fg(t,"src",n)},d(e){e&&Wg(t)}}}function dv(e){let t,i;return{c(){t=Hg("span"),i=Qg(e[1]),Fg(t,"class","netless-window-manager-cursor-tag-name"),Yg(t,"background-color",e[10])},m(e,n){Ug(e,t,n),_g(t,i)},p(e,n){2&n&&Zg(i,e[1]),1024&n&&Yg(t,"background-color",e[10])},d(e){e&&Wg(t)}}}function hv(e){let t,i,n,r,s,a,o,l,c,u,d,h,p=e[13]&&uv(e),f=e[14]&&dv(e);return{c(){t=Hg("div"),i=Hg("div"),n=Hg("div"),p&&p.c(),r=$g(),s=Hg("span"),a=Qg(e[0]),o=$g(),f&&f.c(),l=$g(),c=Hg("div"),u=Hg("img"),Yg(s,"overflow","hidden"),Yg(s,"white-space","nowrap"),Yg(s,"text-overflow","ellipsis"),Yg(s,"max-width","80px"),Fg(n,"class",e[8]),Yg(n,"background-color",e[2]),Yg(n,"color",e[9]),Yg(n,"opacity",e[11]),Fg(i,"class","netless-window-manager-cursor-name"),Fg(u,"class",d="netless-window-manager-cursor-"+e[3]+"-image"),Rg(u.src,h=e[6])||Fg(u,"src",h),Fg(u,"alt",e[3]),Fg(c,"class","cursor-image-wrapper"),Fg(t,"class","netless-window-manager-cursor-mid"),Yg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),Yg(t,"display",e[12])},m(e,d){Ug(e,t,d),_g(t,i),_g(i,n),p&&p.m(n,null),_g(n,r),_g(n,s),_g(s,a),_g(n,o),f&&f.m(n,null),_g(t,l),_g(t,c),_g(c,u)},p(e,[i]){e[13]?p?p.p(e,i):(p=uv(e),p.c(),p.m(n,r)):p&&(p.d(1),p=null),1&i&&Zg(a,e[0]),e[14]?f?f.p(e,i):(f=dv(e),f.c(),f.m(n,null)):f&&(f.d(1),f=null),256&i&&Fg(n,"class",e[8]),4&i&&Yg(n,"background-color",e[2]),512&i&&Yg(n,"color",e[9]),2048&i&&Yg(n,"opacity",e[11]),8&i&&d!==(d="netless-window-manager-cursor-"+e[3]+"-image")&&Fg(u,"class",d),64&i&&!Rg(u.src,h=e[6])&&Fg(u,"src",h),8&i&&Fg(u,"alt",e[3]),48&i&&Yg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),4096&i&&Yg(t,"display",e[12])},i:Pg,o:Pg,d(e){e&&Wg(t),p&&p.d(),f&&f.d()}}}function pv(e,t,i){let n,r,s,a,{cursorName:o}=t,{tagName:l}=t,{backgroundColor:c}=t,{appliance:u}=t,{x:d}=t,{y:h}=t,{src:p}=t,{visible:f}=t,{avatar:m}=t,{theme:v}=t,{color:w}=t,{cursorTagBackgroundColor:b}=t,{opacity:y}=t;return e.$$set=e=>{"cursorName"in e&&i(0,o=e.cursorName),"tagName"in e&&i(1,l=e.tagName),"backgroundColor"in e&&i(2,c=e.backgroundColor),"appliance"in e&&i(3,u=e.appliance),"x"in e&&i(4,d=e.x),"y"in e&&i(5,h=e.y),"src"in e&&i(6,p=e.src),"visible"in e&&i(16,f=e.visible),"avatar"in e&&i(7,m=e.avatar),"theme"in e&&i(8,v=e.theme),"color"in e&&i(9,w=e.color),"cursorTagBackgroundColor"in e&&i(10,b=e.cursorTagBackgroundColor),"opacity"in e&&i(11,y=e.opacity)},e.$$.update=()=>{1&e.$$.dirty&&(n=!g(o)),2&e.$$.dirty&&i(14,r=!g(l)),128&e.$$.dirty&&i(13,s=!g(m)),65536&e.$$.dirty&&i(12,a=f?"initial":"none")},[o,l,c,u,d,h,p,m,v,w,b,y,a,s,r,()=>Object.entries({width:(n?19:28)+"px",height:(n?19:28)+"px",position:n?"initial":"absolute","border-color":n?"white":c,"margin-right":(n?4:0)+"px"}).map((([e,t])=>`${e}: ${t}`)).join(";"),f]}class fv extends class{$destroy(){!function(e,t){const i=e.$$;null!==i.fragment&&(Lg(i.on_destroy),i.fragment&&i.fragment.d(t),i.on_destroy=i.fragment=null,i.ctx=[])}(this,1),this.$destroy=Pg}$on(e,t){const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(t),()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}{constructor(e){super(),cv(this,e,pv,hv,jg,{cursorName:0,tagName:1,backgroundColor:2,appliance:3,x:4,y:5,src:6,visible:16,avatar:7,theme:8,color:9,cursorTagBackgroundColor:10,opacity:11})}}const mv={[O.pencil]:"data:image/png;base64,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",[O.selector]:"data:image/png;base64,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",[O.eraser]:"data:image/png;base64,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",[O.shape]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+",[O.text]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="};class gv{constructor(e,t,i,n){this.manager=e,this.memberId=t,this.cursorManager=i,this.wrapper=n,this.move=e=>{var t;if("main"===e.type){const t=this.cursorManager.wrapperRect;this.component&&t&&(this.autoHidden(),this.moveCursor(e,t,this.manager.mainView))}else{const i=this.cursorManager.focusView,n=null==(t=null==i?void 0:i.divElement)?void 0:t.getBoundingClientRect(),r=null==i?void 0:i.camera;i&&n&&r&&this.component&&(this.autoHidden(),this.moveCursor(e,n,i))}},this.leave=()=>{this.hide()},this.setMember(),this.createCursor(),this.autoHidden()}moveCursor(e,t,i){var n,r;const{x:s,y:a}=e,o=null==i?void 0:i.screen.convertPointToScreen(s,a);if(o){const e=o.x+t.x-2,i=o.y+t.y-18;o.x<0||o.x>t.width||o.y<0||o.y>t.height?null==(n=this.component)||n.$set({visible:!1}):null==(r=this.component)||r.$set({visible:!0,x:e,y:i})}}get memberApplianceName(){var e,t;return null==(t=null==(e=this.member)?void 0:e.memberState)?void 0:t.currentApplianceName}get memberColor(){var e,t;return`rgb(${null==(t=null==(e=this.member)?void 0:e.memberState)?void 0:t.strokeColor.join(",")})`}get payload(){var e;return null==(e=this.member)?void 0:e.payload}get memberCursorName(){var e,t;return(null==(e=this.payload)?void 0:e.nickName)||(null==(t=this.payload)?void 0:t.cursorName)||this.memberId}get memberTheme(){var e;return(null==(e=this.payload)?void 0:e.theme)?"netless-window-manager-cursor-inner-mellow":"netless-window-manager-cursor-inner"}get memberCursorTextColor(){var e;return(null==(e=this.payload)?void 0:e.cursorTextColor)||"#FFFFFF"}get memberCursorTagBackgroundColor(){var e;return(null==(e=this.payload)?void 0:e.cursorTagBackgroundColor)||this.memberColor}get memberAvatar(){var e;return null==(e=this.payload)?void 0:e.avatar}get memberOpacity(){return this.memberCursorName||this.memberAvatar?1:0}autoHidden(){this.timer&&clearTimeout(this.timer),this.timer=window.setTimeout((()=>{this.hide()}),1e4)}async createCursor(){this.member&&this.wrapper&&(this.component=new fv({target:document.documentElement,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}}getIcon(){if(this.member){return mv[this.memberApplianceName||O.shape]||mv[O.shape]}}setMember(){this.member=this.manager.findMemberByUid(this.memberId),this.updateComponent()}updateComponent(){var e;null==(e=this.component)||e.$set(w(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())}}class vv{constructor(e){var t;this.manager=e,this.cursorInstances=new Map,this.store=this.manager.store,this.mouseMoveListener=b((e=>{this.updateCursor(this.getType(e),e.clientX,e.clientY)}),16),this.getPoint=(e,t,i)=>{var n;const r=null==(n=null==e?void 0:e.divElement)?void 0:n.getBoundingClientRect();if(r){return null==e?void 0:e.convertToPointInWorld({x:t-r.x,y:i-r.y})}},this.getType=e=>{var t;const i=e.target,n=this.manager.focusApp;switch(i.parentElement){case this.mainViewElement:return{type:"main"};case null==(t=null==n?void 0:n.view)?void 0:t.divElement:return{type:"app"};default:return{type:"main"}}},this.mouseLeaveListener=()=>{this.hideCursor(this.manager.uid),this.manager.dispatchInternalEvent(yp.CursorMove,{uid:this.manager.uid,state:Tp.Leave})},this.roomMembers=null==(t=this.manager.room)?void 0:t.state.roomMembers;const i=Cv.wrapper;i&&(i.addEventListener("pointerenter",this.mouseMoveListener),i.addEventListener("pointermove",this.mouseMoveListener),i.addEventListener("pointerleave",this.mouseLeaveListener),this.wrapperRect=i.getBoundingClientRect()),yv.on("cursorMove",(e=>{let t=this.cursorInstances.get(e.uid);t||(t=new gv(this.manager,e.uid,this,i),this.cursorInstances.set(e.uid,t)),e.state===Tp.Leave?t.leave():t.move(e.position)}))}setMainViewDivElement(e){this.mainViewElement=e}get boxState(){return this.store.getBoxState()}get focusView(){var e;return null==(e=this.manager.focusApp)?void 0:e.view}updateCursor(e,t,i){if(this.wrapperRect&&this.manager.canOperate){const n="main"===e.type?this.manager.mainView:this.focusView,r=this.getPoint(n,t,i);r&&this.manager.dispatchInternalEvent(yp.CursorMove,{uid:this.manager.uid,position:{x:r.x,y:r.y,type:e.type}})}}updateContainerRect(){var e,t;this.containerRect=null==(e=Cv.container)?void 0:e.getBoundingClientRect(),this.wrapperRect=null==(t=Cv.wrapper)?void 0:t.getBoundingClientRect()}deleteCursor(e){const t=this.cursorInstances.get(e);t&&t.destroy()}hideCursor(e){const t=this.cursorInstances.get(e);t&&t.hide()}destroy(){var e;const t=Cv.wrapper;t&&(t.removeEventListener("pointerenter",this.mouseMoveListener),t.removeEventListener("pointermove",this.mouseMoveListener),t.removeEventListener("pointerleave",this.mouseLeaveListener)),this.cursorInstances.size&&(this.cursorInstances.forEach((e=>e.destroy())),this.cursorInstances.clear()),null==(e=this.manager.refresher)||e.remove("cursors")}}class wv{constructor(e){this.sdk=new V(l(o({},e),{useMobXState:!0}))}async mount(e){const t=e.joinRoomParams.invisiblePlugins||[],i=await this.sdk.joinRoom(l(o({},e.joinRoomParams),{useMultiViews:!0,invisiblePlugins:[...t,Cv],disableMagixEventDispatchLimit:!0})),n=await Cv.mount(o({room:i},e.mountParams));return y(e.joinRoomParams.disableCameraTransform)&&(n.mainView.disableCameraTransform=e.joinRoomParams.disableCameraTransform),n}}const bv=window.ResizeObserver||H,yv=new u,xv=new u,Mv=class extends R{constructor(e){super(e),this.version="0.3.25",this.dependencies={dependencies:{"@juggle/resize-observer":"^3.3.1",emittery:"^0.9.2",lodash:"^4.17.21","p-retry":"^4.6.1",uuid:"^7.0.3","video.js":">=7"},peerDependencies:{"video.js":">=7","white-web-sdk":"^2.13.16"},devDependencies:{"@netless/app-docs-viewer":"0.2.5","@netless/app-media-player":"0.1.0-beta.5","@netless/telebox-insider":"0.2.21","@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.22","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash-es":"^4.17.4","@types/uuid":"^8.3.1","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",less:"^4.1.1",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.3.5","video.js":"^7.14.3",vite:"^2.5.3","white-web-sdk":"^2.15.16"}},this.emitter=xv,this.viewMode=_.Broadcaster,this.isReplay=L(this.displayer),window.NETLESS_DEPS={dependencies:{"@juggle/resize-observer":"^3.3.1",emittery:"^0.9.2",lodash:"^4.17.21","p-retry":"^4.6.1",uuid:"^7.0.3","video.js":">=7"},peerDependencies:{"video.js":">=7","white-web-sdk":"^2.13.16"},devDependencies:{"@netless/app-docs-viewer":"0.2.5","@netless/app-media-player":"0.1.0-beta.5","@netless/telebox-insider":"0.2.21","@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.22","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash-es":"^4.17.4","@types/uuid":"^8.3.1","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",less:"^4.1.1",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.3.5","video.js":"^7.14.3",vite:"^2.5.3","white-web-sdk":"^2.15.16"}}}static async mount(e,t,i,n){let r,s,a,o,l,c,u=!0,h=!1,p="light";if("room"in e?(r=e.room,t=e.container,i=e.collectorContainer,s=e.containerSizeRatio,a=e.collectorStyles,o=e.debug,null!=e.chessboard&&(u=e.chessboard),l=e.overwriteStyles,c=e.cursor,h=Boolean(null==e?void 0:e.disableCameraTransform),p=e.prefersColorScheme):(r=e,s=null==n?void 0:n.containerSizeRatio,a=null==n?void 0:n.collectorStyles,o=null==n?void 0:n.debug,null!=(null==n?void 0:n.chessboard)&&(u=n.chessboard),l=null==n?void 0:n.overwriteStyles),this.checkVersion(),B(r)&&r.phase!==D.Connected)throw new Error("[WindowManager]: Room only Connected can be mount");if(!t)throw new Error("[WindowManager]: Container must provide");if(Mv.isCreated)throw new Error("[WindowManager]: Already created cannot be created again");Mv.isCreated=!0;try{let e=await this.initManager(r);if(this.debug=Boolean(o),this.debug&&(f={verbose:!0},Uh=Vh(Vh({},_h),f)),nf("Already insert room",e),B(this.displayer)){if(!e)throw new Error("[WindowManager]: init InvisiblePlugin failed")}else await d((async t=>{if(e=await this.initManager(r),!e)throw nf(`manager is empty. retrying ${t}`),new Error}),{retries:10});s&&(Mv.containerSizeRatio=s),Mv.container=t;const{playground:n,wrapper:g,sizer:v,mainViewElement:w}=(e=>{const t=document.createElement("div");t.className="netless-window-manager-playground";const i=document.createElement("div");i.className="netless-window-manager-sizer";const n=document.createElement("div");n.className="netless-window-manager-wrapper";const r=document.createElement("div");return r.className="netless-window-manager-main-view",t.appendChild(i),i.appendChild(n),n.appendChild(r),e.appendChild(t),Cv.wrapper=n,{playground:t,wrapper:n,sizer:i,mainViewElement:r}})(t);if(Mv.playground=n,u&&v.classList.add("netless-window-manager-chess-sizer"),l){const e=document.createElement("style");e.textContent=l,n.appendChild(e)}await e.ensureAttributes(),e.appManager=new Ng(e,{collectorContainer:i,collectorStyles:a,prefersColorScheme:p}),e.observePlaygroundSize(n,v,g),c&&(e.cursorManager=new vv(e.appManager)),e.bindMainView(w,h),((e,t)=>{if(L(e)){const t=e,i=t.seekToProgressTime;t.seekToProgressTime=async function(e){const n=await i.call(t,e);return"success"===n&&yv.emit("seek",e),n}}else{if(Object.getOwnPropertyDescriptor(e,"disableCameraTransform"))return;Object.defineProperty(e,"disableCameraTransform",{get:()=>t.mainView.disableCameraTransform,set(e){t.mainView.disableCameraTransform=e}}),e.moveCamera=e=>t.mainView.moveCamera(e),e.moveCameraToContain=(...e)=>t.mainView.moveCameraToContain(...e),e.convertToPointInWorld=(...e)=>t.mainView.convertToPointInWorld(...e),e.setCameraBound=(...e)=>t.mainView.setCameraBound(...e),e.scenePreview=(...e)=>t.mainView.scenePreview(...e),e.fillSceneSnapshot=(...e)=>t.mainView.fillSceneSnapshot(...e),e.generateScreenshot=(...e)=>t.mainView.generateScreenshot(...e)}})(r,e.appManager),yv.emit("onCreated");try{await Dp()}catch(m){console.warn("[WindowManager]: indexedDB open failed"),console.log(m)}return e}catch(m){throw Mv.isCreated=!1,m}var f}static async initManager(e){let t=e.getInvisiblePlugin(Mv.kind);if(!t&&B(e))if(!1===e.isWritable){try{await e.setWritable(!0)}catch(i){throw new Error("[WindowManger]: room must be switched to be writable")}t=await e.createInvisiblePlugin(Mv,{}),t.ensureAttributes(),await Qp(500),await e.setWritable(!1)}else t=await e.createInvisiblePlugin(Mv,{});return t}static register(e){return Vp.register(e)}async addApp(e){var t,i,n,r;if(this.appManager){if(!e.kind||"string"!=typeof e.kind)throw new Gp;const s=await(null==(t=Vp.appClasses.get(e.kind))?void 0:t());if(s&&(null==(i=s.config)?void 0:i.singleton)&&this.appManager.appProxies.has(e.kind))throw new Fp;const a=this.setupScenePath(e,this.appManager);if(void 0===a)return;(null==(n=null==e?void 0:e.options)?void 0:n.scenePath)&&(e.options.scenePath=(r=e.options.scenePath).endsWith("/")?r.slice(0,-1):r);return await this.appManager.addApp(e,Boolean(a))}throw new Zp}setupScenePath(e,t){var i,n,r;let s=!1;if(e.options){const{scenePath:a,scenes:o}=e.options;if(a){if(!(e=>e.startsWith("/"))(a))throw new Jp;const e=Object.keys(this.apps||{});for(const i of e){const e=t.store.getAppScenePath(i);if(e&&e===a)return void console.warn(`[WindowManager]: ScenePath ${a} Already opened`)}}a&&o&&o.length>0&&(this.isDynamicPPT(o)?(s=!0,this.displayer.entireScenes()[a]||null==(i=this.room)||i.putScenes(a,o)):this.displayer.entireScenes()[a]||null==(n=this.room)||n.putScenes(a,[{name:o[0].name}])),a&&void 0===o&&(null==(r=this.room)||r.putScenes(a,[{}]))}return s}async setMainViewScenePath(e){this.appManager&&await this.appManager.setMainViewScenePath(e)}async setMainViewSceneIndex(e){this.appManager&&await this.appManager.setMainViewSceneIndex(e)}getMainViewScenePath(){var e;return null==(e=this.appManager)?void 0:e.store.getMainViewScenePath()}getMainViewSceneIndex(){var e;return null==(e=this.appManager)?void 0:e.store.getMainViewSceneIndex()}setReadonly(e){var t,i;(null==(t=this.room)?void 0:t.isWritable)&&(this.readonly=e,null==(i=this.appManager)||i.boxManager.setReadonly(e))}switchMainViewToWriter(){var e;return null==(e=this.appManager)?void 0:e.mainViewProxy.mainViewClickHandler()}onAppDestroy(e,t){((e,t)=>{yv.once(e).then(t)})(`destroy-${e}`,t)}setBoxState(e){if(this.canOperate)switch(e){case"normal":this.setMaximized(!1),this.setMinimized(!1);break;case"maximized":this.setMaximized(!0),this.setMinimized(!1);break;case"minimized":this.setMinimized(!0)}}setMaximized(e){var t;this.canOperate&&(null==(t=this.appManager)||t.boxManager.setMaximized(e,!1))}setMinimized(e){var t;this.canOperate&&(null==(t=this.appManager)||t.boxManager.setMinimized(e,!1))}setViewMode(e){var t,i,n;this.canOperate&&(e===_.Broadcaster&&(null==(t=this.appManager)||t.mainViewProxy.setCameraAndSize(),null==(i=this.appManager)||i.mainViewProxy.start()),e===_.Freedom&&(null==(n=this.appManager)||n.mainViewProxy.stop()),this.viewMode=e)}get mainView(){if(this.appManager)return this.appManager.mainViewProxy.view;throw new Zp}get camera(){if(this.appManager)return this.appManager.mainViewProxy.view.camera;throw new Zp}get cameraState(){if(this.appManager)return this.appManager.mainViewProxy.cameraState;throw new Zp}get apps(){var e;return null==(e=this.appManager)?void 0:e.store.apps()}get boxState(){if(this.appManager)return this.appManager.boxManager.boxState;throw new Zp}get darkMode(){var e;return Boolean(null==(e=this.appManager)?void 0:e.boxManager.darkMode)}get prefersColorScheme(){if(this.appManager)return this.appManager.boxManager.prefersColorScheme;throw new Zp}queryAll(){var e;return Array.from((null==(e=this.appManager)?void 0:e.appProxies.values())||[])}queryOne(e){var t;return null==(t=this.appManager)?void 0:t.appProxies.get(e)}async closeApp(e){var t;return null==(t=this.appManager)?void 0:t.closeApp(e)}moveCamera(e){this.mainView.moveCamera(e)}moveCameraToContain(e){this.mainView.moveCameraToContain(e)}convertToPointInWorld(e){return this.mainView.convertToPointInWorld(e)}setCameraBound(e){this.mainView.setCameraBound(e)}onDestroy(){this._destroy()}destroy(){this._destroy()}_destroy(){var e,t,i,n;null==(e=this.containerResizeObserver)||e.disconnect(),null==(t=this.appManager)||t.destroy(),null==(i=this.cursorManager)||i.destroy(),Mv.container=void 0,Mv.wrapper=void 0,Mv.isCreated=!1,Mv.playground&&(null==(n=Mv.playground.parentNode)||n.removeChild(Mv.playground)),nf("Destroyed")}bindMainView(e,t){var i;this.appManager&&(this.appManager.bindMainView(e,t),null==(i=this.cursorManager)||i.setMainViewDivElement(e))}get canOperate(){return!!B(this.displayer)&&(this.displayer.isWritable&&this.displayer.phase===D.Connected)}get room(){return this.displayer}safeSetAttributes(e){this.canOperate&&this.setAttributes(e)}safeUpdateAttributes(e,t){this.canOperate&&this.updateAttributes(e,t)}setPrefersColorScheme(e){var t;null==(t=this.appManager)||t.boxManager.setPrefersColorScheme(e)}isDynamicPPT(e){var t,i;const n=null==(i=null==(t=e[0])?void 0:t.ppt)?void 0:i.src;return null==n?void 0:n.startsWith("pptx://")}static checkVersion(){if(Hp(U)<Hp("2.13.16"))throw new Yp("2.13.16")}async ensureAttributes(){if(x(this.attributes)&&await Qp(50),M(this.attributes)){this.attributes[qp.Apps]||this.safeSetAttributes({[qp.Apps]:{}}),this.attributes[qp.Cursors]||this.safeSetAttributes({[qp.Cursors]:{}});const e=this.displayer.state.sceneState;this.attributes._mainScenePath||this.safeSetAttributes({_mainScenePath:e.scenePath}),this.attributes._mainSceneIndex||this.safeSetAttributes({_mainSceneIndex:e.index})}}observePlaygroundSize(e,t,i){this.updateSizer(e.getBoundingClientRect(),t,i),this.containerResizeObserver=new bv((e=>{var n,r,s;const a=null==(n=e[0])?void 0:n.contentRect;a&&(this.updateSizer(a,t,i),null==(r=this.cursorManager)||r.updateContainerRect(),null==(s=this.appManager)||s.boxManager.updateManagerRect(),yv.emit("playgroundSizeChange",a))})),this.containerResizeObserver.observe(e)}updateSizer({width:e,height:t},i,n){e&&t&&(t/e>Mv.containerSizeRatio?(t=e*Mv.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!0)):(e=t/Mv.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!1)),n.style.width=`${e}px`,n.style.height=`${t}px`)}};let Cv=Mv;Cv.kind="WindowManager",Cv.debug=!1,Cv.containerSizeRatio=9/16,Cv.isCreated=!1,Cv.register({kind:Rt.kind,src:Rt}),Cv.register({kind:bp.kind,src:bp});const Iv={DocsViewer:Rt.kind,MediaPlayer:bp.kind};export{Iv as BuiltinApps,wv as WhiteWindowSDK,Cv as WindowManager,xv as callbacks,yv as emitter};
|
41
|
+
***************************************************************************** */function vf(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(i[n[r]]=e[n[r]])}return i}var wf=0,bf="undefined"!=typeof window&&void 0!==window.requestAnimationFrame?function(e){return window.requestAnimationFrame(e)}:function(e){var t=Date.now(),i=Math.max(0,16.7-(t-wf));wf=t+i,setTimeout((function(){return e(wf)}),i)},yf=1/60*1e3,xf=!0,Mf=!1,Cf=!1,If={delta:0,timestamp:0},Sf=["read","update","preRender","render","postRender"],Ef=function(e){return Mf=e},Tf=Sf.reduce((function(e,t){var i,n,r,s,a,o,l,c,u;return e[t]=(i=Ef,n=[],r=[],s=0,a=!1,o=0,l=new WeakSet,c=new WeakSet,u={cancel:function(e){var t=r.indexOf(e);l.add(e),-1!==t&&r.splice(t,1)},process:function(e){var t,d;if(a=!0,n=(t=[r,n])[0],(r=t[1]).length=0,s=n.length)for(o=0;o<s;o++)(d=n[o])(e),!0!==c.has(d)||l.has(d)||(u.schedule(d),i(!0));a=!1},schedule:function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=!1);var o=i&&a,u=o?n:r;l.delete(e),t&&c.add(e),-1===u.indexOf(e)&&(u.push(e),o&&(s=n.length))}}),e}),{}),Af=Sf.reduce((function(e,t){var i=Tf[t];return e[t]=function(e,t,n){return void 0===t&&(t=!1),void 0===n&&(n=!1),Mf||Pf(),i.schedule(e,t,n),e},e}),{}),kf=function(e){return Tf[e].process(If)},Nf=function(e){Mf=!1,If.delta=xf?yf:Math.max(Math.min(e-If.timestamp,40),1),xf||(yf=If.delta),If.timestamp=e,Cf=!0,Sf.forEach(kf),Cf=!1,Mf&&(xf=!1,bf(Nf))},Pf=function(){Mf=!0,xf=!0,Cf||bf(Nf)},zf=function(){return(zf=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},Df=function(e,t){return function(i){return Math.max(Math.min(i,t),e)}},Lf=function(e){return e%1?Number(e.toFixed(5)):e},Bf=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i,jf={test:function(e){return"number"==typeof e},parse:parseFloat,transform:function(e){return e}},Of=zf(zf({},jf),{transform:Df(0,1)}),Vf=zf(zf({},jf),{default:1}),Rf=function(e){return{test:function(t){return"string"==typeof t&&t.endsWith(e)&&1===t.split(" ").length},parse:parseFloat,transform:function(t){return""+t+e}}},_f=Rf("deg"),Uf=Rf("%"),Wf=Rf("px"),Hf=zf(zf({},Uf),{parse:function(e){return Uf.parse(e)/100},transform:function(e){return Uf.transform(100*e)}}),Qf=Df(0,255),$f=function(e){return void 0!==e.red},Ff=function(e){return void 0!==e.hue},Zf=function(e){return function(t){if("string"!=typeof t)return t;for(var i={},n=(s=t,s.substring(s.indexOf("(")+1,s.lastIndexOf(")"))).replace(/(,|\/)/g," ").split(/ \s*/),r=0;r<4;r++)i[e[r]]=void 0!==n[r]?parseFloat(n[r]):1;var s;return i}},Yf=zf(zf({},jf),{transform:function(e){return Math.round(Qf(e))}});function Gf(e,t){return e.startsWith(t)&&Bf.test(e)}var Xf,Jf={test:function(e){return"string"==typeof e?Gf(e,"rgb"):$f(e)},parse:Zf(["red","green","blue","alpha"]),transform:function(e){var t,i,n=e.red,r=e.green,s=e.blue,a=e.alpha,o=void 0===a?1:a;return"rgba("+(t={red:Yf.transform(n),green:Yf.transform(r),blue:Yf.transform(s),alpha:Lf(Of.transform(o))}).red+", "+t.green+", "+t.blue+", "+(void 0===(i=t.alpha)?1:i)+")"}},Kf={test:function(e){return"string"==typeof e?Gf(e,"hsl"):Ff(e)},parse:Zf(["hue","saturation","lightness","alpha"]),transform:function(e){var t,i,n=e.hue,r=e.saturation,s=e.lightness,a=e.alpha,o=void 0===a?1:a;return"hsla("+(t={hue:Math.round(n),saturation:Uf.transform(Lf(r)),lightness:Uf.transform(Lf(s)),alpha:Lf(Of.transform(o))}).hue+", "+t.saturation+", "+t.lightness+", "+(void 0===(i=t.alpha)?1:i)+")"}},qf=zf(zf({},Jf),{test:function(e){return"string"==typeof e&&Gf(e,"#")},parse:function(e){var t="",i="",n="";return e.length>4?(t=e.substr(1,2),i=e.substr(3,2),n=e.substr(5,2)):(t=e.substr(1,1),i=e.substr(2,1),n=e.substr(3,1),t+=t,i+=i,n+=n),{red:parseInt(t,16),green:parseInt(i,16),blue:parseInt(n,16),alpha:1}}}),em={test:function(e){return"string"==typeof e&&Bf.test(e)||$f(e)||Ff(e)},parse:function(e){return Jf.test(e)?Jf.parse(e):Kf.test(e)?Kf.parse(e):qf.test(e)?qf.parse(e):e},transform:function(e){return $f(e)?Jf.transform(e):Ff(e)?Kf.transform(e):e}},tm=function(e){var t=e.onRead,i=e.onRender,n=e.uncachedValues,r=void 0===n?new Set:n,s=e.useCache,a=void 0===s||s;return function(e){void 0===e&&(e={});var n=vf(e,[]),s={},o=[],l=!1;function c(e,t){e.startsWith("--")&&(n.hasCSSVariable=!0);var i=s[e];s[e]=t,s[e]!==i&&(-1===o.indexOf(e)&&o.push(e),l||(l=!0,Af.render(u.render)))}var u={get:function(e,i){return void 0===i&&(i=!1),i||!a||r.has(e)||void 0===s[e]?t(e,n):s[e]},set:function(e,t){if("string"==typeof e)c(e,t);else for(var i in e)c(i,e[i]);return this},render:function(e){return void 0===e&&(e=!1),(l||!0===e)&&(i(s,n,o),l=!1,o.length=0),this}};return u}},im=/([a-z])([A-Z])/g,nm=function(e){return e.replace(im,"$1-$2").toLowerCase()},rm=new Map,sm=new Map,am=["Webkit","Moz","O","ms",""],om=am.length,lm="undefined"!=typeof document,cm=function(e,t){return sm.set(e,nm(t))},um=function(e,t){void 0===t&&(t=!1);var i,n=t?sm:rm;return n.has(e)||(lm?function(e){Xf=Xf||document.createElement("div");for(var t=0;t<om;t++){var i=am[t],n=""===i,r=n?e:i+e.charAt(0).toUpperCase()+e.slice(1);if(r in Xf.style||n){if(n&&"clipPath"===e&&sm.has(e))return;rm.set(e,r),cm(e,(n?"":"-")+nm(r))}}}(e):cm(i=e,i)),n.get(e)||e},dm=["","X","Y","Z"],hm=["translate","scale","rotate","skew","transformPerspective"].reduce((function(e,t){return dm.reduce((function(e,i){return e.push(t+i),e}),e)}),["x","y","z"]),pm=hm.reduce((function(e,t){return e[t]=!0,e}),{});function fm(e){return!0===pm[e]}function mm(e,t){return hm.indexOf(e)-hm.indexOf(t)}var gm=new Set(["originX","originY","originZ"]);function vm(e){return gm.has(e)}var wm=gf(gf({},jf),{transform:Math.round}),bm={color:em,backgroundColor:em,outlineColor:em,fill:em,stroke:em,borderColor:em,borderTopColor:em,borderRightColor:em,borderBottomColor:em,borderLeftColor:em,borderWidth:Wf,borderTopWidth:Wf,borderRightWidth:Wf,borderBottomWidth:Wf,borderLeftWidth:Wf,borderRadius:Wf,radius:Wf,borderTopLeftRadius:Wf,borderTopRightRadius:Wf,borderBottomRightRadius:Wf,borderBottomLeftRadius:Wf,width:Wf,maxWidth:Wf,height:Wf,maxHeight:Wf,size:Wf,top:Wf,right:Wf,bottom:Wf,left:Wf,padding:Wf,paddingTop:Wf,paddingRight:Wf,paddingBottom:Wf,paddingLeft:Wf,margin:Wf,marginTop:Wf,marginRight:Wf,marginBottom:Wf,marginLeft:Wf,rotate:_f,rotateX:_f,rotateY:_f,rotateZ:_f,scale:Vf,scaleX:Vf,scaleY:Vf,scaleZ:Vf,skew:_f,skewX:_f,skewY:_f,distance:Wf,translateX:Wf,translateY:Wf,translateZ:Wf,x:Wf,y:Wf,z:Wf,perspective:Wf,opacity:Of,originX:Hf,originY:Hf,originZ:Wf,zIndex:wm,fillOpacity:Of,strokeOpacity:Of,numOctaves:wm},ym=function(e){return bm[e]},xm=function(e,t){return t&&"number"==typeof e?t.transform(e):e},Mm=new Set(["scrollLeft","scrollTop"]),Cm=new Set(["scrollLeft","scrollTop","transform"]),Im={x:"translateX",y:"translateY",z:"translateZ"};function Sm(e){return"function"==typeof e}function Em(e){var t=void 0===e?{}:e,i=t.enableHardwareAcceleration,n=void 0===i||i,r=t.isDashCase,s=void 0===r||r,a=t.allowTransformNone,o=void 0===a||a,l={},c={},u={},d=[];return function(e){return d.length=0,function(e,t,i,n,r,s,a,o){void 0===t&&(t=!0),void 0===i&&(i={}),void 0===n&&(n={}),void 0===r&&(r={}),void 0===s&&(s=[]),void 0===a&&(a=!1),void 0===o&&(o=!0);var l=!0,c=!1,u=!1;for(var d in e){var h=e[d],p=ym(d),f=xm(h,p);fm(d)?(c=!0,n[d]=f,s.push(d),l&&(p.default&&h!==p.default||!p.default&&0!==h)&&(l=!1)):vm(d)?(r[d]=f,u=!0):Cm.has(d)&&Sm(f)||(i[um(d,a)]=f)}(c||"function"==typeof e.transform)&&(i.transform=function(e,t,i,n,r,s){void 0===s&&(s=!0);var a="",o=!1;i.sort(mm);for(var l=i.length,c=0;c<l;c++){var u=i[c];a+=(Im[u]||u)+"("+t[u]+") ",o="z"===u||o}return!o&&r?a+="translateZ(0)":a=a.trim(),Sm(e.transform)?a=e.transform(t,n?"":a):s&&n&&(a="none"),a}(e,n,s,l,t,o)),u&&(i.transformOrigin=(r.originX||"50%")+" "+(r.originY||"50%")+" "+(r.originZ||0))}(e,n,l,c,u,d,s,o),l}}var Tm=tm({onRead:function(e,t){var i=t.element,n=t.preparseOutput,r=ym(e);if(fm(e))return r&&r.default||0;if(Mm.has(e))return i[e];var s=window.getComputedStyle(i,null).getPropertyValue(um(e,!0))||0;return n&&r&&r.test(s)&&r.parse?r.parse(s):s},onRender:function(e,t,i){var n=t.element,r=t.buildStyles,s=t.hasCSSVariable;if(Object.assign(n.style,r(e)),s)for(var a=i.length,o=0;o<a;o++){var l=i[o];l.startsWith("--")&&n.style.setProperty(l,e[l])}-1!==i.indexOf("scrollLeft")&&(n.scrollLeft=e.scrollLeft),-1!==i.indexOf("scrollTop")&&(n.scrollTop=e.scrollTop)},uncachedValues:Mm}),Am=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues"]),km=function(e,t){return Wf.transform(e*t)},Nm={x:0,y:0,width:0,height:0};function Pm(e,t,i){return"string"==typeof e?e:Wf.transform(t+i*e)}var zm={enableHardwareAcceleration:!1,isDashCase:!1};function Dm(e,t,i){void 0===i&&(i=!0);var n={style:{}},r=Em(zm);return function(s){return function(e,t,i,n,r,s){void 0===t&&(t=Nm),void 0===n&&(n=Em(zm)),void 0===r&&(r={style:{}}),void 0===s&&(s=!0);var a,o,l=e.attrX,c=e.attrY,u=e.originX,d=e.originY,h=e.pathLength,p=e.pathSpacing,f=void 0===p?1:p,m=e.pathOffset,g=void 0===m?0:m,v=n(vf(e,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]));for(var w in v)"transform"===w?r.style.transform=v[w]:r[s&&!Am.has(w)?nm(w):w]=v[w];return(void 0!==u||void 0!==d||v.transform)&&(r.style.transformOrigin=(o=void 0!==d?d:.5,Pm(void 0!==u?u:.5,(a=t).x,a.width)+" "+Pm(o,a.y,a.height))),void 0!==l&&(r.x=l),void 0!==c&&(r.y=c),void 0!==i&&void 0!==h&&(r[s?"stroke-dashoffset":"strokeDashoffset"]=km(-g,i),r[s?"stroke-dasharray":"strokeDasharray"]=km(h,i)+" "+km(f,i)),r}(s,e,t,r,n,i)}}var Lm=tm({onRead:function(e,t){var i=t.element;if(fm(e=Am.has(e)?e:nm(e))){var n=ym(e);return n&&n.default||0}return i.getAttribute(e)},onRender:function(e,t){var i=t.element,n=(0,t.buildAttrs)(e);for(var r in n)"style"===r?Object.assign(i.style,n.style):i.setAttribute(r,n[r])}}),Bm=tm({useCache:!1,onRead:function(e){return"scrollTop"===e?window.pageYOffset:window.pageXOffset},onRender:function(e){var t=e.scrollTop,i=void 0===t?0:t,n=e.scrollLeft,r=void 0===n?0:n;return window.scrollTo(r,i)}}),jm=new WeakMap;function Om(e,t){return i="string"==typeof e?document.querySelector(e):e,n=t,jm.has(i)?jm.get(i):function(e,t){var i,r,s,a,o;return e===window?i=Bm(e):(o=e)instanceof HTMLElement||"function"==typeof o.click?i=function(e,t){void 0===t&&(t={});var i=t.enableHardwareAcceleration,n=t.allowTransformNone,r=vf(t,["enableHardwareAcceleration","allowTransformNone"]);return Tm(gf({element:e,buildStyles:Em({enableHardwareAcceleration:i,allowTransformNone:n}),preparseOutput:!0},r))}(e,t):function(e){return e instanceof SVGElement||"ownerSVGElement"in e}(e)&&(s=function(e){try{return"function"==typeof(t=e).getBBox?t.getBBox():t.getBoundingClientRect()}catch(n){return{x:0,y:0,width:0,height:0}}var t}(r=e),a=function(e){return"path"===e.tagName}(r)&&r.getTotalLength?r.getTotalLength():void 0,i=Lm({element:r,buildAttrs:Dm(s,a)})),jm.set(e,i),i}(i,n);var i,n}var Vm=function(e,t,i,n){var r=i?i.call(n,e,t):void 0;if(void 0!==r)return!!r;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var s=Object.keys(e),a=Object.keys(t);if(s.length!==a.length)return!1;for(var o=Object.prototype.hasOwnProperty.bind(t),l=0;l<s.length;l++){var c=s[l];if(!o(c))return!1;var u=e[c],d=t[c];if(!1===(r=i?i.call(n,u,d,c):void 0)||void 0===r&&u!==d)return!1}return!0};const Rm="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",_m=Rm.length,Um=Array(20),Wm=()=>{for(let e=0;e<20;e++)Um[e]=Rm.charAt(Math.random()*_m);return Um.join("")};class Hm{constructor(){this.disposers=new Map}add(e,t=Wm()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=Wm()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,i,n,r=Wm()){return this.add((()=>(e.addEventListener(t,i,n),()=>e.removeEventListener(t,i,n))),r),r}setTimeout(e,t,i=Wm()){return this.add((()=>{const n=window.setTimeout((()=>{this.remove(i),e()}),t);return()=>window.clearTimeout(n)}),i)}setInterval(e,t,i=Wm()){return this.add((()=>{const i=window.setInterval(e,t);return()=>window.clearInterval(i)}),i)}remove(e){const t=this.disposers.get(e);return this.disposers.delete(e),t}flush(e){const t=this.remove(e);if(t)try{t()}catch(i){console.error(i)}}flushAll(){this.disposers.forEach((e=>{try{e()}catch(t){console.error(t)}})),this.disposers.clear()}}var Qm,$m,Fm,Zm,Ym,Gm,Xm,Jm,Km,qm,eg=Object.defineProperty,tg=("undefined"!=typeof require&&require,(e,t,i)=>{return s=i,(r="symbol"!=typeof t?t+"":t)in(n=e)?eg(n,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[r]=s,i;var n,r,s});class ig{constructor(e,t){tg(this,"_value"),tg(this,"_beforeDestroys"),tg(this,"_subscribers"),this._value=e,t&&(this.compare=t)}get value(){return this._value}setValue(e,t){if(!this.compare(e,this._value)){const i=this._value;this._value=e,this._subscribers&&this._subscribers.forEach((n=>n(e,i,t)))}}reaction(e){return this._subscribers||(this._subscribers=new Set),this._subscribers.add(e),()=>{this._subscribers&&this._subscribers.delete(e)}}subscribe(e,t){const i=this.reaction(e);return e(this._value,void 0,t),i}derive(e,t,i){const n=new ig(e(this.value,void 0,i),t),r=this.reaction(((t,i,r)=>{n.setValue(e(t,i,r))}));return n.addBeforeDestroy(r),n}destroy(){this._beforeDestroys&&(this._beforeDestroys.forEach((e=>e())),this._beforeDestroys.clear()),this._subscribers&&this._subscribers.clear()}addBeforeDestroy(e){return this._beforeDestroys||(this._beforeDestroys=new Set),this._beforeDestroys.add(e),()=>{this._beforeDestroys&&this._beforeDestroys.delete(e)}}compare(e,t){return e===t}}function ng(e,t){Object.keys(t).forEach((i=>{var n,r,s,a;n=e,r=i,s=t[i],Object.defineProperties(n,{[r]:{get:()=>s.value},[`_${r}$`]:{value:s},[`set${a=r,a[0].toUpperCase()+a.slice(1)}`]:{value:(e,t)=>s.setValue(e,t)}})}))}function rg(e){const t=t=>{const i=e.addDisposer((()=>{t.destroy()}));return t.addBeforeDestroy((()=>{e.remove(i)})),t};return{bindSideEffect:t,combine:(e,i,n,r)=>t(function(e,t,i,n){let r=e.map((e=>e.value));const s=new ig(t(r,void 0,n),i);return e.forEach(((e,i)=>{const n=e.reaction(((e,n,a)=>{const o=r.slice();o[i]=e;const l=r;r=o,s.setValue(t(o,l,a),a)}));s.addBeforeDestroy(n)})),s}(e,i,n,r)),createVal:(e,i)=>t(new ig(e,i))}}function sg(e,t,i){return Math.min(Math.max(e,t),i)}function ag(e){e.stopPropagation(),e.cancelable&&e.preventDefault()}function og(e){return e.touches?e.touches[0]:e}function lg(){return Date.now().toString().slice(6)+Math.random().toString().slice(2,8)}($m=Qm||(Qm={})).Light="light",$m.Dark="dark",$m.Auto="auto",(Zm=Fm||(Fm={})).Normal="normal",Zm.Minimized="minimized",Zm.Maximized="maximized",(Gm=Ym||(Ym={})).DarkMode="dark_mode",Gm.PrefersColorScheme="prefers_color_scheme",Gm.Close="close",Gm.Focus="focus",Gm.Blur="blur",Gm.Move="move",Gm.Resize="resize",Gm.IntrinsicMove="intrinsic_move",Gm.IntrinsicResize="intrinsic_resize",Gm.VisualResize="visual_resize",Gm.ZIndex="z_index",Gm.State="state",Gm.Minimized="minimized",Gm.Maximized="maximized",Gm.Readonly="readonly",Gm.Destroyed="destroyed",(Jm=Xm||(Xm={})).Close="close",Jm.Maximize="maximize",Jm.Minimize="minimize",(qm=Km||(Km={})).North="n",qm.South="s",qm.West="w",qm.East="e",qm.NorthWest="nw",qm.NorthEast="ne",qm.SouthEast="se",qm.SouthWest="sw";let cg=1;function ug(){return"New Box "+cg++}function dg(e){return Boolean(e)}function hg(e){return!e}class pg{constructor({readonly:e=!1,title:t,buttons:i,onEvent:n,onDragStart:r,namespace:s="telebox",state:a=Fm.Normal}={}){this.$btns=[],this.sideEffect=new Hm,this.lastTitleBarClick={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarClick=e=>{var t;if(this.readonly)return;if(0!==e.button)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;ag(e);const i=Date.now();i-this.lastTitleBarClick.timestamp<=500?Math.abs(e.clientX-this.lastTitleBarClick.clientX)<=3&&Math.abs(e.clientY-this.lastTitleBarClick.clientY)<=3&&this.onEvent&&this.onEvent({type:Xm.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarClick.timestamp=i,this.lastTitleBarClick.clientX=e.clientX,this.lastTitleBarClick.clientY=e.clientY},this.lastTitleBarTouch={timestamp:0,clientX:-100,clientY:-100},this.handleTitleBarTouch=e=>{var t;if(this.readonly)return;if(null==(t=e.target.dataset)?void 0:t.teleTitleBarNoDblClick)return;ag(e);const i=Date.now(),{clientX:n=this.lastTitleBarTouch.clientX+100,clientY:r=this.lastTitleBarTouch.clientY+100}=e.touches[0]||{};i-this.lastTitleBarTouch.timestamp<=500?Math.abs(n-this.lastTitleBarTouch.clientX)<=3&&Math.abs(r-this.lastTitleBarTouch.clientY)<=3&&this.onEvent&&this.onEvent({type:Xm.Maximize}):this.onDragStart&&this.onDragStart(e),this.lastTitleBarTouch.timestamp=i,this.lastTitleBarTouch.clientX=n,this.lastTitleBarTouch.clientY=r},this.readonly=e,this.onEvent=n,this.onDragStart=r,this.namespace=s,this.title=t,this.state=a,this.buttons=i||[{type:Xm.Minimize,iconClassName:this.wrapClassName("titlebar-icon-minimize")},{type:Xm.Maximize,iconClassName:this.wrapClassName("titlebar-icon-maximize"),isActive:e=>e===Fm.Maximized},{type:Xm.Close,iconClassName:this.wrapClassName("titlebar-icon-close")}],this.$dragArea=this.renderDragArea()}setTitle(e){this.title=e,this.$title&&(this.$title.textContent=e,this.$title.title=e)}setState(e){this.state!==e&&(this.state=e,this.buttons.forEach(((t,i)=>{t.isActive&&this.$btns[i].classList.toggle("is-active",t.isActive(e))})))}setReadonly(e){this.readonly!==e&&(this.readonly=e)}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="dh",this.$title=document.createElement("h1"),this.$title.className=this.wrapClassName("title"),this.$title.dataset.teleBoxHandle="dh",this.title&&(this.$title.textContent=this.title,this.$title.title=this.title),e.appendChild(this.$title),e.appendChild(this.$dragArea);const t=document.createElement("div");t.className=this.wrapClassName("titlebar-btns"),this.buttons.forEach((({iconClassName:e,isActive:i},n)=>{const r=String(n),s=document.createElement("button");s.className=`${this.wrapClassName("titlebar-btn")} ${e}`,s.dataset.teleTitleBarBtnIndex=r,s.dataset.teleTitleBarNoDblClick="true",i&&s.classList.toggle("is-active",i(this.state)),this.$btns.push(s),t.appendChild(s)})),this.sideEffect.addEventListener(t,"click",(e=>{var t;if(this.readonly)return;const i=e.target,n=Number(null==(t=i.dataset)?void 0:t.teleTitleBarBtnIndex);if(!Number.isNaN(n)&&n<this.buttons.length){ag(e);const t=this.buttons[n];this.onEvent&&this.onEvent({type:t.type,value:t.value})}})),this.$titleBar.appendChild(e),this.$titleBar.appendChild(t)}return this.$titleBar}renderDragArea(){const e=document.createElement("div");return e.className=this.wrapClassName("drag-area"),e.dataset.teleBoxHandle="dh",this.sideEffect.addEventListener(e,"mousedown",this.handleTitleBarClick),this.sideEffect.addEventListener(e,"touchstart",this.handleTitleBarTouch,{passive:!0}),e}dragHandle(){return this.$titleBar}wrapClassName(e){return`${this.namespace}-${e}`}destroy(){this.sideEffect.flushAll(),this.$titleBar&&(this.$titleBar=void 0,this.$title=void 0,this.$btns.length=0,this.onDragStart=void 0,this.onEvent=void 0)}}class fg{constructor({id:e=lg(),title:t=ug(),prefersColorScheme:i=Qm.Light,darkMode:n,visible:r=!0,width:s=.5,height:a=.5,minWidth:o=0,minHeight:l=0,x:c=.1,y:u=.1,minimized:d=!1,maximized:h=!1,readonly:p=!1,resizable:f=!0,draggable:m=!0,fence:g=!0,fixRatio:v=!1,focus:w=!1,zIndex:b=100,namespace:y="telebox",titleBar:x,content:M,footer:C,styles:I,containerRect:S={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collectorRect:E}={}){this._renderSideEffect=new Hm,this.handleTrackStart=e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},this._sideEffect=new Hm,this._valSideEffectBinder=rg(this._sideEffect);const{combine:T,createVal:A}=this._valSideEffectBinder;this.id=e,this.namespace=y,this.events=new mf,this._delegateEvents=new mf;const k=A(i);k.reaction(((e,t,i)=>{i||this.events.emit(Ym.PrefersColorScheme,e)}));const N=A(Boolean(n));null==n&&k.subscribe(((e,t,i)=>{this._sideEffect.add((()=>{if("auto"===e){const e=window.matchMedia("(prefers-color-scheme: dark)");if(e){N.setValue(e.matches,i);const t=e=>{N.setValue(e.matches,i)};return e.addListener(t),()=>e.removeListener(t)}return mg}return N.setValue("dark"===e,i),mg}),"prefers-color-scheme")})),N.reaction(((e,t,i)=>{i||this.events.emit(Ym.DarkMode,e)}));const P=A(S,Vm),z=A(E,Vm),D=A(t),L=A(r);L.reaction(((e,t,i)=>{i||e||this.events.emit(Ym.Close)}));const B=A(p);B.reaction(((e,t,i)=>{i||this.events.emit(Ym.Readonly,e)}));const j=A(f),O=A(m),V=A(g),R=A(v),_=A(b);_.reaction(((e,t,i)=>{i||this.events.emit(Ym.ZIndex,e)}));const U=A(w);U.reaction(((e,t,i)=>{i||this.events.emit(e?Ym.Focus:Ym.Blur)}));const W=A(d);W.reaction(((e,t,i)=>{i||this.events.emit(Ym.Minimized,e)}));const H=A(h);H.reaction(((e,t,i)=>{i||this.events.emit(Ym.Maximized,e)}));const Q=T([W,H],(([e,t])=>e?Fm.Minimized:t?Fm.Maximized:Fm.Normal));Q.reaction(((e,t,i)=>{i||this.events.emit(Ym.State,e)}));const $=A({width:sg(o,0,1),height:sg(l,0,1)},Vm),F=A({width:sg(s,$.value.width,1),height:sg(a,$.value.height,1)},Vm);$.reaction(((e,t,i)=>{F.setValue({width:sg(s,e.width,1),height:sg(a,e.height,1)},i)})),F.reaction(((e,t,i)=>{i||this.events.emit(Ym.IntrinsicResize,e)}));const Z=T([F,H],(([e,t])=>t?{width:1,height:1}:e),Vm);Z.reaction(((e,t,i)=>{i||this.events.emit(Ym.Resize,e)}));const Y=T([Z,W,P,z],(([e,t,i,n])=>t&&n?{width:n.width/e.width/i.width,height:n.height/e.height/i.height}:e),Vm);Y.reaction(((e,t,i)=>{i||this.events.emit(Ym.VisualResize,e)}));const G=A({x:sg(c,0,1),y:sg(u,0,1)},Vm);G.reaction(((e,t,i)=>{i||this.events.emit(Ym.IntrinsicMove,e)}));const X=T([G,F,P,z,W,H],(([e,t,i,n,r,s])=>r&&n?s?{x:(n.x+n.width/2)/i.width-.5,y:(n.y+n.height/2)/i.height-.5}:{x:(n.x+n.width/2)/i.width-t.width/2,y:(n.y+n.height/2)/i.height-t.height/2}:s?{x:0,y:0}:e),Vm);X.reaction(((e,t,i)=>{i||this.events.emit(Ym.Move,e)})),this.titleBar=x||new pg({readonly:B.value,title:D.value,namespace:this.namespace,onDragStart:e=>{var t;return null==(t=this._handleTrackStart)?void 0:t.call(this,e)},onEvent:e=>{if(this._delegateEvents.listeners.length>0)this._delegateEvents.emit(e.type);else switch(e.type){case Xm.Maximize:H.setValue(!H.value);break;case Xm.Minimize:W.setValue(!0);break;case Xm.Close:L.setValue(!1);break;default:console.error("Unsupported titleBar event:",e)}}}),B.reaction((e=>{this.titleBar.setReadonly(e)}));const J=A(M),K=A(C),q=A(I);ng(this,{prefersColorScheme:k,darkMode:N,containerRect:P,collectorRect:z,title:D,visible:L,readonly:B,resizable:j,draggable:O,fence:V,fixRatio:R,focus:U,zIndex:_,minimized:W,maximized:H,$userContent:J,$userFooter:K,$userStyles:q}),this._state$=Q,this._minSize$=$,this._size$=Z,this._intrinsicSize$=F,this._visualSize$=Y,this._coord$=X,this._intrinsicCoord$=G,this.fixRatio&&this.transform(X.value.x,X.value.y,Z.value.width,Z.value.height,!0),this.$box=this.render()}get darkMode(){return this._darkMode$.value}get state(){return this._state$.value}setState(e,t=!1){switch(e){case Fm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case Fm.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}get minWidth(){return this._minSize$.value.width}get minHeight(){return this._minSize$.value.height}setMinWidth(e,t=!1){return this._minSize$.setValue({width:e,height:this.minHeight},t),this}setMinHeight(e,t=!1){return this._minSize$.setValue({width:this.minWidth,height:e},t),this}get intrinsicWidth(){return this._intrinsicSize$.value.width}get intrinsicHeight(){return this._intrinsicSize$.value.height}resize(e,t,i=!1){return this._intrinsicSize$.setValue({width:e,height:t},i),this}get width(){return this._size$.value.width}get height(){return this._size$.value.height}get absoluteWidth(){return this.width*this.containerRect.width}get absoluteHeight(){return this.height*this.containerRect.height}get visualWidth(){return this._visualSize$.value.width}get visualHeight(){return this._visualSize$.value.height}get intrinsicX(){return this._intrinsicCoord$.value.x}get intrinsicY(){return this._intrinsicCoord$.value.y}move(e,t,i=!1){return this._intrinsicCoord$.setValue({x:e,y:t},i),this}get x(){return this._coord$.value.x}get y(){return this._coord$.value.y}transform(e,t,i,n,r=!1){if(this.fixRatio){const e=this.intrinsicHeight/this.intrinsicWidth*i;t!==this.intrinsicY&&(t-=e-n),n=e}return t<0&&(t=0,n>this.intrinsicHeight&&(n=this.intrinsicHeight)),this._intrinsicCoord$.setValue({x:i>=this.minWidth?e:this.intrinsicX,y:n>=this.minHeight?t:this.intrinsicY},r),this._intrinsicSize$.setValue({width:sg(i,this.minWidth,1),height:sg(n,this.minHeight,1)},r),this}mount(e){return e.appendChild(this.render()),this}unmount(){return this.$box&&this.$box.remove(),this}mountContent(e){return this.set$userContent(e),this}unmountContent(){return this.set$userContent(void 0),this}mountFooter(e){return this.set$userFooter(e),this}unmountFooter(){return this.set$userFooter(void 0),this}getUserStyles(){return this.$userStyles}mountStyles(e){let t;return"string"==typeof e?(t=document.createElement("style"),t.textContent=e):t=e,this.set$userStyles(t),this}unmountStyles(){return this.set$userStyles(void 0),this}render(e){if(e){if(e===this.$box)return this.$box;this.$box=e}else{if(this.$box)return this.$box;this.$box=document.createElement("div")}this._renderSideEffect.flushAll(),this.$box.classList.add(this.wrapClassName("box"));const t=(e,t,i,n=dg)=>this._renderSideEffect.add((()=>{const r=this.wrapClassName(i);return t.subscribe((t=>{e.classList.toggle(r,n(t))}))}));t(this.$box,this._readonly$,"readonly"),t(this.$box,this._draggable$,"no-drag",hg),t(this.$box,this._resizable$,"no-resize",hg),t(this.$box,this._focus$,"blur",hg),t(this.$box,this._darkMode$,"color-scheme-dark"),t(this.$box,this._darkMode$,"color-scheme-light",hg),this._renderSideEffect.add((()=>{const e=this.wrapClassName("minimized"),t=this.wrapClassName("maximized"),i="box-maximized-timer";return this._state$.subscribe((n=>{this.$box.classList.toggle(e,n===Fm.Minimized),n===Fm.Maximized?(this._renderSideEffect.flush(i),this.$box.classList.toggle(t,!0)):this._renderSideEffect.setTimeout((()=>{this.$box.classList.toggle(t,!1)}),0,i)}))})),this._renderSideEffect.add((()=>this._visible$.subscribe((e=>{this.$box.style.display=e?"block":"none"})))),this._renderSideEffect.add((()=>this._zIndex$.subscribe((e=>{this.$box.style.zIndex=String(e)}))));const i=Om(this.$box);this.$box.dataset.teleBoxID=this.id,this.$box.style.width=this.absoluteWidth+"px",this.$box.style.height=this.absoluteHeight+"px";const n=this.x*this.containerRect.width+this.containerRect.x,r=this.y*this.containerRect.height+this.containerRect.y;this.$box.style.transform=`translate(${n-10}px,${r-10}px)`,this._valSideEffectBinder.combine([this._coord$,this._size$,this._minimized$,this._containerRect$,this._collectorRect$],(([e,t,i,n,r])=>{const s=t.width*n.width,a=t.height*n.height;return{width:s,height:a,x:e.x*n.width,y:e.y*n.height,scaleX:i&&r?r.width/s:1,scaleY:i&&r?r.height/a:1}}),Vm).subscribe((e=>{i.set(e)})),i.set({x:n,y:r});const s=document.createElement("div");s.className=this.wrapClassName("box-main"),this.$box.appendChild(s);const a=document.createElement("div");a.className=this.wrapClassName("titlebar-wrap"),a.appendChild(this.titleBar.render()),this.$titleBar=a;const o=document.createElement("div");o.className=this.wrapClassName("content-wrap");const l=document.createElement("div");l.className=this.wrapClassName("content")+" tele-fancy-scrollbar",this.$content=l,this._renderSideEffect.add((()=>{let e;return this._$userStyles$.subscribe((t=>{e&&e.remove(),e=t,t&&o.appendChild(t)}))})),this._renderSideEffect.add((()=>{let e;return this._$userContent$.subscribe((t=>{e&&e.remove(),e=t,t&&l.appendChild(t)}))})),o.appendChild(l);const c=document.createElement("div");return c.className=this.wrapClassName("footer-wrap"),this.$footer=c,this._renderSideEffect.add((()=>{let e;return this._$userFooter$.subscribe((t=>{e&&e.remove(),e=t,t&&c.appendChild(t)}))})),s.appendChild(a),s.appendChild(o),s.appendChild(c),this._renderResizeHandlers(),this.$box}_renderResizeHandlers(){const e=document.createElement("div");e.className=this.wrapClassName("resize-handles"),Object.values(Km).forEach((t=>{const i=document.createElement("div");i.className=this.wrapClassName(t)+" "+this.wrapClassName("resize-handle"),i.dataset.teleBoxHandle=t,e.appendChild(i)})),this.$box.appendChild(e);const t="handle-tracking-listener",i=this.wrapClassName("transforming");let n,r,s=0,a=0,o=0,l=0,c=0,u=0;const d=e=>{if(this.state!==Fm.Normal)return;ag(e);let{pageX:t,pageY:i}=og(e);i<0&&(i=0);const n=(t-c)/this.containerRect.width,d=(i-u)/this.containerRect.height;switch(r){case Km.North:this.transform(this.x,a+d,this.width,l-d);break;case Km.South:this.transform(this.x,this.y,this.width,l+d);break;case Km.West:this.transform(s+n,this.y,o-n,this.height);break;case Km.East:this.transform(this.x,this.y,o+n,this.height);break;case Km.NorthWest:this.transform(s+n,a+d,o-n,l-d);break;case Km.NorthEast:this.transform(this.x,a+d,o+n,l-d);break;case Km.SouthEast:this.transform(this.x,this.y,o+n,l+d);break;case Km.SouthWest:this.transform(s+n,this.y,o-n,l+d);break;default:if(this.fence)this.move(sg(s+n,0,1-this.width),sg(a+d,0,1-this.height));else{const e=20/this.containerRect.width,t=20/this.containerRect.height;this.move(sg(s+n,e-this.width,1-e),sg(a+d,0,1-t))}}},h=e=>{r=void 0,n&&(ag(e),this.$box.classList.toggle(i,!1),this._sideEffect.flush(t),n.remove())},p=e=>{var p;if(this.readonly)return;if(null!=e.button&&0!==e.button)return;if(!this.draggable||r||this.state!==Fm.Normal)return;const f=e.target;if(null==(p=f.dataset)?void 0:p.teleBoxHandle){ag(e),s=this.x,a=this.y,o=this.width,l=this.height,({pageX:c,pageY:u}=og(e)),r=f.dataset.teleBoxHandle,n||(n=document.createElement("div"));const p=r?this.wrapClassName(`cursor-${r}`):"";n.className=this.wrapClassName("track-mask"+(p?` ${p}`:"")),this.$box.appendChild(n),this.$box.classList.add(i),this._sideEffect.add((()=>(window.addEventListener("mousemove",d),window.addEventListener("touchmove",d,{passive:!1}),window.addEventListener("mouseup",h),window.addEventListener("touchend",h,{passive:!1}),window.addEventListener("touchcancel",h,{passive:!1}),()=>{window.removeEventListener("mousemove",d),window.removeEventListener("touchmove",d),window.removeEventListener("mouseup",h),window.removeEventListener("touchend",h),window.removeEventListener("touchcancel",h)})),t)}};this._handleTrackStart=p,this._sideEffect.addEventListener(e,"mousedown",p,{},"box-resizeHandles-mousedown"),this._sideEffect.addEventListener(e,"touchstart",p,{passive:!1},"box-resizeHandles-touchstart")}destroy(){this.$box.remove(),this.events.emit(Ym.Destroyed),this._sideEffect.flushAll(),this._renderSideEffect.flushAll(),this.events.removeAllListeners(),this._delegateEvents.removeAllListeners()}wrapClassName(e){return`${this.namespace}-${e}`}}function mg(){}var gg,vg;class wg{constructor({visible:e=!0,readonly:t=!1,darkMode:i=!1,namespace:n="telebox",styles:r={},onClick:s}={}){this.handleCollectorClick=()=>{!this._readonly&&this.onClick&&this.onClick()},this._visible=e,this._readonly=t,this._darkMode=i,this.namespace=n,this.styles=r,this.onClick=s}get visible(){return this._visible}get readonly(){return this._readonly}get darkMode(){return this._darkMode}mount(e){return e.appendChild(this.render()),this}unmount(){return this.$collector&&this.$collector.remove(),this}setVisible(e){return this._visible!==e&&(this._visible=e,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-visible"),e)),this}setReadonly(e){return this._readonly!==e&&(this._readonly=e,this.$collector&&this.$collector.classList.toggle(this.wrapClassName("collector-readonly"),e)),this}setDarkMode(e){return this._darkMode!==e&&(this._darkMode=e,this.$collector&&(this.$collector.classList.toggle(this.wrapClassName("color-scheme-dark"),e),this.$collector.classList.toggle(this.wrapClassName("color-scheme-light"),!e))),this}setStyles(e){if(Object.assign(this.styles,e),this.$collector){const t=this.$collector;Object.keys(e).forEach((i=>{const n=e[i];null!=n&&(t.style[i]=n)}))}return this}render(){return this.$collector||(this.$collector=document.createElement("button"),this.$collector.className=this.wrapClassName("collector"),this.$collector.style.backgroundImage="url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxNiI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzdCODhBMCIgc3Ryb2tlLXdpZHRoPSIxLjQiIGQ9Ik0uNyAxLjJoMTYuNnYxMy42SC43eiIgLz4KICAgICAgICA8cGF0aCBmaWxsPSIjN0I4OEEwIiBkPSJNNCA1LjVoNnYxLjRINHpNNCA5LjVoMTB2MS40SDR6IiAvPgogICAgPC9nPgo8L3N2Zz4K')",this.$collector.addEventListener("click",this.handleCollectorClick),this._visible&&this.$collector.classList.add(this.wrapClassName("collector-visible")),this._readonly&&this.$collector.classList.add(this.wrapClassName("collector-readonly")),this.$collector.classList.add(this.wrapClassName(this._darkMode?"color-scheme-dark":"color-scheme-light")),this.setStyles(this.styles)),this.$collector}destroy(){this.$collector&&(this.$collector.removeEventListener("click",this.handleCollectorClick),this.$collector.remove(),this.$collector=void 0),this.onClick=void 0}wrapClassName(e){return`${this.namespace}-${e}`}}(vg=gg||(gg={})).Focused="focused",vg.Blurred="blurred",vg.Created="created",vg.Removed="removed",vg.State="state",vg.Maximized="maximized",vg.Minimized="minimized",vg.Move="move",vg.Resize="resize",vg.IntrinsicMove="intrinsic_move",vg.IntrinsicResize="intrinsic_resize",vg.VisualResize="visual_resize",vg.ZIndex="z_index",vg.PrefersColorScheme="prefers_color_scheme",vg.DarkMode="dark_mode";class bg extends pg{constructor(e){super(e),this.boxes=e.boxes,this.focusedBox=e.focusedBox,this.containerRect=e.containerRect,this.darkMode=e.darkMode}focusBox(e){var t;if(!this.focusedBox||this.focusedBox!==e){if(this.$titles&&this.state===Fm.Maximized){const{children:i}=this.$titles.firstElementChild;for(let n=i.length-1;n>=0;n-=1){const r=i[n],s=null==(t=r.dataset)?void 0:t.teleBoxID;s&&(e&&s===e.id?r.classList.toggle(this.wrapClassName("titles-tab-focus"),!0):this.focusedBox&&s===this.focusedBox.id&&r.classList.toggle(this.wrapClassName("titles-tab-focus"),!1))}}this.focusedBox=e}}setContainerRect(e){if(this.containerRect=e,this.$titleBar){const{x:t,y:i,width:n}=e;this.$titleBar.style.transform=`translate(${t}px, ${i}px)`,this.$titleBar.style.width=n+"px"}}setBoxes(e){this.boxes=e,this.updateTitles()}setState(e){super.setState(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("max-titlebar-maximized"),e===Fm.Maximized),this.updateTitles()}setReadonly(e){super.setReadonly(e),this.$titleBar&&this.$titleBar.classList.toggle(this.wrapClassName("readonly"),this.readonly)}setDarkMode(e){e!==this.darkMode&&(this.darkMode=e,this.$titleBar&&(this.$titleBar.classList.toggle(this.wrapClassName("color-scheme-dark"),e),this.$titleBar.classList.toggle(this.wrapClassName("color-scheme-light"),!e)))}render(){var e;const t=super.render();(null==(e=t.firstElementChild)?void 0:e.nextElementSibling)&&t.insertBefore(this.$dragArea,t.firstElementChild.nextElementSibling);const{x:i,y:n,width:r}=this.containerRect;return t.style.transform=`translate(${i}px, ${n}px)`,t.style.width=r+"px",t.classList.add(this.wrapClassName("max-titlebar")),t.classList.toggle(this.wrapClassName("max-titlebar-maximized"),this.state===Fm.Maximized),t.classList.toggle(this.wrapClassName("readonly"),this.readonly),t.classList.add(this.wrapClassName(this.darkMode?"color-scheme-dark":"color-scheme-light")),this.updateTitles(),t}destroy(){super.destroy(),this.$titles=void 0,this.boxes.length=0,this.focusedBox=void 0}updateTitles(){this.$titleBar&&this.state===Fm.Maximized&&(1===this.boxes.length?this.$title&&(this.$title.textContent=this.boxes[0].title,this.$titleBar.replaceChild(this.$title,this.$titleBar.firstElementChild)):this.$titleBar.replaceChild(this.renderTitles(),this.$titleBar.firstElementChild))}renderTitles(){this.$titles=document.createElement("div"),this.$titles.className=this.wrapClassName("titles"),this.$titles.addEventListener("wheel",(e=>{e.currentTarget.scrollBy({left:e.deltaY>0?250:-250,behavior:"smooth"})}),{passive:!1});const e=document.createElement("div");return e.className=this.wrapClassName("titles-content"),this.$titles.appendChild(e),this.boxes.forEach((t=>{const i=document.createElement("button");i.className=this.wrapClassName("titles-tab"),i.textContent=t.title,i.dataset.teleBoxID=t.id,i.dataset.teleTitleBarNoDblClick="true",this.focusedBox&&t.id===this.focusedBox.id&&i.classList.add(this.wrapClassName("titles-tab-focus")),e.appendChild(i)})),this.$titles}}class yg{constructor({root:e=document.body,prefersColorScheme:t=Qm.Light,minimized:i=!1,maximized:n=!1,fence:r=!0,containerRect:s={x:0,y:0,width:window.innerWidth,height:window.innerHeight},collector:a,namespace:o="telebox",readonly:l=!1}={}){this.events=new mf,this._sideEffect=new Hm;const{combine:c,createVal:u}=rg(this._sideEffect);this.root=e,this.namespace=o,this.boxes$=u([]),this.topBox$=this.boxes$.derive((e=>{if(e.length>0)return e.reduce(((e,t)=>e.zIndex>t.zIndex?e:t))}));const d=window.matchMedia("(prefers-color-scheme: dark)"),h=u(!1);d&&(h.setValue(d.matches),this._sideEffect.add((()=>{const e=e=>{h.setValue(e.matches)};return d.addListener(e),()=>d.removeListener(e)})));const p=u(t);p.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setPrefersColorScheme(e,i))),i||this.events.emit(gg.PrefersColorScheme,e)})),this._darkMode$=c([h,p],(([e,t])=>"auto"===t?e:"dark"===t)),this._darkMode$.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setDarkMode(e,i))),i||this.events.emit(gg.DarkMode,e)}));const f=u(l);f.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setReadonly(e,i)))}));const m=u(i),g=u(n);g.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setMaximized(e,i))),i||this.events.emit(gg.Maximized,e)}));const v=c([m,g],(([e,t])=>e?Fm.Minimized:t?Fm.Maximized:Fm.Normal));v.reaction(((e,t,i)=>{this.maxTitleBar.setState(e),i||this.events.emit(gg.State,e)}));const w=u(r);w.subscribe(((e,t,i)=>{this.boxes.forEach((t=>t.setFence(e,i)))}));const b=u(s,Vm);b.reaction(((e,t,i)=>{this.boxes.forEach((t=>t.setContainerRect(e,i))),this.maxTitleBar.setContainerRect(e)}));const y=u(null===a?null:a||new wg({visible:i,readonly:l,namespace:o}).mount(e));y.subscribe((e=>{e&&(e.setVisible(m.value),e.setReadonly(f.value),e.setDarkMode(this._darkMode$.value),this._sideEffect.add((()=>(e.onClick=()=>{f.value||m.setValue(!1)},()=>e.destroy())),"collect-onClick"))})),f.subscribe((e=>{var t;return null==(t=y.value)?void 0:t.setReadonly(e)})),this._darkMode$.subscribe((e=>{var t;null==(t=y.value)||t.setDarkMode(e)}));const x=()=>{var e;if(null==(e=y.value)?void 0:e.$collector){const{x:e,y:t,width:i,height:n}=y.value.$collector.getBoundingClientRect(),r=this.root.getBoundingClientRect();return{x:e-r.x,y:t-r.y,width:i,height:n}}},M=u(m.value?x():void 0);M.subscribe(((e,t,i)=>{this.boxes.forEach((t=>{t.setCollectorRect(e,i)}))})),m.subscribe(((e,t,i)=>{var n,r;null==(n=y.value)||n.setVisible(e),e&&(null==(r=y.value)?void 0:r.$collector)&&M.setValue(x()),this.boxes.forEach((t=>t.setMinimized(e,i))),i||this.events.emit(gg.Minimized,e)}));const C=this.wrapClassName("titlebar-icon-close"),I=e=>{var t;if(f.value)return;const i=e.target;if(i.tagName)for(let n=i;n;n=n.parentElement){if(n.classList&&n.classList.contains(C))return;const e=null==(t=n.dataset)?void 0:t.teleBoxID;if(e){const t=this.getBox(e);if(t)return this.focusBox(t),void this.makeBoxTop(t)}}};this._sideEffect.addEventListener(window,"mousedown",I,!0),this._sideEffect.addEventListener(window,"touchstart",I,!0),this.maxTitleBar=new bg({darkMode:this.darkMode,readonly:f.value,namespace:this.namespace,state:v.value,boxes:this.boxes$.value,containerRect:b.value,onEvent:e=>{switch(e.type){case Xm.Maximize:g.setValue(!g.value);break;case Xm.Minimize:m.setValue(!0);break;case Ym.Close:this.removeTopBox(),this.focusTopBox()}}}),f.subscribe((e=>this.maxTitleBar.setReadonly(e))),this._darkMode$.subscribe((e=>{this.maxTitleBar.setDarkMode(e)})),this.boxes$.reaction((e=>{this.maxTitleBar.setBoxes(e)})),ng(this,{prefersColorScheme:p,containerRect:b,collector:y,collectorRect:M,readonly:f,fence:w,minimized:m,maximized:g}),this._state$=v,this.root.appendChild(this.maxTitleBar.render())}get boxes(){return this.boxes$.value}get topBox(){return this.topBox$.value}get darkMode(){return this._darkMode$.value}get state(){return this._state$.value}setState(e,t=!1){switch(e){case Fm.Maximized:this.setMinimized(!1,t),this.setMaximized(!0,t);break;case Fm.Minimized:this.setMinimized(!0,t),this.setMaximized(!1,t);break;default:this.setMinimized(!1,t),this.setMaximized(!1,t)}return this}create(e={},t=!0){const i=new fg(pf(hf({zIndex:this.topBox?this.topBox.zIndex+1:100},t?this.smartPosition(e):e),{darkMode:this.darkMode,prefersColorScheme:this.prefersColorScheme,maximized:this.maximized,minimized:this.minimized,fence:this.fence,namespace:this.namespace,containerRect:this.containerRect,readonly:this.readonly,collectorRect:this.collectorRect}));return i.mount(this.root),i.focus&&(this.focusBox(i),t&&this.makeBoxTop(i)),this.boxes$.setValue([...this.boxes,i]),i._delegateEvents.on(Xm.Maximize,(()=>{this.setMaximized(!this.maximized)})),i._delegateEvents.on(Xm.Minimize,(()=>{this.setMinimized(!0)})),i._delegateEvents.on(Xm.Close,(()=>{this.remove(i),this.focusTopBox()})),i._coord$.reaction(((e,t,n)=>{n||this.events.emit(gg.Move,i)})),i._size$.reaction(((e,t,n)=>{n||this.events.emit(gg.Resize,i)})),i._intrinsicCoord$.reaction(((e,t,n)=>{n||this.events.emit(gg.IntrinsicMove,i)})),i._intrinsicSize$.reaction(((e,t,n)=>{n||this.events.emit(gg.IntrinsicResize,i)})),i._visualSize$.reaction(((e,t,n)=>{n||this.events.emit(gg.VisualResize,i)})),i._zIndex$.reaction(((e,t,n)=>{this.topBox&&i.zIndex>this.topBox.zIndex&&this.topBox$.setValue(i),n||this.events.emit(gg.ZIndex,i)})),this.events.emit(gg.Created,i),i}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,t,i=!1){const n=this.boxes.find((t=>t.id===e));if(n)return this.updateBox(n,t,i)}updateAll(e,t=!1){this.boxes.forEach((i=>{this.updateBox(i,e,t)}))}remove(e,t=!1){const i=this.getBoxIndex(e);if(i>=0){const e=this.boxes.slice(),n=e.splice(i,1);return this.boxes$.setValue(e),n.forEach((e=>e.destroy())),t||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(gg.Removed,n)),n[0]}}removeTopBox(){if(this.topBox)return this.remove(this.topBox)}removeAll(e=!1){const t=this.boxes$.value;return this.boxes$.setValue([]),t.forEach((e=>e.destroy())),e||(this.boxes.length<=0&&(this.setMaximized(!1),this.setMinimized(!1)),this.events.emit(gg.Removed,t)),t}destroy(e=!1){this.events.removeAllListeners(),this._sideEffect.flushAll(),this.removeAll(e),Object.keys(this).forEach((e=>{const t=this[e];t instanceof ig&&t.destroy()}))}wrapClassName(e){return`${this.namespace}-${e}`}focusBox(e,t=!1){const i=this.getBox(e);i&&(this.boxes.forEach((e=>{if(i===e){let e=!1;i.focus||(e=!0,i.setFocus(!0,t)),e&&!t&&this.events.emit(gg.Focused,i)}else e.focus&&this.blurBox(e,t)})),this.maxTitleBar.focusBox(i))}focusTopBox(){if(this.topBox&&!this.topBox.focus)return this.focusBox(this.topBox)}blurBox(e,t=!1){const i=this.getBox(e);i&&(i.focus&&(i.setFocus(!1,t),t||this.events.emit(gg.Blurred,i)),this.maxTitleBar.focusedBox===i&&this.maxTitleBar.focusBox())}blurAll(e=!1){this.boxes.forEach((t=>{t.focus&&(t.setFocus(!1,e),e||this.events.emit(gg.Blurred,t))})),this.maxTitleBar.focusedBox&&this.maxTitleBar.focusBox()}teleBoxMatcher(e){const t=Object.keys(e);return i=>t.every((t=>e[t]===i[t]))}updateBox(e,t,i=!1){null==t.x&&null==t.y||e.move(null==t.x?e.intrinsicX:t.x,null==t.y?e.intrinsicY:t.y,i),null==t.width&&null==t.height||e.resize(null==t.width?e.intrinsicWidth:t.width,null==t.height?e.intrinsicHeight:t.height,i),null!=t.title&&(e.setTitle(t.title),this.maxTitleBar.updateTitles()),null!=t.visible&&e.setVisible(t.visible,i),null!=t.minHeight&&e.setMinHeight(t.minHeight,i),null!=t.minWidth&&e.setMinWidth(t.minWidth,i),null!=t.resizable&&e.setResizable(t.resizable,i),null!=t.draggable&&e.setDraggable(t.draggable,i),null!=t.fixRatio&&e.setFixRatio(t.fixRatio,i),null!=t.zIndex&&e.setZIndex(t.zIndex,i),null!=t.content&&e.mountContent(t.content),null!=t.footer&&e.mountFooter(t.footer)}smartPosition(e={}){let{x:t,y:i}=e;const{width:n=.5,height:r=.5}=e;if(null==t){let e=20;this.topBox&&(e=this.topBox.intrinsicX*this.containerRect.width+20,e>this.containerRect.width-n*this.containerRect.width&&(e=20)),t=e/this.containerRect.width}if(null==i){let e=20;this.topBox&&(e=this.topBox.intrinsicY*this.containerRect.height+20,e>this.containerRect.height-r*this.containerRect.height&&(e=20)),i=e/this.containerRect.height}return pf(hf({},e),{x:t,y:i,width:n,height:r})}makeBoxTop(e,t=!1){this.topBox&&e!==this.topBox&&(e.setZIndex(this.topBox.zIndex+1,t),this.topBox$.setValue(e))}getBoxIndex(e){return"string"==typeof e?this.boxes.findIndex((t=>t.id===e)):this.boxes.findIndex((t=>t===e))}getBox(e){return"string"==typeof e?this.boxes.find((t=>t.id===e)):e}}class xg{constructor(e,t){this.manager=e,this.appBoxMap=new Map,this.mainView=this.manager.mainView,this.teleBoxManager=this.setupBoxManager(t),this.teleBoxManager._state$.reaction((e=>{xv.emit("boxStateChange",e),yv.emit("boxStateChange",e)})),this.teleBoxManager._darkMode$.reaction((e=>{xv.emit("darkModeChange",e)})),this.teleBoxManager._prefersColorScheme$.reaction((e=>{xv.emit("prefersColorSchemeChange",e)})),this.teleBoxManager.events.on("minimized",(e=>{this.manager.safeSetAttributes({minimized:e}),e?(this.manager.store.cleanFocus(),this.blurAllBox()):this.teleBoxManager.topBox&&(this.manager.store.setAppFocus(this.teleBoxManager.topBox.id,!0),this.teleBoxManager.focusBox(this.teleBoxManager.topBox.id))})),this.teleBoxManager.events.on("maximized",(e=>{this.manager.safeSetAttributes({maximized:e})})),this.teleBoxManager.events.on("removed",(e=>{e.forEach((e=>{yv.emit("close",{appId:e.id})}))})),this.teleBoxManager.events.on("intrinsic_move",h((e=>{yv.emit("move",{appId:e.id,x:e.intrinsicX,y:e.intrinsicY})}),50)),this.teleBoxManager.events.on("intrinsic_resize",h((e=>{yv.emit("resize",{appId:e.id,width:e.intrinsicWidth,height:e.intrinsicHeight})}),200)),this.teleBoxManager.events.on("focused",(e=>{e&&(this.manager.canOperate?yv.emit("focus",{appId:e.id}):this.teleBoxManager.blurBox(e.id))})),this.teleBoxManager.events.on("z_index",(e=>{this.manager.store.updateAppState(e.id,Mp.ZIndex,e.zIndex)}))}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}createBox(e){var t,i,n;if(!this.teleBoxManager)return;let{minwidth:r=kp,minheight:s=Np}=null!=(t=e.app.config)?t:{};const{width:a,height:o}=null!=(i=e.app.config)?i:{},l=(null==(n=e.options)?void 0:n.title)||e.appId,c=this.teleBoxManager.containerRect;r>1&&(r/=c.width),s>1&&(s/=c.height);const u={title:l,minWidth:r,minHeight:s,width:a,height:o,id:e.appId};this.teleBoxManager.create(u,e.smartPosition),yv.emit(`${e.appId}${yp.WindowCreated}`)}setBoxInitState(e){const t=this.teleBoxManager.queryOne({id:e});t&&t.state===Fm.Maximized&&yv.emit("resize",{appId:e,x:t.x,y:t.y,width:t.intrinsicWidth,height:t.intrinsicHeight})}setupBoxManager(e){const t=Cv.wrapper?Cv.wrapper:document.body,i=t.getBoundingClientRect(),n={root:t,containerRect:{x:0,y:0,width:i.width,height:i.height},fence:!1,prefersColorScheme:null==e?void 0:e.prefersColorScheme},r=(null==e?void 0:e.collectorContainer)||Cv.wrapper,s=new wg({styles:null==e?void 0:e.collectorStyles}).mount(r);n.collector=s;const a=new yg(n);return this.teleBoxManager&&this.teleBoxManager.destroy(),this.teleBoxManager=a,a}getBox(e){return this.teleBoxManager.queryOne({id:e})}closeBox(e,t=!1){return this.teleBoxManager.remove(e,t)}boxIsFocus(e){const t=this.getBox(e);return null==t?void 0:t.focus}getFocusBox(){return this.teleBoxManager.query({focus:!0})[0]}getTopBox(){return this.teleBoxManager.topBox}updateBoxState(e){if(!e)return;const t=this.getBox(e.id);t&&(this.teleBoxManager.update(t.id,{x:e.x,y:e.y,width:e.width||.5,height:e.height||.5,zIndex:e.zIndex},!0),setTimeout((()=>{e.focus&&this.teleBoxManager.focusBox(t.id,!0),null!=e.maximized&&this.teleBoxManager.setMaximized(Boolean(e.maximized),!0),null!=e.minimized&&this.teleBoxManager.setMinimized(Boolean(e.minimized),!0)}),50),xv.emit("boxStateChange",this.teleBoxManager.state))}updateManagerRect(){var e;const t=null==(e=this.mainView.divElement)?void 0:e.getBoundingClientRect();if(t&&t.width>0&&t.height>0){const e={x:0,y:0,width:t.width,height:t.height};this.teleBoxManager.setContainerRect(e),this.manager.notifyContainerRectUpdate(this.teleBoxManager.containerRect)}}moveBox({appId:e,x:t,y:i}){this.teleBoxManager.update(e,{x:t,y:i},!0)}focusBox({appId:e},t=!0){this.teleBoxManager.focusBox(e,t)}resizeBox({appId:e,width:t,height:i,skipUpdate:n}){this.teleBoxManager.update(e,{width:t,height:i},n)}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,t=!0){this.teleBoxManager.setMaximized(e,t)}setMinimized(e,t=!0){this.teleBoxManager.setMinimized(e,t)}focusTopBox(){if(this.teleBoxManager.query().length>=1){const e=this.getTopBox();e&&this.focusBox({appId:e.id},!1)}}setReadonly(e){this.teleBoxManager.setReadonly(e)}setPrefersColorScheme(e){this.teleBoxManager.setPrefersColorScheme(e)}setZIndex(e,t,i=!0){this.teleBoxManager.update(e,{zIndex:t},i)}destroy(){this.teleBoxManager.destroy()}}class Mg{constructor(){this.cameras=new Map,this.listeners=new Map,this.onListener=(e,t)=>{t.callbacks.on("onCameraUpdated",this.getOrCreateListener(e))},this.offListener=(e,t)=>{t.callbacks.off("onCameraUpdated",this.getOrCreateListener(e))}}setCamera(e,t){this.cameras.set(e,t)}getCamera(e){return this.cameras.get(e)}deleteCamera(e){this.cameras.delete(e)}recoverCamera(e,t){const i=this.cameras.get(e);i&&t&&t.moveCamera(l(o({},i),{animationMode:P.Immediately}))}register(e,t){this.onListener(e,t),this.setCamera(e,t.camera)}unregister(e,t){t&&this.offListener(e,t),this.listeners.delete(e),this.deleteCamera(e)}async switchView(e,t,i){t&&(this.offListener(e,t),await i(),this.recoverCamera(e,t),this.onListener(e,t))}getOrCreateListener(e){let t=this.listeners.get(e);return t||(t=t=>{this.setCamera(e,t)},this.listeners.set(e,t),t)}}class Cg{constructor(e){this.manager=e,this.views=new Map,this.mainViewProxy=this.manager.mainViewProxy,this.displayer=this.manager.displayer,this.store=this.manager.store,setTimeout((()=>{var e;null==(e=this.manager.refresher)||e.add("focus",(()=>I((()=>this.store.focus),(e=>{e?this.switchAppToWriter(e):(this.switchMainViewToWriter(),this.manager.boxManager.blurAllBox())}),{fireImmediately:!0})))}),100)}get currentScenePath(){return this.displayer.state.sceneState.scenePath}get mainView(){return this.mainViewProxy.view}createView(e){const t=Ig(this.displayer);return Up(t,N.Freedom),this.views.set(e,t),t}destroyView(e){const t=this.views.get(e);t&&(this.releaseView(t),this.views.delete(e))}releaseView(e){e.didRelease||e.release()}getView(e){return this.views.get(e)}switchMainViewToWriter(){if(this.timer&&clearTimeout(this.timer),this.mainView.mode!==N.Writable)return this.freedomAllViews(),new Promise(((e,t)=>{this.timer=window.setTimeout((()=>{try{const t=this.store.getMainViewScenePath();t&&(this.freedomAllViews(),_p(this.manager.room,t),this.mainViewProxy.switchViewModeToWriter()),e(!0)}catch(i){t(i)}}),100)}))}freedomAllViews(){this.manager.appProxies.forEach((e=>{e.setViewFocusScenePath(),e.view&&Up(e.view,N.Freedom)})),this.mainView.mode===N.Writable&&(Wp(xv,N.Freedom),Up(this.mainView,N.Freedom)),this.mainView.focusScenePath||this.store.setMainViewFocusPath()}switchAppToWriter(e){this.appTimer&&clearTimeout(this.appTimer),this.freedomAllViews(),this.appTimer=setTimeout((()=>{const t=this.manager.appProxies.get(e);if(t){if(this.manager.boxManager.minimized)return;t.setScenePath(),t.switchToWritable(),t.focusBox()}}),100)}destroy(){var e;this.mainViewProxy.removeMainViewListener(),Cv.wrapper&&(null==(e=Cv.wrapper.parentNode)||e.removeChild(Cv.wrapper),Cv.wrapper=void 0),this.releaseView(this.mainView)}}const Ig=e=>{const t=e.views.createView();return Sg(t),t},Sg=e=>{e.setCameraBound({maxContentMode:()=>10,minContentMode:()=>.1})};class Eg{constructor(e){this.manager=e,this.cameraStore=this.manager.cameraStore,this.store=this.manager.store,this.started=!1,this.mainViewIsAddListener=!1,this.viewId="mainView",this.cameraReaction=()=>I((()=>this.mainViewCamera),(e=>{e&&e.id!==this.manager.uid&&(this.moveCameraToContian(this.mainViewSize),this.moveCamera(e))}),{fireImmediately:!0}),this.sizeChangeHandler=h((e=>{e&&(this.moveCameraToContian(e),this.moveCamera(this.mainViewCamera))}),30),this.onCameraUpdatedByDevice=e=>{this.store.setMainViewCamera(l(o({},e),{id:this.manager.uid})),m(this.mainViewSize,l(o({},this.mainView.size),{id:this.manager.uid}))||this.setMainViewSize(this.view.size)},this.mainViewClickListener=()=>{this.mainViewClickHandler()},this.setMainViewSize=h((e=>{this.store.setMainViewSize(l(o({},e),{id:this.manager.uid}))}),50),this.onCameraOrSizeUpdated=()=>{xv.emit("cameraStateChange",this.cameraState)},this.mainView=this.createMainView(),this.moveCameraSizeByAttributes(),this.cameraStore.register(this.viewId,this.mainView),yv.once("mainViewMounted").then((()=>{setTimeout((()=>{this.start(),this.mainViewCamera&&this.mainViewSize||this.setCameraAndSize()}),200)})),yv.on("playgroundSizeChange",(()=>{this.sizeChangeHandler(this.mainViewSize)}))}get mainViewCamera(){return this.store.getMainViewCamera()}get mainViewSize(){return this.store.getMainViewSize()}moveCameraSizeByAttributes(){this.moveCameraToContian(this.mainViewSize),this.moveCamera(this.mainViewCamera)}start(){var e;this.started||(this.sizeChangeHandler(this.mainViewSize),this.addCameraListener(),null==(e=this.manager.refresher)||e.add(qp.MainViewCamera,this.cameraReaction),this.started=!0)}setCameraAndSize(){this.store.setMainViewCamera(l(o({},this.mainView.camera),{id:this.manager.uid})),this.store.setMainViewSize(l(o({},this.mainView.size),{id:this.manager.uid}))}get view(){return this.mainView}get cameraState(){return o(o({},this.view.camera),this.view.size)}createMainView(){const e=Ig(this.manager.displayer),t=this.store.getMainViewScenePath();return t&&Rp(e,t),this.store.focus||this.switchViewModeToWriter(),e}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))}async mainViewClickHandler(){this.manager.canOperate&&this.view.mode!==N.Writable&&(this.store.cleanFocus(),this.manager.boxManager.blurAllBox())}addCameraListener(){this.view.callbacks.on("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice),this.view.callbacks.on("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.on("onSizeUpdated",this.onCameraOrSizeUpdated)}removeCameraListener(){this.view.callbacks.off("onCameraUpdatedByDevice",this.onCameraUpdatedByDevice),this.view.callbacks.off("onCameraUpdated",this.onCameraOrSizeUpdated),this.view.callbacks.off("onSizeUpdated",this.onCameraOrSizeUpdated)}switchViewModeToWriter(){if(this.manager.canOperate&&this.view){if(this.view.mode===N.Writable)return;this.cameraStore.switchView(this.viewId,this.mainView,(()=>{Wp(xv,N.Writable),Up(this.view,N.Writable)}))}}moveCameraToContian(e){g(e)||(this.view.moveCameraToContain({width:e.width,height:e.height,originX:-e.width/2,originY:-e.height/2,animationMode:P.Immediately}),this.scale=this.view.camera.scale)}moveCamera(e){if(!g(e)){if(m(e,this.view.camera))return;const{centerX:t,centerY:i,scale:n}=e,r=n*(this.scale||1);this.view.moveCamera({centerX:t,centerY:i,scale:r,animationMode:P.Immediately})}}stop(){var e,t;this.removeCameraListener(),null==(e=this.manager.refresher)||e.remove(qp.MainViewCamera),null==(t=this.manager.refresher)||t.remove(qp.MainViewSize),this.started=!1}destroy(){this.stop(),this.cameraStore.unregister(this.viewId,this.mainView)}}const Tg=e=>(t,i)=>{if(void 0!==t){if(E){const n=t=>{t.map((e=>e.kind)).includes(e)&&i()};return E(t,n),i(),()=>T(t,n)}return I((()=>t),(()=>{i()}),{fireImmediately:!0})}},Ag=Tg(z.Removed);Tg(z.Inserted);class kg{constructor(e,t){this.manager=t,this.reactors=new Map,this.disposers=new Map,this.onPhaseChanged=e=>{e===D.Connected&&this.phase===D.Reconnecting&&this.onReconnected(),this.phase=e},this.onReconnected=()=>{nf("onReconnected refresh reactors"),this.releaseDisposers(),this.reactors.forEach(((e,t)=>{v(e)&&this.disposers.set(t,e())})),this.manager.notifyReconnected()},this.room=e,this.phase=null==e?void 0:e.phase,null==e||e.callbacks.on("onPhaseChanged",this.onPhaseChanged)}releaseDisposers(){this.disposers.forEach((e=>{v(e)&&e()})),this.disposers.clear()}add(e,t){v(t)&&(this.reactors.set(e,t),this.disposers.set(e,t()))}remove(e){this.reactors.has(e)&&this.reactors.delete(e);const t=this.disposers.get(e);t&&(v(t)&&t(),this.disposers.delete(e))}destroy(){var e;null==(e=this.room)||e.callbacks.off("onPhaseChanged",this.onPhaseChanged),this.releaseDisposers()}}class Ng{constructor(e,t){this.windowManger=e,this.appProxies=new Map,this.appStatus=new Map,this.store=new tf(this),this.isReplay=this.windowManger.isReplay,this.onAppDelete=e=>{const t=Object.keys(e);this.appProxies.forEach(((e,i)=>{t.includes(i)||e.destroy(!0,!1,!0)}))},this.displayerStateListener=e=>{const t=e.sceneState;if(t){const e=t.scenePath;this.appProxies.forEach((i=>{i.scenePath&&e.startsWith(i.scenePath)&&(i.emitAppSceneStateChange(t),i.setFullPath(e))}))}this.appProxies.forEach((t=>{t.appEmitter.emit("roomStateChange",e)})),yv.emit("observerIdChange",this.displayer.observerId)},this.displayerWritableListener=e=>{const t=!e,i=void 0===this.windowManger.readonly||!1===this.windowManger.readonly;void 0===this.windowManger.readonly?this.boxManager.setReadonly(e):this.boxManager.setReadonly(!(t&&i)),this.appProxies.forEach((e=>{e.emitAppIsWritableChange()})),!0===t?(this.store.focus||this.mainViewProxy.switchViewModeToWriter(),this.mainView.disableCameraTransform=!1):this.mainView.disableCameraTransform=!0},this.findMemberByUid=e=>{var t;const i=null==(t=this.room)?void 0:t.state.roomMembers;return null==i?void 0:i.find((t=>{var i;return(null==(i=t.payload)?void 0:i.uid)===e}))},this.boxEventListener=(e,t)=>{switch(e){case"move":this.dispatchInternalEvent(yp.AppMove,t),this.store.updateAppState(t.appId,Mp.Position,{x:t.x,y:t.y});break;case"focus":this.windowManger.safeSetAttributes({focus:t.appId});break;case"resize":t.width&&t.height&&(this.dispatchInternalEvent(yp.AppResize,t),this.store.updateAppState(t.appId,Mp.Size,{width:t.width,height:t.height}));break;case"close":{const e=this.appProxies.get(t.appId);e&&e.destroy(!1,!0,t.error);break}case"boxStateChange":this.dispatchInternalEvent(yp.AppBoxStateChange,t)}},this.displayer=e.displayer,this.cameraStore=new Mg,this.mainViewProxy=new Eg(this),this.viewManager=new Cg(this),this.boxManager=new xg(this,t),this.appListeners=new $p(this),this.displayer.callbacks.on(this.eventName,this.displayerStateListener),this.appListeners.addListeners(),this.refresher=new kg(this.room,this),yv.once("onCreated").then((()=>this.onCreated())),L(this.displayer)&&yv.on("seek",(e=>{this.appProxies.forEach((t=>{t.onSeek(e)})),this.attributesUpdateCallback(this.attributes.apps),this.onAppDelete(this.attributes.apps)})),yv.on("setReadonly",(()=>{this.appProxies.forEach((e=>{e.emitAppIsWritableChange()}))}))}async onCreated(){var e,t,i,n,r;if(await this.attributesUpdateCallback(this.attributes.apps),this.boxManager.updateManagerRect(),yv.onAny(this.boxEventListener),null==(e=this.refresher)||e.add("apps",(()=>((e,t)=>{let i=null;const n=I(e,(()=>{i&&(i(),i=null);const n=e();i=()=>T(n,t),E(n,t)}),{fireImmediately:!0});return()=>{null==i||i(),n()}})((()=>this.attributes.apps),(()=>{this.attributesUpdateCallback(this.attributes.apps)})))),null==(t=this.refresher)||t.add("appsClose",(()=>Ag(this.attributes.apps,(()=>{this.onAppDelete(this.attributes.apps)})))),null==(i=this.refresher)||i.add("maximized",(()=>C((()=>{const e=this.attributes.maximized;this.boxManager.maximized!==e&&this.boxManager.setMaximized(Boolean(e))})))),null==(n=this.refresher)||n.add("minimized",(()=>C((()=>{const e=this.attributes.minimized;this.boxManager.minimized!==e&&(!0===e&&this.boxManager.blurAllBox(),setTimeout((()=>{this.boxManager.setMinimized(Boolean(e))}),0))})))),!this.attributes.apps||0===Object.keys(this.attributes.apps).length){const e=this.store.getMainViewScenePath();if(!e)return;this.displayer.state.sceneState.scenePath!==e&&_p(this.room,e)}this.displayerWritableListener(!(null==(r=this.room)?void 0:r.isWritable)),this.displayer.callbacks.on("onEnableWriteNowChanged",this.displayerWritableListener)}async attributesUpdateCallback(e){if(e)for(const t in e)if(!this.appProxies.has(t)&&!this.appStatus.has(t)){const i=e[t];d((async()=>{this.appStatus.set(t,Ep.StartCreate);if(!this.attributes[t])throw new Error("appAttributes is undefined");await this.baseInsertApp({kind:i.kind,options:i.options,isDynamicPPT:i.isDynamicPPT},t,!1),this.focusByAttributes(e)}),{retries:3}).catch((e=>{console.warn("[WindowManager]: Insert App Error",e),this.appStatus.delete(t)}))}}bindMainView(e,t){const i=this.mainViewProxy.view;i.disableCameraTransform=t,i.divElement=e,i.focusScenePath||this.store.setMainViewFocusPath(),void 0===this.store.focus&&i.mode!==N.Writable&&this.viewManager.switchMainViewToWriter(),this.mainViewProxy.addMainViewListener(),yv.emit("mainViewMounted")}async addApp(e,t){nf("addApp",e);const{appId:i,needFocus:n}=await this.beforeAddApp(e,t),r=await this.baseInsertApp(e,i,!0,n);return this.afterAddApp(r),null==r?void 0:r.id}async beforeAddApp(e,t){var i;const n=await(async e=>{var t,i;const n=await(null==(t=Vp.appClasses.get(e))?void 0:t());return n&&(null==(i=n.config)?void 0:i.singleton)?e:`${e}-${W().replace("-","").slice(0,8)}`})(e.kind);this.appStatus.set(n,Ep.StartCreate);const r=null!=(i=e.attributes)?i:{};this.safeUpdateAttributes([n],r),this.store.setupAppAttributes(e,n,t);const s=!this.boxManager.minimized;return s&&this.store.setAppFocus(n,!0),{appId:n,needFocus:s}}afterAddApp(e){if(e&&e.box){const t=e.box;yv.emit("move",{appId:e.id,x:null==t?void 0:t.intrinsicX,y:null==t?void 0:t.intrinsicY}),this.store.updateAppState(e.id,Mp.ZIndex,t.zIndex)}this.boxManager.minimized&&this.boxManager.setMinimized(!1,!1)}async closeApp(e){const t=this.appProxies.get(e);t&&t.destroy(!0,!0,!1)}async baseInsertApp(e,t,i,n){if(this.appProxies.has(t))return void console.warn("[WindowManager]: app duplicate exists and cannot be created again");const r=new rf(e,this,t,i);if(r)return await r.baseInsertApp(n),this.appStatus.delete(t),r;throw this.appStatus.delete(t),new Error("[WindowManger]: initialize AppProxy failed")}get eventName(){return B(this.displayer)?"onRoomStateChanged":"onPlayerStateChanged"}get attributes(){return this.windowManger.attributes}get canOperate(){return this.windowManger.canOperate}get room(){return B(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(null==(e=this.room)?void 0:e.uid)||""}safeSetAttributes(e){this.windowManger.safeSetAttributes(e)}safeUpdateAttributes(e,t){this.windowManger.safeUpdateAttributes(e,t)}async setMainViewScenePath(e){if(this.room){const t=this.displayer.scenePathType(e);if(t===j.None)throw new Error(`[WindowManager]: ${e} not valid scene`);if(t===j.Page)await this._setMainViewScenePath(e);else if(t===j.Dir){const t=((e,t)=>{const i=e.entireScenes()[t][0].name;return"/"===t?`/${i}`:`${t}/${i}`})(this.displayer,e);await this._setMainViewScenePath(t)}}}async _setMainViewScenePath(e){this.safeSetAttributes({_mainScenePath:e}),await this.viewManager.switchMainViewToWriter(),_p(this.room,e),this.store.setMainViewFocusPath(),this.dispatchInternalEvent(yp.SetMainViewScenePath,{nextScenePath:e})}async setMainViewSceneIndex(e){if(this.room){this.safeSetAttributes({_mainSceneIndex:e}),await this.viewManager.switchMainViewToWriter(),this.room.setSceneIndex(e);const t=this.room.state.sceneState.scenePath;this.store.setMainViewScenePath(t),this.store.setMainViewFocusPath(),this.dispatchInternalEvent(yp.SetMainViewScenePath,{nextScenePath:t})}}getAppInitPath(e){var t;const i=this.store.getAppAttributes(e);if(i)return null==(t=null==i?void 0:i.options)?void 0:t.scenePath}safeDispatchMagixEvent(e,t){this.canOperate&&this.displayer.dispatchMagixEvent(e,t)}focusByAttributes(e){if(e&&Object.keys(e).length===this.boxManager.appBoxMap.size){const e=this.store.focus;e&&this.boxManager.focusBox({appId:e})}}async notifyReconnected(){const e=Array.from(this.appProxies.values()).map((e=>e.onReconnected()));await Promise.all(e),yv.emit("onReconnected")}notifyContainerRectUpdate(e){this.appProxies.forEach((t=>{t.appEmitter.emit("containerRectUpdate",e)}))}dispatchInternalEvent(e,t){this.safeDispatchMagixEvent("__WindowManger",{eventName:e,payload:t})}destroy(){var e;this.displayer.callbacks.off(this.eventName,this.displayerStateListener),this.displayer.callbacks.off("onEnableWriteNowChanged",this.displayerWritableListener),this.appListeners.removeListeners(),yv.offAny(this.boxEventListener),yv.clearListeners(),this.appProxies.size&&this.appProxies.forEach((e=>{e.destroy(!0,!1,!0)})),this.viewManager.destroy(),this.boxManager.destroy(),null==(e=this.refresher)||e.destroy(),this.mainViewProxy.destroy(),xv.clearListeners()}}function Pg(){}function zg(e){return e()}function Dg(){return Object.create(null)}function Lg(e){e.forEach(zg)}function Bg(e){return"function"==typeof e}function jg(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let Og,Vg;function Rg(e,t){return Og||(Og=document.createElement("a")),Og.href=t,e===Og.href}function _g(e,t){e.appendChild(t)}function Ug(e,t,i){e.insertBefore(t,i||null)}function Wg(e){e.parentNode.removeChild(e)}function Hg(e){return document.createElement(e)}function Qg(e){return document.createTextNode(e)}function $g(){return Qg(" ")}function Fg(e,t,i){null==i?e.removeAttribute(t):e.getAttribute(t)!==i&&e.setAttribute(t,i)}function Zg(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function Yg(e,t,i,n){e.style.setProperty(t,i,n?"important":"")}function Gg(e){Vg=e}const Xg=[],Jg=[],Kg=[],qg=[],ev=Promise.resolve();let tv=!1;function iv(e){Kg.push(e)}let nv=!1;const rv=new Set;function sv(){if(!nv){nv=!0;do{for(let e=0;e<Xg.length;e+=1){const t=Xg[e];Gg(t),av(t.$$)}for(Gg(null),Xg.length=0;Jg.length;)Jg.pop()();for(let e=0;e<Kg.length;e+=1){const t=Kg[e];rv.has(t)||(rv.add(t),t())}Kg.length=0}while(Xg.length);for(;qg.length;)qg.pop()();tv=!1,nv=!1,rv.clear()}}function av(e){if(null!==e.fragment){e.update(),Lg(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(iv)}}const ov=new Set;function lv(e,t){-1===e.$$.dirty[0]&&(Xg.push(e),tv||(tv=!0,ev.then(sv)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function cv(e,t,i,n,r,s,a,o=[-1]){const l=Vg;Gg(e);const c=e.$$={fragment:null,ctx:null,props:s,update:Pg,not_equal:r,bound:Dg(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l?l.$$.context:t.context||[]),callbacks:Dg(),dirty:o,skip_bound:!1,root:t.target||l.$$.root};a&&a(c.root);let u=!1;if(c.ctx=i?i(e,t.props||{},((t,i,...n)=>{const s=n.length?n[0]:i;return c.ctx&&r(c.ctx[t],c.ctx[t]=s)&&(!c.skip_bound&&c.bound[t]&&c.bound[t](s),u&&lv(e,t)),i})):[],c.update(),u=!0,Lg(c.before_update),c.fragment=!!n&&n(c.ctx),t.target){if(t.hydrate){const e=(p=t.target,Array.from(p.childNodes));c.fragment&&c.fragment.l(e),e.forEach(Wg)}else c.fragment&&c.fragment.c();t.intro&&((d=e.$$.fragment)&&d.i&&(ov.delete(d),d.i(h))),function(e,t,i,n){const{fragment:r,on_mount:s,on_destroy:a,after_update:o}=e.$$;r&&r.m(t,i),n||iv((()=>{const t=s.map(zg).filter(Bg);a?a.push(...t):Lg(t),e.$$.on_mount=[]})),o.forEach(iv)}(e,t.target,t.anchor,t.customElement),sv()}var d,h,p;Gg(l)}function uv(e){let t,i,n;return{c(){t=Hg("img"),Fg(t,"class","netless-window-manager-cursor-selector-avatar"),Fg(t,"style",i=e[15]()),Rg(t.src,n=e[7])||Fg(t,"src",n),Fg(t,"alt","avatar")},m(e,i){Ug(e,t,i)},p(e,i){128&i&&!Rg(t.src,n=e[7])&&Fg(t,"src",n)},d(e){e&&Wg(t)}}}function dv(e){let t,i;return{c(){t=Hg("span"),i=Qg(e[1]),Fg(t,"class","netless-window-manager-cursor-tag-name"),Yg(t,"background-color",e[10])},m(e,n){Ug(e,t,n),_g(t,i)},p(e,n){2&n&&Zg(i,e[1]),1024&n&&Yg(t,"background-color",e[10])},d(e){e&&Wg(t)}}}function hv(e){let t,i,n,r,s,a,o,l,c,u,d,h,p=e[13]&&uv(e),f=e[14]&&dv(e);return{c(){t=Hg("div"),i=Hg("div"),n=Hg("div"),p&&p.c(),r=$g(),s=Hg("span"),a=Qg(e[0]),o=$g(),f&&f.c(),l=$g(),c=Hg("div"),u=Hg("img"),Yg(s,"overflow","hidden"),Yg(s,"white-space","nowrap"),Yg(s,"text-overflow","ellipsis"),Yg(s,"max-width","80px"),Fg(n,"class",e[8]),Yg(n,"background-color",e[2]),Yg(n,"color",e[9]),Yg(n,"opacity",e[11]),Fg(i,"class","netless-window-manager-cursor-name"),Fg(u,"class",d="netless-window-manager-cursor-"+e[3]+"-image"),Rg(u.src,h=e[6])||Fg(u,"src",h),Fg(u,"alt",e[3]),Fg(c,"class","cursor-image-wrapper"),Fg(t,"class","netless-window-manager-cursor-mid"),Yg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),Yg(t,"display",e[12])},m(e,d){Ug(e,t,d),_g(t,i),_g(i,n),p&&p.m(n,null),_g(n,r),_g(n,s),_g(s,a),_g(n,o),f&&f.m(n,null),_g(t,l),_g(t,c),_g(c,u)},p(e,[i]){e[13]?p?p.p(e,i):(p=uv(e),p.c(),p.m(n,r)):p&&(p.d(1),p=null),1&i&&Zg(a,e[0]),e[14]?f?f.p(e,i):(f=dv(e),f.c(),f.m(n,null)):f&&(f.d(1),f=null),256&i&&Fg(n,"class",e[8]),4&i&&Yg(n,"background-color",e[2]),512&i&&Yg(n,"color",e[9]),2048&i&&Yg(n,"opacity",e[11]),8&i&&d!==(d="netless-window-manager-cursor-"+e[3]+"-image")&&Fg(u,"class",d),64&i&&!Rg(u.src,h=e[6])&&Fg(u,"src",h),8&i&&Fg(u,"alt",e[3]),48&i&&Yg(t,"transform","translateX("+e[4]+"px) translateY("+e[5]+"px)"),4096&i&&Yg(t,"display",e[12])},i:Pg,o:Pg,d(e){e&&Wg(t),p&&p.d(),f&&f.d()}}}function pv(e,t,i){let n,r,s,a,{cursorName:o}=t,{tagName:l}=t,{backgroundColor:c}=t,{appliance:u}=t,{x:d}=t,{y:h}=t,{src:p}=t,{visible:f}=t,{avatar:m}=t,{theme:v}=t,{color:w}=t,{cursorTagBackgroundColor:b}=t,{opacity:y}=t;return e.$$set=e=>{"cursorName"in e&&i(0,o=e.cursorName),"tagName"in e&&i(1,l=e.tagName),"backgroundColor"in e&&i(2,c=e.backgroundColor),"appliance"in e&&i(3,u=e.appliance),"x"in e&&i(4,d=e.x),"y"in e&&i(5,h=e.y),"src"in e&&i(6,p=e.src),"visible"in e&&i(16,f=e.visible),"avatar"in e&&i(7,m=e.avatar),"theme"in e&&i(8,v=e.theme),"color"in e&&i(9,w=e.color),"cursorTagBackgroundColor"in e&&i(10,b=e.cursorTagBackgroundColor),"opacity"in e&&i(11,y=e.opacity)},e.$$.update=()=>{1&e.$$.dirty&&(n=!g(o)),2&e.$$.dirty&&i(14,r=!g(l)),128&e.$$.dirty&&i(13,s=!g(m)),65536&e.$$.dirty&&i(12,a=f?"initial":"none")},[o,l,c,u,d,h,p,m,v,w,b,y,a,s,r,()=>Object.entries({width:(n?19:28)+"px",height:(n?19:28)+"px",position:n?"initial":"absolute","border-color":n?"white":c,"margin-right":(n?4:0)+"px"}).map((([e,t])=>`${e}: ${t}`)).join(";"),f]}class fv extends class{$destroy(){!function(e,t){const i=e.$$;null!==i.fragment&&(Lg(i.on_destroy),i.fragment&&i.fragment.d(t),i.on_destroy=i.fragment=null,i.ctx=[])}(this,1),this.$destroy=Pg}$on(e,t){const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(t),()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}{constructor(e){super(),cv(this,e,pv,hv,jg,{cursorName:0,tagName:1,backgroundColor:2,appliance:3,x:4,y:5,src:6,visible:16,avatar:7,theme:8,color:9,cursorTagBackgroundColor:10,opacity:11})}}const mv={[O.pencil]:"data:image/png;base64,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",[O.selector]:"data:image/png;base64,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",[O.eraser]:"data:image/png;base64,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",[O.shape]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5zaGFwZS1jdXJzb3I8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNjQuNiUiIHk9Ii01OS41JSIgd2lkdGg9IjIyOS4zJSIgaGVpZ2h0PSIyNDYuMSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9IjEiIG9wZXJhdG9yPSJkaWxhdGUiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dTcHJlYWRPdXRlcjEiPjwvZmVNb3JwaG9sb2d5PgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIyIiBpbj0ic2hhZG93U3ByZWFkT3V0ZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgICAwIDAgMCAwIDAgICAwIDAgMCAwIDAgIDAgMCAwIDAuMTYgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi00IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iV2hpdGVib2FyZC1HdWlkZWxpbmVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQ0LjAwMDAwMCwgLTc1MS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9InNoYXBlLWN1cnNvciIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQ0LjAwMDAwMCwgNzUxLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00NCIgZmlsbD0iI0ZGRkZGRiIgb3BhY2l0eT0iMC4wMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiIGZpbHRlcj0idXJsKCNmaWx0ZXItMikiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMjAsMjEgQzIwLjQ4NTQxMDMsMjEgMjAuODk4MDg1LDIxLjM0Nzk5OTMgMjAuOTg5OTQ3OSwyMS44NjU0ODc3IEwyMSwyMiBMMjEsMjcgQzIxLDI3LjU1MjI4NDcgMjAuNTUyMjg0NywyOCAyMCwyOCBDMTkuNTE0NTg5NywyOCAxOS4xMDE5MTUsMjcuNjUyMDAwNyAxOS4wMTAwNTIxLDI3LjEzNDUxMjMgTDE5LDI3IEwxOSwyMiBDMTksMjEuNDQ3NzE1MyAxOS40NDc3MTUzLDIxIDIwLDIxIFogTTI3LDE5IEMyNy41NTIyODQ3LDE5IDI4LDE5LjQ0NzcxNTMgMjgsMjAgQzI4LDIwLjQ4NTQxMDMgMjcuNjUyMDAwNywyMC44OTgwODUgMjcuMTM0NTEyMywyMC45ODk5NDc5IEwyNywyMSBMMjIsMjEgQzIxLjQ0NzcxNTMsMjEgMjEsMjAuNTUyMjg0NyAyMSwyMCBDMjEsMTkuNTE0NTg5NyAyMS4zNDc5OTkzLDE5LjEwMTkxNSAyMS44NjU0ODc3LDE5LjAxMDA1MjEgTDIyLDE5IEwyNywxOSBaIE0xOCwxOSBDMTguNTUyMjg0NywxOSAxOSwxOS40NDc3MTUzIDE5LDIwIEMxOSwyMC40ODU0MTAzIDE4LjY1MjAwMDcsMjAuODk4MDg1IDE4LjEzNDUxMjMsMjAuOTg5OTQ3OSBMMTgsMjEgTDEzLDIxIEMxMi40NDc3MTUzLDIxIDEyLDIwLjU1MjI4NDcgMTIsMjAgQzEyLDE5LjUxNDU4OTcgMTIuMzQ3OTk5MywxOS4xMDE5MTUgMTIuODY1NDg3NywxOS4wMTAwNTIxIEwxMywxOSBMMTgsMTkgWiBNMjAsMTIgQzIwLjQ4NTQxMDMsMTIgMjAuODk4MDg1LDEyLjM0Nzk5OTMgMjAuOTg5OTQ3OSwxMi44NjU0ODc3IEwyMSwxMyBMMjEsMTggQzIxLDE4LjU1MjI4NDcgMjAuNTUyMjg0NywxOSAyMCwxOSBDMTkuNTE0NTg5NywxOSAxOS4xMDE5MTUsMTguNjUyMDAwNyAxOS4wMTAwNTIxLDE4LjEzNDUxMjMgTDE5LDE4IEwxOSwxMyBDMTksMTIuNDQ3NzE1MyAxOS40NDc3MTUzLDEyIDIwLDEyIFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgZmlsbD0iI0ZGRkZGRiIgeD0iMTguNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjYiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIGZpbGw9IiNGRkZGRkYiIHg9IjE3IiB5PSIxOC41IiB3aWR0aD0iNiIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAsMjEuNSBDMjAuMjQ1NDU5OSwyMS41IDIwLjQ0OTYwODQsMjEuNjc2ODc1MiAyMC40OTE5NDQzLDIxLjkxMDEyNDQgTDIwLjUsMjIgTDIwLjUsMjcgQzIwLjUsMjcuMjc2MTQyNCAyMC4yNzYxNDI0LDI3LjUgMjAsMjcuNSBDMTkuNzU0NTQwMSwyNy41IDE5LjU1MDM5MTYsMjcuMzIzMTI0OCAxOS41MDgwNTU3LDI3LjA4OTg3NTYgTDE5LjUsMjcgTDE5LjUsMjIgQzE5LjUsMjEuNzIzODU3NiAxOS43MjM4NTc2LDIxLjUgMjAsMjEuNSBaIE0yNywxOS41IEMyNy4yNzYxNDI0LDE5LjUgMjcuNSwxOS43MjM4NTc2IDI3LjUsMjAgQzI3LjUsMjAuMjQ1NDU5OSAyNy4zMjMxMjQ4LDIwLjQ0OTYwODQgMjcuMDg5ODc1NiwyMC40OTE5NDQzIEwyNywyMC41IEwyMiwyMC41IEMyMS43MjM4NTc2LDIwLjUgMjEuNSwyMC4yNzYxNDI0IDIxLjUsMjAgQzIxLjUsMTkuNzU0NTQwMSAyMS42NzY4NzUyLDE5LjU1MDM5MTYgMjEuOTEwMTI0NCwxOS41MDgwNTU3IEwyMiwxOS41IEwyNywxOS41IFogTTE4LDE5LjUgQzE4LjI3NjE0MjQsMTkuNSAxOC41LDE5LjcyMzg1NzYgMTguNSwyMCBDMTguNSwyMC4yNDU0NTk5IDE4LjMyMzEyNDgsMjAuNDQ5NjA4NCAxOC4wODk4NzU2LDIwLjQ5MTk0NDMgTDE4LDIwLjUgTDEzLDIwLjUgQzEyLjcyMzg1NzYsMjAuNSAxMi41LDIwLjI3NjE0MjQgMTIuNSwyMCBDMTIuNSwxOS43NTQ1NDAxIDEyLjY3Njg3NTIsMTkuNTUwMzkxNiAxMi45MTAxMjQ0LDE5LjUwODA1NTcgTDEzLDE5LjUgTDE4LDE5LjUgWiBNMjAsMTIuNSBDMjAuMjQ1NDU5OSwxMi41IDIwLjQ0OTYwODQsMTIuNjc2ODc1MiAyMC40OTE5NDQzLDEyLjkxMDEyNDQgTDIwLjUsMTMgTDIwLjUsMTggQzIwLjUsMTguMjc2MTQyNCAyMC4yNzYxNDI0LDE4LjUgMjAsMTguNSBDMTkuNzU0NTQwMSwxOC41IDE5LjU1MDM5MTYsMTguMzIzMTI0OCAxOS41MDgwNTU3LDE4LjA4OTg3NTYgTDE5LjUsMTggTDE5LjUsMTMgQzE5LjUsMTIuNzIzODU3NiAxOS43MjM4NTc2LDEyLjUgMjAsMTIuNSBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjMjEyMzI0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+",[O.text]:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDcgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYwLjEgKDg4MTMzKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT50ZXh0LWN1cnNvcjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwyNi41IEMxNS43MjM4NTc2LDI2LjUgMTUuNSwyNi4yNzYxNDI0IDE1LjUsMjYgQzE1LjUsMjUuNzU0NTQwMSAxNS42NzY4NzUyLDI1LjU1MDM5MTYgMTUuOTEwMTI0NCwyNS41MDgwNTU3IEwxNiwyNS41IEwxOS41LDI1LjUgTDE5LjUsMTQuNSBMMTYsMTQuNSBDMTUuNzIzODU3NiwxNC41IDE1LjUsMTQuMjc2MTQyNCAxNS41LDE0IEMxNS41LDEzLjc1NDU0MDEgMTUuNjc2ODc1MiwxMy41NTAzOTE2IDE1LjkxMDEyNDQsMTMuNTA4MDU1NyBMMTYsMTMuNSBMMjQsMTMuNSBDMjQuMjc2MTQyNCwxMy41IDI0LjUsMTMuNzIzODU3NiAyNC41LDE0IEMyNC41LDE0LjI0NTQ1OTkgMjQuMzIzMTI0OCwxNC40NDk2MDg0IDI0LjA4OTg3NTYsMTQuNDkxOTQ0MyBMMjQsMTQuNSBMMjAuNSwxNC41IEwyMC41LDI1LjUgTDI0LDI1LjUgQzI0LjI3NjE0MjQsMjUuNSAyNC41LDI1LjcyMzg1NzYgMjQuNSwyNiBDMjQuNSwyNi4yNDU0NTk5IDI0LjMyMzEyNDgsMjYuNDQ5NjA4NCAyNC4wODk4NzU2LDI2LjQ5MTk0NDMgTDI0LDI2LjUgTDE2LDI2LjUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTI4NC4wJSIgeT0iLTgxLjUlIiB3aWR0aD0iNjY4LjElIiBoZWlnaHQ9IjI5My45JSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0iZmlsdGVyLTIiPgogICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz0iMSIgb3BlcmF0b3I9ImRpbGF0ZSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd1NwcmVhZE91dGVyMSI+PC9mZU1vcnBob2xvZ3k+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjIiIGluPSJzaGFkb3dTcHJlYWRPdXRlcjEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93Qmx1ck91dGVyMSIgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9Im91dCIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgIDAgMCAwIDAgMCAgMCAwIDAgMC4xNiAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i6aG16Z2iLTQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJXaGl0ZWJvYXJkLUd1aWRlbGluZXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zODguMDAwMDAwLCAtNjcyLjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0idGV4dC1jdXJzb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM5Mi4wMDAwMDAsIDY3Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70tNDAiIGZpbGw9IiNGRkZGRkYiIG9wYWNpdHk9IjAuMDEiIHg9IjAiIHk9IjAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcng9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxnIGlkPSLlvaLnirbnu5PlkIgiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMSIgZD0iTTE5LDI1IEwxOSwxNSBMMTYsMTUgQzE1LjQ0NzcxNTMsMTUgMTUsMTQuNTUyMjg0NyAxNSwxNCBDMTUsMTMuNTE0NTg5NyAxNS4zNDc5OTkzLDEzLjEwMTkxNSAxNS44NjU0ODc3LDEzLjAxMDA1MjEgTDE2LDEzIEwyNCwxMyBDMjQuNTUyMjg0NywxMyAyNSwxMy40NDc3MTUzIDI1LDE0IEMyNSwxNC40ODU0MTAzIDI0LjY1MjAwMDcsMTQuODk4MDg1IDI0LjEzNDUxMjMsMTQuOTg5OTQ3OSBMMjQsMTUgTDIxLDE1IEwyMSwyNSBMMjQsMjUgQzI0LjU1MjI4NDcsMjUgMjUsMjUuNDQ3NzE1MyAyNSwyNiBDMjUsMjYuNDg1NDEwMyAyNC42NTIwMDA3LDI2Ljg5ODA4NSAyNC4xMzQ1MTIzLDI2Ljk4OTk0NzkgTDI0LDI3IEwxNiwyNyBDMTUuNDQ3NzE1MywyNyAxNSwyNi41NTIyODQ3IDE1LDI2IEMxNSwyNS41MTQ1ODk3IDE1LjM0Nzk5OTMsMjUuMTAxOTE1IDE1Ljg2NTQ4NzcsMjUuMDEwMDUyMSBMMTYsMjUgTDE5LDI1IFoiIGZpbGw9IiMyMTIzMjQiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="};class gv{constructor(e,t,i,n){this.manager=e,this.memberId=t,this.cursorManager=i,this.wrapper=n,this.move=e=>{var t;if("main"===e.type){const t=this.cursorManager.wrapperRect;this.component&&t&&(this.autoHidden(),this.moveCursor(e,t,this.manager.mainView))}else{const i=this.cursorManager.focusView,n=null==(t=null==i?void 0:i.divElement)?void 0:t.getBoundingClientRect(),r=null==i?void 0:i.camera;i&&n&&r&&this.component&&(this.autoHidden(),this.moveCursor(e,n,i))}},this.leave=()=>{this.hide()},this.setMember(),this.createCursor(),this.autoHidden()}moveCursor(e,t,i){var n,r;const{x:s,y:a}=e,o=null==i?void 0:i.screen.convertPointToScreen(s,a);if(o){const e=o.x+t.x-2,i=o.y+t.y-18;o.x<0||o.x>t.width||o.y<0||o.y>t.height?null==(n=this.component)||n.$set({visible:!1}):null==(r=this.component)||r.$set({visible:!0,x:e,y:i})}}get memberApplianceName(){var e,t;return null==(t=null==(e=this.member)?void 0:e.memberState)?void 0:t.currentApplianceName}get memberColor(){var e,t;return`rgb(${null==(t=null==(e=this.member)?void 0:e.memberState)?void 0:t.strokeColor.join(",")})`}get payload(){var e;return null==(e=this.member)?void 0:e.payload}get memberCursorName(){var e,t;return(null==(e=this.payload)?void 0:e.nickName)||(null==(t=this.payload)?void 0:t.cursorName)||this.memberId}get memberTheme(){var e;return(null==(e=this.payload)?void 0:e.theme)?"netless-window-manager-cursor-inner-mellow":"netless-window-manager-cursor-inner"}get memberCursorTextColor(){var e;return(null==(e=this.payload)?void 0:e.cursorTextColor)||"#FFFFFF"}get memberCursorTagBackgroundColor(){var e;return(null==(e=this.payload)?void 0:e.cursorTagBackgroundColor)||this.memberColor}get memberAvatar(){var e;return null==(e=this.payload)?void 0:e.avatar}get memberOpacity(){return this.memberCursorName||this.memberAvatar?1:0}autoHidden(){this.timer&&clearTimeout(this.timer),this.timer=window.setTimeout((()=>{this.hide()}),1e4)}async createCursor(){this.member&&this.wrapper&&(this.component=new fv({target:document.documentElement,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}}getIcon(){if(this.member){return mv[this.memberApplianceName||O.shape]||mv[O.shape]}}setMember(){this.member=this.manager.findMemberByUid(this.memberId),this.updateComponent()}updateComponent(){var e;null==(e=this.component)||e.$set(w(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())}}class vv{constructor(e){var t;this.manager=e,this.cursorInstances=new Map,this.store=this.manager.store,this.mouseMoveListener=b((e=>{this.updateCursor(this.getType(e),e.clientX,e.clientY)}),16),this.getPoint=(e,t,i)=>{var n;const r=null==(n=null==e?void 0:e.divElement)?void 0:n.getBoundingClientRect();if(r){return null==e?void 0:e.convertToPointInWorld({x:t-r.x,y:i-r.y})}},this.getType=e=>{var t;const i=e.target,n=this.manager.focusApp;switch(i.parentElement){case this.mainViewElement:return{type:"main"};case null==(t=null==n?void 0:n.view)?void 0:t.divElement:return{type:"app"};default:return{type:"main"}}},this.mouseLeaveListener=()=>{this.hideCursor(this.manager.uid),this.manager.dispatchInternalEvent(yp.CursorMove,{uid:this.manager.uid,state:Tp.Leave})},this.roomMembers=null==(t=this.manager.room)?void 0:t.state.roomMembers;const i=Cv.wrapper;i&&(i.addEventListener("pointerenter",this.mouseMoveListener),i.addEventListener("pointermove",this.mouseMoveListener),i.addEventListener("pointerleave",this.mouseLeaveListener),this.wrapperRect=i.getBoundingClientRect()),yv.on("cursorMove",(e=>{let t=this.cursorInstances.get(e.uid);t||(t=new gv(this.manager,e.uid,this,i),this.cursorInstances.set(e.uid,t)),e.state===Tp.Leave?t.leave():t.move(e.position)}))}setMainViewDivElement(e){this.mainViewElement=e}get boxState(){return this.store.getBoxState()}get focusView(){var e;return null==(e=this.manager.focusApp)?void 0:e.view}updateCursor(e,t,i){if(this.wrapperRect&&this.manager.canOperate){const n="main"===e.type?this.manager.mainView:this.focusView,r=this.getPoint(n,t,i);r&&this.manager.dispatchInternalEvent(yp.CursorMove,{uid:this.manager.uid,position:{x:r.x,y:r.y,type:e.type}})}}updateContainerRect(){var e,t;this.containerRect=null==(e=Cv.container)?void 0:e.getBoundingClientRect(),this.wrapperRect=null==(t=Cv.wrapper)?void 0:t.getBoundingClientRect()}deleteCursor(e){const t=this.cursorInstances.get(e);t&&t.destroy()}hideCursor(e){const t=this.cursorInstances.get(e);t&&t.hide()}destroy(){var e;const t=Cv.wrapper;t&&(t.removeEventListener("pointerenter",this.mouseMoveListener),t.removeEventListener("pointermove",this.mouseMoveListener),t.removeEventListener("pointerleave",this.mouseLeaveListener)),this.cursorInstances.size&&(this.cursorInstances.forEach((e=>e.destroy())),this.cursorInstances.clear()),null==(e=this.manager.refresher)||e.remove("cursors")}}class wv{constructor(e){this.sdk=new V(l(o({},e),{useMobXState:!0}))}async mount(e){const t=e.joinRoomParams.invisiblePlugins||[],i=await this.sdk.joinRoom(l(o({},e.joinRoomParams),{useMultiViews:!0,invisiblePlugins:[...t,Cv],disableMagixEventDispatchLimit:!0})),n=await Cv.mount(o({room:i},e.mountParams));return y(e.joinRoomParams.disableCameraTransform)&&(n.mainView.disableCameraTransform=e.joinRoomParams.disableCameraTransform),n}}const bv=window.ResizeObserver||H,yv=new u,xv=new u,Mv=class extends R{constructor(e){super(e),this.version="0.3.26",this.dependencies={dependencies:{"@juggle/resize-observer":"^3.3.1",emittery:"^0.9.2",lodash:"^4.17.21","p-retry":"^4.6.1",uuid:"^7.0.3","video.js":">=7"},peerDependencies:{"video.js":">=7","white-web-sdk":"^2.13.16"},devDependencies:{"@netless/app-docs-viewer":"0.2.5","@netless/app-media-player":"0.1.0-beta.5","@netless/telebox-insider":"0.2.21","@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.22","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash-es":"^4.17.4","@types/uuid":"^8.3.1","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",less:"^4.1.1",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.3.5","video.js":"^7.14.3",vite:"^2.5.3","white-web-sdk":"^2.15.16"}},this.emitter=xv,this.viewMode=_.Broadcaster,this.isReplay=L(this.displayer),window.NETLESS_DEPS={dependencies:{"@juggle/resize-observer":"^3.3.1",emittery:"^0.9.2",lodash:"^4.17.21","p-retry":"^4.6.1",uuid:"^7.0.3","video.js":">=7"},peerDependencies:{"video.js":">=7","white-web-sdk":"^2.13.16"},devDependencies:{"@netless/app-docs-viewer":"0.2.5","@netless/app-media-player":"0.1.0-beta.5","@netless/telebox-insider":"0.2.21","@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.22","@tsconfig/svelte":"^2.0.1","@types/debug":"^4.1.7","@types/lodash-es":"^4.17.4","@types/uuid":"^8.3.1","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0",cypress:"^8.7.0",dotenv:"^10.0.0",eslint:"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-svelte3":"^3.2.0",less:"^4.1.1",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.3.5","video.js":"^7.14.3",vite:"^2.5.3","white-web-sdk":"^2.15.16"}}}static async mount(e,t,i,n){let r,s,a,o,l,c,u=!0,h=!1,p="light";if("room"in e?(r=e.room,t=e.container,i=e.collectorContainer,s=e.containerSizeRatio,a=e.collectorStyles,o=e.debug,null!=e.chessboard&&(u=e.chessboard),l=e.overwriteStyles,c=e.cursor,h=Boolean(null==e?void 0:e.disableCameraTransform),p=e.prefersColorScheme):(r=e,s=null==n?void 0:n.containerSizeRatio,a=null==n?void 0:n.collectorStyles,o=null==n?void 0:n.debug,null!=(null==n?void 0:n.chessboard)&&(u=n.chessboard),l=null==n?void 0:n.overwriteStyles),this.checkVersion(),B(r)&&r.phase!==D.Connected)throw new Error("[WindowManager]: Room only Connected can be mount");if(!t)throw new Error("[WindowManager]: Container must provide");if(Mv.isCreated)throw new Error("[WindowManager]: Already created cannot be created again");Mv.isCreated=!0;try{let e=await this.initManager(r);if(this.debug=Boolean(o),this.debug&&(f={verbose:!0},Uh=Vh(Vh({},_h),f)),nf("Already insert room",e),B(this.displayer)){if(!e)throw new Error("[WindowManager]: init InvisiblePlugin failed")}else await d((async t=>{if(e=await this.initManager(r),!e)throw nf(`manager is empty. retrying ${t}`),new Error}),{retries:10});s&&(Mv.containerSizeRatio=s),Mv.container=t;const{playground:n,wrapper:g,sizer:v,mainViewElement:w}=(e=>{const t=document.createElement("div");t.className="netless-window-manager-playground";const i=document.createElement("div");i.className="netless-window-manager-sizer";const n=document.createElement("div");n.className="netless-window-manager-wrapper";const r=document.createElement("div");return r.className="netless-window-manager-main-view",t.appendChild(i),i.appendChild(n),n.appendChild(r),e.appendChild(t),Cv.wrapper=n,{playground:t,wrapper:n,sizer:i,mainViewElement:r}})(t);if(Mv.playground=n,u&&v.classList.add("netless-window-manager-chess-sizer"),l){const e=document.createElement("style");e.textContent=l,n.appendChild(e)}await e.ensureAttributes(),e.appManager=new Ng(e,{collectorContainer:i,collectorStyles:a,prefersColorScheme:p}),e.observePlaygroundSize(n,v,g),c&&(e.cursorManager=new vv(e.appManager)),e.bindMainView(w,h),((e,t)=>{if(L(e)){const t=e,i=t.seekToProgressTime;t.seekToProgressTime=async function(e){const n=await i.call(t,e);return"success"===n&&yv.emit("seek",e),n}}else{if(Object.getOwnPropertyDescriptor(e,"disableCameraTransform"))return;Object.defineProperty(e,"disableCameraTransform",{get:()=>t.mainView.disableCameraTransform,set(e){t.mainView.disableCameraTransform=e}}),e.moveCamera=e=>t.mainView.moveCamera(e),e.moveCameraToContain=(...e)=>t.mainView.moveCameraToContain(...e),e.convertToPointInWorld=(...e)=>t.mainView.convertToPointInWorld(...e),e.setCameraBound=(...e)=>t.mainView.setCameraBound(...e),e.scenePreview=(...e)=>t.mainView.scenePreview(...e),e.fillSceneSnapshot=(...e)=>t.mainView.fillSceneSnapshot(...e),e.generateScreenshot=(...e)=>t.mainView.generateScreenshot(...e)}})(r,e.appManager),yv.emit("onCreated");try{await Dp()}catch(m){console.warn("[WindowManager]: indexedDB open failed"),console.log(m)}return e}catch(m){throw Mv.isCreated=!1,m}var f}static async initManager(e){let t=e.getInvisiblePlugin(Mv.kind);if(!t&&B(e))if(!1===e.isWritable){try{await e.setWritable(!0)}catch(i){throw new Error("[WindowManger]: room must be switched to be writable")}t=await e.createInvisiblePlugin(Mv,{}),t.ensureAttributes(),await Qp(500),await e.setWritable(!1)}else t=await e.createInvisiblePlugin(Mv,{});return t}static register(e){return Vp.register(e)}async addApp(e){var t,i,n,r;if(this.appManager){if(!e.kind||"string"!=typeof e.kind)throw new Gp;const s=await(null==(t=Vp.appClasses.get(e.kind))?void 0:t());if(s&&(null==(i=s.config)?void 0:i.singleton)&&this.appManager.appProxies.has(e.kind))throw new Fp;const a=this.setupScenePath(e,this.appManager);if(void 0===a)return;(null==(n=null==e?void 0:e.options)?void 0:n.scenePath)&&(e.options.scenePath=(r=e.options.scenePath).endsWith("/")?r.slice(0,-1):r);return await this.appManager.addApp(e,Boolean(a))}throw new Zp}setupScenePath(e,t){var i,n,r;let s=!1;if(e.options){const{scenePath:a,scenes:o}=e.options;if(a){if(!(e=>e.startsWith("/"))(a))throw new Jp;const e=Object.keys(this.apps||{});for(const i of e){const e=t.store.getAppScenePath(i);if(e&&e===a)return void console.warn(`[WindowManager]: ScenePath ${a} Already opened`)}}a&&o&&o.length>0&&(this.isDynamicPPT(o)?(s=!0,this.displayer.entireScenes()[a]||null==(i=this.room)||i.putScenes(a,o)):this.displayer.entireScenes()[a]||null==(n=this.room)||n.putScenes(a,[{name:o[0].name}])),a&&void 0===o&&(null==(r=this.room)||r.putScenes(a,[{}]))}return s}async setMainViewScenePath(e){this.appManager&&await this.appManager.setMainViewScenePath(e)}async setMainViewSceneIndex(e){this.appManager&&await this.appManager.setMainViewSceneIndex(e)}getMainViewScenePath(){var e;return null==(e=this.appManager)?void 0:e.store.getMainViewScenePath()}getMainViewSceneIndex(){var e;return null==(e=this.appManager)?void 0:e.store.getMainViewSceneIndex()}setReadonly(e){var t;this.readonly=e,null==(t=this.appManager)||t.boxManager.setReadonly(e),yv.emit("setReadonly",e)}switchMainViewToWriter(){var e;return null==(e=this.appManager)?void 0:e.mainViewProxy.mainViewClickHandler()}onAppDestroy(e,t){((e,t)=>{yv.once(e).then(t)})(`destroy-${e}`,t)}setBoxState(e){if(this.canOperate)switch(e){case"normal":this.setMaximized(!1),this.setMinimized(!1);break;case"maximized":this.setMaximized(!0),this.setMinimized(!1);break;case"minimized":this.setMinimized(!0)}}setMaximized(e){var t;this.canOperate&&(null==(t=this.appManager)||t.boxManager.setMaximized(e,!1))}setMinimized(e){var t;this.canOperate&&(null==(t=this.appManager)||t.boxManager.setMinimized(e,!1))}setViewMode(e){var t,i,n;this.canOperate&&(e===_.Broadcaster&&(null==(t=this.appManager)||t.mainViewProxy.setCameraAndSize(),null==(i=this.appManager)||i.mainViewProxy.start()),e===_.Freedom&&(null==(n=this.appManager)||n.mainViewProxy.stop()),this.viewMode=e)}get mainView(){if(this.appManager)return this.appManager.mainViewProxy.view;throw new Zp}get camera(){if(this.appManager)return this.appManager.mainViewProxy.view.camera;throw new Zp}get cameraState(){if(this.appManager)return this.appManager.mainViewProxy.cameraState;throw new Zp}get apps(){var e;return null==(e=this.appManager)?void 0:e.store.apps()}get boxState(){if(this.appManager)return this.appManager.boxManager.boxState;throw new Zp}get darkMode(){var e;return Boolean(null==(e=this.appManager)?void 0:e.boxManager.darkMode)}get prefersColorScheme(){if(this.appManager)return this.appManager.boxManager.prefersColorScheme;throw new Zp}queryAll(){var e;return Array.from((null==(e=this.appManager)?void 0:e.appProxies.values())||[])}queryOne(e){var t;return null==(t=this.appManager)?void 0:t.appProxies.get(e)}async closeApp(e){var t;return null==(t=this.appManager)?void 0:t.closeApp(e)}moveCamera(e){this.mainView.moveCamera(e)}moveCameraToContain(e){this.mainView.moveCameraToContain(e)}convertToPointInWorld(e){return this.mainView.convertToPointInWorld(e)}setCameraBound(e){this.mainView.setCameraBound(e)}onDestroy(){this._destroy()}destroy(){this._destroy()}_destroy(){var e,t,i,n;null==(e=this.containerResizeObserver)||e.disconnect(),null==(t=this.appManager)||t.destroy(),null==(i=this.cursorManager)||i.destroy(),Mv.container=void 0,Mv.wrapper=void 0,Mv.isCreated=!1,Mv.playground&&(null==(n=Mv.playground.parentNode)||n.removeChild(Mv.playground)),nf("Destroyed")}bindMainView(e,t){var i;this.appManager&&(this.appManager.bindMainView(e,t),null==(i=this.cursorManager)||i.setMainViewDivElement(e))}get canOperate(){return!!B(this.displayer)&&(this.displayer.isWritable&&this.displayer.phase===D.Connected)}get room(){return this.displayer}safeSetAttributes(e){this.canOperate&&this.setAttributes(e)}safeUpdateAttributes(e,t){this.canOperate&&this.updateAttributes(e,t)}setPrefersColorScheme(e){var t;null==(t=this.appManager)||t.boxManager.setPrefersColorScheme(e)}isDynamicPPT(e){var t,i;const n=null==(i=null==(t=e[0])?void 0:t.ppt)?void 0:i.src;return null==n?void 0:n.startsWith("pptx://")}static checkVersion(){if(Hp(U)<Hp("2.13.16"))throw new Yp("2.13.16")}async ensureAttributes(){if(x(this.attributes)&&await Qp(50),M(this.attributes)){this.attributes[qp.Apps]||this.safeSetAttributes({[qp.Apps]:{}}),this.attributes[qp.Cursors]||this.safeSetAttributes({[qp.Cursors]:{}});const e=this.displayer.state.sceneState;this.attributes._mainScenePath||this.safeSetAttributes({_mainScenePath:e.scenePath}),this.attributes._mainSceneIndex||this.safeSetAttributes({_mainSceneIndex:e.index})}}observePlaygroundSize(e,t,i){this.updateSizer(e.getBoundingClientRect(),t,i),this.containerResizeObserver=new bv((e=>{var n,r,s;const a=null==(n=e[0])?void 0:n.contentRect;a&&(this.updateSizer(a,t,i),null==(r=this.cursorManager)||r.updateContainerRect(),null==(s=this.appManager)||s.boxManager.updateManagerRect(),yv.emit("playgroundSizeChange",a))})),this.containerResizeObserver.observe(e)}updateSizer({width:e,height:t},i,n){e&&t&&(t/e>Mv.containerSizeRatio?(t=e*Mv.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!0)):(e=t/Mv.containerSizeRatio,i.classList.toggle("netless-window-manager-sizer-horizontal",!1)),n.style.width=`${e}px`,n.style.height=`${t}px`)}};let Cv=Mv;Cv.kind="WindowManager",Cv.debug=!1,Cv.containerSizeRatio=9/16,Cv.isCreated=!1,Cv.register({kind:Rt.kind,src:Rt}),Cv.register({kind:bp.kind,src:bp});const Iv={DocsViewer:Rt.kind,MediaPlayer:bp.kind};export{Iv as BuiltinApps,wv as WhiteWindowSDK,Cv as WindowManager,xv as callbacks,yv as emitter};
|
42
42
|
//# sourceMappingURL=index.es.js.map
|